diff --git a/src/main/webapp/META-INF/MANIFEST.MF b/src/main/webapp/META-INF/MANIFEST.MF new file mode 100644 index 00000000..254272e1 --- /dev/null +++ b/src/main/webapp/META-INF/MANIFEST.MF @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +Class-Path: + diff --git a/src/main/webapp/css/common.css b/src/main/webapp/css/common.css new file mode 100644 index 00000000..1bd2e149 --- /dev/null +++ b/src/main/webapp/css/common.css @@ -0,0 +1,6 @@ + +.datagrid-body,.datagrid-footer,.datagrid-pager ,.datagrid-view +{ + background-color:#EAF2FD; +} + diff --git a/src/main/webapp/css/css.css b/src/main/webapp/css/css.css new file mode 100644 index 00000000..27148e1f --- /dev/null +++ b/src/main/webapp/css/css.css @@ -0,0 +1,762 @@ +@charset "utf-8"; +/* CSS Document */ +ul,ol,li,dl,dt,dd,h1,h2,h3,body,p,form,input,textarea{ + padding:0; + margin:0; +} +ul,li{ + list-style:none; +} +h1{ + font-size:18px; +} +h2{ + font-size:14px; +} +h3{ + font-size:12px; +} +table{ + border-collapse:collapse; +} +textarea{ + font-size:12px; + padding:3px; +} +img{ + border:0; +} +a:link,a:visited{ + color:#333; + text-decoration:none; +} +a:hover,a:active{ + text-decoration:underline; +} +body{ + font:12px/18px Arial, Helvetica, sans-serif,"宋体"; +} +#header{ + height:56px; + width:100%; + position:relative; + background:url(../images/bg_head.jpg) repeat-x; +} +#logo{ + position:absolute; + left: 17px; + top: 1px; +} +#nav_top{ + position:absolute; + right:5px; + top:20px; +} +#nav_top li{ + float:left; + padding-right:8px; +} +#nav_top li a{ + display:block; + height:16px; + float:left; + padding-left:18px; + text-decoration:underline; +} +#nav_top li a:hover{ + color:#006DC1; +} +#nav_top li a#navtop_home{ + background:url(../images/house.png) 0 1px no-repeat; +} +#nav_top li a#navtop_help{ + background:url(../images/vavtop_help.gif) 0 1px no-repeat; +} +#nav_top li a#navtop_logout{ + background:url(../images/680.png) 2px 2px no-repeat; +} +#menubar{ + width:170px; + padding-top:5px; + overflow:hidden; +} +#menubar a{ + width:130px; + padding:5px 0 0 40px; + height:23px; + display:block; + color:#000; + font-weight:bold; + font-size:14px; + background:url(../images/bg_menulist.jpg) no-repeat; +} +#menubar a:hover{ + text-decoration:none; + background:url(../images/bg_menuliston.jpg) no-repeat; +} +#menubar a#menu_on{ + background:url(../images/bg_menuliston.jpg) no-repeat; +} +#menubar a#menusub_on{ + color:#006BFF; + text-decoration:none; + background:#FFFFFF; +} +#menubar dl a{ + font-size:12px; + color:#333; + height:18px; + padding-left:60px; + font-weight:normal; + background:url(../images/bg_notebook.gif) 40px 5px no-repeat; +} +#menubar dl{ + display:none; + padding-bottom:5px; +} +#menubar dl a:hover{ + color:#006DC1; + text-decoration:none; +} +#menubar_top{ + width:182px; + height:16px; + overflow:hidden; +} +#menu_switchHide{ + position:absolute; + width:7px; + height:9px; + left:173px; + top:4px; + z-index:100; + overflow:hidden; +} +#menu_switchShow{ + position:absolute; + width:10px; + height:17px; + left:0px; + top:0px; + overflow:hidden; + z-index:100; + display:none; +} +#wrap_menu{ + width:175px; + overflow:hidden; + padding-left:5px; + border:1px solid #97B9DF; + border-top:none; + background:#EAF2FD; +} +#position{ + height:29px; + width:100%; + overflow:hidden; + position:relative; + background:url(../images/bg_positionm.jpg) repeat-x; +} + +#position p{ + line-height:29px; + padding-left:13px; + color:#FFF; + background:url(../images/bg_positionl.gif) no-repeat; +} +#position p a{ + color:#FFF; +} +#pright{ + width:8px; + height:29px; + overflow:hidden; + position:absolute; + top:0; + right:0; + background:url(../images/bg_positionr.jpg) 3px 0 no-repeat; +} +#cnt_body{ + padding:0 5px; +} +#searchbar{ + background:#EAF2FD; + margin:8px 0 5px 0; + width:100%; + position:relative; +} +#txt_search{ + position:absolute; + left: 11px; + top: -8px; + color:#000; + font-weight:bold; +} +#search_itemlist{ + border:1px solid #97B9DF; + padding:10px 10px 3px 10px; +} +#search_itemlist ul{ + width:100%; + overflow:hidden; +} +#search_itemlist li{ + float:left; + height:22px; + padding:0 10px 5px 0; +} +#searchbar li span img,#search_itemlist li span img{ + position:relative; + top:3px; + margin-left:2px; +} +#search_itemlist input,#search_itemlist select{ + width:80px; + margin-top:2px; +} +#search_itemlist input.btn_sendData{ + width:49px; + height:22px; + border:none; + margin-top:0; + padding:0 1px; + cursor:pointer; + background:url(../images/btn_check.gif) no-repeat; +} +#search_itemlist input.btn_sendData:hover{ + background:url(../images/btn_checkon.gif) no-repeat; +} +.databar{ + border:1px solid #97B9DF; + background:#EAF2FD; + overflow:hidden; + _height:29px; +} +.btn_confirmpage{ + height:22px; + width:35px; + border:none; + cursor:pointer; + background:url(../images/btn_goto.gif) 0 2px no-repeat; +} +.btn_confirmpage:hover{ + background:url(../images/btn_gotoon.gif) 0 2px no-repeat; +} +.btnbar{ + float:left; +} +.btnbar ul{ + padding:2px 0 2px 10px; + overflow:hidden; + width:400px; + overflow:hidden; +} +.btnbar li{ + float:left; + padding-right:5px; +} +.btnbar a{ + display:block; + height:25px; + float:left; + overflow:hidden; + padding-left:10px; + background:url(../images/bg_btnl.gif) no-repeat; +} +.btnbar a:hover{ + text-decoration:none; + background:url(../images/bg_btnlon.gif) no-repeat; +} +.btnbar b{ + display:block; + height:20px; + float:left; + padding:5px 10px 0 0; + font-weight:normal; + background:#EAF2FD url(../images/bg_btnr.gif) top right no-repeat; +} +.btnbar a:hover b{ + background:#EAF2FD url(../images/bg_btnron.gif) top right no-repeat; +} +.pagebar{ + float:right; +} +.pagebar ul{ + overflow:hidden; + padding:3px 3px 1px 3px; +} +.pagebar li{ + float:left; + padding:0 5px; + line-height:22px; + background:url(../images/bg_psplit.jpg) right 1px no-repeat; +} +.pagebar li.jump_num{ +} +.pagebar li.lastpageli{ + background:none; +} +.pagebar li.jump_num input{ + width:15px; + height:15px; +} +.pagebar li.pnum_list a{ + padding:1px 5px; + margin-left:2px; + border:1px solid #97B9DF; +} +.pagebar li.pnum_list a:hover{ + background:#FFFED9; + text-decoration:none; +} +.pagebar li.pnum_list a#this_page{ + border:1px solid #EAF2FD; + color:#F00; +} +.data_list,.data_view,.data_edit{ + margin:5px 0; +} +.data_list table{ + width:100%; + text-align:center; +} +.data_list th{ + color:#515151; + color:#3B64A4; + padding:5px 2px; + border:1px solid #97B8E0; + background: url(../images/bg_datath.jpg) repeat-x; +} +.data_list td{ + padding:4px 2px; + border:1px solid #97B8E0; +} +td a.detail_link{ + color:#006DC1; + text-decoration:none; +} +td a.detail_link:hover{ + color:#F90; + text-decoration:underline; +} +td.editbar{ + width:100px; +} +td.txt_leftalign,th.txt_leftalign{ + text-align:left; + padding-left:8px; +} +.data_list td.editbar a{ + padding:0 3px; +} +.data_list th.checkboxbar{ + width:20px; +} + +tr.tr_evenview,td.td_evenview{ + background:#f3f9fe; +} +tr.tr_even,td.td_even{ + background:#E9F0F9; +} +tr.tr_hover,td.td_hover{ + background:#FFFED9; +} +#foot{ + text-align:center; + height:25px; + overflow:hidden; + margin-top:5px; + line-height:30px; + color:#3a65a3; + font-family:Arial, Helvetica, sans-serif; + background:url(../images/bg_foot.jpg) repeat-x; +} +.data_view th,.data_edit th{ + padding:4px 4px 4px 18px; + text-align:left; + color:#515151; + width:120px; + border:1px solid #97B8E0; + background:#E9F0F9; +} +.data_view td,.data_edit td{ + padding:4px 4px 4px 10px; + border:1px solid #97B8E0; +} +.view_nav,.draw_time,#dialog_title{ + font-size:14px; + height:21px; + line-height:18px; + padding:5px 0 0 15px; + color:#0067B2; + border:1px solid #AEC7E5; + border-bottom:none; + margin:5px 0 -5px 0; + font-weight:bold; + background:url(../images/bg_cntnav.jpg) repeat-x; +} +.draw_time{ + border:1px solid #AEC7E5; + margin:5px 0; + font-weight:normal; + font-size:12px; + padding-top:1px; + padding-bottom:3px; +} +.btnlistbar{ + height:24px; + padding:4px 0 0 153px; + border:1px solid #AEC7E5; + border-top:none; + overflow:hidden; + background:#DEEAFB; + margin-top:-5px; +} +input.inputstyle{ + width:62px; + font-size:12px; + height:20px; + overflow:hidden; + line-height:22px; + text-align:center; + border:none; + color:#006DC1; + margin:0 32px 0 0; + padding:0; + background:url(../images/bg_btn.gif) top center no-repeat; +} +input.inputstyle:hover{ + background:url(../images/bg_btnon.gif) top center no-repeat; +} +#treebar{ + width:148px; + position:absolute; + left:5px; + top:34px; + padding:5px; + overflow:hidden; + border:1px solid #AEC7E5; + background:#EAF2FD; +} +#treebar_only{ + width:200px; + padding:5px; + overflow:hidden; +} +#treebar ul,#treebar li,#treebar_only ul,#treebar_only li{ + clear:both; +} +#treebar ul,#treebar_only ul{ + padding-left:20px; +} +#treebar ul#tree_rootul,#treebar_only ul#tree_rootul{ + padding-left:0; +} +#treebar li span,#treebar_only li span{ + float:left; + height:20px; + line-height:20px; + display:block; +} +#treebar li span a:hover,#treebar_only li span a:hover{ + color:#006DC1; + text-decoration:underline; +} +#treebar li span a.thisNode,#treebar_only li span a.thisNode{ + background:#334B75; + color:#FFF; +} +#treebar li span input,#treebar_only li span input{ + vertical-align:middle; + width:15px; + height:15px; + margin-right:2px; +} +#treebar span.tree_show,#treebar span.tree_hide,#treebar_only span.tree_show,#treebar_only span.tree_hide{ + width:15px; + display:block; + background:url(../images/btn_minus.gif) 3px 5px no-repeat; +} +#treebar span.tree_hide,#treebar_only span.tree_hide{ + background:url(../images/btn_plus.gif) 3px 5px no-repeat; +} +#treebar_cnt{ + padding-left:165px; +} +/*tab start*/ +#tab_switchdraw{ + height:31px; + margin-top:5px; + overflow:hidden; + position:relative; + background:url(../images/bg_actlistcon.gif) repeat-x; +} +#tab_switchdraw ul{ + padding-top:2px; +} +#tab_switchdraw li{ + float:left; + padding-right:3px; +} +#tab_switchdraw li a{ + display:block; + width:72px; + height:20px; + padding:9px 0 0 0; + text-align:center; + text-decoration:none; + color:#3965A3; + line-height:12px; + background:url(../images/bg_actlist.jpg) no-repeat; +} +#tab_switchdraw li a#draw_on{ + color:#515151; + padding-top:9px; + height:20px; + background:url(../images/bg_actliston.jpg) no-repeat; +} +#source_selected{ + display:none; +} +/*tab endding*/ +.img_list{ + padding:5px; + padding-left:50px; + width:100%; +} +#dialog{ + border:2px solid #AEC7E5; + padding:1px; + width:200px; + height:200px; + position:absolute; + left:0; + top:0; + z-index:100; + background:#FFF; +} +#dialog_title{ + position:relative; + border:none; + margin:0; + padding-left:8px; +} +#dialog_btnlist{ + border-top:1px dashed #CCC; + height:25px; + width:100%; + overflow:hidden; + padding-top:5px; + margin-top:2px; + position:absolute; + bottom:0; + text-align:center; + background:#FFF; +} +#dialog_close{ + width:16px; + height:16px; + position:absolute; + right:4px; + top:4px; + cursor:pointer; + background:url(../images/btn_close.png) no-repeat; +} +#dialog_bg{ + width:100%; + height:auto; + position:absolute; + left:0; + top:0; + z-index:99; + background:#666; + opacity: 0.0; + filter:alpha(opacity=0); + -moz-opacity:0.0; +} +.dialogbtnlist{ + border-top:1px dashed #AEC7E5; + text-align:center; + margin:5px 0 0 0; + padding:5px 5px 2px 5px; +} +.dialogbtnlist input{ + padding:0 5px; +} +.must_input,.error_input{ + color:#F00; + padding:0 3px; +} +.tip_input{ + color:#BBB; + padding:0 3px; +} +.tip_important a{ + color:#F00; + text-decoration:underline; +} +.select_left,.select_right{ + width:150px; + height:150px; + overflow:hidden; + float:left; +} +.select_left p,.select_right p{ + height:20px; + line-height:20px; +} +.select_left select,.select_right select{ + margin:0; + padding:0; + width:150px; + height:130px; +} +.select_btn{ + width:50px; + padding-top:35px; + height:115px; + float:left; + text-align:center; +} +.select_btn input{ + width:30px; + padding:2px 1px; +} +.select_right{ +} +#menu_mask{ + width:9px; + height:500px; + position:absolute; + top:0; + left:0; + border:1px solid #AEC7E5; + border-left:none; + background:#EAF2FD; + z-index:90; +} +#login_body{ + background:#93bbe5 url(../images/bg_login.jpg) top center no-repeat; +} +#login_main{ + width:459px; + overflow:hidden; + margin:160px auto 0 auto; +} +#login{ + width:459px; + height:263px; + overflow:hidden; + position:relative; + background:url(../images/bg_loginmain.jpg) no-repeat; +} +#login_signal{ + position:absolute; + left: 63px; + top: 19px; +} +#txt_username{ + position:absolute; + left: 66px; + top: 84px; + width: 52px; +} +#txt_userpwd{ + position:absolute; + left: 65px; + top: 119px; + width: 54px; +} +#txt_vcode{ + position:absolute; + left: 66px; + top: 153px; + width: 51px; +} +#user_name{ + position:absolute; + width:132px; + padding:0 4px; + height:23px; + line-height:23px; + border:none; + font-family:Arial, Helvetica, sans-serif; + background:url(../images/bg_logininout.jpg) no-repeat; + left: 118px; + top: 84px; +} +#user_pwd{ + position:absolute; + width:132px; + padding:0 4px; + height:23px; + line-height:23px; + border:none; + font-family:Arial, Helvetica, sans-serif; + background:url(../images/bg_logininout.jpg) no-repeat; + left: 118px; + top: 118px; +} +#vcode{ + position:absolute; + width:67px; + padding:0 4px; + height:23px; + line-height:23px; + font-family:Arial, Helvetica, sans-serif; + border:none; + background:url(../images/bg_keycode.jpg) no-repeat; + left: 118px; + top: 151px; +} +#vcode_pic{ + position:absolute; + left: 198px; + top: 151px; +} +#btn_login{ + position:absolute; + width:81px; + height:30px; + border:none; + cursor:pointer; + background:url(../images/btn_login.jpg) no-repeat; + left: 120px; + top: 170px; +} +#btn_login:hover{ + background:url(../images/btn_loginon.jpg) no-repeat; +} +#tip_username{ + position:absolute; + left: 262px; + top: 86px; + width: 174px; +} +#tip_userpwd{ + position:absolute; + left: 263px; + top: 121px; + width: 173px; +} +#tip_vcode{ + position:absolute; + left: 264px; + top: 154px; + width: 172px; +} +#login_tip{ + padding:3px 5px; + color:#4C4C4C; +} +#copyright{ + color:#3a69ad; + text-align:center; + padding:10px 1px; +} +#login_logo{ + padding:3px 8px; + font-size: medium; + font-weight: bold; +} diff --git a/src/main/webapp/images/004.jpg b/src/main/webapp/images/004.jpg new file mode 100644 index 00000000..a4dea914 Binary files /dev/null and b/src/main/webapp/images/004.jpg differ diff --git a/src/main/webapp/images/007.png b/src/main/webapp/images/007.png new file mode 100644 index 00000000..1cf36626 Binary files /dev/null and b/src/main/webapp/images/007.png differ diff --git a/src/main/webapp/images/020.png b/src/main/webapp/images/020.png new file mode 100644 index 00000000..184ed170 Binary files /dev/null and b/src/main/webapp/images/020.png differ diff --git a/src/main/webapp/images/657.png b/src/main/webapp/images/657.png new file mode 100644 index 00000000..2724394a Binary files /dev/null and b/src/main/webapp/images/657.png differ diff --git a/src/main/webapp/images/680.png b/src/main/webapp/images/680.png new file mode 100644 index 00000000..65fb464e Binary files /dev/null and b/src/main/webapp/images/680.png differ diff --git a/src/main/webapp/images/894.png b/src/main/webapp/images/894.png new file mode 100644 index 00000000..d4a14023 Binary files /dev/null and b/src/main/webapp/images/894.png differ diff --git a/src/main/webapp/images/a1.gif b/src/main/webapp/images/a1.gif new file mode 100644 index 00000000..a98d7491 Binary files /dev/null and b/src/main/webapp/images/a1.gif differ diff --git a/src/main/webapp/images/admin.png b/src/main/webapp/images/admin.png new file mode 100644 index 00000000..f9668f73 Binary files /dev/null and b/src/main/webapp/images/admin.png differ diff --git a/src/main/webapp/images/bg_actlist.jpg b/src/main/webapp/images/bg_actlist.jpg new file mode 100644 index 00000000..71184172 Binary files /dev/null and b/src/main/webapp/images/bg_actlist.jpg differ diff --git a/src/main/webapp/images/bg_actlistcon.gif b/src/main/webapp/images/bg_actlistcon.gif new file mode 100644 index 00000000..5cb86d2f Binary files /dev/null and b/src/main/webapp/images/bg_actlistcon.gif differ diff --git a/src/main/webapp/images/bg_actliston.jpg b/src/main/webapp/images/bg_actliston.jpg new file mode 100644 index 00000000..01f55912 Binary files /dev/null and b/src/main/webapp/images/bg_actliston.jpg differ diff --git a/src/main/webapp/images/bg_btn.gif b/src/main/webapp/images/bg_btn.gif new file mode 100644 index 00000000..62d23aa7 Binary files /dev/null and b/src/main/webapp/images/bg_btn.gif differ diff --git a/src/main/webapp/images/bg_btnl.gif b/src/main/webapp/images/bg_btnl.gif new file mode 100644 index 00000000..4c4ca5d7 Binary files /dev/null and b/src/main/webapp/images/bg_btnl.gif differ diff --git a/src/main/webapp/images/bg_btnlon.gif b/src/main/webapp/images/bg_btnlon.gif new file mode 100644 index 00000000..496f683b Binary files /dev/null and b/src/main/webapp/images/bg_btnlon.gif differ diff --git a/src/main/webapp/images/bg_btnon.gif b/src/main/webapp/images/bg_btnon.gif new file mode 100644 index 00000000..36279a64 Binary files /dev/null and b/src/main/webapp/images/bg_btnon.gif differ diff --git a/src/main/webapp/images/bg_btnr.gif b/src/main/webapp/images/bg_btnr.gif new file mode 100644 index 00000000..58853d51 Binary files /dev/null and b/src/main/webapp/images/bg_btnr.gif differ diff --git a/src/main/webapp/images/bg_btnron.gif b/src/main/webapp/images/bg_btnron.gif new file mode 100644 index 00000000..2a110d9f Binary files /dev/null and b/src/main/webapp/images/bg_btnron.gif differ diff --git a/src/main/webapp/images/bg_cntnav.jpg b/src/main/webapp/images/bg_cntnav.jpg new file mode 100644 index 00000000..0818d01f Binary files /dev/null and b/src/main/webapp/images/bg_cntnav.jpg differ diff --git a/src/main/webapp/images/bg_datath.jpg b/src/main/webapp/images/bg_datath.jpg new file mode 100644 index 00000000..715019a7 Binary files /dev/null and b/src/main/webapp/images/bg_datath.jpg differ diff --git a/src/main/webapp/images/bg_foot.jpg b/src/main/webapp/images/bg_foot.jpg new file mode 100644 index 00000000..d1649e8c Binary files /dev/null and b/src/main/webapp/images/bg_foot.jpg differ diff --git a/src/main/webapp/images/bg_head.jpg b/src/main/webapp/images/bg_head.jpg new file mode 100644 index 00000000..a97e5a4b Binary files /dev/null and b/src/main/webapp/images/bg_head.jpg differ diff --git a/src/main/webapp/images/bg_keycode.jpg b/src/main/webapp/images/bg_keycode.jpg new file mode 100644 index 00000000..0168a2c4 Binary files /dev/null and b/src/main/webapp/images/bg_keycode.jpg differ diff --git a/src/main/webapp/images/bg_login.jpg b/src/main/webapp/images/bg_login.jpg new file mode 100644 index 00000000..334d42ea Binary files /dev/null and b/src/main/webapp/images/bg_login.jpg differ diff --git a/src/main/webapp/images/bg_logininout.jpg b/src/main/webapp/images/bg_logininout.jpg new file mode 100644 index 00000000..98b37eab Binary files /dev/null and b/src/main/webapp/images/bg_logininout.jpg differ diff --git a/src/main/webapp/images/bg_loginmain.jpg b/src/main/webapp/images/bg_loginmain.jpg new file mode 100644 index 00000000..42784a26 Binary files /dev/null and b/src/main/webapp/images/bg_loginmain.jpg differ diff --git a/src/main/webapp/images/bg_menulist.jpg b/src/main/webapp/images/bg_menulist.jpg new file mode 100644 index 00000000..496b5a34 Binary files /dev/null and b/src/main/webapp/images/bg_menulist.jpg differ diff --git a/src/main/webapp/images/bg_menuliston.jpg b/src/main/webapp/images/bg_menuliston.jpg new file mode 100644 index 00000000..dad5c364 Binary files /dev/null and b/src/main/webapp/images/bg_menuliston.jpg differ diff --git a/src/main/webapp/images/bg_menutop.jpg b/src/main/webapp/images/bg_menutop.jpg new file mode 100644 index 00000000..aabb81d7 Binary files /dev/null and b/src/main/webapp/images/bg_menutop.jpg differ diff --git a/src/main/webapp/images/bg_notebook.gif b/src/main/webapp/images/bg_notebook.gif new file mode 100644 index 00000000..1cb90726 Binary files /dev/null and b/src/main/webapp/images/bg_notebook.gif differ diff --git a/src/main/webapp/images/bg_positionl.gif b/src/main/webapp/images/bg_positionl.gif new file mode 100644 index 00000000..3a39d13b Binary files /dev/null and b/src/main/webapp/images/bg_positionl.gif differ diff --git a/src/main/webapp/images/bg_positionm.jpg b/src/main/webapp/images/bg_positionm.jpg new file mode 100644 index 00000000..a6c2108e Binary files /dev/null and b/src/main/webapp/images/bg_positionm.jpg differ diff --git a/src/main/webapp/images/bg_positionr.jpg b/src/main/webapp/images/bg_positionr.jpg new file mode 100644 index 00000000..3fffa172 Binary files /dev/null and b/src/main/webapp/images/bg_positionr.jpg differ diff --git a/src/main/webapp/images/bg_positionrbak.jpg b/src/main/webapp/images/bg_positionrbak.jpg new file mode 100644 index 00000000..9b3aaaff Binary files /dev/null and b/src/main/webapp/images/bg_positionrbak.jpg differ diff --git a/src/main/webapp/images/bg_positionrpos.jpg b/src/main/webapp/images/bg_positionrpos.jpg new file mode 100644 index 00000000..b94d1aa6 Binary files /dev/null and b/src/main/webapp/images/bg_positionrpos.jpg differ diff --git a/src/main/webapp/images/bg_psplit.jpg b/src/main/webapp/images/bg_psplit.jpg new file mode 100644 index 00000000..9b7407fb Binary files /dev/null and b/src/main/webapp/images/bg_psplit.jpg differ diff --git a/src/main/webapp/images/bg_tipfailth.png b/src/main/webapp/images/bg_tipfailth.png new file mode 100644 index 00000000..44e67929 Binary files /dev/null and b/src/main/webapp/images/bg_tipfailth.png differ diff --git a/src/main/webapp/images/bg_tipsuccess.png b/src/main/webapp/images/bg_tipsuccess.png new file mode 100644 index 00000000..b223b160 Binary files /dev/null and b/src/main/webapp/images/bg_tipsuccess.png differ diff --git a/src/main/webapp/images/blogging.png b/src/main/webapp/images/blogging.png new file mode 100644 index 00000000..57f98c10 Binary files /dev/null and b/src/main/webapp/images/blogging.png differ diff --git a/src/main/webapp/images/btn_check.gif b/src/main/webapp/images/btn_check.gif new file mode 100644 index 00000000..4c3fe4e0 Binary files /dev/null and b/src/main/webapp/images/btn_check.gif differ diff --git a/src/main/webapp/images/btn_checkon.gif b/src/main/webapp/images/btn_checkon.gif new file mode 100644 index 00000000..b31e4807 Binary files /dev/null and b/src/main/webapp/images/btn_checkon.gif differ diff --git a/src/main/webapp/images/btn_close.gif b/src/main/webapp/images/btn_close.gif new file mode 100644 index 00000000..8871cead Binary files /dev/null and b/src/main/webapp/images/btn_close.gif differ diff --git a/src/main/webapp/images/btn_close.png b/src/main/webapp/images/btn_close.png new file mode 100644 index 00000000..8e0286fd Binary files /dev/null and b/src/main/webapp/images/btn_close.png differ diff --git a/src/main/webapp/images/btn_display.gif b/src/main/webapp/images/btn_display.gif new file mode 100644 index 00000000..f2ecfe50 Binary files /dev/null and b/src/main/webapp/images/btn_display.gif differ diff --git a/src/main/webapp/images/btn_goto.gif b/src/main/webapp/images/btn_goto.gif new file mode 100644 index 00000000..b8732d33 Binary files /dev/null and b/src/main/webapp/images/btn_goto.gif differ diff --git a/src/main/webapp/images/btn_gotoon.gif b/src/main/webapp/images/btn_gotoon.gif new file mode 100644 index 00000000..d032bb7e Binary files /dev/null and b/src/main/webapp/images/btn_gotoon.gif differ diff --git a/src/main/webapp/images/btn_login.jpg b/src/main/webapp/images/btn_login.jpg new file mode 100644 index 00000000..befb7c02 Binary files /dev/null and b/src/main/webapp/images/btn_login.jpg differ diff --git a/src/main/webapp/images/btn_loginon.jpg b/src/main/webapp/images/btn_loginon.jpg new file mode 100644 index 00000000..86f6424c Binary files /dev/null and b/src/main/webapp/images/btn_loginon.jpg differ diff --git a/src/main/webapp/images/btn_minus.gif b/src/main/webapp/images/btn_minus.gif new file mode 100644 index 00000000..40e487e2 Binary files /dev/null and b/src/main/webapp/images/btn_minus.gif differ diff --git a/src/main/webapp/images/btn_openm.gif b/src/main/webapp/images/btn_openm.gif new file mode 100644 index 00000000..f2ecfe50 Binary files /dev/null and b/src/main/webapp/images/btn_openm.gif differ diff --git a/src/main/webapp/images/btn_plus.gif b/src/main/webapp/images/btn_plus.gif new file mode 100644 index 00000000..8f52d96e Binary files /dev/null and b/src/main/webapp/images/btn_plus.gif differ diff --git a/src/main/webapp/images/btn_scolse.gif b/src/main/webapp/images/btn_scolse.gif new file mode 100644 index 00000000..88533f9a Binary files /dev/null and b/src/main/webapp/images/btn_scolse.gif differ diff --git a/src/main/webapp/images/btn_sopen.gif b/src/main/webapp/images/btn_sopen.gif new file mode 100644 index 00000000..9d7408e0 Binary files /dev/null and b/src/main/webapp/images/btn_sopen.gif differ diff --git a/src/main/webapp/images/butterfly.jpg b/src/main/webapp/images/butterfly.jpg new file mode 100644 index 00000000..64ba6b03 Binary files /dev/null and b/src/main/webapp/images/butterfly.jpg differ diff --git a/src/main/webapp/images/categories.png b/src/main/webapp/images/categories.png new file mode 100644 index 00000000..f829b6ba Binary files /dev/null and b/src/main/webapp/images/categories.png differ diff --git a/src/main/webapp/images/chart_bar.png b/src/main/webapp/images/chart_bar.png new file mode 100644 index 00000000..2cec9fd8 Binary files /dev/null and b/src/main/webapp/images/chart_bar.png differ diff --git a/src/main/webapp/images/clock.png b/src/main/webapp/images/clock.png new file mode 100644 index 00000000..e2672c20 Binary files /dev/null and b/src/main/webapp/images/clock.png differ diff --git a/src/main/webapp/images/comment.png b/src/main/webapp/images/comment.png new file mode 100644 index 00000000..296b8309 Binary files /dev/null and b/src/main/webapp/images/comment.png differ diff --git a/src/main/webapp/images/computer.png b/src/main/webapp/images/computer.png new file mode 100644 index 00000000..28335581 Binary files /dev/null and b/src/main/webapp/images/computer.png differ diff --git a/src/main/webapp/images/contacts.png b/src/main/webapp/images/contacts.png new file mode 100644 index 00000000..2470bbc3 Binary files /dev/null and b/src/main/webapp/images/contacts.png differ diff --git a/src/main/webapp/images/date_packer.gif b/src/main/webapp/images/date_packer.gif new file mode 100644 index 00000000..3ee59513 Binary files /dev/null and b/src/main/webapp/images/date_packer.gif differ diff --git a/src/main/webapp/images/draw1.jpg b/src/main/webapp/images/draw1.jpg new file mode 100644 index 00000000..78355c80 Binary files /dev/null and b/src/main/webapp/images/draw1.jpg differ diff --git a/src/main/webapp/images/draw2.jpg b/src/main/webapp/images/draw2.jpg new file mode 100644 index 00000000..07d8cfab Binary files /dev/null and b/src/main/webapp/images/draw2.jpg differ diff --git a/src/main/webapp/images/draw3.jpg b/src/main/webapp/images/draw3.jpg new file mode 100644 index 00000000..a721aee1 Binary files /dev/null and b/src/main/webapp/images/draw3.jpg differ diff --git a/src/main/webapp/images/draw4.jpg b/src/main/webapp/images/draw4.jpg new file mode 100644 index 00000000..64a22ea2 Binary files /dev/null and b/src/main/webapp/images/draw4.jpg differ diff --git a/src/main/webapp/images/edit_kiii.png b/src/main/webapp/images/edit_kiii.png new file mode 100644 index 00000000..8d6df43b Binary files /dev/null and b/src/main/webapp/images/edit_kiii.png differ diff --git a/src/main/webapp/images/edit_lock.png b/src/main/webapp/images/edit_lock.png new file mode 100644 index 00000000..b5de7c4d Binary files /dev/null and b/src/main/webapp/images/edit_lock.png differ diff --git a/src/main/webapp/images/edit_lockon.png b/src/main/webapp/images/edit_lockon.png new file mode 100644 index 00000000..5c4180e9 Binary files /dev/null and b/src/main/webapp/images/edit_lockon.png differ diff --git a/src/main/webapp/images/edit_monitor.png b/src/main/webapp/images/edit_monitor.png new file mode 100644 index 00000000..491a82b8 Binary files /dev/null and b/src/main/webapp/images/edit_monitor.png differ diff --git a/src/main/webapp/images/edit_notebook.png b/src/main/webapp/images/edit_notebook.png new file mode 100644 index 00000000..d99cfe9d Binary files /dev/null and b/src/main/webapp/images/edit_notebook.png differ diff --git a/src/main/webapp/images/edit_pencil.png b/src/main/webapp/images/edit_pencil.png new file mode 100644 index 00000000..8cbc2746 Binary files /dev/null and b/src/main/webapp/images/edit_pencil.png differ diff --git a/src/main/webapp/images/edit_set.png b/src/main/webapp/images/edit_set.png new file mode 100644 index 00000000..9b244398 Binary files /dev/null and b/src/main/webapp/images/edit_set.png differ diff --git a/src/main/webapp/images/edit_time.gif b/src/main/webapp/images/edit_time.gif new file mode 100644 index 00000000..bb2f0746 Binary files /dev/null and b/src/main/webapp/images/edit_time.gif differ diff --git a/src/main/webapp/images/evernote-alt.png b/src/main/webapp/images/evernote-alt.png new file mode 100644 index 00000000..9cb455ec Binary files /dev/null and b/src/main/webapp/images/evernote-alt.png differ diff --git a/src/main/webapp/images/favicon.ico b/src/main/webapp/images/favicon.ico new file mode 100644 index 00000000..0cea3f1b Binary files /dev/null and b/src/main/webapp/images/favicon.ico differ diff --git a/src/main/webapp/images/favicon.ico.bak b/src/main/webapp/images/favicon.ico.bak new file mode 100644 index 00000000..7388651f Binary files /dev/null and b/src/main/webapp/images/favicon.ico.bak differ diff --git a/src/main/webapp/images/house.png b/src/main/webapp/images/house.png new file mode 100644 index 00000000..8df234ff Binary files /dev/null and b/src/main/webapp/images/house.png differ diff --git a/src/main/webapp/images/imac.png b/src/main/webapp/images/imac.png new file mode 100644 index 00000000..f3c95abc Binary files /dev/null and b/src/main/webapp/images/imac.png differ diff --git a/src/main/webapp/images/loading1.gif b/src/main/webapp/images/loading1.gif new file mode 100644 index 00000000..788f9921 Binary files /dev/null and b/src/main/webapp/images/loading1.gif differ diff --git a/src/main/webapp/images/lock_unlock.png b/src/main/webapp/images/lock_unlock.png new file mode 100644 index 00000000..535dc1dd Binary files /dev/null and b/src/main/webapp/images/lock_unlock.png differ diff --git a/src/main/webapp/images/login_tip.jpg b/src/main/webapp/images/login_tip.jpg new file mode 100644 index 00000000..a41eb2d1 Binary files /dev/null and b/src/main/webapp/images/login_tip.jpg differ diff --git a/src/main/webapp/images/logo.jpg b/src/main/webapp/images/logo.jpg new file mode 100644 index 00000000..9eecd705 Binary files /dev/null and b/src/main/webapp/images/logo.jpg differ diff --git a/src/main/webapp/images/logo.png b/src/main/webapp/images/logo.png new file mode 100644 index 00000000..a2cd73f2 Binary files /dev/null and b/src/main/webapp/images/logo.png differ diff --git a/src/main/webapp/images/man.png b/src/main/webapp/images/man.png new file mode 100644 index 00000000..66ded5d5 Binary files /dev/null and b/src/main/webapp/images/man.png differ diff --git a/src/main/webapp/images/navtop_home.gif b/src/main/webapp/images/navtop_home.gif new file mode 100644 index 00000000..1a865701 Binary files /dev/null and b/src/main/webapp/images/navtop_home.gif differ diff --git a/src/main/webapp/images/navtop_logout.gif b/src/main/webapp/images/navtop_logout.gif new file mode 100644 index 00000000..eaa8c286 Binary files /dev/null and b/src/main/webapp/images/navtop_logout.gif differ diff --git a/src/main/webapp/images/preferences1.png b/src/main/webapp/images/preferences1.png new file mode 100644 index 00000000..39b9a2ca Binary files /dev/null and b/src/main/webapp/images/preferences1.png differ diff --git a/src/main/webapp/images/receipt-excel.png b/src/main/webapp/images/receipt-excel.png new file mode 100644 index 00000000..e36dfc31 Binary files /dev/null and b/src/main/webapp/images/receipt-excel.png differ diff --git a/src/main/webapp/images/suma_logo.png b/src/main/webapp/images/suma_logo.png new file mode 100644 index 00000000..a1c13095 Binary files /dev/null and b/src/main/webapp/images/suma_logo.png differ diff --git a/src/main/webapp/images/sysetem_name.jpg b/src/main/webapp/images/sysetem_name.jpg new file mode 100644 index 00000000..f1a0dcce Binary files /dev/null and b/src/main/webapp/images/sysetem_name.jpg differ diff --git a/src/main/webapp/images/sysetem_name3.jpg b/src/main/webapp/images/sysetem_name3.jpg new file mode 100644 index 00000000..35b86b12 Binary files /dev/null and b/src/main/webapp/images/sysetem_name3.jpg differ diff --git a/src/main/webapp/images/time.png b/src/main/webapp/images/time.png new file mode 100644 index 00000000..67176824 Binary files /dev/null and b/src/main/webapp/images/time.png differ diff --git a/src/main/webapp/images/user-red.png b/src/main/webapp/images/user-red.png new file mode 100644 index 00000000..bdd2e4d1 Binary files /dev/null and b/src/main/webapp/images/user-red.png differ diff --git a/src/main/webapp/images/user.png b/src/main/webapp/images/user.png new file mode 100644 index 00000000..c4b84e2e Binary files /dev/null and b/src/main/webapp/images/user.png differ diff --git a/src/main/webapp/images/user_business_boss.png b/src/main/webapp/images/user_business_boss.png new file mode 100644 index 00000000..0ac1ddb0 Binary files /dev/null and b/src/main/webapp/images/user_business_boss.png differ diff --git a/src/main/webapp/images/user_suit.png b/src/main/webapp/images/user_suit.png new file mode 100644 index 00000000..bf9321d3 Binary files /dev/null and b/src/main/webapp/images/user_suit.png differ diff --git a/src/main/webapp/images/valid_code.jpg b/src/main/webapp/images/valid_code.jpg new file mode 100644 index 00000000..15d8fdf7 Binary files /dev/null and b/src/main/webapp/images/valid_code.jpg differ diff --git a/src/main/webapp/images/vavtop_help.gif b/src/main/webapp/images/vavtop_help.gif new file mode 100644 index 00000000..85accc6f Binary files /dev/null and b/src/main/webapp/images/vavtop_help.gif differ diff --git a/src/main/webapp/images/windvane.png b/src/main/webapp/images/windvane.png new file mode 100644 index 00000000..a49441db Binary files /dev/null and b/src/main/webapp/images/windvane.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/favicon.ico b/src/main/webapp/js/HoorayOS_mini/favicon.ico new file mode 100644 index 00000000..c013eaf3 Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/favicon.ico differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/box.psd b/src/main/webapp/js/HoorayOS_mini/img/box.psd new file mode 100644 index 00000000..6067aeb0 Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/box.psd differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/exit.png b/src/main/webapp/js/HoorayOS_mini/img/exit.png new file mode 100644 index 00000000..7b45dd86 Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/exit.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/18-6.png b/src/main/webapp/js/HoorayOS_mini/img/ui/18-6.png new file mode 100644 index 00000000..d2315b23 Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/18-6.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/6-18.png b/src/main/webapp/js/HoorayOS_mini/img/ui/6-18.png new file mode 100644 index 00000000..8f95ff3c Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/6-18.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/amg_1.png b/src/main/webapp/js/HoorayOS_mini/img/ui/amg_1.png new file mode 100644 index 00000000..c44c3dbf Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/amg_1.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/amg_2.png b/src/main/webapp/js/HoorayOS_mini/img/ui/amg_2.png new file mode 100644 index 00000000..b801c269 Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/amg_2.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/amg_3.png b/src/main/webapp/js/HoorayOS_mini/img/ui/amg_3.png new file mode 100644 index 00000000..6a850d06 Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/amg_3.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/amg_4.png b/src/main/webapp/js/HoorayOS_mini/img/ui/amg_4.png new file mode 100644 index 00000000..2bf07727 Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/amg_4.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/amg_5.png b/src/main/webapp/js/HoorayOS_mini/img/ui/amg_5.png new file mode 100644 index 00000000..a4ce9df4 Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/amg_5.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/amg_body.png b/src/main/webapp/js/HoorayOS_mini/img/ui/amg_body.png new file mode 100644 index 00000000..4c8f073a Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/amg_body.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/amg_line_y.png b/src/main/webapp/js/HoorayOS_mini/img/ui/amg_line_y.png new file mode 100644 index 00000000..39b5ff84 Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/amg_line_y.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/amg_shortcut_hover.png b/src/main/webapp/js/HoorayOS_mini/img/ui/amg_shortcut_hover.png new file mode 100644 index 00000000..3ad1cf56 Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/amg_shortcut_hover.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/amg_top.png b/src/main/webapp/js/HoorayOS_mini/img/ui/amg_top.png new file mode 100644 index 00000000..659db576 Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/amg_top.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/app_list.png b/src/main/webapp/js/HoorayOS_mini/img/ui/app_list.png new file mode 100644 index 00000000..ea5babdf Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/app_list.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/app_spr_img.png b/src/main/webapp/js/HoorayOS_mini/img/ui/app_spr_img.png new file mode 100644 index 00000000..ebe31271 Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/app_spr_img.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/app_spr_x.png b/src/main/webapp/js/HoorayOS_mini/img/ui/app_spr_x.png new file mode 100644 index 00000000..5d3a7e3f Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/app_spr_x.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/avatar_120.jpg b/src/main/webapp/js/HoorayOS_mini/img/ui/avatar_120.jpg new file mode 100644 index 00000000..fe790aba Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/avatar_120.jpg differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/avatar_24.jpg b/src/main/webapp/js/HoorayOS_mini/img/ui/avatar_24.jpg new file mode 100644 index 00000000..7726e5c4 Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/avatar_24.jpg differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/avatar_48.jpg b/src/main/webapp/js/HoorayOS_mini/img/ui/avatar_48.jpg new file mode 100644 index 00000000..0a393fa7 Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/avatar_48.jpg differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/bought-table.png b/src/main/webapp/js/HoorayOS_mini/img/ui/bought-table.png new file mode 100644 index 00000000..144c3c50 Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/bought-table.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/browser.png b/src/main/webapp/js/HoorayOS_mini/img/ui/browser.png new file mode 100644 index 00000000..07654920 Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/browser.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/browser_backup.png b/src/main/webapp/js/HoorayOS_mini/img/ui/browser_backup.png new file mode 100644 index 00000000..b5432955 Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/browser_backup.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/commend_day.gif b/src/main/webapp/js/HoorayOS_mini/img/ui/commend_day.gif new file mode 100644 index 00000000..39ff7165 Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/commend_day.gif differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/default_icon.png b/src/main/webapp/js/HoorayOS_mini/img/ui/default_icon.png new file mode 100644 index 00000000..f7edb5d7 Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/default_icon.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/desk_sprite.png b/src/main/webapp/js/HoorayOS_mini/img/ui/desk_sprite.png new file mode 100644 index 00000000..f7c85a44 Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/desk_sprite.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/dock-tools.png b/src/main/webapp/js/HoorayOS_mini/img/ui/dock-tools.png new file mode 100644 index 00000000..4096ceea Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/dock-tools.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/dock_setting.jpg b/src/main/webapp/js/HoorayOS_mini/img/ui/dock_setting.jpg new file mode 100644 index 00000000..33c64ddb Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/dock_setting.jpg differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/file_default.png b/src/main/webapp/js/HoorayOS_mini/img/ui/file_default.png new file mode 100644 index 00000000..772a8d29 Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/file_default.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/file_excel.png b/src/main/webapp/js/HoorayOS_mini/img/ui/file_excel.png new file mode 100644 index 00000000..eb647386 Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/file_excel.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/file_image.png b/src/main/webapp/js/HoorayOS_mini/img/ui/file_image.png new file mode 100644 index 00000000..d680ba6d Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/file_image.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/file_music.png b/src/main/webapp/js/HoorayOS_mini/img/ui/file_music.png new file mode 100644 index 00000000..ec4fc46f Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/file_music.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/file_pdf.png b/src/main/webapp/js/HoorayOS_mini/img/ui/file_pdf.png new file mode 100644 index 00000000..57833e26 Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/file_pdf.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/file_ppt.png b/src/main/webapp/js/HoorayOS_mini/img/ui/file_ppt.png new file mode 100644 index 00000000..8d98a96b Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/file_ppt.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/file_rar.png b/src/main/webapp/js/HoorayOS_mini/img/ui/file_rar.png new file mode 100644 index 00000000..37c6cd92 Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/file_rar.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/file_txt.png b/src/main/webapp/js/HoorayOS_mini/img/ui/file_txt.png new file mode 100644 index 00000000..ef0f1a72 Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/file_txt.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/file_video.png b/src/main/webapp/js/HoorayOS_mini/img/ui/file_video.png new file mode 100644 index 00000000..4fbc8092 Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/file_video.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/file_word.png b/src/main/webapp/js/HoorayOS_mini/img/ui/file_word.png new file mode 100644 index 00000000..20c2de9c Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/file_word.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/folder_default.png b/src/main/webapp/js/HoorayOS_mini/img/ui/folder_default.png new file mode 100644 index 00000000..a1dacdbb Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/folder_default.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/folder_doc.png b/src/main/webapp/js/HoorayOS_mini/img/ui/folder_doc.png new file mode 100644 index 00000000..0f3559f0 Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/folder_doc.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/folder_game.png b/src/main/webapp/js/HoorayOS_mini/img/ui/folder_game.png new file mode 100644 index 00000000..ff42043b Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/folder_game.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/folder_life.png b/src/main/webapp/js/HoorayOS_mini/img/ui/folder_life.png new file mode 100644 index 00000000..28993212 Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/folder_life.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/folder_music.png b/src/main/webapp/js/HoorayOS_mini/img/ui/folder_music.png new file mode 100644 index 00000000..5e4c15d4 Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/folder_music.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/folder_tool.png b/src/main/webapp/js/HoorayOS_mini/img/ui/folder_tool.png new file mode 100644 index 00000000..661c26af Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/folder_tool.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/folder_video.png b/src/main/webapp/js/HoorayOS_mini/img/ui/folder_video.png new file mode 100644 index 00000000..fa2358e9 Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/folder_video.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/forder_selector.png b/src/main/webapp/js/HoorayOS_mini/img/ui/forder_selector.png new file mode 100644 index 00000000..47707a9c Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/forder_selector.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/globle.css b/src/main/webapp/js/HoorayOS_mini/img/ui/globle.css new file mode 100644 index 00000000..042de492 --- /dev/null +++ b/src/main/webapp/js/HoorayOS_mini/img/ui/globle.css @@ -0,0 +1,8 @@ +::selection{background:#99cc00;color:white /* Safari */} +::-moz-selection{background:#99cc00;color:white /* Firefox */} + +/*webkit滚动条样式*/ +::-webkit-scrollbar-track-piece{background-color:#f5f5f5;border-left:1px solid #d2d2d2} +::-webkit-scrollbar{width:13px;height:13px} +::-webkit-scrollbar-thumb{background-color:#c2c2c2;background-clip:padding-box;border:1px solid #979797;min-height:28px} +::-webkit-scrollbar-thumb:hover{border:1px solid #636363;background-color:#929292} \ No newline at end of file diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/google_ui_sprite.png b/src/main/webapp/js/HoorayOS_mini/img/ui/google_ui_sprite.png new file mode 100644 index 00000000..7f137dfa Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/google_ui_sprite.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/icon_main.png b/src/main/webapp/js/HoorayOS_mini/img/ui/icon_main.png new file mode 100644 index 00000000..3914acad Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/icon_main.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/index.css b/src/main/webapp/js/HoorayOS_mini/img/ui/index.css new file mode 100644 index 00000000..64b85d7a --- /dev/null +++ b/src/main/webapp/js/HoorayOS_mini/img/ui/index.css @@ -0,0 +1,209 @@ +*{margin:0;padding:0} +form,ul,ol,li,dl,dt,dd,h1,h2,h3,h4,h5,p{list-style:none outside none} +a{text-decoration:none;color:#ccc;outline:none} +a:hover{text-decoration:none} +a img{border:none} +.fr{float:right} +.fl{float:left} +.disn{display:none} + +/*webkit滚动条样式*/ +::-webkit-scrollbar-track-piece{background-color:#f5f5f5;border-left:1px solid #d2d2d2} +::-webkit-scrollbar{width:13px;height:13px} +::-webkit-scrollbar-thumb{background-color:#c2c2c2;background-clip:padding-box;border:1px solid #979797;min-height:28px} +::-webkit-scrollbar-thumb:hover{border:1px solid #636363;background-color:#929292} + +html{height:100%;overflow:hidden} +body{font:12px/1.8 'Segoe UI','微软雅黑',sans-serif;-moz-user-select:none;-webkit-user-select:none;user-select:none} +#desktop{position:absolute;z-index:1;width:100%;height:100%;display:none} +#accessory_zoom{position:absolute} + +/*浏览器缩放提示*/ +#zoom-tip{display:none;width:100%;background:#FEF8E3;position:relative;z-index:99} +#zoom-tip div{width:960px;height:50px;line-height:50px;font-size:14px;margin:0 auto;color:#984B12;position:relative} +#zoom-tip div i{width:27px;height:27px;background:url(warning.png) no-repeat;position:absolute;top:12px} +#zoom-tip div span{padding-left:30px} +#zoom-tip .close{font-size:6px;position:absolute;right:10px;top:6px;text-decoration:none} + +/** + * 浏览器升级提示 + * 5个浏览器图片为MorchaDesign版权所有,本项目使用已得到官方授权 + * 9 Browsers Icons Designed by Morcha Design + * http://www.morcha.net/post/46.html + */ +.update_browser_box{display:none;background:url(loginbg.png) repeat;position:absolute;z-index:9998;top:0;left:0;width:100%;height:100%;_height:expression(eval(document.documentElement.scrollTop+document.documentElement.clientHeight))} +.update_browser{width:640px;height:350px;position:absolute;left:50%;top:50%;margin-left:-320px;margin-top:-175px} +.update_browser .subtitle{width:640px;height:36px;line-height:18px;font-size:14px;color:#777} +.update_browser .title{width:640px;height:106px;line-height:96px;font-size:48px;text-align:center;color:#009AD9} +.update_browser .title span{font-size:60px;color:#F33} +.update_browser .browser{background:url(browser.png) no-repeat;width:640px;height:128px;overflow:hidden} +.update_browser .browser a{display:block;width:128px;height:128px;float:left;text-indent:-999em} +.update_browser .bottomtitle{width:640px;height:78px;line-height:78px;text-align:center;font-size:14px;color:#777} +.update_browser .bottomtitle a{color:#777} +.update_browser .bottomtitle a:hover{color:#999} + +/*遮罩层*/ +#maskbox{z-index:9000000;display:none;cursor:default;background:none;width:100%;height:100%;position:absolute;top:0;left:0} + +/*图标*/ +.appbtn, +#shortcut_shadow{width:86px;height:88px;text-align:center;position:absolute;z-index:0;cursor:pointer} +.appbtn:hover{background:url(desk_sprite.png) no-repeat -250px -100px} +.appbtn div{cursor:pointer;height:48px;width:48px;overflow:hidden;position:relative;margin:0 auto;margin-top:6px} +#shortcut_shadow, +#shortcut_shadow2{z-index:9999999;display:none} +.appbtn img, +#shortcut_shadow img{border-radius:3px 3px 3px 3px;display:block;height:48px;width:48px;margin:auto} +#shortcut_shadow img, +#shortcut_shadow span, +#shortcut_shadow2 img, +#shortcut_shadow2 span{filter:alpha(opacity=50);opacity:0.5} +.appbtn span, +#shortcut_shadow span{background:none repeat scroll 0 0 rgba(0, 0, 0, 0.3);border-radius:10px 10px 10px 10px;filter:none;color:#fff;display:inline-block;max-width:60px;height:20px;line-height:20px;margin-top:8px;overflow:hidden;padding:0 8px;position:relative;text-align:center;text-overflow:ellipsis;white-space:nowrap;z-index:1;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='img/ui/shortcut_text.png', sizingMethod='scale')} + +/*桌面*/ +#desk{position:absolute;z-index:1;top:0;bottom:30px;left:0;right:0;width:100%;height:100%;overflow:hidden} +#desk .desktop-container{width:100%;height:100%;overflow:hidden;position:absolute} +#desk .desktop-container .scrollbar{position:absolute;z-index:2;background:#ccc;display:none;-moz-border-radius:5px;-khtml-border-radius:5px;-webkit-border-radius:5px;border-radius:5px} +#desk .desktop-container .scrollbar:hover{background:#999} +#desk .desktop-container .scrollbar-x{bottom:0;height:10px} +#desk .desktop-container .scrollbar-y{right:0;width:10px} +#desk .desktop-container i.addicon{display:block;margin:auto;width:50px;height:50px;margin-top:5px;background:url(desk_sprite.png) no-repeat -420px -100px;cursor:pointer} + +/*窗口*/ +.window-container{position:absolute;background:#ccc;border:1px solid #000} +/*当前窗口*/ +.window-current{background:#fff} +/*最大化窗口*/ +.window-maximize{border:none !important} +/*标题*/ +.title-bar{position:relative;z-index:1;height:30px;line-height:30px;overflow:hidden;cursor:default;background:#ccc} +/*当前窗口标题*/ +.window-current .title-bar{background:#fff} +/*标题图标*/ +.title-bar .icon{position:absolute;top:7px;left:7px;width:16px;height:16px} +/*标题文字*/ +.title-bar .title{display:inline-block;width:100%;text-align:center;color:#000;font-size:14px} +/*窗口右上角操作按钮*/ +.title-handle{position:absolute;z-index:1;top:4px;right:4px;font-size:0;cursor:pointer} +.title-handle a{position:relative;text-decoration:none;letter-spacing:normal;text-align:center;display:inline-block;*display:inline;zoom:1;vertical-align:top;font-family:tahoma,arial,\5b8b\4f53,sans-serif;color:#000;font-size:22px;width:22px;height:22px;line-height:22px} +.title-handle a b{display:block;position:absolute;overflow:hidden;cursor:pointer} +.title-handle .ha-close{} +.title-handle .ha-close:hover{color:#03F} +.title-handle .ha-fullscreen{} +.title-handle .ha-fullscreen:hover{color:#03F} +.title-handle .ha-max .max-b{top:6px;left:4px;width:10px;height:5px;border:2px solid #000;border-top-width:4px} +.title-handle .ha-max:hover .max-b{border-color:#03F} +.title-handle .ha-revert .revert-b{top:5px;left:6px;width:8px;height:4px;border:2px solid #000;border-top-width:3px} +.title-handle .ha-revert .revert-t{top:9px;left:3px;width:8px;height:4px;border:2px solid #000;border-top-width:3px;background:#fff} +.title-handle .ha-revert:hover .revert-b, +.title-handle .ha-revert:hover .revert-t{border-color:#03F} +.title-handle .ha-hide .hide-b{top:12px;left:5px;width:12px;height:2px;border-bottom:2px solid #000} +.title-handle .ha-hide:hover .hide-b{border-color:#03F} +/*窗口内部iframe*/ +.window-frame{position:absolute;top:30px;right:0;bottom:0;left:0;background:#fff;border-top:1px solid #000} +*html .window-frame{ + height:expression((function(el){ + el.style.height=el.parentNode.clientHeight-30+"px"; + })(this)); +} +.window-frame iframe{position:absolute;border:0;height:100%;width:100%;top:0;bottom:0;left:0;right:0} +/*遮罩层*/ +.window-mask{position:absolute;z-index:9998;height:100%;width:100%;display:none;overflow:hidden;background:url(window_mask_bg.png) repeat-x} +.window-mask div{width:100%;text-align:center;margin-top:20px} +.window-mask .maskbg{margin-top:70px;height:75px;background:url(window_mask_icon.png) no-repeat center} +.window-loading{position:absolute;z-index:9999;width:100%;height:100%;background:#fff url(loading_48.gif) center center no-repeat} +.window-mask-noflash{background:none;filter:alpha(opacity=0);-moz-opacity:0;opacity:0;} +.window-resize{position:absolute;overflow:hidden;background:url(transparent.gif) repeat;display:block} +.window-resize-t{left:0;top:-8px;width:100%;height:10px;z-index:1;cursor:n-resize} +.window-resize-r{right:-8px;top:0;width:10px;height:100%;z-index:1;cursor:e-resize} +.window-resize-b{left:0;bottom:-8px;width:100%;height:10px;z-index:1;cursor:s-resize} +.window-resize-l{left:-8px;top:0;width:10px;height:100%;z-index:1;cursor:w-resize} +.window-resize-rt{right:-8px;top:-8px;width:10px;height:10px;z-index:2;cursor:ne-resize} +.window-resize-rb{right:-8px;bottom:-8px;width:10px;height:10px;z-index:2;cursor:se-resize} +.window-resize-lt{left:-8px;top:-8px;width:10px;height:10px;z-index:2;cursor:nw-resize} +.window-resize-lb{left:-8px;bottom:-8px;width:10px;height:10px;z-index:2;cursor:sw-resize} + +/*小挂件*/ +.widget{position:absolute} +.widget .move{width:100%;height:29px;background:url(widget_title_bg.png) repeat-x;cursor:move;border-radius:5px;display:none} +.widget:hover .move{display:block} +.widget a{position:absolute;display:none;top:4px;width:21px;height:21px;background:url(desk_sprite.png) no-repeat} +.widget:hover a{display:block} +.widget a.ha-close{right:5px;background-position:-350px -500px} +.widget a.ha-close:hover{background-position:-380px -500px} +.widget a.ha-star{right:30px;background-position:-350px -560px} +.widget a.ha-star:hover{background-position:-380px -560px} +.widget a.ha-share{right:55px;background-position:-350px -530px} +.widget a.ha-share:hover{background-position:-380px -530px} +.widget .frame{position:absolute;top:30px;bottom:0;left:0;right:0} +.widget .frame iframe{position:absolute;top:0;left:0;width:100%;height:100%} + +/*应用码头*/ +#dock-bar{position:absolute;display:none} +.top-bar{width:100%;height:73px;left:0;top:0} +.left-bar{width:73px;height:100%;left:0;top:0} +.right-bar{width:73px;height:100%;right:0;top:0} +#dock-container{position:absolute} +.dock-middle{background:url(desk_sprite.png) no-repeat 0 0} +.dock-left{width:73px;height:523px;top:50%;left:0;margin:-261px 0 0 0} +.dock-left .dock-middle{height:513px;padding-top:10px;background-position:0 -100px} +#dock-container .appbtn{width:58px;height:58px} +#dock-container .appbtn:hover{background:url(desk_sprite.png) no-repeat -350px -100px} +#dock-container .appbtn span{display:none} +.dock-applist{position:relative} +.dock-left .dock-applist{width:70px;height:443px;float:left;margin-top:3px;margin-left:3px} +.dock-left .dock-toollist{margin-left:5px;margin-top:8px;width:73px;height:60px;float:left;overflow:hidden} +.dock-toollist a{float:left;display:block;width:20px;height:20px;cursor:pointer;margin:0 6px 8px 3px} +.dock-toollist a img{width:20px;height:20px;border:none} + +.dock-top .dock-applist .appbtn{margin-top:1px} +.dock-left .dock-applist .appbtn{margin-left:1px} +.dock-right .dock-applist .appbtn{margin-left:3px} + +/*任务栏*/ +#task-bar-bg1{width:100%;height:130px;position:absolute;z-index:-1;bottom:0;background:url(task_bg1.png) repeat-x} +#task-bar-bg2{width:100%;height:64px;position:absolute;z-index:-1;bottom:0;background:url(task_bg2.png) repeat-x 0 41px} +#task-bar{height:64px;position:absolute;bottom:0;right:0} +#task-bar.min-zIndex{z-index:-1} +#task-next, +#task-pre{width:54px;height:100%;float:right;margin:0 1px;overflow:hidden;display:none} +#task-next{position:relative;z-index:9990;background:url(desk_sprite.png) no-repeat -200px -264px} +#task-next a{display:block;width:45px;height:35px;margin-top:20px;margin-left:15px;background:url(desk_sprite.png) no-repeat -265px -450px;cursor:pointer} +#task-next a:hover{background-position:-265px -402px} +#task-next a.disable{background-position:-265px -497px;cursor:default} +#task-pre{position:relative;z-index:9990;background:url(desk_sprite.png) no-repeat -350px -195px} +#task-pre a{display:block;width:20px;height:35px;margin-top:20px;margin-left:17px;background:url(desk_sprite.png) no-repeat -215px -450px;cursor:pointer} +#task-pre a:hover{background-position:-215px -402px} +#task-pre a.disable{background-position:-215px -497px;cursor:default} +#task-content{height:64px;float:right;overflow:hidden} +#task-content-inner{height:100%;float:right} +#task-content-inner.fl{float:left} +.task-item{position:relative;z-index:9990;display:block;width:112px;height:100%;float:right;margin:0 1px;vertical-align:middle;overflow:hidden;cursor:pointer;background:url(desk_sprite.png) no-repeat -200px -200px} +.task-item:hover{background-position:-200px -328px} +.task-item-current{background-position:-200px -264px} +.task-item-icon{width:32px;height:32px;margin:22px 5px;float:left} +.task-item-icon img{width:32px;height:32px;float:left} +.task-item-txt{width:70px;height:36px;line-height:36px;margin-top:27px;color:#fff;float:left;overflow:hidden} + +/*右键菜单*/ +.popup-menu{background:url(popup_menu.gif) repeat-y scroll 0 0 #FFFFFF;border:1px solid #AEAEAE;box-shadow:0 0 6px rgba(0, 0, 0, 0.4);position:absolute;width:125px} +.popup-menu ul{padding:1px;position:relative} +.popup-menu li{height:24px;position:relative;vertical-align:middle} +.popup-menu a{background-position:100px 100px;border-radius:2px 2px 2px 2px;color:#333333;display:block;height:24px;line-height:24px;overflow:hidden;padding-left:35px} +.popup-menu a:hover, +.popup-menu a.focus{background-color:#3B7CE6;background-position:0 -780px;color:#FFFFFF;text-decoration:none} +.popup-menu a.disabled, +.popup-menu a.disabled:hover{background-color:transparent;background-position:100px 100px;color:#ccc} +.popup-menu b{position:absolute;top:4px;left:5px;height:16px;width:16px;background:url(icon_main.png) no-repeat} +.popup-menu .arrow{background:none;top:0;left:108px;height:20px;line-height:20px;font-size:14px} +.popup-menu .folder{background-position:0 0} +.popup-menu .edit{background-position:0 -16px} +.popup-menu .setting{background-position:0 -32px} +.popup-menu .themes{background-position:0 -48px} +.popup-menu .hook{background-position:0 -64px;display:none} +.popup-menu .refresh{background-position:0 -80px} +.popup-menu .uninstall{background-position:0 -96px} +.popup-menu .del{background-position:0 -112px} +.popup-menu .upload{background-position:0 -128px} +.popup-menu .customapp{background-position:0 -144px} \ No newline at end of file diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/input-label.png b/src/main/webapp/js/HoorayOS_mini/img/ui/input-label.png new file mode 100644 index 00000000..9f2943f8 Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/input-label.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/loading_16.gif b/src/main/webapp/js/HoorayOS_mini/img/ui/loading_16.gif new file mode 100644 index 00000000..5b33f7e5 Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/loading_16.gif differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/loading_24.gif b/src/main/webapp/js/HoorayOS_mini/img/ui/loading_24.gif new file mode 100644 index 00000000..0393133b Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/loading_24.gif differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/loading_48.gif b/src/main/webapp/js/HoorayOS_mini/img/ui/loading_48.gif new file mode 100644 index 00000000..a2eae442 Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/loading_48.gif differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/login_icon.png b/src/main/webapp/js/HoorayOS_mini/img/ui/login_icon.png new file mode 100644 index 00000000..ce3814b9 Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/login_icon.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/loginbg.png b/src/main/webapp/js/HoorayOS_mini/img/ui/loginbg.png new file mode 100644 index 00000000..ae4fe07d Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/loginbg.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/loginsubmit.png b/src/main/webapp/js/HoorayOS_mini/img/ui/loginsubmit.png new file mode 100644 index 00000000..121fc90b Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/loginsubmit.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/nav_bar.png b/src/main/webapp/js/HoorayOS_mini/img/ui/nav_bar.png new file mode 100644 index 00000000..26491baa Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/nav_bar.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/open.png b/src/main/webapp/js/HoorayOS_mini/img/ui/open.png new file mode 100644 index 00000000..c8660229 Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/open.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/papp.png b/src/main/webapp/js/HoorayOS_mini/img/ui/papp.png new file mode 100644 index 00000000..005cd632 Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/papp.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/popup_menu.gif b/src/main/webapp/js/HoorayOS_mini/img/ui/popup_menu.gif new file mode 100644 index 00000000..4ee2a503 Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/popup_menu.gif differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/quick_view.png b/src/main/webapp/js/HoorayOS_mini/img/ui/quick_view.png new file mode 100644 index 00000000..f4fee329 Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/quick_view.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/scrollbar_bg.png b/src/main/webapp/js/HoorayOS_mini/img/ui/scrollbar_bg.png new file mode 100644 index 00000000..87d0a07f Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/scrollbar_bg.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/scrollbar_bgy.png b/src/main/webapp/js/HoorayOS_mini/img/ui/scrollbar_bgy.png new file mode 100644 index 00000000..bffd2bc4 Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/scrollbar_bgy.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/selected.gif b/src/main/webapp/js/HoorayOS_mini/img/ui/selected.gif new file mode 100644 index 00000000..8659cc21 Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/selected.gif differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/selected.png b/src/main/webapp/js/HoorayOS_mini/img/ui/selected.png new file mode 100644 index 00000000..c78d40bf Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/selected.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/share_icon.png b/src/main/webapp/js/HoorayOS_mini/img/ui/share_icon.png new file mode 100644 index 00000000..b5021270 Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/share_icon.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/shortcut_text.png b/src/main/webapp/js/HoorayOS_mini/img/ui/shortcut_text.png new file mode 100644 index 00000000..5d35cdcf Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/shortcut_text.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/spr_x.png b/src/main/webapp/js/HoorayOS_mini/img/ui/spr_x.png new file mode 100644 index 00000000..94a3e7f9 Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/spr_x.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/suggess_list_bg.png b/src/main/webapp/js/HoorayOS_mini/img/ui/suggess_list_bg.png new file mode 100644 index 00000000..f5dc2bd3 Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/suggess_list_bg.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/sys.css b/src/main/webapp/js/HoorayOS_mini/img/ui/sys.css new file mode 100644 index 00000000..ed634ae5 --- /dev/null +++ b/src/main/webapp/js/HoorayOS_mini/img/ui/sys.css @@ -0,0 +1,246 @@ +*{margin:0;padding:0} +form,ul,ol,li,dl,dt,dd,h1,h2,h3,h4,h5,p{list-style:none outside none} +textarea{resize:none;padding:5px} +.fr{float:right} +.fl{float:left} +.disn{display:none} +.breakword{ +white-space: pre; /* CSS 2.0 */ +white-space: pre-wrap; /* CSS 2.1 */ +white-space: pre-line; /* CSS 3.0 */ +white-space: -pre-wrap; /* Opera 4-6 */ +white-space: -o-pre-wrap; /* Opera 7 */ +white-space: -moz-pre-wrap; /* Mozilla */ +white-space: -hp-pre-wrap; /* HP Printers */ +word-wrap: break-word; /* IE 5 */ +} + +body{font:12px/1.8 'Segoe UI','微软雅黑',sans-serif} + +.title{background:url(app_spr_x.png) repeat-x 0 -40px #E6F2FA;border-bottom:1px solid #DDD;padding-left:10px;height:27px;line-height:27px;color:#666;clear:both} +.title{background-image:url(app_spr_x.png);background-repeat:repeat-x;position:relative;height:27px;padding:0 5px;line-height:27px;border-bottom:1px solid #DDD;background-position:0 -40px} +.title b{color:#F60} +.title .btn-back{float:left;margin:4px 5px 0 0} +.title ul{margin:0;position:absolute;top:0;left:-1px;height:28px;overflow:hidden} +.title li{float:left;height:28px;padding:0 10px;line-height:28px} +.title li.focus{padding:0 9px;font-weight:bold;border-left:1px solid #DDD;border-right:1px solid #DDD;background:#FFF;cursor:default} +.title li a{color:#555;cursor:pointer;text-decoration:none} +.title li a:hover{color:#36C} + +.detile-title{padding:10px 0;margin:0;text-indent:15px;border-bottom:2px solid #ddd;font-weight:bold} +.input-label{float:left;width:100%;background:url(input-label.png) repeat-y;padding:10px 0;line-height:28px;border-bottom:1px solid #eee;clear:both} +.input-label .label-text{float:left;padding-right:20px;text-align:right;width:130px;margin-bottom:0;line-height:28px} +.input-label .label-box{margin:0 10px;padding-left:150px} + +/*列表*/ +.list-table{width:100%;border-collapse:collapse} +.list-table .col-name th{font-weight:normal;height:31px;text-align:center;background:url(bought-table.png) repeat-x;border-top:1px solid #c4d5e0;border-bottom:1px solid #c4d5e0;color:black} +.list-table .sep-row{height:7px} +.list-table .toolbar{height:30px;background-color:#F3F3F3} +.list-table .toolbar td{border:1px solid #DEDEE0;border-width:1px 0} +.list-table .list-hd{background:#E8F2FF;color:#404040} +.list-table .list-hd td{border:1px solid #D4E7FF;height:28px;padding-bottom:1px;line-height:28px} +.list-table .list-bd td{padding:8px 5px;overflow:hidden;text-align:center;vertical-align:middle;border:1px solid #D4E7FF;border-left-color:#E6E6E6;border-right-color:#E6E6E6} +.list-table .list-count{font-family:'Courier New',Courier,mono;font-style:italic;font-weight:bold;margin:0 8px 0 5px;font-size:14px} + +/* 壁纸设置 */ +.wallpapertype{width:500px;height:40px;line-height:40px;margin:auto;margin-top:10px} +.wallpaper{width:500px;margin:auto;margin-top:10px} +.wallpaper li{width:150px;height:110px;float:left;margin-right:10px;border:5px solid #fff;background:#fff;cursor:pointer} +.wallpaper li.three{margin-right:0} +.wallpaper li:hover{border-color:#9FF;background:#9FF} +.wallpaper li div{width:150px;height:20px;line-height:20px;text-align:center} +.wapppapercustom{width:500px;margin:auto;margin-top:10px;border:1px solid #ccc} +.wapppapercustom .tip{padding:10px} +.wapppapercustom .view{width:500px;height:250px} +.wapppapercustom .view ul{width:480px;height:230px;line-height:230px;margin:auto;margin-bottom:15px;text-align:center} +.wapppapercustom .view ul li{border:5px solid #fff;overflow:hidden;float:left;width:150px;height:105px;margin:5px 0;position:relative} +.wapppapercustom .view ul li a{display:none;position:absolute;z-index:2;top:-5px;right:-5px;text-decoration:none;width:48px;height:32px;line-height:32px;text-align:center;background-color:#ccc} +.wapppapercustom .view ul li:hover{border-color:#ccc;cursor:pointer} +.wapppapercustom .view ul li:hover a{display:block} +.wapppaperwebsite{width:480px;margin:auto;margin-top:10px;padding:10px;border:1px solid #ccc} + +/* 皮肤设置 */ +.skin{width:550px;margin:auto;margin-top:10px} +.skin li{width:256px;height:156px;margin:0 4px 10px 4px;float:left;border:5px solid #fff;background:#fff;cursor:pointer;position:relative} +.skin li:hover{border-color:#9FF;background:#9FF} +.skin li div{display:none;width:48px;height:48px;background:url(selected.png) no-repeat;position:absolute;right:-15px;bottom:-15px} +.skin li.selected div{display:block} + +/* 应用码头位置设置 */ +.dock_setting{width:710px;margin:auto} +.dock_setting table{width:100%} +.dock_setting .set_top{padding:10px 0 10px 320px} +.dock_setting .set_left{padding:0 5px} +.dock_setting .set_right{padding:0 5px} +.dock_setting .set_view{display:inline;float:left;width:550px;height:280px;background-image:url(dock_setting.jpg)} +.dock_setting .set_view_top{background-position:0 0} +.dock_setting .set_view_left{background-position:0 -280px} +.dock_setting .set_view_right{background-position:0 -560px} + +/* 应用市场 */ +.sub-nav{position:absolute;z-index:2;top:0;bottom:0;left:0;width:60px;height:100%} +.sub-nav ul{position:absolute;width:54px;height:100%;margin:0 0 0 5px} +.sub-nav ul .all{margin-top:5px} +.sub-nav ul .myapps{position:absolute;bottom:10px} +.sub-nav ul li a{padding-right:0;min-width:28px!important} +.sub-nav ul li a:hover, +.sub-nav ul .active a, +.sub-nav ul .active a:hover{background:#EEE} + +.wrap{position:absolute;top:0;right:0;bottom:0;left:60px;_position:relative;_left:0;_height:100%;_margin-left:60px;overflow:auto;background:#EEE} +.mbox{border:1px solid #DDD;background:#FFF} +.app-contents, +.col-main{position:relative;padding:10px;overflow:hidden} +.col-sub{float:right;width:215px;padding:10px 10px 0 0;overflow:hidden} +.app-list-box{height:400px;overflow:hidden} + +.app-list-box .app-list{margin:0;height:324px;overflow:hidden;background:url(app_list.png)} +.app-list-box .app-list li{position:relative;height:54px;padding:6px 0 6px 68px;vertical-align:middle;overflow:hidden} +.app-list-box .app-list li:hover{background:#FBEFCE} +.app-list-box .app-list li a{color:#555;text-decoration:none} +.app-list-box .app-list li a:hover{color:#36C} +.app-list-box .app-list img{position:absolute;top:9px;left:10px;width:48px;height:48px} +.app-list-box .app-list .app-name, +.app-list-box .app-list .app-desc{display:block;width:240px;height:27px;line-height:27px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis} +.app-list-box .app-list .app-name{font-weight:bold} +.app-list-box .app-list .app-desc{color:#999} +.app-list-box .app-list .app-desc b{font-weight:normal} +.btn-add-s, +.btn-run-s, +.btn-remove-s, +.btn-loading-s{display:inline-block;width:24px;height:24px;line-height:20;overflow:hidden;background-position:0 -110px;position:absolute;top:21px;right:20px;background:url(app_spr_img.png) no-repeat} +.btn-add-s{background-position:0 -110px} +.btn-add-s:hover{background-position:-25px -110px} +.btn-add-s:active{background-position:-50px -110px} +.btn-run-s{background-position:0 -135px} +.btn-run-s:hover{background-position:-25px -135px} +.btn-run-s:active{background-position:-50px -135px} +.btn-remove-s{background-position:0 -160px} +.btn-remove-s:hover{background-position:-25px -160px} +.btn-remove-s:active{background-position:-50px -160px} +.btn-loading-s{background:url(loading_24.gif) no-repeat} + +.app-list .star-box, +.app-list .star-box i{background:url(app_spr_img.png) no-repeat} +.app-list .star-box{position:relative;top:-46px;left:252px;display:inline-block;width:85px;height:15px;background-position:0 -62px} +.app-list .star-box i{position:absolute;font-style:normal;top:0;left:0;height:15px;overflow:hidden;background-position:0 -78px} +.app-list .star-num{position:absolute;top:10px;left:415px;display:inline-block;height:21px;line-height:21px;font-family:Georgia;font-weight:bold;font-size:16px;color:#F60} +.app-list .app-stat{position:absolute;top:36px;right:93px;color:#999} +.app-list .app-list-box .app-list b{color:#F60} + +.search-box{position:relative;height:28px;margin-bottom:8px} + +.btn-add, +.btn-run{float:right;display:inline-block;width:93px;height:30px;line-height:31px;text-indent:29px;overflow:hidden;color:#fff;background:url(app_spr_img.png) no-repeat;text-decoration:none} +.btn-add:hover{background-position:-94px 0} +.btn-add:active{background-position:-188px 0} +.btn-run{background-position:0 -31px} +.btn-run:hover{background-position:-94px -31px} +.btn-run:active{background-position:-188px -31px} + +.commend-day{height:176px;margin-bottom:10px;overflow:hidden} +.commend-day h3{margin:0;padding:0 10px;height:30px;line-height:31px;font-size:12px;overflow:hidden;border-bottom:1px solid #DDD;background-image:url(app_spr_x.png);background-repeat:repeat-x;background-position:0 -37px} +.commend-day .star-box, +.commend-day .star-box i{background:url(app_spr_img.png) no-repeat} +.commend-day .star-box{position:relative;left:0;top:0;float:left;margin:5px 0 0 8px;display:inline-block;width:85px;height:15px;background-position:0 -62px} +.commend-day .star-box i{position:absolute;font-style:normal;top:0;left:0;height:15px;overflow:hidden;background-position:0 -78px} +.commend-container{position:relative;float:left;width:48px;height:48px;margin:10px 0 0 5px;overflow:hidden;padding:7px 21px 45px;background:url(commend_day.gif) no-repeat 0 0;_display:inline} +.commend-text{float:right;width:100px;padding:0 10px 0 0;line-height:18px;color:#999} +.commend-text h4{margin-top:0;margin-bottom:3px;padding:3px 0;font-size:12px;color:#555;border-bottom:1px solid #DDD} +.commend-text h4 strong, +.commend-text h4 span{display:block} +.commend-text h4 span{font-weight:normal;color:#999} +.commend-text .con{width:100px;height:54px;word-wrap:break-word;overflow:hidden} +.commend-text .btn-add, +.commend-text .btn-run{margin-top:5px;margin-right:5px;color:#fff;text-decoration:none} + +.detail-wrap{background:#EEE} +.detail-wrap .btn-back{display:inline-block;width:35px;height:20px;padding-left:15px;line-height:21px;overflow:hidden;color:#fff;background:url(app_spr_img.png) no-repeat -129px -83px;text-decoration:none} +.detail-wrap .btn-back:hover{background-position:-180px -83px} +.detail-wrap .btn-back:active{background-position:-231px -83px} + +.app-title{position:relative;height:48px;padding:9px 0 8px 68px;border-bottom:1px solid #DDD;background:url(app_spr_x.png) repeat-x 0 -68px} +.app-title img{position:absolute;top:9px;left:10px;width:48px;height:48px} +.app-title span{display:block;line-height:24px} +.app-title .app-name{font-weight:bold;font-size:14px} +.app-title .app-desc{color:#999} +.app-title .app-desc i{color:#F60;font-style:normal} +.app-title .btn-add, +.app-title .btn-run{position:absolute;top:17px;right:10px;color:#fff;text-decoration:none} + +.grade-box{width:100px;height:18px;position:absolute;top:75px;right:10px} +.grade-box .star-box, +.grade-box .star-box i, +.grade-box .star-box a{background-image:url(app_spr_img.png);_background-image:url(app_spr_img.gif);background-repeat:no-repeat} +.grade-box .star-box{float:right} +.grade-box .star-num{float:right;margin:-3px 0 0 4px} +.grade-box .star-box{position:relative;display:inline-block;width:85px;height:15px;background-position:0 -62px} +.grade-box .star-box div{width:40px;height:18px;line-height:18px;float:left;position:relative;left:-40px} +.grade-box .star-box i{position:absolute;top:0;left:0;height:15px;overflow:hidden;background-position:0 -78px;font-style:normal} +.grade-box .star-box ul, +.grade-box .star-box li{position:absolute;margin:0} +.grade-box .star-box a{display:block;height:15px;background-position:100px 100px} +.grade-box .star-box a:hover{background-position:0 -94px} +.grade-box .star-box a em{visibility:hidden;position:absolute;top:-2px;left:-84px;width:80px;text-align:right;color:#999;font-style:normal;background-color:#fff} +.grade-box .star-box a:hover em{visibility:visible} +.grade-box .grade-1{width:17px;z-index:10} +.grade-box .grade-2{width:34px;z-index:9} +.grade-box .grade-3{width:51px;z-index:8} +.grade-box .grade-4{width:68px;z-index:7} +.grade-box .grade-5{width:85px;z-index:6} +.grade-box .star-num{display:inline-block;height:21px;line-height:21px;font-family:Georgia;font-weight:bold;font-size:16px;color:#F60} + +.app-contents h4{margin:0 10px;line-height:31px;font-size:12px} +.app-contents h5{margin:0 10px;line-height:23px;font-weight:normal;font-size:12px} +.app-contents h5 em{color:#999;font-style:normal} +.app-text{margin:5px 10px;padding:5px;border-top:1px dotted #DDD} + +/* 应用管理 */ +.bottom-bar{border-top:1px solid #ddd;width:100%;height:62px;overflow:hidden;position:fixed;z-index:999;bottom:0} +.bottom-bar .con{background:#F2F2F2;height:42px;padding:10px} + +.creatbox{position:absolute;top:0;bottom:0;left:0;right:0} +.creatbox .middle{border-bottom:1px solid #fff;position:absolute;top:0;bottom:50px;left:0;right:0;overflow:auto} + +.shortcutbox{display:inline-block;width:58px;height:58px;border:1px solid #fff;position:relative;z-index:1000} +.shortcutbox:hover{border:1px solid #ccc;border-right:1px solid #fff} +.shortcutbox:hover .shortcut-selicon{display:block} + +.shortcut-addicon{display:inline-block;width:50px;height:50px;margin:4px;background:url(desk_sprite.png) no-repeat -420px -100px;cursor:pointer;position:relative;overflow:hidden} +.shortcut-addicon.bgnone{background:none} +.shortcut-addicon img{width:48px;height:48px;margin:1px} +.shortcut-selicon{position:absolute;top:-1px;left:58px;width:340px;padding:10px 0 0 10px;background:#fff;border:1px solid #ccc;display:none} +.shortcut-selicon a{display:block;width:48px;height:48px;padding:5px;margin-right:10px;margin-bottom:10px;float:left} +.shortcut-selicon a:hover{background:url(desk_sprite.png) no-repeat -350px -100px} +.shortcut-selicon img{width:48px;height:48px} + +/*权限管理*/ +.permissions_apps{width:100%;float:left;clear:right} +.permissions_apps .app{width:48px;height:48px;margin:0 10px 10px;float:left;position:relative} +.permissions_apps .app img{width:48px;height:48px} +.permissions_apps .app .del{display:none;position:absolute;right:-6px;top:-6px;text-align:center;font-size:12px;width:20px;height:20px;line-height:20px;cursor:pointer;background:#E6110E;color:#fff;border-radius:10px;-moz-border-radius:10px;-webkit-border-radius:10px} +.permissions_apps .app:hover .del{display:block} + +.alert_addapps{width:340px;margin:auto} +.alert_addapps .app{width:48px;height:48px;margin:10px 10px 20px 10px;float:left;position:relative;cursor:pointer} +.alert_addapps .app img{width:48px;height:48px} +.alert_addapps .app .name{width:100%;height:24px;line-height:24px;overflow:hidden} +.alert_addapps .app .selected{display:none;position:absolute;width:16px;height:16px;right:0;bottom:0;background:url(selected.gif) no-repeat} +.alert_addapps .act .selected{display:block} + + + + + + + + + + + + + + + + diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/system-chart-bar.png b/src/main/webapp/js/HoorayOS_mini/img/ui/system-chart-bar.png new file mode 100644 index 00000000..572e0ad3 Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/system-chart-bar.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/system-document-edit.png b/src/main/webapp/js/HoorayOS_mini/img/ui/system-document-edit.png new file mode 100644 index 00000000..5c5d6b2b Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/system-document-edit.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/system-documents.png b/src/main/webapp/js/HoorayOS_mini/img/ui/system-documents.png new file mode 100644 index 00000000..5c09fca6 Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/system-documents.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/system-gear.png b/src/main/webapp/js/HoorayOS_mini/img/ui/system-gear.png new file mode 100644 index 00000000..fc96cdd8 Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/system-gear.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/system-mail.png b/src/main/webapp/js/HoorayOS_mini/img/ui/system-mail.png new file mode 100644 index 00000000..ff05394b Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/system-mail.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/system-puzzle.png b/src/main/webapp/js/HoorayOS_mini/img/ui/system-puzzle.png new file mode 100644 index 00000000..1452e2bf Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/system-puzzle.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/system-shapes.png b/src/main/webapp/js/HoorayOS_mini/img/ui/system-shapes.png new file mode 100644 index 00000000..269372b4 Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/system-shapes.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/system-star.png b/src/main/webapp/js/HoorayOS_mini/img/ui/system-star.png new file mode 100644 index 00000000..072c3279 Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/system-star.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/system-users.png b/src/main/webapp/js/HoorayOS_mini/img/ui/system-users.png new file mode 100644 index 00000000..89d38727 Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/system-users.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/system-wrench.png b/src/main/webapp/js/HoorayOS_mini/img/ui/system-wrench.png new file mode 100644 index 00000000..6f97a05e Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/system-wrench.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/task_bg1.png b/src/main/webapp/js/HoorayOS_mini/img/ui/task_bg1.png new file mode 100644 index 00000000..380acfae Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/task_bg1.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/task_bg2.png b/src/main/webapp/js/HoorayOS_mini/img/ui/task_bg2.png new file mode 100644 index 00000000..40547803 Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/task_bg2.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/transparent.gif b/src/main/webapp/js/HoorayOS_mini/img/ui/transparent.gif new file mode 100644 index 00000000..35d42e80 Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/transparent.gif differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/warning.png b/src/main/webapp/js/HoorayOS_mini/img/ui/warning.png new file mode 100644 index 00000000..0e3aed53 Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/warning.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/widget_title_bg.png b/src/main/webapp/js/HoorayOS_mini/img/ui/widget_title_bg.png new file mode 100644 index 00000000..6030ff70 Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/widget_title_bg.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/window_mask_bg.png b/src/main/webapp/js/HoorayOS_mini/img/ui/window_mask_bg.png new file mode 100644 index 00000000..01cd25ab Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/window_mask_bg.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/ui/window_mask_icon.png b/src/main/webapp/js/HoorayOS_mini/img/ui/window_mask_icon.png new file mode 100644 index 00000000..b6af786b Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/ui/window_mask_icon.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/img/wallpaper/wallpaper.jpg b/src/main/webapp/js/HoorayOS_mini/img/wallpaper/wallpaper.jpg new file mode 100644 index 00000000..ae25fc36 Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/img/wallpaper/wallpaper.jpg differ diff --git a/src/main/webapp/js/HoorayOS_mini/index.html b/src/main/webapp/js/HoorayOS_mini/index.html new file mode 100644 index 00000000..e8741650 --- /dev/null +++ b/src/main/webapp/js/HoorayOS_mini/index.html @@ -0,0 +1,105 @@ + + + + +HoorayOS桌面应用框架 + + + + + +
+ +
+
+
您正在使用的IE浏览器版本过低,
我们建议您升级或者更换浏览器,以便体验顺畅、兼容、安全的互联网。
+
选择一款浏览器吧
+ + +
+
+ +
+
×
+
+
+
+
+
+
+ +
+ + + + + + + + + + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/webapp/js/HoorayOS_mini/js/HoorayLibs/ZeroClipboard.swf b/src/main/webapp/js/HoorayOS_mini/js/HoorayLibs/ZeroClipboard.swf new file mode 100644 index 00000000..13bf8e39 Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/js/HoorayLibs/ZeroClipboard.swf differ diff --git a/src/main/webapp/js/HoorayOS_mini/js/HoorayLibs/gb_tip_layer.png b/src/main/webapp/js/HoorayOS_mini/js/HoorayLibs/gb_tip_layer.png new file mode 100644 index 00000000..74ab5f5a Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/js/HoorayLibs/gb_tip_layer.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/js/HoorayLibs/gb_tip_layer_ie6.png b/src/main/webapp/js/HoorayOS_mini/js/HoorayLibs/gb_tip_layer_ie6.png new file mode 100644 index 00000000..9b4c806d Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/js/HoorayLibs/gb_tip_layer_ie6.png differ diff --git a/src/main/webapp/js/HoorayOS_mini/js/HoorayLibs/gb_tip_loading.gif b/src/main/webapp/js/HoorayOS_mini/js/HoorayLibs/gb_tip_loading.gif new file mode 100644 index 00000000..e846e1d6 Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/js/HoorayLibs/gb_tip_loading.gif differ diff --git a/src/main/webapp/js/HoorayOS_mini/js/HoorayLibs/hooraylibs.css b/src/main/webapp/js/HoorayOS_mini/js/HoorayLibs/hooraylibs.css new file mode 100644 index 00000000..90664671 --- /dev/null +++ b/src/main/webapp/js/HoorayOS_mini/js/HoorayLibs/hooraylibs.css @@ -0,0 +1,41 @@ +#topcontrol{z-index:999} +#topcontrol a{display:block;width:54px;height:41px;background:url(scrolltotop.gif) no-repeat 0 0} +#topcontrol a:hover{display:block;width:54px;height:41px;background:url(scrolltotop.gif) no-repeat -54px 0} + +.zeng_msgbox_layer, +.zeng_msgbox_layer .gtl_ico_succ, +.zeng_msgbox_layer .gtl_ico_fail, +.zeng_msgbox_layer .gtl_ico_hits, +.zeng_msgbox_layer .gtl_ico_clear, +.zeng_msgbox_layer .gtl_end{display:inline-block;height:54px;line-height:54px;font-weight:bold;font-size:14px;color:#606060;background-image:url(gb_tip_layer.png);_background-image:url(gb_tip_layer_ie6.png);background-repeat:no-repeat} +.zeng_msgbox_layer_wrap{width:100%;position:fixed;_position:absolute;top:46%;left:0;text-align:center;z-index:65533} +.zeng_msgbox_layer{background-position:0 -161px;background-repeat:repeat-x;padding:0 18px 0 9px;margin:0 auto;position:relative} +.zeng_msgbox_layer .gtl_ico_succ{background-position:-6px 0;left:-45px;top:0;width:45px;position:absolute} +.zeng_msgbox_layer .gtl_end{background-position:0 0;position:absolute;right:-6px;top:0;width:6px} +.zeng_msgbox_layer .gtl_ico_fail{background-position:-6px -108px;position:absolute;left:-45px;top:0;width:45px} +.zeng_msgbox_layer .gtl_ico_hits{background-position:-6px -54px;position:absolute;left:-45px;top:0;width:45px} +.zeng_msgbox_layer .gtl_ico_clear{background-position:-6px 0;left:-5px;width:5px;position:absolute;top:0} +.zeng_msgbox_layer .gtl_ico_loading{width:16px;height:16px;border:0;background-image:url(gb_tip_loading.gif);float:left;margin:19px 10px 0 5px} + +.colorTip{display:none;position:absolute;left:50%;top:-30px;padding:6px;background-color:white;font-family:Arial,Helvetica,sans-serif;font-size:11px;font-style:normal;line-height:1;text-decoration:none;text-align:center;text-shadow:0 0 1px white;white-space:nowrap;-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px} +.pointyTip,.pointyTipShadow{border:6px solid transparent;bottom:-12px;height:0;left:50%;margin-left:-6px;position:absolute;width:0} +.pointyTipShadow{border-width:7px;bottom:-14px;margin-left:-7px} +.colorTipContainer{position:relative;text-decoration:none!important} +.white .pointyTip{border-top-color:white} +.white .pointyTipShadow{border-top-color:#ddd} +.white .colorTip{background-color:white;border:1px solid #ddd;color:#555} +.yellow .pointyTip{border-top-color:#f9f2ba} +.yellow .pointyTipShadow{border-top-color:#e9d315} +.yellow .colorTip{background-color:#f9f2ba;border:1px solid #e9d315;color:#5b5316} +.blue .pointyTip{border-top-color:#d9f1fb} +.blue .pointyTipShadow{border-top-color:#7fcdee} +.blue .colorTip{background-color:#d9f1fb;border:1px solid #7fcdee;color:#1b475a} +.green .pointyTip{border-top-color:#f2fdf1} +.green .pointyTipShadow{border-top-color:#b6e184} +.green .colorTip{background-color:#f2fdf1;border:1px solid #b6e184;color:#558221} +.red .pointyTip{border-top-color:#bb3b1d} +.red .pointyTipShadow{border-top-color:#8f2a0f} +.red .colorTip{background-color:#bb3b1d;border:1px solid #8f2a0f;color:#fcfcfc;text-shadow:none} +.black .pointyTip{border-top-color:#333} +.black .pointyTipShadow{border-top-color:#111} +.black .colorTip{background-color:#333;border:1px solid #111;color:#fcfcfc;text-shadow:none} \ No newline at end of file diff --git a/src/main/webapp/js/HoorayOS_mini/js/HoorayLibs/hooraylibs.js b/src/main/webapp/js/HoorayOS_mini/js/HoorayLibs/hooraylibs.js new file mode 100644 index 00000000..572f6ddb --- /dev/null +++ b/src/main/webapp/js/HoorayOS_mini/js/HoorayLibs/hooraylibs.js @@ -0,0 +1,120 @@ +/** + * 整理:胡尐睿丶 + * 联系:hooray0905@foxmail.com + */ + + +/** + * ie6 png透明修正 + * DD_belatedPNG.fix('.png_bg'); + * DD_belatedPNG.fixPng( someNode ); + * http://www.dillerdesign.com/experiment/DD_belatedPNG/ + */ +if($.browser.msie&&($.browser.version=="6.0")&&!$.support.style){var DD_belatedPNG={ns:"DD_belatedPNG",imgSize:{},delay:10,nodesFixed:0,createVmlNameSpace:function(){if(document.namespaces&&!document.namespaces[this.ns]){document.namespaces.add(this.ns,"urn:schemas-microsoft-com:vml")}},createVmlStyleSheet:function(){var b,a;b=document.createElement("style");b.setAttribute("media","screen");document.documentElement.firstChild.insertBefore(b,document.documentElement.firstChild.firstChild);if(b.styleSheet){b=b.styleSheet;b.addRule(this.ns+"\\:*","{behavior:url(#default#VML)}");b.addRule(this.ns+"\\:shape","position:absolute;");b.addRule("img."+this.ns+"_sizeFinder","behavior:none; border:none; position:absolute; z-index:-1; top:-10000px; visibility:hidden;");this.screenStyleSheet=b;a=document.createElement("style");a.setAttribute("media","print");document.documentElement.firstChild.insertBefore(a,document.documentElement.firstChild.firstChild);a=a.styleSheet;a.addRule(this.ns+"\\:*","{display: none !important;}");a.addRule("img."+this.ns+"_sizeFinder","{display: none !important;}")}},readPropertyChange:function(){var b,c,a;b=event.srcElement;if(!b.vmlInitiated){return}if(event.propertyName.search("background")!=-1||event.propertyName.search("border")!=-1){DD_belatedPNG.applyVML(b)}if(event.propertyName=="style.display"){c=(b.currentStyle.display=="none")?"none":"block";for(a in b.vml){if(b.vml.hasOwnProperty(a)){b.vml[a].shape.style.display=c}}}if(event.propertyName.search("filter")!=-1){DD_belatedPNG.vmlOpacity(b)}},vmlOpacity:function(b){if(b.currentStyle.filter.search("lpha")!=-1){var a=b.currentStyle.filter;a=parseInt(a.substring(a.lastIndexOf("=")+1,a.lastIndexOf(")")),10)/100;b.vml.color.shape.style.filter=b.currentStyle.filter;b.vml.image.fill.opacity=a}},handlePseudoHover:function(a){setTimeout(function(){DD_belatedPNG.applyVML(a)},1)},fix:function(a){if(this.screenStyleSheet){var c,b;c=a.split(",");for(b=0;bn.H){i.B=n.H}d.vml.image.shape.style.clip="rect("+i.T+"px "+(i.R+a)+"px "+i.B+"px "+(i.L+a)+"px)"}else{d.vml.image.shape.style.clip="rect("+f.T+"px "+f.R+"px "+f.B+"px "+f.L+"px)"}},figurePercentage:function(d,c,f,a){var b,e;e=true;b=(f=="X");switch(a){case"left":case"top":d[f]=0;break;case"center":d[f]=0.5;break;case"right":case"bottom":d[f]=1;break;default:if(a.search("%")!=-1){d[f]=parseInt(a,10)/100}else{e=false}}d[f]=Math.ceil(e?((c[b?"W":"H"]*d[f])-(c[b?"w":"h"]*d[f])):parseInt(a,10));if(d[f]%2===0){d[f]++}return d[f]},fixPng:function(c){c.style.behavior="none";var g,b,f,a,d;if(c.nodeName=="BODY"||c.nodeName=="TD"||c.nodeName=="TR"){return}c.isImg=false;if(c.nodeName=="IMG"){if(c.src.toLowerCase().search(/\.png$/)!=-1){c.isImg=true;c.style.visibility="hidden"}else{return}}else{if(c.currentStyle.backgroundImage.toLowerCase().search(".png")==-1){return}}g=DD_belatedPNG;c.vml={color:{},image:{}};b={shape:{},fill:{}};for(a in c.vml){if(c.vml.hasOwnProperty(a)){for(d in b){if(b.hasOwnProperty(d)){f=g.ns+":"+d;c.vml[a][d]=document.createElement(f)}}c.vml[a].shape.stroked=false;c.vml[a].shape.appendChild(c.vml[a].fill);c.parentNode.insertBefore(c.vml[a].shape,c)}}c.vml.image.shape.fillcolor="none";c.vml.image.fill.type="tile";c.vml.color.fill.on=false;g.attachHandlers(c);g.giveLayout(c);g.giveLayout(c.offsetParent);c.vmlInitiated=true;g.applyVML(c)}};try{document.execCommand("BackgroundImageCache",false,true)}catch(r){}DD_belatedPNG.createVmlNameSpace();DD_belatedPNG.createVmlStyleSheet();} + +/** + * SWFObject v2.2 + * http://code.google.com/p/swfobject/ + * swfobject.embedSWF("test.swf", "myContent", "300", "120", "9.0.0", "expressInstall.swf"); + */ +var swfobject=function(){var D="undefined",r="object",S="Shockwave Flash",W="ShockwaveFlash.ShockwaveFlash",q="application/x-shockwave-flash",R="SWFObjectExprInst",x="onreadystatechange",O=window,j=document,t=navigator,T=false,U=[h],o=[],N=[],I=[],l,Q,E,B,J=false,a=false,n,G,m=true,M=function(){var aa=typeof j.getElementById!=D&&typeof j.getElementsByTagName!=D&&typeof j.createElement!=D,ah=t.userAgent.toLowerCase(),Y=t.platform.toLowerCase(),ae=Y?/win/.test(Y):/win/.test(ah),ac=Y?/mac/.test(Y):/mac/.test(ah),af=/webkit/.test(ah)?parseFloat(ah.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,X=!+"\v1",ag=[0,0,0],ab=null;if(typeof t.plugins!=D&&typeof t.plugins[S]==r){ab=t.plugins[S].description;if(ab&&!(typeof t.mimeTypes!=D&&t.mimeTypes[q]&&!t.mimeTypes[q].enabledPlugin)){T=true;X=false;ab=ab.replace(/^.*\s+(\S+\s+\S+$)/,"$1");ag[0]=parseInt(ab.replace(/^(.*)\..*$/,"$1"),10);ag[1]=parseInt(ab.replace(/^.*\.(.*)\s.*$/,"$1"),10);ag[2]=/[a-zA-Z]/.test(ab)?parseInt(ab.replace(/^.*[a-zA-Z]+(.*)$/,"$1"),10):0}}else{if(typeof O.ActiveXObject!=D){try{var ad=new ActiveXObject(W);if(ad){ab=ad.GetVariable("$version");if(ab){X=true;ab=ab.split(" ")[1].split(",");ag=[parseInt(ab[0],10),parseInt(ab[1],10),parseInt(ab[2],10)]}}}catch(Z){}}}return{w3:aa,pv:ag,wk:af,ie:X,win:ae,mac:ac}}(),k=function(){if(!M.w3){return}if((typeof j.readyState!=D&&j.readyState=="complete")||(typeof j.readyState==D&&(j.getElementsByTagName("body")[0]||j.body))){f()}if(!J){if(typeof j.addEventListener!=D){j.addEventListener("DOMContentLoaded",f,false)}if(M.ie&&M.win){j.attachEvent(x,function(){if(j.readyState=="complete"){j.detachEvent(x,arguments.callee);f()}});if(O==top){(function(){if(J){return}try{j.documentElement.doScroll("left")}catch(X){setTimeout(arguments.callee,0);return}f()})()}}if(M.wk){(function(){if(J){return}if(!/loaded|complete/.test(j.readyState)){setTimeout(arguments.callee,0);return}f()})()}s(f)}}();function f(){if(J){return}try{var Z=j.getElementsByTagName("body")[0].appendChild(C("span"));Z.parentNode.removeChild(Z)}catch(aa){return}J=true;var X=U.length;for(var Y=0;Y0){for(var af=0;af0){var ae=c(Y);if(ae){if(F(o[af].swfVersion)&&!(M.wk&&M.wk<312)){w(Y,true);if(ab){aa.success=true;aa.ref=z(Y);ab(aa)}}else{if(o[af].expressInstall&&A()){var ai={};ai.data=o[af].expressInstall;ai.width=ae.getAttribute("width")||"0";ai.height=ae.getAttribute("height")||"0";if(ae.getAttribute("class")){ai.styleclass=ae.getAttribute("class")}if(ae.getAttribute("align")){ai.align=ae.getAttribute("align")}var ah={};var X=ae.getElementsByTagName("param");var ac=X.length;for(var ad=0;ad'}}aa.outerHTML='"+af+"";N[N.length]=ai.id;X=c(ai.id)}else{var Z=C(r);Z.setAttribute("type",q);for(var ac in ai){if(ai[ac]!=Object.prototype[ac]){if(ac.toLowerCase()=="styleclass"){Z.setAttribute("class",ai[ac])}else{if(ac.toLowerCase()!="classid"){Z.setAttribute(ac,ai[ac])}}}}for(var ab in ag){if(ag[ab]!=Object.prototype[ab]&&ab.toLowerCase()!="movie"){e(Z,ab,ag[ab])}}aa.parentNode.replaceChild(Z,aa);X=Z}}return X}function e(Z,X,Y){var aa=C("param");aa.setAttribute("name",X);aa.setAttribute("value",Y);Z.appendChild(aa)}function y(Y){var X=c(Y);if(X&&X.nodeName=="OBJECT"){if(M.ie&&M.win){X.style.display="none";(function(){if(X.readyState==4){b(Y)}else{setTimeout(arguments.callee,10)}})()}else{X.parentNode.removeChild(X)}}}function b(Z){var Y=c(Z);if(Y){for(var X in Y){if(typeof Y[X]=="function"){Y[X]=null}}Y.parentNode.removeChild(Y)}}function c(Z){var X=null;try{X=j.getElementById(Z)}catch(Y){}return X}function C(X){return j.createElement(X)}function i(Z,X,Y){Z.attachEvent(X,Y);I[I.length]=[Z,X,Y]}function F(Z){var Y=M.pv,X=Z.split(".");X[0]=parseInt(X[0],10);X[1]=parseInt(X[1],10)||0;X[2]=parseInt(X[2],10)||0;return(Y[0]>X[0]||(Y[0]==X[0]&&Y[1]>X[1])||(Y[0]==X[0]&&Y[1]==X[1]&&Y[2]>=X[2]))?true:false}function v(ac,Y,ad,ab){if(M.ie&&M.mac){return}var aa=j.getElementsByTagName("head")[0];if(!aa){return}var X=(ad&&typeof ad=="string")?ad:"screen";if(ab){n=null;G=null}if(!n||G!=X){var Z=C("style");Z.setAttribute("type","text/css");Z.setAttribute("media",X);n=aa.appendChild(Z);if(M.ie&&M.win&&typeof j.styleSheets!=D&&j.styleSheets.length>0){n=j.styleSheets[j.styleSheets.length-1]}G=X}if(M.ie&&M.win){if(n&&typeof n.addRule==r){n.addRule(ac,Y)}}else{if(n&&typeof j.createTextNode!=D){n.appendChild(j.createTextNode(ac+" {"+Y+"}"))}}}function w(Z,X){if(!m){return}var Y=X?"visible":"hidden";if(J&&c(Z)){c(Z).style.visibility=Y}else{v("#"+Z,"visibility:"+Y)}}function L(Y){var Z=/[\\\"<>\.;]/;var X=Z.exec(Y)!=null;return X&&typeof encodeURIComponent!=D?encodeURIComponent(Y):Y}var d=function(){if(M.ie&&M.win){window.attachEvent("onunload",function(){var ac=I.length;for(var ab=0;ab500){g=g.substr(0,500)+"...\n\n("+(g.length-500)+" characters not shown)"}e.removeClass("hover");alert("Copied text to clipboard:\n\n "+g)}if(b.clickAfter){e.trigger("click")}});d.glue(e[0],e.parent()[0]);a(window).bind("load resize",function(){d.reposition()})}})}else{if(typeof c=="string"){return this.each(function(){var f=a(this);c=c.toLowerCase();var e=f.data("zclipId");var d=a("#"+e+".zclip");if(c=="remove"){d.remove();f.removeClass("active hover")}else{if(c=="hide"){d.hide();f.removeClass("active hover")}else{if(c=="show"){d.show()}}}})}}}})(jQuery);var ZeroClipboard={version:"1.0.7",clients:{},moviePath:"ZeroClipboard.swf",nextId:1,$:function(a){if(typeof(a)=="string"){a=document.getElementById(a)}if(!a.addClass){a.hide=function(){this.style.display="none"};a.show=function(){this.style.display=""};a.addClass=function(b){this.removeClass(b);this.className+=" "+b};a.removeClass=function(d){var e=this.className.split(/\s+/);var b=-1;for(var c=0;c-1){e.splice(b,1);this.className=e.join(" ")}return this};a.hasClass=function(b){return !!this.className.match(new RegExp("\\s*"+b+"\\s*"))}}return a},setMoviePath:function(a){this.moviePath=a},dispatch:function(d,b,c){var a=this.clients[d];if(a){a.receiveEvent(b,c)}},register:function(b,a){this.clients[b]=a},getDOMObjectPosition:function(c,a){var b={left:0,top:0,width:c.width?c.width:c.offsetWidth,height:c.height?c.height:c.offsetHeight};if(c&&(c!=a)){b.left+=c.offsetLeft;b.top+=c.offsetTop}return b},Client:function(a){this.handlers={};this.id=ZeroClipboard.nextId++;this.movieId="ZeroClipboardMovie_"+this.id;ZeroClipboard.register(this.id,this);if(a){this.glue(a)}}};ZeroClipboard.Client.prototype={id:0,ready:false,movie:null,clipText:"",handCursorEnabled:true,cssEffects:true,handlers:null,glue:function(d,b,e){this.domElement=ZeroClipboard.$(d);var f=99;if(this.domElement.style.zIndex){f=parseInt(this.domElement.style.zIndex,10)+1}if(typeof(b)=="string"){b=ZeroClipboard.$(b)}else{if(typeof(b)=="undefined"){b=document.getElementsByTagName("body")[0]}}var c=ZeroClipboard.getDOMObjectPosition(this.domElement,b);this.div=document.createElement("div");this.div.className="zclip";this.div.id="zclip-"+this.movieId;$(this.domElement).data("zclipId","zclip-"+this.movieId);var a=this.div.style;a.position="absolute";a.left=""+c.left+"px";a.top=""+c.top+"px";a.width=""+c.width+"px";a.height=""+c.height+"px";a.zIndex=f;if(typeof(e)=="object"){for(addedStyle in e){a[addedStyle]=e[addedStyle]}}b.appendChild(this.div);this.div.innerHTML=this.getHTML(c.width,c.height)},getHTML:function(d,a){var c="";var b="id="+this.id+"&width="+d+"&height="+a;if(navigator.userAgent.match(/MSIE/)){var e=location.href.match(/^https/i)?"https://":"http://";c+=''}else{c+=''}return c},hide:function(){if(this.div){this.div.style.left="-2000px"}},show:function(){this.reposition()},destroy:function(){if(this.domElement&&this.div){this.hide();this.div.innerHTML="";var a=document.getElementsByTagName("body")[0];try{a.removeChild(this.div)}catch(b){}this.domElement=null;this.div=null}},reposition:function(c){if(c){this.domElement=ZeroClipboard.$(c);if(!this.domElement){this.hide()}}if(this.domElement&&this.div){var b=ZeroClipboard.getDOMObjectPosition(this.domElement);var a=this.div.style;a.left=""+b.left+"px";a.top=""+b.top+"px"}},setText:function(a){this.clipText=a;if(this.ready){this.movie.setText(a)}},addEventListener:function(a,b){a=a.toString().toLowerCase().replace(/^on/,"");if(!this.handlers[a]){this.handlers[a]=[]}this.handlers[a].push(b)},setHandCursor:function(a){this.handCursorEnabled=a;if(this.ready){this.movie.setHandCursor(a)}},setCSSEffects:function(a){this.cssEffects=!!a},receiveEvent:function(d,f){d=d.toString().toLowerCase().replace(/^on/,"");switch(d){case"load":this.movie=document.getElementById(this.movieId);if(!this.movie){var c=this;setTimeout(function(){c.receiveEvent("load",null)},1);return}if(!this.ready&&navigator.userAgent.match(/Firefox/)&&navigator.userAgent.match(/Windows/)){var c=this;setTimeout(function(){c.receiveEvent("load",null)},100);this.ready=true;return}this.ready=true;try{this.movie.setText(this.clipText)}catch(h){}try{this.movie.setHandCursor(this.handCursorEnabled)}catch(h){}break;case"mouseover":if(this.domElement&&this.cssEffects){this.domElement.addClass("hover");if(this.recoverActive){this.domElement.addClass("active")}}break;case"mouseout":if(this.domElement&&this.cssEffects){this.recoverActive=false;if(this.domElement.hasClass("active")){this.domElement.removeClass("active");this.recoverActive=true}this.domElement.removeClass("hover")}break;case"mousedown":if(this.domElement&&this.cssEffects){this.domElement.addClass("active")}break;case"mouseup":if(this.domElement&&this.cssEffects){this.domElement.removeClass("active");this.recoverActive=false}break}if(this.handlers[d]){for(var b=0,a=this.handlers[d].length;bc?b=!0:m[d]=0;b||(p=!1)}function A(a,c,b,d,g){var f,e,h=[],j=b.type;if(!l[a])return[];"keyup"==j&&u(a)&&(c=[a]);for(f=0;fd||h.hasOwnProperty(d)&&(q[h[d]]=d)}b=q[a]?"keydown":"keypress"}"keypress"==b&&c.length&&(b="keydown");return b}function C(a,c,b,d,g){r[a+":"+b]=c;a=a.replace(/\s+/g," ");var f=a.split(" "),e,h,j=[];if(1":".","?":"/","|":"\\"},E={option:"alt",command:"meta","return":"enter",escape:"esc"},q,l={},r={},m={},D,x=!1,p=!1,g=1;20>g;++g)h[111+g]="f"+g;for(g=0;9>=g;++g)h[g+96]=g;s(document,"keypress",w);s(document,"keydown",w);s(document,"keyup",w);var k={bind:function(a,c,b){a=a instanceof Array?a:[a];for(var d=0;dne_half?Math.max(Math.min(current_page-ne_half,upper_limit),0):0;var end=current_page>ne_half?Math.min(current_page+ne_half+(this.opts.num_display_entries%2),np):Math.min(this.opts.num_display_entries,np);return{start:start,end:end}}});$.PaginationRenderers={};$.PaginationRenderers.defaultRenderer=function(maxentries,opts){this.maxentries=maxentries;this.opts=opts;this.pc=new $.PaginationCalculator(maxentries,opts)};$.extend($.PaginationRenderers.defaultRenderer.prototype,{createLink:function(page_id,current_page,appendopts){var lnk,np=this.pc.numPages();page_id=page_id<0?0:(page_id"+appendopts.text+"")}else{lnk=$("
  • "+appendopts.text+"
  • ")}}else{lnk=$("
  • "+appendopts.text+"
  • ")}if(appendopts.classes){lnk.addClass(appendopts.classes)}lnk.data("page_id",page_id);return lnk},appendRange:function(container,current_page,start,end,opts){var i;for(i=start;i");if(this.opts.prev_text&&(current_page>0||this.opts.prev_show_always)){fragment.append(this.createLink(current_page-1,current_page,{text:this.opts.prev_text,classes:"prev"}))}if(interval.start>0&&this.opts.num_edge_entries>0){end=Math.min(this.opts.num_edge_entries,interval.start);this.appendRange(fragment,current_page,0,end,{classes:"sp"});if(this.opts.num_edge_entries"+this.opts.ellipse_text+"").appendTo(fragment)}}this.appendRange(fragment,current_page,interval.start,interval.end);if(interval.end0){if(np-this.opts.num_edge_entries>interval.end&&this.opts.ellipse_text){$("
  • "+this.opts.ellipse_text+"
  • ").appendTo(fragment)}begin=Math.max(np-this.opts.num_edge_entries,interval.end);this.appendRange(fragment,current_page,begin,np,{classes:"ep"})}if(this.opts.next_text&&(current_page=0&&page_id0){selectPage(current_page-1)}return false});containers.off("nextPage").on("nextPage",{numPages:np},function(evt){var current_page=$(this).data("current_page");if(current_page=1?"":("alpha(opacity="+Math.round(h*100)+")")}}else{if(a=="backgroundPositionX"||a=="backgroundPositionY"){e=a.slice(-1)=="X"?"Y":"X";if(d){var i=ZENG.dom.getStyle(c,"backgroundPosition"+e);a="backgroundPosition";typeof(h)=="number"&&(h=h+"px");h=e=="Y"?(h+" "+(i||"top")):((i||"left")+" "+h)}}}}if(typeof c.style[a]!="undefined"){c.style[a]=h+(typeof h==="number"&&!f.test(a)?"px":"");b=b&&true}else{b=b&&false}}return b},getScrollTop:function(a){var b=a||document;return Math.max(b.documentElement.scrollTop,b.body.scrollTop)},getClientHeight:function(a){var b=a||document;return b.compatMode=="CSS1Compat"?b.documentElement.clientHeight:b.body.clientHeight}};ZENG.string={RegExps:{trim:/^\s+|\s+$/g,ltrim:/^\s+/,rtrim:/\s+$/,nl2br:/\n/g,s2nb:/[\x20]{2}/g,URIencode:/[\x09\x0A\x0D\x20\x21-\x29\x2B\x2C\x2F\x3A-\x3F\x5B-\x5E\x60\x7B-\x7E]/g,escHTML:{re_amp:/&/g,re_lt://g,re_apos:/\x27/g,re_quot:/\x22/g},escString:{bsls:/\\/g,sls:/\//g,nl:/\n/g,rt:/\r/g,tab:/\t/g},restXHTML:{re_amp:/&/g,re_lt://g,re_apos:/&(?:apos|#0?39);/g,re_quot:/"/g},write:/\{(\d{1,2})(?:\:([xodQqb]))?\}/g,isURL:/^(?:ht|f)tp(?:s)?\:\/\/(?:[\w\-\.]+)\.\w+/i,cut:/[\x00-\xFF]/,getRealLen:{r0:/[^\x00-\xFF]/g,r1:/[\x00-\xFF]/g},format:/\{([\d\w\.]+)\}/g},commonReplace:function(a,c,b){return a.replace(c,b)},format:function(c){var b=Array.prototype.slice.call(arguments),a;c=String(b.shift());if(b.length==1&&typeof(b[0])=="object"){b=b[0]}ZENG.string.RegExps.format.lastIndex=0;return c.replace(ZENG.string.RegExps.format,function(d,e){a=ZENG.object.route(b,e);return a===undefined?d:a})}};ZENG.object={routeRE:/([\d\w_]+)/g,route:function(d,c){d=d||{};c=String(c);var b=ZENG.object.routeRE,a;b.lastIndex=0;while((a=b.exec(c))!==null){d=d[a[0]];if(d===undefined||d===null){break}}return d}};var ua=ZENG.userAgent={},agent=navigator.userAgent;ua.ie=9-((agent.indexOf("Trident/5.0")>-1)?0:1)-(window.XDomainRequest?0:1)-(window.XMLHttpRequest?0:1);if(typeof(ZENG.msgbox)=="undefined"){ZENG.msgbox={}}ZENG.msgbox._timer=null;ZENG.msgbox.loadingAnimationPath=ZENG.msgbox.loadingAnimationPath||("gb_tip_loading.gif");ZENG.msgbox.show=function(c,g,h,a){if(typeof(a)=="number"){a={topPosition:a}}a=a||{};var j=ZENG.msgbox,i='',d='',e=[0,0,0,0,"succ","fail","clear"],b,f;j._loadCss&&j._loadCss(a.cssPath);b=ZENG.dom.get("q_Msgbox")||ZENG.dom.createElementIn("div",document.body,false,{className:"zeng_msgbox_layer_wrap"});b.id="q_Msgbox";b.style.display="";b.innerHTML=ZENG.string.format(i,{type:e[g]||"hits",msgHtml:c||"",loadIcon:g==6?d:""});j._setPosition(b,h,a.topPosition)};ZENG.msgbox._setPosition=function(a,f,d){f=f||5000;var g=ZENG.msgbox,b=ZENG.dom.getScrollTop(),e=ZENG.dom.getClientHeight(),c=Math.floor(e/2)-40;ZENG.dom.setStyle(a,"top",((document.compatMode=="BackCompat"||ZENG.userAgent.ie<7)?b:0)+((typeof(d)=="number")?d:c)+"px");clearTimeout(g._timer);a.firstChild.style.display="";f&&(g._timer=setTimeout(g.hide,f))};ZENG.msgbox.hide=function(a){var b=ZENG.msgbox;if(a){clearTimeout(b._timer);b._timer=setTimeout(b._hide,a)}else{b._hide()}};ZENG.msgbox._hide=function(){var a=ZENG.dom.get("q_Msgbox"),b=ZENG.msgbox;clearTimeout(b._timer);if(a){var c=a.firstChild;ZENG.dom.setStyle(a,"display","none")}}; + +/** + * 全屏插件 + * http://johndyer.name/native-fullscreen-javascript-api-plus-jquery-plugin/ + */ +(function(){var d={supportsFullScreen:false,isFullScreen:function(){return false;},requestFullScreen:function(){},cancelFullScreen:function(){},fullScreenEventName:"",prefix:""},c="webkit moz o ms khtml".split(" ");if(typeof document.cancelFullScreen!="undefined"){d.supportsFullScreen=true;}else{for(var b=0,a=c.length;b"']/g,function(a){return{"<":"<",">":">",'"':""","'":"'","&":"&"}[a]}):a},$string:function(a){return"string"==typeof a||"number"==typeof a?a:"function"==typeof a?a():""}};var b=Array.prototype.forEach||function(a,b){for(var c=this.length>>>0,d=0;c>d;d++)d in this&&a.call(b,this[d],d,this)},c=function(a,c){b.call(a,c)},d="break,case,catch,continue,debugger,default,delete,do,else,false,finally,for,function,if,in,instanceof,new,null,return,switch,this,throw,true,try,typeof,var,void,while,with,abstract,boolean,byte,char,class,const,double,enum,export,extends,final,float,goto,implements,import,int,interface,long,native,package,private,protected,public,short,static,super,synchronized,throws,transient,volatile,arguments,let,yield,undefined",e=/\/\*(?:.|\n)*?\*\/|\/\/[^\n]*\n|\/\/[^\n]*$|'[^']*'|"[^"]*"|[\s\t\n]*\.[\s\t\n]*[$\w\.]+/g,f=/[^\w$]+/g,g=RegExp(["\\b"+d.replace(/,/g,"\\b|\\b")+"\\b"].join("|"),"g"),h=/\b\d[^,]*/g,i=/^,+|,+$/g,j=function(a){return a=a.replace(e,"").replace(f,",").replace(g,"").replace(h,"").replace(i,""),a=a?a.split(/,+/):[]};return function(b,d){function w(b){return k+=b.split(/\n/).length-1,a.isCompress&&(b=b.replace(/[\n\r\t\s]+/g," ")),b=b.replace(/('|\\)/g,"\\$1").replace(/\r/g,"\\r").replace(/\n/g,"\\n"),b=q[1]+"'"+b+"'"+q[2],b+"\n"}function x(b){var c=k;if(g?b=g(b):d&&(b=b.replace(/\n/g,function(){return k++,"$line="+k+";"})),0===b.indexOf("=")){var e=0!==b.indexOf("==");if(b=b.replace(/^=*|[\s;]*$/g,""),e&&a.isEscape){var f=b.replace(/\s*\([^\)]+\)/,"");m.hasOwnProperty(f)||/^(include|print)$/.test(f)||(b="$escape($string("+b+"))")}else b="$string("+b+")";b=q[1]+b+q[2]}return d&&(b="$line="+c+";"+b),y(b),b+"\n"}function y(a){a=j(a),c(a,function(a){l.hasOwnProperty(a)||(z(a),l[a]=!0)})}function z(a){var b;"print"===a?b=s:"include"===a?(n.$render=m.$render,b=t):(b="$data."+a,m.hasOwnProperty(a)&&(n[a]=m[a],b=0===a.indexOf("$")?"$helpers."+a:b+"===undefined?$helpers."+a+":"+b)),o+=a+"="+b+","}var e=a.openTag,f=a.closeTag,g=a.parser,h=b,i="",k=1,l={$data:!0,$helpers:!0,$out:!0,$line:!0},m=a.prototype,n={},o="var $helpers=this,"+(d?"$line=0,":""),p="".trim,q=p?["$out='';","$out+=",";","$out"]:["$out=[];","$out.push(",");","$out.join('')"],r=p?"if(content!==undefined){$out+=content;return content}":"$out.push(content);",s="function(content){"+r+"}",t="function(id,data){if(data===undefined){data=$data}var content=$helpers.$render(id,data);"+r+"}";c(h.split(e),function(a){a=a.split(f);var c=a[0],d=a[1];1===a.length?i+=w(c):(i+=x(c),d&&(i+=w(d)))}),h=i,d&&(h="try{"+h+"}catch(e){"+"e.line=$line;"+"throw e"+"}"),h="'use strict';"+o+q[0]+h+"return new String("+q[3]+")";try{var u=Function("$data",h);return u.prototype=n,u}catch(v){throw v.temp="function anonymous($data) {"+h+"}",v}}}()})(template,this),"function"==typeof define?define(function(a,b,c){c.exports=template}):"undefined"!=typeof exports&&(module.exports=template); + +/** + * colortip-1.0 + */ +(function($){$.fn.colorTip=function(settings){var defaultSettings={color:"yellow",timeout:500};var supportedColors=["red","green","blue","white","yellow","black"];settings=$.extend(defaultSettings,settings);return this.each(function(){var elem=$(this);if(!elem.attr("title")){return true;}var scheduleEvent=new eventScheduler();var tip=new Tip(elem.attr("title"));elem.append(tip.generate()).addClass("colorTipContainer");var hasClass=false;for(var i=0;i'+this.content+''));},show:function(){if(this.shown){return;}this.tip.css("margin-left",-this.tip.outerWidth()/2).fadeIn("fast");this.shown=true;},hide:function(){this.tip.fadeOut();this.shown=false;}};})(jQuery); + +/** + * 返回顶部插件scrolltotop + * scrolltotop.controlHTML='返回顶部'; + * scrolltotop.init(); + */ +scrolltotop={setting:{startline:100,scrollto:0,scrollduration:500,fadeduration:[500,100]},controlHTML:'',controlattrs:{offsetx:5,offsety:5},anchorkeyword:'#top',state:{isvisible:false,shouldvisible:false},scrollup:function(){if(!this.cssfixedsupport){if(this.$control!=undefined)this.$control.css({opacity:0})};var A=isNaN(this.setting.scrollto)?this.setting.scrollto:parseInt(this.setting.scrollto);if(typeof A=="string"&&jQuery('#'+A).length==1){A=jQuery('#'+A).offset().top;}else {A=this.setting.scrollto;};if(this.$body!=undefined)this.$body.animate({scrollTop:A},this.setting.scrollduration);},keepfixed:function(){var $A=jQuery(A);var B=$A.scrollLeft()+$A.width()-this.$control.width()-this.controlattrs.offsetx;var C=$A.scrollTop()+$A.height()-this.$control.height()-this.controlattrs.offsety;this.$control.css({left:B+'px',top:C+'px'});},togglecontrol:function(){var A=jQuery(window).scrollTop();if(!this.cssfixedsupport){this.keepfixed();};this.state.shouldvisible=(A>=this.setting.startline)?true:false;if(this.state.shouldvisible&&!this.state.isvisible){this.$control.stop().animate({opacity:1},this.setting.fadeduration[0]);this.state.isvisible=true;}else if(this.state.shouldvisible==false&&this.state.isvisible){this.$control.stop().animate({opacity:0},this.setting.fadeduration[1]);this.state.isvisible=false;}},init:function(){jQuery(document).ready(function($){if($("body").attr('scrolltotop')!='no'){scrolltotop.cssfixedsupport=!document.all||document.all&&document.compatMode=="CSS1Compat"&&window.XMLHttpRequest;scrolltotop.$body=(window.opera)?(document.compatMode=="CSS1Compat"?$('html'):$('body')):$('html,body');scrolltotop.$control=$('
    '+scrolltotop.controlHTML+'
    ').css({position:scrolltotop.cssfixedsupport?'fixed':'absolute',bottom:scrolltotop.controlattrs.offsety,right:scrolltotop.controlattrs.offsetx,opacity:0,cursor:'pointer'}).click(function(){scrolltotop.scrollup();return false;}).appendTo('body');if(document.all&&!window.XMLHttpRequest&&scrolltotop.$control.text()!=''){scrolltotop.$control.css({width:scrolltotop.$control.width()});};scrolltotop.togglecontrol();$('a[href="'+scrolltotop.anchorkeyword+'"]').click(function(){scrolltotop.scrollup();return false;});$(window).bind('scroll resize',function(e){scrolltotop.togglecontrol();});}});}}; + +/** + * 定时器 + * $("#close-button").oneTime(1000,function(){}); + * $("#close-button").stopTime(); + * 1. everyTime(时间间隔, [计时器名称], 函式名称, [次数限制], [等待函式程序完成]) + * 2. oneTime(时间间隔, [计时器名称], 呼叫的函式) + * 3. stopTime ([计时器名称], [函式名称]) + */ +jQuery.fn.extend({everyTime:function(A,B,C,D,E){return this.each(function(){jQuery.timer.add(this,A,B,C,D,E);});},oneTime:function(A,B,C){return this.each(function(){jQuery.timer.add(this,A,B,C,1);});},stopTime:function(A,B){return this.each(function(){jQuery.timer.remove(this,A,B);});}});jQuery.extend({timer:{guid:1,global:{},regex:/^([0-9]+)\s*(.*s)?$/,powers:{'ms':1,'cs':10,'ds':100,'s':1000,'das':10000,'hs':100000,'ks':1000000},timeParse:function(A){if(A==undefined||A==null)return null;var B=this.regex.exec(jQuery.trim(A.toString()));if(B[2]){var C=parseInt(B[1],10);var D=this.powers[B[2]]||1;return C*D;}else {return A;}},add:function(A,B,C,D,E,F){var G=0;if(jQuery.isFunction(C)){if(!E)E=D;D=C;C=B;}B=jQuery.timer.timeParse(B);if(typeof B!='number'||isNaN(B)||B<=0)return;if(E&&E.constructor!=Number){F=!!E;E=0;}E=E||0;F=F||false;if(!A.$timers)A.$timers={};if(!A.$timers[C])A.$timers[C]={};D.$timerID=D.$timerID||this.guid++;var H=function(){if(F&&this.inProgress)return;this.inProgress=true;if((++G>E&&E!==0)||D.call(A,G)===false)jQuery.timer.remove(A,C,D);this.inProgress=false;};H.$timerID=D.$timerID;if(!A.$timers[C][D.$timerID])A.$timers[C][D.$timerID]=window.setInterval(H,B);if(!this.global[C])this.global[C]=[];this.global[C].push(A);},remove:function(A,B,E){var D=A.$D,ret;if(D){if(!B){for(B in D)this.remove(A,B,E);}else if(D[B]){if(E){if(E.$timerID){window.clearInterval(D[B][E.$timerID]);delete D[B][E.$timerID];}}else {for(var E in D[B]){window.clearInterval(D[B][E]);delete D[B][E];}}for(ret in D[B])break;if(!ret){ret=null;delete D[B];}}for(ret in D)break;if(!ret)A.$D=null;}}}});if(jQuery.browser.msie)jQuery(window).one("unload",function(){var A=jQuery.timer.global;for(var B in A){var C=A[B],i=C.length;while(--i)jQuery.timer.remove(C[i],B);}}); \ No newline at end of file diff --git a/src/main/webapp/js/HoorayOS_mini/js/HoorayLibs/scrolltotop.gif b/src/main/webapp/js/HoorayOS_mini/js/HoorayLibs/scrolltotop.gif new file mode 100644 index 00000000..f24aa216 Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/js/HoorayLibs/scrolltotop.gif differ diff --git a/src/main/webapp/js/HoorayOS_mini/js/core.js b/src/main/webapp/js/HoorayOS_mini/js/core.js new file mode 100644 index 00000000..564ca88c --- /dev/null +++ b/src/main/webapp/js/HoorayOS_mini/js/core.js @@ -0,0 +1,25 @@ +/* +** HoorayOS开源桌面应用框架 +** 作者:胡尐睿丶 +** 地址:http://hoorayos.com +** 我希望能将这项目继续开源下去,所以请手下留情,保留以上这段版权信息,授权用户可删除代码中任何信息 +*/ + +var TEMP = {}; +var HROS = {}; + +HROS.CONFIG = { + appButtonTop : 20, //快捷方式top初始位置 + appButtonLeft : 20, //快捷方式left初始位置 + windowIndexid : 10000, //窗口z-index初始值 + widgetIndexid : 1, //挂件z-index初始值 + windowMinWidth : 215, //窗口最小宽度 + windowMinHeight : 59, //窗口最小高度 + wallpaper : '' //壁纸 +}; + +HROS.VAR = { + zoomLevel : 1, + dock : '', + desk : '' +}; \ No newline at end of file diff --git a/src/main/webapp/js/HoorayOS_mini/js/hros.app.js b/src/main/webapp/js/HoorayOS_mini/js/hros.app.js new file mode 100644 index 00000000..904eaf63 --- /dev/null +++ b/src/main/webapp/js/HoorayOS_mini/js/hros.app.js @@ -0,0 +1,170 @@ +/* +** 应用 +*/ +HROS.app = (function(){ + return { + /* + ** 初始化桌面应用 + */ + init : function(){ + //绑定应用打开事件 + HROS.app.click(); + //绑定滚动条拖动事件 + HROS.app.moveScrollbar(); + HROS.app.get(); + }, + get : function(){ + $.getJSON('../../app/findDesk.action', function (sc) { + HROS.VAR.dock = sc['dock']; + HROS.VAR.desk = sc['desk']; + //输出桌面应用 + HROS.app.set(); + }); + }, + /* + ** 输出应用 + */ + set : function(){ + //绘制应用表格 + var grid = HROS.grid.getAppGrid(), dockGrid = HROS.grid.getDockAppGrid(); + //加载应用码头应用 + if(HROS.VAR.dock != ''){ + var dock_append = ''; + $(HROS.VAR.dock).each(function(i){ + dock_append += appbtnTemp({ + 'top' : dockGrid[i]['startY'], + 'left' : dockGrid[i]['startX'], + 'title' : this.title, + 'type' : this.type, + 'id' : 'd_' + this.id, + 'appid' : this.id, + 'imgsrc' : this.icon + }); + }); + $('#dock-bar .dock-applist').html('').append(dock_append); + }else{ + $('#dock-bar .dock-applist').html(''); + } + //加载桌面应用 + if(HROS.VAR.desk != ''){ + var desk_append = ''; + $(HROS.VAR.desk).each(function(i){ + desk_append += appbtnTemp({ + 'top' : grid[i]['startY'] + 7, + 'left' : grid[i]['startX'] + 16, + 'title' : this.title, + 'type' : this.type, + 'id' : 'd_' + this.id, + 'appid' : this.id, + 'imgsrc' : this.icon + }); + }); + } + $('#desk-1 li').remove(); + $('#desk-1').append(desk_append); + HROS.deskTop.appresize(); + //加载滚动条 + HROS.app.getScrollbar(); + }, + /* + ** 应用打开 + */ + click : function(){ + //应用码头应用拖动 + $('#dock-bar .dock-applist').on('click', 'li', function(e){ + e.preventDefault(); + e.stopPropagation(); + switch($(this).attr('type')){ + case 'app': + HROS.window.create($(this).attr('appid')); + break; + case 'widget': + HROS.widget.create($(this).attr('appid')); + break; + } + }); + //桌面应用拖动 + $('#desktop .desktop-container').on('click', 'li:not(.add)', function(e){ + e.preventDefault(); + e.stopPropagation(); + switch($(this).attr('type')){ + case 'app': + HROS.window.create($(this).attr('appid')); + break; + case 'widget': + HROS.widget.create($(this).attr('appid')); + break; + } + }); + }, + /* + ** 加载滚动条 + */ + getScrollbar : function(){ + setTimeout(function(){ + $('#desk .desktop-container').each(function(){ + var desk = $(this), scrollbar = desk.children('.scrollbar'); + //先清空所有附加样式 + scrollbar.hide(); + desk.scrollLeft(0); + var deskW = parseInt(desk.children('.appbtn').last().css('left')) + 106; + if(desk.width() / deskW < 1){ + desk.children('.scrollbar-x').width(desk.width() / deskW * desk.width()).css('left',0).show(); + } + }); + }, 500); + }, + /* + ** 移动滚动条 + */ + moveScrollbar : function(){ + /* + ** 手动拖动 + */ + $('#desk .scrollbar').on('mousedown', function(e){ + var x, y, cx, cy, deskrealw, deskrealh, movew, moveh; + var scrollbar = $(this), desk = scrollbar.parent('.desktop-container'); + deskrealw = parseInt(desk.children('.appbtn').last().css('left')) + 106; + deskrealh = parseInt(desk.children('.appbtn').last().css('top')) + 108; + movew = desk.width() - scrollbar.width(); + moveh = desk.height() - scrollbar.height(); + if(scrollbar.hasClass('scrollbar-x')){ + x = e.clientX - scrollbar.offset().left; + }else{ + y = e.clientY - scrollbar.offset().top; + } + $(document).on('mousemove', function(e){ + if(scrollbar.hasClass('scrollbar-x')){ + cx = e.clientX - x - 73 < 0 ? 0 : e.clientX - x - 73 > movew ? movew : e.clientX - x - 73; + scrollbar.css('left', cx / desk.width() * deskrealw + cx); + desk.scrollLeft(cx / desk.width() * deskrealw); + }else{ + cy = e.clientY - y < 0 ? 0 : e.clientY - y > moveh ? moveh : e.clientY - y; + scrollbar.css('top', cy / desk.height() * deskrealh + cy); + desk.scrollTop(cy / desk.height() * deskrealh); + } + }).on('mouseup', function(){ + $(this).off('mousemove').off('mouseup'); + }); + }); + /* + ** 鼠标滚动 + */ + $('#desk .desktop-container').each(function(i){ + $('#desk-' + (i + 1)).on('mousewheel', function(event, delta){ + var desk = $(this); + var deskrealw = parseInt(desk.children('.appbtn').last().css('left')) + 106, scrollleftright; + if(delta < 0){ + scrollleftright = desk.scrollLeft() + 200 > deskrealw - desk.width() ? deskrealw - desk.width() : desk.scrollLeft() + 200; + }else{ + scrollleftright = desk.scrollLeft() - 200 < 0 ? 0 : desk.scrollLeft() - 200; + } + desk.stop(false, true).animate({scrollLeft : scrollleftright}, 300); + desk.children('.scrollbar-x').stop(false, true).animate({ + left : scrollleftright / deskrealw * desk.width() + scrollleftright + }, 300); + }); + }); + } + } +})(); \ No newline at end of file diff --git a/src/main/webapp/js/HoorayOS_mini/js/hros.base.js b/src/main/webapp/js/HoorayOS_mini/js/hros.base.js new file mode 100644 index 00000000..596f26e5 --- /dev/null +++ b/src/main/webapp/js/HoorayOS_mini/js/hros.base.js @@ -0,0 +1,44 @@ +/* +** 一个不属于其他模块的模块 +*/ +HROS.base = (function(){ + return { + /* + ** 系统初始化 + */ + init : function(){ + //阻止弹出浏览器默认右键菜单 + $('body').on('contextmenu', function(){ + return false; + }); + //用于判断网页是否缩放 + HROS.zoom.init(); + //桌面(容器)初始化 + HROS.deskTop.init(); + //初始化壁纸 + HROS.wallpaper.init(); + //初始化任务栏 + HROS.taskbar.init(); + /* + ** 当dockPos为top时 当dockPos为left时 当dockPos为right时 + ** ----------------------- ----------------------- ----------------------- + ** | o o o dock | | o | o | | o | o | + ** ----------------------- | o | o | | o | o | + ** | o o | | o | o | | o | o | + ** | o + | | | o | | o | | + ** | o desk | | | o desk | | o desk | | + ** | o | | | + | | + | | + ** ----------------------- ----------------------- ----------------------- + ** 因为desk区域的尺寸和定位受dock位置的影响,所以加载应用前必须先定位好dock的位置 + */ + //初始化应用码头 + HROS.dock.init(); + //初始化桌面应用 + HROS.app.init(); + //初始化widget模块 + HROS.widget.init(); + //初始化窗口模块 + HROS.window.init(); + } + } +})(); \ No newline at end of file diff --git a/src/main/webapp/js/HoorayOS_mini/js/hros.desktop.js b/src/main/webapp/js/HoorayOS_mini/js/hros.desktop.js new file mode 100644 index 00000000..cc937304 --- /dev/null +++ b/src/main/webapp/js/HoorayOS_mini/js/hros.desktop.js @@ -0,0 +1,101 @@ +/* +** 桌面 +*/ +HROS.deskTop = (function(){ + return { + init : function(){ + //绑定浏览器resize事件 + $(window).on('resize', function(){ + HROS.deskTop.resize(); + }); + $('body').on('click', '#desktop', function(){ + HROS.popupMenu.hide(); + }).on('contextmenu', '#desktop', function(e){ + HROS.popupMenu.hide(); + return false; + }); + }, + /* + ** 处理浏览器改变大小后的事件 + */ + resize : function(){ + HROS.dock.setPos(); + //更新应用定位 + HROS.deskTop.appresize(); + //更新窗口定位 + HROS.deskTop.windowresize(); + HROS.wallpaper.set(false); + }, + /* + ** 重新排列应用 + */ + appresize : function(){ + switch(HROS.CONFIG.appSize){ + case 's': + $('#desk').removeClass('smallIcon').addClass('smallIcon'); + break; + case 'm': + $('#desk').removeClass('smallIcon'); + break; + } + var grid = HROS.grid.getAppGrid(), dockGrid = HROS.grid.getDockAppGrid(); + $('#dock-bar .dock-applist li').each(function(i){ + $(this).css({ + 'left' : dockGrid[i]['startX'], + 'top' : dockGrid[i]['startY'] + }); + $(this).attr('left', $(this).offset().left).attr('top', $(this).offset().top); + }); + $('#desk-1 li').each(function(i){ + var left = grid[i]['startX'] + 16, top = grid[i]['startY'] + 7; + $(this).stop(true, false).animate({ + 'left' : left, + 'top' : top + }, 500); + switch(HROS.CONFIG.dockPos){ + case 'top': + $(this).attr('left', left).attr('top', top + 73); + break; + case 'left': + $(this).attr('left', left + 73).attr('top', top); + break; + case 'right': + $(this).attr('left', left).attr('top', top); + break; + } + }); + //更新滚动条 + HROS.app.getScrollbar(); + }, + /* + ** 重新定位窗口位置 + */ + windowresize : function(){ + $('#desk div.window-container').each(function(){ + var windowdata = $(this).data('info'); + currentW = $(window).width() - $(this).width(); + currentH = $(window).height() - $(this).height(); + var _l = windowdata['left'] / windowdata['emptyW'] * currentW >= currentW ? currentW : windowdata['left'] / windowdata['emptyW'] * currentW; + _l = _l <= 0 ? 0 : _l; + var _t = windowdata['top'] / windowdata['emptyH'] * currentH >= currentH ? currentH : windowdata['top'] / windowdata['emptyH'] * currentH; + _t = _t <= 0 ? 0 : _t; + if($(this).attr('state') != 'hide'){ + $(this).animate({ + 'left' : _l, + 'top' : _t + }, 500, function(){ + windowdata['left'] = _l; + windowdata['top'] = _t; + windowdata['emptyW'] = $(window).width() - $(this).width(); + windowdata['emptyH'] = $(window).height() - $(this).height(); + }); + }else{ + windowdata['left'] = _l; + windowdata['top'] = _t; + windowdata['emptyW'] = $(window).width() - $(this).width(); + windowdata['emptyH'] = $(window).height() - $(this).height(); + } + }); + } + } +})(); \ No newline at end of file diff --git a/src/main/webapp/js/HoorayOS_mini/js/hros.dock.js b/src/main/webapp/js/HoorayOS_mini/js/hros.dock.js new file mode 100644 index 00000000..1cb794b7 --- /dev/null +++ b/src/main/webapp/js/HoorayOS_mini/js/hros.dock.js @@ -0,0 +1,37 @@ +/* +** 应用码头 +*/ +HROS.dock = (function(){ + return { + /* + ** 初始化 + */ + init : function(){ + $(window).resize(function(){ + HROS.dock.setPos(); + }); + HROS.dock.setPos(); + }, + setPos : function(){ + var desktop = $('#desk-1'), desktops = $('#desk .desktop-container'); + var desk_w = desktop.css('width', '100%').width(), desk_h = desktop.css('height', '100%').height(); + //清除dock位置样式 + $('#dock-container').removeClass('dock-top').removeClass('dock-left').removeClass('dock-right'); + $('#dock-bar').removeClass('top-bar').removeClass('left-bar').removeClass('right-bar').hide(); + + $('#dock-bar').addClass('left-bar').children('#dock-container').addClass('dock-left'); + desktops.css({ + 'width' : desk_w - 73, + 'height' : desk_h - 70, + 'left' : desk_w + 73, + 'top' : 0 + }); + desktop.css({ + 'left' : 73 + }); + + $('#dock-bar').show(); + HROS.taskbar.resize(); + } + } +})(); \ No newline at end of file diff --git a/src/main/webapp/js/HoorayOS_mini/js/hros.grid.js b/src/main/webapp/js/HoorayOS_mini/js/hros.grid.js new file mode 100644 index 00000000..a6909e65 --- /dev/null +++ b/src/main/webapp/js/HoorayOS_mini/js/hros.grid.js @@ -0,0 +1,83 @@ +/* +** 应用布局格子 +** 这篇文章里有简单说明格子的作用 +** http://www.cnblogs.com/hooray/archive/2012/03/23/2414410.html +*/ +HROS.grid = (function(){ + return { + getAppGrid : function(){ + var width, height; + width = $('#desk-1').width() - HROS.CONFIG.appButtonLeft; + height = $('#desk-1').height() - HROS.CONFIG.appButtonTop; + var appGrid = [], _top = HROS.CONFIG.appButtonTop, _left = HROS.CONFIG.appButtonLeft; + for(var i = 0; i < 10000; i++){ + appGrid.push({ + startY : _top, + endY : _top + 100, + startX : _left, + endX : _left + 120 + }); + _top += 100; + if(_top + 70 > height){ + _top = HROS.CONFIG.appButtonTop; + _left += 120; + } + } + return appGrid; + }, + searchAppGrid : function(x, y){ + var grid = HROS.grid.getAppGrid(), j = grid.length; + var flags = 0, appLength = $('#desk-1 li.appbtn:not(.add)').length - 1; + for(var i = 0; i < j; i++){ + if(x >= grid[i].startX && x <= grid[i].endX){ + flags += 1; + } + if(y >= grid[i].startY && y <= grid[i].endY){ + flags += 1; + } + if(flags === 2){ + return i > appLength ? appLength : i; + }else{ + flags = 0; + } + } + return null; + }, + getDockAppGrid : function(){ + var height = $('#dock-bar .dock-applist').height(); + var dockAppGrid = [], _left = 0, _top = 0; + for(var i = 0; i < 7; i++){ + dockAppGrid.push({ + startY : _top, + endY : _top + 62, + startX : _left, + endX : _left + 62 + }); + _top += 62; + if(_top + 62 > height){ + _top = 0; + _left += 62; + } + } + return dockAppGrid; + }, + searchDockAppGrid : function(x, y){ + var grid = HROS.grid.getDockAppGrid(), j = grid.length, flags = 0, + appLength = $('#dock-bar .dock-applist li').length - 1; + for(var i = 0; i < j; i++){ + if(x >= grid[i].startX && x <= grid[i].endX){ + flags += 1; + } + if(y >= grid[i].startY && y <= grid[i].endY){ + flags += 1; + } + if(flags === 2){ + return i > appLength ? appLength : i; + }else{ + flags = 0; + } + } + return null; + } + } +})(); \ No newline at end of file diff --git a/src/main/webapp/js/HoorayOS_mini/js/hros.maskBox.js b/src/main/webapp/js/HoorayOS_mini/js/hros.maskBox.js new file mode 100644 index 00000000..96fab311 --- /dev/null +++ b/src/main/webapp/js/HoorayOS_mini/js/hros.maskBox.js @@ -0,0 +1,16 @@ +/* +** 透明遮罩层 +** 当拖动应用、窗口等一切可拖动的对象时,会加载一个遮罩层 +** 避免拖动时触发或选中一些不必要的操作,安全第一 +*/ +HROS.maskBox = (function(){ + return { + desk : function(){ + if(!TEMP.maskBoxDesk){ + TEMP.maskBoxDesk = $('
    '); + $('body').append(TEMP.maskBoxDesk); + } + return TEMP.maskBoxDesk; + } + } +})(); \ No newline at end of file diff --git a/src/main/webapp/js/HoorayOS_mini/js/hros.popupMenu.js b/src/main/webapp/js/HoorayOS_mini/js/hros.popupMenu.js new file mode 100644 index 00000000..06c34d36 --- /dev/null +++ b/src/main/webapp/js/HoorayOS_mini/js/hros.popupMenu.js @@ -0,0 +1,37 @@ +/* +** 右键菜单 +*/ +HROS.popupMenu = (function(){ + return { + /* + ** 任务栏右键 + */ + task : function(obj){ + HROS.window.show2under(); + if(!TEMP.popupMenuTask){ + TEMP.popupMenuTask = $(''); + $('body').append(TEMP.popupMenuTask); + $('.task-menu').on('contextmenu', function(){ + return false; + }); + } + //绑定事件 + $('.task-menu a[menu="max"]').off('click').on('click', function(){ + HROS.window.max(obj.attr('appid'), obj.attr('type')); + $('.popup-menu').hide(); + }); + $('.task-menu a[menu="hide"]').off('click').on('click', function(){ + HROS.window.hide(obj.attr('appid'), obj.attr('type')); + $('.popup-menu').hide(); + }); + $('.task-menu a[menu="close"]').off('click').on('click', function(){ + HROS.window.close(obj.attr('appid'), obj.attr('type')); + $('.popup-menu').hide(); + }); + return TEMP.popupMenuTask; + }, + hide : function(){ + $('.popup-menu').hide(); + } + } +})(); \ No newline at end of file diff --git a/src/main/webapp/js/HoorayOS_mini/js/hros.taskbar.js b/src/main/webapp/js/HoorayOS_mini/js/hros.taskbar.js new file mode 100644 index 00000000..847c65c3 --- /dev/null +++ b/src/main/webapp/js/HoorayOS_mini/js/hros.taskbar.js @@ -0,0 +1,93 @@ +/* +** 任务栏 +*/ +HROS.taskbar = (function(){ + return { + /* + ** 初始化 + */ + init : function(){ + //当浏览器窗口改变大小时,任务栏的显示也需进行刷新 + $(window).on('resize', function(){ + HROS.taskbar.resize(); + }); + //绑定任务栏点击事件 + HROS.taskbar.click(); + //绑定任务栏前进后退按钮事件 + HROS.taskbar.pageClick(); + }, + click : function(){ + $('#task-content-inner').on('click', 'a.task-item', function(){ + if($(this).hasClass('task-item-current')){ + HROS.window.hide($(this).attr('appid')); + }else{ + HROS.window.show2top($(this).attr('appid')); + } + }).on('contextmenu', 'a.task-item', function(e){ + HROS.popupMenu.hide(); + var popupmenu = HROS.popupMenu.task($(this)); + var l = $(window).width() - e.clientX < popupmenu.width() ? e.clientX - popupmenu.width() : e.clientX; + var t = e.clientY - popupmenu.height(); + popupmenu.css({ + left : l, + top : t + }).show(); + return false; + }); + }, + pageClick : function(){ + $('#task-next-btn').on('click', function(){ + if($(this).hasClass('disable') == false){ + var w = $('#task-bar').width(), realW = $('#task-content-inner .task-item').length * 114, showW = w - 112, overW = realW - showW; + var marginL = parseInt($('#task-content-inner').css('margin-left')) - 114; + if(marginL <= overW * -1){ + marginL = overW * -1; + $('#task-next a').addClass('disable'); + } + $('#task-pre a').removeClass('disable'); + $('#task-content-inner').animate({ + marginLeft : marginL + }, 200); + } + }); + $('#task-pre-btn').on('click', function(){ + if($(this).hasClass('disable') == false){ + var marginL = parseInt($('#task-content-inner').css('margin-left')) + 114; + if(marginL >= 0){ + marginL = 0; + $('#task-pre a').addClass('disable'); + } + $('#task-next a').removeClass('disable'); + $('#task-content-inner').animate({ + marginLeft : marginL + }, 200); + } + }); + }, + resize : function(){ + $('#task-content-inner').removeClass('fl'); + $('#task-bar').css({ + 'left' : 73, + 'right' : 0 + }); + var w = $('#task-bar').width(), realW = $('#task-content-inner .task-item').length * 114, showW = w - 112; + $('#task-content-inner').css('width', realW); + if(realW >= showW){ + $('#task-next, #task-pre').show(); + $('#task-content').css('width', showW); + $('#task-content-inner').addClass('fl').stop(true, false).animate({ + marginLeft : 0 + }, 200); + $('#task-next a').removeClass('disable'); + $('#task-pre a').addClass('disable'); + }else{ + $('#task-next, #task-pre').hide(); + $('#task-content').css('width','100%'); + $('#task-content-inner').css({ + 'margin-left' : 0, + 'margin-right' : 0 + }); + } + } + } +})(); \ No newline at end of file diff --git a/src/main/webapp/js/HoorayOS_mini/js/hros.wallpaper.js b/src/main/webapp/js/HoorayOS_mini/js/hros.wallpaper.js new file mode 100644 index 00000000..96a78a67 --- /dev/null +++ b/src/main/webapp/js/HoorayOS_mini/js/hros.wallpaper.js @@ -0,0 +1,38 @@ +/* +** 壁纸 +*/ +HROS.wallpaper = (function(){ + return { + /* + ** 初始化 + */ + init : function(){ + HROS.wallpaper.set(); + }, + /* + ** 设置壁纸 + */ + set : function(isreload){ + /* + ** 判断壁纸是否需要重新载入 + ** 比如当浏览器尺寸改变时,只需更新壁纸,而无需重新载入 + */ + var isreload = typeof(isreload) == 'undefined' ? true : isreload; + if(isreload){ + $('#zoomWallpaperGrid').remove(); + } + var w = $(window).width(), h = $(window).height(); + if(isreload){ + $('body').append('
    '); + $('#zoomWallpaper').attr('src', HROS.CONFIG.wallpaper).on('load', function(){ + $(this).show(); + }); + }else{ + $('#zoomWallpaperGrid, #zoomWallpaperGrid div, #zoomWallpaper').css({ + height : h + 'px', + width : w + 'px' + }); + } + } + } +})(); \ No newline at end of file diff --git a/src/main/webapp/js/HoorayOS_mini/js/hros.widget.js b/src/main/webapp/js/HoorayOS_mini/js/hros.widget.js new file mode 100644 index 00000000..ef0c763b --- /dev/null +++ b/src/main/webapp/js/HoorayOS_mini/js/hros.widget.js @@ -0,0 +1,156 @@ +/* +** 小挂件 +*/ +HROS.widget = (function(){ + return { + init : function(){ + //挂件上各个按钮 + HROS.widget.handle(); + //挂件移动 + HROS.widget.move(); + }, + /* + ** 创建挂件 + ** 自定义挂件:HROS.widget.createTemp({url,width,height,left,top}); + ** 示例:HROS.widget.createTemp({url:"http://www.baidu.com",width:800,height:400,left:100,top:100}); + */ + createTemp : function(obj){ + var appid = obj.appid == null ? Date.parse(new Date()) : obj.appid; + //判断窗口是否已打开 + var iswidgetopen = false; + $('#desk .widget').each(function(){ + if($(this).attr('appid') == appid){ + iswidgetopen = true; + return false; + } + }); + //如果没有打开,则进行创建 + if(!iswidgetopen){ + function nextDo(options){ + $('#desk').append(widgetWindowTemp({ + 'width' : options.width, + 'height' : options.height, + 'type' : 'widget', + 'id' : 'w_' + options.appid, + 'appid' : options.appid, + 'top' : options.top, + 'right' : options.right, + 'url' : options.url, + 'zIndex' : HROS.CONFIG.widgetIndexid + })); + HROS.CONFIG.widgetIndexid += 1; + } + nextDo({ + appid : appid, + url : obj.url, + width : obj.width, + height : obj.height, + top : obj.top == null ? 0 : obj.top, + right : obj.right == null ? 0 : obj.right + }); + } + }, + create : function(appid){ + //判断窗口是否已打开 + var iswidgetopen = false; + $('#desk .widget').each(function(){ + if($(this).attr('appid') == appid){ + iswidgetopen = true; + return false; + } + }); + //如果没有打开,则进行创建 + if(!iswidgetopen){ + function nextDo(options){ + var widgetId = '#w_' + options.appid; + TEMP.widgetTemp = { + 'title' : options.title, + 'width' : options.width, + 'height' : options.height, + 'type' : options.type, + 'id' : 'w_' + options.appid, + 'appid' : options.appid, + 'top' : options.top, + 'right' : options.right, + 'url' : options.url, + 'zIndex' : HROS.CONFIG.widgetIndexid, + 'issetbar' : 1 + }; + $('#desk').append(widgetWindowTemp(TEMP.widgetTemp)); + $(widgetId).data('info', TEMP.widgetTemp); + HROS.CONFIG.widgetIndexid += 1; + } + $(HROS.VAR.dock).each(function(){ + if(this.id == appid){ + nextDo({ + appid : this.id, + title : this.title, + url : this.url, + type : this.type, + width : this.width, + height : this.height, + top : typeof(this.top) == 'undefined' ? 0 : this.top, + right : typeof(this.right) == 'undefined' ? 0 : this.right + }); + } + }); + $(HROS.VAR.desk).each(function(){ + if(this.id == appid){ + nextDo({ + appid : this.id, + title : this.title, + url : this.url, + type : this.type, + width : this.width, + height : this.height, + top : typeof(this.top) == 'undefined' ? 0 : this.top, + right : typeof(this.right) == 'undefined' ? 0 : this.right + }); + } + }); + } + }, + move : function(){ + $('#desk').on('mousedown', '.widget .move', function(e){ + var obj = $(this).parents('.widget'); + HROS.widget.show2top(obj.attr('appid')); + var lay, x, y; + x = e.clientX - obj.offset().left; + y = e.clientY - obj.offset().top; + //绑定鼠标移动事件 + $(document).on('mousemove', function(e){ + lay = HROS.maskBox.desk(); + lay.show(); + _r = e.clientX - x; + _t = e.clientY - y; + _t = _t < 0 ? 0 : _t; + _r = $(window).width() - obj.width() - _r; + obj.css({ + right : _r, + top : _t + }); + }).on('mouseup', function(){ + $(this).off('mousemove').off('mouseup'); + if(typeof(lay) !== 'undefined'){ + lay.hide(); + } + }); + }); + }, + close : function(appid){ + var widgetId = '#w_' + appid; + $(widgetId).html('').remove(); + }, + show2top : function(appid){ + var widgetId = '#w_' + appid; + $(widgetId).css('z-index', HROS.CONFIG.widgetIndexid); + HROS.CONFIG.widgetIndexid += 1; + }, + handle : function(){ + $('#desk').on('click', '.widget .ha-close', function(e){ + var obj = $(this).parents('.widget'); + HROS.widget.close(obj.attr('appid')); + }); + } + } +})(); \ No newline at end of file diff --git a/src/main/webapp/js/HoorayOS_mini/js/hros.window.js b/src/main/webapp/js/HoorayOS_mini/js/hros.window.js new file mode 100644 index 00000000..6e101678 --- /dev/null +++ b/src/main/webapp/js/HoorayOS_mini/js/hros.window.js @@ -0,0 +1,608 @@ +/* +** 应用窗口 +*/ +HROS.window = (function(){ + return { + init : function(){ + //窗口上各个按钮 + HROS.window.handle(); + //窗口移动 + HROS.window.move(); + //窗口拉伸 + HROS.window.resize(); + //绑定窗口遮罩层点击事件 + $('#desk').on('click', '.window-container .window-mask', function(){ + HROS.window.show2top($(this).parents('.window-container').attr('appid'), true); + }); + //屏蔽窗口右键 + $('#desk').on('contextmenu', '.window-container', function(){ + return false; + }); + }, + /* + ** 创建窗口 + ** 自定义窗口:HROS.window.createTemp({title,url,width,height,top,left,resize,isflash}); + ** 后面参数依次为:标题、地址、宽、高、是否可拉伸、是否打开默认最大化、是否为flash + ** 示例:HROS.window.createTemp({title:"百度",url:"http://www.baidu.com",width:800,height:400,top:0,left:100,isresize:false,isopenmax:false,isflash:false}); + */ + createTemp : function(obj){ + var type = 'app', appid = obj.appid == null ? Date.parse(new Date()) : obj.appid; + //判断窗口是否已打开 + var iswindowopen = false; + $('#task-content-inner a.task-item').each(function(){ + if($(this).attr('appid') == appid){ + iswindowopen = true; + HROS.window.show2top($(this).attr('appid')); + return false; + } + }); + //如果没有打开,则进行创建 + if(!iswindowopen){ + function nextDo(options){ + var windowId = '#w_' + options.appid; + //新增任务栏 + $('#task-content-inner').prepend(taskTemp({ + 'type' : options.type, + 'id' : 't_' + options.appid, + 'appid' : options.appid, + 'title' : options.title, + 'imgsrc' : options.imgsrc + })); + HROS.taskbar.resize(); + //新增窗口 + TEMP.windowTemp = { + 'width' : options.width, + 'height' : options.height, + 'top' : options.top, + 'left' : options.left, + 'emptyW' : $(window).width() - options.width, + 'emptyH' : $(window).height() - options.height, + 'zIndex' : HROS.CONFIG.windowIndexid, + 'type' : options.type, + 'id' : 'w_' + options.appid, + 'appid' : options.appid, + 'title' : options.title, + 'url' : options.url, + 'imgsrc' : options.imgsrc, + 'isresize' : options.isresize, + 'isopenmax' : options.isopenmax, + 'istitlebar' : options.isresize, + 'istitlebarFullscreen' : options.isresize ? window.fullScreenApi.supportsFullScreen == true ? true : false : false, + 'isflash' : options.isflash + }; + $('#desk').append(windowTemp(TEMP.windowTemp)); + $(windowId).data('info', TEMP.windowTemp); + HROS.CONFIG.windowIndexid += 1; + //iframe加载完毕后,隐藏loading遮罩层 + $(windowId + ' iframe').load(function(){ + $(windowId + ' .window-frame').children('div').eq(1).fadeOut(); + }); + HROS.window.show2top(options.appid); + } + nextDo({ + type : type, + appid : appid, + imgsrc : 'img/ui/default_icon.png', + title : obj.title, + url : obj.url, + width : obj.width, + height : obj.height, + top : typeof(obj.top) == 'undefined' ? (($(window).height() - obj.height) / 2 <= 0 ? 0 : ($(window).height() - obj.height) / 2) : obj.top, + left : typeof(obj.left) == 'undefined' ? (($(window).width() - obj.width) / 2 <= 0 ? 0 : ($(window).width() - obj.width) / 2) : obj.left, + isresize : typeof(obj.isresize) == 'undefined' ? false : obj.isresize, + isopenmax : typeof(obj.isopenmax) == 'undefined' ? false : obj.isopenmax, + isflash : typeof(obj.isflash) == 'undefined' ? true : obj.isflash + }); + }else{ + //如果设置强制刷新 + if(obj.refresh){ + var windowId = '#w_' + appid; + $(windowId).find('iframe').attr('src', obj.url); + } + } + }, + /* + ** 创建窗口 + ** 系统窗口:HROS.window.create(appid); + ** 示例:HROS.window.create(12); + */ + create : function(appid){ + //判断窗口是否已打开 + var iswindowopen = false; + $('#task-content-inner a.task-item').each(function(){ + if($(this).attr('appid') == appid){ + iswindowopen = true; + HROS.window.show2top(appid); + return false; + } + }); + //如果没有打开,则进行创建 + if(!iswindowopen){ + function nextDo(options){ + var windowId = '#w_' + options.appid; + //新增任务栏 + $('#task-content-inner').prepend(taskTemp({ + 'type' : options.type, + 'id' : 't_' + options.appid, + 'appid' : options.appid, + 'title' : options.title, + 'imgsrc' : options.imgsrc + })); + HROS.taskbar.resize(); + //新增窗口 + TEMP.windowTemp = { + 'width' : options.width, + 'height' : options.height, + 'top' : options.top, + 'left' : options.left, + 'emptyW' : $(window).width() - options.width, + 'emptyH' : $(window).height() - options.height, + 'zIndex' : HROS.CONFIG.windowIndexid, + 'type' : options.type, + 'id' : 'w_' + options.appid, + 'appid' : options.appid, + 'title' : options.title, + 'url' : options.url, + 'imgsrc' : options.imgsrc, + 'isresize' : options.isresize == 1 ? true : false, + 'isopenmax' : options.isresize == 1 ? options.isopenmax == 1 ? true : false : false, + 'istitlebar' : options.isresize == 1 ? true : false, + 'istitlebarFullscreen' : options.isresize == 1 ? window.fullScreenApi.supportsFullScreen == true ? true : false : false, + 'isflash' : options.isflash == 1 ? true : false + }; + $('#desk').append(windowTemp(TEMP.windowTemp)); + $(windowId).data('info', TEMP.windowTemp); + HROS.CONFIG.windowIndexid += 1; + //iframe加载完毕后,隐藏loading遮罩层 + $(windowId + ' iframe').load(function(){ + $(windowId + ' .window-frame').children('div').eq(1).fadeOut(); + }); + HROS.window.show2top(options.appid); + } + $(HROS.VAR.dock).each(function(){ + if(this.id == appid){ + nextDo({ + type : this.type, + id : this.id, + appid : this.id, + title : this.title, + imgsrc : this.icon, + url : this.url, + width : this.width, + height : this.height, + top : typeof(this.top) == 'undefined' ? (($(window).height() - this.height) / 2 <= 0 ? 0 : ($(window).height() - this.height) / 2) : this.top, + left : typeof(this.left) == 'undefined' ? (($(window).width() - this.width) / 2 <= 0 ? 0 : ($(window).width() - this.width) / 2) : this.left, + isresize : this.isresize, + isopenmax : this.isopenmax, + isflash : this.isflash + }); + } + }); + $(HROS.VAR.desk).each(function(){ + if(this.id == appid){ + nextDo({ + type : this.type, + id : this.id, + appid : this.id, + title : this.title, + imgsrc : this.icon, + url : this.url, + width : this.width, + height : this.height, + top : typeof(this.top) == 'undefined' ? (($(window).height() - this.height) / 2 <= 0 ? 0 : ($(window).height() - this.height) / 2) : this.top, + left : typeof(this.left) == 'undefined' ? (($(window).width() - this.width) / 2 <= 0 ? 0 : ($(window).width() - this.width) / 2) : this.left, + isresize : this.isresize, + isopenmax : this.isopenmax, + isflash : this.isflash + }); + } + }); + } + }, + close : function(appid){ + var windowId = '#w_' + appid, taskId = '#t_' + appid; + $(windowId).removeData('info').html('').remove(); + $('#task-content-inner ' + taskId).html('').remove(); + $('#task-content-inner').css('width', $('#task-content-inner .task-item').length * 114); + $('#task-bar, #nav-bar').removeClass('min-zIndex'); + HROS.taskbar.resize(); + }, + closeAll : function(){ + $('#desk .window-container').each(function(){ + HROS.window.close($(this).attr('appid')); + }); + }, + hide : function(appid){ + HROS.window.show2top(appid); + var windowId = '#w_' + appid, taskId = '#t_' + appid; + $(windowId).css('left', -10000).attr('state', 'hide'); + $('#task-content-inner ' + taskId).removeClass('task-item-current'); + if($(windowId).attr('ismax') == 1){ + $('#task-bar, #nav-bar').removeClass('min-zIndex'); + } + }, + hideAll : function(){ + $('#task-content-inner a.task-item').removeClass('task-item-current'); + $('#desk-1').nextAll('div.window-container').css('left', -10000).attr('state', 'hide'); + }, + max : function(appid){ + HROS.window.show2top(appid); + var windowId = '#w_' + appid, taskId = '#t_' + appid; + $(windowId + ' .title-handle .ha-max').hide().next(".ha-revert").show(); + $(windowId).addClass('window-maximize').attr('ismax',1).animate({ + width : '100%', + height : '100%', + top : 0, + left : 0 + }, 200); + $('#task-bar, #nav-bar').addClass('min-zIndex'); + }, + revert : function(appid){ + HROS.window.show2top(appid); + var windowId = '#w_' + appid, taskId = '#t_' + appid; + $(windowId + ' .title-handle .ha-revert').hide().prev('.ha-max').show(); + var obj = $(windowId), windowdata = obj.data('info'); + obj.removeClass('window-maximize').attr('ismax',0).animate({ + width : windowdata['width'], + height : windowdata['height'], + left : windowdata['left'], + top : windowdata['top'] + }, 500); + $('#task-bar, #nav-bar').removeClass('min-zIndex'); + }, + show2top : function(appid, isanimate){ + isanimate = isanimate == null ? false : isanimate; + var windowId = '#w_' + appid, taskId = '#t_' + appid; + var windowdata = $(windowId).data('info'); + var arr = []; + function show(){ + HROS.window.show2under(); + //改变当前任务栏样式 + $('#task-content-inner ' + taskId).addClass('task-item-current'); + if($(windowId).attr('ismax') == 1){ + $('#task-bar, #nav-bar').addClass('min-zIndex'); + } + //改变当前窗口样式 + $(windowId).addClass('window-current').css({ + 'z-index' : HROS.CONFIG.windowIndexid, + 'left' : windowdata['left'], + 'top' : windowdata['top'] + }).attr('state', 'show'); + //如果窗口最小化前是最大化状态的,则坐标位置设为0 + if($(windowId).attr('ismax') == 1){ + $(windowId).css({ + 'left' : 0, + 'top' : 0 + }); + } + //改变当前窗口遮罩层样式 + $(windowId + ' .window-mask').hide(); + //改变当前iframe显示 + $(windowId + ' iframe').show(); + HROS.CONFIG.windowIndexid += 1; + } + if(isanimate){ + var baseStartX = $(windowId).offset().left, baseEndX = baseStartX + $(windowId).width(); + var baseStartY = $(windowId).offset().top, baseEndY = baseStartY + $(windowId).height(); + var baseCenterX = baseStartX + ($(windowId).width() / 2), baseCenterY = baseStartY + ($(windowId).height() / 2); + var baseZIndex = parseInt($(windowId).css('zIndex')); + $('#desk .window-container:not(' + windowId + ')').each(function(){ + var thisStartX = $(this).offset().left, thisEndX = thisStartX + $(this).width(); + var thisStartY = $(this).offset().top, thisEndY = thisStartY + $(this).height(); + var thisCenterX = thisStartX + ($(this).width() / 2), thisCenterY = thisStartY + ($(this).height() / 2); + var thisZIndex = parseInt($(this).css('zIndex')); + var flag = ''; + if(thisZIndex > baseZIndex){ + // 常规情况,只要有一个角处于区域内,则可以判断窗口有覆盖 + // _______ _______ _______ _______ + // | ___|___ ___| | ___|___ | | |___ + // | | | | | | | | | | | | + // |___| | | |_______| | |___| |_______| | + // |_______| |_______| |_______| |_______| + if( + (thisStartX >= baseStartX && thisStartX <= baseEndX && thisStartY >= baseStartY && thisStartY <= baseEndY) + || + (thisStartX >= baseStartX && thisStartX <= baseEndX && thisEndY >= baseStartY && thisEndY <= baseEndY) + || + (thisEndX >= baseStartX && thisEndX <= baseEndX && thisStartY >= baseStartY && thisStartY <= baseEndY) + || + (thisEndX >= baseStartX && thisEndX <= baseEndX && thisEndY >= baseStartY && thisEndY <= baseEndY) + ){ + flag = 'x'; + } + // 非常规情况 + // _______ _______ _____ + // ___| | | |___ _| |___ + // | | | | | | | | | | + // |___| | | |___| |_| |___| + // |_______| |_______| |_____| + if( + (thisStartX >= baseStartX && thisStartX <= baseEndX && thisStartY < baseStartY && thisEndY > baseEndY) + || + (thisEndX >= baseStartX && thisEndX <= baseEndX && thisStartY < baseStartY && thisEndY > baseEndY) + ){ + flag = 'x'; + } + // _____ ___________ _____ + // __|_____|__ | | _|_____|___ + // | | | | | | + // | | |___________| |___________| + // |___________| |_____| |_____| + if( + (thisStartY >= baseStartY && thisStartY <= baseEndY && thisStartX < baseStartX && thisEndX > baseEndX) + || + (thisEndY >= baseStartY && thisEndY <= baseEndY && thisStartX < baseStartX && thisEndX > baseEndX) + ){ + flag = 'y'; + } + // 两个角处于区域内,另外两种情况不用处理,因为这两种情况下,被移动的窗口是需要进行上下滑动,而非左右 + // _____ ___________ + // __| |__ | _____ | + // | | | | | | | | + // | |_____| | |__| |__| + // |___________| |_____| + if( + (thisStartX >= baseStartX && thisStartX <= baseEndX && thisEndY >= baseStartY && thisEndY <= baseEndY) + && + (thisEndX >= baseStartX && thisEndX <= baseEndX && thisEndY >= baseStartY && thisEndY <= baseEndY) + || + (thisStartX >= baseStartX && thisStartX <= baseEndX && thisStartY >= baseStartY && thisStartY <= baseEndY) + && + (thisEndX >= baseStartX && thisEndX <= baseEndX && thisStartY >= baseStartY && thisStartY <= baseEndY) + ){ + flag = 'y'; + } + } + if(flag != ''){ + var direction, distance; + if(flag == 'x'){ + if(thisCenterX > baseCenterX){ + direction = 'right'; + distance = baseEndX - thisStartX + 30; + }else{ + direction = 'left'; + distance = thisEndX - baseStartX + 30; + } + }else{ + if(thisCenterY > baseCenterY){ + direction = 'bottom'; + distance = baseEndY - thisStartY + 30; + }else{ + direction = 'top'; + distance = thisEndY - baseStartY + 30; + } + } + arr.push({ + id : $(this).attr('id'), + direction : direction, //移动方向 + distance : distance //移动距离 + }); + } + }); + //开始移动 + var delayTime = 0; + for(var i = 0; i < arr.length; i++){ + var baseLeft = $('#' + arr[i].id).offset().left, baseTop = $('#' + arr[i].id).offset().top; + if(arr[i].direction == 'left'){ + $('#' + arr[i].id).delay(delayTime).animate({ + left : baseLeft - arr[i].distance + }, 300).animate({ + left : baseLeft + }, 300); + }else if(arr[i].direction == 'right'){ + $('#' + arr[i].id).delay(delayTime).animate({ + left : baseLeft + arr[i].distance + }, 300).animate({ + left : baseLeft + }, 300); + }else if(arr[i].direction == 'top'){ + $('#' + arr[i].id).delay(delayTime).animate({ + top : baseTop - arr[i].distance + }, 300).animate({ + top : baseTop + }, 300); + }else if(arr[i].direction == 'bottom'){ + $('#' + arr[i].id).delay(delayTime).animate({ + top : baseTop + arr[i].distance + }, 300).animate({ + top : baseTop + }, 300); + } + delayTime += 100; + } + setTimeout(show, delayTime + 100); + }else{ + show(); + } + }, + show2under : function(){ + //改变任务栏样式 + $('#task-content-inner a.task-item').removeClass('task-item-current'); + //改变窗口样式 + $('#desk .window-container').removeClass('window-current'); + //改变窗口遮罩层样式 + $('#desk .window-container .window-mask').show(); + //改变iframe显示 + $('#desk .window-container-flash iframe').hide(); + }, + handle : function(){ + $('#desk').on('dblclick', '.window-container .title-bar', function(e){ + var obj = $(this).parents('.window-container'); + //判断当前窗口是否已经是最大化 + if(obj.find('.ha-max').is(':hidden')){ + obj.find('.ha-revert').click(); + }else{ + obj.find('.ha-max').click(); + } + }).on('click', '.window-container .ha-hide', function(){ + var obj = $(this).parents('.window-container'); + HROS.window.hide(obj.attr('appid')); + }).on('click', '.window-container .ha-max', function(){ + var obj = $(this).parents('.window-container'); + HROS.window.max(obj.attr('appid')); + }).on('click', '.window-container .ha-revert', function(){ + var obj = $(this).parents('.window-container'); + HROS.window.revert(obj.attr('appid')); + }).on('click', '.window-container .ha-fullscreen', function(){ + var obj = $(this).parents('.window-container'); + window.fullScreenApi.requestFullScreen(document.getElementById(obj.find('iframe').attr('id'))); + }).on('click', '.window-container .ha-close', function(){ + var obj = $(this).parents('.window-container'); + HROS.window.close(obj.attr('appid')); + }).on('contextmenu', '.window-container', function(){ + $('.popup-menu').hide(); + $('.quick_view_container').remove(); + return false; + }); + }, + move : function(){ + $('#desk').on('mousedown', '.window-container .title-bar', function(e){ + var obj = $(this).parents('.window-container'); + if(obj.attr('ismax') == 1){ + return false; + } + HROS.window.show2top(obj.attr('appid')); + var windowdata = obj.data('info'), lay, x, y; + x = e.clientX - obj.offset().left; + y = e.clientY - obj.offset().top; + //绑定鼠标移动事件 + $(document).on('mousemove', function(e){ + lay = HROS.maskBox.desk(); + lay.show(); + //强制把右上角还原按钮隐藏,最大化按钮显示 + obj.find('.ha-revert').hide().prev('.ha-max').show(); + _l = e.clientX - x; + _t = e.clientY - y; + _w = windowdata['width']; + _h = windowdata['height']; + //窗口贴屏幕顶部10px内 || 底部60px内 + _t = _t <= 10 ? 0 : _t >= lay.height()-30 ? lay.height()-30 : _t; + obj.css({ + width : _w, + height : _h, + left : _l, + top : _t + }); + obj.data('info').left = obj.offset().left; + obj.data('info').top = obj.offset().top; + }).on('mouseup', function(){ + $(this).off('mousemove').off('mouseup'); + if(typeof(lay) !== 'undefined'){ + lay.hide(); + } + }); + }); + }, + resize : function(obj){ + $('#desk').on('mousedown', '.window-container .window-resize', function(e){ + var obj = $(this).parents('.window-container'); + //增加背景遮罩层 + var resizeobj = $(this), lay, x = e.clientX, y = e.clientY, w = obj.width(), h = obj.height(); + $(document).on('mousemove', function(e){ + lay = HROS.maskBox.desk(); + lay.show(); + _x = e.clientX; + _y = e.clientY; + //当拖动到屏幕边缘时,自动贴屏 + _x = _x <= 10 ? 0 : _x >= (lay.width()-12) ? (lay.width()-2) : _x; + _y = _y <= 10 ? 0 : _y >= (lay.height()-12) ? lay.height() : _y; + switch(resizeobj.attr('resize')){ + case 't': + h + y - _y > HROS.CONFIG.windowMinHeight ? obj.css({ + height : h + y - _y, + top : _y + }) : obj.css({ + height : HROS.CONFIG.windowMinHeight + }); + break; + case 'r': + w - x + _x > HROS.CONFIG.windowMinWidth ? obj.css({ + width : w - x + _x + }) : obj.css({ + width : HROS.CONFIG.windowMinWidth + }); + break; + case 'b': + h - y + _y > HROS.CONFIG.windowMinHeight ? obj.css({ + height : h - y + _y + }) : obj.css({ + height : HROS.CONFIG.windowMinHeight + }); + break; + case 'l': + w + x - _x > HROS.CONFIG.windowMinWidth ? obj.css({ + width : w + x - _x, + left : _x + }) : obj.css({ + width : HROS.CONFIG.windowMinWidth + }); + break; + case 'rt': + h + y - _y > HROS.CONFIG.windowMinHeight ? obj.css({ + height : h + y - _y, + top : _y + }) : obj.css({ + height : HROS.CONFIG.windowMinHeight + }); + w - x + _x > HROS.CONFIG.windowMinWidth ? obj.css({ + width : w - x + _x + }) : obj.css({ + width : HROS.CONFIG.windowMinWidth + }); + break; + case 'rb': + w - x + _x > HROS.CONFIG.windowMinWidth ? obj.css({ + width : w - x + _x + }) : obj.css({ + width : HROS.CONFIG.windowMinWidth + }); + h - y + _y > HROS.CONFIG.windowMinHeight ? obj.css({ + height : h - y + _y + }) : obj.css({ + height : HROS.CONFIG.windowMinHeight + }); + break; + case 'lt': + w + x - _x > HROS.CONFIG.windowMinWidth ? obj.css({ + width : w + x - _x, + left : _x + }) : obj.css({ + width : HROS.CONFIG.windowMinWidth + }); + h + y - _y > HROS.CONFIG.windowMinHeight ? obj.css({ + height : h + y - _y, + top : _y + }) : obj.css({ + height : HROS.CONFIG.windowMinHeight + }); + break; + case 'lb': + w + x - _x > HROS.CONFIG.windowMinWidth ? obj.css({ + width : w + x - _x, + left : _x + }) : obj.css({ + width : HROS.CONFIG.windowMinWidth + }); + h - y + _y > HROS.CONFIG.windowMinHeight ? obj.css({ + height : h - y + _y + }) : obj.css({ + height : HROS.CONFIG.windowMinHeight + }); + break; + } + }).on('mouseup',function(){ + if(typeof(lay) !== 'undefined'){ + lay.hide(); + } + obj.data('info').width = obj.width(); + obj.data('info').height = obj.height(); + obj.data('info').left = obj.offset().left; + obj.data('info').top = obj.offset().top; + obj.data('info').emptyW = $(window).width() - obj.width(); + obj.data('info').emptyH = $(window).height() - obj.height(); + $(this).off('mousemove').off('mouseup'); + }); + }); + } + } +})(); \ No newline at end of file diff --git a/src/main/webapp/js/HoorayOS_mini/js/hros.zoom.js b/src/main/webapp/js/HoorayOS_mini/js/hros.zoom.js new file mode 100644 index 00000000..f1b33356 --- /dev/null +++ b/src/main/webapp/js/HoorayOS_mini/js/hros.zoom.js @@ -0,0 +1,43 @@ +/* +** 该功能是从QQ空间里提取出来的 +** 用于判断页面是否处于缩放状态中,并给予提示 +** 可在浏览页时按住ctrl+鼠标滚轮进行测试预览 +*/ +HROS.zoom = (function(){ + return { + /* + ** 初始化 + ** 其实也不用初始化,可以直接把object代码写在页面上 + ** 需要注意的是onchange参数,调用的是HROS.zoom.check方法 + */ + init : function(){ + $('body').append('
    '); + /* + ** 使用SWFObject.js插入flash + ** http://www.cnblogs.com/wuxinxi007/archive/2009/10/27/1590709.html + */ + //swfobject.embedSWF('js/zoom.swf?onchange=HROS.zoom.check', 'zoombox', '10', '10', '6.0.0', 'expressInstall.swf', '', {allowScriptAccess : 'always', wmode : 'transparent', scale : 'noScale'}, {id : 'accessory_zoom', name : 'zoom_detect'}); + }, + /* + ** 为什么会有个参数o?其实我也不知道 + ** o.scale的值是数字,当o.scale大于1时,页面处于放大状态,反之则为缩小状态 + */ + check : function(o){ + var s = o.scale, m = s > 1 ? '放大' : '缩小'; + if(s != 1){ + HROS.VAR.zoomLevel = s; + $('#zoom-tip').show().find('span').text('您的浏览器目前处于' + m + '状态,会导致显示不正常,您可以键盘按“ctrl+数字0”组合键恢复初始状态!'); + }else{ + if(s != HROS.VAR.zoomLevel){ + $('#zoom-tip').fadeOut(); + } + } + }, + /* + ** 关闭,其实是删除,如果想做关闭,把代码改成hide()即可 + */ + close : function(){ + $('#zoom-tip').remove(); + } + } +})(); \ No newline at end of file diff --git a/src/main/webapp/js/HoorayOS_mini/js/jquery-1.8.3.min.js b/src/main/webapp/js/HoorayOS_mini/js/jquery-1.8.3.min.js new file mode 100644 index 00000000..83589daa --- /dev/null +++ b/src/main/webapp/js/HoorayOS_mini/js/jquery-1.8.3.min.js @@ -0,0 +1,2 @@ +/*! jQuery v1.8.3 jquery.com | jquery.org/license */ +(function(e,t){function _(e){var t=M[e]={};return v.each(e.split(y),function(e,n){t[n]=!0}),t}function H(e,n,r){if(r===t&&e.nodeType===1){var i="data-"+n.replace(P,"-$1").toLowerCase();r=e.getAttribute(i);if(typeof r=="string"){try{r=r==="true"?!0:r==="false"?!1:r==="null"?null:+r+""===r?+r:D.test(r)?v.parseJSON(r):r}catch(s){}v.data(e,n,r)}else r=t}return r}function B(e){var t;for(t in e){if(t==="data"&&v.isEmptyObject(e[t]))continue;if(t!=="toJSON")return!1}return!0}function et(){return!1}function tt(){return!0}function ut(e){return!e||!e.parentNode||e.parentNode.nodeType===11}function at(e,t){do e=e[t];while(e&&e.nodeType!==1);return e}function ft(e,t,n){t=t||0;if(v.isFunction(t))return v.grep(e,function(e,r){var i=!!t.call(e,r,e);return i===n});if(t.nodeType)return v.grep(e,function(e,r){return e===t===n});if(typeof t=="string"){var r=v.grep(e,function(e){return e.nodeType===1});if(it.test(t))return v.filter(t,r,!n);t=v.filter(t,r)}return v.grep(e,function(e,r){return v.inArray(e,t)>=0===n})}function lt(e){var t=ct.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}function Lt(e,t){return e.getElementsByTagName(t)[0]||e.appendChild(e.ownerDocument.createElement(t))}function At(e,t){if(t.nodeType!==1||!v.hasData(e))return;var n,r,i,s=v._data(e),o=v._data(t,s),u=s.events;if(u){delete o.handle,o.events={};for(n in u)for(r=0,i=u[n].length;r").appendTo(i.body),n=t.css("display");t.remove();if(n==="none"||n===""){Pt=i.body.appendChild(Pt||v.extend(i.createElement("iframe"),{frameBorder:0,width:0,height:0}));if(!Ht||!Pt.createElement)Ht=(Pt.contentWindow||Pt.contentDocument).document,Ht.write(""),Ht.close();t=Ht.body.appendChild(Ht.createElement(e)),n=Dt(t,"display"),i.body.removeChild(Pt)}return Wt[e]=n,n}function fn(e,t,n,r){var i;if(v.isArray(t))v.each(t,function(t,i){n||sn.test(e)?r(e,i):fn(e+"["+(typeof i=="object"?t:"")+"]",i,n,r)});else if(!n&&v.type(t)==="object")for(i in t)fn(e+"["+i+"]",t[i],n,r);else r(e,t)}function Cn(e){return function(t,n){typeof t!="string"&&(n=t,t="*");var r,i,s,o=t.toLowerCase().split(y),u=0,a=o.length;if(v.isFunction(n))for(;u)[^>]*$|#([\w\-]*)$)/,E=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,S=/^[\],:{}\s]*$/,x=/(?:^|:|,)(?:\s*\[)+/g,T=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,N=/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,C=/^-ms-/,k=/-([\da-z])/gi,L=function(e,t){return(t+"").toUpperCase()},A=function(){i.addEventListener?(i.removeEventListener("DOMContentLoaded",A,!1),v.ready()):i.readyState==="complete"&&(i.detachEvent("onreadystatechange",A),v.ready())},O={};v.fn=v.prototype={constructor:v,init:function(e,n,r){var s,o,u,a;if(!e)return this;if(e.nodeType)return this.context=this[0]=e,this.length=1,this;if(typeof e=="string"){e.charAt(0)==="<"&&e.charAt(e.length-1)===">"&&e.length>=3?s=[null,e,null]:s=w.exec(e);if(s&&(s[1]||!n)){if(s[1])return n=n instanceof v?n[0]:n,a=n&&n.nodeType?n.ownerDocument||n:i,e=v.parseHTML(s[1],a,!0),E.test(s[1])&&v.isPlainObject(n)&&this.attr.call(e,n,!0),v.merge(this,e);o=i.getElementById(s[2]);if(o&&o.parentNode){if(o.id!==s[2])return r.find(e);this.length=1,this[0]=o}return this.context=i,this.selector=e,this}return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e)}return v.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),v.makeArray(e,this))},selector:"",jquery:"1.8.3",length:0,size:function(){return this.length},toArray:function(){return l.call(this)},get:function(e){return e==null?this.toArray():e<0?this[this.length+e]:this[e]},pushStack:function(e,t,n){var r=v.merge(this.constructor(),e);return r.prevObject=this,r.context=this.context,t==="find"?r.selector=this.selector+(this.selector?" ":"")+n:t&&(r.selector=this.selector+"."+t+"("+n+")"),r},each:function(e,t){return v.each(this,e,t)},ready:function(e){return v.ready.promise().done(e),this},eq:function(e){return e=+e,e===-1?this.slice(e):this.slice(e,e+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(l.apply(this,arguments),"slice",l.call(arguments).join(","))},map:function(e){return this.pushStack(v.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:[].sort,splice:[].splice},v.fn.init.prototype=v.fn,v.extend=v.fn.extend=function(){var e,n,r,i,s,o,u=arguments[0]||{},a=1,f=arguments.length,l=!1;typeof u=="boolean"&&(l=u,u=arguments[1]||{},a=2),typeof u!="object"&&!v.isFunction(u)&&(u={}),f===a&&(u=this,--a);for(;a0)return;r.resolveWith(i,[v]),v.fn.trigger&&v(i).trigger("ready").off("ready")},isFunction:function(e){return v.type(e)==="function"},isArray:Array.isArray||function(e){return v.type(e)==="array"},isWindow:function(e){return e!=null&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return e==null?String(e):O[h.call(e)]||"object"},isPlainObject:function(e){if(!e||v.type(e)!=="object"||e.nodeType||v.isWindow(e))return!1;try{if(e.constructor&&!p.call(e,"constructor")&&!p.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}var r;for(r in e);return r===t||p.call(e,r)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw new Error(e)},parseHTML:function(e,t,n){var r;return!e||typeof e!="string"?null:(typeof t=="boolean"&&(n=t,t=0),t=t||i,(r=E.exec(e))?[t.createElement(r[1])]:(r=v.buildFragment([e],t,n?null:[]),v.merge([],(r.cacheable?v.clone(r.fragment):r.fragment).childNodes)))},parseJSON:function(t){if(!t||typeof t!="string")return null;t=v.trim(t);if(e.JSON&&e.JSON.parse)return e.JSON.parse(t);if(S.test(t.replace(T,"@").replace(N,"]").replace(x,"")))return(new Function("return "+t))();v.error("Invalid JSON: "+t)},parseXML:function(n){var r,i;if(!n||typeof n!="string")return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(s){r=t}return(!r||!r.documentElement||r.getElementsByTagName("parsererror").length)&&v.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&g.test(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(C,"ms-").replace(k,L)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,n,r){var i,s=0,o=e.length,u=o===t||v.isFunction(e);if(r){if(u){for(i in e)if(n.apply(e[i],r)===!1)break}else for(;s0&&e[0]&&e[a-1]||a===0||v.isArray(e));if(f)for(;u-1)a.splice(n,1),i&&(n<=o&&o--,n<=u&&u--)}),this},has:function(e){return v.inArray(e,a)>-1},empty:function(){return a=[],this},disable:function(){return a=f=n=t,this},disabled:function(){return!a},lock:function(){return f=t,n||c.disable(),this},locked:function(){return!f},fireWith:function(e,t){return t=t||[],t=[e,t.slice?t.slice():t],a&&(!r||f)&&(i?f.push(t):l(t)),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!r}};return c},v.extend({Deferred:function(e){var t=[["resolve","done",v.Callbacks("once memory"),"resolved"],["reject","fail",v.Callbacks("once memory"),"rejected"],["notify","progress",v.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return v.Deferred(function(n){v.each(t,function(t,r){var s=r[0],o=e[t];i[r[1]](v.isFunction(o)?function(){var e=o.apply(this,arguments);e&&v.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[s+"With"](this===i?n:this,[e])}:n[s])}),e=null}).promise()},promise:function(e){return e!=null?v.extend(e,r):r}},i={};return r.pipe=r.then,v.each(t,function(e,s){var o=s[2],u=s[3];r[s[1]]=o.add,u&&o.add(function(){n=u},t[e^1][2].disable,t[2][2].lock),i[s[0]]=o.fire,i[s[0]+"With"]=o.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=l.call(arguments),r=n.length,i=r!==1||e&&v.isFunction(e.promise)?r:0,s=i===1?e:v.Deferred(),o=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?l.call(arguments):r,n===u?s.notifyWith(t,n):--i||s.resolveWith(t,n)}},u,a,f;if(r>1){u=new Array(r),a=new Array(r),f=new Array(r);for(;t
    a",n=p.getElementsByTagName("*"),r=p.getElementsByTagName("a")[0];if(!n||!r||!n.length)return{};s=i.createElement("select"),o=s.appendChild(i.createElement("option")),u=p.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t={leadingWhitespace:p.firstChild.nodeType===3,tbody:!p.getElementsByTagName("tbody").length,htmlSerialize:!!p.getElementsByTagName("link").length,style:/top/.test(r.getAttribute("style")),hrefNormalized:r.getAttribute("href")==="/a",opacity:/^0.5/.test(r.style.opacity),cssFloat:!!r.style.cssFloat,checkOn:u.value==="on",optSelected:o.selected,getSetAttribute:p.className!=="t",enctype:!!i.createElement("form").enctype,html5Clone:i.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",boxModel:i.compatMode==="CSS1Compat",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},u.checked=!0,t.noCloneChecked=u.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!o.disabled;try{delete p.test}catch(d){t.deleteExpando=!1}!p.addEventListener&&p.attachEvent&&p.fireEvent&&(p.attachEvent("onclick",h=function(){t.noCloneEvent=!1}),p.cloneNode(!0).fireEvent("onclick"),p.detachEvent("onclick",h)),u=i.createElement("input"),u.value="t",u.setAttribute("type","radio"),t.radioValue=u.value==="t",u.setAttribute("checked","checked"),u.setAttribute("name","t"),p.appendChild(u),a=i.createDocumentFragment(),a.appendChild(p.lastChild),t.checkClone=a.cloneNode(!0).cloneNode(!0).lastChild.checked,t.appendChecked=u.checked,a.removeChild(u),a.appendChild(p);if(p.attachEvent)for(l in{submit:!0,change:!0,focusin:!0})f="on"+l,c=f in p,c||(p.setAttribute(f,"return;"),c=typeof p[f]=="function"),t[l+"Bubbles"]=c;return v(function(){var n,r,s,o,u="padding:0;margin:0;border:0;display:block;overflow:hidden;",a=i.getElementsByTagName("body")[0];if(!a)return;n=i.createElement("div"),n.style.cssText="visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px",a.insertBefore(n,a.firstChild),r=i.createElement("div"),n.appendChild(r),r.innerHTML="
    t
    ",s=r.getElementsByTagName("td"),s[0].style.cssText="padding:0;margin:0;border:0;display:none",c=s[0].offsetHeight===0,s[0].style.display="",s[1].style.display="none",t.reliableHiddenOffsets=c&&s[0].offsetHeight===0,r.innerHTML="",r.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",t.boxSizing=r.offsetWidth===4,t.doesNotIncludeMarginInBodyOffset=a.offsetTop!==1,e.getComputedStyle&&(t.pixelPosition=(e.getComputedStyle(r,null)||{}).top!=="1%",t.boxSizingReliable=(e.getComputedStyle(r,null)||{width:"4px"}).width==="4px",o=i.createElement("div"),o.style.cssText=r.style.cssText=u,o.style.marginRight=o.style.width="0",r.style.width="1px",r.appendChild(o),t.reliableMarginRight=!parseFloat((e.getComputedStyle(o,null)||{}).marginRight)),typeof r.style.zoom!="undefined"&&(r.innerHTML="",r.style.cssText=u+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=r.offsetWidth===3,r.style.display="block",r.style.overflow="visible",r.innerHTML="
    ",r.firstChild.style.width="5px",t.shrinkWrapBlocks=r.offsetWidth!==3,n.style.zoom=1),a.removeChild(n),n=r=s=o=null}),a.removeChild(p),n=r=s=o=u=a=p=null,t}();var D=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,P=/([A-Z])/g;v.extend({cache:{},deletedIds:[],uuid:0,expando:"jQuery"+(v.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(e){return e=e.nodeType?v.cache[e[v.expando]]:e[v.expando],!!e&&!B(e)},data:function(e,n,r,i){if(!v.acceptData(e))return;var s,o,u=v.expando,a=typeof n=="string",f=e.nodeType,l=f?v.cache:e,c=f?e[u]:e[u]&&u;if((!c||!l[c]||!i&&!l[c].data)&&a&&r===t)return;c||(f?e[u]=c=v.deletedIds.pop()||v.guid++:c=u),l[c]||(l[c]={},f||(l[c].toJSON=v.noop));if(typeof n=="object"||typeof n=="function")i?l[c]=v.extend(l[c],n):l[c].data=v.extend(l[c].data,n);return s=l[c],i||(s.data||(s.data={}),s=s.data),r!==t&&(s[v.camelCase(n)]=r),a?(o=s[n],o==null&&(o=s[v.camelCase(n)])):o=s,o},removeData:function(e,t,n){if(!v.acceptData(e))return;var r,i,s,o=e.nodeType,u=o?v.cache:e,a=o?e[v.expando]:v.expando;if(!u[a])return;if(t){r=n?u[a]:u[a].data;if(r){v.isArray(t)||(t in r?t=[t]:(t=v.camelCase(t),t in r?t=[t]:t=t.split(" ")));for(i=0,s=t.length;i1,null,!1))},removeData:function(e){return this.each(function(){v.removeData(this,e)})}}),v.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=v._data(e,t),n&&(!r||v.isArray(n)?r=v._data(e,t,v.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=v.queue(e,t),r=n.length,i=n.shift(),s=v._queueHooks(e,t),o=function(){v.dequeue(e,t)};i==="inprogress"&&(i=n.shift(),r--),i&&(t==="fx"&&n.unshift("inprogress"),delete s.stop,i.call(e,o,s)),!r&&s&&s.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return v._data(e,n)||v._data(e,n,{empty:v.Callbacks("once memory").add(function(){v.removeData(e,t+"queue",!0),v.removeData(e,n,!0)})})}}),v.fn.extend({queue:function(e,n){var r=2;return typeof e!="string"&&(n=e,e="fx",r--),arguments.length1)},removeAttr:function(e){return this.each(function(){v.removeAttr(this,e)})},prop:function(e,t){return v.access(this,v.prop,e,t,arguments.length>1)},removeProp:function(e){return e=v.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,s,o,u;if(v.isFunction(e))return this.each(function(t){v(this).addClass(e.call(this,t,this.className))});if(e&&typeof e=="string"){t=e.split(y);for(n=0,r=this.length;n=0)r=r.replace(" "+n[s]+" "," ");i.className=e?v.trim(r):""}}}return this},toggleClass:function(e,t){var n=typeof e,r=typeof t=="boolean";return v.isFunction(e)?this.each(function(n){v(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if(n==="string"){var i,s=0,o=v(this),u=t,a=e.split(y);while(i=a[s++])u=r?u:!o.hasClass(i),o[u?"addClass":"removeClass"](i)}else if(n==="undefined"||n==="boolean")this.className&&v._data(this,"__className__",this.className),this.className=this.className||e===!1?"":v._data(this,"__className__")||""})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;n=0)return!0;return!1},val:function(e){var n,r,i,s=this[0];if(!arguments.length){if(s)return n=v.valHooks[s.type]||v.valHooks[s.nodeName.toLowerCase()],n&&"get"in n&&(r=n.get(s,"value"))!==t?r:(r=s.value,typeof r=="string"?r.replace(R,""):r==null?"":r);return}return i=v.isFunction(e),this.each(function(r){var s,o=v(this);if(this.nodeType!==1)return;i?s=e.call(this,r,o.val()):s=e,s==null?s="":typeof s=="number"?s+="":v.isArray(s)&&(s=v.map(s,function(e){return e==null?"":e+""})),n=v.valHooks[this.type]||v.valHooks[this.nodeName.toLowerCase()];if(!n||!("set"in n)||n.set(this,s,"value")===t)this.value=s})}}),v.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,s=e.type==="select-one"||i<0,o=s?null:[],u=s?i+1:r.length,a=i<0?u:s?i:0;for(;a=0}),n.length||(e.selectedIndex=-1),n}}},attrFn:{},attr:function(e,n,r,i){var s,o,u,a=e.nodeType;if(!e||a===3||a===8||a===2)return;if(i&&v.isFunction(v.fn[n]))return v(e)[n](r);if(typeof e.getAttribute=="undefined")return v.prop(e,n,r);u=a!==1||!v.isXMLDoc(e),u&&(n=n.toLowerCase(),o=v.attrHooks[n]||(X.test(n)?F:j));if(r!==t){if(r===null){v.removeAttr(e,n);return}return o&&"set"in o&&u&&(s=o.set(e,r,n))!==t?s:(e.setAttribute(n,r+""),r)}return o&&"get"in o&&u&&(s=o.get(e,n))!==null?s:(s=e.getAttribute(n),s===null?t:s)},removeAttr:function(e,t){var n,r,i,s,o=0;if(t&&e.nodeType===1){r=t.split(y);for(;o=0}})});var $=/^(?:textarea|input|select)$/i,J=/^([^\.]*|)(?:\.(.+)|)$/,K=/(?:^|\s)hover(\.\S+|)\b/,Q=/^key/,G=/^(?:mouse|contextmenu)|click/,Y=/^(?:focusinfocus|focusoutblur)$/,Z=function(e){return v.event.special.hover?e:e.replace(K,"mouseenter$1 mouseleave$1")};v.event={add:function(e,n,r,i,s){var o,u,a,f,l,c,h,p,d,m,g;if(e.nodeType===3||e.nodeType===8||!n||!r||!(o=v._data(e)))return;r.handler&&(d=r,r=d.handler,s=d.selector),r.guid||(r.guid=v.guid++),a=o.events,a||(o.events=a={}),u=o.handle,u||(o.handle=u=function(e){return typeof v=="undefined"||!!e&&v.event.triggered===e.type?t:v.event.dispatch.apply(u.elem,arguments)},u.elem=e),n=v.trim(Z(n)).split(" ");for(f=0;f=0&&(y=y.slice(0,-1),a=!0),y.indexOf(".")>=0&&(b=y.split("."),y=b.shift(),b.sort());if((!s||v.event.customEvent[y])&&!v.event.global[y])return;n=typeof n=="object"?n[v.expando]?n:new v.Event(y,n):new v.Event(y),n.type=y,n.isTrigger=!0,n.exclusive=a,n.namespace=b.join("."),n.namespace_re=n.namespace?new RegExp("(^|\\.)"+b.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,h=y.indexOf(":")<0?"on"+y:"";if(!s){u=v.cache;for(f in u)u[f].events&&u[f].events[y]&&v.event.trigger(n,r,u[f].handle.elem,!0);return}n.result=t,n.target||(n.target=s),r=r!=null?v.makeArray(r):[],r.unshift(n),p=v.event.special[y]||{};if(p.trigger&&p.trigger.apply(s,r)===!1)return;m=[[s,p.bindType||y]];if(!o&&!p.noBubble&&!v.isWindow(s)){g=p.delegateType||y,l=Y.test(g+y)?s:s.parentNode;for(c=s;l;l=l.parentNode)m.push([l,g]),c=l;c===(s.ownerDocument||i)&&m.push([c.defaultView||c.parentWindow||e,g])}for(f=0;f=0:v.find(h,this,null,[s]).length),u[h]&&f.push(c);f.length&&w.push({elem:s,matches:f})}d.length>m&&w.push({elem:this,matches:d.slice(m)});for(r=0;r0?this.on(t,null,e,n):this.trigger(t)},Q.test(t)&&(v.event.fixHooks[t]=v.event.keyHooks),G.test(t)&&(v.event.fixHooks[t]=v.event.mouseHooks)}),function(e,t){function nt(e,t,n,r){n=n||[],t=t||g;var i,s,a,f,l=t.nodeType;if(!e||typeof e!="string")return n;if(l!==1&&l!==9)return[];a=o(t);if(!a&&!r)if(i=R.exec(e))if(f=i[1]){if(l===9){s=t.getElementById(f);if(!s||!s.parentNode)return n;if(s.id===f)return n.push(s),n}else if(t.ownerDocument&&(s=t.ownerDocument.getElementById(f))&&u(t,s)&&s.id===f)return n.push(s),n}else{if(i[2])return S.apply(n,x.call(t.getElementsByTagName(e),0)),n;if((f=i[3])&&Z&&t.getElementsByClassName)return S.apply(n,x.call(t.getElementsByClassName(f),0)),n}return vt(e.replace(j,"$1"),t,n,r,a)}function rt(e){return function(t){var n=t.nodeName.toLowerCase();return n==="input"&&t.type===e}}function it(e){return function(t){var n=t.nodeName.toLowerCase();return(n==="input"||n==="button")&&t.type===e}}function st(e){return N(function(t){return t=+t,N(function(n,r){var i,s=e([],n.length,t),o=s.length;while(o--)n[i=s[o]]&&(n[i]=!(r[i]=n[i]))})})}function ot(e,t,n){if(e===t)return n;var r=e.nextSibling;while(r){if(r===t)return-1;r=r.nextSibling}return 1}function ut(e,t){var n,r,s,o,u,a,f,l=L[d][e+" "];if(l)return t?0:l.slice(0);u=e,a=[],f=i.preFilter;while(u){if(!n||(r=F.exec(u)))r&&(u=u.slice(r[0].length)||u),a.push(s=[]);n=!1;if(r=I.exec(u))s.push(n=new m(r.shift())),u=u.slice(n.length),n.type=r[0].replace(j," ");for(o in i.filter)(r=J[o].exec(u))&&(!f[o]||(r=f[o](r)))&&(s.push(n=new m(r.shift())),u=u.slice(n.length),n.type=o,n.matches=r);if(!n)break}return t?u.length:u?nt.error(e):L(e,a).slice(0)}function at(e,t,r){var i=t.dir,s=r&&t.dir==="parentNode",o=w++;return t.first?function(t,n,r){while(t=t[i])if(s||t.nodeType===1)return e(t,n,r)}:function(t,r,u){if(!u){var a,f=b+" "+o+" ",l=f+n;while(t=t[i])if(s||t.nodeType===1){if((a=t[d])===l)return t.sizset;if(typeof a=="string"&&a.indexOf(f)===0){if(t.sizset)return t}else{t[d]=l;if(e(t,r,u))return t.sizset=!0,t;t.sizset=!1}}}else while(t=t[i])if(s||t.nodeType===1)if(e(t,r,u))return t}}function ft(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function lt(e,t,n,r,i){var s,o=[],u=0,a=e.length,f=t!=null;for(;u-1&&(s[f]=!(o[f]=c))}}else g=lt(g===o?g.splice(d,g.length):g),i?i(null,o,g,a):S.apply(o,g)})}function ht(e){var t,n,r,s=e.length,o=i.relative[e[0].type],u=o||i.relative[" "],a=o?1:0,f=at(function(e){return e===t},u,!0),l=at(function(e){return T.call(t,e)>-1},u,!0),h=[function(e,n,r){return!o&&(r||n!==c)||((t=n).nodeType?f(e,n,r):l(e,n,r))}];for(;a1&&ft(h),a>1&&e.slice(0,a-1).join("").replace(j,"$1"),n,a0,s=e.length>0,o=function(u,a,f,l,h){var p,d,v,m=[],y=0,w="0",x=u&&[],T=h!=null,N=c,C=u||s&&i.find.TAG("*",h&&a.parentNode||a),k=b+=N==null?1:Math.E;T&&(c=a!==g&&a,n=o.el);for(;(p=C[w])!=null;w++){if(s&&p){for(d=0;v=e[d];d++)if(v(p,a,f)){l.push(p);break}T&&(b=k,n=++o.el)}r&&((p=!v&&p)&&y--,u&&x.push(p))}y+=w;if(r&&w!==y){for(d=0;v=t[d];d++)v(x,m,a,f);if(u){if(y>0)while(w--)!x[w]&&!m[w]&&(m[w]=E.call(l));m=lt(m)}S.apply(l,m),T&&!u&&m.length>0&&y+t.length>1&&nt.uniqueSort(l)}return T&&(b=k,c=N),x};return o.el=0,r?N(o):o}function dt(e,t,n){var r=0,i=t.length;for(;r2&&(f=u[0]).type==="ID"&&t.nodeType===9&&!s&&i.relative[u[1].type]){t=i.find.ID(f.matches[0].replace($,""),t,s)[0];if(!t)return n;e=e.slice(u.shift().length)}for(o=J.POS.test(e)?-1:u.length-1;o>=0;o--){f=u[o];if(i.relative[l=f.type])break;if(c=i.find[l])if(r=c(f.matches[0].replace($,""),z.test(u[0].type)&&t.parentNode||t,s)){u.splice(o,1),e=r.length&&u.join("");if(!e)return S.apply(n,x.call(r,0)),n;break}}}return a(e,h)(r,t,s,n,z.test(e)),n}function mt(){}var n,r,i,s,o,u,a,f,l,c,h=!0,p="undefined",d=("sizcache"+Math.random()).replace(".",""),m=String,g=e.document,y=g.documentElement,b=0,w=0,E=[].pop,S=[].push,x=[].slice,T=[].indexOf||function(e){var t=0,n=this.length;for(;ti.cacheLength&&delete e[t.shift()],e[n+" "]=r},e)},k=C(),L=C(),A=C(),O="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",_=M.replace("w","w#"),D="([*^$|!~]?=)",P="\\["+O+"*("+M+")"+O+"*(?:"+D+O+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+_+")|)|)"+O+"*\\]",H=":("+M+")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:"+P+")|[^:]|\\\\.)*|.*))\\)|)",B=":(even|odd|eq|gt|lt|nth|first|last)(?:\\("+O+"*((?:-\\d)?\\d*)"+O+"*\\)|)(?=[^-]|$)",j=new RegExp("^"+O+"+|((?:^|[^\\\\])(?:\\\\.)*)"+O+"+$","g"),F=new RegExp("^"+O+"*,"+O+"*"),I=new RegExp("^"+O+"*([\\x20\\t\\r\\n\\f>+~])"+O+"*"),q=new RegExp(H),R=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,U=/^:not/,z=/[\x20\t\r\n\f]*[+~]/,W=/:not\($/,X=/h\d/i,V=/input|select|textarea|button/i,$=/\\(?!\\)/g,J={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),NAME:new RegExp("^\\[name=['\"]?("+M+")['\"]?\\]"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+H),POS:new RegExp(B,"i"),CHILD:new RegExp("^:(only|nth|first|last)-child(?:\\("+O+"*(even|odd|(([+-]|)(\\d*)n|)"+O+"*(?:([+-]|)"+O+"*(\\d+)|))"+O+"*\\)|)","i"),needsContext:new RegExp("^"+O+"*[>+~]|"+B,"i")},K=function(e){var t=g.createElement("div");try{return e(t)}catch(n){return!1}finally{t=null}},Q=K(function(e){return e.appendChild(g.createComment("")),!e.getElementsByTagName("*").length}),G=K(function(e){return e.innerHTML="",e.firstChild&&typeof e.firstChild.getAttribute!==p&&e.firstChild.getAttribute("href")==="#"}),Y=K(function(e){e.innerHTML="";var t=typeof e.lastChild.getAttribute("multiple");return t!=="boolean"&&t!=="string"}),Z=K(function(e){return e.innerHTML="",!e.getElementsByClassName||!e.getElementsByClassName("e").length?!1:(e.lastChild.className="e",e.getElementsByClassName("e").length===2)}),et=K(function(e){e.id=d+0,e.innerHTML="
    ",y.insertBefore(e,y.firstChild);var t=g.getElementsByName&&g.getElementsByName(d).length===2+g.getElementsByName(d+0).length;return r=!g.getElementById(d),y.removeChild(e),t});try{x.call(y.childNodes,0)[0].nodeType}catch(tt){x=function(e){var t,n=[];for(;t=this[e];e++)n.push(t);return n}}nt.matches=function(e,t){return nt(e,null,null,t)},nt.matchesSelector=function(e,t){return nt(t,null,null,[e]).length>0},s=nt.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(i===1||i===9||i===11){if(typeof e.textContent=="string")return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=s(e)}else if(i===3||i===4)return e.nodeValue}else for(;t=e[r];r++)n+=s(t);return n},o=nt.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?t.nodeName!=="HTML":!1},u=nt.contains=y.contains?function(e,t){var n=e.nodeType===9?e.documentElement:e,r=t&&t.parentNode;return e===r||!!(r&&r.nodeType===1&&n.contains&&n.contains(r))}:y.compareDocumentPosition?function(e,t){return t&&!!(e.compareDocumentPosition(t)&16)}:function(e,t){while(t=t.parentNode)if(t===e)return!0;return!1},nt.attr=function(e,t){var n,r=o(e);return r||(t=t.toLowerCase()),(n=i.attrHandle[t])?n(e):r||Y?e.getAttribute(t):(n=e.getAttributeNode(t),n?typeof e[t]=="boolean"?e[t]?t:null:n.specified?n.value:null:null)},i=nt.selectors={cacheLength:50,createPseudo:N,match:J,attrHandle:G?{}:{href:function(e){return e.getAttribute("href",2)},type:function(e){return e.getAttribute("type")}},find:{ID:r?function(e,t,n){if(typeof t.getElementById!==p&&!n){var r=t.getElementById(e);return r&&r.parentNode?[r]:[]}}:function(e,n,r){if(typeof n.getElementById!==p&&!r){var i=n.getElementById(e);return i?i.id===e||typeof i.getAttributeNode!==p&&i.getAttributeNode("id").value===e?[i]:t:[]}},TAG:Q?function(e,t){if(typeof t.getElementsByTagName!==p)return t.getElementsByTagName(e)}:function(e,t){var n=t.getElementsByTagName(e);if(e==="*"){var r,i=[],s=0;for(;r=n[s];s++)r.nodeType===1&&i.push(r);return i}return n},NAME:et&&function(e,t){if(typeof t.getElementsByName!==p)return t.getElementsByName(name)},CLASS:Z&&function(e,t,n){if(typeof t.getElementsByClassName!==p&&!n)return t.getElementsByClassName(e)}},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace($,""),e[3]=(e[4]||e[5]||"").replace($,""),e[2]==="~="&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),e[1]==="nth"?(e[2]||nt.error(e[0]),e[3]=+(e[3]?e[4]+(e[5]||1):2*(e[2]==="even"||e[2]==="odd")),e[4]=+(e[6]+e[7]||e[2]==="odd")):e[2]&&nt.error(e[0]),e},PSEUDO:function(e){var t,n;if(J.CHILD.test(e[0]))return null;if(e[3])e[2]=e[3];else if(t=e[4])q.test(t)&&(n=ut(t,!0))&&(n=t.indexOf(")",t.length-n)-t.length)&&(t=t.slice(0,n),e[0]=e[0].slice(0,n)),e[2]=t;return e.slice(0,3)}},filter:{ID:r?function(e){return e=e.replace($,""),function(t){return t.getAttribute("id")===e}}:function(e){return e=e.replace($,""),function(t){var n=typeof t.getAttributeNode!==p&&t.getAttributeNode("id");return n&&n.value===e}},TAG:function(e){return e==="*"?function(){return!0}:(e=e.replace($,"").toLowerCase(),function(t){return t.nodeName&&t.nodeName.toLowerCase()===e})},CLASS:function(e){var t=k[d][e+" "];return t||(t=new RegExp("(^|"+O+")"+e+"("+O+"|$)"))&&k(e,function(e){return t.test(e.className||typeof e.getAttribute!==p&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r,i){var s=nt.attr(r,e);return s==null?t==="!=":t?(s+="",t==="="?s===n:t==="!="?s!==n:t==="^="?n&&s.indexOf(n)===0:t==="*="?n&&s.indexOf(n)>-1:t==="$="?n&&s.substr(s.length-n.length)===n:t==="~="?(" "+s+" ").indexOf(n)>-1:t==="|="?s===n||s.substr(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r){return e==="nth"?function(e){var t,i,s=e.parentNode;if(n===1&&r===0)return!0;if(s){i=0;for(t=s.firstChild;t;t=t.nextSibling)if(t.nodeType===1){i++;if(e===t)break}}return i-=r,i===n||i%n===0&&i/n>=0}:function(t){var n=t;switch(e){case"only":case"first":while(n=n.previousSibling)if(n.nodeType===1)return!1;if(e==="first")return!0;n=t;case"last":while(n=n.nextSibling)if(n.nodeType===1)return!1;return!0}}},PSEUDO:function(e,t){var n,r=i.pseudos[e]||i.setFilters[e.toLowerCase()]||nt.error("unsupported pseudo: "+e);return r[d]?r(t):r.length>1?(n=[e,e,"",t],i.setFilters.hasOwnProperty(e.toLowerCase())?N(function(e,n){var i,s=r(e,t),o=s.length;while(o--)i=T.call(e,s[o]),e[i]=!(n[i]=s[o])}):function(e){return r(e,0,n)}):r}},pseudos:{not:N(function(e){var t=[],n=[],r=a(e.replace(j,"$1"));return r[d]?N(function(e,t,n,i){var s,o=r(e,null,i,[]),u=e.length;while(u--)if(s=o[u])e[u]=!(t[u]=s)}):function(e,i,s){return t[0]=e,r(t,null,s,n),!n.pop()}}),has:N(function(e){return function(t){return nt(e,t).length>0}}),contains:N(function(e){return function(t){return(t.textContent||t.innerText||s(t)).indexOf(e)>-1}}),enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return t==="input"&&!!e.checked||t==="option"&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},parent:function(e){return!i.pseudos.empty(e)},empty:function(e){var t;e=e.firstChild;while(e){if(e.nodeName>"@"||(t=e.nodeType)===3||t===4)return!1;e=e.nextSibling}return!0},header:function(e){return X.test(e.nodeName)},text:function(e){var t,n;return e.nodeName.toLowerCase()==="input"&&(t=e.type)==="text"&&((n=e.getAttribute("type"))==null||n.toLowerCase()===t)},radio:rt("radio"),checkbox:rt("checkbox"),file:rt("file"),password:rt("password"),image:rt("image"),submit:it("submit"),reset:it("reset"),button:function(e){var t=e.nodeName.toLowerCase();return t==="input"&&e.type==="button"||t==="button"},input:function(e){return V.test(e.nodeName)},focus:function(e){var t=e.ownerDocument;return e===t.activeElement&&(!t.hasFocus||t.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},active:function(e){return e===e.ownerDocument.activeElement},first:st(function(){return[0]}),last:st(function(e,t){return[t-1]}),eq:st(function(e,t,n){return[n<0?n+t:n]}),even:st(function(e,t){for(var n=0;n=0;)e.push(r);return e}),gt:st(function(e,t,n){for(var r=n<0?n+t:n;++r",e.querySelectorAll("[selected]").length||i.push("\\["+O+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),e.querySelectorAll(":checked").length||i.push(":checked")}),K(function(e){e.innerHTML="

    ",e.querySelectorAll("[test^='']").length&&i.push("[*^$]="+O+"*(?:\"\"|'')"),e.innerHTML="",e.querySelectorAll(":enabled").length||i.push(":enabled",":disabled")}),i=new RegExp(i.join("|")),vt=function(e,r,s,o,u){if(!o&&!u&&!i.test(e)){var a,f,l=!0,c=d,h=r,p=r.nodeType===9&&e;if(r.nodeType===1&&r.nodeName.toLowerCase()!=="object"){a=ut(e),(l=r.getAttribute("id"))?c=l.replace(n,"\\$&"):r.setAttribute("id",c),c="[id='"+c+"'] ",f=a.length;while(f--)a[f]=c+a[f].join("");h=z.test(e)&&r.parentNode||r,p=a.join(",")}if(p)try{return S.apply(s,x.call(h.querySelectorAll(p),0)),s}catch(v){}finally{l||r.removeAttribute("id")}}return t(e,r,s,o,u)},u&&(K(function(t){e=u.call(t,"div");try{u.call(t,"[test!='']:sizzle"),s.push("!=",H)}catch(n){}}),s=new RegExp(s.join("|")),nt.matchesSelector=function(t,n){n=n.replace(r,"='$1']");if(!o(t)&&!s.test(n)&&!i.test(n))try{var a=u.call(t,n);if(a||e||t.document&&t.document.nodeType!==11)return a}catch(f){}return nt(n,null,null,[t]).length>0})}(),i.pseudos.nth=i.pseudos.eq,i.filters=mt.prototype=i.pseudos,i.setFilters=new mt,nt.attr=v.attr,v.find=nt,v.expr=nt.selectors,v.expr[":"]=v.expr.pseudos,v.unique=nt.uniqueSort,v.text=nt.getText,v.isXMLDoc=nt.isXML,v.contains=nt.contains}(e);var nt=/Until$/,rt=/^(?:parents|prev(?:Until|All))/,it=/^.[^:#\[\.,]*$/,st=v.expr.match.needsContext,ot={children:!0,contents:!0,next:!0,prev:!0};v.fn.extend({find:function(e){var t,n,r,i,s,o,u=this;if(typeof e!="string")return v(e).filter(function(){for(t=0,n=u.length;t0)for(i=r;i=0:v.filter(e,this).length>0:this.filter(e).length>0)},closest:function(e,t){var n,r=0,i=this.length,s=[],o=st.test(e)||typeof e!="string"?v(e,t||this.context):0;for(;r-1:v.find.matchesSelector(n,e)){s.push(n);break}n=n.parentNode}}return s=s.length>1?v.unique(s):s,this.pushStack(s,"closest",e)},index:function(e){return e?typeof e=="string"?v.inArray(this[0],v(e)):v.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(e,t){var n=typeof e=="string"?v(e,t):v.makeArray(e&&e.nodeType?[e]:e),r=v.merge(this.get(),n);return this.pushStack(ut(n[0])||ut(r[0])?r:v.unique(r))},addBack:function(e){return this.add(e==null?this.prevObject:this.prevObject.filter(e))}}),v.fn.andSelf=v.fn.addBack,v.each({parent:function(e){var t=e.parentNode;return t&&t.nodeType!==11?t:null},parents:function(e){return v.dir(e,"parentNode")},parentsUntil:function(e,t,n){return v.dir(e,"parentNode",n)},next:function(e){return at(e,"nextSibling")},prev:function(e){return at(e,"previousSibling")},nextAll:function(e){return v.dir(e,"nextSibling")},prevAll:function(e){return v.dir(e,"previousSibling")},nextUntil:function(e,t,n){return v.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return v.dir(e,"previousSibling",n)},siblings:function(e){return v.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return v.sibling(e.firstChild)},contents:function(e){return v.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:v.merge([],e.childNodes)}},function(e,t){v.fn[e]=function(n,r){var i=v.map(this,t,n);return nt.test(e)||(r=n),r&&typeof r=="string"&&(i=v.filter(r,i)),i=this.length>1&&!ot[e]?v.unique(i):i,this.length>1&&rt.test(e)&&(i=i.reverse()),this.pushStack(i,e,l.call(arguments).join(","))}}),v.extend({filter:function(e,t,n){return n&&(e=":not("+e+")"),t.length===1?v.find.matchesSelector(t[0],e)?[t[0]]:[]:v.find.matches(e,t)},dir:function(e,n,r){var i=[],s=e[n];while(s&&s.nodeType!==9&&(r===t||s.nodeType!==1||!v(s).is(r)))s.nodeType===1&&i.push(s),s=s[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)e.nodeType===1&&e!==t&&n.push(e);return n}});var ct="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ht=/ jQuery\d+="(?:null|\d+)"/g,pt=/^\s+/,dt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,vt=/<([\w:]+)/,mt=/]","i"),Et=/^(?:checkbox|radio)$/,St=/checked\s*(?:[^=]|=\s*.checked.)/i,xt=/\/(java|ecma)script/i,Tt=/^\s*\s*$/g,Nt={option:[1,""],legend:[1,"
    ","
    "],thead:[1,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],col:[2,"","
    "],area:[1,"",""],_default:[0,"",""]},Ct=lt(i),kt=Ct.appendChild(i.createElement("div"));Nt.optgroup=Nt.option,Nt.tbody=Nt.tfoot=Nt.colgroup=Nt.caption=Nt.thead,Nt.th=Nt.td,v.support.htmlSerialize||(Nt._default=[1,"X
    ","
    "]),v.fn.extend({text:function(e){return v.access(this,function(e){return e===t?v.text(this):this.empty().append((this[0]&&this[0].ownerDocument||i).createTextNode(e))},null,e,arguments.length)},wrapAll:function(e){if(v.isFunction(e))return this.each(function(t){v(this).wrapAll(e.call(this,t))});if(this[0]){var t=v(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&e.firstChild.nodeType===1)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return v.isFunction(e)?this.each(function(t){v(this).wrapInner(e.call(this,t))}):this.each(function(){var t=v(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=v.isFunction(e);return this.each(function(n){v(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){v.nodeName(this,"body")||v(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(e){(this.nodeType===1||this.nodeType===11)&&this.appendChild(e)})},prepend:function(){return this.domManip(arguments,!0,function(e){(this.nodeType===1||this.nodeType===11)&&this.insertBefore(e,this.firstChild)})},before:function(){if(!ut(this[0]))return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this)});if(arguments.length){var e=v.clean(arguments);return this.pushStack(v.merge(e,this),"before",this.selector)}},after:function(){if(!ut(this[0]))return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this.nextSibling)});if(arguments.length){var e=v.clean(arguments);return this.pushStack(v.merge(this,e),"after",this.selector)}},remove:function(e,t){var n,r=0;for(;(n=this[r])!=null;r++)if(!e||v.filter(e,[n]).length)!t&&n.nodeType===1&&(v.cleanData(n.getElementsByTagName("*")),v.cleanData([n])),n.parentNode&&n.parentNode.removeChild(n);return this},empty:function(){var e,t=0;for(;(e=this[t])!=null;t++){e.nodeType===1&&v.cleanData(e.getElementsByTagName("*"));while(e.firstChild)e.removeChild(e.firstChild)}return this},clone:function(e,t){return e=e==null?!1:e,t=t==null?e:t,this.map(function(){return v.clone(this,e,t)})},html:function(e){return v.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return n.nodeType===1?n.innerHTML.replace(ht,""):t;if(typeof e=="string"&&!yt.test(e)&&(v.support.htmlSerialize||!wt.test(e))&&(v.support.leadingWhitespace||!pt.test(e))&&!Nt[(vt.exec(e)||["",""])[1].toLowerCase()]){e=e.replace(dt,"<$1>");try{for(;r1&&typeof f=="string"&&St.test(f))return this.each(function(){v(this).domManip(e,n,r)});if(v.isFunction(f))return this.each(function(i){var s=v(this);e[0]=f.call(this,i,n?s.html():t),s.domManip(e,n,r)});if(this[0]){i=v.buildFragment(e,this,l),o=i.fragment,s=o.firstChild,o.childNodes.length===1&&(o=s);if(s){n=n&&v.nodeName(s,"tr");for(u=i.cacheable||c-1;a0?this.clone(!0):this).get(),v(o[i])[t](r),s=s.concat(r);return this.pushStack(s,e,o.selector)}}),v.extend({clone:function(e,t,n){var r,i,s,o;v.support.html5Clone||v.isXMLDoc(e)||!wt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(kt.innerHTML=e.outerHTML,kt.removeChild(o=kt.firstChild));if((!v.support.noCloneEvent||!v.support.noCloneChecked)&&(e.nodeType===1||e.nodeType===11)&&!v.isXMLDoc(e)){Ot(e,o),r=Mt(e),i=Mt(o);for(s=0;r[s];++s)i[s]&&Ot(r[s],i[s])}if(t){At(e,o);if(n){r=Mt(e),i=Mt(o);for(s=0;r[s];++s)At(r[s],i[s])}}return r=i=null,o},clean:function(e,t,n,r){var s,o,u,a,f,l,c,h,p,d,m,g,y=t===i&&Ct,b=[];if(!t||typeof t.createDocumentFragment=="undefined")t=i;for(s=0;(u=e[s])!=null;s++){typeof u=="number"&&(u+="");if(!u)continue;if(typeof u=="string")if(!gt.test(u))u=t.createTextNode(u);else{y=y||lt(t),c=t.createElement("div"),y.appendChild(c),u=u.replace(dt,"<$1>"),a=(vt.exec(u)||["",""])[1].toLowerCase(),f=Nt[a]||Nt._default,l=f[0],c.innerHTML=f[1]+u+f[2];while(l--)c=c.lastChild;if(!v.support.tbody){h=mt.test(u),p=a==="table"&&!h?c.firstChild&&c.firstChild.childNodes:f[1]===""&&!h?c.childNodes:[];for(o=p.length-1;o>=0;--o)v.nodeName(p[o],"tbody")&&!p[o].childNodes.length&&p[o].parentNode.removeChild(p[o])}!v.support.leadingWhitespace&&pt.test(u)&&c.insertBefore(t.createTextNode(pt.exec(u)[0]),c.firstChild),u=c.childNodes,c.parentNode.removeChild(c)}u.nodeType?b.push(u):v.merge(b,u)}c&&(u=c=y=null);if(!v.support.appendChecked)for(s=0;(u=b[s])!=null;s++)v.nodeName(u,"input")?_t(u):typeof u.getElementsByTagName!="undefined"&&v.grep(u.getElementsByTagName("input"),_t);if(n){m=function(e){if(!e.type||xt.test(e.type))return r?r.push(e.parentNode?e.parentNode.removeChild(e):e):n.appendChild(e)};for(s=0;(u=b[s])!=null;s++)if(!v.nodeName(u,"script")||!m(u))n.appendChild(u),typeof u.getElementsByTagName!="undefined"&&(g=v.grep(v.merge([],u.getElementsByTagName("script")),m),b.splice.apply(b,[s+1,0].concat(g)),s+=g.length)}return b},cleanData:function(e,t){var n,r,i,s,o=0,u=v.expando,a=v.cache,f=v.support.deleteExpando,l=v.event.special;for(;(i=e[o])!=null;o++)if(t||v.acceptData(i)){r=i[u],n=r&&a[r];if(n){if(n.events)for(s in n.events)l[s]?v.event.remove(i,s):v.removeEvent(i,s,n.handle);a[r]&&(delete a[r],f?delete i[u]:i.removeAttribute?i.removeAttribute(u):i[u]=null,v.deletedIds.push(r))}}}}),function(){var e,t;v.uaMatch=function(e){e=e.toLowerCase();var t=/(chrome)[ \/]([\w.]+)/.exec(e)||/(webkit)[ \/]([\w.]+)/.exec(e)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(e)||/(msie) ([\w.]+)/.exec(e)||e.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(e)||[];return{browser:t[1]||"",version:t[2]||"0"}},e=v.uaMatch(o.userAgent),t={},e.browser&&(t[e.browser]=!0,t.version=e.version),t.chrome?t.webkit=!0:t.webkit&&(t.safari=!0),v.browser=t,v.sub=function(){function e(t,n){return new e.fn.init(t,n)}v.extend(!0,e,this),e.superclass=this,e.fn=e.prototype=this(),e.fn.constructor=e,e.sub=this.sub,e.fn.init=function(r,i){return i&&i instanceof v&&!(i instanceof e)&&(i=e(i)),v.fn.init.call(this,r,i,t)},e.fn.init.prototype=e.fn;var t=e(i);return e}}();var Dt,Pt,Ht,Bt=/alpha\([^)]*\)/i,jt=/opacity=([^)]*)/,Ft=/^(top|right|bottom|left)$/,It=/^(none|table(?!-c[ea]).+)/,qt=/^margin/,Rt=new RegExp("^("+m+")(.*)$","i"),Ut=new RegExp("^("+m+")(?!px)[a-z%]+$","i"),zt=new RegExp("^([-+])=("+m+")","i"),Wt={BODY:"block"},Xt={position:"absolute",visibility:"hidden",display:"block"},Vt={letterSpacing:0,fontWeight:400},$t=["Top","Right","Bottom","Left"],Jt=["Webkit","O","Moz","ms"],Kt=v.fn.toggle;v.fn.extend({css:function(e,n){return v.access(this,function(e,n,r){return r!==t?v.style(e,n,r):v.css(e,n)},e,n,arguments.length>1)},show:function(){return Yt(this,!0)},hide:function(){return Yt(this)},toggle:function(e,t){var n=typeof e=="boolean";return v.isFunction(e)&&v.isFunction(t)?Kt.apply(this,arguments):this.each(function(){(n?e:Gt(this))?v(this).show():v(this).hide()})}}),v.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Dt(e,"opacity");return n===""?"1":n}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":v.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(!e||e.nodeType===3||e.nodeType===8||!e.style)return;var s,o,u,a=v.camelCase(n),f=e.style;n=v.cssProps[a]||(v.cssProps[a]=Qt(f,a)),u=v.cssHooks[n]||v.cssHooks[a];if(r===t)return u&&"get"in u&&(s=u.get(e,!1,i))!==t?s:f[n];o=typeof r,o==="string"&&(s=zt.exec(r))&&(r=(s[1]+1)*s[2]+parseFloat(v.css(e,n)),o="number");if(r==null||o==="number"&&isNaN(r))return;o==="number"&&!v.cssNumber[a]&&(r+="px");if(!u||!("set"in u)||(r=u.set(e,r,i))!==t)try{f[n]=r}catch(l){}},css:function(e,n,r,i){var s,o,u,a=v.camelCase(n);return n=v.cssProps[a]||(v.cssProps[a]=Qt(e.style,a)),u=v.cssHooks[n]||v.cssHooks[a],u&&"get"in u&&(s=u.get(e,!0,i)),s===t&&(s=Dt(e,n)),s==="normal"&&n in Vt&&(s=Vt[n]),r||i!==t?(o=parseFloat(s),r||v.isNumeric(o)?o||0:s):s},swap:function(e,t,n){var r,i,s={};for(i in t)s[i]=e.style[i],e.style[i]=t[i];r=n.call(e);for(i in t)e.style[i]=s[i];return r}}),e.getComputedStyle?Dt=function(t,n){var r,i,s,o,u=e.getComputedStyle(t,null),a=t.style;return u&&(r=u.getPropertyValue(n)||u[n],r===""&&!v.contains(t.ownerDocument,t)&&(r=v.style(t,n)),Ut.test(r)&&qt.test(n)&&(i=a.width,s=a.minWidth,o=a.maxWidth,a.minWidth=a.maxWidth=a.width=r,r=u.width,a.width=i,a.minWidth=s,a.maxWidth=o)),r}:i.documentElement.currentStyle&&(Dt=function(e,t){var n,r,i=e.currentStyle&&e.currentStyle[t],s=e.style;return i==null&&s&&s[t]&&(i=s[t]),Ut.test(i)&&!Ft.test(t)&&(n=s.left,r=e.runtimeStyle&&e.runtimeStyle.left,r&&(e.runtimeStyle.left=e.currentStyle.left),s.left=t==="fontSize"?"1em":i,i=s.pixelLeft+"px",s.left=n,r&&(e.runtimeStyle.left=r)),i===""?"auto":i}),v.each(["height","width"],function(e,t){v.cssHooks[t]={get:function(e,n,r){if(n)return e.offsetWidth===0&&It.test(Dt(e,"display"))?v.swap(e,Xt,function(){return tn(e,t,r)}):tn(e,t,r)},set:function(e,n,r){return Zt(e,n,r?en(e,t,r,v.support.boxSizing&&v.css(e,"boxSizing")==="border-box"):0)}}}),v.support.opacity||(v.cssHooks.opacity={get:function(e,t){return jt.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=v.isNumeric(t)?"alpha(opacity="+t*100+")":"",s=r&&r.filter||n.filter||"";n.zoom=1;if(t>=1&&v.trim(s.replace(Bt,""))===""&&n.removeAttribute){n.removeAttribute("filter");if(r&&!r.filter)return}n.filter=Bt.test(s)?s.replace(Bt,i):s+" "+i}}),v(function(){v.support.reliableMarginRight||(v.cssHooks.marginRight={get:function(e,t){return v.swap(e,{display:"inline-block"},function(){if(t)return Dt(e,"marginRight")})}}),!v.support.pixelPosition&&v.fn.position&&v.each(["top","left"],function(e,t){v.cssHooks[t]={get:function(e,n){if(n){var r=Dt(e,t);return Ut.test(r)?v(e).position()[t]+"px":r}}}})}),v.expr&&v.expr.filters&&(v.expr.filters.hidden=function(e){return e.offsetWidth===0&&e.offsetHeight===0||!v.support.reliableHiddenOffsets&&(e.style&&e.style.display||Dt(e,"display"))==="none"},v.expr.filters.visible=function(e){return!v.expr.filters.hidden(e)}),v.each({margin:"",padding:"",border:"Width"},function(e,t){v.cssHooks[e+t]={expand:function(n){var r,i=typeof n=="string"?n.split(" "):[n],s={};for(r=0;r<4;r++)s[e+$t[r]+t]=i[r]||i[r-2]||i[0];return s}},qt.test(e)||(v.cssHooks[e+t].set=Zt)});var rn=/%20/g,sn=/\[\]$/,on=/\r?\n/g,un=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,an=/^(?:select|textarea)/i;v.fn.extend({serialize:function(){return v.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?v.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||an.test(this.nodeName)||un.test(this.type))}).map(function(e,t){var n=v(this).val();return n==null?null:v.isArray(n)?v.map(n,function(e,n){return{name:t.name,value:e.replace(on,"\r\n")}}):{name:t.name,value:n.replace(on,"\r\n")}}).get()}}),v.param=function(e,n){var r,i=[],s=function(e,t){t=v.isFunction(t)?t():t==null?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};n===t&&(n=v.ajaxSettings&&v.ajaxSettings.traditional);if(v.isArray(e)||e.jquery&&!v.isPlainObject(e))v.each(e,function(){s(this.name,this.value)});else for(r in e)fn(r,e[r],n,s);return i.join("&").replace(rn,"+")};var ln,cn,hn=/#.*$/,pn=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,dn=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,vn=/^(?:GET|HEAD)$/,mn=/^\/\//,gn=/\?/,yn=/)<[^<]*)*<\/script>/gi,bn=/([?&])_=[^&]*/,wn=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,En=v.fn.load,Sn={},xn={},Tn=["*/"]+["*"];try{cn=s.href}catch(Nn){cn=i.createElement("a"),cn.href="",cn=cn.href}ln=wn.exec(cn.toLowerCase())||[],v.fn.load=function(e,n,r){if(typeof e!="string"&&En)return En.apply(this,arguments);if(!this.length)return this;var i,s,o,u=this,a=e.indexOf(" ");return a>=0&&(i=e.slice(a,e.length),e=e.slice(0,a)),v.isFunction(n)?(r=n,n=t):n&&typeof n=="object"&&(s="POST"),v.ajax({url:e,type:s,dataType:"html",data:n,complete:function(e,t){r&&u.each(r,o||[e.responseText,t,e])}}).done(function(e){o=arguments,u.html(i?v("
    ").append(e.replace(yn,"")).find(i):e)}),this},v.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,t){v.fn[t]=function(e){return this.on(t,e)}}),v.each(["get","post"],function(e,n){v[n]=function(e,r,i,s){return v.isFunction(r)&&(s=s||i,i=r,r=t),v.ajax({type:n,url:e,data:r,success:i,dataType:s})}}),v.extend({getScript:function(e,n){return v.get(e,t,n,"script")},getJSON:function(e,t,n){return v.get(e,t,n,"json")},ajaxSetup:function(e,t){return t?Ln(e,v.ajaxSettings):(t=e,e=v.ajaxSettings),Ln(e,t),e},ajaxSettings:{url:cn,isLocal:dn.test(ln[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":Tn},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":e.String,"text html":!0,"text json":v.parseJSON,"text xml":v.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:Cn(Sn),ajaxTransport:Cn(xn),ajax:function(e,n){function T(e,n,s,a){var l,y,b,w,S,T=n;if(E===2)return;E=2,u&&clearTimeout(u),o=t,i=a||"",x.readyState=e>0?4:0,s&&(w=An(c,x,s));if(e>=200&&e<300||e===304)c.ifModified&&(S=x.getResponseHeader("Last-Modified"),S&&(v.lastModified[r]=S),S=x.getResponseHeader("Etag"),S&&(v.etag[r]=S)),e===304?(T="notmodified",l=!0):(l=On(c,w),T=l.state,y=l.data,b=l.error,l=!b);else{b=T;if(!T||e)T="error",e<0&&(e=0)}x.status=e,x.statusText=(n||T)+"",l?d.resolveWith(h,[y,T,x]):d.rejectWith(h,[x,T,b]),x.statusCode(g),g=t,f&&p.trigger("ajax"+(l?"Success":"Error"),[x,c,l?y:b]),m.fireWith(h,[x,T]),f&&(p.trigger("ajaxComplete",[x,c]),--v.active||v.event.trigger("ajaxStop"))}typeof e=="object"&&(n=e,e=t),n=n||{};var r,i,s,o,u,a,f,l,c=v.ajaxSetup({},n),h=c.context||c,p=h!==c&&(h.nodeType||h instanceof v)?v(h):v.event,d=v.Deferred(),m=v.Callbacks("once memory"),g=c.statusCode||{},b={},w={},E=0,S="canceled",x={readyState:0,setRequestHeader:function(e,t){if(!E){var n=e.toLowerCase();e=w[n]=w[n]||e,b[e]=t}return this},getAllResponseHeaders:function(){return E===2?i:null},getResponseHeader:function(e){var n;if(E===2){if(!s){s={};while(n=pn.exec(i))s[n[1].toLowerCase()]=n[2]}n=s[e.toLowerCase()]}return n===t?null:n},overrideMimeType:function(e){return E||(c.mimeType=e),this},abort:function(e){return e=e||S,o&&o.abort(e),T(0,e),this}};d.promise(x),x.success=x.done,x.error=x.fail,x.complete=m.add,x.statusCode=function(e){if(e){var t;if(E<2)for(t in e)g[t]=[g[t],e[t]];else t=e[x.status],x.always(t)}return this},c.url=((e||c.url)+"").replace(hn,"").replace(mn,ln[1]+"//"),c.dataTypes=v.trim(c.dataType||"*").toLowerCase().split(y),c.crossDomain==null&&(a=wn.exec(c.url.toLowerCase()),c.crossDomain=!(!a||a[1]===ln[1]&&a[2]===ln[2]&&(a[3]||(a[1]==="http:"?80:443))==(ln[3]||(ln[1]==="http:"?80:443)))),c.data&&c.processData&&typeof c.data!="string"&&(c.data=v.param(c.data,c.traditional)),kn(Sn,c,n,x);if(E===2)return x;f=c.global,c.type=c.type.toUpperCase(),c.hasContent=!vn.test(c.type),f&&v.active++===0&&v.event.trigger("ajaxStart");if(!c.hasContent){c.data&&(c.url+=(gn.test(c.url)?"&":"?")+c.data,delete c.data),r=c.url;if(c.cache===!1){var N=v.now(),C=c.url.replace(bn,"$1_="+N);c.url=C+(C===c.url?(gn.test(c.url)?"&":"?")+"_="+N:"")}}(c.data&&c.hasContent&&c.contentType!==!1||n.contentType)&&x.setRequestHeader("Content-Type",c.contentType),c.ifModified&&(r=r||c.url,v.lastModified[r]&&x.setRequestHeader("If-Modified-Since",v.lastModified[r]),v.etag[r]&&x.setRequestHeader("If-None-Match",v.etag[r])),x.setRequestHeader("Accept",c.dataTypes[0]&&c.accepts[c.dataTypes[0]]?c.accepts[c.dataTypes[0]]+(c.dataTypes[0]!=="*"?", "+Tn+"; q=0.01":""):c.accepts["*"]);for(l in c.headers)x.setRequestHeader(l,c.headers[l]);if(!c.beforeSend||c.beforeSend.call(h,x,c)!==!1&&E!==2){S="abort";for(l in{success:1,error:1,complete:1})x[l](c[l]);o=kn(xn,c,n,x);if(!o)T(-1,"No Transport");else{x.readyState=1,f&&p.trigger("ajaxSend",[x,c]),c.async&&c.timeout>0&&(u=setTimeout(function(){x.abort("timeout")},c.timeout));try{E=1,o.send(b,T)}catch(k){if(!(E<2))throw k;T(-1,k)}}return x}return x.abort()},active:0,lastModified:{},etag:{}});var Mn=[],_n=/\?/,Dn=/(=)\?(?=&|$)|\?\?/,Pn=v.now();v.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Mn.pop()||v.expando+"_"+Pn++;return this[e]=!0,e}}),v.ajaxPrefilter("json jsonp",function(n,r,i){var s,o,u,a=n.data,f=n.url,l=n.jsonp!==!1,c=l&&Dn.test(f),h=l&&!c&&typeof a=="string"&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Dn.test(a);if(n.dataTypes[0]==="jsonp"||c||h)return s=n.jsonpCallback=v.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,o=e[s],c?n.url=f.replace(Dn,"$1"+s):h?n.data=a.replace(Dn,"$1"+s):l&&(n.url+=(_n.test(f)?"&":"?")+n.jsonp+"="+s),n.converters["script json"]=function(){return u||v.error(s+" was not called"),u[0]},n.dataTypes[0]="json",e[s]=function(){u=arguments},i.always(function(){e[s]=o,n[s]&&(n.jsonpCallback=r.jsonpCallback,Mn.push(s)),u&&v.isFunction(o)&&o(u[0]),u=o=t}),"script"}),v.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(e){return v.globalEval(e),e}}}),v.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),v.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=i.head||i.getElementsByTagName("head")[0]||i.documentElement;return{send:function(s,o){n=i.createElement("script"),n.async="async",e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,i){if(i||!n.readyState||/loaded|complete/.test(n.readyState))n.onload=n.onreadystatechange=null,r&&n.parentNode&&r.removeChild(n),n=t,i||o(200,"success")},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(0,1)}}}});var Hn,Bn=e.ActiveXObject?function(){for(var e in Hn)Hn[e](0,1)}:!1,jn=0;v.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&Fn()||In()}:Fn,function(e){v.extend(v.support,{ajax:!!e,cors:!!e&&"withCredentials"in e})}(v.ajaxSettings.xhr()),v.support.ajax&&v.ajaxTransport(function(n){if(!n.crossDomain||v.support.cors){var r;return{send:function(i,s){var o,u,a=n.xhr();n.username?a.open(n.type,n.url,n.async,n.username,n.password):a.open(n.type,n.url,n.async);if(n.xhrFields)for(u in n.xhrFields)a[u]=n.xhrFields[u];n.mimeType&&a.overrideMimeType&&a.overrideMimeType(n.mimeType),!n.crossDomain&&!i["X-Requested-With"]&&(i["X-Requested-With"]="XMLHttpRequest");try{for(u in i)a.setRequestHeader(u,i[u])}catch(f){}a.send(n.hasContent&&n.data||null),r=function(e,i){var u,f,l,c,h;try{if(r&&(i||a.readyState===4)){r=t,o&&(a.onreadystatechange=v.noop,Bn&&delete Hn[o]);if(i)a.readyState!==4&&a.abort();else{u=a.status,l=a.getAllResponseHeaders(),c={},h=a.responseXML,h&&h.documentElement&&(c.xml=h);try{c.text=a.responseText}catch(p){}try{f=a.statusText}catch(p){f=""}!u&&n.isLocal&&!n.crossDomain?u=c.text?200:404:u===1223&&(u=204)}}}catch(d){i||s(-1,d)}c&&s(u,f,c,l)},n.async?a.readyState===4?setTimeout(r,0):(o=++jn,Bn&&(Hn||(Hn={},v(e).unload(Bn)),Hn[o]=r),a.onreadystatechange=r):r()},abort:function(){r&&r(0,1)}}}});var qn,Rn,Un=/^(?:toggle|show|hide)$/,zn=new RegExp("^(?:([-+])=|)("+m+")([a-z%]*)$","i"),Wn=/queueHooks$/,Xn=[Gn],Vn={"*":[function(e,t){var n,r,i=this.createTween(e,t),s=zn.exec(t),o=i.cur(),u=+o||0,a=1,f=20;if(s){n=+s[2],r=s[3]||(v.cssNumber[e]?"":"px");if(r!=="px"&&u){u=v.css(i.elem,e,!0)||n||1;do a=a||".5",u/=a,v.style(i.elem,e,u+r);while(a!==(a=i.cur()/o)&&a!==1&&--f)}i.unit=r,i.start=u,i.end=s[1]?u+(s[1]+1)*n:n}return i}]};v.Animation=v.extend(Kn,{tweener:function(e,t){v.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;r-1,f={},l={},c,h;a?(l=i.position(),c=l.top,h=l.left):(c=parseFloat(o)||0,h=parseFloat(u)||0),v.isFunction(t)&&(t=t.call(e,n,s)),t.top!=null&&(f.top=t.top-s.top+c),t.left!=null&&(f.left=t.left-s.left+h),"using"in t?t.using.call(e,f):i.css(f)}},v.fn.extend({position:function(){if(!this[0])return;var e=this[0],t=this.offsetParent(),n=this.offset(),r=er.test(t[0].nodeName)?{top:0,left:0}:t.offset();return n.top-=parseFloat(v.css(e,"marginTop"))||0,n.left-=parseFloat(v.css(e,"marginLeft"))||0,r.top+=parseFloat(v.css(t[0],"borderTopWidth"))||0,r.left+=parseFloat(v.css(t[0],"borderLeftWidth"))||0,{top:n.top-r.top,left:n.left-r.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||i.body;while(e&&!er.test(e.nodeName)&&v.css(e,"position")==="static")e=e.offsetParent;return e||i.body})}}),v.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);v.fn[e]=function(i){return v.access(this,function(e,i,s){var o=tr(e);if(s===t)return o?n in o?o[n]:o.document.documentElement[i]:e[i];o?o.scrollTo(r?v(o).scrollLeft():s,r?s:v(o).scrollTop()):e[i]=s},e,i,arguments.length,null)}}),v.each({Height:"height",Width:"width"},function(e,n){v.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){v.fn[i]=function(i,s){var o=arguments.length&&(r||typeof i!="boolean"),u=r||(i===!0||s===!0?"margin":"border");return v.access(this,function(n,r,i){var s;return v.isWindow(n)?n.document.documentElement["client"+e]:n.nodeType===9?(s=n.documentElement,Math.max(n.body["scroll"+e],s["scroll"+e],n.body["offset"+e],s["offset"+e],s["client"+e])):i===t?v.css(n,r,i,u):v.style(n,r,i,u)},n,o?i:t,o,null)}})}),e.jQuery=e.$=v,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return v})})(window); \ No newline at end of file diff --git a/src/main/webapp/js/HoorayOS_mini/js/templates.js b/src/main/webapp/js/HoorayOS_mini/js/templates.js new file mode 100644 index 00000000..8ee4f03d --- /dev/null +++ b/src/main/webapp/js/HoorayOS_mini/js/templates.js @@ -0,0 +1,66 @@ +//桌面应用 +var appbtnTemp = template( + '
  • '+ + '
    <%=title%>
    '+ + '<%=title%>'+ + '
  • ' +); +//任务栏 +var taskTemp = template( + ''+ + '
    '+ + ''+ + '
    '+ + '
    <%=title%>
    '+ + '
    ' +); +//小挂件 +var widgetWindowTemp = template( + '
    '+ + '
    '+ + ''+ + '
    '+ + ''+ + '
    '+ + '
    ' +); +//应用窗口 +var windowTemp = template( + '
    '+ + '
    '+ + '
    '+ + '<%=title%>'+ + '
    '+ + '
    '+ + ''+ + '<% if(istitlebar){ %>'+ + 'style="display:none"<% } %>>'+ + 'style="display:none"<% } %>>'+ + '<% } %>'+ + '<% if(istitlebarFullscreen){ %>'+ + '+'+ + '<% } %>'+ + '×'+ + '
    '+ + '
    '+ + '<% if(isflash){ %>'+ + '
    运行中,点击恢复显示 :)
    '+ + '<% }else{ %>'+ + '
    '+ + '<% } %>'+ + '
    '+ + ''+ + '
    '+ + '
    '+ + '<% if(isresize){ %>'+ + '
    '+ + '
    '+ + '
    '+ + '
    '+ + '
    '+ + '
    '+ + '
    '+ + '
    '+ + '<% } %>'+ + '
    ' +); \ No newline at end of file diff --git a/src/main/webapp/js/HoorayOS_mini/js/wallpaper.jpg b/src/main/webapp/js/HoorayOS_mini/js/wallpaper.jpg new file mode 100644 index 00000000..e7becba8 Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/js/wallpaper.jpg differ diff --git a/src/main/webapp/js/HoorayOS_mini/js/zoom.swf b/src/main/webapp/js/HoorayOS_mini/js/zoom.swf new file mode 100644 index 00000000..188bbc0a Binary files /dev/null and b/src/main/webapp/js/HoorayOS_mini/js/zoom.swf differ diff --git a/src/main/webapp/js/HoorayOS_mini/说明.txt b/src/main/webapp/js/HoorayOS_mini/说明.txt new file mode 100644 index 00000000..e255451a --- /dev/null +++ b/src/main/webapp/js/HoorayOS_mini/说明.txt @@ -0,0 +1,57 @@ +===== 桌面应用数据 ===== +桌面通过读取data.js里的json数据显示桌面应用,其data.js可替换成后端输出,打开hros.app.js,找到17行,把data.js的路径替换成后端输出桌面json数据的地址即可。 + +===== 应用结构参数说明 ===== + +app应用 + +id : 0, //应用id,确保该id唯一不重复,因为打开、关闭等操作都是根据这个唯一id来查找应用的 +title : "我的博客", //应用名称 +type : "app", //应用类型,分别有app、widget可选,app为窗口应用,widget为挂件应用 +icon : "img/ui/system-shapes.png", //应用图标 +url : "http://www.cnblogs.com/hooray", //应用地址 +width : 1000, //应用显示宽度 +height : 500, //应用显示高度 +left : 100, //距离页面左部偏移量,不设置默认水平居中 +top : 100, //距离页面顶部偏移量,不设置默认垂直居中 +isresize : true, //应用是否可以拉伸 +isopenmax : false, //应用是否打开自动最大化状态 +isflash : false //应用是否为flash应用 + +widget应用 + +id : 0, //应用id,确保该id唯一不重复,因为打开、关闭等操作都是根据这个唯一id来查找应用的 +title : "我的博客", //应用名称 +type : "widget", //应用类型,分别有app、widget可选,app为窗口应用,widget为挂件应用 +icon : "img/ui/system-shapes.png", //应用图标 +url : "http://www.cnblogs.com/hooray", //应用地址 +width : 1000, //应用显示宽度 +height : 500, //应用显示高度 +right : 100, //距离页面右部偏移量,不设置默认为0 +top : 100 //距离页面顶部偏移量,不设置默认为0 + +===== 如何更换壁纸 ===== + +打开index.html,找到: +HROS.CONFIG.wallpaper = 'img/wallpaper/wallpaper.jpg'; +将后面的地址替换成其它壁纸图片链接即可 + +===== 如何创建临时窗口和挂件 ===== + +创建一个临时窗口,多次调用会多次创建,窗口不唯一 + +HROS.window.createTemp({title:'百度',url:'http://hoorayos.com',width:800,height:400,left:100,top:100,isresize:false,isopenmax:false,isflash:false}); + +创建一个临时挂件,多次调用会多次创建,窗口不唯一 + +HROS.widget.createTemp({url:'http://hoorayos.com',width:800,height:400,right:100,top:100}); + +创建一个临时窗口,多次调用不会重复创建,窗口唯一,需要在参数里加上appid属性,内容随便填写,但确保appid唯一,以免与系统窗口重复 +参数说明:title:标题,url:网址,width:窗口宽度,height:窗口高度,left:挂件距离页面左部偏移量(可不填,默认0),top:挂件距离页面顶部偏移量(可不填,默认0),isresize:窗口是否可以拉伸(可不填,默认false),isopenmax:窗口打开是否默认最大化(可不填,默认false),isflash:窗口内是否为flash应用(可不填,默认false) + +HROS.window.createTemp({appid:'window_baidu',title:'百度',url:'hoorayos.com',width:800,height:400,left:100,top:100,isresize:false,isopenmax:false,isflash:false}); + +创建一个临时挂件,多次调用不会重复创建,窗口唯一,需要在参数里加上appid属性,内容随便填写,但确保appid唯一,以免与系统挂件重复 +参数说明:url:网址,width:窗口宽度,height:窗口高度,right:挂件距离页面左部偏移量(可不填,默认0),top:挂件距离页面顶部偏移量(可不填,默认0) + +HROS.widget.createTemp({appid:'widget_baidu',url:'hoorayos.com',width:800,height:400,right:100,top:100}); \ No newline at end of file diff --git a/src/main/webapp/js/My97DatePicker/My97DatePicker.htm b/src/main/webapp/js/My97DatePicker/My97DatePicker.htm new file mode 100644 index 00000000..89168714 --- /dev/null +++ b/src/main/webapp/js/My97DatePicker/My97DatePicker.htm @@ -0,0 +1,49 @@ + + + +My97DatePicker + + + + + + + + \ No newline at end of file diff --git a/src/main/webapp/js/My97DatePicker/WdatePicker.js b/src/main/webapp/js/My97DatePicker/WdatePicker.js new file mode 100644 index 00000000..b4cb3d1f --- /dev/null +++ b/src/main/webapp/js/My97DatePicker/WdatePicker.js @@ -0,0 +1,39 @@ +/* + * My97 DatePicker 4.72 Release + * License: http://www.my97.net/dp/license.asp + */ +var $dp,WdatePicker;(function(){var _={ +$wdate:true, +$dpPath:"", +$crossFrame:true, +doubleCalendar:false, +enableKeyboard:true, +enableInputMask:true, +autoUpdateOnChanged:null, +whichDayIsfirstWeek:4, +position:{}, +lang:"auto", +skin:"default", +dateFmt:"yyyy-MM-dd", +realDateFmt:"yyyy-MM-dd", +realTimeFmt:"HH:mm:ss", +realFullFmt:"%Date %Time", +minDate:"1900-01-01 00:00:00", +maxDate:"2099-12-31 23:59:59", +startDate:"", +alwaysUseStartDate:false, +yearOffset:1911, +firstDayOfWeek:0, +isShowWeek:false, +highLineWeekDay:true, +isShowClear:true, +isShowToday:true, +isShowOK:true, +isShowOthers:true, +readOnly:false, +errDealMode:0, +autoPickDate:null, +qsEnabled:true, +autoShowQS:false, + +specialDates:null,specialDays:null,disabledDates:null,disabledDays:null,opposite:false,onpicking:null,onpicked:null,onclearing:null,oncleared:null,ychanging:null,ychanged:null,Mchanging:null,Mchanged:null,dchanging:null,dchanged:null,Hchanging:null,Hchanged:null,mchanging:null,mchanged:null,schanging:null,schanged:null,eCont:null,vel:null,errMsg:"",quickSel:[],has:{}};WdatePicker=U;var X=window,O="document",J="documentElement",C="getElementsByTagName",V,A,T,I,b;switch(navigator.appName){case"Microsoft Internet Explorer":T=true;break;case"Opera":b=true;break;default:I=true;break}A=L();if(_.$wdate)M(A+"skin/WdatePicker.css");V=X;if(_.$crossFrame){try{while(V.parent&&V.parent[O]!=V[O]&&V.parent[O][C]("frameset").length==0)V=V.parent}catch(P){}}if(!V.$dp)V.$dp={ff:I,ie:T,opera:b,el:null,win:X,status:0,defMinDate:_.minDate,defMaxDate:_.maxDate,flatCfgs:[]};B();if($dp.status==0)Z(X,function(){U(null,true)});if(!X[O].docMD){E(X[O],"onmousedown",D);X[O].docMD=true}if(!V[O].docMD){E(V[O],"onmousedown",D);V[O].docMD=true}E(X,"onunload",function(){if($dp.dd)Q($dp.dd,"none")});function B(){V.$dp=V.$dp||{};obj={$:function($){return(typeof $=="string")?X[O].getElementById($):$},$D:function($,_){return this.$DV(this.$($).value,_)},$DV:function(_,$){if(_!=""){this.dt=$dp.cal.splitDate(_,$dp.cal.dateFmt);if($)for(var B in $)if(this.dt[B]===undefined)this.errMsg="invalid property:"+B;else{this.dt[B]+=$[B];if(B=="M"){var C=$["M"]>0?1:0,A=new Date(this.dt["y"],this.dt["M"],0).getDate();this.dt["d"]=Math.min(A+C,this.dt["d"])}}if(this.dt.refresh())return this.dt}return""},show:function(){var A=V[O].getElementsByTagName("div"),$=100000;for(var B=0;B$)$=_}this.dd.style.zIndex=$+2;Q(this.dd,"block")},hide:function(){Q(this.dd,"none")},attachEvent:E};for(var $ in obj)V.$dp[$]=obj[$];$dp=V.$dp;$dp.dd=V[O].getElementById("_my97DP")}function E(A,$,_){if(T)A.attachEvent($,_);else if(_){var B=$.replace(/on/,"");_._ieEmuEventHandler=function($){return _($)};A.addEventListener(B,_._ieEmuEventHandler,false)}}function L(){var _,A,$=X[O][C]("script");for(var B=0;B<$.length;B++){_=$[B].src.substring(0,$[B].src.toLowerCase().indexOf("wdatepicker.js"));A=_.lastIndexOf("/");if(A>0)_=_.substring(0,A+1);if(_)break}return _}function F(F){var E,C;if(F.substring(0,1)!="/"&&F.indexOf("://")==-1){E=V.location.href;C=location.href;if(E.indexOf("?")>-1)E=E.substring(0,E.indexOf("?"));if(C.indexOf("?")>-1)C=C.substring(0,C.indexOf("?"));var G,I,$="",D="",A="",J,H,B="";for(J=0;J_.scrollTop||A.scrollLeft>_.scrollLeft))?A:_;return{"top":B.scrollTop,"left":B.scrollLeft}}function D($){var _=$?($.srcElement||$.target):null;try{if($dp.cal&&!$dp.eCont&&$dp.dd&&_!=$dp.el&&$dp.dd.style.display=="block")$dp.cal.close()}catch($){}}function Y(){$dp.status=2;H()}function H(){if($dp.flatCfgs.length>0){var $=$dp.flatCfgs.shift();$.el={innerHTML:""};$.autoPickDate=true;$.qsEnabled=false;K($)}}var R,$;function U(J,C){$dp.win=X;B();J=J||{};if(C){if(!G()){$=$||setInterval(function(){if(V[O].readyState=="complete")clearInterval($);U(null,true)},50);return}if($dp.status==0){$dp.status=1;K({el:{innerHTML:""}},true)}else return}else if(J.eCont){J.eCont=$dp.$(J.eCont);$dp.flatCfgs.push(J);if($dp.status==2)H()}else{if($dp.status==0){U(null,true);return}if($dp.status!=2)return;var F=D();if(F){$dp.srcEl=F.srcElement||F.target;F.cancelBubble=true}$dp.el=J.el=$dp.$(J.el||$dp.srcEl);if(!$dp.el||$dp.el["My97Mark"]===true||$dp.el.disabled||($dp.el==$dp.el&&Q($dp.dd)!="none"&&$dp.dd.style.left!="-1970px")){$dp.el["My97Mark"]=false;return}K(J);if(F&&$dp.el.nodeType==1&&$dp.el["My97Mark"]===undefined){$dp.el["My97Mark"]=false;var _,A;if(F.type=="focus"){_="onclick";A="onfocus"}else{_="onfocus";A="onclick"}E($dp.el,_,$dp.el[A])}}function G(){if(T&&V!=X&&V[O].readyState!="complete")return false;return true}function D(){if(I){func=D.caller;while(func!=null){var $=func.arguments[0];if($&&($+"").indexOf("Event")>=0)return $;func=func.caller}return null}return event}}function S(_,$){return _.currentStyle?_.currentStyle[$]:document.defaultView.getComputedStyle(_,false)[$]}function Q(_,$){if(_)if($!=null)_.style.display=$;else return S(_,"display")}function K(H,$){for(var D in _)if(D.substring(0,1)!="$")$dp[D]=_[D];for(D in H)if($dp[D]!==undefined)$dp[D]=H[D];var E=$dp.el?$dp.el.nodeName:"INPUT";if($||$dp.eCont||new RegExp(/input|textarea|div|span|p|a/ig).test(E))$dp.elProp=E=="INPUT"?"value":"innerHTML";else return;if($dp.lang=="auto")$dp.lang=T?navigator.browserLanguage.toLowerCase():navigator.language.toLowerCase();if(!$dp.dd||$dp.eCont||($dp.lang&&$dp.realLang&&$dp.realLang.name!=$dp.lang&&$dp.getLangIndex&&$dp.getLangIndex($dp.lang)>=0)){if($dp.dd&&!$dp.eCont)V[O].body.removeChild($dp.dd);if(_.$dpPath=="")F(A);var B="";if($dp.eCont){$dp.eCont.innerHTML=B;Z($dp.eCont.childNodes[0],Y)}else{$dp.dd=V[O].createElement("DIV");$dp.dd.id="_my97DP";$dp.dd.style.cssText="position:absolute";$dp.dd.innerHTML=B;V[O].body.appendChild($dp.dd);Z($dp.dd.childNodes[0],Y);if($)$dp.dd.style.left=$dp.dd.style.top="-1970px";else{$dp.show();C()}}}else if($dp.cal){$dp.show();$dp.cal.init();if(!$dp.eCont)C()}function C(){var F=$dp.position.left,B=$dp.position.top,C=$dp.el;if(C!=$dp.srcEl&&(Q(C)=="none"||C.type=="hidden"))C=$dp.srcEl;var H=W(C),$=G(X),D=N(V),A=a(V),E=$dp.dd.offsetHeight,_=$dp.dd.offsetWidth;if(isNaN(B)){if(B=="above"||(B!="under"&&(($.topM+H.bottom+E>D.height)&&($.topM+H.top-E>0))))B=A.top+$.topM+H.top-E-2;else B=A.top+$.topM+Math.min(H.bottom,D.height-E)+2}else B+=A.top+$.topM;if(isNaN(F))F=A.left+Math.min($.leftM+H.left,D.width-_-5)-(T?2:0);else F+=A.left+$.leftM;$dp.dd.style.top=B+"px";$dp.dd.style.left=F+"px"}}})() \ No newline at end of file diff --git a/src/main/webapp/js/My97DatePicker/calendar.js b/src/main/webapp/js/My97DatePicker/calendar.js new file mode 100644 index 00000000..c5e8424e --- /dev/null +++ b/src/main/webapp/js/My97DatePicker/calendar.js @@ -0,0 +1,5 @@ +/* + * My97 DatePicker 4.72 Release + * License: http://www.my97.net/dp/license.asp + */ +eval(function(p,a,c,k,e,d){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1;};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p;}('o $c;k($5u){5Q.2X.7n("6G",l($){k(!$)h.25();t $});5Q.2X.7e("6w",l(){o $=h.6t;3i($.5M!=1)$=$.7g;t $});7f.2X.2I=l($,b){o A=$.1l(/6p/,"");b.5R=l($){6L.1Y=$;t b()};h.7t(A,b.5R,1m)}}l 5H(){$c=h;h.2Y=[];$d=1Q.7q("x");$d.1d="4d";$d.1L="<1v Y=3M><1v Y=3M><1x 2o=0 2m=0 2u=0><1j><18 7J=2><4h 1D=7L>&4B;<1v Y=7o 4b=2><1v 1g=\\":\\" Y=5P 5N><1v Y=5O 4b=2><1v 1g=\\":\\" Y=5P 5N><1v Y=5O 4b=2><18><1O 1D=7I><1j><18><1O 1D=7Q><1v Y=4e 1D=7G 3o=1O><1v Y=4e 1D=7z 3o=1O><1v Y=4e 1D=7E 3o=1O>";6M($d,l(){3t()});A();$f.1W=[1Q,$d.1M,$d.1t,$d.2V,$d.3r,$d.3I,$d.2S,$d.28,$d.1U];1b(o B=0;B<$f.1W.u;B++){o b=$f.1W[B];b.3q=B==$f.1W.u-1?$f.1W[1]:$f.1W[B+1];$f.2I(b,"4c",4R)}h.5F();$();4Q("y,M,H,m,s");$d.5S.1q=l(){4Z(1)};$d.5T.1q=l(){4Z(-1)};$d.4i.1q=l(){k($d.1E.1c.2h!="6K"){$c.4p();3w($d.1E)}q 1n($d.1E)};1Q.6N.4q($d);l A(){o b=$("a");1r=$("x"),1I=$("1v"),4g=$("1O"),5G=$("4h");$d.3y=b[0];$d.3V=b[1];$d.42=b[3];$d.3Y=b[2];$d.3K=1r[9];$d.1M=1I[0];$d.1t=1I[1];$d.4k=1r[0];$d.3T=1r[4];$d.2J=1r[6];$d.1E=1r[10];$d.2T=1r[11];$d.2H=1r[12];$d.6R=1r[13];$d.6Q=1r[14];$d.6O=1r[15];$d.4i=1r[16];$d.3z=1r[17];$d.2V=1I[2];$d.3r=1I[4];$d.3I=1I[6];$d.2S=1I[7];$d.28=1I[8];$d.1U=1I[9];$d.5S=4g[0];$d.5T=4g[1];$d.5L=5G[0];l $($){t $d.4o($)}}l $(){$d.3y.1q=l(){$1P=$1P<=0?$1P-1:-1;k($1P%5==0){$d.1t.2d();t}$d.1t.1g=$n.y-1;$d.1t.2n()};$d.3V.1q=l(){$n.2C("M",-1);$d.1M.2n()};$d.42.1q=l(){$n.2C("M",1);$d.1M.2n()};$d.3Y.1q=l(){$1P=$1P>=0?$1P+1:1;k($1P%5==0){$d.1t.2d();t}$d.1t.1g=$n.y+1;$d.1t.2n()}}}5H.2X={5F:l(){$1P=0;$f.5K=h;k($f.3N&&$f.z.3N!=1i){$f.z.3N=19;$f.z.4w()}$();h.5j();$n=h.6f=1a 1C();$1B=1a 1C();$1w=h.2w=1a 1C();h.1y=h.34($f.1y);h.2P=$f.2P==1i?($f.Z.2a&&$f.Z.2a?1m:19):$f.2P;$f.2z=$f.2z==1i?($f.4j&&$f.Z.d?1m:19):$f.2z;h.49=h.3f("8a");h.68=h.3f("8b");h.64=h.3f("89");h.5C=h.3f("87");h.1X=h.3P($f.1X,$f.1X!=$f.5D?$f.1S:$f.3j,$f.5D);h.1Z=h.3P($f.1Z,$f.1Z!=$f.5E?$f.1S:$f.3j,$f.5E);k(h.1X.2r(h.1Z)>0)$f.4f=$1k.7V;k(h.1R()){h.5J();h.3O=$f.z[$f.1z]}q h.3m(1m,2);4u($n);$d.5L.1L=$1k.7R;$d.2S.1g=$1k.7S;$d.28.1g=$1k.7Z;$d.1U.1g=$1k.80;$d.1U.1N=!$c.1u($1w);h.5c();h.6l();k($f.4f)7Y($f.4f);h.4C();k($f.z.5M==1&&$f.z["4m"]===4Y){$f.2I($f.z,"4c",4R);$f.2I($f.z,"2n",l(){k($f.1K.1c.2h=="2E"){$c.3Q();k($f.5K.3O!=$f.z[$f.1z]&&$f.z.75)4I($f.z,"73")}})}$c.1f=$f.z;3t();l $(){o b,$;1b(b=0;($=1Q.4o("71")[b]);b++)k($["72"].1o("1c")!=-1&&$["5I"]){$.1N=19;k($["5I"]==$f.79)$.1N=1m}}},5J:l(){o b=h.2L();k(b!=0){o $;k(b>0)$=h.1Z;q $=h.1X;k($f.Z.3u){$n.y=$.y;$n.M=$.M;$n.d=$.d}k($f.Z.2a){$n.H=$.H;$n.m=$.m;$n.s=$.s}}},3b:l(J,C,Q,E,B,G,F,K,L){o $;k(J&&J.1R)$=J;q{$=1a 1C();k(J!=""){C=C||$f.1y;o H,P=0,O,A=/3a|2l|36|y|2A|2Z|3U|M|1K|d|%2k|4J|H|4K|m|4G|s|3c|D|4H|W|w/g,b=C.35(A);A.2x=0;k(L)O=J.4O(/\\W+/);q{o D=0,M="^";3i((O=A.3h(C))!==1i){k(D>=0)M+=C.1F(D,O.3x);D=A.2x;2G(O[0]){1e"3a":M+="(\\\\d{4})";1h;1e"2l":M+="(\\\\d{3})";1h;1e"2A":1e"2Z":1e"3c":1e"D":M+="(\\\\D+)";1h;5X:M+="(\\\\d\\\\d?)";1h}}M+=".*$";O=1a 4r(M).3h(J);P=1}k(O){1b(H=0;H=0){A=A.1l(/%2k/g,"0");$.d=0;$.M=2e($.M)+1}$.20()}t $},1R:l(){o b,$;k($f.7b||($f.6b!=""&&$f.z[$f.1z]=="")){b=h.34($f.6b);$=$f.1S}q{b=$f.z[$f.1z];$=h.1y}$n.2c(h.3b(b,$));k(b!=""){o A=1;k($f.Z.3u&&!h.44($n)){$n.y=$1B.y;$n.M=$1B.M;$n.d=$1B.d;A=0}k($f.Z.2a&&!h.4a($n)){$n.H=$1B.H;$n.m=$1B.m;$n.s=$1B.s;A=0}t A&&h.1u($n)}t 1},44:l($){k($.y!=1i)$=3n($.y,4)+"-"+$.M+"-"+$.d;t $.35(/^((\\d{2}(([69][7p])|([6a][26]))[\\-\\/\\s]?((((0?[6h])|(1[6i]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[6g])))|(((0?[6e])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])))))|(\\d{2}(([69][74])|([6a][7u]))[\\-\\/\\s]?((((0?[6h])|(1[6i]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[6g])))|(((0?[6e])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(\\s(((0?[0-9])|([1-2][0-3]))\\:([0-5]?[0-9])((\\s)|(\\:([0-5]?[0-9])))))?$/)},4a:l($){k($.H!=1i)$=$.H+":"+$.m+":"+$.s;t $.35(/^([0-9]|([0-1][0-9])|([2][0-3])):([0-9]|([0-5][0-9])):([0-9]|([0-5][0-9]))$/)},2L:l($,A){$=$||$n;o b=$.2r(h.1X,A);k(b>0){b=$.2r(h.1Z,A);k(b<0)b=0}t b},1u:l($,A,B){A=A||$f.Z.3A;o b=h.2L($,A);k(b==0){b=1;k(A=="d"&&B==1i)B=2y.5Y((1a 1G($.y,$.M-1,$.d).21()-$f.41)%7);b=!h.67(B)&&!h.5Z($,A)}q b=0;t b},62:l(){o b=$f.z,A=h,$=$f.z[$f.1z];k($!=1i){k($!="")A.2w.2c(A.3b($,A.1y));k($==""||(A.44(A.2w)&&A.4a(A.2w)&&A.1u(A.2w))){k($!=""){A.6f.2c(A.2w);A.2p()}q A.3R("")}q t 1m}t 19},3Q:l($){3t();k(h.62()){h.3m(19);$f.1n()}q{k($){3k($);h.3m(1m,2)}q h.3m(1m);$f.24()}},3F:l(){o E,C,D,K,A,H=1a 2s(),F=$1k.5y,G=$f.41,I="",$="",b=1a 1C($n.y,$n.M,$n.d,0,0,0),J=b.y,B=b.M;A=1-1a 1G(J,B-1,1).21()+G;k(A>1)A-=7;H.a("<1x Y=5g 2U=3p% 2u=0 2o=0 2m=0>");H.a("<1j Y=5f 4A=5h>");k($f.61)H.a("<18>"+F[0]+"");1b(E=0;E<7;E++)H.a("<18>"+F[(G+E)%7+1]+"");H.a("");1b(E=1,C=A;E<7;E++){H.a("<1j>");1b(D=0;D<7;D++){b.1R(J,B,C++);b.20();k(b.M==B){K=19;k(b.2r($1w,"d")==0)I="7s";q k(b.2r($1B,"d")==0)I="7d";q I=($f.63&&(0==(G+D)%7||6==(G+D)%7)?"7k":"7l");$=($f.63&&(0==(G+D)%7||6==(G+D)%7)?"7i":"7j")}q k($f.5s){K=19;I="7c";$="8L"}q K=1m;k($f.61&&D==0&&(E<4||K))H.a("<18 Y=8H>"+4t(b,$f.41==0?1:0)+"");H.a("<18 ");k(K){k(h.1u(b,"d",D)){k(h.65(2y.5Y((1a 1G(b.y,b.M-1,b.d).21()-$f.41)%7))||h.66(b))I="8K";H.a("1q=\\"2O("+b.y+","+b.M+","+b.d+");\\" ");H.a("2t=\\"h.1d=\'"+$+"\'\\" ");H.a("2q=\\"h.1d=\'"+I+"\'\\" ")}q I="8M";H.a("Y="+I);H.a(">"+b.d+"")}q H.a(">")}H.a("")}H.a("");t H.j()},5Z:l(b,A){o $=h.47(b,h.49,A);t(h.49&&$f.5e)?!$:$},67:l($){t h.4x($,h.68)},66:l($){t h.47($,h.64)},65:l($){t h.4x($,h.5C)},47:l($,B,A){o b=A=="d"?$f.4l:$f.1S;t B?B.4P(h.3S(b,$)):0},4x:l(b,$){t $?$.4P(b):0},2R:l(p,c,r,e,2j){o s=1a 2s(),4y=2j?"r"+p:p;5b=$n[p];s.a("<1x 2o=0 2m=3 2u=0");1b(o i=0;i");1b(o j=0;j"+(p=="M"?$1k.29[$n[p]-1]:$n[p])+"")}s.a("")}s.a("");$n[p]=5b;t s.j()},4E:l($,b){k($){o A=$.8Q;k($6m)A=$.8V().2v;b.1c.2v=A}},8E:l($){h.4E($,$d.3T);$d.3T.1L=h.2R("M",2,6,"i+j*6+1",$==$d.2i)},4v:l(b,A){o $=1a 2s();A=2K(A,$n.y-5);$.a(h.2R("y",2,5,A+"+i+j*5",b==$d.2D));$.a("<1x 2o=0 2m=3 2u=0 4A=5h><1j><18 ");$.a(h.1X.y\\8l<18 Y=\'1A\' 2t=\\"h.1d=\'3e\'\\" 2q=\\"h.1d=\'1A\'\\" 3Z=\\"1n($d.2J);$d.1t.4w();\\">\\5l<18 ");$.a(h.1Z.y>A+10?"Y=\'1A\' 2t=\\"h.1d=\'3e\'\\" 2q=\\"h.1d=\'1A\'\\" 3Z=\'k(1Y.25)1Y.25();1Y.4S=19;$c.4v(0,"+(A+10)+")\'":"Y=\'4z\'");$.a(">\\8p");h.4E(b,$d.2J);$d.2J.1L=$.j()},3C:l(A,b,$){$d[A+"D"].1L=h.2R(A,6,b,$)},8n:l(){h.3C("H",4,"i * 6 + j")},8e:l(){h.3C("m",2,"i * 30 + j * 5")},8c:l(){h.3C("s",1,"j * 10")},4p:l(A){h.6F();o b=h.2Y,C=b.1c,$=1a 2s();$.a("<1x Y=5g 2U=3p% 2f=3p% 2u=0 2o=0 2m=0>");$.a("<1j Y=5f><18>"+$1k.8g+"");k(!A)$.a("\\5l");$.a("");1b(o B=0;B<18 1c=\'55-4A:2v\' 3d=\'3d\' Y=\'1A\' 2t=\\"h.1d=\'3e\'\\" 2q=\\"h.1d=\'1A\'\\" 1q=\\"");$.a("2O("+b[B].y+", "+b[B].M+", "+b[B].d+","+b[B].H+","+b[B].m+","+b[B].s+");\\">");$.a("&4B;"+h.3S(1i,b[B]));$.a("")}q $.a("<1j><18 Y=\'1A\'>&4B;");$.a("");$d.1E.1L=$.j()},5j:l(){$(/w/);$(/4H|W/);$(/3c|D/);$(/3a|2l|36|y/);$(/2A|2Z|3U|M/);$(/1K|d/);$(/4J|H/);$(/4K|m/);$(/4G|s/);$f.Z.3u=($f.Z.y||$f.Z.M||$f.Z.d)?19:1m;$f.Z.2a=($f.Z.H||$f.Z.m||$f.Z.s)?19:1m;$f.3j=$f.3j.1l(/%1G/,$f.4l).1l(/%8w/,$f.5d);k($f.Z.3u){k($f.Z.2a)$f.1S=$f.3j;q $f.1S=$f.4l}q $f.1S=$f.5d;l $(b){o $=(b+"").4T(1,2);$f.Z[$]=b.3h($f.1y)?($f.Z.3A=$,19):1m}},5c:l(){o $=0;$f.Z.y?($=1,24($d.1t,$d.3y,$d.3Y)):1n($d.1t,$d.3y,$d.3Y);$f.Z.M?($=1,24($d.1M,$d.3V,$d.42)):1n($d.1M,$d.3V,$d.42);$?24($d.4k):1n($d.4k);k($f.Z.2a){24($d.2H);3G($d.2V,$f.Z.H);3G($d.3r,$f.Z.m);3G($d.3I,$f.Z.s)}q 1n($d.2H);2M($d.2S,$f.5w);2M($d.28,$f.5x);2M($d.1U,$f.4j);2M($d.4i,!$f.5n&&$f.Z.d&&$f.8t);k($f.6v||!($f.5w||$f.5x||$f.4j))1n($d.3z);q 24($d.3z)},3m:l(B,D){o A=$f.z,b=$5u?"Y":"1d";k(B)C(A);q{k(D==1i)D=$f.8s;2G(D){1e 0:k(8B($1k.8C)){A[$f.1z]=h.3O;C(A)}q $(A);1h;1e 1:A[$f.1z]=h.3O;C(A);1h;1e 2:$(A);1h}}l C(A){o B=A.1d;k(B){o $=B.1l(/5B/g,"");k(B!=$)A.5A(b,$)}}l $($){$.5A(b,$.1d+" 5B")}},1V:l(D,b,$){$=$||$1w;o H,C=[D+D,D],E,A=$[D],F=l($){t 3n(A,$.u)};2G(D){1e"w":A=21($);1h;1e"D":o G=21($)+1;F=l($){t $.u==2?$1k.8A[G]:$1k.5y[G]};1h;1e"W":A=4t($);1h;1e"y":C=["3a","2l","36","y"];b=b||C[0];F=l(b){t 3n((b.u<4)?(b.u<3?$.y%3p:($.y+5z-$f.5p)%8x):A,b.u)};1h;1e"M":C=["2A","2Z","3U","M"];F=l($){t($.u==4)?$1k.5m[A-1]:($.u==3)?$1k.29[A-1]:3n(A,$.u)};1h}b=b||D+D;k("2N".1o(D)>-1&&D!="y"&&!$f.Z[D])k("8h".1o(D)>-1)A=0;q A=1;o B=[];1b(H=0;H=0){B[H]=F(E);b=b.1l(E,"{"+H+"}")}}1b(H=0;H=0){o A=1a 1C();A.2c($);A.d=0;A.M=2e(A.M)+1;A.20();b=b.1l(/%2k/g,A.d)}o B="8d";1b(o D=0;D<1j><18 5q=5r>");$.a(h.3F());$.a("<18 5q=5r>");$n.2C("M",1);$.a(h.3F());$d.2i=$d.1M.5o(19);$d.2D=$d.1t.5o(19);$d.3K.4q($d.2i);$d.3K.4q($d.2D);$d.2i.1g=$1k.29[$n.M-1];$d.2i["3v"]=$n.M;$d.2D.1g=$n.y;4Q("6H,6E");$d.2i.1d=$d.2D.1d="3M";$n.2C("M",-1);$.a("");$d.2T.1L=$.j()}q{$d.1d="4d";$d.2T.1L=h.3F()}k(!$f.Z.d||$f.8J){h.4p(19);3w($d.1E)}q 1n($d.1E);h.6P()},6P:l(){o b=8W.1Q.4o("8k");1b(o C=0;C=B){A+=B;$d.1c.2f=A}q $d.1c.2f=$;b[C].1c.2f=2y.5v(A,$d.3l)+"6s"}}$d.1E.1c.2U=$d.2T.6q;$d.1E.1c.2f=$d.2T.3l},4W:l(){$n.d=2y.8D(1a 1G($n.y,$n.M,0).2F(),$n.d);$1w.2c($n);h.2p();k(!$f.6v)k(h.1u($n)){4n();1n($f.1K)}k($f.6u)2g("6u")},6l:l(){$d.2S.1q=l(){k(!2g("8q")){$f.z[$f.1z]="";$c.3R("");4n();1n($f.1K);k($f.6n)2g("6n")}};$d.1U.1q=l(){2O()};k(h.1u($1B)){$d.28.1N=1m;$d.28.1q=l(){$n.2c($1B);2O()}}q $d.28.1N=19},6F:l(){o H,G,A,F,C=[],$=5,E=$f.6I.u,b=$f.Z.3A;k(E>$)E=$;q k(b=="m"||b=="s")C=[-60,-30,0,30,60,-15,15,-45,45];q 1b(H=0;H<$;H++)C[H]=$n[b]-2+H;1b(H=G=0;H=0)1H=43(1H,0,59);k($1w[p]!=1H&&!2g(p+"7U")){o 6o="1T(\\""+p+"\\","+1H+")",3B=$c.2L();k(3B==0)2W(6o);q k(3B<0)4D($c.1X);q k(3B>0)4D($c.1Z);$d.1U.1N=!$c.1u($1w);k("7C".1o(p)>=0)$c.4C();2g(p+"7D")}l 4D($){4u($c.1u($)?$:$1w)}}l 4u($){1T("y",$.y);1T("M",$.M);1T("d",$.d);1T("H",$.H);1T("m",$.m);1T("s",$.s)}l 2O(F,B,b,D,C,A){o $=1a 1C($n.y,$n.M,$n.d,$n.H,$n.m,$n.s);$n.1R(F,B,b,D,C,A);k(!2g("7H")){o E=$.y==F&&$.M==B&&$.d==b;k(!E&&2Q.u!=0){c("y",F);c("M",B);c("d",b);$c.1f=$f.z;k($f.2z)$c.2p()}k($c.2P||E||2Q.u==0)$c.4W()}q $n=$}l 2g($){o b;k($f[$])b=$f[$].4V($f.z,$f);t b}l 1T(b,$){k($==1i)$=$n[b];$1w[b]=$n[b]=$;k("7K".1o(b)>=0)$d[b+"I"].1g=$;k(b=="M"){$d.1M["3v"]=$;$d.1M.1g=$1k.29[$-1]}}l 43(b,$,A){k(b<$)b=$;q k(b>A)b=A;t b}l 6M($,b){$.2I("4c",l(){o $=1Y,A=($.4M==4Y)?$.4F:$.4M;k(A==9)b()})}l 3n($,b){$=$+"";3i($.u=0?C:5;1b(o D=0;D<=C;D++){B=A.1J(D);b=h[B]-$[B];k(b>0)t 1;q k(b<0)t-1}t 0},20:l(){o $=1a 1G(h.y,h.M-1,h.d,h.H,h.m,h.s);h.y=$.52();h.M=$.5a()+1;h.d=$.2F();h.H=$.54();h.m=$.53();h.s=$.56();t!6j(h.y)},2C:l(b,$){k("2N".1o(b)>=0){o A=h.d;k(b=="M")h.d=1;h[b]+=$;h.20();h.d=A}}};l 2e($){t 7F($,10)}l 3E($,b){t 2K(2e($),b)}l 1p($,A,b){t 3E($,2K(A,b))}l 2K($,b){t $==1i||6j($)?b:$}l 4I(A,$){k($6m)A.4I("6p"+$);q{o b=1Q.82("88");b.7W($,19,19);A.7X(b)}}l 3J($){o A,B,b="y,M,H,m,s,6E,6H".4O(",");1b(B=0;B=0?6B(v):$n[p];k(p=="y"){2j=h==$d.2D;k(2j&&$n.M==12)$n.y-=1}q k(p=="M"){2j=h==$d.2i;k(2j){51=$1k.29[$n[p]-1];k(6C==12)$n.y+=1;$n.2C("M",-1)}k($1w.M==$n.M)h.1g=51||$1k.29[$n[p]-1];k(($1w.y!=$n.y))c("y",$n.y)}2W("c(\\""+p+"\\","+$n[p]+")");k(6y!==19){k(p=="y"||p=="M")h.1d="3M";1n($d[p+"D"])}k($f.2z)$c.2p()}l 3k($){k($.25){$.25();$.8i()}q{$.4S=19;$.6G=1m}k($5t)$.4F=0}l 4Q($){o A=$.4O(",");1b(o B=0;B=8m&&Q<=8U)Q-=48;k($f.8I&&58){k(!H.3q){H.3q=$f.1W[1];$c.1f=$f.z}k(H==$f.z)$c.1f=$f.z;k(Q==27)k(H==$f.z){$c.3Q();t}q $f.z.2d();k(Q>=37&&Q<=40){o U;k($c.1f==$f.z||$c.1f==$d.1U)k($f.Z.d){U="d";k(Q==38)$n[U]-=7;q k(Q==39)$n[U]+=1;q k(Q==37)$n[U]-=1;q $n[U]+=7;$n.20();c("y",$n["y"]);c("M",$n["M"]);c("d",$n[U]);3k(M);t}q{U=$f.Z.3A;$d[U+"I"].2d()}U=U||3J($c.1f);k(U){k(Q==38||Q==39)$n[U]+=1;q $n[U]-=1;$n.20();$c.1f.1g=$n[U];3L.4V($c.1f,19);$c.1f.4U()}}q k(Q==9){o D=H.3q;1b(o R=0;R<$f.1W.u;R++)k(D.1N==19||D.3l==0)D=D.3q;q 1h;k($c.1f!=D){$c.1f=D;D.2d()}}q k(Q==13){3L.4V($c.1f);k($c.1f.3o=="1O")$c.1f.8P();q $c.4W();$c.1f=$f.z}}q k(Q==9&&H==$f.z)$c.3Q();k($f.8S&&!$5t&&!$f.3N&&$c.1f==$f.z&&(Q>=48&&Q<=57)){o T=$f.z,S=T.1g,F=E(T),I={22:"",1s:[]},R=0,K,N=0,X=0,O=0,J,b=/3a|2l|36|y|3U|M|1K|d|%2k|4J|H|4K|m|4G|s|4H|W|w/g,L=$f.1y.35(b),B,A,$,V,W,G,J=0;k(S!=""){O=S.35(/[0-9]/g);O=O==1i?0:O.u;1b(R=0;R=0?1:0;k(O==1&&F>=S.u)F=S.u-1}S=S.1F(0,F)+8r.8v(Q)+S.1F(F+O);F++;1b(R=0;R=0){S+=$f.1y.1F(N,X);k(F>=N+J&&F<=X+J)F+=X-N}N=b.2x;G=N-X;B=I.22.1F(0,G);A=K[0].1J(0);$=2e(B.1J(0));k(I.22.u>1){V=I.22.1J(1);W=$*10+2e(V)}q{V="";W=$}k(I.1s[X+1]||A=="M"&&W>12||A=="d"&&W>31||A=="H"&&W>23||"5k".1o(A)>=0&&W>59){k(K[0].u==2)B="0"+$;q B=$;F++}q k(G==1){B=W;G++;J++}S+=B;I.22=I.22.1F(G);k(I.22=="")1h}T.1g=S;P(T,F);3k(M)}k(58&&$c.1f!=$f.z&&!((Q>=48&&Q<=57)||Q==8||Q==46))3k(M);l E(A){o b=0;k($f.4N.1Q.6d){o B=$f.4N.1Q.6d.6U(),$=B.55.u;B.5V("4X",-A.1g.u);b=B.55.u-$}q k(A.4L||A.4L=="0")b=A.4L;t b}l P(b,A){k(b.5U){b.2d();b.5U(A,A)}q k(b.5W){o $=b.5W();$.7w(19);$.7y("4X",A);$.5V("4X",A);$.4U()}}}',62,555,'|||||||||||_||||dp||this|||if|function||dt|var||else|||return|length|||div||el|||||||||||||||||||||||||class|has|||||||||td|true|new|for|style|className|case|currFocus|value|break|null|tr|lang|replace|false|hide|indexOf|pInt3|onclick|divs|arr|yI|checkValid|input|sdt|table|dateFmt|elProp|menu|tdt|DPDate|id|qsDivSel|substring|Date|pv|ipts|charAt|dd|innerHTML|MI|disabled|button|ny|document|loadDate|realFmt|sv|okI|getP|focusArr|minDate|event|maxDate|refresh|getDay|str||show|preventDefault|||todayI|aMonStr|st|9700|loadFromDate|focus|pInt|height|callFunc|display|rMI|isR|ld|yyy|cellpadding|onblur|cellspacing|update|onmouseout|compareWith|sb|onmouseover|border|left|date|lastIndex|Math|autoUpdateOnChanged|MMMM|tmpEval|attr|ryI|none|getDate|switch|tDiv|attachEvent|yD|rtn|checkRange|shorH|yMdHms|day_Click|autoPickDate|arguments|_f|clearI|dDiv|width|HI|eval|prototype|QS|MMM||||menuSel|doExp|match|yy||||yyyy|splitDate|DD|nowrap|menuOn|_initRe|float|exec|while|realFullFmt|_cancelKey|offsetHeight|mark|doStr|type|100|nextCtrl|mI|setDisp|hideSel|sd|realValue|showB|index|navLeftImg|bDiv|minUnit|rv|_fHMS|ps|pInt2|_fd|disHMS|navImg|sI|_foundInput|rMD|_blur|yminput|readOnly|oldValue|doCustomDate|close|setRealValue|getDateStr|MD|MM|leftImg|href|toLowerCase|navRightImg|onmousedown||firstDayOfWeek|rightImg|makeInRange|isDate|||testDate||ddateRe|isTime|maxlength|onkeydown|WdateDiv|dpButton|errMsg|btns|span|qsDiv|isShowOK|titleDiv|realDateFmt|My97Mark|elFocus|getElementsByTagName|_fillQS|appendChild|RegExp|getNewDateStr|getWeek|_setAll|_fy|blur|testDay|fp|invalidMenu|align|nbsp|draw|_setFrom|_fMyPos|keyCode|ss|WW|fireEvent|HH|mm|selectionStart|which|win|split|test|_inputBindEvent|_tab|cancelBubble|slice|select|call|pickDate|character|undefined|updownEvent||mStr|getFullYear|getMinutes|getHours|text|getSeconds||isShow||getMonth|bak|initShowAndHide|realTimeFmt|opposite|MTitle|WdayTable|center|right|_dealFmt|ms|xd7|aLongMonStr|doubleCalendar|cloneNode|yearOffset|valign|top|isShowOthers|OPERA|FF|max|isShowClear|isShowToday|aWeekStr|2000|setAttribute|WdateFmtErr|sdayRe|defMinDate|defMaxDate|init|spans|My97DP|title|_makeDateInRange|cal|timeSpan|nodeType|readonly|tE|tm|Event|_ieEmuEventHandler|upButton|downButton|setSelectionRange|moveStart|createTextRange|default|abs|testDisDate||isShowWeek|checkAndUpdate|highLineWeekDay|sdateRe|testSpeDay|testSpeDate|testDisDay|ddayRe|02468|13579|startDate|re|selection|469|newdate|01|13578|02|isNaN|_focus|initBtn|IE|oncleared|func|on|offsetWidth|coverDate|px|target|onpicked|eCont|srcElement|yminputfocus|showDiv|setDate|hidden|Number|oldv|nodeName|ry|initQS|returnValue|rM|quickSel|valueOf|block|window|attachTabEvent|body|sD|autoSize|mD|HD|Function|86400000|createRange|vel|NavImgll|round|dpTitle|typeof|object|link|rel|change|1235679|onchange|NavImgl|substr|1900|skin|MMenu|alwaysUseStartDate|WotherDay|Wtoday|__defineGetter__|HTMLElement|parentNode|Array|WwdayOn|WdayOn|Wwday|Wday|setMonth|__defineSetter__|tB|048|createElement|join|Wselday|addEventListener|01345789|whichDayIsfirstWeek|collapse|dpTime|moveEnd|dpTodayInput|hhMenu|overflow|yMd|changed|dpOkInput|parseInt|dpClearInput|onpicking|dpTimeUp|rowspan|yHms|dpTimeStr|mmMenu|dpControl|dpQS|ssMenu|dpTimeDown|timeStr|clearStr|00|changing|err_1|initEvent|dispatchEvent|alert|todayStr|okStr|YMenu|createEvent|NavImgrr|NavImgr|absolute|position|specialDays|HTMLEvents|specialDates|disabledDates|disabledDays|_fs|ydHmswW|_fm|scrollHeight|quickStr|Hms|stopPropagation|contentWindow|iframe|u2190|96|_fH|getNewP|u2192|onclearing|String|errDealMode|qsEnabled|onfocus|fromCharCode|Time|1000|pointer|cursor|aLongWeekStr|confirm|errAlertMsg|min|_fM|try|textarea|Wweek|enableKeyboard|autoShowQS|WspecialDay|WotherDayOn|WinvalidDay|srcEl|catch|click|offsetLeft|WdayTable2|enableInputMask|WdateDiv2|105|getBoundingClientRect|parent'.split('|'),0,{})) \ No newline at end of file diff --git a/src/main/webapp/js/My97DatePicker/config.js b/src/main/webapp/js/My97DatePicker/config.js new file mode 100644 index 00000000..032e7ed2 --- /dev/null +++ b/src/main/webapp/js/My97DatePicker/config.js @@ -0,0 +1,12 @@ +var langList = +[ + {name:'en', charset:'UTF-8'}, + {name:'zh-cn', charset:'UTF-8'}, + {name:'zh-tw', charset:'UTF-8'} +]; + +var skinList = +[ + {name:'default', charset:'UTF-8'}, + {name:'whyGreen', charset:'UTF-8'} +]; \ No newline at end of file diff --git a/src/main/webapp/js/My97DatePicker/lang/en.js b/src/main/webapp/js/My97DatePicker/lang/en.js new file mode 100644 index 00000000..e3ff1102 --- /dev/null +++ b/src/main/webapp/js/My97DatePicker/lang/en.js @@ -0,0 +1,14 @@ +var $lang={ +errAlertMsg: "Invalid date or the date out of range,redo or not?", +aWeekStr: ["wk", "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], +aLongWeekStr:["wk","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"], +aMonStr: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], +aLongMonStr: ["January","February","March","April","May","June","July","August","September","October","November","December"], +clearStr: "Clear", +todayStr: "Today", +okStr: "OK", +updateStr: "OK", +timeStr: "Time", +quickStr: "Quick Selection", +err_1: 'MinDate Cannot be bigger than MaxDate!' +} \ No newline at end of file diff --git a/src/main/webapp/js/My97DatePicker/lang/zh-cn.js b/src/main/webapp/js/My97DatePicker/lang/zh-cn.js new file mode 100644 index 00000000..12527856 --- /dev/null +++ b/src/main/webapp/js/My97DatePicker/lang/zh-cn.js @@ -0,0 +1,14 @@ +var $lang={ +errAlertMsg: "\u4E0D\u5408\u6CD5\u7684\u65E5\u671F\u683C\u5F0F\u6216\u8005\u65E5\u671F\u8D85\u51FA\u9650\u5B9A\u8303\u56F4,\u9700\u8981\u64A4\u9500\u5417?", +aWeekStr: ["\u5468","\u65E5","\u4E00","\u4E8C","\u4E09","\u56DB","\u4E94","\u516D"], +aLongWeekStr:["\u5468","\u661F\u671F\u65E5","\u661F\u671F\u4E00","\u661F\u671F\u4E8C","\u661F\u671F\u4E09","\u661F\u671F\u56DB","\u661F\u671F\u4E94","\u661F\u671F\u516D"], +aMonStr: ["\u4E00\u6708","\u4E8C\u6708","\u4E09\u6708","\u56DB\u6708","\u4E94\u6708","\u516D\u6708","\u4E03\u6708","\u516B\u6708","\u4E5D\u6708","\u5341\u6708","\u5341\u4E00","\u5341\u4E8C"], +aLongMonStr: ["\u4E00\u6708","\u4E8C\u6708","\u4E09\u6708","\u56DB\u6708","\u4E94\u6708","\u516D\u6708","\u4E03\u6708","\u516B\u6708","\u4E5D\u6708","\u5341\u6708","\u5341\u4E00\u6708","\u5341\u4E8C\u6708"], +clearStr: "\u6E05\u7A7A", +todayStr: "\u4ECA\u5929", +okStr: "\u786E\u5B9A", +updateStr: "\u786E\u5B9A", +timeStr: "\u65F6\u95F4", +quickStr: "\u5FEB\u901F\u9009\u62E9", +err_1: '\u6700\u5C0F\u65E5\u671F\u4E0D\u80FD\u5927\u4E8E\u6700\u5927\u65E5\u671F!' +} \ No newline at end of file diff --git a/src/main/webapp/js/My97DatePicker/lang/zh-tw.js b/src/main/webapp/js/My97DatePicker/lang/zh-tw.js new file mode 100644 index 00000000..32c04e01 --- /dev/null +++ b/src/main/webapp/js/My97DatePicker/lang/zh-tw.js @@ -0,0 +1,14 @@ +var $lang={ +errAlertMsg: "\u4E0D\u5408\u6CD5\u7684\u65E5\u671F\u683C\u5F0F\u6216\u8005\u65E5\u671F\u8D85\u51FA\u9650\u5B9A\u7BC4\u570D,\u9700\u8981\u64A4\u92B7\u55CE?", +aWeekStr: ["\u5468","\u65E5","\u4E00","\u4E8C","\u4E09","\u56DB","\u4E94","\u516D"], +aLongWeekStr:["\u5468","\u661F\u671F\u65E5","\u661F\u671F\u4E00","\u661F\u671F\u4E8C","\u661F\u671F\u4E09","\u661F\u671F\u56DB","\u661F\u671F\u4E94","\u661F\u671F\u516D"], +aMonStr: ["\u4E00\u6708","\u4E8C\u6708","\u4E09\u6708","\u56DB\u6708","\u4E94\u6708","\u516D\u6708","\u4E03\u6708","\u516B\u6708","\u4E5D\u6708","\u5341\u6708","\u5341\u4E00","\u5341\u4E8C"], +aLongMonStr: ["\u4E00\u6708","\u4E8C\u6708","\u4E09\u6708","\u56DB\u6708","\u4E94\u6708","\u516D\u6708","\u4E03\u6708","\u516B\u6708","\u4E5D\u6708","\u5341\u6708","\u5341\u4E00\u6708","\u5341\u4E8C\u6708"], +clearStr: "\u6E05\u7A7A", +todayStr: "\u4ECA\u5929", +okStr: "\u78BA\u5B9A", +updateStr: "\u78BA\u5B9A", +timeStr: "\u6642\u9593", +quickStr: "\u5FEB\u901F\u9078\u64C7", +err_1: '\u6700\u5C0F\u65E5\u671F\u4E0D\u80FD\u5927\u65BC\u6700\u5927\u65E5\u671F!' +} \ No newline at end of file diff --git a/src/main/webapp/js/My97DatePicker/skin/WdatePicker.css b/src/main/webapp/js/My97DatePicker/skin/WdatePicker.css new file mode 100644 index 00000000..74a75e84 --- /dev/null +++ b/src/main/webapp/js/My97DatePicker/skin/WdatePicker.css @@ -0,0 +1,10 @@ +.Wdate{ + border:#999 1px solid; + height:20px; + background:#fff url(datePicker.gif) no-repeat right; +} + +.WdateFmtErr{ + font-weight:bold; + color:red; +} \ No newline at end of file diff --git a/src/main/webapp/js/My97DatePicker/skin/datePicker.gif b/src/main/webapp/js/My97DatePicker/skin/datePicker.gif new file mode 100644 index 00000000..d6bf40c9 Binary files /dev/null and b/src/main/webapp/js/My97DatePicker/skin/datePicker.gif differ diff --git a/src/main/webapp/js/My97DatePicker/skin/default/datepicker.css b/src/main/webapp/js/My97DatePicker/skin/default/datepicker.css new file mode 100644 index 00000000..8c8ea7b9 --- /dev/null +++ b/src/main/webapp/js/My97DatePicker/skin/default/datepicker.css @@ -0,0 +1,246 @@ +/* + * My97 DatePicker 4.7 + */ + +.WdateDiv{ + width:180px; + background-color:#FFFFFF; + border:#bbb 1px solid; + padding:2px; +} + +.WdateDiv2{ + width:360px; +} +.WdateDiv *{font-size:9pt;} + +.WdateDiv .NavImg a{ + display:block; + cursor:pointer; + height:16px; + width:16px; +} + +.WdateDiv .NavImgll a{ + float:left; + background:transparent url(img.gif) no-repeat scroll 0 0; +} +.WdateDiv .NavImgl a{ + float:left; + background:transparent url(img.gif) no-repeat scroll -16px 0; +} +.WdateDiv .NavImgr a{ + float:right; + background:transparent url(img.gif) no-repeat scroll -32px 0; +} +.WdateDiv .NavImgrr a{ + float:right; + background:transparent url(img.gif) no-repeat scroll -48px 0; +} + +.WdateDiv #dpTitle{ + height:24px; + margin-bottom:2px; + padding:1px; +} + +.WdateDiv .yminput{ + margin-top:2px; + text-align:center; + height:20px; + border:0px; + width:50px; + cursor:pointer; +} + +.WdateDiv .yminputfocus{ + margin-top:2px; + text-align:center; + font-weight:bold; + height:20px; + color:blue; + border:#ccc 1px solid; + width:50px; +} + +.WdateDiv .menuSel{ + z-index:1; + position:absolute; + background-color:#FFFFFF; + border:#ccc 1px solid; + display:none; +} + +.WdateDiv .menu{ + cursor:pointer; + background-color:#fff; +} + +.WdateDiv .menuOn{ + cursor:pointer; + background-color:#BEEBEE; +} + +.WdateDiv .invalidMenu{ + color:#aaa; +} + +.WdateDiv .YMenu{ + margin-top:20px; + +} + +.WdateDiv .MMenu{ + margin-top:20px; + *width:62px; +} + +.WdateDiv .hhMenu{ + margin-top:-90px; + margin-left:26px; +} + +.WdateDiv .mmMenu{ + margin-top:-46px; + margin-left:26px; +} + +.WdateDiv .ssMenu{ + margin-top:-24px; + margin-left:26px; +} + + .WdateDiv .Wweek { + text-align:center; + background:#DAF3F5; + border-right:#BDEBEE 1px solid; + } + +.WdateDiv .MTitle{ + background-color:#BDEBEE; +} +.WdateDiv .WdayTable2{ + border-collapse:collapse; + border:#c5d9e8 1px solid; +} +.WdateDiv .WdayTable2 table{ + border:0; +} + +.WdateDiv .WdayTable{ + line-height:20px; + border:#c5d9e8 1px solid; +} +.WdateDiv .WdayTable td{ + text-align:center; +} + +.WdateDiv .Wday{ + cursor:pointer; +} + +.WdateDiv .WdayOn{ + cursor:pointer; + background-color:#C0EBEF; +} + +.WdateDiv .Wwday{ + cursor:pointer; + color:#FF2F2F; +} + +.WdateDiv .WwdayOn{ + cursor:pointer; + color:#000; + background-color:#C0EBEF; +} +.WdateDiv .Wtoday{ + cursor:pointer; + color:blue; +} +.WdateDiv .Wselday{ + background-color:#A9E4E9; +} +.WdateDiv .WspecialDay{ + background-color:#66F4DF; +} + +.WdateDiv .WotherDay{ + cursor:pointer; + color:#6A6AFF; +} + +.WdateDiv .WotherDayOn{ + cursor:pointer; + background-color:#C0EBEF; +} + +.WdateDiv .WinvalidDay{ + color:#aaa; +} + +.WdateDiv #dpTime{ + float:left; + margin-top:3px; + margin-right:30px; +} + +.WdateDiv #dpTime #dpTimeStr{ + margin-left:1px; +} + +.WdateDiv #dpTime input{ + width:18px; + height:20px; + text-align:center; + border:#ccc 1px solid; +} + +.WdateDiv #dpTime .tB{ + border-right:0px; +} + +.WdateDiv #dpTime .tE{ + border-left:0; + border-right:0; +} + +.WdateDiv #dpTime .tm{ + width:7px; + border-left:0; + border-right:0; +} + +.WdateDiv #dpTime #dpTimeUp{ + height:10px; + width:13px; + border:0px; + background:url(img.gif) no-repeat -32px -16px; +} + +.WdateDiv #dpTime #dpTimeDown{ + height:10px; + width:13px; + border:0px; + background:url(img.gif) no-repeat -48px -16px; +} + + .WdateDiv #dpQS { + float:left; + margin-right:3px; + margin-top:3px; + background:url(img.gif) no-repeat 0px -16px; + width:20px; + height:20px; + cursor:pointer; + } +.WdateDiv #dpControl { + text-align:right; +} +.WdateDiv .dpButton{ + height:20px; + width:45px; + border:#ccc 1px solid; + margin-top:2px; + margin-right:1px; +} \ No newline at end of file diff --git a/src/main/webapp/js/My97DatePicker/skin/default/img.gif b/src/main/webapp/js/My97DatePicker/skin/default/img.gif new file mode 100644 index 00000000..053205d8 Binary files /dev/null and b/src/main/webapp/js/My97DatePicker/skin/default/img.gif differ diff --git a/src/main/webapp/js/My97DatePicker/skin/whyGreen/bg.jpg b/src/main/webapp/js/My97DatePicker/skin/whyGreen/bg.jpg new file mode 100644 index 00000000..75516a63 Binary files /dev/null and b/src/main/webapp/js/My97DatePicker/skin/whyGreen/bg.jpg differ diff --git a/src/main/webapp/js/My97DatePicker/skin/whyGreen/datepicker.css b/src/main/webapp/js/My97DatePicker/skin/whyGreen/datepicker.css new file mode 100644 index 00000000..3069215d --- /dev/null +++ b/src/main/webapp/js/My97DatePicker/skin/whyGreen/datepicker.css @@ -0,0 +1,256 @@ +/* + * My97 DatePicker 4.7 Skin:whyGreen + */ +.WdateDiv{ + width:180px; + background-color:#fff; + border:#C5E1E4 1px solid; + padding:2px; +} + +.WdateDiv2{ + width:360px; +} +.WdateDiv *{font-size:9pt;} + +.WdateDiv .NavImg a{ + cursor:pointer; + display:block; + width:16px; + height:16px; + margin-top:1px; +} + +.WdateDiv .NavImgll a{ + float:left; + background:url(img.gif) no-repeat; +} +.WdateDiv .NavImgl a{ + float:left; + background:url(img.gif) no-repeat -16px 0px; +} +.WdateDiv .NavImgr a{ + float:right; + background:url(img.gif) no-repeat -32px 0px; +} +.WdateDiv .NavImgrr a{ + float:right; + background:url(img.gif) no-repeat -48px 0px; +} + +.WdateDiv #dpTitle{ + height:24px; + padding:1px; + border:#c5d9e8 1px solid; + background:url(bg.jpg); + margin-bottom:2px; +} + +.WdateDiv .yminput{ + margin-top:2px; + text-align:center; + border:0px; + height:20px; + width:50px; + color:#034c50; + background-color:transparent; + cursor:pointer; +} + +.WdateDiv .yminputfocus{ + margin-top:2px; + text-align:center; + border:#939393 1px solid; + font-weight:bold; + color:#034c50; + height:20px; + width:50px; +} + +.WdateDiv .menuSel{ + z-index:1; + position:absolute; + background-color:#FFFFFF; + border:#A3C6C8 1px solid; + display:none; +} + +.WdateDiv .menu{ + cursor:pointer; + background-color:#fff; + color:#11777C; +} + +.WdateDiv .menuOn{ + cursor:pointer; + background-color:#BEEBEE; +} + +.WdateDiv .invalidMenu{ + color:#aaa; +} + +.WdateDiv .YMenu{ + margin-top:20px; +} + +.WdateDiv .MMenu{ + margin-top:20px; + *width:62px; +} + +.WdateDiv .hhMenu{ + margin-top:-90px; + margin-left:26px; +} + +.WdateDiv .mmMenu{ + margin-top:-46px; + margin-left:26px; +} + +.WdateDiv .ssMenu{ + margin-top:-24px; + margin-left:26px; +} + + .WdateDiv .Wweek { + text-align:center; + background:#DAF3F5; + border-right:#BDEBEE 1px solid; + } + +.WdateDiv .MTitle{ + color:#13777e; + background-color:#bdebee; +} +.WdateDiv .WdayTable2{ + border-collapse:collapse; + border:#BEE9F0 1px solid; +} +.WdateDiv .WdayTable2 table{ + border:0; +} + +.WdateDiv .WdayTable{ + line-height:20px; + color:#13777e; + background-color:#edfbfb; + border:#BEE9F0 1px solid; +} +.WdateDiv .WdayTable td{ + text-align:center; +} + +.WdateDiv .Wday{ + cursor:pointer; +} + +.WdateDiv .WdayOn{ + cursor:pointer; + background-color:#74d2d9 ; +} + +.WdateDiv .Wwday{ + cursor:pointer; + color:#ab1e1e; +} + +.WdateDiv .WwdayOn{ + cursor:pointer; + background-color:#74d2d9; +} +.WdateDiv .Wtoday{ + cursor:pointer; + color:blue; +} +.WdateDiv .Wselday{ + background-color:#A7E2E7; +} +.WdateDiv .WspecialDay{ + background-color:#66F4DF; +} + +.WdateDiv .WotherDay{ + cursor:pointer; + color:#0099CC; +} + +.WdateDiv .WotherDayOn{ + cursor:pointer; + background-color:#C0EBEF; +} + +.WdateDiv .WinvalidDay{ + color:#aaa; +} + +.WdateDiv #dpTime{ + float:left; + margin-top:3px; + margin-right:30px; +} + +.WdateDiv #dpTime #dpTimeStr{ + margin-left:1px; + color:#497F7F; +} + +.WdateDiv #dpTime input{ + height:20px; + width:18px; + text-align:center; + color:#333; + border:#61CAD0 1px solid; +} + +.WdateDiv #dpTime .tB{ + border-right:0px; +} + +.WdateDiv #dpTime .tE{ + border-left:0; + border-right:0; +} + +.WdateDiv #dpTime .tm{ + width:7px; + border-left:0; + border-right:0; +} + +.WdateDiv #dpTime #dpTimeUp{ + height:10px; + width:13px; + border:0px; + background:url(img.gif) no-repeat -32px -16px; +} + +.WdateDiv #dpTime #dpTimeDown{ + height:10px; + width:13px; + border:0px; + background:url(img.gif) no-repeat -48px -16px; +} + + .WdateDiv #dpQS { + float:left; + margin-right:3px; + margin-top:3px; + background:url(img.gif) no-repeat 0px -16px; + width:20px; + height:20px; + cursor:pointer; + } +.WdateDiv #dpControl { + text-align:right; + margin-top:3px; +} +.WdateDiv .dpButton{ + height:20px; + width:45px; + margin-top:2px; + border:#38B1B9 1px solid; + background-color:#CFEBEE; + color:#08575B; +} \ No newline at end of file diff --git a/src/main/webapp/js/My97DatePicker/skin/whyGreen/img.gif b/src/main/webapp/js/My97DatePicker/skin/whyGreen/img.gif new file mode 100644 index 00000000..4003f20f Binary files /dev/null and b/src/main/webapp/js/My97DatePicker/skin/whyGreen/img.gif differ diff --git a/src/main/webapp/js/My97DatePicker/开发包/lang/en.js b/src/main/webapp/js/My97DatePicker/开发包/lang/en.js new file mode 100644 index 00000000..e3ff1102 --- /dev/null +++ b/src/main/webapp/js/My97DatePicker/开发包/lang/en.js @@ -0,0 +1,14 @@ +var $lang={ +errAlertMsg: "Invalid date or the date out of range,redo or not?", +aWeekStr: ["wk", "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], +aLongWeekStr:["wk","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"], +aMonStr: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], +aLongMonStr: ["January","February","March","April","May","June","July","August","September","October","November","December"], +clearStr: "Clear", +todayStr: "Today", +okStr: "OK", +updateStr: "OK", +timeStr: "Time", +quickStr: "Quick Selection", +err_1: 'MinDate Cannot be bigger than MaxDate!' +} \ No newline at end of file diff --git a/src/main/webapp/js/My97DatePicker/开发包/lang/zh-cn.js b/src/main/webapp/js/My97DatePicker/开发包/lang/zh-cn.js new file mode 100644 index 00000000..5ffa216d --- /dev/null +++ b/src/main/webapp/js/My97DatePicker/开发包/lang/zh-cn.js @@ -0,0 +1,14 @@ +var $lang={ +errAlertMsg: "Ϸڸʽڳ޶Χ,Ҫ?", +aWeekStr: ["","","һ","","","","",""], +aLongWeekStr:["","","һ","ڶ","","","",""], +aMonStr: ["һ","","","","","","","","","ʮ","ʮһ","ʮ"], +aLongMonStr: ["һ","","","","","","","","","ʮ","ʮһ","ʮ"], +clearStr: "", +todayStr: "", +okStr: "ȷ", +updateStr: "ȷ", +timeStr: "ʱ", +quickStr: "ѡ", +err_1: 'Сڲܴ!' +} \ No newline at end of file diff --git a/src/main/webapp/js/My97DatePicker/开发包/lang/zh-tw.js b/src/main/webapp/js/My97DatePicker/开发包/lang/zh-tw.js new file mode 100644 index 00000000..aa716ad7 --- /dev/null +++ b/src/main/webapp/js/My97DatePicker/开发包/lang/zh-tw.js @@ -0,0 +1,14 @@ +var $lang={ +errAlertMsg: "Ϸڸʽڳ޶,ҪN?", +aWeekStr: ["","","һ","","","","",""], +aLongWeekStr:["","","һ","ڶ","","","",""], +aMonStr: ["һ","","","","","","","","","ʮ","ʮһ","ʮ"], +aLongMonStr: ["һ","","","","","","","","","ʮ","ʮһ","ʮ"], +clearStr: "", +todayStr: "", +okStr: "_", +updateStr: "_", +timeStr: "rg", +quickStr: "x", +err_1: 'Сڲܴ!' +} \ No newline at end of file diff --git a/src/main/webapp/js/My97DatePicker/开发包/readme.txt b/src/main/webapp/js/My97DatePicker/开发包/readme.txt new file mode 100644 index 00000000..96f03c24 --- /dev/null +++ b/src/main/webapp/js/My97DatePicker/开发包/readme.txt @@ -0,0 +1,3 @@ +ʽʱ,ɽļɾȥ + + diff --git a/src/main/webapp/js/My97DatePicker/开发包/skin/WdatePicker.css b/src/main/webapp/js/My97DatePicker/开发包/skin/WdatePicker.css new file mode 100644 index 00000000..74a75e84 --- /dev/null +++ b/src/main/webapp/js/My97DatePicker/开发包/skin/WdatePicker.css @@ -0,0 +1,10 @@ +.Wdate{ + border:#999 1px solid; + height:20px; + background:#fff url(datePicker.gif) no-repeat right; +} + +.WdateFmtErr{ + font-weight:bold; + color:red; +} \ No newline at end of file diff --git a/src/main/webapp/js/My97DatePicker/开发包/skin/datePicker.gif b/src/main/webapp/js/My97DatePicker/开发包/skin/datePicker.gif new file mode 100644 index 00000000..d6bf40c9 Binary files /dev/null and b/src/main/webapp/js/My97DatePicker/开发包/skin/datePicker.gif differ diff --git a/src/main/webapp/js/My97DatePicker/开发包/skin/default/datepicker.css b/src/main/webapp/js/My97DatePicker/开发包/skin/default/datepicker.css new file mode 100644 index 00000000..ecf944f1 --- /dev/null +++ b/src/main/webapp/js/My97DatePicker/开发包/skin/default/datepicker.css @@ -0,0 +1,267 @@ +/* + * My97 DatePicker 4.7 + * Ƥ:default + */ + +/* ѡ DIV */ +.WdateDiv{ + width:180px; + background-color:#FFFFFF; + border:#bbb 1px solid; + padding:2px; +} +/* ˫Ŀ */ +.WdateDiv2{ + width:360px; +} +.WdateDiv *{font-size:9pt;} + +/**************************** + * ͼ ȫAǩ + ***************************/ +.WdateDiv .NavImg a{ + display:block; + cursor:pointer; + height:16px; + width:16px; +} + +.WdateDiv .NavImgll a{ + float:left; + background:transparent url(img.gif) no-repeat scroll 0 0; +} +.WdateDiv .NavImgl a{ + float:left; + background:transparent url(img.gif) no-repeat scroll -16px 0; +} +.WdateDiv .NavImgr a{ + float:right; + background:transparent url(img.gif) no-repeat scroll -32px 0; +} +.WdateDiv .NavImgrr a{ + float:right; + background:transparent url(img.gif) no-repeat scroll -48px 0; +} + +/**************************** + * · + ***************************/ +/* · DIV */ +.WdateDiv #dpTitle{ + height:24px; + margin-bottom:2px; + padding:1px; +} +/* · INPUT */ +.WdateDiv .yminput{ + margin-top:2px; + text-align:center; + height:20px; + border:0px; + width:50px; + cursor:pointer; +} +/* ·ýʱʽ INPUT */ +.WdateDiv .yminputfocus{ + margin-top:2px; + text-align:center; + font-weight:bold; + height:20px; + color:blue; + border:#ccc 1px solid; + width:50px; +} +/* ˵ѡ DIV */ +.WdateDiv .menuSel{ + z-index:1; + position:absolute; + background-color:#FFFFFF; + border:#ccc 1px solid; + display:none; +} +/* ˵ʽ TD */ +.WdateDiv .menu{ + cursor:pointer; + background-color:#fff; +} +/* ˵mouseoverʽ TD */ +.WdateDiv .menuOn{ + cursor:pointer; + background-color:#BEEBEE; +} +/* ˵Чʱʽ TD */ +.WdateDiv .invalidMenu{ + color:#aaa; +} +/* ѡƫ DIV */ +.WdateDiv .YMenu{ + margin-top:20px; + +} +/* ѡƫ DIV */ +.WdateDiv .MMenu{ + margin-top:20px; + *width:62px; +} +/* ʱѡλ DIV */ +.WdateDiv .hhMenu{ + margin-top:-90px; + margin-left:26px; +} +/* ѡλ DIV */ +.WdateDiv .mmMenu{ + margin-top:-46px; + margin-left:26px; +} +/* ѡλ DIV */ +.WdateDiv .ssMenu{ + margin-top:-24px; + margin-left:26px; +} + +/**************************** + * + ***************************/ + .WdateDiv .Wweek { + text-align:center; + background:#DAF3F5; + border-right:#BDEBEE 1px solid; + } +/**************************** + * , + ***************************/ +/* TR */ +.WdateDiv .MTitle{ + background-color:#BDEBEE; +} +.WdateDiv .WdayTable2{ + border-collapse:collapse; + border:#c5d9e8 1px solid; +} +.WdateDiv .WdayTable2 table{ + border:0; +} +/* TABLE */ +.WdateDiv .WdayTable{ + line-height:20px; + border:#c5d9e8 1px solid; +} +.WdateDiv .WdayTable td{ + text-align:center; +} +/* ڸʽ TD */ +.WdateDiv .Wday{ + cursor:pointer; +} +/* ڸmouseoverʽ TD */ +.WdateDiv .WdayOn{ + cursor:pointer; + background-color:#C0EBEF; +} +/* ĩڸʽ TD */ +.WdateDiv .Wwday{ + cursor:pointer; + color:#FF2F2F; +} +/* ĩڸmouseoverʽ TD */ +.WdateDiv .WwdayOn{ + cursor:pointer; + color:#000; + background-color:#C0EBEF; +} +.WdateDiv .Wtoday{ + cursor:pointer; + color:blue; +} +.WdateDiv .Wselday{ + background-color:#A9E4E9; +} +.WdateDiv .WspecialDay{ + background-color:#66F4DF; +} +/* ·ݵ */ +.WdateDiv .WotherDay{ + cursor:pointer; + color:#6A6AFF; +} +/* ·ݵmouseoverʽ */ +.WdateDiv .WotherDayOn{ + cursor:pointer; + background-color:#C0EBEF; +} +/* Чڵʽ,ڷΧڸʽ,ѡ */ +.WdateDiv .WinvalidDay{ + color:#aaa; +} + +/**************************** + * ʱ + ***************************/ +/* ʱ DIV */ +.WdateDiv #dpTime{ + float:left; + margin-top:3px; + margin-right:30px; +} +/* ʱ SPAN */ +.WdateDiv #dpTime #dpTimeStr{ + margin-left:1px; +} +/* ʱ INPUT */ +.WdateDiv #dpTime input{ + width:18px; + height:20px; + text-align:center; + border:#ccc 1px solid; +} +/* ʱ ʱ INPUT */ +.WdateDiv #dpTime .tB{ + border-right:0px; +} +/* ʱ ֺͼ ':' INPUT */ +.WdateDiv #dpTime .tE{ + border-left:0; + border-right:0; +} +/* ʱ INPUT */ +.WdateDiv #dpTime .tm{ + width:7px; + border-left:0; + border-right:0; +} +/* ʱұߵϰť BUTTON */ +.WdateDiv #dpTime #dpTimeUp{ + height:10px; + width:13px; + border:0px; + background:url(img.gif) no-repeat -32px -16px; +} +/* ʱұߵ°ť BUTTON */ +.WdateDiv #dpTime #dpTimeDown{ + height:10px; + width:13px; + border:0px; + background:url(img.gif) no-repeat -48px -16px; +} +/**************************** + * + ***************************/ + .WdateDiv #dpQS { + float:left; + margin-right:3px; + margin-top:3px; + background:url(img.gif) no-repeat 0px -16px; + width:20px; + height:20px; + cursor:pointer; + } +.WdateDiv #dpControl { + text-align:right; +} +.WdateDiv .dpButton{ + height:20px; + width:45px; + border:#ccc 1px solid; + margin-top:2px; + margin-right:1px; +} \ No newline at end of file diff --git a/src/main/webapp/js/My97DatePicker/开发包/skin/default/img.gif b/src/main/webapp/js/My97DatePicker/开发包/skin/default/img.gif new file mode 100644 index 00000000..053205d8 Binary files /dev/null and b/src/main/webapp/js/My97DatePicker/开发包/skin/default/img.gif differ diff --git a/src/main/webapp/js/My97DatePicker/开发包/skin/whyGreen/bg.jpg b/src/main/webapp/js/My97DatePicker/开发包/skin/whyGreen/bg.jpg new file mode 100644 index 00000000..75516a63 Binary files /dev/null and b/src/main/webapp/js/My97DatePicker/开发包/skin/whyGreen/bg.jpg differ diff --git a/src/main/webapp/js/My97DatePicker/开发包/skin/whyGreen/datepicker.css b/src/main/webapp/js/My97DatePicker/开发包/skin/whyGreen/datepicker.css new file mode 100644 index 00000000..2c3b9b74 --- /dev/null +++ b/src/main/webapp/js/My97DatePicker/开发包/skin/whyGreen/datepicker.css @@ -0,0 +1,277 @@ +/* + * My97 DatePicker 4.7 + * Ƥ:whyGreen + */ + +/* ѡ DIV */ +.WdateDiv{ + width:180px; + background-color:#fff; + border:#C5E1E4 1px solid; + padding:2px; +} +/* ˫Ŀ */ +.WdateDiv2{ + width:360px; +} +.WdateDiv *{font-size:9pt;} + +/**************************** + * ͼ ȫAǩ + ***************************/ +.WdateDiv .NavImg a{ + cursor:pointer; + display:block; + width:16px; + height:16px; + margin-top:1px; +} + +.WdateDiv .NavImgll a{ + float:left; + background:url(img.gif) no-repeat; +} +.WdateDiv .NavImgl a{ + float:left; + background:url(img.gif) no-repeat -16px 0px; +} +.WdateDiv .NavImgr a{ + float:right; + background:url(img.gif) no-repeat -32px 0px; +} +.WdateDiv .NavImgrr a{ + float:right; + background:url(img.gif) no-repeat -48px 0px; +} +/**************************** + * · + ***************************/ +/* · DIV */ +.WdateDiv #dpTitle{ + height:24px; + padding:1px; + border:#c5d9e8 1px solid; + background:url(bg.jpg); + margin-bottom:2px; +} +/* · INPUT */ +.WdateDiv .yminput{ + margin-top:2px; + text-align:center; + border:0px; + height:20px; + width:50px; + color:#034c50; + background-color:transparent; + cursor:pointer; +} +/* ·ýʱʽ INPUT */ +.WdateDiv .yminputfocus{ + margin-top:2px; + text-align:center; + border:#939393 1px solid; + font-weight:bold; + color:#034c50; + height:20px; + width:50px; +} +/* ˵ѡ DIV */ +.WdateDiv .menuSel{ + z-index:1; + position:absolute; + background-color:#FFFFFF; + border:#A3C6C8 1px solid; + display:none; +} +/* ˵ʽ TD */ +.WdateDiv .menu{ + cursor:pointer; + background-color:#fff; + color:#11777C; +} +/* ˵mouseoverʽ TD */ +.WdateDiv .menuOn{ + cursor:pointer; + background-color:#BEEBEE; +} +/* ˵Чʱʽ TD */ +.WdateDiv .invalidMenu{ + color:#aaa; +} +/* ѡƫ DIV */ +.WdateDiv .YMenu{ + margin-top:20px; +} +/* ѡƫ DIV */ +.WdateDiv .MMenu{ + margin-top:20px; + *width:62px; +} +/* ʱѡλ DIV */ +.WdateDiv .hhMenu{ + margin-top:-90px; + margin-left:26px; +} +/* ѡλ DIV */ +.WdateDiv .mmMenu{ + margin-top:-46px; + margin-left:26px; +} +/* ѡλ DIV */ +.WdateDiv .ssMenu{ + margin-top:-24px; + margin-left:26px; +} + +/**************************** + * + ***************************/ + .WdateDiv .Wweek { + text-align:center; + background:#DAF3F5; + border-right:#BDEBEE 1px solid; + } +/**************************** + * , + ***************************/ + /* TR */ +.WdateDiv .MTitle{ + color:#13777e; + background-color:#bdebee; +} +.WdateDiv .WdayTable2{ + border-collapse:collapse; + border:#BEE9F0 1px solid; +} +.WdateDiv .WdayTable2 table{ + border:0; +} +/* TABLE */ +.WdateDiv .WdayTable{ + line-height:20px; + color:#13777e; + background-color:#edfbfb; + border:#BEE9F0 1px solid; +} +.WdateDiv .WdayTable td{ + text-align:center; +} +/* ڸʽ TD */ +.WdateDiv .Wday{ + cursor:pointer; +} +/* ڸmouseoverʽ TD */ +.WdateDiv .WdayOn{ + cursor:pointer; + background-color:#74d2d9 ; +} +/* ĩڸʽ TD */ +.WdateDiv .Wwday{ + cursor:pointer; + color:#ab1e1e; +} +/* ĩڸmouseoverʽ TD */ +.WdateDiv .WwdayOn{ + cursor:pointer; + background-color:#74d2d9; +} +.WdateDiv .Wtoday{ + cursor:pointer; + color:blue; +} +.WdateDiv .Wselday{ + background-color:#A7E2E7; +} +.WdateDiv .WspecialDay{ + background-color:#66F4DF; +} +/* ·ݵ */ +.WdateDiv .WotherDay{ + cursor:pointer; + color:#0099CC; +} +/* ·ݵmouseoverʽ */ +.WdateDiv .WotherDayOn{ + cursor:pointer; + background-color:#C0EBEF; +} +/* Чڵʽ,ڷΧڸʽ,ѡ */ +.WdateDiv .WinvalidDay{ + color:#aaa; +} + +/**************************** + * ʱ + ***************************/ +/* ʱ DIV */ +.WdateDiv #dpTime{ + float:left; + margin-top:3px; + margin-right:30px; +} +/* ʱ SPAN */ +.WdateDiv #dpTime #dpTimeStr{ + margin-left:1px; + color:#497F7F; +} +/* ʱ INPUT */ +.WdateDiv #dpTime input{ + height:20px; + width:18px; + text-align:center; + color:#333; + border:#61CAD0 1px solid; +} +/* ʱ ʱ INPUT */ +.WdateDiv #dpTime .tB{ + border-right:0px; +} +/* ʱ ֺͼ ':' INPUT */ +.WdateDiv #dpTime .tE{ + border-left:0; + border-right:0; +} +/* ʱ INPUT */ +.WdateDiv #dpTime .tm{ + width:7px; + border-left:0; + border-right:0; +} +/* ʱұߵϰť BUTTON */ +.WdateDiv #dpTime #dpTimeUp{ + height:10px; + width:13px; + border:0px; + background:url(img.gif) no-repeat -32px -16px; +} +/* ʱұߵ°ť BUTTON */ +.WdateDiv #dpTime #dpTimeDown{ + height:10px; + width:13px; + border:0px; + background:url(img.gif) no-repeat -48px -16px; +} +/**************************** + * + ***************************/ + .WdateDiv #dpQS { + float:left; + margin-right:3px; + margin-top:3px; + background:url(img.gif) no-repeat 0px -16px; + width:20px; + height:20px; + cursor:pointer; + } +.WdateDiv #dpControl { + text-align:right; + margin-top:3px; +} +.WdateDiv .dpButton{ + height:20px; + width:45px; + margin-top:2px; + border:#38B1B9 1px solid; + background-color:#CFEBEE; + color:#08575B; +} \ No newline at end of file diff --git a/src/main/webapp/js/My97DatePicker/开发包/skin/whyGreen/img.gif b/src/main/webapp/js/My97DatePicker/开发包/skin/whyGreen/img.gif new file mode 100644 index 00000000..4003f20f Binary files /dev/null and b/src/main/webapp/js/My97DatePicker/开发包/skin/whyGreen/img.gif differ diff --git a/src/main/webapp/js/StringBuffer.js b/src/main/webapp/js/StringBuffer.js new file mode 100644 index 00000000..df67c04c --- /dev/null +++ b/src/main/webapp/js/StringBuffer.js @@ -0,0 +1,11 @@ +function StringBuffer() { + this.array = new Array(); +} +StringBuffer.prototype.append = function(value) { + this.array[this.array.length] = value; + return this; +} +StringBuffer.prototype.toString = function() { + var _string = this.array.join(""); + return _string; +} \ No newline at end of file diff --git a/src/main/webapp/js/channel/imagepreview.js b/src/main/webapp/js/channel/imagepreview.js new file mode 100644 index 00000000..a5d97e15 --- /dev/null +++ b/src/main/webapp/js/channel/imagepreview.js @@ -0,0 +1,113 @@ +function imagepreview(file, view, call) { + + var maxHeight = view.clientHeight, + maxWidth = view.clientWidth, + doc = document; + + function setsize(info, img){ + var iwidth, iheight; + if((info.width / maxWidth) > (info.height / maxHeight)){ + iwidth = maxWidth; + iheight = Math.round(iwidth * info.height / info.width); + } else { + iheight = maxHeight; + iwidth = Math.round(iheight * info.width / info.height); + } + with(view.style){ + height = iheight + "px"; + width = iwidth + "px"; + overflow = "hidden"; + } + if(img){ + with(img.style){ + height = width = "100%"; + } + view.innerHTML = ""; + view.appendChild(img); + } + + } + + try{ + new FileReader(); + file.addEventListener("change", function(e){ + var image = this.files[0]; + function fireError(){ + var evObj = doc.createEvent('Events'); + evObj.initEvent( 'error', true, false ); + file.dispatchEvent(evObj); + file.value = ""; + } + if(!/^image\//.test(image.type)){ + e.stopPropagation(); + e.preventDefault(); + fireError(); + return false; + } + var reader = new FileReader(), + img = new Image(); + reader.onerror = img.onerror = fireError; + img.onload = function(){ + var info = { + height: img.height, + width: img.width, + name: image.name, + size: image.size + }; + if( call(info) !== false ){ + setsize(info, img); + } + img.onload = img.onerror = null; + } + reader.onload = function (){ + img.src = reader.result; + } + reader.readAsDataURL(image); + + }, false); + }catch(ex){ + + file.attachEvent("onchange", function() { + var path = file.value, + tt = doc.createElement("tt"), + name = path.slice(path.lastIndexOf("\\") + 1 ); + + if("XMLHttpRequest" in window){ + file.select(); + path = doc.selection.createRange().text, + doc.selection.empty(); + } + + function imgloader (mode){ + return "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + path + "', sizingMethod='" + mode + "')"; + } + (doc.body || doc.documentElement).appendChild(tt); + with(tt.runtimeStyle){ + filter = imgloader("image"); + zoom = width = height = 1; + position = "absolute"; + right = "9999em"; + top = "-9999em"; + border = 0; + } + var info = { + height: tt.offsetHeight, + width: tt.offsetWidth, + name: name + }; + if( info.height > 1 || info.width > 1 ){ + if(call(info) !== false ){ + view.style.filter = imgloader("scale"); + setsize(info); + } + } else { + file.fireEvent("onerror"); + event.cancelBubble = true; + event.returnValue = false; + this.value = ""; + } + tt.parentNode.removeChild(tt); + }); + } + +} \ No newline at end of file diff --git a/src/main/webapp/js/channel/imgup.css b/src/main/webapp/js/channel/imgup.css new file mode 100644 index 00000000..aa3ffa4d --- /dev/null +++ b/src/main/webapp/js/channel/imgup.css @@ -0,0 +1,199 @@ +.preview { + position: relative; + display: block; + margin: auto; +} +.thumb { + border: 1px solid #ccc; + position: relative; + overflow: hidden; +} +.thumb div { + position: relative; + margin: -50px; + left: -50%; + top: -50%; + zoom: 1; +} +.cropaera * { + background: none; + float: none; + padding: 0; + margin: 0; +} +.cropaera { + -webkit-user-select: none; + -moz-user-select: none; + display: inline-block; + position: relative; + user-select: none; + margin: auto; +} +.cropmask { + position: absolute; + overflow: hidden; + height: 100%; + width: 100%; + left: 0; + top: 0; +} +.cropmask .mask_top, +.cropmask .mask_left, +.cropmask .mask_right, +.cropmask .mask_bottom { + filter: progid:DXImageTransform.Microsoft.gradient(startColorStr=#66000000,endColorStr=#66000000); + background: rgba(0,0,0,.4); + overflow: hidden; +} +.cropmask .mask_top { + height: 25%; +} +.cropmask .mask_middle { + height: 50%; +} +.cropmask .mask_middle { + display: table; + width: 100%; +} +.cropmask .mask_middle .mask_left, +.cropmask .mask_middle .mask_right { + width: 25%; +} +.cropmask .mask_middle .mask_left, +.cropmask .mask_middle .mask_right, +.cropmask .mask_middle .mask_center { + display: table-cell; +} +.cropmask .mask_center { + height: 100%; +} +.cropmask .mask_bottom { + height: 100%; + clear: both; +} +.cropmask .viewport { + border: 1px dashed #ccc; + position: relative; + cursor: move; + margin: -1px; + height: 100%; + width: 100%; +} +.cropmask .resize_n, +.cropmask .resize_e, +.cropmask .resize_s, +.cropmask .resize_w { + position: absolute; + height: 5px; + width: 5px; +} +.cropmask .resize_e, +.cropmask .resize_w { + margin: 0 -3px; + height: 100%; + top: 0; +} +.cropmask .resize_n, +.cropmask .resize_s { + margin: -3px 0; + width: 100%; + left: 0; +} +.cropmask .resize_n { + cursor: n-resize; + top: 0; +} +.cropmask .resize_e { + cursor: e-resize; + right: 0; +} +.cropmask .resize_s { + cursor: s-resize; + bottom: 0; +} +.cropmask .resize_w { + cursor: w-resize; + left: 0; +} +.cropmask .point { + border: 1px solid #fff; + position: absolute; + background: #000; + overflow: hidden; + margin: -4px; + opacity: .4; + height: 7px; + width: 7px; + filter: Alpha(Opacity=40); +} +.cropmask .resize .point { + left: 50%; + top: 50%; +} +.cropmask .point_ne { + cursor: ne-resize; + right: 0; + top: 0; +} +.cropmask .point_nw { + cursor: nw-resize; + left: 0; + top: 0; +} +.cropmask .point_se { + cursor: se-resize; + bottom: 0; + right: 0; +} +.cropmask .point_sw { + cursor: sw-resize; + bottom: 0; + left: 0; +} +.cropaera .ondrag .point, +.cropaera .ondrag .resize, +.cropaera .ondrag .viewport { + cursor: inherit; +} +.cropaera .low .resize_e .point, +.cropaera .low .resize_w .point, +.cropaera .narrow .resize_n .point, +.cropaera .narrow .resize_s .point { + display: none; +} +:root .cropmask .mask_top, +:root .cropmask .mask_left, +:root .cropmask .mask_right, +:root .cropmask .mask_bottom, +:root .cropmask .viewport .point { + filter: none; +} +.cropaera { + *height: expression(firstChild.offsetHeight); + *width: expression(firstChild.offsetWidth); + *display: inline; + *zoom: 1; +} +.cropmask { + *height: expression(offsetParent.clientHeight); + *width: expression(offsetParent.clientWidth); +} +.cropmask .mask_middle { + *overflow: hidden; +} +.cropmask .mask_left { + *float: left; + _margin-right: -3px; +} +.cropmask .mask_right { + *float: right; + _margin-left: -3px; +} +.cropmask .mask_left, +.cropmask .mask_right { + *padding-bottom: 999em; + *margin-bottom: -999em; +} +.cropmask .mask_center { + *zoom: 1; +} \ No newline at end of file diff --git a/src/main/webapp/js/channel/jquery-1.8.3.min.js b/src/main/webapp/js/channel/jquery-1.8.3.min.js new file mode 100644 index 00000000..83589daa --- /dev/null +++ b/src/main/webapp/js/channel/jquery-1.8.3.min.js @@ -0,0 +1,2 @@ +/*! jQuery v1.8.3 jquery.com | jquery.org/license */ +(function(e,t){function _(e){var t=M[e]={};return v.each(e.split(y),function(e,n){t[n]=!0}),t}function H(e,n,r){if(r===t&&e.nodeType===1){var i="data-"+n.replace(P,"-$1").toLowerCase();r=e.getAttribute(i);if(typeof r=="string"){try{r=r==="true"?!0:r==="false"?!1:r==="null"?null:+r+""===r?+r:D.test(r)?v.parseJSON(r):r}catch(s){}v.data(e,n,r)}else r=t}return r}function B(e){var t;for(t in e){if(t==="data"&&v.isEmptyObject(e[t]))continue;if(t!=="toJSON")return!1}return!0}function et(){return!1}function tt(){return!0}function ut(e){return!e||!e.parentNode||e.parentNode.nodeType===11}function at(e,t){do e=e[t];while(e&&e.nodeType!==1);return e}function ft(e,t,n){t=t||0;if(v.isFunction(t))return v.grep(e,function(e,r){var i=!!t.call(e,r,e);return i===n});if(t.nodeType)return v.grep(e,function(e,r){return e===t===n});if(typeof t=="string"){var r=v.grep(e,function(e){return e.nodeType===1});if(it.test(t))return v.filter(t,r,!n);t=v.filter(t,r)}return v.grep(e,function(e,r){return v.inArray(e,t)>=0===n})}function lt(e){var t=ct.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}function Lt(e,t){return e.getElementsByTagName(t)[0]||e.appendChild(e.ownerDocument.createElement(t))}function At(e,t){if(t.nodeType!==1||!v.hasData(e))return;var n,r,i,s=v._data(e),o=v._data(t,s),u=s.events;if(u){delete o.handle,o.events={};for(n in u)for(r=0,i=u[n].length;r").appendTo(i.body),n=t.css("display");t.remove();if(n==="none"||n===""){Pt=i.body.appendChild(Pt||v.extend(i.createElement("iframe"),{frameBorder:0,width:0,height:0}));if(!Ht||!Pt.createElement)Ht=(Pt.contentWindow||Pt.contentDocument).document,Ht.write(""),Ht.close();t=Ht.body.appendChild(Ht.createElement(e)),n=Dt(t,"display"),i.body.removeChild(Pt)}return Wt[e]=n,n}function fn(e,t,n,r){var i;if(v.isArray(t))v.each(t,function(t,i){n||sn.test(e)?r(e,i):fn(e+"["+(typeof i=="object"?t:"")+"]",i,n,r)});else if(!n&&v.type(t)==="object")for(i in t)fn(e+"["+i+"]",t[i],n,r);else r(e,t)}function Cn(e){return function(t,n){typeof t!="string"&&(n=t,t="*");var r,i,s,o=t.toLowerCase().split(y),u=0,a=o.length;if(v.isFunction(n))for(;u)[^>]*$|#([\w\-]*)$)/,E=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,S=/^[\],:{}\s]*$/,x=/(?:^|:|,)(?:\s*\[)+/g,T=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,N=/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,C=/^-ms-/,k=/-([\da-z])/gi,L=function(e,t){return(t+"").toUpperCase()},A=function(){i.addEventListener?(i.removeEventListener("DOMContentLoaded",A,!1),v.ready()):i.readyState==="complete"&&(i.detachEvent("onreadystatechange",A),v.ready())},O={};v.fn=v.prototype={constructor:v,init:function(e,n,r){var s,o,u,a;if(!e)return this;if(e.nodeType)return this.context=this[0]=e,this.length=1,this;if(typeof e=="string"){e.charAt(0)==="<"&&e.charAt(e.length-1)===">"&&e.length>=3?s=[null,e,null]:s=w.exec(e);if(s&&(s[1]||!n)){if(s[1])return n=n instanceof v?n[0]:n,a=n&&n.nodeType?n.ownerDocument||n:i,e=v.parseHTML(s[1],a,!0),E.test(s[1])&&v.isPlainObject(n)&&this.attr.call(e,n,!0),v.merge(this,e);o=i.getElementById(s[2]);if(o&&o.parentNode){if(o.id!==s[2])return r.find(e);this.length=1,this[0]=o}return this.context=i,this.selector=e,this}return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e)}return v.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),v.makeArray(e,this))},selector:"",jquery:"1.8.3",length:0,size:function(){return this.length},toArray:function(){return l.call(this)},get:function(e){return e==null?this.toArray():e<0?this[this.length+e]:this[e]},pushStack:function(e,t,n){var r=v.merge(this.constructor(),e);return r.prevObject=this,r.context=this.context,t==="find"?r.selector=this.selector+(this.selector?" ":"")+n:t&&(r.selector=this.selector+"."+t+"("+n+")"),r},each:function(e,t){return v.each(this,e,t)},ready:function(e){return v.ready.promise().done(e),this},eq:function(e){return e=+e,e===-1?this.slice(e):this.slice(e,e+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(l.apply(this,arguments),"slice",l.call(arguments).join(","))},map:function(e){return this.pushStack(v.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:[].sort,splice:[].splice},v.fn.init.prototype=v.fn,v.extend=v.fn.extend=function(){var e,n,r,i,s,o,u=arguments[0]||{},a=1,f=arguments.length,l=!1;typeof u=="boolean"&&(l=u,u=arguments[1]||{},a=2),typeof u!="object"&&!v.isFunction(u)&&(u={}),f===a&&(u=this,--a);for(;a0)return;r.resolveWith(i,[v]),v.fn.trigger&&v(i).trigger("ready").off("ready")},isFunction:function(e){return v.type(e)==="function"},isArray:Array.isArray||function(e){return v.type(e)==="array"},isWindow:function(e){return e!=null&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return e==null?String(e):O[h.call(e)]||"object"},isPlainObject:function(e){if(!e||v.type(e)!=="object"||e.nodeType||v.isWindow(e))return!1;try{if(e.constructor&&!p.call(e,"constructor")&&!p.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}var r;for(r in e);return r===t||p.call(e,r)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw new Error(e)},parseHTML:function(e,t,n){var r;return!e||typeof e!="string"?null:(typeof t=="boolean"&&(n=t,t=0),t=t||i,(r=E.exec(e))?[t.createElement(r[1])]:(r=v.buildFragment([e],t,n?null:[]),v.merge([],(r.cacheable?v.clone(r.fragment):r.fragment).childNodes)))},parseJSON:function(t){if(!t||typeof t!="string")return null;t=v.trim(t);if(e.JSON&&e.JSON.parse)return e.JSON.parse(t);if(S.test(t.replace(T,"@").replace(N,"]").replace(x,"")))return(new Function("return "+t))();v.error("Invalid JSON: "+t)},parseXML:function(n){var r,i;if(!n||typeof n!="string")return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(s){r=t}return(!r||!r.documentElement||r.getElementsByTagName("parsererror").length)&&v.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&g.test(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(C,"ms-").replace(k,L)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,n,r){var i,s=0,o=e.length,u=o===t||v.isFunction(e);if(r){if(u){for(i in e)if(n.apply(e[i],r)===!1)break}else for(;s0&&e[0]&&e[a-1]||a===0||v.isArray(e));if(f)for(;u-1)a.splice(n,1),i&&(n<=o&&o--,n<=u&&u--)}),this},has:function(e){return v.inArray(e,a)>-1},empty:function(){return a=[],this},disable:function(){return a=f=n=t,this},disabled:function(){return!a},lock:function(){return f=t,n||c.disable(),this},locked:function(){return!f},fireWith:function(e,t){return t=t||[],t=[e,t.slice?t.slice():t],a&&(!r||f)&&(i?f.push(t):l(t)),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!r}};return c},v.extend({Deferred:function(e){var t=[["resolve","done",v.Callbacks("once memory"),"resolved"],["reject","fail",v.Callbacks("once memory"),"rejected"],["notify","progress",v.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return v.Deferred(function(n){v.each(t,function(t,r){var s=r[0],o=e[t];i[r[1]](v.isFunction(o)?function(){var e=o.apply(this,arguments);e&&v.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[s+"With"](this===i?n:this,[e])}:n[s])}),e=null}).promise()},promise:function(e){return e!=null?v.extend(e,r):r}},i={};return r.pipe=r.then,v.each(t,function(e,s){var o=s[2],u=s[3];r[s[1]]=o.add,u&&o.add(function(){n=u},t[e^1][2].disable,t[2][2].lock),i[s[0]]=o.fire,i[s[0]+"With"]=o.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=l.call(arguments),r=n.length,i=r!==1||e&&v.isFunction(e.promise)?r:0,s=i===1?e:v.Deferred(),o=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?l.call(arguments):r,n===u?s.notifyWith(t,n):--i||s.resolveWith(t,n)}},u,a,f;if(r>1){u=new Array(r),a=new Array(r),f=new Array(r);for(;t
    a",n=p.getElementsByTagName("*"),r=p.getElementsByTagName("a")[0];if(!n||!r||!n.length)return{};s=i.createElement("select"),o=s.appendChild(i.createElement("option")),u=p.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t={leadingWhitespace:p.firstChild.nodeType===3,tbody:!p.getElementsByTagName("tbody").length,htmlSerialize:!!p.getElementsByTagName("link").length,style:/top/.test(r.getAttribute("style")),hrefNormalized:r.getAttribute("href")==="/a",opacity:/^0.5/.test(r.style.opacity),cssFloat:!!r.style.cssFloat,checkOn:u.value==="on",optSelected:o.selected,getSetAttribute:p.className!=="t",enctype:!!i.createElement("form").enctype,html5Clone:i.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",boxModel:i.compatMode==="CSS1Compat",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},u.checked=!0,t.noCloneChecked=u.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!o.disabled;try{delete p.test}catch(d){t.deleteExpando=!1}!p.addEventListener&&p.attachEvent&&p.fireEvent&&(p.attachEvent("onclick",h=function(){t.noCloneEvent=!1}),p.cloneNode(!0).fireEvent("onclick"),p.detachEvent("onclick",h)),u=i.createElement("input"),u.value="t",u.setAttribute("type","radio"),t.radioValue=u.value==="t",u.setAttribute("checked","checked"),u.setAttribute("name","t"),p.appendChild(u),a=i.createDocumentFragment(),a.appendChild(p.lastChild),t.checkClone=a.cloneNode(!0).cloneNode(!0).lastChild.checked,t.appendChecked=u.checked,a.removeChild(u),a.appendChild(p);if(p.attachEvent)for(l in{submit:!0,change:!0,focusin:!0})f="on"+l,c=f in p,c||(p.setAttribute(f,"return;"),c=typeof p[f]=="function"),t[l+"Bubbles"]=c;return v(function(){var n,r,s,o,u="padding:0;margin:0;border:0;display:block;overflow:hidden;",a=i.getElementsByTagName("body")[0];if(!a)return;n=i.createElement("div"),n.style.cssText="visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px",a.insertBefore(n,a.firstChild),r=i.createElement("div"),n.appendChild(r),r.innerHTML="
    t
    ",s=r.getElementsByTagName("td"),s[0].style.cssText="padding:0;margin:0;border:0;display:none",c=s[0].offsetHeight===0,s[0].style.display="",s[1].style.display="none",t.reliableHiddenOffsets=c&&s[0].offsetHeight===0,r.innerHTML="",r.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",t.boxSizing=r.offsetWidth===4,t.doesNotIncludeMarginInBodyOffset=a.offsetTop!==1,e.getComputedStyle&&(t.pixelPosition=(e.getComputedStyle(r,null)||{}).top!=="1%",t.boxSizingReliable=(e.getComputedStyle(r,null)||{width:"4px"}).width==="4px",o=i.createElement("div"),o.style.cssText=r.style.cssText=u,o.style.marginRight=o.style.width="0",r.style.width="1px",r.appendChild(o),t.reliableMarginRight=!parseFloat((e.getComputedStyle(o,null)||{}).marginRight)),typeof r.style.zoom!="undefined"&&(r.innerHTML="",r.style.cssText=u+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=r.offsetWidth===3,r.style.display="block",r.style.overflow="visible",r.innerHTML="
    ",r.firstChild.style.width="5px",t.shrinkWrapBlocks=r.offsetWidth!==3,n.style.zoom=1),a.removeChild(n),n=r=s=o=null}),a.removeChild(p),n=r=s=o=u=a=p=null,t}();var D=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,P=/([A-Z])/g;v.extend({cache:{},deletedIds:[],uuid:0,expando:"jQuery"+(v.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(e){return e=e.nodeType?v.cache[e[v.expando]]:e[v.expando],!!e&&!B(e)},data:function(e,n,r,i){if(!v.acceptData(e))return;var s,o,u=v.expando,a=typeof n=="string",f=e.nodeType,l=f?v.cache:e,c=f?e[u]:e[u]&&u;if((!c||!l[c]||!i&&!l[c].data)&&a&&r===t)return;c||(f?e[u]=c=v.deletedIds.pop()||v.guid++:c=u),l[c]||(l[c]={},f||(l[c].toJSON=v.noop));if(typeof n=="object"||typeof n=="function")i?l[c]=v.extend(l[c],n):l[c].data=v.extend(l[c].data,n);return s=l[c],i||(s.data||(s.data={}),s=s.data),r!==t&&(s[v.camelCase(n)]=r),a?(o=s[n],o==null&&(o=s[v.camelCase(n)])):o=s,o},removeData:function(e,t,n){if(!v.acceptData(e))return;var r,i,s,o=e.nodeType,u=o?v.cache:e,a=o?e[v.expando]:v.expando;if(!u[a])return;if(t){r=n?u[a]:u[a].data;if(r){v.isArray(t)||(t in r?t=[t]:(t=v.camelCase(t),t in r?t=[t]:t=t.split(" ")));for(i=0,s=t.length;i1,null,!1))},removeData:function(e){return this.each(function(){v.removeData(this,e)})}}),v.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=v._data(e,t),n&&(!r||v.isArray(n)?r=v._data(e,t,v.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=v.queue(e,t),r=n.length,i=n.shift(),s=v._queueHooks(e,t),o=function(){v.dequeue(e,t)};i==="inprogress"&&(i=n.shift(),r--),i&&(t==="fx"&&n.unshift("inprogress"),delete s.stop,i.call(e,o,s)),!r&&s&&s.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return v._data(e,n)||v._data(e,n,{empty:v.Callbacks("once memory").add(function(){v.removeData(e,t+"queue",!0),v.removeData(e,n,!0)})})}}),v.fn.extend({queue:function(e,n){var r=2;return typeof e!="string"&&(n=e,e="fx",r--),arguments.length1)},removeAttr:function(e){return this.each(function(){v.removeAttr(this,e)})},prop:function(e,t){return v.access(this,v.prop,e,t,arguments.length>1)},removeProp:function(e){return e=v.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,s,o,u;if(v.isFunction(e))return this.each(function(t){v(this).addClass(e.call(this,t,this.className))});if(e&&typeof e=="string"){t=e.split(y);for(n=0,r=this.length;n=0)r=r.replace(" "+n[s]+" "," ");i.className=e?v.trim(r):""}}}return this},toggleClass:function(e,t){var n=typeof e,r=typeof t=="boolean";return v.isFunction(e)?this.each(function(n){v(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if(n==="string"){var i,s=0,o=v(this),u=t,a=e.split(y);while(i=a[s++])u=r?u:!o.hasClass(i),o[u?"addClass":"removeClass"](i)}else if(n==="undefined"||n==="boolean")this.className&&v._data(this,"__className__",this.className),this.className=this.className||e===!1?"":v._data(this,"__className__")||""})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;n=0)return!0;return!1},val:function(e){var n,r,i,s=this[0];if(!arguments.length){if(s)return n=v.valHooks[s.type]||v.valHooks[s.nodeName.toLowerCase()],n&&"get"in n&&(r=n.get(s,"value"))!==t?r:(r=s.value,typeof r=="string"?r.replace(R,""):r==null?"":r);return}return i=v.isFunction(e),this.each(function(r){var s,o=v(this);if(this.nodeType!==1)return;i?s=e.call(this,r,o.val()):s=e,s==null?s="":typeof s=="number"?s+="":v.isArray(s)&&(s=v.map(s,function(e){return e==null?"":e+""})),n=v.valHooks[this.type]||v.valHooks[this.nodeName.toLowerCase()];if(!n||!("set"in n)||n.set(this,s,"value")===t)this.value=s})}}),v.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,s=e.type==="select-one"||i<0,o=s?null:[],u=s?i+1:r.length,a=i<0?u:s?i:0;for(;a=0}),n.length||(e.selectedIndex=-1),n}}},attrFn:{},attr:function(e,n,r,i){var s,o,u,a=e.nodeType;if(!e||a===3||a===8||a===2)return;if(i&&v.isFunction(v.fn[n]))return v(e)[n](r);if(typeof e.getAttribute=="undefined")return v.prop(e,n,r);u=a!==1||!v.isXMLDoc(e),u&&(n=n.toLowerCase(),o=v.attrHooks[n]||(X.test(n)?F:j));if(r!==t){if(r===null){v.removeAttr(e,n);return}return o&&"set"in o&&u&&(s=o.set(e,r,n))!==t?s:(e.setAttribute(n,r+""),r)}return o&&"get"in o&&u&&(s=o.get(e,n))!==null?s:(s=e.getAttribute(n),s===null?t:s)},removeAttr:function(e,t){var n,r,i,s,o=0;if(t&&e.nodeType===1){r=t.split(y);for(;o=0}})});var $=/^(?:textarea|input|select)$/i,J=/^([^\.]*|)(?:\.(.+)|)$/,K=/(?:^|\s)hover(\.\S+|)\b/,Q=/^key/,G=/^(?:mouse|contextmenu)|click/,Y=/^(?:focusinfocus|focusoutblur)$/,Z=function(e){return v.event.special.hover?e:e.replace(K,"mouseenter$1 mouseleave$1")};v.event={add:function(e,n,r,i,s){var o,u,a,f,l,c,h,p,d,m,g;if(e.nodeType===3||e.nodeType===8||!n||!r||!(o=v._data(e)))return;r.handler&&(d=r,r=d.handler,s=d.selector),r.guid||(r.guid=v.guid++),a=o.events,a||(o.events=a={}),u=o.handle,u||(o.handle=u=function(e){return typeof v=="undefined"||!!e&&v.event.triggered===e.type?t:v.event.dispatch.apply(u.elem,arguments)},u.elem=e),n=v.trim(Z(n)).split(" ");for(f=0;f=0&&(y=y.slice(0,-1),a=!0),y.indexOf(".")>=0&&(b=y.split("."),y=b.shift(),b.sort());if((!s||v.event.customEvent[y])&&!v.event.global[y])return;n=typeof n=="object"?n[v.expando]?n:new v.Event(y,n):new v.Event(y),n.type=y,n.isTrigger=!0,n.exclusive=a,n.namespace=b.join("."),n.namespace_re=n.namespace?new RegExp("(^|\\.)"+b.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,h=y.indexOf(":")<0?"on"+y:"";if(!s){u=v.cache;for(f in u)u[f].events&&u[f].events[y]&&v.event.trigger(n,r,u[f].handle.elem,!0);return}n.result=t,n.target||(n.target=s),r=r!=null?v.makeArray(r):[],r.unshift(n),p=v.event.special[y]||{};if(p.trigger&&p.trigger.apply(s,r)===!1)return;m=[[s,p.bindType||y]];if(!o&&!p.noBubble&&!v.isWindow(s)){g=p.delegateType||y,l=Y.test(g+y)?s:s.parentNode;for(c=s;l;l=l.parentNode)m.push([l,g]),c=l;c===(s.ownerDocument||i)&&m.push([c.defaultView||c.parentWindow||e,g])}for(f=0;f=0:v.find(h,this,null,[s]).length),u[h]&&f.push(c);f.length&&w.push({elem:s,matches:f})}d.length>m&&w.push({elem:this,matches:d.slice(m)});for(r=0;r0?this.on(t,null,e,n):this.trigger(t)},Q.test(t)&&(v.event.fixHooks[t]=v.event.keyHooks),G.test(t)&&(v.event.fixHooks[t]=v.event.mouseHooks)}),function(e,t){function nt(e,t,n,r){n=n||[],t=t||g;var i,s,a,f,l=t.nodeType;if(!e||typeof e!="string")return n;if(l!==1&&l!==9)return[];a=o(t);if(!a&&!r)if(i=R.exec(e))if(f=i[1]){if(l===9){s=t.getElementById(f);if(!s||!s.parentNode)return n;if(s.id===f)return n.push(s),n}else if(t.ownerDocument&&(s=t.ownerDocument.getElementById(f))&&u(t,s)&&s.id===f)return n.push(s),n}else{if(i[2])return S.apply(n,x.call(t.getElementsByTagName(e),0)),n;if((f=i[3])&&Z&&t.getElementsByClassName)return S.apply(n,x.call(t.getElementsByClassName(f),0)),n}return vt(e.replace(j,"$1"),t,n,r,a)}function rt(e){return function(t){var n=t.nodeName.toLowerCase();return n==="input"&&t.type===e}}function it(e){return function(t){var n=t.nodeName.toLowerCase();return(n==="input"||n==="button")&&t.type===e}}function st(e){return N(function(t){return t=+t,N(function(n,r){var i,s=e([],n.length,t),o=s.length;while(o--)n[i=s[o]]&&(n[i]=!(r[i]=n[i]))})})}function ot(e,t,n){if(e===t)return n;var r=e.nextSibling;while(r){if(r===t)return-1;r=r.nextSibling}return 1}function ut(e,t){var n,r,s,o,u,a,f,l=L[d][e+" "];if(l)return t?0:l.slice(0);u=e,a=[],f=i.preFilter;while(u){if(!n||(r=F.exec(u)))r&&(u=u.slice(r[0].length)||u),a.push(s=[]);n=!1;if(r=I.exec(u))s.push(n=new m(r.shift())),u=u.slice(n.length),n.type=r[0].replace(j," ");for(o in i.filter)(r=J[o].exec(u))&&(!f[o]||(r=f[o](r)))&&(s.push(n=new m(r.shift())),u=u.slice(n.length),n.type=o,n.matches=r);if(!n)break}return t?u.length:u?nt.error(e):L(e,a).slice(0)}function at(e,t,r){var i=t.dir,s=r&&t.dir==="parentNode",o=w++;return t.first?function(t,n,r){while(t=t[i])if(s||t.nodeType===1)return e(t,n,r)}:function(t,r,u){if(!u){var a,f=b+" "+o+" ",l=f+n;while(t=t[i])if(s||t.nodeType===1){if((a=t[d])===l)return t.sizset;if(typeof a=="string"&&a.indexOf(f)===0){if(t.sizset)return t}else{t[d]=l;if(e(t,r,u))return t.sizset=!0,t;t.sizset=!1}}}else while(t=t[i])if(s||t.nodeType===1)if(e(t,r,u))return t}}function ft(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function lt(e,t,n,r,i){var s,o=[],u=0,a=e.length,f=t!=null;for(;u-1&&(s[f]=!(o[f]=c))}}else g=lt(g===o?g.splice(d,g.length):g),i?i(null,o,g,a):S.apply(o,g)})}function ht(e){var t,n,r,s=e.length,o=i.relative[e[0].type],u=o||i.relative[" "],a=o?1:0,f=at(function(e){return e===t},u,!0),l=at(function(e){return T.call(t,e)>-1},u,!0),h=[function(e,n,r){return!o&&(r||n!==c)||((t=n).nodeType?f(e,n,r):l(e,n,r))}];for(;a1&&ft(h),a>1&&e.slice(0,a-1).join("").replace(j,"$1"),n,a0,s=e.length>0,o=function(u,a,f,l,h){var p,d,v,m=[],y=0,w="0",x=u&&[],T=h!=null,N=c,C=u||s&&i.find.TAG("*",h&&a.parentNode||a),k=b+=N==null?1:Math.E;T&&(c=a!==g&&a,n=o.el);for(;(p=C[w])!=null;w++){if(s&&p){for(d=0;v=e[d];d++)if(v(p,a,f)){l.push(p);break}T&&(b=k,n=++o.el)}r&&((p=!v&&p)&&y--,u&&x.push(p))}y+=w;if(r&&w!==y){for(d=0;v=t[d];d++)v(x,m,a,f);if(u){if(y>0)while(w--)!x[w]&&!m[w]&&(m[w]=E.call(l));m=lt(m)}S.apply(l,m),T&&!u&&m.length>0&&y+t.length>1&&nt.uniqueSort(l)}return T&&(b=k,c=N),x};return o.el=0,r?N(o):o}function dt(e,t,n){var r=0,i=t.length;for(;r2&&(f=u[0]).type==="ID"&&t.nodeType===9&&!s&&i.relative[u[1].type]){t=i.find.ID(f.matches[0].replace($,""),t,s)[0];if(!t)return n;e=e.slice(u.shift().length)}for(o=J.POS.test(e)?-1:u.length-1;o>=0;o--){f=u[o];if(i.relative[l=f.type])break;if(c=i.find[l])if(r=c(f.matches[0].replace($,""),z.test(u[0].type)&&t.parentNode||t,s)){u.splice(o,1),e=r.length&&u.join("");if(!e)return S.apply(n,x.call(r,0)),n;break}}}return a(e,h)(r,t,s,n,z.test(e)),n}function mt(){}var n,r,i,s,o,u,a,f,l,c,h=!0,p="undefined",d=("sizcache"+Math.random()).replace(".",""),m=String,g=e.document,y=g.documentElement,b=0,w=0,E=[].pop,S=[].push,x=[].slice,T=[].indexOf||function(e){var t=0,n=this.length;for(;ti.cacheLength&&delete e[t.shift()],e[n+" "]=r},e)},k=C(),L=C(),A=C(),O="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",_=M.replace("w","w#"),D="([*^$|!~]?=)",P="\\["+O+"*("+M+")"+O+"*(?:"+D+O+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+_+")|)|)"+O+"*\\]",H=":("+M+")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:"+P+")|[^:]|\\\\.)*|.*))\\)|)",B=":(even|odd|eq|gt|lt|nth|first|last)(?:\\("+O+"*((?:-\\d)?\\d*)"+O+"*\\)|)(?=[^-]|$)",j=new RegExp("^"+O+"+|((?:^|[^\\\\])(?:\\\\.)*)"+O+"+$","g"),F=new RegExp("^"+O+"*,"+O+"*"),I=new RegExp("^"+O+"*([\\x20\\t\\r\\n\\f>+~])"+O+"*"),q=new RegExp(H),R=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,U=/^:not/,z=/[\x20\t\r\n\f]*[+~]/,W=/:not\($/,X=/h\d/i,V=/input|select|textarea|button/i,$=/\\(?!\\)/g,J={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),NAME:new RegExp("^\\[name=['\"]?("+M+")['\"]?\\]"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+H),POS:new RegExp(B,"i"),CHILD:new RegExp("^:(only|nth|first|last)-child(?:\\("+O+"*(even|odd|(([+-]|)(\\d*)n|)"+O+"*(?:([+-]|)"+O+"*(\\d+)|))"+O+"*\\)|)","i"),needsContext:new RegExp("^"+O+"*[>+~]|"+B,"i")},K=function(e){var t=g.createElement("div");try{return e(t)}catch(n){return!1}finally{t=null}},Q=K(function(e){return e.appendChild(g.createComment("")),!e.getElementsByTagName("*").length}),G=K(function(e){return e.innerHTML="",e.firstChild&&typeof e.firstChild.getAttribute!==p&&e.firstChild.getAttribute("href")==="#"}),Y=K(function(e){e.innerHTML="";var t=typeof e.lastChild.getAttribute("multiple");return t!=="boolean"&&t!=="string"}),Z=K(function(e){return e.innerHTML="",!e.getElementsByClassName||!e.getElementsByClassName("e").length?!1:(e.lastChild.className="e",e.getElementsByClassName("e").length===2)}),et=K(function(e){e.id=d+0,e.innerHTML="
    ",y.insertBefore(e,y.firstChild);var t=g.getElementsByName&&g.getElementsByName(d).length===2+g.getElementsByName(d+0).length;return r=!g.getElementById(d),y.removeChild(e),t});try{x.call(y.childNodes,0)[0].nodeType}catch(tt){x=function(e){var t,n=[];for(;t=this[e];e++)n.push(t);return n}}nt.matches=function(e,t){return nt(e,null,null,t)},nt.matchesSelector=function(e,t){return nt(t,null,null,[e]).length>0},s=nt.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(i===1||i===9||i===11){if(typeof e.textContent=="string")return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=s(e)}else if(i===3||i===4)return e.nodeValue}else for(;t=e[r];r++)n+=s(t);return n},o=nt.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?t.nodeName!=="HTML":!1},u=nt.contains=y.contains?function(e,t){var n=e.nodeType===9?e.documentElement:e,r=t&&t.parentNode;return e===r||!!(r&&r.nodeType===1&&n.contains&&n.contains(r))}:y.compareDocumentPosition?function(e,t){return t&&!!(e.compareDocumentPosition(t)&16)}:function(e,t){while(t=t.parentNode)if(t===e)return!0;return!1},nt.attr=function(e,t){var n,r=o(e);return r||(t=t.toLowerCase()),(n=i.attrHandle[t])?n(e):r||Y?e.getAttribute(t):(n=e.getAttributeNode(t),n?typeof e[t]=="boolean"?e[t]?t:null:n.specified?n.value:null:null)},i=nt.selectors={cacheLength:50,createPseudo:N,match:J,attrHandle:G?{}:{href:function(e){return e.getAttribute("href",2)},type:function(e){return e.getAttribute("type")}},find:{ID:r?function(e,t,n){if(typeof t.getElementById!==p&&!n){var r=t.getElementById(e);return r&&r.parentNode?[r]:[]}}:function(e,n,r){if(typeof n.getElementById!==p&&!r){var i=n.getElementById(e);return i?i.id===e||typeof i.getAttributeNode!==p&&i.getAttributeNode("id").value===e?[i]:t:[]}},TAG:Q?function(e,t){if(typeof t.getElementsByTagName!==p)return t.getElementsByTagName(e)}:function(e,t){var n=t.getElementsByTagName(e);if(e==="*"){var r,i=[],s=0;for(;r=n[s];s++)r.nodeType===1&&i.push(r);return i}return n},NAME:et&&function(e,t){if(typeof t.getElementsByName!==p)return t.getElementsByName(name)},CLASS:Z&&function(e,t,n){if(typeof t.getElementsByClassName!==p&&!n)return t.getElementsByClassName(e)}},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace($,""),e[3]=(e[4]||e[5]||"").replace($,""),e[2]==="~="&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),e[1]==="nth"?(e[2]||nt.error(e[0]),e[3]=+(e[3]?e[4]+(e[5]||1):2*(e[2]==="even"||e[2]==="odd")),e[4]=+(e[6]+e[7]||e[2]==="odd")):e[2]&&nt.error(e[0]),e},PSEUDO:function(e){var t,n;if(J.CHILD.test(e[0]))return null;if(e[3])e[2]=e[3];else if(t=e[4])q.test(t)&&(n=ut(t,!0))&&(n=t.indexOf(")",t.length-n)-t.length)&&(t=t.slice(0,n),e[0]=e[0].slice(0,n)),e[2]=t;return e.slice(0,3)}},filter:{ID:r?function(e){return e=e.replace($,""),function(t){return t.getAttribute("id")===e}}:function(e){return e=e.replace($,""),function(t){var n=typeof t.getAttributeNode!==p&&t.getAttributeNode("id");return n&&n.value===e}},TAG:function(e){return e==="*"?function(){return!0}:(e=e.replace($,"").toLowerCase(),function(t){return t.nodeName&&t.nodeName.toLowerCase()===e})},CLASS:function(e){var t=k[d][e+" "];return t||(t=new RegExp("(^|"+O+")"+e+"("+O+"|$)"))&&k(e,function(e){return t.test(e.className||typeof e.getAttribute!==p&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r,i){var s=nt.attr(r,e);return s==null?t==="!=":t?(s+="",t==="="?s===n:t==="!="?s!==n:t==="^="?n&&s.indexOf(n)===0:t==="*="?n&&s.indexOf(n)>-1:t==="$="?n&&s.substr(s.length-n.length)===n:t==="~="?(" "+s+" ").indexOf(n)>-1:t==="|="?s===n||s.substr(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r){return e==="nth"?function(e){var t,i,s=e.parentNode;if(n===1&&r===0)return!0;if(s){i=0;for(t=s.firstChild;t;t=t.nextSibling)if(t.nodeType===1){i++;if(e===t)break}}return i-=r,i===n||i%n===0&&i/n>=0}:function(t){var n=t;switch(e){case"only":case"first":while(n=n.previousSibling)if(n.nodeType===1)return!1;if(e==="first")return!0;n=t;case"last":while(n=n.nextSibling)if(n.nodeType===1)return!1;return!0}}},PSEUDO:function(e,t){var n,r=i.pseudos[e]||i.setFilters[e.toLowerCase()]||nt.error("unsupported pseudo: "+e);return r[d]?r(t):r.length>1?(n=[e,e,"",t],i.setFilters.hasOwnProperty(e.toLowerCase())?N(function(e,n){var i,s=r(e,t),o=s.length;while(o--)i=T.call(e,s[o]),e[i]=!(n[i]=s[o])}):function(e){return r(e,0,n)}):r}},pseudos:{not:N(function(e){var t=[],n=[],r=a(e.replace(j,"$1"));return r[d]?N(function(e,t,n,i){var s,o=r(e,null,i,[]),u=e.length;while(u--)if(s=o[u])e[u]=!(t[u]=s)}):function(e,i,s){return t[0]=e,r(t,null,s,n),!n.pop()}}),has:N(function(e){return function(t){return nt(e,t).length>0}}),contains:N(function(e){return function(t){return(t.textContent||t.innerText||s(t)).indexOf(e)>-1}}),enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return t==="input"&&!!e.checked||t==="option"&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},parent:function(e){return!i.pseudos.empty(e)},empty:function(e){var t;e=e.firstChild;while(e){if(e.nodeName>"@"||(t=e.nodeType)===3||t===4)return!1;e=e.nextSibling}return!0},header:function(e){return X.test(e.nodeName)},text:function(e){var t,n;return e.nodeName.toLowerCase()==="input"&&(t=e.type)==="text"&&((n=e.getAttribute("type"))==null||n.toLowerCase()===t)},radio:rt("radio"),checkbox:rt("checkbox"),file:rt("file"),password:rt("password"),image:rt("image"),submit:it("submit"),reset:it("reset"),button:function(e){var t=e.nodeName.toLowerCase();return t==="input"&&e.type==="button"||t==="button"},input:function(e){return V.test(e.nodeName)},focus:function(e){var t=e.ownerDocument;return e===t.activeElement&&(!t.hasFocus||t.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},active:function(e){return e===e.ownerDocument.activeElement},first:st(function(){return[0]}),last:st(function(e,t){return[t-1]}),eq:st(function(e,t,n){return[n<0?n+t:n]}),even:st(function(e,t){for(var n=0;n=0;)e.push(r);return e}),gt:st(function(e,t,n){for(var r=n<0?n+t:n;++r",e.querySelectorAll("[selected]").length||i.push("\\["+O+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),e.querySelectorAll(":checked").length||i.push(":checked")}),K(function(e){e.innerHTML="

    ",e.querySelectorAll("[test^='']").length&&i.push("[*^$]="+O+"*(?:\"\"|'')"),e.innerHTML="",e.querySelectorAll(":enabled").length||i.push(":enabled",":disabled")}),i=new RegExp(i.join("|")),vt=function(e,r,s,o,u){if(!o&&!u&&!i.test(e)){var a,f,l=!0,c=d,h=r,p=r.nodeType===9&&e;if(r.nodeType===1&&r.nodeName.toLowerCase()!=="object"){a=ut(e),(l=r.getAttribute("id"))?c=l.replace(n,"\\$&"):r.setAttribute("id",c),c="[id='"+c+"'] ",f=a.length;while(f--)a[f]=c+a[f].join("");h=z.test(e)&&r.parentNode||r,p=a.join(",")}if(p)try{return S.apply(s,x.call(h.querySelectorAll(p),0)),s}catch(v){}finally{l||r.removeAttribute("id")}}return t(e,r,s,o,u)},u&&(K(function(t){e=u.call(t,"div");try{u.call(t,"[test!='']:sizzle"),s.push("!=",H)}catch(n){}}),s=new RegExp(s.join("|")),nt.matchesSelector=function(t,n){n=n.replace(r,"='$1']");if(!o(t)&&!s.test(n)&&!i.test(n))try{var a=u.call(t,n);if(a||e||t.document&&t.document.nodeType!==11)return a}catch(f){}return nt(n,null,null,[t]).length>0})}(),i.pseudos.nth=i.pseudos.eq,i.filters=mt.prototype=i.pseudos,i.setFilters=new mt,nt.attr=v.attr,v.find=nt,v.expr=nt.selectors,v.expr[":"]=v.expr.pseudos,v.unique=nt.uniqueSort,v.text=nt.getText,v.isXMLDoc=nt.isXML,v.contains=nt.contains}(e);var nt=/Until$/,rt=/^(?:parents|prev(?:Until|All))/,it=/^.[^:#\[\.,]*$/,st=v.expr.match.needsContext,ot={children:!0,contents:!0,next:!0,prev:!0};v.fn.extend({find:function(e){var t,n,r,i,s,o,u=this;if(typeof e!="string")return v(e).filter(function(){for(t=0,n=u.length;t0)for(i=r;i=0:v.filter(e,this).length>0:this.filter(e).length>0)},closest:function(e,t){var n,r=0,i=this.length,s=[],o=st.test(e)||typeof e!="string"?v(e,t||this.context):0;for(;r-1:v.find.matchesSelector(n,e)){s.push(n);break}n=n.parentNode}}return s=s.length>1?v.unique(s):s,this.pushStack(s,"closest",e)},index:function(e){return e?typeof e=="string"?v.inArray(this[0],v(e)):v.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(e,t){var n=typeof e=="string"?v(e,t):v.makeArray(e&&e.nodeType?[e]:e),r=v.merge(this.get(),n);return this.pushStack(ut(n[0])||ut(r[0])?r:v.unique(r))},addBack:function(e){return this.add(e==null?this.prevObject:this.prevObject.filter(e))}}),v.fn.andSelf=v.fn.addBack,v.each({parent:function(e){var t=e.parentNode;return t&&t.nodeType!==11?t:null},parents:function(e){return v.dir(e,"parentNode")},parentsUntil:function(e,t,n){return v.dir(e,"parentNode",n)},next:function(e){return at(e,"nextSibling")},prev:function(e){return at(e,"previousSibling")},nextAll:function(e){return v.dir(e,"nextSibling")},prevAll:function(e){return v.dir(e,"previousSibling")},nextUntil:function(e,t,n){return v.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return v.dir(e,"previousSibling",n)},siblings:function(e){return v.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return v.sibling(e.firstChild)},contents:function(e){return v.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:v.merge([],e.childNodes)}},function(e,t){v.fn[e]=function(n,r){var i=v.map(this,t,n);return nt.test(e)||(r=n),r&&typeof r=="string"&&(i=v.filter(r,i)),i=this.length>1&&!ot[e]?v.unique(i):i,this.length>1&&rt.test(e)&&(i=i.reverse()),this.pushStack(i,e,l.call(arguments).join(","))}}),v.extend({filter:function(e,t,n){return n&&(e=":not("+e+")"),t.length===1?v.find.matchesSelector(t[0],e)?[t[0]]:[]:v.find.matches(e,t)},dir:function(e,n,r){var i=[],s=e[n];while(s&&s.nodeType!==9&&(r===t||s.nodeType!==1||!v(s).is(r)))s.nodeType===1&&i.push(s),s=s[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)e.nodeType===1&&e!==t&&n.push(e);return n}});var ct="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ht=/ jQuery\d+="(?:null|\d+)"/g,pt=/^\s+/,dt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,vt=/<([\w:]+)/,mt=/]","i"),Et=/^(?:checkbox|radio)$/,St=/checked\s*(?:[^=]|=\s*.checked.)/i,xt=/\/(java|ecma)script/i,Tt=/^\s*\s*$/g,Nt={option:[1,""],legend:[1,"
    ","
    "],thead:[1,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],col:[2,"","
    "],area:[1,"",""],_default:[0,"",""]},Ct=lt(i),kt=Ct.appendChild(i.createElement("div"));Nt.optgroup=Nt.option,Nt.tbody=Nt.tfoot=Nt.colgroup=Nt.caption=Nt.thead,Nt.th=Nt.td,v.support.htmlSerialize||(Nt._default=[1,"X
    ","
    "]),v.fn.extend({text:function(e){return v.access(this,function(e){return e===t?v.text(this):this.empty().append((this[0]&&this[0].ownerDocument||i).createTextNode(e))},null,e,arguments.length)},wrapAll:function(e){if(v.isFunction(e))return this.each(function(t){v(this).wrapAll(e.call(this,t))});if(this[0]){var t=v(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&e.firstChild.nodeType===1)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return v.isFunction(e)?this.each(function(t){v(this).wrapInner(e.call(this,t))}):this.each(function(){var t=v(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=v.isFunction(e);return this.each(function(n){v(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){v.nodeName(this,"body")||v(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(e){(this.nodeType===1||this.nodeType===11)&&this.appendChild(e)})},prepend:function(){return this.domManip(arguments,!0,function(e){(this.nodeType===1||this.nodeType===11)&&this.insertBefore(e,this.firstChild)})},before:function(){if(!ut(this[0]))return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this)});if(arguments.length){var e=v.clean(arguments);return this.pushStack(v.merge(e,this),"before",this.selector)}},after:function(){if(!ut(this[0]))return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this.nextSibling)});if(arguments.length){var e=v.clean(arguments);return this.pushStack(v.merge(this,e),"after",this.selector)}},remove:function(e,t){var n,r=0;for(;(n=this[r])!=null;r++)if(!e||v.filter(e,[n]).length)!t&&n.nodeType===1&&(v.cleanData(n.getElementsByTagName("*")),v.cleanData([n])),n.parentNode&&n.parentNode.removeChild(n);return this},empty:function(){var e,t=0;for(;(e=this[t])!=null;t++){e.nodeType===1&&v.cleanData(e.getElementsByTagName("*"));while(e.firstChild)e.removeChild(e.firstChild)}return this},clone:function(e,t){return e=e==null?!1:e,t=t==null?e:t,this.map(function(){return v.clone(this,e,t)})},html:function(e){return v.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return n.nodeType===1?n.innerHTML.replace(ht,""):t;if(typeof e=="string"&&!yt.test(e)&&(v.support.htmlSerialize||!wt.test(e))&&(v.support.leadingWhitespace||!pt.test(e))&&!Nt[(vt.exec(e)||["",""])[1].toLowerCase()]){e=e.replace(dt,"<$1>");try{for(;r1&&typeof f=="string"&&St.test(f))return this.each(function(){v(this).domManip(e,n,r)});if(v.isFunction(f))return this.each(function(i){var s=v(this);e[0]=f.call(this,i,n?s.html():t),s.domManip(e,n,r)});if(this[0]){i=v.buildFragment(e,this,l),o=i.fragment,s=o.firstChild,o.childNodes.length===1&&(o=s);if(s){n=n&&v.nodeName(s,"tr");for(u=i.cacheable||c-1;a0?this.clone(!0):this).get(),v(o[i])[t](r),s=s.concat(r);return this.pushStack(s,e,o.selector)}}),v.extend({clone:function(e,t,n){var r,i,s,o;v.support.html5Clone||v.isXMLDoc(e)||!wt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(kt.innerHTML=e.outerHTML,kt.removeChild(o=kt.firstChild));if((!v.support.noCloneEvent||!v.support.noCloneChecked)&&(e.nodeType===1||e.nodeType===11)&&!v.isXMLDoc(e)){Ot(e,o),r=Mt(e),i=Mt(o);for(s=0;r[s];++s)i[s]&&Ot(r[s],i[s])}if(t){At(e,o);if(n){r=Mt(e),i=Mt(o);for(s=0;r[s];++s)At(r[s],i[s])}}return r=i=null,o},clean:function(e,t,n,r){var s,o,u,a,f,l,c,h,p,d,m,g,y=t===i&&Ct,b=[];if(!t||typeof t.createDocumentFragment=="undefined")t=i;for(s=0;(u=e[s])!=null;s++){typeof u=="number"&&(u+="");if(!u)continue;if(typeof u=="string")if(!gt.test(u))u=t.createTextNode(u);else{y=y||lt(t),c=t.createElement("div"),y.appendChild(c),u=u.replace(dt,"<$1>"),a=(vt.exec(u)||["",""])[1].toLowerCase(),f=Nt[a]||Nt._default,l=f[0],c.innerHTML=f[1]+u+f[2];while(l--)c=c.lastChild;if(!v.support.tbody){h=mt.test(u),p=a==="table"&&!h?c.firstChild&&c.firstChild.childNodes:f[1]===""&&!h?c.childNodes:[];for(o=p.length-1;o>=0;--o)v.nodeName(p[o],"tbody")&&!p[o].childNodes.length&&p[o].parentNode.removeChild(p[o])}!v.support.leadingWhitespace&&pt.test(u)&&c.insertBefore(t.createTextNode(pt.exec(u)[0]),c.firstChild),u=c.childNodes,c.parentNode.removeChild(c)}u.nodeType?b.push(u):v.merge(b,u)}c&&(u=c=y=null);if(!v.support.appendChecked)for(s=0;(u=b[s])!=null;s++)v.nodeName(u,"input")?_t(u):typeof u.getElementsByTagName!="undefined"&&v.grep(u.getElementsByTagName("input"),_t);if(n){m=function(e){if(!e.type||xt.test(e.type))return r?r.push(e.parentNode?e.parentNode.removeChild(e):e):n.appendChild(e)};for(s=0;(u=b[s])!=null;s++)if(!v.nodeName(u,"script")||!m(u))n.appendChild(u),typeof u.getElementsByTagName!="undefined"&&(g=v.grep(v.merge([],u.getElementsByTagName("script")),m),b.splice.apply(b,[s+1,0].concat(g)),s+=g.length)}return b},cleanData:function(e,t){var n,r,i,s,o=0,u=v.expando,a=v.cache,f=v.support.deleteExpando,l=v.event.special;for(;(i=e[o])!=null;o++)if(t||v.acceptData(i)){r=i[u],n=r&&a[r];if(n){if(n.events)for(s in n.events)l[s]?v.event.remove(i,s):v.removeEvent(i,s,n.handle);a[r]&&(delete a[r],f?delete i[u]:i.removeAttribute?i.removeAttribute(u):i[u]=null,v.deletedIds.push(r))}}}}),function(){var e,t;v.uaMatch=function(e){e=e.toLowerCase();var t=/(chrome)[ \/]([\w.]+)/.exec(e)||/(webkit)[ \/]([\w.]+)/.exec(e)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(e)||/(msie) ([\w.]+)/.exec(e)||e.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(e)||[];return{browser:t[1]||"",version:t[2]||"0"}},e=v.uaMatch(o.userAgent),t={},e.browser&&(t[e.browser]=!0,t.version=e.version),t.chrome?t.webkit=!0:t.webkit&&(t.safari=!0),v.browser=t,v.sub=function(){function e(t,n){return new e.fn.init(t,n)}v.extend(!0,e,this),e.superclass=this,e.fn=e.prototype=this(),e.fn.constructor=e,e.sub=this.sub,e.fn.init=function(r,i){return i&&i instanceof v&&!(i instanceof e)&&(i=e(i)),v.fn.init.call(this,r,i,t)},e.fn.init.prototype=e.fn;var t=e(i);return e}}();var Dt,Pt,Ht,Bt=/alpha\([^)]*\)/i,jt=/opacity=([^)]*)/,Ft=/^(top|right|bottom|left)$/,It=/^(none|table(?!-c[ea]).+)/,qt=/^margin/,Rt=new RegExp("^("+m+")(.*)$","i"),Ut=new RegExp("^("+m+")(?!px)[a-z%]+$","i"),zt=new RegExp("^([-+])=("+m+")","i"),Wt={BODY:"block"},Xt={position:"absolute",visibility:"hidden",display:"block"},Vt={letterSpacing:0,fontWeight:400},$t=["Top","Right","Bottom","Left"],Jt=["Webkit","O","Moz","ms"],Kt=v.fn.toggle;v.fn.extend({css:function(e,n){return v.access(this,function(e,n,r){return r!==t?v.style(e,n,r):v.css(e,n)},e,n,arguments.length>1)},show:function(){return Yt(this,!0)},hide:function(){return Yt(this)},toggle:function(e,t){var n=typeof e=="boolean";return v.isFunction(e)&&v.isFunction(t)?Kt.apply(this,arguments):this.each(function(){(n?e:Gt(this))?v(this).show():v(this).hide()})}}),v.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Dt(e,"opacity");return n===""?"1":n}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":v.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(!e||e.nodeType===3||e.nodeType===8||!e.style)return;var s,o,u,a=v.camelCase(n),f=e.style;n=v.cssProps[a]||(v.cssProps[a]=Qt(f,a)),u=v.cssHooks[n]||v.cssHooks[a];if(r===t)return u&&"get"in u&&(s=u.get(e,!1,i))!==t?s:f[n];o=typeof r,o==="string"&&(s=zt.exec(r))&&(r=(s[1]+1)*s[2]+parseFloat(v.css(e,n)),o="number");if(r==null||o==="number"&&isNaN(r))return;o==="number"&&!v.cssNumber[a]&&(r+="px");if(!u||!("set"in u)||(r=u.set(e,r,i))!==t)try{f[n]=r}catch(l){}},css:function(e,n,r,i){var s,o,u,a=v.camelCase(n);return n=v.cssProps[a]||(v.cssProps[a]=Qt(e.style,a)),u=v.cssHooks[n]||v.cssHooks[a],u&&"get"in u&&(s=u.get(e,!0,i)),s===t&&(s=Dt(e,n)),s==="normal"&&n in Vt&&(s=Vt[n]),r||i!==t?(o=parseFloat(s),r||v.isNumeric(o)?o||0:s):s},swap:function(e,t,n){var r,i,s={};for(i in t)s[i]=e.style[i],e.style[i]=t[i];r=n.call(e);for(i in t)e.style[i]=s[i];return r}}),e.getComputedStyle?Dt=function(t,n){var r,i,s,o,u=e.getComputedStyle(t,null),a=t.style;return u&&(r=u.getPropertyValue(n)||u[n],r===""&&!v.contains(t.ownerDocument,t)&&(r=v.style(t,n)),Ut.test(r)&&qt.test(n)&&(i=a.width,s=a.minWidth,o=a.maxWidth,a.minWidth=a.maxWidth=a.width=r,r=u.width,a.width=i,a.minWidth=s,a.maxWidth=o)),r}:i.documentElement.currentStyle&&(Dt=function(e,t){var n,r,i=e.currentStyle&&e.currentStyle[t],s=e.style;return i==null&&s&&s[t]&&(i=s[t]),Ut.test(i)&&!Ft.test(t)&&(n=s.left,r=e.runtimeStyle&&e.runtimeStyle.left,r&&(e.runtimeStyle.left=e.currentStyle.left),s.left=t==="fontSize"?"1em":i,i=s.pixelLeft+"px",s.left=n,r&&(e.runtimeStyle.left=r)),i===""?"auto":i}),v.each(["height","width"],function(e,t){v.cssHooks[t]={get:function(e,n,r){if(n)return e.offsetWidth===0&&It.test(Dt(e,"display"))?v.swap(e,Xt,function(){return tn(e,t,r)}):tn(e,t,r)},set:function(e,n,r){return Zt(e,n,r?en(e,t,r,v.support.boxSizing&&v.css(e,"boxSizing")==="border-box"):0)}}}),v.support.opacity||(v.cssHooks.opacity={get:function(e,t){return jt.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=v.isNumeric(t)?"alpha(opacity="+t*100+")":"",s=r&&r.filter||n.filter||"";n.zoom=1;if(t>=1&&v.trim(s.replace(Bt,""))===""&&n.removeAttribute){n.removeAttribute("filter");if(r&&!r.filter)return}n.filter=Bt.test(s)?s.replace(Bt,i):s+" "+i}}),v(function(){v.support.reliableMarginRight||(v.cssHooks.marginRight={get:function(e,t){return v.swap(e,{display:"inline-block"},function(){if(t)return Dt(e,"marginRight")})}}),!v.support.pixelPosition&&v.fn.position&&v.each(["top","left"],function(e,t){v.cssHooks[t]={get:function(e,n){if(n){var r=Dt(e,t);return Ut.test(r)?v(e).position()[t]+"px":r}}}})}),v.expr&&v.expr.filters&&(v.expr.filters.hidden=function(e){return e.offsetWidth===0&&e.offsetHeight===0||!v.support.reliableHiddenOffsets&&(e.style&&e.style.display||Dt(e,"display"))==="none"},v.expr.filters.visible=function(e){return!v.expr.filters.hidden(e)}),v.each({margin:"",padding:"",border:"Width"},function(e,t){v.cssHooks[e+t]={expand:function(n){var r,i=typeof n=="string"?n.split(" "):[n],s={};for(r=0;r<4;r++)s[e+$t[r]+t]=i[r]||i[r-2]||i[0];return s}},qt.test(e)||(v.cssHooks[e+t].set=Zt)});var rn=/%20/g,sn=/\[\]$/,on=/\r?\n/g,un=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,an=/^(?:select|textarea)/i;v.fn.extend({serialize:function(){return v.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?v.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||an.test(this.nodeName)||un.test(this.type))}).map(function(e,t){var n=v(this).val();return n==null?null:v.isArray(n)?v.map(n,function(e,n){return{name:t.name,value:e.replace(on,"\r\n")}}):{name:t.name,value:n.replace(on,"\r\n")}}).get()}}),v.param=function(e,n){var r,i=[],s=function(e,t){t=v.isFunction(t)?t():t==null?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};n===t&&(n=v.ajaxSettings&&v.ajaxSettings.traditional);if(v.isArray(e)||e.jquery&&!v.isPlainObject(e))v.each(e,function(){s(this.name,this.value)});else for(r in e)fn(r,e[r],n,s);return i.join("&").replace(rn,"+")};var ln,cn,hn=/#.*$/,pn=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,dn=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,vn=/^(?:GET|HEAD)$/,mn=/^\/\//,gn=/\?/,yn=/)<[^<]*)*<\/script>/gi,bn=/([?&])_=[^&]*/,wn=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,En=v.fn.load,Sn={},xn={},Tn=["*/"]+["*"];try{cn=s.href}catch(Nn){cn=i.createElement("a"),cn.href="",cn=cn.href}ln=wn.exec(cn.toLowerCase())||[],v.fn.load=function(e,n,r){if(typeof e!="string"&&En)return En.apply(this,arguments);if(!this.length)return this;var i,s,o,u=this,a=e.indexOf(" ");return a>=0&&(i=e.slice(a,e.length),e=e.slice(0,a)),v.isFunction(n)?(r=n,n=t):n&&typeof n=="object"&&(s="POST"),v.ajax({url:e,type:s,dataType:"html",data:n,complete:function(e,t){r&&u.each(r,o||[e.responseText,t,e])}}).done(function(e){o=arguments,u.html(i?v("
    ").append(e.replace(yn,"")).find(i):e)}),this},v.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,t){v.fn[t]=function(e){return this.on(t,e)}}),v.each(["get","post"],function(e,n){v[n]=function(e,r,i,s){return v.isFunction(r)&&(s=s||i,i=r,r=t),v.ajax({type:n,url:e,data:r,success:i,dataType:s})}}),v.extend({getScript:function(e,n){return v.get(e,t,n,"script")},getJSON:function(e,t,n){return v.get(e,t,n,"json")},ajaxSetup:function(e,t){return t?Ln(e,v.ajaxSettings):(t=e,e=v.ajaxSettings),Ln(e,t),e},ajaxSettings:{url:cn,isLocal:dn.test(ln[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":Tn},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":e.String,"text html":!0,"text json":v.parseJSON,"text xml":v.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:Cn(Sn),ajaxTransport:Cn(xn),ajax:function(e,n){function T(e,n,s,a){var l,y,b,w,S,T=n;if(E===2)return;E=2,u&&clearTimeout(u),o=t,i=a||"",x.readyState=e>0?4:0,s&&(w=An(c,x,s));if(e>=200&&e<300||e===304)c.ifModified&&(S=x.getResponseHeader("Last-Modified"),S&&(v.lastModified[r]=S),S=x.getResponseHeader("Etag"),S&&(v.etag[r]=S)),e===304?(T="notmodified",l=!0):(l=On(c,w),T=l.state,y=l.data,b=l.error,l=!b);else{b=T;if(!T||e)T="error",e<0&&(e=0)}x.status=e,x.statusText=(n||T)+"",l?d.resolveWith(h,[y,T,x]):d.rejectWith(h,[x,T,b]),x.statusCode(g),g=t,f&&p.trigger("ajax"+(l?"Success":"Error"),[x,c,l?y:b]),m.fireWith(h,[x,T]),f&&(p.trigger("ajaxComplete",[x,c]),--v.active||v.event.trigger("ajaxStop"))}typeof e=="object"&&(n=e,e=t),n=n||{};var r,i,s,o,u,a,f,l,c=v.ajaxSetup({},n),h=c.context||c,p=h!==c&&(h.nodeType||h instanceof v)?v(h):v.event,d=v.Deferred(),m=v.Callbacks("once memory"),g=c.statusCode||{},b={},w={},E=0,S="canceled",x={readyState:0,setRequestHeader:function(e,t){if(!E){var n=e.toLowerCase();e=w[n]=w[n]||e,b[e]=t}return this},getAllResponseHeaders:function(){return E===2?i:null},getResponseHeader:function(e){var n;if(E===2){if(!s){s={};while(n=pn.exec(i))s[n[1].toLowerCase()]=n[2]}n=s[e.toLowerCase()]}return n===t?null:n},overrideMimeType:function(e){return E||(c.mimeType=e),this},abort:function(e){return e=e||S,o&&o.abort(e),T(0,e),this}};d.promise(x),x.success=x.done,x.error=x.fail,x.complete=m.add,x.statusCode=function(e){if(e){var t;if(E<2)for(t in e)g[t]=[g[t],e[t]];else t=e[x.status],x.always(t)}return this},c.url=((e||c.url)+"").replace(hn,"").replace(mn,ln[1]+"//"),c.dataTypes=v.trim(c.dataType||"*").toLowerCase().split(y),c.crossDomain==null&&(a=wn.exec(c.url.toLowerCase()),c.crossDomain=!(!a||a[1]===ln[1]&&a[2]===ln[2]&&(a[3]||(a[1]==="http:"?80:443))==(ln[3]||(ln[1]==="http:"?80:443)))),c.data&&c.processData&&typeof c.data!="string"&&(c.data=v.param(c.data,c.traditional)),kn(Sn,c,n,x);if(E===2)return x;f=c.global,c.type=c.type.toUpperCase(),c.hasContent=!vn.test(c.type),f&&v.active++===0&&v.event.trigger("ajaxStart");if(!c.hasContent){c.data&&(c.url+=(gn.test(c.url)?"&":"?")+c.data,delete c.data),r=c.url;if(c.cache===!1){var N=v.now(),C=c.url.replace(bn,"$1_="+N);c.url=C+(C===c.url?(gn.test(c.url)?"&":"?")+"_="+N:"")}}(c.data&&c.hasContent&&c.contentType!==!1||n.contentType)&&x.setRequestHeader("Content-Type",c.contentType),c.ifModified&&(r=r||c.url,v.lastModified[r]&&x.setRequestHeader("If-Modified-Since",v.lastModified[r]),v.etag[r]&&x.setRequestHeader("If-None-Match",v.etag[r])),x.setRequestHeader("Accept",c.dataTypes[0]&&c.accepts[c.dataTypes[0]]?c.accepts[c.dataTypes[0]]+(c.dataTypes[0]!=="*"?", "+Tn+"; q=0.01":""):c.accepts["*"]);for(l in c.headers)x.setRequestHeader(l,c.headers[l]);if(!c.beforeSend||c.beforeSend.call(h,x,c)!==!1&&E!==2){S="abort";for(l in{success:1,error:1,complete:1})x[l](c[l]);o=kn(xn,c,n,x);if(!o)T(-1,"No Transport");else{x.readyState=1,f&&p.trigger("ajaxSend",[x,c]),c.async&&c.timeout>0&&(u=setTimeout(function(){x.abort("timeout")},c.timeout));try{E=1,o.send(b,T)}catch(k){if(!(E<2))throw k;T(-1,k)}}return x}return x.abort()},active:0,lastModified:{},etag:{}});var Mn=[],_n=/\?/,Dn=/(=)\?(?=&|$)|\?\?/,Pn=v.now();v.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Mn.pop()||v.expando+"_"+Pn++;return this[e]=!0,e}}),v.ajaxPrefilter("json jsonp",function(n,r,i){var s,o,u,a=n.data,f=n.url,l=n.jsonp!==!1,c=l&&Dn.test(f),h=l&&!c&&typeof a=="string"&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Dn.test(a);if(n.dataTypes[0]==="jsonp"||c||h)return s=n.jsonpCallback=v.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,o=e[s],c?n.url=f.replace(Dn,"$1"+s):h?n.data=a.replace(Dn,"$1"+s):l&&(n.url+=(_n.test(f)?"&":"?")+n.jsonp+"="+s),n.converters["script json"]=function(){return u||v.error(s+" was not called"),u[0]},n.dataTypes[0]="json",e[s]=function(){u=arguments},i.always(function(){e[s]=o,n[s]&&(n.jsonpCallback=r.jsonpCallback,Mn.push(s)),u&&v.isFunction(o)&&o(u[0]),u=o=t}),"script"}),v.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(e){return v.globalEval(e),e}}}),v.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),v.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=i.head||i.getElementsByTagName("head")[0]||i.documentElement;return{send:function(s,o){n=i.createElement("script"),n.async="async",e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,i){if(i||!n.readyState||/loaded|complete/.test(n.readyState))n.onload=n.onreadystatechange=null,r&&n.parentNode&&r.removeChild(n),n=t,i||o(200,"success")},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(0,1)}}}});var Hn,Bn=e.ActiveXObject?function(){for(var e in Hn)Hn[e](0,1)}:!1,jn=0;v.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&Fn()||In()}:Fn,function(e){v.extend(v.support,{ajax:!!e,cors:!!e&&"withCredentials"in e})}(v.ajaxSettings.xhr()),v.support.ajax&&v.ajaxTransport(function(n){if(!n.crossDomain||v.support.cors){var r;return{send:function(i,s){var o,u,a=n.xhr();n.username?a.open(n.type,n.url,n.async,n.username,n.password):a.open(n.type,n.url,n.async);if(n.xhrFields)for(u in n.xhrFields)a[u]=n.xhrFields[u];n.mimeType&&a.overrideMimeType&&a.overrideMimeType(n.mimeType),!n.crossDomain&&!i["X-Requested-With"]&&(i["X-Requested-With"]="XMLHttpRequest");try{for(u in i)a.setRequestHeader(u,i[u])}catch(f){}a.send(n.hasContent&&n.data||null),r=function(e,i){var u,f,l,c,h;try{if(r&&(i||a.readyState===4)){r=t,o&&(a.onreadystatechange=v.noop,Bn&&delete Hn[o]);if(i)a.readyState!==4&&a.abort();else{u=a.status,l=a.getAllResponseHeaders(),c={},h=a.responseXML,h&&h.documentElement&&(c.xml=h);try{c.text=a.responseText}catch(p){}try{f=a.statusText}catch(p){f=""}!u&&n.isLocal&&!n.crossDomain?u=c.text?200:404:u===1223&&(u=204)}}}catch(d){i||s(-1,d)}c&&s(u,f,c,l)},n.async?a.readyState===4?setTimeout(r,0):(o=++jn,Bn&&(Hn||(Hn={},v(e).unload(Bn)),Hn[o]=r),a.onreadystatechange=r):r()},abort:function(){r&&r(0,1)}}}});var qn,Rn,Un=/^(?:toggle|show|hide)$/,zn=new RegExp("^(?:([-+])=|)("+m+")([a-z%]*)$","i"),Wn=/queueHooks$/,Xn=[Gn],Vn={"*":[function(e,t){var n,r,i=this.createTween(e,t),s=zn.exec(t),o=i.cur(),u=+o||0,a=1,f=20;if(s){n=+s[2],r=s[3]||(v.cssNumber[e]?"":"px");if(r!=="px"&&u){u=v.css(i.elem,e,!0)||n||1;do a=a||".5",u/=a,v.style(i.elem,e,u+r);while(a!==(a=i.cur()/o)&&a!==1&&--f)}i.unit=r,i.start=u,i.end=s[1]?u+(s[1]+1)*n:n}return i}]};v.Animation=v.extend(Kn,{tweener:function(e,t){v.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;r-1,f={},l={},c,h;a?(l=i.position(),c=l.top,h=l.left):(c=parseFloat(o)||0,h=parseFloat(u)||0),v.isFunction(t)&&(t=t.call(e,n,s)),t.top!=null&&(f.top=t.top-s.top+c),t.left!=null&&(f.left=t.left-s.left+h),"using"in t?t.using.call(e,f):i.css(f)}},v.fn.extend({position:function(){if(!this[0])return;var e=this[0],t=this.offsetParent(),n=this.offset(),r=er.test(t[0].nodeName)?{top:0,left:0}:t.offset();return n.top-=parseFloat(v.css(e,"marginTop"))||0,n.left-=parseFloat(v.css(e,"marginLeft"))||0,r.top+=parseFloat(v.css(t[0],"borderTopWidth"))||0,r.left+=parseFloat(v.css(t[0],"borderLeftWidth"))||0,{top:n.top-r.top,left:n.left-r.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||i.body;while(e&&!er.test(e.nodeName)&&v.css(e,"position")==="static")e=e.offsetParent;return e||i.body})}}),v.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);v.fn[e]=function(i){return v.access(this,function(e,i,s){var o=tr(e);if(s===t)return o?n in o?o[n]:o.document.documentElement[i]:e[i];o?o.scrollTo(r?v(o).scrollLeft():s,r?s:v(o).scrollTop()):e[i]=s},e,i,arguments.length,null)}}),v.each({Height:"height",Width:"width"},function(e,n){v.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){v.fn[i]=function(i,s){var o=arguments.length&&(r||typeof i!="boolean"),u=r||(i===!0||s===!0?"margin":"border");return v.access(this,function(n,r,i){var s;return v.isWindow(n)?n.document.documentElement["client"+e]:n.nodeType===9?(s=n.documentElement,Math.max(n.body["scroll"+e],s["scroll"+e],n.body["offset"+e],s["offset"+e],s["client"+e])):i===t?v.css(n,r,i,u):v.style(n,r,i,u)},n,o?i:t,o,null)}})}),e.jQuery=e.$=v,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return v})})(window); \ No newline at end of file diff --git a/src/main/webapp/js/channel/jquery.crop.js b/src/main/webapp/js/channel/jquery.crop.js new file mode 100644 index 00000000..09d947a0 --- /dev/null +++ b/src/main/webapp/js/channel/jquery.crop.js @@ -0,0 +1,156 @@ +(function(win, $, doc){ + var islteie7 /*@cc_on = (document.documentMode || 7) < 8 @*/, + cropmask = '
    '; + cropmask = '
    ' + ( islteie7 ? cropmask : "" ) + '
    ' + ( islteie7 ? "" : cropmask ) + '
    '; + + $.fn.crop = function(onChange, thumb){ + + var aera = $("
    ").addClass("cropaera").css("position", "relative"), + image = $(this).css("margin", "auto"), + parent = image.parent(); + + if(thumb){ + thumb = $(thumb); + setTimeout(function(){ + thumb.html(""); + thumb.append(image.clone().removeAttr("id").css({ + position: "relative" + })); + setThumb(); + }, 300); + } + + if(parent.hasClass("cropaera")){ + parent.find(".mask_top, .mask_middle, .mask_left, .mask_right").attr("style", ""); + return this; + } + + aera.insertBefore(image); + aera.append(image); + aera.append(cropmask); + + aera.bind("selectstart", function(e){ + e.stopPropagation(); + e.preventDefault(); + return false; + }); + + var drag, + size, + maskbox = aera.find(".cropmask"); + mask = { + bottom: maskbox.find(".mask_bottom"), + middle: maskbox.find(".mask_middle"), + viewport: maskbox.find(".viewport"), + right: maskbox.find(".mask_right"), + left: maskbox.find(".mask_left"), + top: maskbox.find(".mask_top"), + mask: maskbox + }; + + function posint(n){ + return Math.max(n, 0); + } + + function prec(n){ + return Math.round(n * 100) + "%"; + } + + function getSize(){ + return { + aeraHeight: mask.mask.height(), + aeraWidth: mask.mask.width(), + height: mask.middle.height(), + width: mask.viewport.width(), + right: mask.right.width(), + left: mask.left.width(), + top: mask.top.height() + }; + } + + function setThumb(){ + var cropSize = getSize(), + rx = cropSize.aeraWidth / cropSize.width * thumb.width(), + ry = cropSize.aeraHeight / cropSize.height * thumb.height(); + $(thumb.children()).css({ + width: rx, + height: ry, + left: cropSize.left / cropSize.aeraWidth * -rx, + top: cropSize.top / cropSize.aeraHeight * -ry + }); + }; + + var setSize = { + height: function(o) { + mask.middle.height(Math.min(mask.mask.height() - mask.top.height(), posint(size.height + o.y))); + }, + right: function(o) { + mask.right.width(Math.min(mask.mask.width() - mask.left.width(), posint(size.right - o.x))); + }, + left: function(o) { + mask.left.width(Math.min(mask.mask.width() - mask.right.width(), posint(size.left + o.x))); + }, + top: function(o) { + return posint(size.top + o.y); + } + }; + + aera.mousedown(function(e) { + var cursor = $(e.target).css("cursor"); + drag = { + x: e.pageX, + y: e.pageY, + type: cursor.replace(/-resize$/, "") + }; + size = getSize(); + aera.css("cursor", cursor) + mask.mask.addClass("ondrag"); + }) + $(document).bind("mouseup blur",function(e) { + if(drag){ + onChange(getSize()); + } + aera.css("cursor", "") + mask.mask.removeClass("ondrag"); + drag = null; + }).mousemove(function(e) { + if(drag){ + if(thumb){ + setThumb(); + } + var type = drag.type, + offset = { + x: e.pageX - drag.x, + y: e.pageY - drag.y + }; + if(type == "move"){ + if(mask.left.width()){ + setSize.right(offset); + } + if(mask.right.width()){ + setSize.left(offset); + } + + mask.top.height(Math.min(mask.mask.height() - mask.middle.height(), setSize.top(offset))); + } else { + if(/n/.test(type)){ + var top = Math.min(mask.bottom.position().top, setSize.top(offset)); + mask.top.height(top); + mask.middle.height(size.height + size.top - top); + } + if(/w/.test(type)){ + setSize.left(offset); + } + if(/e/.test(type)){ + setSize.right(offset); + } + if(/s/.test(type)){ + setSize.height(offset); + } + } + } + }); + + return this; + }; +})(this, this.jQuery, this.document); diff --git a/src/main/webapp/js/channel/json2.js b/src/main/webapp/js/channel/json2.js new file mode 100644 index 00000000..f0891924 --- /dev/null +++ b/src/main/webapp/js/channel/json2.js @@ -0,0 +1,486 @@ +/* + json2.js + 2012-10-08 + + Public Domain. + + NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK. + + See http://www.JSON.org/js.html + + + This code should be minified before deployment. + See http://javascript.crockford.com/jsmin.html + + USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD CODE FROM SERVERS YOU DO + NOT CONTROL. + + + This file creates a global JSON object containing two methods: stringify + and parse. + + JSON.stringify(value, replacer, space) + value any JavaScript value, usually an object or array. + + replacer an optional parameter that determines how object + values are stringified for objects. It can be a + function or an array of strings. + + space an optional parameter that specifies the indentation + of nested structures. If it is omitted, the text will + be packed without extra whitespace. If it is a number, + it will specify the number of spaces to indent at each + level. If it is a string (such as '\t' or ' '), + it contains the characters used to indent at each level. + + This method produces a JSON text from a JavaScript value. + + When an object value is found, if the object contains a toJSON + method, its toJSON method will be called and the result will be + stringified. A toJSON method does not serialize: it returns the + value represented by the name/value pair that should be serialized, + or undefined if nothing should be serialized. The toJSON method + will be passed the key associated with the value, and this will be + bound to the value + + For example, this would serialize Dates as ISO strings. + + Date.prototype.toJSON = function (key) { + function f(n) { + // Format integers to have at least two digits. + return n < 10 ? '0' + n : n; + } + + return this.getUTCFullYear() + '-' + + f(this.getUTCMonth() + 1) + '-' + + f(this.getUTCDate()) + 'T' + + f(this.getUTCHours()) + ':' + + f(this.getUTCMinutes()) + ':' + + f(this.getUTCSeconds()) + 'Z'; + }; + + You can provide an optional replacer method. It will be passed the + key and value of each member, with this bound to the containing + object. The value that is returned from your method will be + serialized. If your method returns undefined, then the member will + be excluded from the serialization. + + If the replacer parameter is an array of strings, then it will be + used to select the members to be serialized. It filters the results + such that only members with keys listed in the replacer array are + stringified. + + Values that do not have JSON representations, such as undefined or + functions, will not be serialized. Such values in objects will be + dropped; in arrays they will be replaced with null. You can use + a replacer function to replace those with JSON values. + JSON.stringify(undefined) returns undefined. + + The optional space parameter produces a stringification of the + value that is filled with line breaks and indentation to make it + easier to read. + + If the space parameter is a non-empty string, then that string will + be used for indentation. If the space parameter is a number, then + the indentation will be that many spaces. + + Example: + + text = JSON.stringify(['e', {pluribus: 'unum'}]); + // text is '["e",{"pluribus":"unum"}]' + + + text = JSON.stringify(['e', {pluribus: 'unum'}], null, '\t'); + // text is '[\n\t"e",\n\t{\n\t\t"pluribus": "unum"\n\t}\n]' + + text = JSON.stringify([new Date()], function (key, value) { + return this[key] instanceof Date ? + 'Date(' + this[key] + ')' : value; + }); + // text is '["Date(---current time---)"]' + + + JSON.parse(text, reviver) + This method parses a JSON text to produce an object or array. + It can throw a SyntaxError exception. + + The optional reviver parameter is a function that can filter and + transform the results. It receives each of the keys and values, + and its return value is used instead of the original value. + If it returns what it received, then the structure is not modified. + If it returns undefined then the member is deleted. + + Example: + + // Parse the text. Values that look like ISO date strings will + // be converted to Date objects. + + myData = JSON.parse(text, function (key, value) { + var a; + if (typeof value === 'string') { + a = +/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/.exec(value); + if (a) { + return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4], + +a[5], +a[6])); + } + } + return value; + }); + + myData = JSON.parse('["Date(09/09/2001)"]', function (key, value) { + var d; + if (typeof value === 'string' && + value.slice(0, 5) === 'Date(' && + value.slice(-1) === ')') { + d = new Date(value.slice(5, -1)); + if (d) { + return d; + } + } + return value; + }); + + + This is a reference implementation. You are free to copy, modify, or + redistribute. +*/ + +/*jslint evil: true, regexp: true */ + +/*members "", "\b", "\t", "\n", "\f", "\r", "\"", JSON, "\\", apply, + call, charCodeAt, getUTCDate, getUTCFullYear, getUTCHours, + getUTCMinutes, getUTCMonth, getUTCSeconds, hasOwnProperty, join, + lastIndex, length, parse, prototype, push, replace, slice, stringify, + test, toJSON, toString, valueOf +*/ + + +// Create a JSON object only if one does not already exist. We create the +// methods in a closure to avoid creating global variables. + +if (typeof JSON !== 'object') { + JSON = {}; +} + +(function () { + 'use strict'; + + function f(n) { + // Format integers to have at least two digits. + return n < 10 ? '0' + n : n; + } + + if (typeof Date.prototype.toJSON !== 'function') { + + Date.prototype.toJSON = function (key) { + + return isFinite(this.valueOf()) + ? this.getUTCFullYear() + '-' + + f(this.getUTCMonth() + 1) + '-' + + f(this.getUTCDate()) + 'T' + + f(this.getUTCHours()) + ':' + + f(this.getUTCMinutes()) + ':' + + f(this.getUTCSeconds()) + 'Z' + : null; + }; + + String.prototype.toJSON = + Number.prototype.toJSON = + Boolean.prototype.toJSON = function (key) { + return this.valueOf(); + }; + } + + var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, + escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, + gap, + indent, + meta = { // table of character substitutions + '\b': '\\b', + '\t': '\\t', + '\n': '\\n', + '\f': '\\f', + '\r': '\\r', + '"' : '\\"', + '\\': '\\\\' + }, + rep; + + + function quote(string) { + +// If the string contains no control characters, no quote characters, and no +// backslash characters, then we can safely slap some quotes around it. +// Otherwise we must also replace the offending characters with safe escape +// sequences. + + escapable.lastIndex = 0; + return escapable.test(string) ? '"' + string.replace(escapable, function (a) { + var c = meta[a]; + return typeof c === 'string' + ? c + : '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); + }) + '"' : '"' + string + '"'; + } + + + function str(key, holder) { + +// Produce a string from holder[key]. + + var i, // The loop counter. + k, // The member key. + v, // The member value. + length, + mind = gap, + partial, + value = holder[key]; + +// If the value has a toJSON method, call it to obtain a replacement value. + + if (value && typeof value === 'object' && + typeof value.toJSON === 'function') { + value = value.toJSON(key); + } + +// If we were called with a replacer function, then call the replacer to +// obtain a replacement value. + + if (typeof rep === 'function') { + value = rep.call(holder, key, value); + } + +// What happens next depends on the value's type. + + switch (typeof value) { + case 'string': + return quote(value); + + case 'number': + +// JSON numbers must be finite. Encode non-finite numbers as null. + + return isFinite(value) ? String(value) : 'null'; + + case 'boolean': + case 'null': + +// If the value is a boolean or null, convert it to a string. Note: +// typeof null does not produce 'null'. The case is included here in +// the remote chance that this gets fixed someday. + + return String(value); + +// If the type is 'object', we might be dealing with an object or an array or +// null. + + case 'object': + +// Due to a specification blunder in ECMAScript, typeof null is 'object', +// so watch out for that case. + + if (!value) { + return 'null'; + } + +// Make an array to hold the partial results of stringifying this object value. + + gap += indent; + partial = []; + +// Is the value an array? + + if (Object.prototype.toString.apply(value) === '[object Array]') { + +// The value is an array. Stringify every element. Use null as a placeholder +// for non-JSON values. + + length = value.length; + for (i = 0; i < length; i += 1) { + partial[i] = str(i, value) || 'null'; + } + +// Join all of the elements together, separated with commas, and wrap them in +// brackets. + + v = partial.length === 0 + ? '[]' + : gap + ? '[\n' + gap + partial.join(',\n' + gap) + '\n' + mind + ']' + : '[' + partial.join(',') + ']'; + gap = mind; + return v; + } + +// If the replacer is an array, use it to select the members to be stringified. + + if (rep && typeof rep === 'object') { + length = rep.length; + for (i = 0; i < length; i += 1) { + if (typeof rep[i] === 'string') { + k = rep[i]; + v = str(k, value); + if (v) { + partial.push(quote(k) + (gap ? ': ' : ':') + v); + } + } + } + } else { + +// Otherwise, iterate through all of the keys in the object. + + for (k in value) { + if (Object.prototype.hasOwnProperty.call(value, k)) { + v = str(k, value); + if (v) { + partial.push(quote(k) + (gap ? ': ' : ':') + v); + } + } + } + } + +// Join all of the member texts together, separated with commas, +// and wrap them in braces. + + v = partial.length === 0 + ? '{}' + : gap + ? '{\n' + gap + partial.join(',\n' + gap) + '\n' + mind + '}' + : '{' + partial.join(',') + '}'; + gap = mind; + return v; + } + } + +// If the JSON object does not yet have a stringify method, give it one. + + if (typeof JSON.stringify !== 'function') { + JSON.stringify = function (value, replacer, space) { + +// The stringify method takes a value and an optional replacer, and an optional +// space parameter, and returns a JSON text. The replacer can be a function +// that can replace values, or an array of strings that will select the keys. +// A default replacer method can be provided. Use of the space parameter can +// produce text that is more easily readable. + + var i; + gap = ''; + indent = ''; + +// If the space parameter is a number, make an indent string containing that +// many spaces. + + if (typeof space === 'number') { + for (i = 0; i < space; i += 1) { + indent += ' '; + } + +// If the space parameter is a string, it will be used as the indent string. + + } else if (typeof space === 'string') { + indent = space; + } + +// If there is a replacer, it must be a function or an array. +// Otherwise, throw an error. + + rep = replacer; + if (replacer && typeof replacer !== 'function' && + (typeof replacer !== 'object' || + typeof replacer.length !== 'number')) { + throw new Error('JSON.stringify'); + } + +// Make a fake root object containing our value under the key of ''. +// Return the result of stringifying the value. + + return str('', {'': value}); + }; + } + + +// If the JSON object does not yet have a parse method, give it one. + + if (typeof JSON.parse !== 'function') { + JSON.parse = function (text, reviver) { + +// The parse method takes a text and an optional reviver function, and returns +// a JavaScript value if the text is a valid JSON text. + + var j; + + function walk(holder, key) { + +// The walk method is used to recursively walk the resulting structure so +// that modifications can be made. + + var k, v, value = holder[key]; + if (value && typeof value === 'object') { + for (k in value) { + if (Object.prototype.hasOwnProperty.call(value, k)) { + v = walk(value, k); + if (v !== undefined) { + value[k] = v; + } else { + delete value[k]; + } + } + } + } + return reviver.call(holder, key, value); + } + + +// Parsing happens in four stages. In the first stage, we replace certain +// Unicode characters with escape sequences. JavaScript handles many characters +// incorrectly, either silently deleting them, or treating them as line endings. + + text = String(text); + cx.lastIndex = 0; + if (cx.test(text)) { + text = text.replace(cx, function (a) { + return '\\u' + + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); + }); + } + +// In the second stage, we run the text against regular expressions that look +// for non-JSON patterns. We are especially concerned with '()' and 'new' +// because they can cause invocation, and '=' because it can cause mutation. +// But just to be safe, we want to reject all unexpected forms. + +// We split the second stage into 4 regexp operations in order to work around +// crippling inefficiencies in IE's and Safari's regexp engines. First we +// replace the JSON backslash pairs with '@' (a non-JSON character). Second, we +// replace all simple value tokens with ']' characters. Third, we delete all +// open brackets that follow a colon or comma or that begin the text. Finally, +// we look to see that the remaining characters are only whitespace or ']' or +// ',' or ':' or '{' or '}'. If that is so, then the text is safe for eval. + + if (/^[\],:{}\s]*$/ + .test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@') + .replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']') + .replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) { + +// In the third stage we use the eval function to compile the text into a +// JavaScript structure. The '{' operator is subject to a syntactic ambiguity +// in JavaScript: it can begin a block or an object literal. We wrap the text +// in parens to eliminate the ambiguity. + + j = eval('(' + text + ')'); + +// In the optional fourth stage, we recursively walk the new structure, passing +// each name/value pair to a reviver function for possible transformation. + + return typeof reviver === 'function' + ? walk({'': j}, '') + : j; + } + +// If the text is not JSON parseable, then a SyntaxError is thrown. + + throw new SyntaxError('JSON.parse'); + }; + } +}()); \ No newline at end of file diff --git a/src/main/webapp/js/colorbox/README.md b/src/main/webapp/js/colorbox/README.md new file mode 100644 index 00000000..cc18ca0d --- /dev/null +++ b/src/main/webapp/js/colorbox/README.md @@ -0,0 +1,572 @@ +## About Colorbox: +A customizable lightbox plugin for jQuery. See the [project page](http://jacklmoore.com/colorbox/) for documentation and a demonstration, and the [FAQ](http://jacklmoore.com/colorbox/faq/) for solutions and examples to common issues. Released under the [MIT license](http://www.opensource.org/licenses/mit-license.php). + +## Changelog: + +### Version 1.5.8 - 2014/4/15 + +* Fixed accidental leak of global variable. References #591 +* Enabled strict mode. Fixes #597 + +### Version 1.5.7 - 2014/4/15 + +* Fix potential error when calling Colorbox directly. References #591 +* Potentially worked around browser limitation of reporting that an image height and width is 0 immediately after onload. Fixes #535 + +### Version 1.5.6 - 2014/4/4 + +* Applied maxWidth and maxHeight to the initialWidth and initialHeight. Fixes #391 + +### Version 1.5.5 - 2014/3/13 + +* Allow setting the overlay opacity through CSS, rather than having to use Colorbox's opacity property. Fixes #580 + +### Version 1.5.4 - 2014/3/7 + +* Fixed potential issue where IE9+ wouldn't close the modal when clicking on the overlay. Fixes #576 + +### Version 1.5.3 - 2014/3/4 + +* Added access to settings object in callbacks. + +### Version 1.5.2 - 2014/2/28 + +* Added svg to image types regex. + +### Version 1.5.1 - 2014/2/27 + +* Fixed regression that broke direct calls to Colorbox, ie. $.colorbox(…) + +### Version 1.5.0 - 2014/2/27 + +* Changed when the className is applied: immediately on open, but only updated immediately prior to transition. Fixes #565 +* Fixed potential style flash if #cboxLoadedContent is given a background. Fixes #567 +* Misc. code cleanup + +### Version 1.4.37 - 2014/2/11 + +* Fixed potential error when resizing. Fixes #254 +* Added Microsoft's JPEG XR to photo detection regex. + +### Version 1.4.33 - 2013/10/31 + +* Fixed an issue where private events propagated to the document in versions of jQuery prior to 1.7. Fixes #525, Fixes #526 + +### Version 1.4.32 - 2013/10/16 + +* Updated stylesheets to avoid issue with using `div {max-width:100%}` (Fixes #520) + +### Version 1.4.31 - 2013/9/25 + +* Used setAttribute to set londesc, so that the value is accessible via DOM Node longDesc property #508 + +### Version 1.4.30 - 2013/9/24 + +* Added longdesc and aria-describedby attributes to photos. Fixes #508 + +### Version 1.4.29 - 2013/9/10 + +* Fixed a slideshow regression from 1.4.27 +* Fixed a potential issue with the starting size of #cboxLoadedContent + +### Version 1.4.28 - 2013/9/4 + +* Fixed a potential issue with using the open property with mixed slideshow and non-slideshow groups + +### Version 1.4.27 - 2013/7/16 + +* Fixed a width calculation issue relating to using margin:auto on #cboxLoadedContent. + +### Version 1.4.26 - 2013/6/30 + +* Fixed a regression in IE7 and IE8 that was causing an error. + +### Version 1.4.25 - 2013/6/28 + +* Use an animation speed of zero between same-sized content (fixed). +* Removed temporary fix for jQuery UI 1.8 + +### Version 1.4.24 - 2013/6/24 + +* Added closeButton option. Set to false to remove the close button. + +### Version 1.4.23 - 2013/6/23 + +* Bugfix loading overlay/graphic append order + +### Version 1.4.22 - 2013/6/19 + +* Updated manifest files for the jQuery plugin repository and Bower (no changes to plugin) + +### Version 1.4.21 - 2013/6/6 + +* Replaced new Image() with document.createElement('img') to avoid a potential bug in Chrome 27. + +### Version 1.4.20 - 2013/6/5 + +* Fixing bug/typo from last update. + +### Version 1.4.19 - 2013/6/3 + +* Fixed bug where Colorbox was capturing ctrl+click on assigned links on windows browsers with jQuery 1.7+, rather than ignoring. + +### Version 1.4.18 - 2013/5/30 + +* Fixed a scroll position issue when using $.colorbox.resize() + +### Version 1.4.17 - 2013/5/23 + +* Possible fix for a Chrome 27 issue (https://github.com/jackmoore/colorbox/pull/438#issuecomment-18334804) + +### Version 1.4.16 - 2013/5/20 + +* Added trapFocus setting to allow disabling of focus trapping + +### Version 1.4.15 - 2013/4/22 + +* Added .webp to list of recognized image extensions + +### Version 1.4.14 - 2013/4/16 + +* Added fadeOut property to control the closing fadeOut speed. +* Removed longdesc attribute for now. + +### Version 1.4.13 - 2013/4/11 + +* Fixed an error involving IE7/IE8 and legacy versions of jQuery + +### Version 1.4.12 - 2013/4/9 + +* Fixed a potential conflict with Twitter Bootstrap default img styles. + +### Version 1.4.11 - 2013/4/9 + +* Added `type='button'` to buttons to prevent accidental form submission +* Added alt and longdesc attributes to photo content if they are present on the calling element. + +### Version 1.4.10 - 2013/4/2 + +* Better 'old IE' feature detection that fixes an error with jQuery 2.0.0pre. + +### Version 1.4.9 - 2013/4/2 + +* Fixes bug introduced in previous version. + +### Version 1.4.8 - 2013/4/2 + +* Dropped IE6 support. +* Fixed other issues with $.colorbox.remove. + +### Version 1.4.7 - 2013/4/1 + +* Prevented an error if $.colorbox.remove is called during the transition. + +### Version 1.4.6 - 2013/3/19 + +* Minor change to work around a jQuery 1.4.2 bug for legacy users. + +### Version 1.4.5 - 2013/3/10 + +* Minor change to apply the close and className properties sooner. + +### Version 1.4.4 - 2013/3/10 + +* Fixed an issue with percent-based heights in iOS +* Fixed an issue with ajax requests being applied at the wrong time. + +### Version 1.4.3 - 2013/2/18 + +* Made image preloading aware of retina settings. + +### Version 1.4.2 - 2013/2/18 + +* Removed $.contains for compatibility with jQuery 1.3.x + +### Version 1.4.1 - 2013/2/14 + +* Ignored left and right arrow keypresses if combined with the alt key. + +### Version 1.4.0 - 2013/2/12 + +* Better accessibility: + * Replaced div controls with buttons + * Tabbed navigation confined to modal window + * Added aria role + +### Version 1.3.34 - 2013/2/4 + +* Updated manifest for plugins.jquery.com + +### Version 1.3.33 - 2013/2/4 + +* Added retina display properties: retinaImage, retinaUrl, retinaSuffix +* Fixed iframe scrolling on iOS devices. + +### Version 1.3.32 - 2013/1/31 + +* Improved internal event subscribing & fixed event bug introduced in v1.3.21 + +### Version 1.3.31 - 2013/1/28 + +* Fixed a size-calculation bug introduced in the previous commit. + +### Version 1.3.30 - 2013/1/25 + +* Delayed border-width calculations until after opening, to avoid a bug in FF when using Colorbox in a hidden iframe. + +### Version 1.3.29 - 2013/1/24 + +* Fixes bug with bubbling delegated events, introduced in the previous commit. + +### Version 1.3.28 - 2013/1/24 + +* Fixed compatibility issue with old versions of jQuery (1.3.2-1.4.2) + +### Version 1.3.27 - 2013/1/23 + +* Added className property. + +### Version 1.3.26 - 2013/1/23 + +* Minor bugfix: clear the onload event handler after photo has loaded. + +### Version 1.3.25 - 2013/1/23 + +* Removed grunt file & added Bower component.json. + +### Version 1.3.24 - 2013/1/22 + +* Added generated files (jquery.colorbox.js / jquery.colorbox-min.js) back to the repository. + +### Version 1.3.23 - 2013/1/18 + +* Minor bugfix for calling Colorbox on empty jQuery collections without a selector. + +### Version 1.3.22 - 2013/1/17 + +* Recommit for plugins.jquery.com + +### Version 1.3.21 - 2013/1/15 +Files Changed: *.js + +* Fixed compatibility issues with jQuery 1.9 + +### Version 1.3.20 - August 15 2012 +Files Changed:jquery.colorbox.js + +* Added temporary workaround for jQuery-UI 1.8 bug (http://bugs.jquery.com/ticket/12273) +* Added *.jpe extension to the list of image types. + +### Version 1.3.19 - December 08 2011 +Files Changed:jquery.colorbox.js, colorbox.css (all) + +* Fixed bug related to using the 'fixed' property. +* Optimized the setup procedure to be more efficient. +* Removed $.colorbox.init() as it will no longer be needed (will self-init when called). +* Removed use of $.browser. + +### Version 1.3.18 - October 07 2011 +Files Changed:jquery.colorbox.js/jquery.colorbox-min.js, colorbox.css (all) and example 1's controls.png + +* Fixed a regression where Flash content displayed in Colorbox would be reloaded if the browser window was resized. +* Added safety check to make sure that Colorbox's markup is only added to the DOM a single time, even if $.colorbox.init() is called multiple times. This will allow site owners to manually initialize Colorbox if they need it before the DOM has finished loading. +* Updated the example index.html files to be HTML5 compliant. +* Changed the slideshow behavior so that it immediately moves to the next slide when the slideshow is started. +* Minor regex bugfix to allow automatic detection of image URLs that include fragments. + +### Version 1.3.17 - May 11 2011 +Files Changed:jquery.colorbox.js/jquery.colorbox-min.js + +* Added properties "top", "bottom", "left" and "right" to specify a position relative to the viewport, rather than using the default centering. +* Added property "data" to specify GET or POST data when using Ajax. Colorbox's ajax functionality is handled by jQuery's .load() method, so the data property works the same way as it does with .load(). +* Added property "fixed" which can provide fixed positioning for Colorbox, rather than absolute positioning. This will allow Colorbox to remain in a fixed position within the visitors viewport, despite scrolling. IE6 support for this was not added, it will continue to use the default absolute positioning. +* Fixed ClearType problem with IE7. +* Minor fixes. + +### Version 1.3.16 - March 01 2011 +Files Changed:jquery.colorbox.js/jquery.colorbox-min.js, colorbox.css (all) and example 4 background png files + +* Better IE related transparency workarounds. IE7 and up now uses the same background image sprite as other browsers. +* Added error handling for broken image links. A message will be displayed telling the user that the image could not be loaded. +* Added new property: 'fastIframe' and set it to true by default. Setting to fastIframe:false will delay the loading graphic removal and onComplete event until iframe has completely loaded. +* Ability to redefine $.colorbox.close (or prev, or next) at any time. + +### Version 1.3.15 - October 27 2010 +Files Changed: jquery.colorbox.js/jquery.colorbox-min.js + +* Minor fixes for specific cases. + +### Version 1.3.14 - October 27 2010 +Files Changed: jquery.colorbox.js/jquery.colorbox-min.js + +* In IE6, closing an iframe when using HTTPS no longer generates a security warning. + +### Version 1.3.13 - October 22 2010 +Files Changed: jquery.colorbox.js/jquery.colorbox-min.js + +* Changed the index.html example files to use YouTube's new embedded link format. +* By default, Colorbox returns focus to the element it was launched from once it closes. This can now be disabled by setting the 'returnFocus' property to false. Focus was causing problems for some users who had their anchor elements inside animated containers. +* Minor bug fix involved in using a combination of slideshow and non-slideshow content. + +### Version 1.3.12 - October 20 2010 +Files Changed: jquery.colorbox.js/jquery.colorbox-min.js + +* Minor bug fix involved in preloading images when using a function as a value for the href property. + +### Version 1.3.11 - October 19 2010 +Files Changed: jquery.colorbox.js/jquery.colorbox-min.js + +* Fixed the slideshow functionality that broke with 1.3.10 +* The slideshow now respects the loop property. + +### Version 1.3.10 - October 16 2010 +Files Changed: jquery.colorbox.js/jquery.colorbox-min.js + +* Fixed compatibility with jQuery 1.4.3 +* The 'open' property now accepts a function as a value, like all of the other properties. +* Preloading now loads the correct href for images when using a dynamic (function) value for the href property. +* Fixed bug in Safari 3 for Win where Colorbox centered on the document, rather than the visitor's viewport. +* May have fixed an issue in Opera 10.6+ where Colorbox would rarely/randomly freeze up while switching between photos in a group. +* Some functionality better encapsulated & minor performance improvements. + +### Version 1.3.9 - July 7 2010 +Files Changed: jquery.colorbox.js/jquery.colorbox-min.js/ all colorbox.css (the core styles) + +* Fixed a problem where iframed youtube videos would cause a security alert in IE. +* More code is event driven now, making the source easier to grasp. +* Removed some unnecessary style from the core CSS. + +### Version 1.3.8 - June 21 2010 +Files Changed: jquery.colorbox.js/jquery.colorbox-min.js + +* Fixed a bug in Chrome where it would sometimes render photos at 0 by 0 width and height (behavior introduced in recent update to Chrome). +* Fixed a bug where the onClosed callback would fire twice (only affected 1.3.7). +* Fixed a bug in IE7 that existed with some iframed websites that use JS to reposition the viewport caused Colorbox to move out of position. +* Abstracted the identifiers (HTML ids & classes, and JS plugin name, method, and events) so that the plugin can be easily rebranded. +* Small changes to improve either code readability or compression. + +### Version 1.3.7 - June 13 2010 +Files Changed: jquery.colorbox.js/jquery.colorbox-min.js/index.html + +* $.colorbox can now be used for direct calls and accessing public methods. Example: $.colorbox.close(); +* Resize now accepts 'width', 'innerWidth', 'height' and 'innerHeight'. Example: $.colorbox.resize({width:"100%"}) +* Added option (loop:false) to disable looping in a group. +* Added options (escKey:false, arrowKey:false) to disable esc-key and arrow-key bindings. +* Added method for removing Colorbox from a document: $.colorbox.remove(); +* Fixed a bug where iframed URLs would be truncated if they contained an unencoded apostrophe. +* Now uses the exact href specified on an anchor, rather than the version returned by 'this.href'. This was causing "#example" to be normalized to "http://domain/#example" which interfered with how some users were setting up links to inline content. +* Changed example documents over to HTML5. + +### Version 1.3.6 - Jan 13 2010 +Files Changed: jquery.colorbox.js/jquery.colorbox-min.js + +* Small change to make Colorbox compatible with jQuery 1.4 + +### Version 1.3.5 - December 15 2009 +Files Changed: jquery.colorbox.js/jquery.colorbox-min.js + +* Fixed a bug introduced in 1.3.4 with IE7's display of example 2 and 3, and auto-width in Opera. +* Fixed a bug introduced in 1.3.4 where colorbox could not be launched by triggering an element's click event through JavaScript. +* Minor refinements. + +### Version 1.3.4 - December 5 2009 +Files Changed: jquery.colorbox.js/jquery.colorbox-min.js + +* Event delegation is now used for elements that Colorbox is assigned to, rather than individual click events. +* Additional callbacks have been added to represent other stages of Colorbox's lifecycle. Available callbacks, in order of their execution: onOpen, onLoad, onComplete, onCleanup, onClosed These take place at the same time as the event hooks, but will be better suited than the hooks for targeting specific instances of Colorbox. +* Ajax content is now immediately added to the DOM to be more compatible if that content contains script tags. +* Focus is now returned to the calling element on closing. +* Fixed a bug where maxHeight and maxWidth did not work for non-photo content. +* Direct calls no longer need 'open:true', it is assumed. Example: `$.colorbox({html:'

    Hi

    '});` + +### Version 1.3.3 - November 7 2009 +Files Changed: jquery.colorbox.js/jquery.colorbox-min.js + +* Changed $.colorbox.element() to return a jQuery object rather the DOM element. +* jQuery.colorbox-min.js is compressed with Google's Closure Compiler rather than YUI Compressor. + +### Version 1.3.2 - October 27 2009 +Files Changed: jquery.colorbox.js/jquery.colorbox-min.js + +* Added 'innerWidth' and 'innerHeight' options to allow people to easily set the size dimensions for Colorbox, without having to anticipate the size of the borders and buttons. +* Renamed 'scrollbars' option to 'scrolling' to be in keeping with the existing HTML attribute. The option now also applies to iframes. +* Bug fix: In Safari, positioning occassionally incorrect when using '100%' dimensions. +* Bug fix: In IE6, the background overlay is briefly not full size when first viewing. +* Bug fix: In Firefox, opening Colorbox causes a split second shift with a small minority of webpage layouts. +* Simplified code in a few areas. + +### Version 1.3.1 - September 16 2009 +Files Changed: jquery.colorbox.js/jquery.colorbox-min.js/colorbox.css/colorbox-ie.css(removed) + +* Removed the IE-only stylesheets and conditional comments for example styles 1 & 4. All CSS is handled by a single CSS file for all examples. +* Removed user-agent sniffing from the js and replaced it with feature detection. This will allow correct rendering for visitors masking their agent type. + +### Version 1.3.0 - September 15 2009 +Files Changed: jquery.colorbox.js/jquery.colorbox-min.js/colorbox.css + +* Added $.colorbox.resize() method to allow Colorbox to resize it's height if it's contents change. +* Added 'scrollbars' option to allow users to turn off scrollbars when using the resize() method. +* Renamed the 'resize' option to be less ambiguous. It's now 'scalePhotos'. +* Renamed the 'cbox_close' event to be less ambiguous. It's now 'cbox_cleanup'. It is the first thing to happen in the close method while the 'cbox_closed' event is the last to happen. +* Fixed a bug with the slideshow mouseover graphics that appeared after Colorbox is opened a 2nd time. +* Fixed a bug where ClearType may not work in IE6&7 if using the fade transition. +* Minor code optimizations to increase compression. + +### Version 1.2.9 - August 7 2009 +Files Changed: jquery.colorbox.js/jquery.colorbox-min.js + +* Minor change to enable use with $.getScript(); +* Minor change to the timing of the 'cbox_load' event so that it is more useful. +* Added a direct link to a YouTube video to the examples. + +### Version 1.2.8 - August 5 2009 +Files Changed: jquery.colorbox.js/jquery.colorbox-min.js + +* Fixed a bug with the overlay in IE6 +* Fixed a bug where left & right keypress events might be prematurely unbound. + +### Version 1.2.7 - July 31 2009 +Files Changed: jquery.colorbox.js/jquery.colorbox-min.js, example stylesheets and background images (core styles have not changed and the updates will not affect existing user themes / old example themes) + +* Code cleanup and reduction, better organization and documentation in the full source. +* Added ability to use functions in place of static values for Colorbox's options (thanks Ken!). +* Added an option for straight HTML. Example: `$.colorbox({html:'

    Howdy

    ', open:true})` +* Added an event for the beginning of the closing process. This is in addition to the event that already existed for when Colorbox had completely closed. 'cbox_close' and 'cbox_closed' respectively. +* Fixed a minor bug in IE6 that would cause a brief content shift in the parent document when opening Colorbox. +* Fixed a minor bug in IE6 that would reveal select elements that had a hidden visibility after closing Colorbox. +* The 'esc' key is unbound now when Colorbox is not open, to avoid any potential conflicts. +* Used background sprites for examples 1 & 4. Put IE-only (non-sprite) background images in a separate folder. +* Example themes 1, 3, & 4 received slight visual tweaks. +* Optimized pngs for smaller file size. +* Added slices, grid, and correct sizing to the Adobe Illustrator file, all theme files are now export ready! + +### Version 1.2.6 - July 15 2009 +Files Changed: jquery.colorbox.js/jquery.colorbox-min.js + +* Fixed a bug with fixed width/height images in Opera 9.64. +* Fixed a bug with trying to set a value for rel during a direct call to Colorbox. Example: `$.colorbox({rel:'foo', open:true});` +* Changed how href/rel/title settings are determined to avoid users having to manually update Colorbox settings if they use JavaScript to update any of those attributes, after Colorbox has been defined. +* Fixed a FF3 bug where the back button was disabled after closing an iframe. + +### Version 1.2.5 - June 23 2009 +Files Changed: jquery.colorbox.js/jquery.colorbox-min.js + +* Changed the point at which iframe srcs are set (to eliminate the need to refresh the iframe once it has been added to the DOM). +* Removed unnecessary return values for a very slight code reduction. + +### Version 1.2.4 - June 9 2009 +Files Changed: jquery.colorbox.js, jquery.colorbox-min.js + +* Fixed an issue where Colorbox may not close completely if it is closed during a transition animation. +* Minor code reduction. + +### Version 1.2.3 - June 4 2009 +* Fixed a png transparency stacking issue in IE. +* More accurate Ajax auto-sizing if the user was depending on the #cboxLoadedContent ID for CSS styling. +* Added a public function for returning the current html element that Colorbox is associated with. Example use: var that = $.colorbox.element(); +* Added bicubic scaling for resized images in the original IE7. +* Removed the IE6 stylesheet and png files from Example 3. It now uses the same png file for the controls that the rest of the browsers use (an alpha transparency PNG8). This example now only has 2 graphics files and 1 stylesheet. + +### Version 1.2.2 - May 28 2009 +* Fixed an issue with the 'resize' option. + +### Version 1.2.1 - May 28 2009 +* Note: If you are upgrading, update your jquery.colorbox.js and colorbox.css files. +* Added photo resizing. +* Added a maximum width and maximum height. Example: {height:800, maxHeight:'100%'}, would allow the box to be a maximum potential height of 800px, instead of a fixed height of 800px. With maxHeight of 100% the height of Colorbox cannot exceed the height of the browser window. +* Added 'rel' setting to add the ability to set an alternative rel for any Colorbox call. This allows the user to group any combination of elements together for a gallery, or to override an existing rel. attribute so those element are not grouped together, without having to alter their rel in the HTML. +* Added a 'photo' setting to force Colorbox to display a link as a photo. Use this when automatic photo detection fails (such as using a url like 'photo.php' instead of 'photo.jpg', 'photo.jpg#1', or 'photo.jpg?pic=1') +* Removed the need to ever create disposable elements to call colorbox on. Colorbox can now be called directly, without being associated with any existing element, by using the following format: + `$.colorbox({open:true, href:'yourLink.xxx'});` +* Colorbox settings are now persistent and unique for each element. This allows for extremely flexible options for individual elements. You could use this to create a gallery in which each page in the gallery has different settings. One could be a photo with a fade transition, next could be an inline element with an elastic transition with a set width and height, etc. +* For user callbacks, 'this' now refers to the element colorbox was opened from. +* Fixed a minor grouping issue with IE6, when transition type is set to 'none'. +* Added an Adobe Illustrator file that contains the borders and buttons used in the various examples. + +### Version 1.2 - May 13 2009 +* Added a slideshow feature. +* Added re-positioning on browser resize. If the browser is resized, Colorbox will recenter itself onscreen. +* Added hooks for key events: cbox_open, cbox_load, cbox_complete, cbox_closed. +* Fixed an IE transparency-stacking problem, where transparent PNGs would show through to the background overlay. +* Fixed an IE iframe issue where the ifame might shift up and to the left under certain circumstances. +* Fixed an IE6 bug where the loading overlay was not at full height. +* Removed the delay in switching between same-sized gallery content when using transitions. +* Changed how iframes are loaded to make it more compatible with iframed pages that use DOM dependent JavaScript. +* Changed how the JS is structured to be better organized and increase compression. Increased documentation. +* Changed CSS :hover states to a .hover class. This sidesteps a minor IE8 bug with css hover states and allows easier access to hover state user styles from the JavaScript. +* Changed: elements added to the DOM have new ID's. The naming is more consistent and less likely to cause conflicts with existing website stylesheets. All stylesheets have been updated. +* Changed the behavior for prev/next links so that Colorbox does not get hung up on broken links. A visitor can now skip through broken or long-loading links by clicking prev/next buttons. +* Changed the naming of variables in the parameter map to be more concise and intuitive. +* Removed colorbox.css. Combined the colorbox.css styles with jquery.colorbox.js: the css file was not large enough to warrant being a separate file. + +### Version 1.1.6 - April 28 2009 +* Prevented the default action of the next & previous anchors and the left and right keys for gallery mode. +* Fixed a bug where the title element was being added back to the DOM when closing Colorbox while using inline content. +* Fixed a bug where IE7 would crash for example 2. +* Smaller filesize: removed a small amount of unused code and rewrote the HTML injection with less syntax. +* Added a public method for closing Colorbox: $.colorbox.close(). This will allow iframe users to add an event to close Colorbox without having to create an additional function. + +### Version 1.1.5 - April 11 2009 +* Fixed minor issues with exiting Colorbox. + +### Version 1.1.4 - April 08 2009 +* Fixed a bug in the fade transition where Colorbox not close completely if instructed to close during the fade-in portion of the transition. + +### Version 1.1.3 - April 06 2009 +* Fixed an IE6&7 issue with using Colorbox to display animated GIFs. + +### Version 1.1.2 - April 05 2009 +* Added ability to change content when Colorbox is already open. +* Added vertical photo centering now works for all browsers (this feature previously excluded IE6&7). +* Added namespacing to the esc-key keydown event for people who want to disable it: "keydown.colorClose" +* Added 'title' setting to add the ability to set an alternative title for any Colorbox call. +* Fixed rollover navigation issue with IE8. (Added JS-based rollover state due to a browser-bug.) +* Fixed an overflow issue for when the fixed width/height is smaller than the size of a photo. +* Fixed a bug in the fade transition where the border would still come up if Colorbox was closed mid-transition. +* Switch from JSMin to Yui Compressor for minification. Minified code now under 7KB. + +### Version 1.1.1 - March 31 2009 +* More robust image detection regex. Now detects image file types with url fragments and/or query strings. +* Added 'nofollow' exception to rel grouping. +* Changed how images are loaded into the DOM to prevent premature size calculation by Colorbox. +* Added timestamp to iframe name to prevent caching - this was a problem in some browsers if the user had multiple iframes and the visitor left the page and came back, or if they refreshed the page. + +### Version 1.1.0 - March 21 2009 +* Animation is now much smoother and less resource intensive. +* Added support for % sizing. +* Callback option added. +* Inline content now preserves JavaScript events, and changes made while Colorbox is open are also preserved. +* Added 'href' setting to add the ability to set an alternative href for any anchor, or to assign the Colorbox event to non-anchors. + Example: $('button').colorbox({'href':'process.php'}) + Example: $('a[href='http://msn.com']).colorbox({'href':'http://google.com', iframe:true}); +* Photos are now horizontally centered if they are smaller than the lightbox size. Also vertically centered for browsers newer than IE7. +* Buttons in the examples are now included in the 'protected zone'. The lightbox will never expand it's borders or buttons beyond an accessible area of the screen. +* Keypress events don't queue up by holding down the arrow keys. +* Added option to close Colorbox by clicking on the background overlay. +* Added 'none' transition setting. +* Changed 'contentIframe' and 'contentInline' to 'inline' and 'iframe'. Removed 'contentAjax' because it is automatically assumed for non-image file types. +* Changed 'contentWidth' and 'contentHeight' to 'fixedWidth' and 'fixedHeight'. These sizes now reflect the total size of the lightbox, not just the inner content. This is so users can accurately anticipate % sizes without fear of creating scrollbars. +* Clicking on a photo will now switch to the next photo in a set. +* Loading.gif is more stable in it's position. +* Added a minified version. +* Code passes JSLint. + +### Version 1.0.5 - March 11 2009 +* Redo: Fixed a bug where IE would cut off the bottom portion of a photo, if the photo was larger than the document dimensions. + +### Version 1.0.4 - March 10 2009 +* Added an option to allow users to automatically open the lightbox. Example usage: $(".colorbox").colorbox({open:true}); +* Fixed a bug where IE would cut off the bottom portion of a photo, if the photo was larger than the document dimensions. + +### Version 1.0.3 - March 09 2009 +* Fixed vertical centering for Safari 3.0.x. + +### Version 1.0.2 - March 06 2009 +* Corrected a typo. +* Changed the content-type check so that it does not assume all links to photos should actually display photos. This allows for Ajax/inline/and iframe calls on anchors linking to picture file types. + +### Version 1.0.1 - March 05 2009 +* Fixed keydown events (esc, left arrow, right arrow) for Webkit browsers. + +### Version 1.0 - March 03 2009 +* First release diff --git a/src/main/webapp/js/colorbox/bower.json b/src/main/webapp/js/colorbox/bower.json new file mode 100644 index 00000000..71ea8bf6 --- /dev/null +++ b/src/main/webapp/js/colorbox/bower.json @@ -0,0 +1,41 @@ +{ + "name": "jquery-colorbox", + "description": "jQuery lightbox and modal window plugin", + "version": "1.5.8", + "dependencies": { + "jquery": ">=1.3.2" + }, + "keywords": [ + "modal", + "lightbox", + "window", + "popup", + "ui", + "jQuery" + ], + "authors": [ + { + "name": "Jack Moore", + "url": "http://www.jacklmoore.com", + "email": "hello@jacklmoore.com" + } + ], + "licenses": [ + { + "type": "MIT", + "url": "http://www.opensource.org/licenses/mit-license.php" + } + ], + "homepage": "http://www.jacklmoore.com/colorbox", + "main": "jquery.colorbox.js", + "ignore": [ + "colorbox.jquery.json", + "colorbox.ai", + "content", + "example1/index.html", + "example2/index.html", + "example3/index.html", + "example4/index.html", + "example5/index.html" + ] +} \ No newline at end of file diff --git a/src/main/webapp/js/colorbox/colorbox.ai b/src/main/webapp/js/colorbox/colorbox.ai new file mode 100644 index 00000000..1b51881a --- /dev/null +++ b/src/main/webapp/js/colorbox/colorbox.ai @@ -0,0 +1,1811 @@ +%PDF-1.4 % +1 0 obj <> endobj 2 0 obj <>stream + + + + + application/vnd.adobe.illustrator + + + colorbox + + + + + Adobe Illustrator CS4 + 2009-05-27T04:22:39-04:00 + 2009-07-30T21:43:35-05:00 + 2009-07-30T21:43:35-05:00 + + + + 208 + 256 + JPEG + /9j/4AAQSkZJRgABAgEBLAEsAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABABLAAAAAEA AQEsAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAADQAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7 FXYq7FXYq7FXYq7FXnn5b+fNd85T6us6W9jHpkiRL6KOzOzl9zzagACdMVZt9U1D/lt/5Jr/AFxV gf5ZfmZrHmfzJrei39vBGNIaSNbiEODIYpjFUqzNStK4q9JxV2KuxV2KuxV2KuxV2KuxV2KvG/Pf 5jfmBY/mDL5Z8twpdMyRNb2/pKzktEHf4jTYbmpxVQ/xJ/zkV/1Y1/4G3/6qYqh9G/ND8zYvPml+ WvMdtHZSXcsXqwtEgYwyEjkjKSCDQioPXFXueKvBB+aX5r6n5k1HSdAtI717OSX4EiT4Y0fiCzOV H44qmH+JP+civ+rGv/A2/wD1UxVd5F/Nbzde6/qVh5lMVnHpcEj3aNGIzG0TANyPgBiqbeU/z18v eZdcl0izkZZ2kZLEPEw9aONOTS1pRQTUKCa+OKqdh+fvlm882Dy+kzAycYoLkxsFN16jRtbsCOuy lWFVNaVr1VRfnv8AN5/Jt9AmpWLvp1zbyPBexFWrcx7iEx1BFV/aO340VR+r/mFqWj+Sl8x6lYGG aOOGS808MrPH6jKHVW2VivLbpX2xVMtC8622vaLFq+lzLPaTKxRuJHxLUMpBoQQRirDfIf5y6x5n 1DSrWaxhtl1HT7i/dkZmKmC7a2CCoHXjyriqH/5x3/vvNf8AzFQ/rmxV7Lirwb8hv/JkedP+M9z/ ANRhxV7zirsVdirsVdirsVdirsVdirsVeNSf+tKx/wDMKf8AqDOKvZcVeHfmF/60T5T/AOYO0/6i 7nFXuOKvDvyS/wDJleb/AJN/1EHFXuOKvCPKoB/O/wA3AioLSgg/OPFWbeXvLflPTby/m0e1gjnl n5XRjCnhLxHJVP7O1KqPn1OKtQ+W/KaebH1VLaAa4LZVQhVBWIu9XVRtyZmYM3XtiqC8x+VvI2q6 79Y19I7m7WzkRbe5c+mkBPxyIhPFH/yx8W3XbFVeXQvK8/km20meQyeX1jgQPJI3xRqylQ7k1AOw O+2Kp/bWdpb2iWtpEkNsiCOKKIBVVQOICgbAAbDFWE+SPKfkrTL7TZ9Eu7i4ltrCeCzEtaNbPdM8 jtVE3EzFR0+XfFVH/nHf++81/wDMVD+ubFXsuKvBvyG/8mR50/4z3P8A1GHFXvOKuxV2KuxV2Kux V2KuxV2KuxV4tfgH/nISYHcfUl/6h1xV6LwT+Ufdil5J5sAH/OQPlWgp/o1r0/5ibjFD3/FXg/5T gHzt5xqK/vk6/wDGWbFXqnBP5R92KXlnlqJJPzo80xNUI8AU8SVNDFCNitCD7jFDLfL3kW10fUZL xLiWQh2MKsduDClHH7RB74qttvIVnD5iGrfWZSqfvEj5GplZmJJbrwoR8Pfvttiqt5q8pyeYJ4Vl uBDawRuU4oDJ6zbAlj+xtuBT5+CqM1DRrrUPLf6LnlRJ5I40mljWiAggsVTbw2GKo3SNNg0uwgso Gd4oBRWkYsx+k/qG2KpD5W8sajpU1k9y0TC3spraT02J+OS5MwIqo24/jiqS/wDOO/8Afea/+YqH 9c2KvZcVeDfkN/5Mjzp/xnuf+ow4q95xV2KuxV2KuxV2KuxV2KuxV2KvA/OPmPTvL356y6jqJZbM W0cUsiKXKc4AAxUbkA9ab4qyL/ldX5a/9XZv+kW7/wCqWKsFm8z6R5m/PLy5qGkO81lALa19Z0aM O6yySEqrgNQeqBuBvXtvir6UxV81eTfOmheWPPHmY6zI8EF5MwjnVHkUNFK54ssYZvi57bYqzv8A 5XV+Wv8A1dm/6Rbv/qlirFfy41m11v8ANXXtVtAwtbqImHmKMVT04wxHblwrir2LFLsVdirsVdir sVeef847/wB95r/5iof1zYoey4q8G/Ib/wAmR50/4z3P/UYcVe84q7FXYq7FXYq7FXYq7FXYq7FU p1Dyj5X1G6a7v9Ktbq6cAPNNEjuQooKkiuwGKob/AJV95G/6sNh/0jx/0xVVtfJPlC0uY7m10azg uIWDxSxworKw6EEDY4qnWKpHN5F8mTSvLLollJLISzu0EZJYmpJNMVWf8q+8jf8AVhsP+keP+mKo rT/KfljTpjNYaXa2sxHEyQxIjFT2qoGKph9Utv8AfS/dirvqlt/vpfuxV31S2/30v3Yq76pbf76X 7sVd9Utv99L92Ku+qW3++l+7FXj/APzjwQLjzUhNGNzCwU9aVl3pir2XFXg35DD/AJCN5zb9lprk q3Yj62emKvecVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVSyfy1oU2 5soUbpySNUNPCoGKqH+D9B/5ZhiqN03RdK0xOFhaRWwIofSRUJHvxAxVG4q7FXYq7FXYq7FXYq7F XYqg9H1jTdZ0u11XTLhLqwvI1mt54yCrI4qP7R2xVL/OHm6x8qaNca1qNrdTabaL6l3NaRiYxJWh ZkDB+I7kKaDc7Yq84/6Gu/Kj0DcV1P0AokMv1GTgELcA3KtKc/hr47Yq9J8pea7PzTo1vrNha3UG nXiCW0lu41iMsbfZdU5F+LdQSBUbjbFUdrOs6ZoulXWq6pcJa2FlG01zPIaKqIKn5nwHfFUZirsV dirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir8t7NtVW2nltHmS3gCvcNGzKq8mCK TQjck0xV9Tf84pyar5v/AC088eUtS1CZ7GaM2dq8hMpgXULeaOXhyPTYNx6Vr44qxf8A6Fe/OhtP Hllv0WNHEwYXv1iSgYOT6/GnPdTTjx+iu+Kss/5y2utV8sfl/wCTPLWnX80diA1vcshMbTixgiSI vxPT4i3HpX5DFXyrdvqzW0El28z209XgaRmZGKEoSKkioNRir9SMVdirsVdirsVdirsVdirsVdir sVdirsVdirsVdirsVdirsVdirsVfnX5S85aNpmjNFND6bwAGSJAC0xJA5DkRU+IJxV71/wA4TyrN a+dJUHFZLq0dR4BhOR0xV9NYq+ZP+c25FjsvJsjCqpdXbMPYLCcVeC+YvOOiXnl4WyQCea4B9KNw AYCCRzPGtG8ADv32xV+iuKuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KvhDQ P+cTvzc1nSbbU1gsrGO6jWWKC7uCk3BxyUskaScag9CajuMVfSX/ADjl+TmsflroGpx61cwz6nqs 8ckkVsWeKOOFWVBzZULMeZJ28MVeu4q8h/5yN/JzWfzK0HS49EuoYNS0qeR0iuSyRSRzqqv8aq5D LwUjanXFXzb5h/5xQ/NzRdJudTaCzv4rSNpZobOcvNwQcmKo6R8qDsu57DFX3hirsVdirsVdirsV dirsVdirsVdirsVdirsVdirsVdirsVdirsVdir4I0T/nKf8AOHSNKttMi1CC5htIxFFLc26SS8FF FDPsWoNqnfxxV9Mf843fnBrf5j+XtSbXIYk1TSZ445Li3UokscysyEoSeLDgwNNumKvX8VePf85J fnDrv5ceX9LbQoIX1LVp5I1uLhS6RRwKrOQgK1di60rt12xV80a7/wA5S/m/rGkXWlzahb28F5G0 M0ltbpHL6bijBX+LjUbVG/hir74xV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2K uxV8lfkx+Uv5Sa1+Wlxd6peLeXGprGupX/NIZbF0kST6vGZAwiPNQGcirg7fCcVZD/zhpbW1sfPd tauZLaC/t44HJDFo09dVNRQGoHbFX0pir5q/5zNt7e5/wLb3LcLea+uI5nqFojegGNTsNjiqTfnD +T/5PaP+U8OoWF/Hp+oaajrpV7zWaTUHaR5DbycKeqxZyA4HwAb/AAjFX1dirsVdirsVdirsVdir sVdirsVdirsVdirsVdirsVdirsVdirsVdir8vLF9eSxu7exFx9Sv1WO8jiDmOUROJEDgCh4uoI8M VfRv/OPmm+ffKv5QeePN1gq6dLEgvbFb+BnjuYtPhlkn+Csb7g8UcNTlXFV7f85FfnGvkL/GBuNH +r8liFl9RufW9RpjHUn1eAi4rX1a0LfB9rFW/wDnI7SPPnmL8qfJPmbUE/SVwVa61L6hAVhthfQx yRfADJJxAXizs1OVOlaYq+br+XX3sbS2vvrP1HT1eOyilDiOISyGVwgIoOTsSfHFX6h4q7FXYq7F XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYqhNI0nT9I0y10vToEtrGzjWG3gjAVVRBQA AUGKq91bW91bS2tzGs1vOjRTROKq6OOLKw7gg0xV45H/AM4lflEmofWfT1BrblU6cbtvq5Tlz9I/ D6vDlvTnir2SCCG3gjggRYoYlCRRoAqqqiiqoHQAYqhtY0jTtZ0q70rUoFubC9iaC5gcAqyOKEb/ AIYqjMVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirs VdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsV dirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVd irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi rsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir sVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirs VdirsVdirsVdirqitO/hirsVcSBudsVdirSujEhWBI60NaYq3irsVdirsVdirsVdirsVdirsVdir sVdirsVdirsVdirsVdiq2WP1Inj5MnNSvNDRlqKVB33GKpL5U8sy6DbzwyahPf8ArSM49diQlXZv hBrQtyq57nfFVlj5WmtvM9zrbalczJPHwWzd6otWZuO/7CcvgHY1xVT82eU5tdmtJI7sWwtg/JeD MJQzI3pycXSsZ4bjFU21vTm1LSLuwWT0muomiEtK8eQpWm3TFVawtTaWUFqZpLgwoqGeU8pH4inJ j3JxVJvKflmfQ2vDJOswuW5LxBFP3ssm9f8AjLirIMVdirsVdirsVdirsVdirsVdirsVdirsVdir sVdirsVdirsVU7o3ItpTaqj3QRjAkrFIzJT4Q7KHIWvUhT8sVYV+VN9+a93pt8fzEsbOyu0uHFj9 UapaMyyVDgM6hUHERnqVoWq1TiqjomofnBJ+Z+p2urafYxeREgrYXUTn1i3qSek37RaRlH71DRVH EjeoZVT/ADT1L807S90lPI9s1xayrINZcQwStDF6sIEsHrSwhp1Vn4Rn4WFSegxVlPnWbzFD5S1e Xy2nq6+lrI2lx0VuVwF/dij/AA7t44qi9Bk1qTRbF9cihg1hoUOoRWrM8KzcfjEbMAeNf9s9cVYT +UepfmTevrI86JOoikA0717eO3BT61dL8PppHy/crD1r2Pc4q9FxV2KuxV2KuxV2KuxV2KuxV2Ku xV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kux V2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxVQmmkDiOIcpCK09vE4qome+hHO ZF9MHcqa0riqMRgyhh3xVvFXYq7FXYq7FXYq7FVOW5ghkhjkfi9w5ihG/wAThGkI/wCAjY4q3PPF bwSTzNwiiUvI57KoqTt7YqlekebvLusXLWum3q3M6IZGRVcUQEKT8SgdWGKppJNDEAZHVAenIgV+ /FWzJGE9QsAlK86ilPGuKujlikFY3VwNiVIIr9GKtLPA7lFkVnFaqCCduu2KpTqnnLyxpdwba/1G KG4H2ovidl7/ABBA1PpxVB/8rJ8kf9XWP/gJf+aMVTzTtSsNStVurC4S5t2NBJGaio6g+B9sVS1f OnlhtT/Ra36m/wDVNv6HF6+qG4la8adffFU7xV2KuxV2KuxVBqf9ytP+KW/4kuKrtV/4583yH6xi qpZ/7zp8hiqtirsVdirsVdirsVdiqFvbH6zc2E3Ph9SnafjSvPlBLDxrUU/vq19sVUfMP/HA1P8A 5hJ/+TbYq8l/JT/lKrr/AJgZP+T0WKvSPM/6aEMg0uWK3vXdfSmncRp6QQ1XkUk35e21a+2Kooi4 FoZEAjFWMRk+JFkMYCu1APh9Tlv71xVC6IuuNYn9IzQ3V6FkEklqCE4FgY4+RJ5OFrvXb8SqttDr bapcrNc2sun8h+joIUYTxkFd5KmihRy5Cn9MVeIaDpF75m8wpZ+uFuLx3kmuJKt0Bd2I7nFWXa/+ TtzpmkXWoQamt0bWNpXhaH0qogqxDc33A36Yqj/yMkflrMfI8ALdgvap9QVxVjdt/wCTYP8A22ZP +ohsVe9Yq7FVK5mEMTOe2KqKQ3MirJ63HkAeIWvXfrXFVS3lYu8TmrxkAn5iuKqKf8dX/ni3/Elx Vdqv/HPm+Q/WMVVbP/eZPkMVVsVdirsVdirsVdirsVQ9zexW81pC4YteSmCIrSgYRSTVapG3GI/T iqH8w/8AHA1P/mEn/wCTbYq8l/JT/lKrr/mBk/5PRYq9G83+ZH0Wyku/q0t2ElWJbWBpFkasZcuP TSRiB37AVPtlmLHxmrphOXCLR0uozLZSSAPP6aPIFg+KSULEsojj2WrNyoNq5ADemV7IHy55jn1P ShffU7mxEglCw3gIb92VHqry+P0zy/a8NttzPJDhNXaISsWssfMc82vX2miwvofqFC19Op+rzfEg 4KT8PJ/UqnHw+jDLHUQbG6BOzVPGPJ2uxeX/ADJb6hcxNJFDzSaNaBwHUoaVpuK9MqZvQPM35t6B eaDfWVjDcPcXcLwL6iKiKJFKsxIZjsDttiqF/Iz+91n/AFbf9cmKsdtv/JsH/tsyf9RDYq96xV2K oe+hMtuyDqRiqHi1KKONIpI5A6gKaCo2264qq2il5pZypUSEEA9aAU/hiq1P+Or/AM8W/wCJLiq7 Vf8AjnzfIfrGKqtn/vMnyGKq2KuxV2KuxV2KuxV2Koe5soria0mcsGs5TPEFpQsYpIaNUHbjKfpx VdeWsd3Zz2khIjuI3icrQMFdSppWu++Ksd8r/l5ovlvUJL6xmuZJZIjAyztGy8WZWqOKIa1Qd8VZ HJbRSPzNVelOSMVJHgeJFcVd9Vg9IRcfgB5ChIIbx5V5V964q2ltChY0LFxRi5Lkjw+Inb2xVYll AjKRyITdFZ2ZR8gSRirFta/Kvytqt9JeuJ7WaYl5hbOqqzHqxV1cAn2xVL/+VKeVf+Wq+/5GQ/8A VLFWV+XvLOkeX7RrbTYiiueUsjHlI5HQs3t2HTFUmT8s9Bj8wnXhcXX1v6y15wLx+n6jOXIp6fLj U/zYqyWXUbWI0dwDiqn+l7L/AH4MVd+l7L/fgxVb+k9PrXmMVXDVrEdHGKoe0vbe41grGwYiBj9H NcVROsMF02dj0AH6xiqrYsGtYyOlBiqvirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdiqnc kiFyOtDiqG0tFayR3UF3LFiRufiIxVF+lF/Iv3DFXelF/Iv3DFXelF/Iv3DFXelF/Iv3DFUPLA0c 3rwopfiVI6VBNeo+WKqMxuruMwPCscbbOeXKo8OgxVU0tStvw7KSo+QNMVRmKuxV2KuxV2KuxV2K uxV2KuxV2KuxV2KuxV2KuxV2KtMoZSD0OKoJrGdaiCZo1JrxFCPxxVr6nf8A/LW/3D+mKu+p3/8A y1v9w/pirvqd/wD8tb/cP6Yq76nf/wDLW/3D+mKu+p3/APy1v9w/piraWl6D8VyxHyAxVFwxLEgU dsVf/9k= + + + + + + default + uuid:65E6390686CF11DBA6E2D887CEACB407 + xmp.did:8BC7D877974ADE11BCECCFF09938C3CC + uuid:30267148-672c-4d34-8534-e8cce420f815 + + + + converted + from application/pdf to <unknown> + + + saved + xmp.iid:D47F11740720681191099C3B601C4548 + 2008-04-17T14:19:21+05:30 + Adobe Illustrator CS4 + + + / + + + + + converted + from application/pdf to <unknown> + + + converted + from application/pdf to <unknown> + + + saved + xmp.iid:FD7F11740720681197C1BF14D1759E83 + 2008-05-16T17:01:20-07:00 + Adobe Illustrator CS4 + + + / + + + + + saved + xmp.iid:F77F117407206811BC18AC99CBA78E83 + 2008-05-19T18:10:15-07:00 + Adobe Illustrator CS4 + + + / + + + + + converted + from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator + + + saved + xmp.iid:FB7F117407206811B628E3BF27C8C41B + 2008-05-22T14:26:44-07:00 + Adobe Illustrator CS4 + + + / + + + + + converted + from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator + + + saved + xmp.iid:08C3BD25102DDD1181B594070CEB88D9 + 2008-05-28T16:51:46-07:00 + Adobe Illustrator CS4 + + + / + + + + + converted + from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator + + + saved + xmp.iid:F77F11740720681192B0DFFC927805D7 + 2008-05-30T21:26:38-07:00 + Adobe Illustrator CS4 + + + / + + + + + converted + from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator + + + saved + xmp.iid:F87F11740720681192B0DFFC927805D7 + 2008-05-30T21:27-07:00 + Adobe Illustrator CS4 + + + / + + + + + converted + from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator + + + saved + xmp.iid:F97F1174072068119098B097FDA39BEF + 2008-06-02T13:26:10-07:00 + Adobe Illustrator CS4 + + + / + + + + + saved + xmp.iid:8BC7D877974ADE11BCECCFF09938C3CC + 2009-05-27T04:22:07-04:00 + Adobe Illustrator CS4 + / + + + + + uuid:32300939-b1c4-8440-b812-b255b7b0d326 + xmp.did:F97F1174072068119098B097FDA39BEF + uuid:65E6390686CF11DBA6E2D887CEACB407 + proof:pdf + + + + Web + Document + + + 1 + True + False + + 1024.000000 + 768.000000 + Pixels + + + + Cyan + Magenta + Yellow + Black + + + + + + Default Swatch Group + 0 + + + + White + RGB + PROCESS + 255 + 255 + 255 + + + Black + RGB + PROCESS + 0 + 0 + 0 + + + RGB Red + RGB + PROCESS + 255 + 0 + 0 + + + RGB Yellow + RGB + PROCESS + 255 + 255 + 0 + + + RGB Green + RGB + PROCESS + 0 + 255 + 0 + + + RGB Cyan + RGB + PROCESS + 0 + 255 + 255 + + + RGB Blue + RGB + PROCESS + 0 + 0 + 255 + + + RGB Magenta + RGB + PROCESS + 255 + 0 + 255 + + + R=193 G=39 B=45 + RGB + PROCESS + 193 + 39 + 45 + + + R=237 G=28 B=36 + RGB + PROCESS + 237 + 28 + 36 + + + R=241 G=90 B=36 + RGB + PROCESS + 241 + 90 + 36 + + + R=247 G=147 B=30 + RGB + PROCESS + 247 + 147 + 30 + + + R=251 G=176 B=59 + RGB + PROCESS + 251 + 176 + 59 + + + R=252 G=238 B=33 + RGB + PROCESS + 252 + 238 + 33 + + + R=217 G=224 B=33 + RGB + PROCESS + 217 + 224 + 33 + + + R=140 G=198 B=63 + RGB + PROCESS + 140 + 198 + 63 + + + R=57 G=181 B=74 + RGB + PROCESS + 57 + 181 + 74 + + + R=0 G=146 B=69 + RGB + PROCESS + 0 + 146 + 69 + + + R=0 G=104 B=55 + RGB + PROCESS + 0 + 104 + 55 + + + R=34 G=181 B=115 + RGB + PROCESS + 34 + 181 + 115 + + + R=0 G=169 B=157 + RGB + PROCESS + 0 + 169 + 157 + + + R=41 G=171 B=226 + RGB + PROCESS + 41 + 171 + 226 + + + R=0 G=113 B=188 + RGB + PROCESS + 0 + 113 + 188 + + + R=46 G=49 B=146 + RGB + PROCESS + 46 + 49 + 146 + + + R=27 G=20 B=100 + RGB + PROCESS + 27 + 20 + 100 + + + R=102 G=45 B=145 + RGB + PROCESS + 102 + 45 + 145 + + + R=147 G=39 B=143 + RGB + PROCESS + 147 + 39 + 143 + + + R=158 G=0 B=93 + RGB + PROCESS + 158 + 0 + 93 + + + R=212 G=20 B=90 + RGB + PROCESS + 212 + 20 + 90 + + + R=237 G=30 B=121 + RGB + PROCESS + 237 + 30 + 121 + + + R=199 G=178 B=153 + RGB + PROCESS + 199 + 178 + 153 + + + R=153 G=134 B=117 + RGB + PROCESS + 153 + 134 + 117 + + + R=115 G=99 B=87 + RGB + PROCESS + 115 + 99 + 87 + + + R=83 G=71 B=65 + RGB + PROCESS + 83 + 71 + 65 + + + R=198 G=156 B=109 + RGB + PROCESS + 198 + 156 + 109 + + + R=166 G=124 B=82 + RGB + PROCESS + 166 + 124 + 82 + + + R=140 G=98 B=57 + RGB + PROCESS + 140 + 98 + 57 + + + R=117 G=76 B=36 + RGB + PROCESS + 117 + 76 + 36 + + + R=96 G=56 B=19 + RGB + PROCESS + 96 + 56 + 19 + + + R=66 G=33 B=11 + RGB + PROCESS + 66 + 33 + 11 + + + R=0 G=0 B=0 + RGB + PROCESS + 0 + 0 + 0 + + + R=26 G=26 B=26 + RGB + PROCESS + 26 + 26 + 26 + + + R=51 G=51 B=51 + RGB + PROCESS + 51 + 51 + 51 + + + R=77 G=77 B=77 + RGB + PROCESS + 77 + 77 + 77 + + + R=102 G=102 B=102 + RGB + PROCESS + 102 + 102 + 102 + + + R=128 G=128 B=128 + RGB + PROCESS + 128 + 128 + 128 + + + R=153 G=153 B=153 + RGB + PROCESS + 153 + 153 + 153 + + + R=179 G=179 B=179 + RGB + PROCESS + 179 + 179 + 179 + + + R=204 G=204 B=204 + RGB + PROCESS + 204 + 204 + 204 + + + R=230 G=230 B=230 + RGB + PROCESS + 230 + 230 + 230 + + + R=242 G=242 B=242 + RGB + PROCESS + 242 + 242 + 242 + + + R=63 G=169 B=245 + RGB + PROCESS + 63 + 169 + 245 + + + R=122 G=201 B=67 + RGB + PROCESS + 122 + 201 + 67 + + + R=255 G=147 B=30 + RGB + PROCESS + 255 + 147 + 30 + + + R=255 G=29 B=37 + RGB + PROCESS + 255 + 29 + 37 + + + R=255 G=123 B=172 + RGB + PROCESS + 255 + 123 + 172 + + + R=189 G=204 B=212 + RGB + PROCESS + 189 + 204 + 212 + + + R=138 G=138 B=138 1 + RGB + PROCESS + 138 + 138 + 138 + + + + + + + + + Adobe PDF library 9.00 + + + + + + + + + + + + + + + + + + + + + + + + + +endstream endobj 3 0 obj <> endobj 155 0 obj <>/Resources<>/XObject<>>>/Thumb 161 0 R/TrimBox[0.0 0.0 1024.0 768.0]/Type/Page>> endobj 156 0 obj <>stream +H-0 aS' Ƌv,$<=FCb8A-F{(V(\E3>IGIykFS>> endobj 161 0 obj <>stream +8;Z\uinRqnec:hag&4%a](-!f93L:A4D\h\gZ/n@lX;HcTPGfEHCj +Q%6lr1C^ia9# +endstream endobj 163 0 obj [/Indexed/DeviceRGB 255 164 0 R] endobj 164 0 obj <>stream +8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0 +b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup` +E1r!/,*0[*9.aFIR2&b-C#soRZ7Dl%MLY\.?d>Mn +6%Q2oYfNRF$$+ON<+]RUJmC0InDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j$XKrcYp0n+Xl_nU*O( +l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~> +endstream endobj 160 0 obj <>/ExtGState<>/Font<>/ProcSet[/PDF/Text]>>/Subtype/Form>>stream +BT +/CS0 cs 0 0 0 scn +/GS0 gs +/T1_0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 12 0 0 -12 -103.0967 -61.2773 Tm +[(T)7(his is an A)12(dobe\256 I)-10(llustr)5(a)4(t)6(or\256 F)26(ile tha)4(t w)4(as)]TJ +0 -1.2 TD +[(sa)8(v)10(ed without PDF C)11(on)4(t)6(en)4(t)3(.)]TJ +0 -1.2 TD +[(T)71(o P)5(lac)6(e or open this \037le in other)]TJ +0 -1.2 TD +[(applica)4(tions)11(, it should be r)10(e)-28(-sa)8(v)10(ed fr)10(om)]TJ +0 -1.2 TD +[(A)12(dobe I)-10(llustr)5(a)4(t)6(or with the ")3(C)3(r)10(ea)4(t)6(e PDF)]TJ +0 -1.2 TD +[(C)11(ompa)4(tible F)26(ile" option tur)-4(ned on. )41(T)7(his)]TJ +T* +[(option is in the I)-10(llustr)5(a)4(t)6(or Na)4(tiv)10(e F)31(or)-4(ma)4(t)]TJ +0 -1.2 TD +[(Options dialog bo)14(x, which appears when)]TJ +0 -1.2 TD +[(sa)8(ving an A)12(dobe I)-10(llustr)5(a)4(t)6(or \037le using the)]TJ +0 -1.2 TD +[(S)-3(a)8(v)10(e A)6(s c)6(ommand)10(.)]TJ +ET + +endstream endobj 154 0 obj <> endobj 167 0 obj <> endobj 168 0 obj <> endobj 169 0 obj <>stream +H|TyPwffz $D#hD[-o!b(/a@e0 E +D%"gC Ed= +1M}?l[[{}q|W<U +ou@1rl! +٣{g|6cO߫Zche˗;Ӵt9,]tZ:(2C2B#)RGGJlMxlB#S+5JuU,·ّ|:'g'[evv/SidJ6D*NT(#a(coӎL)d~*Y`b 5]EU%||E+ed +~g040 /1l c!R ?a6F=1o,ʰ dIɄ`@! ! :AN"8+z^00s62VsQjz Mt!:=J@j*V$C(0S9)bϴo\3eԐђ: ZatH&p\tײoMEx8"3ꇆ:.LsxJN8։_t%MmNDx3 DGU|_Y) QGDc!,.p0B"G8<"ǿ>}"*|uZnMD"W~fo71[2]|Ir/!~:?ھ[phmH’USZe4Ry + 5XqWAe1>0Ι<ȤRnvݻD +xmoKh#v܃:y<1E[l!/UXFV #m >d Y rPhA!Aű.qIꃋaE,%@rYz&p=Je2W5hBUdUoԴ^y}p!$M5/u/vҝBl EFX s"O6u-vC$b l@ +YE~>h ,s1gtU&AVn Y @הQ.ۈc*.wHW~^h1C֗.YF:Y- +L U~OF]^>g/(Irq,> gi^Ck Bc!fvYT pl졉5-ZZΜ/oȿNsWH+cVd&]ߴ,L&!Rj. MZRjt$Hޫ,m_䞮O˹Bx8T>#aE&C!l<9"$:LfSLku-tw*ՎA Lv>SSP]u]̢1Jۚ-c"(S=&53 #+2d, 7*^° ]T=z(B[heE 2V@6LQNǂb@$f1v>Oޱl=iQs}2l ^(߉HZoNoUdG*- kg `"8)v!|ϱ[RQ_ M _˅I"6|Dޗ\S:.|douALVe [`lh'M87°2RVAPIJGӰ=]䣌GE͍ IhHF_wiX$(7V;8(YV`cX2HB c*FU^'BPU{"ܑ\ !isLj=+b3án;S)M@5|b\ ­ }>MzH=͆uBlŀSlN3& U!12bKkqvęSV2x'e@ XȊWeJ8`+=OY/7p7:%pn8nQ5|zIۥq0 f~.rګSUaR^7T(o4ao45[URY[AF"Q-9v K"4-?wd<4󕛴 /795*P}N+KHI8 ejlߵ# &cͶ"uXTGю׮ Ƅ_ ׯ} ` YDH +endstream endobj 166 0 obj <> endobj 165 0 obj [/ICCBased 170 0 R] endobj 170 0 obj <>stream +HyTSwoɞc [5laQIBHADED2mtFOE.c}08׎8GNg9w߽'0 ֠Jb  + 2y.-;!KZ ^i"L0- @8(r;q7Ly&Qq4j|9 +V)gB0iW8#8wթ8_٥ʨQQj@&A)/g>'Kt;\ ӥ$պFZUn(4T%)뫔0C&Zi8bxEB;Pӓ̹A om?W= +x-[0}y)7ta>jT7@tܛ`q2ʀ&6ZLĄ?_yxg)˔zçLU*uSkSeO4?׸c. R ߁-25 S>ӣVd`rn~Y&+`;A4 A9=-tl`;~p Gp| [`L`< "A YA+Cb(R,*T2B- +ꇆnQt}MA0alSx k&^>0|>_',G!"F$H:R!zFQd?r 9\A&G rQ hE]a4zBgE#H *B=0HIpp0MxJ$D1D, VĭKĻYdE"EI2EBGt4MzNr!YK ?%_&#(0J:EAiQ(()ӔWT6U@P+!~mD eԴ!hӦh/']B/ҏӿ?a0nhF!X8܌kc&5S6lIa2cKMA!E#ƒdV(kel }}Cq9 +N')].uJr + wG xR^[oƜchg`>b$*~ :Eb~,m,-ݖ,Y¬*6X[ݱF=3뭷Y~dó ti zf6~`{v.Ng#{}}jc1X6fm;'_9 r:8q:˜O:ϸ8uJqnv=MmR 4 +n3ܣkGݯz=[==<=GTB(/S,]6*-W:#7*e^YDY}UjAyT`#D="b{ų+ʯ:!kJ4Gmt}uC%K7YVfFY .=b?SƕƩȺy چ k5%4m7lqlioZlG+Zz͹mzy]?uuw|"űNwW&e֥ﺱ*|j5kyݭǯg^ykEklD_p߶7Dmo꿻1ml{Mś nLl<9O[$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! +zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Km +endstream endobj 159 0 obj [/ICCBased 171 0 R] endobj 171 0 obj <>stream + HLinomntrRGB XYZ  1acspMSFTIEC sRGB-HP cprtP3desclwtptbkptrXYZgXYZ,bXYZ@dmndTpdmddvuedLview$lumimeas $tech0 rTRC< gTRC< bTRC< textCopyright (c) 1998 Hewlett-Packard CompanydescsRGB IEC61966-2.1sRGB IEC61966-2.1XYZ QXYZ XYZ o8XYZ bXYZ $descIEC http://www.iec.chIEC http://www.iec.chdesc.IEC 61966-2.1 Default RGB colour space - sRGB.IEC 61966-2.1 Default RGB colour space - sRGBdesc,Reference Viewing Condition in IEC61966-2.1,Reference Viewing Condition in IEC61966-2.1view_. \XYZ L VPWmeassig CRT curv +#(-27;@EJOTY^chmrw| %+28>ELRY`gnu| &/8AKT]gqz !-8COZfr~ -;HUcq~ +:IXgw'7HYj{+=Oat 2FZn  % : O d y + +' += +T +j + + + + + + " 9 Q i  * C \ u & @ Z t .Id %A^z &Ca~1Om&Ed#Cc'Ij4Vx&IlAe@e Ek*Qw;c*R{Gp@j>i  A l !!H!u!!!"'"U"""# +#8#f###$$M$|$$% %8%h%%%&'&W&&&''I'z''( (?(q(())8)k))**5*h**++6+i++,,9,n,,- -A-v--..L.../$/Z///050l0011J1112*2c223 3F3334+4e4455M555676r667$7`7788P8899B999:6:t::;-;k;;<' >`>>?!?a??@#@d@@A)AjAAB0BrBBC:C}CDDGDDEEUEEF"FgFFG5G{GHHKHHIIcIIJ7J}JK KSKKL*LrLMMJMMN%NnNOOIOOP'PqPQQPQQR1R|RSS_SSTBTTU(UuUVV\VVWDWWX/X}XYYiYZZVZZ[E[[\5\\]']x]^^l^__a_``W``aOaabIbbcCccd@dde=eef=ffg=ggh?hhiCiijHjjkOkklWlmm`mnnknooxop+ppq:qqrKrss]sttptu(uuv>vvwVwxxnxy*yyzFz{{c{|!||}A}~~b~#G +k͂0WGrׇ;iΉ3dʋ0cʍ1fΏ6n֑?zM _ɖ4 +uL$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! +zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Km +endstream endobj 158 0 obj <> endobj 172 0 obj <> endobj 173 0 obj <>stream +%!PS-Adobe-3.0 +%%Creator: Adobe Illustrator(R) 11.0 +%%AI8_CreatorVersion: 14.0.0 +%%For: (Administrator) () +%%Title: (colorbox.ai) +%%CreationDate: 7/30/2009 9:43 PM +%%Canvassize: 16383 +%%BoundingBox: 0 73 508 701 +%%HiResBoundingBox: 0 73 508 701 +%%DocumentProcessColors: Cyan Magenta Yellow Black +%AI5_FileFormat 7.0 +%AI3_ColorUsage: Color +%AI7_ImageSettings: 0 +%%RGBProcessColor: 0 0 0 ([Registration]) +%AI3_TemplateBox: 512.5 383.5 512.5 383.5 +%AI3_TileBox: 116 78 908 690 +%AI3_DocumentPreview: None +%AI5_ArtSize: 14400 14400 +%AI5_RulerUnits: 6 +%AI9_ColorModel: 1 +%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 +%AI5_TargetResolution: 800 +%AI5_NumLayers: 1 +%AI9_OpenToView: 93.25 700 8 1780 1006 18 0 0 45 111 1 0 1 1 1 0 1 +%AI5_OpenViewLayers: 7 +%%PageOrigin:0 0 +%AI7_GridSettings: 100 4 100 4 1 0 0.8 0.8 0.8 0.9 0.9 0.9 +%AI9_Flatten: 1 +%AI12_CMSettings: 00.MS +%%EndComments + +endstream endobj 174 0 obj <>stream +%%BoundingBox: 0 73 508 701 +%%HiResBoundingBox: 0 73 508 701 +%AI7_Thumbnail: 104 128 8 +%%BeginData: 6616 Hex Bytes +%0000330000660000990000CC0033000033330033660033990033CC0033FF +%0066000066330066660066990066CC0066FF009900009933009966009999 +%0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66 +%00FF9900FFCC3300003300333300663300993300CC3300FF333300333333 +%3333663333993333CC3333FF3366003366333366663366993366CC3366FF +%3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99 +%33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033 +%6600666600996600CC6600FF6633006633336633666633996633CC6633FF +%6666006666336666666666996666CC6666FF669900669933669966669999 +%6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33 +%66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF +%9933009933339933669933999933CC9933FF996600996633996666996699 +%9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33 +%99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF +%CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399 +%CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933 +%CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF +%CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC +%FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699 +%FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33 +%FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100 +%000011111111220000002200000022222222440000004400000044444444 +%550000005500000055555555770000007700000077777777880000008800 +%000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB +%DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF +%00FF0000FFFFFF0000FF00FFFFFF00FFFFFF +%524C45FDA0FFA8A8A8FFA8FFA8A87DA8A8FD5DFF5227FD06FF7D27A8FD5D +%FF5252FD06FF52277DFD5DFF5252FD06FF7D27A8FD2AFF7D527D527D527D +%527D52A8FD04FF7D7D527D527D527D527D7DFFFFFFA8FFA8FFA8FFA8FFA8 +%FFA8FFA8FFFFFFA8FFA8A8A8FF5252FD06FF5227A8FD2AFF522727522752 +%27522752A8FD04FF7D2752275227522752277DFFA852A8A8FF527DA8FF7D +%52527DFFA852A8CAFFA8525252A85252FD06FF7D27A8FD2AFF5227A8A8FF +%A8A8A85227A8FD04FF52277DFFA8FFA8FF7D277DA8F82727A85227F87DA8 +%A827F87DFFA82727A8A8A8275252FF5252FD06FF5227A8FD2AFF5252FD06 +%FF7D27A8FD04FF7D27A8FD06FF277DA87D52A8A8A85252A8FF7D52527DFF +%FF277DA8FFA8525252FF7D52FD06FF7D27A8FD2AFF5252FD06FF7D27A8FD +%04FF5227A8FD05FF7D277DFFA8A8A8FFA8A8A8FFA8A8A8FF7DFFA8A8A8FF +%A8A87DA87DFF5252FD06FF5227A8FD2AFF5252FD06FF7D27A8FD04FF7D27 +%A8FD05FFA8277DFFFFA8FFA8FFA8FFA8FFA8FFFFFFA8FFFFFFA8FFA8FFA8 +%FFA85252FD06FF7D27A8FD2AFF5227FFFFFFA8FFFF7DF8A8FD04FF7D277D +%FFFFFFA8FF7D277DFFA8A8A8FFA8A87DFFA8A87DA87DFFA8A8A8FFA8FF7D +%7D7DFF5252A8FD05FF52277DFD2AFF527DA8FFA8FFA8FF7D27A8FD04FF7D +%27A8FFFFA8FFFFA827A8A87D52A8CAA8527DA8FFA87D52A8A8FF527DA8FF +%A87D7DA8FF5252FD06FF7D27A8FD2AFF5252FFA8FFA8FFFF7DF8A8FD04FF +%7D27A8FFA8FFA8FFA8277DFF7D7D7DFFA87D7DFFA8A8527D7DFFA87D7DFF +%A8FF527D7DFF5252FD06FF5227A8FD2AFF5252A8FFA8FFA8FF7D27A8FD04 +%FF7D27A8A8FFA8FFA8A8277DFFFFA8FFA8FFA8FFA8FFFD04A8CAFFA8FFA8 +%FFFD05A85252FD06FF7D27A8FD2AFF5252FFA8FFA8FFA87D27A8FD04FF52 +%27A8FFA8FFA8FF7D277DFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8 +%FFA8FFA8FF5252FD06FF5227A8FD2AFF5252A8FFA8FFA8FF7D27A8FD04FF +%7D27A8A8FFA8FFA8A8277DFFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8 +%FFA8FFA8FFA87D52FD06FF7D27A8FD2AFF5252FFA8FFA8FFFF7D27A8FD04 +%FF5252A8FFA8FFA8FFA8527DFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8 +%FFA8FFA8FFA8FF5252FD06FF5227A8FD2AFF5252A8FFA8FFA8FF5227A8FD +%04FF7D277DA8FFA8FFA87D277DFFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8 +%FFA8FFA8FFA8FFA85252FD06FF7D27A8FD2AFF52FD0927A8FD04FF52FD09 +%2752FFA8CAA8FFA8CAA8FFA8CAA8FFA8CAA8FFA8CAA8FFA8CAA8FF5252A8 +%FD05FF52277DFD2AFF7DA87D7D7DA87D7D7DA8A8FD04FFA87DA87D7D7DA8 +%7D7D7DA8FD19FF5252FD06FF7D27A8FD5DFF5252FD06FF5227A8FD5DFF52 +%52FD06FF7D27A8FD5DFF5252A8FFA8FFFFFF5227A8FD5EFFFD09A8FD62FF +%A8FFA8FDFCFFFDD3FFA87DA87DA87DA8A8FD5AFF52FD05FFA827F827F8F8 +%27FFFFFFA8FFFF7DA8FD53FFF8F82727277DFF52F85252F87DFFA8FD0427 +%F8FD54FFFD05F827FF7DF827F8F87DFF27FD05F8A8FD53FFFD05F827FFFF +%7D272752FFFF27FD05F8FD54FFF8F827F8F827A8FD07FFF8F8F827F8F8A8 +%FD53FFF8277D522727FD08FF27F8525252F8FD54FFF852277DF827FD08FF +%F8F852525227A8FD53FFF8275227F827FD08FF27F8275227F8FD54FFFD05 +%F827FD08FFF8F8F827F8F8A8FD53FFFD05F827FD08FF27FD05F8FD54FFFD +%05F827FD08FF27FD05F8A8FD53FFF827525252A8FD09FFFD0452F8FD54FF +%7DFD05FFA8FD0CFFA8A8FD53FFA8FD12FF7DFD54FFF827275227A8FD08FF +%A852272727F8A8FD53FFFD05F827FD08FF27FD05F8FD54FFFD05F827FD08 +%FFFD06F8A8FD53FFF8F852F8F827FD08FF27F82752F8F8FD54FFF87DFF7D +%F827FD08FFF8277DFF52F8A8FD53FF52FFFFFF52F8FD08FF2727FFFFFF52 +%FD54FFF87DA8A8F827A8FD07FFF8277DFF5227A8FD53FFF8F852F8F827FD +%08FF27F82752F8F8FD54FFFD05F8277D525252275252A8FD05F827A8FD53 +%FFFD05F827FF27F85252F852FF27FD05F8FD54FFF8272727F8A8FF76F87D +%52F87DFF7D27F827F8F8A8FD53FF7DFD06FFA827F8F8F8FD07FF52FD5CFF +%A87D7DA8FDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFC +%FFFDFCFFFDFCFFFDFCFFFD80FFA8FD07FFA8FD53FF7DA8FFFFFF7DA8FFFF +%FF7D7DFFFFFF7DA8FFFFFFA87DFD52FF52A8FFFFA87D7DFFFFFF7D7DFFFF +%FF7D7DFFFFFF7D7DFD67FFA8FDFCFFFD26FF277DFFFFA82752FFFFFF2752 +%FFFFFF7D7DFFFFFF2752A8FD50FFA8F827FFFFA8F852FFFFFF2727FFFFFF +%277DFFFFFF5227FD52FFA8FD09FFA8A8A8FD07FF7DA8FDFCFFFDFCFFFDA2 +%FFA8FFA8FD64FFA8FFA8FFA8FD62FFA8FD05FFA8FD66FFA8FD62FFA8FD04 +%FFA8A8FD60FFA8FD05FFA8FD22FFA8FD04FFA8527D7DFFFFFFA8FFA8FFFF +%FFA8FFFFFFA8FFA8FFFFA8527D7D7D527D7DFFFFFFA87D52A8FD16FFA8FD +%05FFA8FD21FFA8FD04FFA87D52A8FFFFA9FD0EFFA8527D527D527D527D7D +%FFFFA8527DA8FD15FFA8FD05FFA8FD22FFA8FD04FFA852527DFFFFFFA87D +%A8FFA8FF52A8A8FFA87DA8FF527D527D527D527D527DA8FF7D5252A8FD0C +%FFA8FFA8FFA8FD05FFA8FD05FFA8FD26FFA87D52A8FFFFFFA97DFFFFFFA8 +%A8A8FFA8FF7DFFA87D527DA8FFFFFF7D7D52FFFFA8527DA8FD0BFFA8FD09 +%FFA8FD05FFA8FD27FFA852527DFFFFFFA8FFA8FFCFFFA8FFFFFFA8FFA8FF +%52527DFD04FFA8527DA8FF7D5252A8FD0BFFA8A8FFFFFFA8FD05FFA8FD04 +%FFA8A8FD26FFA87D52A8FD04FFA8FD09FFA8FFFF7D527DFD04FFA87D7DFF +%FFA8527DA8FD0BFFA8FD05FFA8FD09FFA8FD27FFA852527DFFFFFFA8FFA8 +%FFA8FD05FFA8FFCFFF527D7DFD04FFA8527DA8FF7D5252A8FD0BFFA8A8FD +%09FFA8FD04FFA8A8FD26FFA87D52A8FFFFCFAF53FFA8FFA85AA8FFFFAF53 +%A9FF7D527D7DA8A8A8527D52FFFFA8527DA8FD0DFFA8FFFFFFA8FFFFFFA8 +%FD05FFA8FD22FF7DFD04FFA852527DFFFFFF847EA8FFA8A953A9A8FFA85A +%A8FFFD07527D527DA8FF7D5252A8FD0CFFA8A8A8FFA8FD05FFA8FD05FFA8 +%FD21FFA8FD04FFA85252A8FD0AFFA8FD06FFA8527D527D527D527D7DFFFF +%A8527DA8FD15FFA8FD05FFA8FD22FFA8FD05FF7DA8A8FD13FF7DA87DA87D +%A8A8FFFFFFA8A87DFD17FFA8FD05FFA8FD60FFA8FD05FFA8FD4CFFA8FFA8 +%A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFFD05A8FD04FFA8A8FD60FFA8FD05FF +%A8FD4CFFA8FD15FFA8FFFFFFA8FFA8FD62FFA8FFA8FFFFFFA8FD4AFFA8FD +%19FFA8FFA8FD4CFFA8FD68FFA8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FF +%A8A8A8FFA8A8A8FDD4FFFF +%%EndData + +endstream endobj 175 0 obj <>stream +HWiwyoxY$myı;/{ ZvCQS VV|VUW2ciYx$e41;L&zN5,zWUS`ukۈsi1S:6'4~gMݒ#>q3_p3|n0A> 6 +!=NV ( ! 6[KϯTJRrOt~Ta +Q $\.,BT"TZfNlyMn^4 $~79[uAAɅ\ +YLF^I` wYJ DN<(D Gm SA+ccQ@pdXs<lQf`,%0k#Z,!g@x# 7mbdФm{Mc ,3+ 5ckjdC#HŚv?*q4\E ˠI*fqj:BG"' Tl ȐE*&{ TP"һNZfo*V"3R!w^ynRL? ;Cek2uX܏hP+pw`owCY\4kBi(I6wouuk188Cm!8Q+A*#y6C~a[ܬΤmߺ+o R24xG}pa:¬l UtN/ܴ?B +_0/$1I2?:YN"tnM1HD_p3| 6 +iBd-l~')-RJdMbzDHGvV7X-Mbqr?ҫ`9tDZ\7[PrIHC}gٙ!:}6tǐ.MrSQDbp,A\1ob&3lc.=#@}~uKx i3}Ͷ(>mm,}g[n#6D)a͔. ]ga,iC Q4Im7JaooƯ; +^>,IzL(ݘ0<åu?V #TljީY\'΢$eJl%B ^Þp-Lw:gȴ-Ku 7 w+p'v"x%KuЦ߅3l!sΩ5|F;ߔ %fZ9b!vaѾN.jf[yrMKQZxi#RքW#rudq\OG:NWܾp*-Ĉnb̔TZ%7,o! lGͨ 8TBpnJ%kZbt5}zurN{uH7v09E +EUD!`{h9CC1kXwO޻WGyܥc~P l9i:+fK.fEo-ʸv: +)vK ۦ&5 )#>bUEeUϜdiyl#]0ܧDjJ?9:l.^>j BMz'i\0{S% j9XPYIv(fcK>mt _6xTL1IH0+~YJ,,,ufJdKCTULu+45fVKL6QmF ?J75a?iѰ}3uwO2 Ng1md'e|e3xvk|x]! p|Bh-~WńDEGxfC188 ]w 0#q8b8ѿ T4E%i99+Ykx~MwQs'8Xwu.$B%y' &|LZckڣcjUb4}rlkm\ +5jbx49lu52S>7+Ϸ>mUlexK߬[ՊL_t8*d6|[.ǥ\S8|_*ꆱ}[4=ы]_֫t=Y^Z *aRQDk:\m$ >I^qV-O93E?@ͱ "FNNz>-ЫE"j˜m*&P`^6C[ +het'RUAF/I u%9B Fo4鯤QMUkS'ݣ+Ѓ_IPPcR\mn^ߟFؚ!e4p;" ]pv-_')cneq*>>N(dNc>2.c=;ì :\^Ihrom].q,_+ˎ:*Q亖2Q"_uM<i-b+e3#-Ҟk^_UeAA5eGIDn,cŜqC?_kΚ_ziܫZ8LUc\49GK#:j%0)sB|&;;elQT䥞%9GgPvL3Z/@NHX46\-%ع79ȥtKys08uM:{|t;N~e]Zt?@g+MگZ2~%f[!s-5mMG|k89!UPlpbb # S4cŁ%"JӐgj.W`QyQ?6ZhHYSUuؐ&4G^;`IOڛB{XV KA*zVmx?Zc"jHө@gN(o{3j4-` 7W"c%e 5%ӧh\|V:77*wD!dnB8뮹W7RQvsWOBy8f%pP`MCK64qeNm:_Q|mnv;]ց=IC>ypEObu&8ͻrvKߔgޭRpX0MRɮ :m Vc$MPN? A}.ʲu$7́dx>Sj쾧 m鬼'+7jѧ## zU③%aF!cIley۶Vi7w.2N69MNj1f5"]1STNw9PوԷ2=Eh;NJIoebÙgs\Gc.XlNi=-ggJ!9ȇ/`|v8XXn'CM<i-bYM0L.9b9}AK*KDRLrո`\„eTxșԐ'75.k6Fh`3yBi<OTmx +ͥ<2Hyi2>I 𵞤BoRȇ5PgC[{?r6ZhU`/9s.)@)<Ⓔu{_q9hU_"io+ 6lC%H;qJruw,^6z ÈgD7^mC҅L+x(W[>^@Z%K 9cS _Ri^?ʠ$8Kiy"!Aoi9ێG`ȍh"ݸ%>dG-Tnv8}.BY^JE 7> O`2!v빽UC/&Jɓ=P*31ym W_5 +fVjm{ k:8jk&8kA5Br~6ef"Pv>1BX<ƹ hE_w<=i^ *j,Ԉ8T$WH4hlA{(V;ES2L{"#iÝ!9|̻jX?#2]l ,[D %~"ƾnlMI0]7zr^}ݞ.`󵗊{7ic'CA":eV,4.ImU6iFrM_64~p>jgl2czK!'JRJ}˕*M{0LuzImk_(-Rq!K#C#8r9N-Sȓq[/WRKH=8!(RuxT2{geG +k9vM(2rDgd,"#43ӪǾЃax1Vh0LM4 ݅е^q0ZLx~[cq*aatt1@.>BA ܆qq @67ӭxCrAؓt[lH#d,=e9вC胈>Zowh+p |Hc笪@O`ҟCBu3Yj?`-'%IMF%x^2uL5ŔY\P *+$ھ!qAӨ +t#1BYPz(;o3 +\;7 (u],gòԳ/݄iJ[Dq'[=W"2lfQejed?m@oVRqIO'(V@=fMs; V!R(Lˌ`j@s m_U1.Kt$hGf'-q>u͏B8`4*Jŗi% }fky!P t^/ Un@6"~fd b*_FR@Eϯr= ͝ eoc `sǂ>N1 )P'o\\fr*GTrbQt( qjhPzVx:~i ։{kmfsCn_mP_5]^vq ;rd贞hl. -syėNHړ: 0Q7HX+3"y?C=SɛJ";Q$ |)q[xZ.CCOCiHJzQM#c;#(Z?hQ`&/xS4A%7\m>PWzH bg:V (Bo9Bow1Qr'{s֗ p dY;-RsX vm C3ỵwʆ$HY÷70Ŧ-*aSVOyAF[H8/ؾJ_F`%Ϭ74C>68Eh;_#XhJ'䣒a`zs,.R &MP2avZ)2:1an1 +#hI:b8 \sCP[!o +"=[nV@KK'kxzm~u[z%ꪙ(jݛU~(4r/JY ^H+–6 [F>'K߲pu00*ԍQ$lԽnOԦ.'eanVD|FFoM͈o9UrNrAn +0&^ܖ3FS'HYlHdZ1ŅIJHĈ{9Eg',iAi8{XNRyct<MhxLt ȷhMEؚ3Cac:f+ m$$ 0c1d`qn&4(˱FNdX(g)sK@)`tAR8  ak;T|HpKTN:k.fjreBs';1XCVJNݡ@PbPŬXJ=+f:`ŠYd<8P`Nt#QŠm%b +I(rG3I5gb܌XD*jb2,PxKkb$KC1@arN 3 a_"ةF +1Ɖ{b]Jr{ɓ,$TesJhs,3%n,pKQx40Ѓ r"HYl/4 tT𡗳"n7/HXhϔK{-OY9j1&reG"t +g%,D@oa3lm`laI1Ƶ3LxK&3)yKCՐlM=BPb[H\"9]hi\G0jxVqP + &0`2еO, G lMB4~b ~.Hp颊R 1X&T酪ī[ zpk=^ӓ(B +zmGOY^=o;nܢ,QS4'ϩy0' -@C-""|gZab/KRED%/[[ÿ_D\hK]֬8LjD1~r7=T2omKg"ᒫ†D>Dq 2BE `q#ee@ oͤO 護Twv=KȞagc5ەu?}5uc^;˱qFZIK@+OMn p(FВs鰇2@Ȫb6MZtp1櫵!S"vRE1L6hb ;S%i=>IK4DIA\"/N6pH^ +.E"TRh Un2CXGLuĽB"?6"h Hg9| vd\:Usyxq#dT is& S̒K:ї9s>5(mDKT,ME/={2Uw/}ށgBAv vR+'H&r3WwDUw;PuF}ͧ} 9>61 ?A#`R_iЎ>RQg4HF))4ro`kKNXbrQaz ƣ6Ke`I|>H\E&N&d ? x]A&oM;MeRM:>8%ݙrE*)x._ i-z".ش d:wZk{-m HBDWa w+ؾ9{ZUgO@s*6 i҄W~=ݻFcΨ-xj\T-aX/;˛' z9ds<Z+sWf%օF;soP>;:Eݍ6M^Wkþ +J}1lD6ryVhR$T.x/*[zv|) ^ࣼhnNy<Q<#CX/Ng'իIc8qacU>o4 }mxv_Nٸ#2wZi+{=7.>R| иz8OK3=O+9ƾїL[(<=tJoa8}*wwx7] }b}/}kK:/1ebEhzmo#{c6w0w'(_O7pSAhVomV^wׅAZE$Rʽbp~NÃ,ߗZCi X~ٞY{ہЇfnCSL_=Z[MmlYX&j6qL9,~ gnWn+0jw/%Z,Qi1BxکGBca X4hZI9HQkCsH`Q{5zk@U`Tn)\B[|E~XVNܷ@SFLJG7>6Pa[Ӏ'] V<5mxFj~HE:@M:USPgNt^B`I9[eMZg?݀'F&[Wf4UdS2KϤpzN'/`$nnf̧+1CƢ?{oL/rξ‘oũ(T. &s!6Th⽐T7͍&Y()įňle-N^+y +{`qZN/C8՟WkiX~ﶡ2a82m8iFkwTFl3/,u^v6j"'o-z^G=g>3mE-7F +F OMzgߒcBiV# T((NP}ý$O>/h厊jу *dZV ~>T&O{Xv/:B\;qA}.ܐ5e$nBN~* ?`N HQwF:e +7܇V\9ОIYܸif!G<8lWw w1( |xe?:l4!)~9\BgӒ >[8gFJ,q6]˒m"H5MOǎ"_L1Y NEfpLl&qbJ:5nknu amsۨRbi`rsWG3hiq%CsBS?6|Η"u; S~#e 9EaRC~U\O>OgE{ovb}r` [_"⏭Fi3_56|1jU) rAݣLmWM@{)n2Wg2U,+de6cdiR rQta_`"jP їꎤ6m ކ,= f +clPޯmL^-Y|"d*'b'T[陛esjVTҳuf9%?Y$ j9v K6+zaȫr;^'<hR~:w)9V-v l6Ӄ>5[Hʾx$h`͊Qn 8nw"g8W,g.aWm`.H%Pɞ&Rhܸ! M3rOS,畋LA3S𖢇Z@@v#f3h(T- QߕAm:06gk :6h6 8Z<҃ZC#%לIؘ\v06/ 5,˫5rz6q֤IΡz1vf#;hUۃa`Zsv^zC_)=/s]aNl>TfFV N鞦a1 {YпA}-c6dZrM6g] nK`綻ߘ[.̨QݲX^unE4"̄kf*2aPn{^Z2Ԇ|[;Oۖ]+_SshnKeQRJj5% S% Ѧ9sp$:T.?ٻnwF.@ӸFZY=Xr^qKmJ1sMkU=e:RWo@) R(^(W,ow ْl_rgO33|{mCQlo n:Ų 8 iJ]h+brk fX$h8^ԑ;Xe'~ZP\s`q`O.[EtzNfq07R{uni[>DoY)r30nĻ^ʆePs^.Fϐ-ϗ ~XT@;,b4集!CRZsa֊pcU..k 4!*pps/ c!ҼL;kěFgf t(Y~L)\xƹTұ;LC(o~ jj!'LmU+יuGWGϮ})gr:ɛ+ZVL:; LPT[S>E+3%L--SM^]M 5Nz>&LgyU11m 4-]'/Ѫ}#u)~+[nڪ̈́'M? '9W`_x:{oAʷUI Wŧ*e b4|nX=_5[6r=nYtu:Ɂc.F& MhMBSfʕlk$V@P, ]4,fS3HuvhPi a `9RٸzVރ;V@ÏXۗL"Tb"[pU|Ǵ uw'~ZPC73_bpiTVjMƩ. @tq7u.Qz1;Wf5L9^en [r.iQ[+lHN#nT "Z3D| 253PF2ݷj4޴95䄈?˜M-Z.wJav1N~f?g9W8ת{ZtAO>]_ bӳRt+8A;3NlPH8 Y2uw+`CȠV \ +PB?OWmfP]TR,]_V훨$Wco G_#We+n2[٫^6&j\~^(;(%hn[i%HQZfI2jAqa$ -;a|[fGЪ~l RH0Lq;O5vƽF,[;pBc #|=6&uk}tGܪTR gٓh^?e۹uֹ?.sfW9/3W SUI~Qi#*DE 3`]q1*cpr ò~lG՞Lҟ9bgl"%$ t +(FS1ݷn=ZÛuN̍05@Nåʔ52\_xM^znD ίV'ۢNB]Ա)1t/4 +endstream endobj 176 0 obj <>stream +HWYW}k!B2 ai@ڡUUBP_jm<{,$_h(EZՋH57d/}p;M~g-$b%nzQkW >?h1-He&DK$4z;F6+]r]p z ]wԘTnZMd_סk&/uJԗڔ 'L2!oa. (d29ss *BMq^3$W_N aSLmL0/a%SLj)0W#ImŪdF7D Hbqn*g_YLL}'W~սVЧWHP7X.B9"Rm-r9 U}.[ӎk8 MMW(2' +1 u6 n8F VC<{,YweZclW~;X6@DN}GƘҫ7{KY>(fNxDd_$4v @o\ᣦIZP;΁Zq @~@mrXiɎIvMGK!ihj+ |%F\ +1P1SlM[Cg3l@/z-sX eͅ!3lb1MV{"HQ@KjU@0ZBX"} 2A L"`h!5iIoIךhOgc̟j7mipp{[ơhhl`[͋o ܘYTU.UxA lV~wΰ>+㲲KV>u| ,}ʦ4uɁp6pYٔZ$ : e& +UIQpT25hlU-'8KuezTqù#ݵ$T[L|&#40z2)Xg[[n7^϶kZv' 1' ڸP'&Sy?KrnTn'*M|ŷqAsaRl˗^kM$|GUX_WJRv0n֮E|n@81(&B&},k-~si:Wၺ|=>oeQ ˌ^+{foKmo7Y]]EX0-tҫ-1zJ~{7r_D :[+檏#me$T2TxK6~9v1"inLL'dhp$Nw-,EG|M95xR-fnjFjjM֎L˦v +J@ + )I.W54LSm +\nILhZo5&Sl-/Z aJOqvqwӟTB+;Mރ.`)V  HTB$Ku}TKꍟ ˍ_XO#cksx}ugH}|}^`#v7ou&Sv W9g-drcp60Mxd +flky7HaTi 'Ssrݏj{Rn>(BMQϐ>u3rzьstF^G.Э%7ktk-7YlskՍiD`]fj]9GD#0`uzZ4\:c ڱl0"~S> װ:MzIBl^IVpC§c[ 1YN^CR-sh.d:t0`+ZvOd[=]Ek)hBb[,q$ˡ %v֜ifh6Ǡu&-2x\M:6 7&U:TAm97=Sffrs)7'620Tv3,H2mMz)߳ߦMXkGZTZۋQ o7kd#~ Xi!ps jdcnGR-7\0,7~c>-+7|v>Xcf + mN憞֬ݘ\qi7ܒS(DE(mXA)sk,K<^kpʊ+y&+N1΁<4X|HL}c;̲[-龱ڽA +S;oɕK^&К FF*3aFk 24tL{_yb tP:.F#WPʵ[THpFO|FA-S=mW('ml%0?^-~୎$ʉ;PrXֵđ ,L@@D{ @t뀺#vwtNOݡS~׹Ƈjt.n}Ntl^mP̧YԢL휹EϬDZQIalZ0QhDFZ裨jRC{=Ai^t~du@@ +ihm40FŷvL m4oOM ;6rއq)Bؐ=ܞp{٨d~~w~&,kjT6ǂ%!I4y7ayHu@R}RK Uy%m0Cx| p@i[!|sxOcipÃ.Ȱf&eMM"SjضdIr@HC0V2n[Hӂ%*'6^ʌ'AX/8yX8ZGG%Id)#gC~sF5aNS7Å࡫E>H#sT0/I ,n.~UpN:Wjͅjܶ%T 5e'Uu]w^k4B~$3{^޷clB@^6a}]1[HOFוü[dڤ@嫣b$D/mJR^CȅPOb;*.Cщh#MU@sv&\4 }y.ժ7r_y>ʂ?)rr-Icz6*}S4]yY5Fŝ6:q*GC᜜6?j6 +R _[r$zf ǝmM|1#<;|~l4ȏ"={wFVHyK  ʳ,9= +OH 7ijuf +w7`(Ph&ލFszc8sUbȌ>.ϽuVC@Ģ/h`^g,- )4kEh?3ÍUiY}L)b޳\9ųK!Z_i- J vJ}U_LҐy$ _BApi~`b/-, (`ѥ˔/"Y>/\)(U'r77BGŘMq7D&mʭiM72Ɏj3d@Q<^pkɓ ~W)2;vPPmPk\n$uls:HO@! a,Rs;䣘p4[(^g.۞@ބU #\LFdj4p6Z[Nqt +Jd@:\zwW.37MӢYJ.PX\uشRw*KB +ҘѴϬi' YGP;Ґ7>vA>~z+uRu7zt)*dQ7Hcc< 8Ij4[%Yx)YCH5!,K2Uɏc +X(K* 4g<[ʀ+sp+ۨzI+9 l/빕IVR B-57x0y6MU&/i0KƳUVIɲ9H{3]X+ p$X +b?%$tXlCo` (E;r:lY6u[-q rCvsXҀ2lƽxoJ[ӂ{z޽4 3jA¥D3`ƢBH4pQ{TRE4ͣsJ}r(VCk]׾IgK|csB/k@vdm-\aSUӛ4 {sZ+Imܓ/Yv{Xbix{q;Han}m:OظOɳu[Fh#{gցX8lcz_5GQy'LGΖ æv_v eY)5t2VJMi0YcPe1\1oҩ;"]&:.T 1Vd48x F.V.鉨Vyޖ҅ }_կ5jY F]߭RkQ/߼EPw[Jq\ȪϚO#('^QĖ`4%vAծZĮhO;ƽs]ι +ЗgnH 7W\&Nk;{ȄG.cH "Vs}||[ +ѳH/Ũ6  f~=Kױ?^hݕYАb=Ann >DͿLQ속kk#$nRB˫jVw{- Ra-g\4;5ܫ y nk8"?9 ^Ыڲ[e[S?!BcH:tlzbǺLLot*gk e3Q[Vgpek∗w4wv}Ӹe=hr%$UL +~hg) }3[່B4&̎ݰـMF40H"ȌVk +h? \ + {"rAG&-R@( Vu;+_P>OtՠmA +-|1`ekX Z/XMn;f; @BͱP8VY.G7l<}'+=$]cevd׬ }5r>ؚX։&7M^1f)b6V͘#铴 xf7+no1* +(ճiql*?wZ_\{4TrD魅{ȡװ#Šw䟄dK*ukg&@;]MPC"y'itIH-KI-P0&)j&+{=/zfihZo' }:+oƺ6Gow&TУpht6Sx<2`8%&;t[Zkn߷EUAC89A+bS+DbZ̔m}Vl @AW <|{9N^g +mҤ?g{C.H_J73f{j2<ӫ4L׋ /%*[h]Bܬ} `x(s^ctuӈ#9MY@~Y94I6 + i{ \y@ş@,g*l*Ti>w%|hr@Yvntō+諹#o"ʺ&:\+0#1˖;$: gKqL*:zHRJܮAb _vu=@\19>\ G +6zָȢ~ol*s ǖwdV;ONE:}זs95W4\B,?B@ JuWj @['C.zMPK.4ΆMpEI1}Dig ;EJYW +G)~J-a:c{!{Pzo$0ўA$/睡_*Ò}މ+Ʒ3vq#Օ&YYl& +/by4]Y%l*ӊ' K.PU48Tb(k)|ƟRBq?Mđn5J c±6tI}Tpήp +]Lg E4b@|g /d&rlzSյ?]C}HOO3qQ%?R*f)ˤ8j64B4cCXx-,"j=hNx9l='V!i(1wy*Kϥ?Rie&Iȶ+t%!S)?9%lC3-5Z +1o +Mk45~t.ISWYG%W$Vsa|R*Uù;JH(Ϡ5/'%B!j1-zVg($yfjNp)D+N. Us”a'J؏Ey{~Sk0VTo 4, j@~:̈Zo5iuw1 d宷JUtPiP걏66h1+_ܔ$e"+عŗzLPdQHatg'a߄zr#F6S˔ ,4qH͎w g_qmHWQi)Xז65.3B\QT pd)ԇ<ljo6R;WF^i)m2"_w닱$)0! +3Ca64[Wg[J-R$0HO#*`gE_x]vfvϜsƇrBN7ɳ1fS*?Vk`g >U~|.&2%6`u[`j1C9LkT$O즲s5UgxXuh%@bNf94͢*d8 I8zи#aBy?OYyYMTm.ߏJkJzq'SSυ$/-!f^NK/,}"!>@nlOpxicJLdCO ޸`!ve:BG].Oki^*VIt}jk.ծn5Aq U9l?{_+;\L+ f57LB#>F)Yy0_5yqBb8U-){ ~X͎Ei_V$f` whY{W=q 赲TjKQZz -okwn7mEdWގ~f1<+ UK72 f13C]6ѝw˘\D&ǷGSөPTc + 0(\-ZB; iz& )]oT)& ɟ(zTa^f<+j*dɸ?藱XBo m=g4)=&U͉Cb[a}s*\0a΢#&OpF;y3Yʄ(jCƉpeIK~u֞.yah] ~Tɨb\2G u>)lveZ[6tiGc&%Cgi\sФ+fũYÂ!% r@Bwd/5ĉ {j&x9N߉gޔW2H>% +n@&~R>!}"xiLs؜¥3v8]Q>*߫ey>X@l (yL`2 oh7{%ѪÆ@#gP7^4ڱD{uDEN{9-'4xO +oȲ3.vID%f%PC AB z' \] d(o_KM`͌W0A E~ZW0A+x!JQB Ul@S*~Չl.W:j0Ea~_@ +WBZaӷEOw)+ a{Z~aJ[| qu8kݧ Bkg2*[ULbE }}n#+Tҝs5q+Y7X7{ò'=Ncm*@?To7dY|ڣR,.>Jog\Ao(zĽɲ_@w< 74+\]V lk3XFzA1Fߥ[)!ejS +uk@3v(RwpX -qC F/lDYvoB9W ʚeD]@EqDvQlm7]#ohő̝teVsN^qj`ƕc9ߛ9A_A3]ʲ;$kq<_9l\6ku.?7VCfcKV=z |jw%ѣW7IhMf\;-Ok?,#݇d~$>.? -)egQ@q,>;т0ghq{lDvp@TDTD +QqU!%< 5![/J +zX> Ir f5[5ױkBmLG@fGAnn4ݼ꿥xxb+!B% k(9-S\GuT9 !եce9yF'Rg{+c-*>F*q1hޮm0ϔ]GRZ7,isE9ȅM]dpze kS^[ꢤ+^҈ɲ*Ш@b$vI˅B:((-_2/G2= 𙃍j҄5;ѫ&w]Y 2dՋkbQ5߳A [v@hO,lk@b L6Oٸ1W<(BƢ: 6K$e-^=$d6Jsz9Su>NQLZ.aF'.l[?v{zt]Nt#n˹wMg3V\/^^K1bEvėŮJu7T{oڕF}6{yhr%/! `q]⊊gvmܘn)q"ť +ѝSJ⏹Z.MՍ68C\U?R}8{:Ta=V0 H+3*b\hq{')CfIՏC6 [ĭXRa`-"MDzK7<N9,2"}@b֒inr(D Atx8cc.BY +af6R].L#"%ubihN,*lc|X侂]Y겉MZ0AeM<Ӗaثas +Kva BO V߮Gԉ|U Χń7Ň! ?lnvuf# #yIG* +;{DQ a@:P_ Z*m5Q_VLt_Km*<:ih6 ~)U󲖠K>Qmvc;Ri)^Mwc!{~}Da;tV*9fMVѴ"=0x@Aw[?038^D85eq{^א2K&&,7˜Ru֪gF ο?X *EvGsPinc 1B&ͳCp݄;8 +^))u|nÓ:u]cB j"/Ru\)FȪbj%ԭ2:pMM>ԷdN| /kX=.f//a4ӝz4M,ܞ'PHB~°T\ +A`luѭ9e^*A*bbK좉=]1vrxٙж?8$M4wZ &\.vy%4(I%t_Ϝc{iWILo} +2ycRȪ1P̍MR OcIi+pyF~\'%Mx{7[5AyKFe#+ +[Dώ6cغx3--_qZ~;o9]Jc,c+:J49Y>V0tϱx8J479C|IJY>V0ӌsl%Cg[|D m,c+19G|m屵BK$nzVD]]> +]ˁY0. +jŁǵMo!k&Wm}k] JnG&W2yӠ+>U&з,HnJh~(4d{k +Xx½Vw*/-:1&q"3)JZn0?vcZPcz`.8zj ՄhͱW @$]EDlE5mZR7JߚN~|c-K0F3/|1TپDRF;;Rbn8Ö!NO٫I5>TlQ2>ܑHreAN䩿bM &3`WiZxmG,~59p%]uzYKgr2$ELh@?)F!:@/rEgN+ԣ<C>j8ttCPNLOd[qaW9O֚ 6遤,Ӷ0(P8˶%(u5Sse5kt;ּ<çyy' G +Ne;=d/OY=w0HTlM:!سl1~AnFΤfTfU>`jJ* Qm'c2*NJ,s'|YCַ'A ,adE(c//CuT7MA1FH&YHn{  S\PQo8 +0|F;)['K!G@jUt~5٥(fى"b\8ޛWD[DYI"BNM̖0G|~-,{UqЍ*Du7vi_0?IUA|f׋!.~ƸRy1i'Df&3Ϛ/CM@|mאXbDUL?[1%k h'Ty ۃ_Hf㳚%RX3jfI=<+OtrAb䅳7:Jll-`Xa +[rx /N*\&oVLJ2c]ہdfYZ,`V*ALb3?,1SԛxyZU}-9 6P$g66 1 +PlĊ"aĶcCi0#Qr H0Dw$igy ֪ߐ>& -C/I!]Eս(C:iSfN=}_sxUoҺr +.9qZÜHa$n@ S$}t 9Ċ.}؛0Pinl)/E%)"wY)@ߜy=uM~ix5yG ܶi}cA )MU[U^/mN΃.{u=^7[״S=~+$cZ˘ /ap)mxiڻux :D6?M92kcNDߡ@w#aγB9|8qs.g3˸Cg4L-p/s`U:z T@| +I` +2h7}uB077|l5ckMMqѾ_[{}lÛM$ooh߉qi}a.LL\mĂy{X`GAb ^H  +xj˴^a??tLoijWx/[|.:q@u?TrA3º; +ݎ`[ |g23s 0յ:Co'B3OCCihMf|hgέ/\-ioIKK +iTN~BڱSzW LMj<^'E>B cPeSrN ֢pJ>PK.D=4Z\Bϊ%VrklБmgK-0ZL K6)7W H4[hH{ESdprM+$zKc8N[U6\DiaNɺfW4+ㅋW*bz8r/)f/bW #Gu>4x܉3}rꥤ|=pɐVy6Dܵ kn*YvW(K{YQ)-xRP!rRԗ!3H_R~i6܀oꨙf~LS\(ktoi4V݃rRټe FGu 2d4S +hH~D8d#1JHxUQ%q( 3bF5?5_FVFA/ﰇȭ?Qv ]ʯ޺h4A>/QfK 0NJ_"7!o1*חZ%й@9[U΋q< .p_lS?Og\f򭨲4;yk(GM>hʆ& T1"|R^ ]y7傓OF5 ^O.NK"hw*IE6փ[|}PU]4B*@IYͷCen'$l@ie=|9D< u1*XZu,HjbCʓ_{O9N cx§i.!y]nOzID'&<[Ū_7 _F]þHFʷ@n#, +- _О޺RHAP[Z6ڍZEv$,"ї>kC}O;VMe+2Q֥I=5ʖT,kgp((L0Sz%Axv*/]ak%Ë:>H "3pT:Z2Thz8/z+f󻶲z{?G(ascds[R䗹7rh,xBM$o4P*eyg6g)G&Pf_]C5kV<Q df~"~B.<xGH~G0SocV 7 +@oj',څ>]*1CuSE-ҋ5EPqdhv̇NSn5ZZJaIyf+5/WnwAQkz(˕\;?"FF,A +w_ b/pLb?tUg 8EBgXd7 +?7[8.gǁ΀YF;=sߐ4M7e;} +)eixG$AgaM<2w- )e(2[<T&R}M7#y`@}*MYb\ A z:۹yuJfZN(>lPG &`cslI1L1Ҟ-*ۥexIA *bqMnJʮ -HuMB'Y_ =[}fe2#?R8Ɐ2 +endstream endobj 177 0 obj <>stream +HW]o\}2Ph$(lQE!(:XI #{n"Q{3ΙkT;aev*L:(T90o>?>zq//>^&;8>/x2wY)NPdLQ|z+V*cwl>mI ,C0Zxe6V+M~27#ɋemS cD vgvX"yiB(1MFy$7!@IѢb P2g'cLqb9ۉ }!5z #N[> q*5dȵJrf%6{o#(\- +!+P?-~_C.S0cV CLL:R$bg?_֯6Ji 6 * !L^88n⠔\7D& ~|=aAI_>m^_BR%T1h?-DH=9 r4h] >ajd—", + ڀ<) ˁ# ^"^B+~{}D9xwÿd߉ӫOF[ zć]! sn'ĄZ +ԣjA^M}/Z|P+Yivo*.+t62*#^P|vs)3)L):.ZFmk +rI4aٖHx2e;?"è*b1lU( =-¨Hznώn5"øQi*m]ؖCFzeAlԺx u +i" bة! (rl݅U OĠ+لeˠъAŀ@'1Ri0Ũ[h5JÁ`G%w855R1I1thA4Kɻvs}i J7 +GyL3"]S qbeM3x?E&>Hl2tE ΑA xF>H0]))c*+Ç(v-3N.! Iux>_破Hhqu*Y=tFnh8O.ǚ]5RUZƨ~!:&DAϑbx9czAHR`k +^g\S0V= BvzV,RW +7yRd6T$0jB%(J=0^ iaBo菸~e%h?~o*4FY;=Xd"CdB+Ba Xăv{gt:y%fxT&E'p&E'VpF w#y^'܃e'}$ߵ{`FTFz }C7 T2.oTvMR{R:e$0$e +hF0Pt6 P\SFQ`Wa莦 iWC܍SPQ: TC0pcb񏑨@5Α蝛Ǧ< + Zi +We PoB Ov5恁l<0#`L@?9umdLj$s u[86]^XIbyP 1cl-z =F3trHHq4,l_UMVϱmEQQڀ$嚋g[D`M*wQp:t\ `r +d{gHL0 ZYXP]Mw>ǥk|ý_ `7 r<8υ2BT[S|ڢ +tJUle#hM0 ^ uImӲF[SK>-|ɶ}ߑoO)€W$E^ax G E*!y. " 7"\D!y.Rq=vm\, c.N`˕~ΧF]sȐ;_rquő_1VUW`T$ W#140yi}Rc&)ΐIcb/ iӤ4 +ƘVZ?ƤiѴ8( >g}3^3|^{sOe, %>!C0#&4: +ְ[gB>BD*D{DxF!c}5e5 YI𴃄AA  IT}@$.4DYK'`M\V79; !>ic\ |8TY# [+;8"m8ܠ+H,}?R[3^< +CmMLM4-XF*㊣Y+Sjz+Sa&qD%3q1AD6}z#_gf$u]HG`\BC?.nzӌ8=P) 4Gr67n)yj]ffUsRX-%0'3p3 yᖒUsYí$Rn)Z-%v^+;GO'g@ tž,P1[^XS62Sކ+.4\:W$yf1؈ݟ];yj.4^i(IF Ro/ok`/oof: q< Fɐq"aF!ؽ"x={JӪ`tN@XEc:a Ŵb2K#Ap4eu1=Rx-Ra!N@;Жe,*'#],4R q BByU!b *BE$SG9HKEY 5^ZB.4MV*+Li5})mȆ_Ҫ\DНmTփK[TI\ Z.y=E՜pK):I DfN"kT՜dhK鬹%[Jip+iEfyIH'5\L5q.# ' nf3B]02*5;pTb1Sה"dG☧hkʃHDhdK~*Wzr 8 +~GRJ[vI¨-; +; +Kk*+Ŷ8Hl_mZk)7FRl,դؘ^gWjJcݘTI*M [ ^LJM2fEm77܂,ٓO-d[#T$ KMn)P5'[ʩn{άvvo/t/(4^(ivx=[ϤXmm۞bQ7o7-0Ro*Eԥ@pP=HWbZjqPf`@F$䬋HES iik0E*QHweITBA 0p1x-̼pi0S臜p>BUW"Z#RO @xLHe:Pb)q 8ih7j5nlER{i*Z\E [=5G k +F@TӠvv(C%NtD\|9DfK/(bQ^8H$b\nI\Ds5 O2I.**o,[9 J- 7&,YRaۈb)p$CPb`2,)/1`b#8o5 '-j8Y8۰8! ,K9(L8v뜡/1^Q\난wB!q"$YXA2cAHj ["cP|dLQJ8k粺٭m:m"UB񞂫)칡i{FFajOоP:|0 A& ؀A0}] +u,38DP'`-o:EìI6%lz.O'`6'='`]W90ˀ1?Q !<ˡq2%B` +CB5A Bp**DggZ:L9 ~HQ I: ]3z~|3<8UըzF9ڎ;^=v ò_=o^Scxk$]3,BP/? +EZ/?V;?= +nɲ}rh 9SۼPsɭY>?vqG[h$ wvv.CgV Vwuu6NGgWϢ%{A'UXؽh=|pphhh' >⾻*݋޻G>8YzήEKZjCu˖Yٲy3Ok^lqޤgɽ֮߰md}L5yxyޤk57{G#_?'޽h0roS9y❷8X5x%ݝwé?칌=sxd'׬=+>5g_L^?=>=xށ۰7W.2uO?xMdpWi,d=賯<=}Փ~w̆)gƲ!eq׮g/?skL;yvrjڏ72ɳ'Ol5N?uٔq}҅s4VPFhp~fę\ɛ2|3yı w.gw~w5g_~_6xO˩/}_Q3_i#x01 ,ۻH4TZA:{>0^_iUBE\ZP[)Bxi%z%҉s򂜈znL2״!Wf;eGǟTK\sf։]/^_?]}~WN׉`->Ώ~?ym}]˟~w_+kQm8򗾚|g?[\j{3N?];Sf<7;w3.|vE/ǾHpelt䍋p/Y>Gvio@vԙWGӼE u?v~餓Q'^qPWlY/4?,V~xs#U_k,3H"CMmi-{"dWVMW ^^ʷwwvjSa{8I IID$&HCoppC?Q ơg +q;}O{x:NpwYN^Ѝ|r2 d@I; wSTMlZITESEXLU^,_RG(6B1]vzԶ x79I:S$-lBlJ$YrQb!xXJvWMdt9LӮ xvHSB7B/ y91İp>qE(l΀bZy6P-?# Gj},r,l ThN{i:yy^ 7qx= Vhp@w!2s`r +bTs“|$ '#e"<⮤+ȓ ҫ<9>H7 z.93KI>AWIuR>7CW6C|r]$9I=ڤ!K=H3w{]\}xs2IVgSe{"=&F*HuqJTT< +TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT<,rAJ<,㨳yS='>Q'<ȃUt騂=13Ά)c-O9C8N8 ƚC0zRFQORTC('LF}`[,mV]Z--TP]`57Y::.8 + .Gg\k(ӛv'F4DpO7goo6:yc]S# #)QL Mu UzeU s3Si?hP& ;01=հ0?=!F[:ckٕյ k+kXwgKAHZ=|M ;[׳BBukVWxdjae^.wKE.{cseaj$jjԫk662:{{?"߿83aۨꂣESKk{wi84rֆr8A><'j\O|F8Ph ֝J;#=iw#C厨8A><'F5݃{m-ͦTY\ڽQZ]mTZ]ᑩ{-͕18zͭ흛v6g'4A;]Y][а6uw$GhrV: }Ua,`anvfj2-$;tƺvG0FFSV!!:ڛD&ss G h$ۛ&4 8dtX<*&sADjlYv@hk4Ru&CuGMD=IQ (0ZtzXsF^S +t'c:ѱΊýL$$a P^_$I"J$СHM88(|d3x$8w<~;:8qr(ԋcb0DXWƠ;>OXI]R^krXE<%ET/)C(6B1]vzԶ x79I:So$-lBYUxlBٵ)DJ"jEx\nwD&M ;7'e0 WQAJvmsQ<!@QMtRz "+nչgTUM]7j^'&8X!=G6AE rXkJzA8 Ң'حD%/ JKc8WtT1Y +E{u>&6B*C*'I߲LQ3%3m`SH +endstream endobj 178 0 obj <>stream +H}lU6%,_4-l;-]v]:0ۊe)w]e]bd321,3G @p5? K`@wYy11F7#?RcMYaXgN T…4\Q0ZS+QӄBIQTbP[B$LZ#9BpMh%)JDIx1!AU +Tx~\hQb)} 1# $(@^$?0m-51zU +dXKdM\H-XNhxc5%e#B7TU~vcDp.MjBkZB ^X6*s"k5"Hj,lL$1" G閕`U¹UIT;sEi`i-gՌ6yjVXp $1r^Rsb,"sF[a4Z +if) RÔ+(SnwuR=u6VE.IVx3[VE6=ѪDR1Bòشt CVH3[!V>N=晊LEJ :s2<>9 Lpgk[ x#.z­1tZj}fbB[Ԧͥ(XPuzZ٢$q5Ȫ@|Ѣ\Esؐ#sf=d_q^q* fw| @D0* x`vw c䴡mViPmmoSE/x~<܆Lâ0a)pwAs)bWI\U} +X][]kwU޵ʻgy1wfr|nrt}fv9r }xچ!96095ѝVNl^WAo6pH( zƨusˆ??IOB8i:(zw!9ooj[pşn6zb|9~v t{yc?|AHϽ/}7kM~z?|ءݷu:\ 8W޺'Ë>ԫι~|(qz~?ͬ_x]ϟ=w'㳋(+:~3utuY0 N6Co}ǗM{5kp8 ^kvjz+Zɐf<*繱X״XrΩkxrzF:4ʼnI}SvMNok-SxՐCVl=pam1[' Nw0u=Be&PqpbTB}UTC^M@3FEƲ>/IJeQ6/˜Zٌ 6HD4$<$z0}nN- wjqIidZulsUL:Դoy# PpNN[07Q + p F*¨iWFBS!T2%FL+@,B\!EKgcPP`WYg 53Jc5u, "?;NCEUsH%ʢۉ-9(ɯ[hV[P[y(rTe;QԬte}PB{b3WĦfC/}pw=KrV;hf Y`ؒ ycoKR NYpJP*PPt@Y(V|(Ó4"$E'h*QUVtEši`@p$PY21@[~CV1kQB)XVdV% 8 Y)vZoK2w +Tq&TNQ {6\N$q&^0bIG]+=W<nj"k]',R`cՎ<[m}k4] +'VAYhw!{.C=lTcjF|`H CeHf({?EBrfI0Vb0Y6;OcKsmf~ٞV˻(u`vAnIE[e]uvV*ZE\kq"clE\۱r<+ OCrl`rj;ݭ69>;71 l/G +_V%,EPa7`] ݗIOB8i:(zw!)WGk:֮ͧ\2F+G%k:~ԉot3<ԯ~KCG~|[yt߭78y{ޟ~y=@J~>xO~c3N ˻g 7kG7_{KۮZLoЏG]^Y~{;kHWܵs}pZlz|_| VMoEsp&o&Dϫ +w)`A\X޶LH3?{R|i +m!dNgtҴ ]QQWJպЅ`]hbAWR7zj{g8CV̝tu/AP~8;Az !B\tǝR@b 8RDB HIYJ 8feѺ,rǍLm-q,4IDwp4@GCEߨmHߨD Y јNCd`~`G?%y>:E5Ƀ@p5ag;у۰q>b=LhApt(YtH=E=r=b DIT\^qq# =B&9 CDVtBj{U[j##:}W* ?/sYN)^!BTWDeQsT0&˲&c:&_aLwc?N$o«֛RXd6I/";a`C&5cD~>D~kɹ#հˆ+ܷ޵#+q18J^97#Kϫ{TqR,yU;>Կ7Ӎtc0LR;>~^:R76׏oK6D)dz$0ƣXTs}иϾZM]_?S[m@¸,QL9zt,`gyB?p-\}W|pq=~7>~W~};sWϯ<>7³O~ւ{[oW}u!j_}|7?'݇;韯W^N[gg~/~Cf?ɳ?{ŧ?̗@k;[/فy[?ۓ>xn qELT8~ht ap'>氰yty+; 767._غ4x|f[c28 ~O5sf{)ȗ+`ᰰtGOmCgȊErCRڀ~8;  ! +-G@c3рvv}:€id͙2`vTa$҄ira)V_S2hN((YLC+LX"`N;&um4L0LM0U`&wq8R#`kFp;QJԋ@&bhl 2;RǂykB4na!8=!Ӡwi8FYGWAQ/P7)bB + qhd`H` +a?ԮTFC", GjeP㯗8@rHCb/yA73ZzY-U):ŧ=j]kq"nV\ +gPwx JC*jc Hr&IP)9gH)8ns|2ۖшxՅJMjJv^%/iu-׾E@6G!c[tg{w85ȿMjxyD?(0mhtdCCkC"zN4rdֲ!*hbN$$HE9x\D+ -IM` 8W2^"H9Vʤ aL*$J<4r`!)́2@® D̗;ىT9$h#w/p_ 1Ԍvs~2CoU=&+4]{W`?NyTć%n~]rzL&$j|9FdQB)G[^+e_zJ%"14)Y;8;Z !/RhnVl~lfA5*zYl%R۹s^SUI%_QDQԢоh#=*ɾ8bX +} +ks badC=_cэ*$-(+ %aarA)1*&2V *3+` ! L8lL! ډ7&iF@oB}ȵꉀ=ZZGsmۄclQ5Y?($.c:b4=׬N<ƿ8U*LmheVۯe_;S hC HwI ؛#.Ƙdx7* +(JLSR}f{u +"d`3 C|3pp?Eb[ rGiq0oO֘R@Ȫ!hidtA0Q+?#!TŒ^Vމx8W䙦,k, k4je,e+ҟM25 z@^$@b\cT2d*zFU*vn"Jwí54Q' I?އFr}6EI&[5_i_/+)";q"iqRJ %/KA7E PBjjMycjiOm:nWlyiFYƺRb]ф*sHr,IbKP)9gH)H{+̱UW)/[](ޤ>a.XBF]ׂpˋ"fաZ fb<΃I%/k0Si6(:̙803؛@iPR[[}IK|m'SX_}q}]1a3|Zk{o]GBݳzd*raCv"1? {$sFӴб&S"+^<@kt yR 7]NYGQ0-dxH]q-r?!~5v1G^<ƻK_S%ST]"p1β +ҙ>s,%8R\ĻjL)){z(kLWBZJ/ai%"6` Io4-4RkkacS=D1ZN!KBw `QW7vqfoi+Zϴ5v}dڬ41t(FJ?4+\7lXax_9P"ȾgzHgMBÚLORJǤٗ3/9ImBB:JAh)g[@8! ,DG"D%0P2 +;v[B$n{wQ诫^~],.ٶ١[lssg@5יYvYl~Ə<;~_DsOg+~>ڙzltv=bn/G`#{)@m{2ߎt*>ug֑֗ѹ](;4ܰ>7w㆕\ބM\|=}t+|kܜ¥}k]aO_/߼=e߿o՟[1ʻ;/?fο}? ԯ^:K@u0WEp~?ñ<>]}ʇZ~ƕ^{+oCکǞҥV^zD y#g<وm805|_Z6^Wy'>zEprA$SHKW@[&|?~flϾ"۹{zz26ܙhwCSg3s?9y3u̎M_L_@@(%ީ̏ lp%z\to=F|:Qy 7P7 +=ʰ؀cn +ZBT/V:熴ibjP(=+KХ2K汪r5f@3:hL f k%JKI'H"!h>EH]\%ف!)?x 8 +Pts'5"@A6~lh.PZF‰ʒOH좇C\~#l7p3S_kYxv[%en ;z\h_x 7_|M/\>^zv\PQ'O8|Voٻ޳z㖍kzoQU/۷Z7nQB ̎3%}Sjd bdj733ǐtv{{8t,c&΁̙xB͚nQMMOe +l0kF>OЀTfGjV4KS̓T 81SҵiNGjV4ucT|eWDRš)ݾyܾ_62Ygm6)Pq4h:l._\w76,ܞzH 5Xf`I ˙ 1P pDYĝ96@zQ( +6L9?@1]0!PdPUD[nYMq!p +@ Eri'T,Be)A/DNu +ms09~Ѓ dRAA^۵R+ X!RE<_eIAD@A>x2q w d#pP`E34s8>PV\#D +0t5i T5i%Y:J*k ʹ{R\ tZ]6FYGW@GkTq%dخE).xJ;Wd-/ dᅤ@++,pEhM< eWUoTA@[tH`DXC1@\(Je3aBisY@W+GaJZ@޴60H{ 9^߭XW2jDSאMazc88#RWQul0>CZǖD8SrdU5$iMP!!DU +T5(%%R(ВmEDH R* +UN}=EPIX$aG`"D9#yh*1Pź1 $N3D"l829)olwĂ}XKj KS,SS ͉s>3@AZM 5'` +ԥ; b;+FW^r67v$͉^"3RP&n8P*}UJ_UWU76S,S̼"N5ڀ9W7N艝[]r}?}_ZO]D?:s\soxl0ID!!`&a +9TiJ]ƹ "$0qi‚(4`0y+c\^ǒ! L8?~l1IqI R> .$`[ Hs<8WԢmHFel5%;͢ @Z(b40,ʂk Ad-AfOӢP˼X+5eBH3xL") `D $}\ye`Lh@5M? + e7ce +cv6:AQ)5=Nя If ҽ#)CChl@(:\ ɍD+@AQ+DGD0lw 1mh),FЊn7Rsсn^8 +T`+v[cM{d7ʓ? א-iጟN@PnTX8י+&r^_^V'SH_p*έ1.O!H.O +_[fQVpذ0WO^ ]Pj)Z5^ݓ[rYtÇ1s]S=p|q3u]52ow4Љs>vꅳG޿Z,p;W>Ok +3o_gׯ.nں}?.·k]1G~=pzk载˿=u*Zx٧wԧ2V.m7l|> .[ݳԓY + 8 &^ڍFFȺ1pFAG̝[M:$l"I6ݽLo?oAHM V[L}~"tG"B4ᇡ /ø1'~Jnxf>)=,S>&"3TXn0"ϬkSi1!1JM+93M%Է397׷{{/W~倾k;~uNu 7|!=tԓ/?O}l4O~~酧6fO;̓]mCgz⋼iqw7'g{rf:1z{W@snÇ4aZ|P#ˋ}E`whxhlj:,݉M{tdxڿ" f? , |;yˊхPDo{IOOEo_ߖNWvON",T Z4N:)ª +iJIBLtiFzBzGf* "tעDFu2'maY"빀3T0ZxQ&(MF:EmU]. fbCL,VUY1TՊ؍W:0 4:RQF;Cں똢SRӁ*GZ_z@eKSzh;InXgbF7;.$c!xJml"dA^ c`iϬUQ@ฎ-`d)p͑T,grApX +2GӐ1F$'r$K )Sα'!]b"ƕTz)6_-Tx"VE*dA*ddw B۠@1EWr`x9L41M@`;#$-('O iJ" !1$X%D2ga-6ҊvFbEP&Op m^ޞ抓%`!4AR +"[x¼ .!CECHc=yţYD2P11f}B@oPV~ J ˣ wq)] 33])uKDFD{ +o_1l{/|0jH\56ʇJ:*w{/&hS^\tLi|FƈHlRUmkNE1,T  +U]-V4!F)|-Vm0KD 3V1LaifFb!1QnSh͊E|*Ct]-FB|yc}21. vm>rYT 0- +=Vp?}VR6<(8K + ㋂"NQ&L_k +}#=J^¤Bf? +xt" VDr.,؜!GZBh~Wt+$IّD tTM# Z \L Eo(]J %t@.v{&w + %/"Z!!|7ZsbK;IXpI HCYҡBT,)7XKP ̧ U-eV/ Q nCR[g3nsÑc@nFb!PXc!M;c9Er#t`,*fn>S-ZO+/9)WrtdfSh)! +V]=8cQ7l:H\dj?mSy6O)~v3vFw`M?2zzБ}[ gwhh;NbSĖ%>QEKO"L.46|HؼE/TӸw;qhlL<465pxā&=:<G TXrvY eB7SAzָihd47Biws5g/:B2LJ2 }*hJ3 yP M0 ,;kI8i@ᕰDiOe4y 4T~FL YI|lǢԋf.CsuMgFvxLVynrܘ?IbHӕ1R^BZOrk^`1Q~Cɡef[% .LQ95?'0gۛ~k[a7xpߕ![t`nQU1nT$hPU:CXUJJh elv(ܵm˦i0iƅiMň?Na {1G=PlRnvsSfx>W4iW?!'83~͟j׭}rvyZ`N뀆QPۅ1mE ⫈LJέBv?R꥚+΋ LL Ą%IeYrP&1玥QJ;悻s fs8RnsKh,J+cZ&rS.(( +_Χ}[a/' CtUP[Ts?hE1<q]EJtyꮱI3;Xw]#gx ' 㵂/kԄN +8+ktq5.BKMt@2 +a+F8?FA/dCQϓ +endstream endobj 179 0 obj <>stream +H}LSWǧP--خ7JyQ*DEHS+/JZP|e6M{{s%=rӤc--w[]&co֝ y}v9 hpMx9P1!|h‹JNR-.%4:lfLPb2JG,|尘 Qh}1  s(B,"*mB%ҰH@DTm"&/ IJM.(aQa.s"L&$e3 L}FZRV.} R Fi7mޕoܲI%p4b?ɔq|sqYR^Vl1)e"> !<Ϊ?+Ĥʄ켂֚cu'O,NOPJ1!gTyxRO8*.}vtә斖3MJ;ā>lᴈ1~pmjƳ]==]gO.3fjE~\&m"a Ql2oj<{վ+;ۚ6)$9ba-9M_\v}pxddxK=_6lцaթם + 2ml<0tstl||l垶ƣ3"չ`1(4 Q⪚/ ޙ|`rγVsvRCfU`ZRMڮ ޽?GS];~xWF&6ZEg b3rˎ5u^y'O>yxMr3bÂlcq`:}~yݙ+SO=l3uz]&`#*O/+4ZN6w M>z/|p_wI13>RAK?2+[z?x<_x>՞Jݪеpi]KuJqtƵ;wQخ=\|s 7R\|#zϵ+XN-i*3nEq^c=;Ͷ"+dH5(Jƶ/y4@^s`q &>GPDk0Zg +y&ZU*J XЯV`2zh*b1j9Xw*GSڛSkoUj] 6{Q(Duu3M\;c>>S9jv|Evʰ=ılJ+-*TG8/Z!8bĔˉTÜœadAǬU>@8&* f*aQ9UҊXa&Z:"롢BSf}Mg T`:e}vmo$5gĮ!dzEq㔢 + @|VS`*S(L;-Y|Ѷrb*|j`'aѠ(_%q2&V.=|B J? L ̚ IILlILlILlLlLlLlLlLlLlLlJہ,//Ҏ LlakEㆉa`dU$&&y}05 C_Ka0↡v\zq9nj-ㆹ"U084L;S@ ?u֭(Kp~x#8n(7q{Ս+R({4:A%tK|OGa0Qv#x=6 e2:s1Gb{>_!m|>|7D>شҙ,o@D!!n$$D$‚7I.b0  C#("G(X6K` +HZOHLFuZ"R pY `sK$`A(Mt}!+k2dS7idABA̷ P/XOٚ'hg6wf>1oON֔xu$؏B(W,&w +K+CnY+K M;I(Ie/%)v+n8F>d퇇*Kޖ+ +8 9I,%M[d9RZ6Z5iCKެmD?E,LT7Xl[l;~֯: .\t }U秎ۊ6d98.~r㛋e^e8Ip8y?F}lxck~ƭ[ŹEnݺO?\jmld6r.E2ihدݽwoMܻw_~1Ps`O.B$#w! +h C'&cjۘɉCbܖџˤQ"pPh(oD{PylIHBB ! " IH@D@+>`1< D gŢNQ^@}LvtsSuڇکS[p-=yꑍ/3a|g7gw>u[w{~OSwm%-!B.B%P3gWpgsQ@o{t޸zӽW+xaJMbyQֶcwO_?M%>o/}v`;uMJ ɝ"%Sl]/7$=/eӇ}w9I1Ȗ%-˒X+^lmj9xw޻]>uZ pK6.ӊjnk?y{}=}o_p}ڢiFb]ݖ{<$0un-fN~c;2I)o?tSN/啅St +1:Kmo;v}ڶ[Z?W!v좚U[8{77nQ n|sZ7)N q="( Sf-mjss\F͵uvsgܴlCR"@;7BK1W79qƵ M]G[۫9)q*9J  1Tۛ6(>w&{uI~Ax=#&جUZSfAImM-;wCٞݻv4oZVURiҪ`xuNT'gViomhZVSVG*CD2Ls -XXc]bo(j-,\007݄1xBL&/ +UO0d2/]`QŲt~yVANFa:4HS$' +AJU4nHNΝO!yy3r2R xJ$p ϩtL&C#4x1)yb$JIdk5@J5g9f ǼEtx-nHLzmBBV:cM8<njFΨ'<-GNkH-Ӛ&W(AHp>׻pF8wȨō+n]+TKp\#tw8s3t^@7 Qd60ufKJ'2[-XK&i\"WէsRꈘktϘwgAl@fqӲ4{ḇWUFa +l*,NX\VYm*/-(ͭ\YhUl-[[1)>1\;1%\o8<2y^YUmu-n0YY;)tF,Ocz&F?F,Xdc8PUE$$,>NImzZyFlU_+==xO +`${ I^H[z/zW6cƨC3 32!'R[(tb򛦮y>}w/_=sŴXokEq$]WԵ+lj^}_?zt3Z|l%A- g_6k37_?}z}kg')IpҷK(阽n[O~_?}zu;Jlt"YY?cPmd]X?4N_]]s8ٻ/?~Ǘwn?~ngiH$V]Is C@@WY XuF .5kTר  +endstream endobj 180 0 obj <>stream +HW{PT^ d/{qRvUZ`Ԛh>ҚLI1mG:m:N3hX1>ZGi3;.`Bf2pav}sn]p?~kN?cC{]yaȰC| !CEƥ)(,D QA :vʊ:uAmرOTWD<~ܣ?n۰P]fTדP*j}G;޺ѣwn]<67AZPYS׿fΣ^_wM)J BSf׶߽ѹn޾7载k]X6FbS2Kk|>|pϞS2s3RmafW3`2¤\3f͘6u9Y) 1!Wn%gs/J(`0>+cDr|tdxp+ٰdTL|RڨYsrrgG$'m*Ȃa3F52-%)>aOLLJJNJJLL(D`а[d=ZQQp!ztw +#R)!pHB1ח@@~57xeghLwv[,-Yׂmev[RΥvCűnԿj7X^iaIA)iY&LY,c +KͳhaQUTA=D*k +Pm$aʐ$V5e8Z +EE+&P2bHG0\+0nd*'g8[ fwJj"M"Pv&ZUHUQVxBRY[qS6R\TAy1dC8=:oX-k{=%ޕVkf͂zdĨi)vB" +9"fxX+ı,E5) +# txQ ʱH,V/ bDb eQeq4D9PY_T󻉲yJbx C"-qhN.萛28 dAE?ҿ[p =Ih/Ȗ@l@Fot, b "DőEʤ0)S +SCpWUs zl2xAUaeL_ +Ewp05b"Ւ#Q&P~2!1% "8ɞ+\9?$3If#:+)Vf҇rMIVEu 6&LjX#[aT@yT N"샀)2W!җG] j`aW\bA}Sme3Lڗ:ߝ,[J<&!4 {@mI):MUJ/b./M)i: dS_.ϹuOCHuue$iH1 %%>m Җ,4E,<E(kJ̧A>CURZ*C:"vSqKz@ +Ӓ pmSme:J+mCGYB |BsZj񥶡Tp!C涵v-ZGs3ƼotT(rڶUP4%>$TGI3j騭P8 +:3%>cf_oQ]"Qx +)52AHs>kNR7ÏZvZ +oDb~Е'?@Fߐ]"AB +Rn.M ћz1K4yVKg$A2-ZÇb RuCMfr*oD_(LNTSNU81:=d_S *~fn(¶]eUND,T+;kd2 *|OO'AjL_aG{`eQ,FDѰ ADBҪR +?TPIiь|TMx19âԠj-ԡo@P!ʹة xAE>HCPѐ6/zA>% MByF(k/'A>CTmTZ5 +{zEPw'4Pr! N'K*6:|vKhjJj!B߾TUT)^Q,+*]8sG/N*mKT 'ZL\ -Ĺ +j&0U-p1$Jyn伦b9U9!PiV!X 6`z +)AuOSԯ>!TH[9 5Ux%iDa*zbīz#nzD:߽[O\(ɋsPXE"aOmg#"fxqވZh0%W1ތݫU0|S[*SS" ?W}ܜnLQ5cG iV5 /qB` 3lOO'V ־K{KIіk!ߥ) +D~#Ɣ`NI(2r 1Hd|jPȘ0Na} VjHMMhP,kw8Em>Y}irRd>y ,??PYp!mў:§n aY'̇~0ðͰ,C`%ߧZ1u긧0~ /jEFlNl.:Xl븳nJp8,>a Y*6pڸmBq>9w' $tKcP8qpXkUα`Uq 3:RaF.ut0ҼT`8Lhs0yK& Pd0& Ͻq0ܑ"gJNw0f_ׯ{S?LLUƱ1 +u:2b ]6b)\B̏'/F]B%kZeOjc=oN| U9tV +{As4Y>J=G' S]q4M]{DpXVΎMlzR4Kct"i!Flc09`t +~bti S6Mjv/ۧq$Z=[66C ̆#N>yzطn)JS ct^׃%ӭ?{|vZ`<-koiE6>6s7?^]_u4gi~9=/o^_]? z@2O}^~1Ă`p9>~06Hq?2~y/t{xӈw^^~8gzto>?_;zG<1!E=zmc νu4@͐%VvH%i=CrK[~$2 ÙٳsVz< 6 &߾t#Қ.ŨĂsIm;v\Sv%f3]h{sǴ ~QqD rwrTbA$ kUoO7ըHoZ;O4_VQyxAh~j>n6^9GO*SEªLjզӕ_{!B +;w4,CG7֣TRuvjLRQx08m?ޭv^tExuR㳐:ҝ\yUgeTQ%cØqR]vQYFeeTQYF=֫YFQ VGO)tB5niUs"[ӟ{ĺXٳyb'&˼.˻ϑ1no@&뻬Hd}]wY=W}_?i)@H7맬~5I{+)Ù~)맬~<OhbT|T?'OjoLet ;Zs}fuucJ:;먬:(VlI"J*'uTPRb/%WRiγ:ڝ֫m^nZ*kϒܱr;a]RYJTRYJe)L VbbZRH[7VvR: K RX`K`'ϩRj:ި 8+QĴdJ0\6JU*oe6 flaKgkR9LƐQ5k99c<o-oo59S"yl4Y૖\6RepmE(O[ fJ'e_V|G)(2:÷0R v.l N"nrOh-j;&`hS@)T~3ujo+&?Ţo*zY i-^1T^tIwc'|aBh4jʝ.^EG9iaB ?h3x&|sEzz1>(8~92i-#|듳vei]hd.O%"z}Y]a )x?Xq*'U-)&/;zce-x{= + /i,3pVJh)PHL+> 4v ͡Y=pzF끞zgk NhNSRYq~Hjiדg0'5 (k2%ŇzJ<'_ - -PZ5Xb@iK8-ňnZlb,U IAC$5%Å!qи- &ۇҔ,ѮLUD(WiO 1Z_fMi>ǡ.(HF#Z\7(K0F0=zFtt IAJ0w#g4r-OG4 kF4NKF4 Χ#aRDq|vo M)ܥR>z6Nh4\Lv?)%ZbJ&48 +@ėJ53 ʌ76P5ѫ8E "h=y\$=}:ff\ĠQ S@D#42<&h_kZq\d𶻘C2>SNi,\z)gXY>.ݔrV#HZ)H+b iXszI+&F1'V"oRZ@V"k@Z񙞵: gwG +E +$3Mh+#V,Xcz~F'"5}xzzА{񖐨Cs(Cs@\ Ӗ0 Z(*Yl9]%:m9oj&hKmD-ʹ Qa.;votxN!̀z$M;?z)y;4%'vҔoGҶL!1*߼&@

    ~8C;C|֎a1AB\3sto SL- F'8zGU)7Y$%zݜLJш5]N,JS~x9M$m1f"EAoؚMs[ $'/ъrP[L3^ =n8'#F|dZ 4%AN~=X%ESpC|IC2)(n&jG\Q?Q'a=֌__V՗K֧\W7m|uo7uFP,"@0ߜxo|}ny3她|YPy8ª{ǧ5Ljp +[| y{_ϫ}2grW-vn[m瓺>],uDU>V}J~u OZwxj11q֫m^n |`ňo_:iMۋbTb֋j;);ڇj.c=䎭W8 FY[9FۃqQ5vԓ7U=Y,VK"jz< Ҽ~v[G噚DOc>& ףͪ=|{|T>M 2}3OW mLe^HzuD0?:{(Tݰp-#Sa%:O ]Q=Rjz78xT[z\б݂N]N+:Z݁j]ϫgA]t%_.mAya^m>rK)C!%DPJ i!9׷lbfdho?w1Xj'B'B'B'B'B'Bn ]+LhTNR +7FF{TޣRQyveţģģ^cQDJDj:EDDDިH9]م ',N+ p8$V衊*:Nres}VRz"]C< 7 D8q%H!$V*PE\բok-ڵV +res\5JB1B*wOaCmw>0Nc>Fc~5}\5ʹwC߾Crε:fS_i̻xC9/^0FyCS)};]t_{x`nQ/vⓍ;d۔Zۮ' Ʀ xfc~oת>Ur^.&"3m'HvlD%I5l,}bH3&j|+e +endstream endobj 181 0 obj <>stream +HW}loI.$$9>R6_G !pi܋}8.;_TP'1P 6UZ:HJj+$TUBP+R ;ߝ.p-1"ys#{qde&+0Y8LVa2qde&+0Y8LVa2qde*߈! +7,LVqW#"Y|g5rQGbSzČy}qG|](ȅPE%9`Z1"kmdW^9ܾhiںzfْPU)U,^Ʌ8V0qMmUZ(FXJ+6;;iղʲC +,MzB;v&hQN'{UUPI!Eu!Gh1|djE+o?96c +k[2,]TsS`ܙpe5a6^<:?lS?:k ++_zľնc>J*uMԕ/?:}@f^"DkC/7UH3'*uxgbϮ\m n}sԹD'G&S[[KEJ߾}N_89~QEԻ>Mbތ0#3Œ0#̈!33R'g `.=7uޔqZ9ϮC'޿p:_z5}=zw?z\Jo|}T WQe/_MFTK~_?묩#X=9S_}g_.Ή`]~3g'&4=gQ0V<;o?9_NrwNw-KV"m៽W5#_[kJ35?ۗvS*s8߹U/s KFɍ?ѩmZiZ]h x ǝZOZu=v努"dxjy /Yzey"2"@E%eP,5ZT ग़H/]5Sw)坎v8CqNhhh#-$GB6he+(uBAȆȆ-Gp"8 +r%`z >?EQ'AQ8!Nu;q{ɋ! p#|D6Vp$l&#gmn ˙Lf$iJ6HEՊ߱l"*D; [d#`G#ܻ]n, s1&!xo{,xBrViuUTUVvPAߪ@"l,)^;p`cL^a6QIv"L +$"-P(l2Ufh؃=wP?ߡ=F>ǕK (/E1m#Q{F#gMQW8m41?$Qk֎"t:IQª(_ix_hg2q=Y D<-˷AOOb~_o ppPo`݋!?Px#P_؟_Sb6)8s.RdvSh?'&"\h%^͚D#жx,LP59ю"!xIaFIH"<`Kiv$Lr N&BgՌkۀD$A(幧 EYInhʖ4n2>(wd|3TG <_trcx2qU* 6(sdPaRGQ3֔RZJ&ɨ~}8"0( "e߼(qC ~yQ=vS,ǢyQV^(U}dxntPJ(ϰ/Gw^HWT>stream +HWko.@a!@!rE>Sİ]B`,a+%e7=w/#ޤM@5Cޙ{:x.+wtEnf'fnhb$OT43nW3ze)}U/< |7pi27բcƙrſ'jsST볦*VN:fb5Vrbe2' OyV. (y2*'ܼn ͼ`Xq6[h弸/%1*x™y :cBLLCW_wG->ůM]NarG2fY4rfN[UOE27!ke\k^nֆ2ln~?h7y{[TOڝ9Y + s!=h+VXA:ي?=6uYwSMLvWd'uQuG<>N/hߴZ 2ԅ+`Y_V31Κ"ϖ,nIN^Z߽l+<޾GqŦ\pۣGD-*oY8b'8ae{ؤ/޶iXַ0Ղ7O4#/~?tEXGwԵOy},W7Lӭz[c6GvY^r@4@ܬ;&6+<Ηo?WY7'ʠo~o|jWL(on)o-MӓA7GGWE8rnE#[珴!=`h12+CZw֎d/Q%uX'd|cElߐ(3RF-y+My+HsE`Ό]U7ł]SL8d}꽙 w1B'<u#\!'|D E$bTdw4u9NDNNBou>BЍMLr)#,=K%e(#fi&iFi4HKeN*RdI$IDa\ Qx888u`(8؍eQ +x 0QUeFnD"aaBHa T>h-C7BriT':֑CZCi_42cB@EàC1#d-mPP{Tp. .#-e!,b #6@?*Pgy̷gm@N52ݛg%=$(g$n'l8N۴ݥ#. a-MAq6ew Kה3I֮ھR*Pp.D* 8Ic>U|( kI9"P(LxРFdQ%1IɍBiD|d&)n4Hfk:>Q;b3´ p!IKښx$q*wV1ҕ"d/ܑѨl#0@1)<2!B SZ“VD4q`'e9bD4B5֡vbPbZ= M!ZQ! !QCddE[&ol{ >y늀~'n3/p}A ׹=ʽd7uu֔պ7ӉU0Zn +vuĽ8Esqz\*ͽ"568 븱nmt߰~mbNW{wuziH$d,:jq^;j=/K +Wyw%DɎ>KtT٧'˧Qy:DZ%F3MnH|9@,֒ş9Io{1_LDdV>ROm0$>22 o^(ߗow[xAOu +jLW,Rd*qcemg{% 9 4/vb_aWRq'ld?]_W| w]^{g/wI ႯܸʑMLW>ax +l< s8?s" Nl{ |_kkk2s S` ; + ( u +A_,NY +.zjR[.jMt:]H)n{5ȅ/91ӑyaU"OgyD)4 G#ʷy7ݛMn_UpןU_|->JFF\V Œ hΊ.Qەӿ~}=YKc~yǔ0 *w*iͼ˟ݯOF~@A }^v` I$X+춹,3zӮ=Q0xhi,. өieK(JH0ag _`߾#?YO|:RWwY`ƨ/;? ?>/=?'a `@e<mP * ja4,zj&,Xb(d  uYn6ڛ +ż)5EcK󞲌2g ;[fݮur&>4]ERt}ꑵGXDL{>#K'I?(8e!TSTFi9Zie< #"VX[VFi,2ٛi[lK~nEtigh(.M8 u B9p#k6|䁦l>x:;J#ׇ-1re2HrR2*eó ؎҇e*~6p#6D4QdH/;utM>1L*[:?.>m"bN/ͧi";BӜ9LY颖r'3ZǘkIӰ/}z׻-q  +TME7)*ixvMMZXԦӡ-1gk̷uŁTR_)VJV¯q~v 5)[-ě78l5*p-]BNq0GGwnelPʚHYjP#B䲙ܡ]P(mӦW.Ø憎dCzX/]cRkp(B4f ROq-:Q6⅚+ +e].=ߺ٥ U\yVZP'Uh5"h j5R,u>J%wS̉Mbqdl}*FO܊?>)zn:Ʊ1}k׳tl]+TZ\79GŦ+V>NKRChC)eFğe^ ? +KG&vɩ7ys>NS9OH}uVz4~^4u^J28~RSM4RPy'" ,'b`@Ʉk$4Sba`@p{}3Y+h(3U9,u6o4eN>5xkM7ŧf;8 ΅-`.[vzJsM4{7t:ʶnYZt?iJ 4%MbR6(P +iT#=5UeԺ4\y5!ǻQn9EgXq5mQ->)3i pwt_wI@KP-e}rW{uĽudY7OП?[q]+yeˡ{Ѧg߿9[/zƇ40ӋTU5jz5*GMӭ[ 2:u< ^~ٯ+7F5;HH6YFc4t9CnO,vӴT,=<.xw9ˬsi'cjYgY2 |}RM?^LhY&s3y$r +Rg/̕3ed|:WNST&S5d1>GQa +/ð&XSg?K2&hY*5RV2EB˥r +ƎzPKDttN/(+.`0a;0\5`xkxWㅓHWQZ㛑$E jh +XV@9aQ젯#IT^2XKZL "F'9P"I1Y z>אP>BqbxKh15آbKTzMr5S4ԼZ6 .QѰ1ulg !7()j#T23`F6Ċ zSDEAPPEhX؏Z % +Nq [b[@YC `2_S@<ڴA\-ģs_9EKg-gX8ӈ(xш :GDÃx#(&!!{hhb0 ⨰LPEƲC8W|1W Gu|\"mpr1 7{L 5gޔek] aK;D 1M+x& 䢂]D.l׈+0jE9t@_c!"S dӂ s-(1FJhgC<"_ d5!T@` !gDuQ`h!PG?m!ze?_eϿ\_>>~0D +!𳄇 & RMa1Yc+9$}+) t/޿UW^5yr뉫䭒Z25a1]$[ILJ*)j)tT +HKP5W/Jhyd#CO!QsiԱ,Ʉ?0S&6V0 +?;.L/^X;Hⓤ&fY|ÄN@!IIY0tYGDV4Z9vjߺߧsr턥ٝ)ߝr^9}ث^cw+=ž~ˊw_^t?]f6:x:< yptttttt#JJJJ'J/=t#[.UJŻ"٨-6]3E#zF/uQoܫ ^SK:[:u߭dRSu9J΋W^KwIrS +l1 +ᠣJ 0HtdVÀѵ{ƗVYj37/OpƆ_3y|S7U}S?"Dĝw>#r܋Y g Q؟X'~F FPi#dN: ,Dj{ f@x7ubƀ$jY'D1HP-8M9Q;͍n!m v7A`,HҘ tL BJW蛆,And#N0G׸ F EGBOKL@|NOġIsnSTUV е\:rqY2RQvwZMU=jN^jU*K6 +26f[A9F~+Qt߀7f6 Q%q6>[4t#bzwXEJewN0+H`8,U{\P#n1'Nl {^ fLL :6szDp(sHLl" $ekLu+W^IlAVb 2] L(SΔ .ӃWiW(=c0FID6"| +:'"lGj967O_9Wr{=V)_H?ϟ_^IO_gǿ^ϟGg_O? R4lW<^ptśX:H5^5kK’V"/EV *Jׁ>-scE0/uZ: "q>FV" K,1J,$pEΝjTZ \Q&Ea'mNB.=QTYzja=i1S哻H?>@Zѻ,aJ`:u(NX>>V@kU:H%VCњhU.ZVG +*:iVRT/pvm.#>uF+<]>~Rz5j7z~j:6N*]J1]?Lu'y~~x\9{}\9nqGK6'[ Z;Cʠ$ѓ@Hf",!YxL9.xprNFbdt "hvcapt FǔGu -I,u6C%z cE 7KL D=ࢌ8px|,#8x&b%qO|D8hYd4Go8J X9' WәҙI3:t +Ƅ/-23!%:8鯐R'V6Z=/xK31jl8"lӃ %R))%(d$H%Fun eLA2Q)i%kCA\:^ř绘yu3voDDn<\!'y{""C&kLd*d\,;.as2g ұ&>tL<>ǑWpR7{vL?^ںzN.g"d'LoS^8Kf.M8Y^ڸ. Zv"'H R\|\+ Ir:xe !]/ز;0 +q#q qP: c 49C"iM&p$1 &TPɬ 4C<\ynaVf銮t陧S:3O/]0t V=57;0V;Z]7VY7VWj+UJ+<=r]%uJnԚmI/__bf<;jE*YxLC,usԯzBQ T3s.xzDggE uΣZ&Pf,jrtߞz?8( ZpGb&0-vhCt? M5x { s+ܥZ[!wFi&AsYy\.Q X =PLjFaA\eYav$ e-ckwCoGTQ`@\nQ#wh֣݀'ٿF *o=<GvyA&( v8Ƽ,w&Lܙ3ML9{[^oMEy+6JN}vW>~Çw}951yj[=6ַq_ +_pO_>>~y'}^>}~͟v忯zy>JMzzl\Rt#Md#Jva0J,Wd222jmViְWC444p`FF JU$ՅRRQ_zaHնVg)c$B7姿fWbXMF!їfF7RF|HahT GA}"=xp"31!$]kx"9 +{/D- UE"~%,10U׼ +x5砧39f, ;|&n3 +{ݾo~ ?Êsf/w7+A s-vmFS֟XH0 F͂5M1܎+h&`=ѝ}j1X5 vC?hل-:_V(h `(ไ̲aB 2KB_M+ZgU~,7xc@t?y:)Kպ8+!q[2z𼷕88oeG6c#KJnl& l%fQl :Z]zYPvLo3/7A oYnqOy#iGxF@:ܝL22j&?#zj`n8QTSNw9~ȩkʈ/Cg=ztrtw.W.:.Iek3WgԧV)5U묗ks?ULM##clgV7l{]}le2J5ؘ+{V;?;g̀G@Wc *LjimwYv>#p|g >%vEGC= kdz齂Dozl]B:x?߲^P&,aq QAYSwLK&Nwqy%MUq׮MR.0 Fk%_}~ (x# /aӈ8¹}gꞳjy%Ys~TgP70v'zQ9T]3YOhyJ,{L$kͷg~#|%`,OiCc\9 -ᥰfC-c0\x/];F`PPZCY^1yΙιSS֒wĈ/s,{5y2zu9@5V29j__%oF0Ʉ^'*%d 1k/eRяoi‡ۚ b +$`>So}'Z҃6O: SHhot&v- lfx}~%D2g;tnT.…mI/g?ku vK&]. ̈́O>dWK  ]c22ddz" 1N1?lRwT)@ʓ\ɒ޴՜ן-+^(] 0>4 +6 &5a"2SBg?HCqե FFM5рWl<$ۄ3f`[ӝǷWMmfX\z4T,lj5 Sf$۴6CR>@YiaP6%zpRStS_=o&3kUgKb;꾽39߬$Nw*n;պu程KxQ(z k]mvP(q9\t.7{/#2# +B1Mpba  MtSqYPbl)rZ'v:t)y60|/fXkny%(6h@V8>THH S'4uv4p_nխ:;άy*ݥ.zƵۑQ>h=p"R`%Z%1;)v#v =^C@Z1DibC Z0T†bWhd;!50dmYs(5F/@O݉JV\8 " ;P O_MՊ!C)wN>e-Op!2I?dj+[1 +cm[o]mLu t~€BV#3#g$|0_:n%U$ =E`xkaEuhRVSZ[dFb( }m &9$Բ+Lg|Wh³xe}++ka+#X;c,w{Dm ۶b.k"}3=blPĉ.Imu܁'pIѕ)DG:u {vKn8&[z=߷36D.D!ʋh8raaLpI$aIӓ8-p4+6ȦHFN:d8<"̀R;}oUZj\ooSsjUTR7zWuY K'9mN:4(phz?ُUx,S݋5cǰGwб/ь9'Ue/9mw=՘$I8 +˜|1u[k&Vr#6! 8?f0[uo;j<'Xx<=[΢c.T+J% IBIGlZ*=~B_OZQIE$2g%ѩ-Mjb:$XQ)dJ:ݼEfJZu[zg[T!p +j(VTp6 ! gp6մhdtVK쩬VKrY(YW( )eelYpNRɻ7gRIEgkʎ e$6geŋH-;2˙]lQ͙^ټ͖b|$'BVKg&k7I3а+DŽh۲:<G`Z~>ûqyg̳dZ)N'-충Hd,Y,Q,0kAo(:E0+`ѿ"~YeˊP&+bW\,qY>stream +Hmk$/w7 ~~0!cl0 RBn΄|{wVZ݃$Ҏz5=]տWUTQGO>ƘcK"I&T2%|)'JZҚjYeu60}v9Zr͵"ab]%bɅe]Ģ`f0XZBZ%LW[Mu5R-U[0~?~7gf1@y^yb]rsr bM6XoXmV ,$`3Xc6H#]tIGN[mJK-cRTVIEWNYeVJI%:pXy{/^/͛Լj~5طiFؼl~O>sZ!{"b0qhh@Dbp |q/8!tBť1J9|Ap諨^f5[1 崻<7m]!1*-"x#T䉤䛨O)bn޵y8]קFooooHߏo~_w}h/ݹQ|qj) s`3K""J,[*H  2$3^״x"@c$+"lp+ГIlMjV,x=@>W'p(&dGjCs8 ,#5Hй"IB8eZÊ@HWKՖӴD9QSH5!lC'N7GMFWf+ƗTִfHR@Jo\r$O<[`K 3nKmm$}aF:| y޼8QDJ$!EuVS^*HzLd&ȱ+s?H-%83E)EN8$I&IwҴx:u)*2 -e.!1vqH۲6uCqYrjDLԃbl5D5Q7Dx8CD THDa>&C] .. Pf! 'd2䁎#qJ88ʆ0q攝4?(T72!}x=Ή 1Mx&Dr˂A]{$v\RÙ׀ #RW09ED -`6 | +4ȡĊF,R[Q=$'qc +y{S! ŠPC۳XOf=7?"\PÐ"ԘKVy2Ј:` +hV+VƄQ[VAX2YG~%xࣃ*x &a+bPxp& Ή¹8Gg%D/A?y_gieȀneZ# ܁tȧi@q6ipj u8 _&> 3_\nKťHth|#6D!A+biwq76*4=M3~l|ޖ/wo}ݿ#~?ƾy~}{390o8zTf1ۿoEθ3ӧ5oi4Jq6-_l+{{QŠʪVTQIT@$n +%h "5T1TA(?+?bF"d +Q +^", +#.O=d,APkAj]!sX> ʝ24 "Iyu!W}-4z +y;,AqpoS 8qH!C DLHhRy!C0d9 bh] #CQv31d:x8~dj%>彭a6!8#2'i8/KQNYZ_v,D E-,G;/Aˆ{=^>{;&N) Jk풯7'_'I智~=iwDf?=yR4ʶ0TOȻx_Si'Ekp0#9fȑ Lŏp>kTSvܹvo{ߩo5|⩎oOx:8ܜq¸'c#q] xgwO[+36tm_398+%Yi(qոR܂ty|{%8nK`9m)5ӬP(;uJt J&tUF56Wq^s2D?~t$F-*c>*2ГCؗi-j۔=>~3.^qnqܠ\ x|ی +݂y< R%Y}\zQ3 +k j&}gߊ0Z;vV]Uû_R#Y +|^j3|TgH8If`l_*:ȥ\}w~דPLҍeED:]@QJ8W {5'hu7^^ιM~S.˅';B{;̻-bm YwOϟ%})=0w??~Y M5c: +^<Ɓxb2InZ']o4͒^@\gWg WwSB3m66?SWe<~BXϞҶ}?LϞ֓m1ΓI<'K~?y2 p>o j^ 7/qN +?\U6Tua|vaa{4 X(w?τG\b "B@*nfVJWazg*'o Vż E cB;ǒ"} *̚\[WL~Ŝ9|;i =K :&jOA82 +eeC%ab򰃙A@Ī T2PJEJPn{E;H +СV,0hDX%HkrT0GUH^3?9ؓG~JUAu jO15` 8I |TxgQP{0BXz$k 6  Bj8g +-Mα J`-zYĔtP2q-HȤ*YbNIa 6@Aj ް_m-|vXjLނn lU`&J=Ao9bjTpГ_Yx1H :NV*xH&>VU~vYXybz&p˛@̚5Ixsy/"\m/s#I۳؄j4UF9I<[[ͭڥ3r/fSƠ9RRЄ%ڦ"$OJBWQS*27P4/꣞Ltpnnh_yX(О9;vw!^j?jVrIfj4[<7 pf2Hs1,}3>%W _'ᔄg\r&<\oGN_U:lJ{e@i,j;TWkFO k7/׭OW›Z<vRoftOaʹT!:KdDb CtY~4)W;$%u ?S\Tb]8d2d2dn- L +-$~`59e3gw !)*e7p}$9wx {:f ]\/Ha7 OylN§kƢRhm2^=ŒtN`GEM%|P8%Zgύmn"Cn<>t]qxNb"6?aН0[ʆ#"Ƞ,Б3`v,*lGKDoXsi~`}6\,k`x>w}c{-.{lAtk]H'qSF.>Wiw!r ȶv~e<=J6k,$7'i6o\7\P{S*`'6×ZJQ4` ATeC0-EC'^RáEX}zN7KE|:8W+'U.[!b6,< kPFo>:*p::sX+WKud:'B)>l,Z)^!Pq z| ++Aܕ%~hڵ*Ṽ!b@z!($~ cmQ&c;R+nO|=6e[OMy2fءh_ᷰ&A;{>bTO!|q3~m`mKFP&Y~Xg]6G䲶ËDxcJVFOrN*,/Q[s}.ۛiĒF=[3 +Aܺ=1g+cbl.qj=}Criɏ$Ǵ%35}4]qؖ/<J +68Bޡ+jzO.Z۔v={mw;9k՘aMƓڤe-5ubγxDX5&Bm,5UNކGd0#JU;` _pxP7 ֲmRkG:έ֋(}PMհxK%TV}ˠzE҅_ w[w17Y2zЄEq&qN 0*x89m0$+|۬il얧^G6nKD#BSf17l5GEؖIGm?&ȏPɪQ<&zI + }e$=Ͻ&%B͘a9)pq#._Nh/Mq$cänFR?# u >c{5${]iPkUC2n5[w2Kk>Y34v|7R[#H m*Z$ݼe#Cf؅9?i{g[fL{Ha3_*k'ֺrupW.]:Ǐyrp04R)k/4*#.?;96:^\2t"߸%^gզ`G}M&X%*{fæHRupfʱ9 ّN !KXב~&lb8_븲~;i'p" dZ͂~:jHce8:r|Y=?Kj,n}|lwcM9hzӡMwF,_'!3 MY.]\q? ޙ@ʝQȵ;6dW{[r՚Xqv +ׯYehF(%{)?l."Y y;./qCߑH d3?>ݪUTHU!э"}sovAHh9z<9ȡ95C<'j*%ry?(J&jy GJh5-Ԥ +h 5.;3>gwv标2\?}Nrco13ūsԎ +E#°fTNS&sɬ1i#Kn96Fs``A8ˉ+q#~.v4*5E +qz5^zsܝ(;bo(F_v42d#$%oVxr%o*I$өn] ٙAQaIdtr[7-yGmDc_ΠEixݫtǟ)6 1#+<|; +XFjA4,{#0]ٽ.G1&5#@ _2&FU3:=$nwY*vlJ2mXטz} AKr0I3 a렳FB^nqB^46O9.LQ2Is >@Ū-JXNp]{}KS֧PV 4^x I G{1pfWiS}JHGZ%grV?! ru쵮ϩ6PJWKj'.2fpB37}5266WKX`yFZu.tI+B1jdkVfKf +ZbvRFD +%!Z%RO刐SDr͵;M'0kڶ5iة#l_l1aqcfP]"x,hj*>CDR\P4fͺkN. +^-}Q`)^LuLPL}8;ףx,moMN/=DO-6>cRr $mMWswug /]uU 6֝Ccb!cVab4Tj\#$݌H(/A}uZ1_962j=Z) D?CH ׎nV9c8ζ9XI E7AY#2&z\bZ` N8̵bR/kG(ڂFVZK鸚cc۱9n,܅syv~%69s:m1*Jx9HNKCI$[ss|zdNKcw(#0bT _ iÎ$ Cj[=|XD& aG;%r,A80r/> HPvA y?8flFj-06{ 8:.r;&r3aqII#n<+OivڅmP@x9jEa@#7:Mt8+uvxL,*6Dx60&pC9MlMK$>DX'K'^؞>iM23fa/wzf]כӭҲN87u;H];˖=ߘ`sr)PN60goø|fDĒ Bk qVYah'? +0~-_A"-[ D +^Rxy.|n: Sø V:,]1i.A}?Hg̸=s$׽Iͼ`ncF#5Ĕ)x[K ߋĬ50mz0_5%3lҎvBWXoC&Q6N3ϛB =n%Pٍ%}dgthj RuhQ[u\>~Rbiϸh0ZW`r\?]}!Ǐzo_|-?57o/ GǏ~%?>ٿK[ƫqpa`af_֑x3o_FN RX {1DfӐjzEm7-EØˤZ!MZԑśP*&#$'BZN.0t)jI:ΐm:cRZ4l%kĔ`ҕhJua\lC5%h/[0aOd>x<ϧZSs.1ۛk*g]ē/c g7HL1gǴtҢnN#>B@8=%c0\AA +'B ݈|䠠, `+-Ҿt0)A')sbqѹee-?Ad(2X!Zby +’m KSEl8mdcel+\Ә8b0I5\Vvrt>ƕ Sh +曾wHI!̚sǴ`lƒ@{w{ s^skuƧƺ&Xq8ES$}; taïK}U@#qzXuPrCRO➗L뙃$@DƤ#$N0^F8OWE?#CϮ`p}]K2l418fUM:(_E@p|=h!YK6$M_I8{i wh`Vb̹ܳ,U7OxvXw' ,4ǐ +nAS9M݅,{]׭h#s0DCXX-YRPD|cW/Lcvy;lw.S"b`'kLM3ƊgYR5˳I -Ѯ`H4Ҽh }UZ^mڕLbMCcHU[K[_ +}a& +iqwSW0N6[)rr]Q֗Z8]߷;LO!6?iƎR+~ o98ϯ? cҪ͂,Ӕ+ŷ3bJc(`'ҟ@y Ql[AٖF / f/J8cCF5g +O8ҜLOHc}GCJufMlZ?K%f:|1?g@뎳5#lco>$6˫84[ӅCS.VM>[~C7Z:68}/DNy'sPPDco>[bM,q"1D7<\)&2z +n `"+ldqZ^la9(h"K1Ksڷ\AU|Z9& lS+ME(4rg0@8 Iƭ`w2}4>K8|vI75(RܔPi8 `+%BɃg9((9X1K />rO{MT_a_x; e _St25=nOJxG'-?g=_9hj!K />].)R]e!lUY=]1U{Me/Z%*SUi ;;A^Z}% +V8ci1M]dB@aʋs䴬QW&P~J֒Dպ$k$؉c^:J)/NwF8IYYB3d-߹7/ZHiFWѾ=u"ƫ {뼍c{7_-{:XHE0-3=sPP,Jsڷ3*;C[ +&7rve=ʛ9g0>Z%apGzB0x + +o[Op2WyqxEaG~GmFP㯍zWx岞IvDՕV5V/g + +’o9[.H#բ`5)V{VeѪI\(4k + *:xR!SU٨}=XyrH``,*|rSTXqf0h5q4y+X:(9܏Mv~ `/-оt2Zjw/s,"BGaJP +,~L͋ABRJR4|CW/>˜/UO+Qps\cVTuAOkPZrՄCp,h_:|r4GS 8&][Z 46<4vl O]U6Z%cprPP,ڗY A;oYrPWaح\w¯vz ՕZWtwɼ! +Cgp{dRQ;];P⪯AlU'*s]d슭5G{`y;MpCdULb`:Qz>?mq#W_qnw4[Y+f3A9V Uނǭ}C$ ϰp5۪h.Mv֚=|x2G\<-[r~Y8frPz)A A1s40h.ףطO{HaZ4z (9 +EGQ\z}'kUXI`PMw, cd# f$Bpzl`Wy Ѭw9֙.h?/~a`_}ۿ|Uc՟?t_N?vq-(ZpAmdzZE .-*;,:N| #D+}ؽa &[kF{\ -ԐɪĄdcrw- :RܑPct77rOuBJ]kH.j +>"\wlt񙂸. +Tw|f}.)lf0A&Qy-uLW 2 +vŮ5=}x.o]bOO }b2F))&GJ3V@-Gz9RA ̸j0uŮ-#==x0Xernb'k \804MrU{\8m-cX{J@֠ +>q-0 TwY/Δt"&#?8va,4M5ۣdbcWw>ciJPf3Ӆ''d j3N9ň\q↽ցj1e] OWZN 6d4:WOTY/Όp TlQ|Ds& qjq/:P=Ƣbxhu kPKH40&`WlÃx9,8R &<WI-Bs 7xiqIά:5U 9ɽ\nTE+Όp:6BxZ,s +$֊]H [1yM{IT&GPw۟ޯQے5PzPCOp ZGh:sg8ް+CΡ&FsijO5PzP%qeԽUe4J{f OE`U EMYMbY1Lq4e4{8Ŋis|a{Km&ǹqȝp +ȶb*6ٯb~/Zcx>[`LoZ84{&Sd.b/t?N2Iϰ +K"Kgq#@-:LѲCfϺPXmќtx%YF+ѩ 8ӱ,ꆵމj݁ TQܨ1wZT\z3)[ ]WSK ߠ- ||O b{J]#32Q3ZJzgO6[Ebmь4ǜ=aʢ=#W8Vd>stream +HWK]G[8$[y?`e "HIwJ g,,艹3'\vV#Г?޼}75r w9O;rΚZ`w-Ra0v^d ApJ|408` 6)03wj;Swe|9$|-EORMsiŘR*ܹ+ܢ1t(;c9sBÈJ!u %W .Ef7yܰP !TSvfs)j%VpB\fks-|\ϕA727]Li !7.M^lmB{AͽHvRpڇT[;QWA".d=wqHq2x)]A}7QJ{=zSțɢ1݅qn<{JtqǁKCu@5#VqRJI=*8&Z Wޕ~ J5, -h`PMf`Mn>˩()?SbNW;vk&+q9*{͂+=8q*84G G:vֶ_Z մr`=<> Y9^<': +ԆN˸1਄?MNb^ǿDW \sh|0QH!f0rM wh/gQF k`QfQ -U^Ṵ`}_ΣPV<Y)㫂ʵ! UO;Cb{kv|&uZ݂Z=}){p9eU5!FkXZ\^g݅e.s}!C%T۸Un,.NZYVv<.m>D^.0\'\U1V V4~h4âWMbJ{waYΘb-N##kqoeʋ|R-N9ɲ,hĔ8k +bR\Z7N/wypַgPel2f֕J!poYb: +!\W*F;?_6LM֗pR"2՞i_гX\q\hd ApbayMbѫ&zw{ ]2QzKh_ i.[qs '_SC5yK/- {GY##j07LpF̉VAְC"\`ڛ\#='K jPT7fFɀdBy a,'qE ky01je8o&Je`pyjO[p1̢РfM8|\iQ50&`ڛAޜBW&+tDfTה.7s^5mւ$a(\q*ǕrEj4\\l.Wէ_~x[^շ?ŷ?x?w_>{yzDQc~G+?9pI;Gpҧ7:N cTTQ6nq,(P58`okd pm3fǓ8Z89EZcZj߾w4Z1=-Cwgb=4Fy7f:Ӹ A` o%Ӡ![^XJ2":gGȔcdJLMo7k);M~ftN5icAshQLDUV^ ZJ)RClOc%3nՑmVLˆDɾO'`l~ɾqaz)Q8py#8Kv~^Pa<8g ":C`|sflz֕0?8IoVqiqw-"4C_'rrM\!hc#gy˓| +sf.+p!]n0yơHivC}vgqxP ;SmއAQã3xVaR37j.cx3_)n ޠJo{a; 2k3;K:0. ˚zM 6W{&QQ<;voy9$ff|OG<IFH;ޝ]~e2#bo|7W?$&gd Bz{h=qՂq9s 瓙}< bB յ?7;0L)zbcNU8%%yPFny Q}ޛ 1ZD f4gW/E)'5f_lr{`B6-[¼f{Z0K]W_mCDiUV5g!L65#*8&];Ɣ3zƲIB1vhk՚ +-H4؁e>̫D$ V!8ƛuk]wN:]tQwu[\5ȊSN՞jݲ-ku+6!:M)#lЉ +RaIIvel[nj6z6:q]um +#{{ + f"_/WbmQwHh +KSg,[bX +] q߫K[$(ae[FHH +c_70 ʷq֪?4{=ؼ6f%F^68)!F !ƨ֪Bkd|#4=E&rD‚s>$zۭtUma`$!Uv\oq݅Zu *O߽L$&3lNylUauG3^9lfIU8%%yDV? iJ gm @v_HD$# +"M/u]Qj+#D ̪}jYN7j +xI1@# Z a1yb-ے^[5֚H$Uf$µ̢}9.W=Pыcz&/oK슮]1MjZ U/mĩڢ<4G+ +XF#uƵZ:iؾ? aWۮcu` jIؿfŃ2lmjeL\BBLyPYn :Smcvi9"-jqpʡA7x9e?fM/^P8xU#ӳ$E Ւ +}"Y$N5=!9Ǒ#ZQեwP!~JY}pKU; +endstream endobj 185 0 obj <>stream +H_oܶ ;@ Ա׎ d{k#cش\Z1 +EO>d_ZNݡz ?pg;Q?Znx҆$[k{~YnrQRۢKJ%y@b))U'Wՙv&2qhf9cXQx +n񉸔:@Ԗ}=vΓL8E$Rڌ4؀fYVFi- 0M +aVj*FSrRe *MY"к/fV,%0|RN2yP1+v1 ZRI +ϭz\)1˹_J[2=UЫi2T%H +*`nݳ + ןtZ0C@v'F ɒ/bm!*o*@ƹt2h-[)UBG=vk +ow| 2"k%Up*N5=ijjCrֳˌ(s[‡Zu- +ME&6n۴4iFlˣ[5ys4ҍ!e}cqG@mZ0ִ^2n -rd(ŵTR!831{B˹ϭz|#2W24Jqiccתo4BBhJ-+S-sg -JkԂxe I>dwR*(] bI]U.M ɠn`Ty]i +:z IM.ːHV&L%xE4KCKzWR1zqHW2]-'X=Fs4sD b'4S e=?;Ջ5&Pۀ3S>t BAR8>Urb 9e($G>oT"CBp~z4-nϙewf7ϩf.UfN-3[2lh}F?uwh&OiYʪjF{9ƗԲ<ɿ(/z +!;n˺L:=qT+Ҧ~YjY:7ݢY>bn< R2ڀm D 0I`v_tX!NN잞M.ɺZQ*LȖ +nۍ⢜USӱo\89f,ZFG``CGqD ̼TQa0unҘ-THRs2Wߊ\07R!۠𞞊RI-X" C@v'KG$~ n\ 1Vy)K2ΥA;nqJ:豣wXT__̫cLj-A ^[xCg !q(2g[TEn#7V*'3ָ|+ӿNOgb\F?uJ&|$>GPO(2ѐ2]^'xCg -?m!T6j\X栈w'%Lf"ca|y Qu€\/w_B(:# ^rjYd4Eh6t0ܴhJ-Czm0ZK!vsD98z_|Ҏ5x{#4-;RZUwPsQ^NjZ8΍Ds}qID!+%Mc@.H@Q%jmɐ˽Xu.j$h8;3sf> WS|=qH#}Z8>\>rzo\m8~/{!$3h{蚏̡z=,%N!;tEd@M\2y={uqm^dq/y [mЃ:&lN2jYzJzpfyIs_ H硶]ÐZ(J$&.~_Ik=$އ qΜ-$vg/uY^Vr:#+S҅|3`F>Ξ\^>WG#tӱNŘ/7CFwfGOg"r^6ptrROg/G/WdqVz=_M'W?vs3>SeկjgoN؋AhW]%K!j)!֒`89%HWZxemd5E֊h3 +}2BCX9l jk$'w˘ǑB5!Chp(t2P| p۔l(ɺw[Ŧ8ЂRgu2uN ~WBҖ5*zojS2#XJm" tJIagpJs |Мl)c-KSsTNGH㉪>q\kDZV85th.˺Xb40b㒱FA*b@ĺこgF &`*Y0!uY 䌇@qVMc4 0WζENV}MN݇3Hi-a׭9L^@2ڷXW t'wrj.LC}c +i݂ho>ds uπ^oo߇2 JTF>s!LI|>"&vN.DI3)P9xw,0 d٨IqE9JCQjM[Pƨ/jj'p#E۪,Jmד7JAR?,Zq(ʸhihW*M66hǃoBc:@#PwfX|62y3$&tERgkhܲ Ho\QbEUqI;eZ@R. VLj!z4PWamwjcnD)Js8n3 +h mb>0 8.r@!qTۘ20< TP[ja5Ų#L^ +^OÌF:FqEKkihgmr(N)]bF3KҔeQh[c!zNқ!9^e{ӆ‘i454X9Fqq}`bj< +endstream endobj 186 0 obj <>stream +HlWɎ7?Cm.p'=ɀOiy;H'r#lKr+E&sx93n>L&`L1 89xD@u Y|K(N9,Pp֑4([U0o~ + +k١XjqvbI@8ࡘxMzW=S!v4* ߥ$Ig'4)4+WA`0*96Fg.W 1P(n&EI+0L\\ HsMfψG40#?zu+.w0X-bQm#"z%'& +~l\Ȋт#۟G<۷_r_X# J,=# Q?x>JG+9*|=??w8't\Dڂ[PC?1@ +p&٦F4f;>}_QjbQc' .^=3INh4 ]u4}BM+ƘXu)Vm6/ h'~7QyA_h9f+NfPr4]\F, +mI8v -dȌ$?]AldLN6Q*g`/(z~H6 #FZm0w sp.`y0uS58)E@]iSO$ +<' җ3#^ڗH lJHhͶB"Q\*jCP^IjFU\.. cdAnC˭V+J Ox // +V\2|X-ywePy +)cx3g?HA Z6 $z0\#Mq'D|\9:X %Fi7E ՁMf,CBQ7 +vS=9j ;z?) (4'D0} %,9q8,9 ʠ~X @:x +y3i.3p(=i$ULW薠ݔ^ZnX0$*(D *91+J*_*\09rc+1ƽBVıK0jJ؋ oo-ԒՇ7-/ME 01>Ntn.SGQ2¯JsPPʿ̉N`FEbBՏ-r"z VNEft#BDGv]zYDBld,{BX u"o_gW_EJ.qI(vq2&rx -"|:f!Hʴ`U#*cZŸ UUj\_({CbݓI;QgYL>tK|WǦ-yqk[,!xi–pKwbܗŢ ceY/.ɯƓ/ n^'&iعc<}wy!,z<>#6J\ ul> k9o&0z{J#9lCir)-`x_r^( }y>ǧ3 +,/D$$\Hxɒ,1(r-Zl`֙:J$lxvSc"*;ƇB4YA +TJmqe誄B00w9Ζ+\2lHSrݬ;͔(9p +E"owtU48dOCVʱ'd ҿd\9#^ Eyd|9u[|CE9mu]pq9q^'S;Hxƨ)Gԝ?նZבD b%yg@B@4B$gեw-EH>}VZ'CP ֪Fz^W!Wx!a&~E`͝ijMa֠AЌ7c@:lph65/+T&ve BkFMe®45Du8:WIp0'$_$KrE1@VδúE,fB }h$v~o` \TK'Lwַ0HdZI [d.ɵDv*N=E$,&ȎV\:6nN#o;dE˼=,Eh@q=ĭr +& t\Z~pL|!=/?||.Zn/n?-d9=s$j1_ d+.$-w1᧞)r; kZ4\2%,|N& B}j~/kф}H:^}x{%=j5?rrpu}}E?^pZF(U[o{]>>z}^@=w7'/rF/avg\ 5xhEcȴAp.󇿠pvp@Oũզ's.88l@PE`+;Z Y T +yXvyyEn_ +DP> 7u'CZ}@]eFȊ!V8t:D( {m*(|: |T|[ -%@ԅN锶ʯFa3A +!`Ae?a1@bcyr=gro)` fv` ̾i4c-.Y-eyb'pG<`8p8kw`J%_>=ϥ>={ib_я/j;5o-poׇ˫.~?yi3ҋ(?MN_姟rO^|/cZ<(Mi[2*Ay4>֥:mfVw0'=eV.y/ +ئDj%OdUJ,A[P/x%= kS! v&IDrJx5vlhNc*ANPUJm)dM **`hѴ^BY:" A ^]UI.<$F,њc:[<'!atH,% ;+vk"Dr*SJfX3 T` +:In88~þUoܮ P<52HɱalFVjrӋ,z +˴LȠ|IE qyz:j7Q.9]bZ&ؿ}[C5]7r(xܨ`˴{D,7/8NUeV7-])h0:Ҿ0(z3V Ekփ٘4>-UB:ͣP ޹aʑ7*Ֆ6a9>rS h]R'TH1 I9Ǝ)us&B(٬ij(sr ׇ;Sy-L"rl2[˶刂j^d&@{!oM0H4Nc0Du>Hm$ĄV-̉+,WʾTSXBY,ٙkة=l].S2-;(5sa 3&! 2Nk,"7&#s 8vZZK@y.{/ +)+ޒfHϩ-D|ٮ:!Lc@c\aV"P Gx՟35 ]t5YR؄UBs9y)@sAs:3 Ȩx! U3jm*G30OYW8Yx$ljo:ALJ6[b|}MP(V?.%DNJqSoK-??__{{/X?a2[~ ߿a4L'>S9`Sy{ <ˉYF%Y1+X8vT5Wj +\Έ`S0@oڇt!%Gn&p~w AFD 1?Gfߠc3N@(bZ= 'aK++!H)) ☟l`*97 l ه779i_d>n1lO\})৳رszLTu^Nux.Px +XgՂ ;.߾DH^2[`aT`r W $ʆ\(Jg{J*\ sS3E^3G<ױ-?5] a{=w|Q+Ԝ1(b(׬tRmRTE.@(w"8Pd/Rݢ'@ESV'[0>Jוg:ID8|sMrp4RcQmCxeʪ +Z$;oiK"D Ds(O"%d^7J͝[Y]rU=;6' a?x/xy) Wo +QAl\ 63l-bsxٶ=jllm4"b2%/.n1Ǯz6C$LOa8gq*(v ն#bnӈ6Ssr5BWĵp\6{m`g0$x.x\"Z0nѢC i~{j%8؇~r{|AtɑDkZk^0<%iqRܕ܋9O -iџ KX\yj}BD/~рZ\DV̔,W@wM"dqzr%IŇLp:N^40QI8(JE݁zx@͕8.؏ݯg EqQDK'dy^\1 ?Wȩ,M@GKhXeqbn[7V +#D9{a@QfC(ణ* )^fg7m^,ofj{R[p-MI9[+>`L&fdm,#Ulmg1hx^l.V˲b@*ܖ0йK2 /Rh=aXh,|˓lL,gkt&T͟.iH_dS^.XJJI޸n@ZɻN +P5`(UHrp{8$̽rU6dYCf*"w}Wjiyn}^Z7^ĕ4 ݾ_̏p]H^rs{&kD'#{n1XJ̲,di1C\hZ>'If"d&@,zwdbUjQA^V~Ma :+`RO,AQfR'+j`A:.jlU &fcձ$ 6Ob]\ol2_~n.OxP~.fyAN `+n[VO6 +'he;ND-Ѭ1m +C߰Lىͮ蜧)+mz&I`Gӏ%xTF%"/&Ѱ1*w{R\KaP >X-+Mc!gg>4HD럯K[:@KsV-bdsقIFiYc2Jr7,BzX;työX/pi[||7?xywGD?NTۋ7oV`Uf/g'fzIgԒۏ${ ^@7V(@X ` L8kZDm@$5A8HO'K +% ~)%2f}XI3G e{Y Q#x3;d_w<$xŪG֜f hVb|VEld\uM [1vuVϡq68 wl)؅_b kC'mdXs1is0&83#Az;fӭ^saC|c`K1qx`l:/r*4'1CŰ>[1nu>;e0ߺ6ħ; fĸ93>llfMѹ2~JV[Dc0k@sOeWAe0ߺ6ħ; fĸ93>l[M#PIScآy FYTP@,tF]`rtx 9&ԥps+ +UfZ<,!fkv0fKF|7#S wo?@{brWd=4Sow;:r0+ͣ xZG^]NwW_7T}OϧO|xHT"ܝRx6ܝU߸E QQs7ʪ 8W(!_g{>Xm]66)~w/ѧooow7nwqG +YW$9xWжs+i-.ZґP{s#Lٴ%x>"Q-~(2d4XbӻZطIY\=iPZDVVt=nJ%5AFZ&n ɴL%{cj{^i˧t,B+ZuLD?cLıx8&󽶋[lڨIR9}$r)!8h~`eBYKW 6%:C=3%냋n]9,}$2Zyڏ`1C- +-@N"V0i}R& +B:cVE_Z|7Pultaic% |B`;˔9rlBi g5 gyѿkM6鏓ϊ +P9O/_NW5}##מ`yAVpv^n3hVm 1[`*%/6$ /4åi{ +׀ dk9IA(~O53$%Ò7]}I9g +N=j۬1}dK[ޜdN"d6 B1 iH6 C&NžfCO$`$5:šuf\_v"}mS4KnȣCAϭڍptbO2dy)2^@)n.=BȮ4e2Itqoف[ԓ*ȵ16|Tf0u{f1H; XỷPbQrj>EؼJd8 *J KmcsP#zc{v~d_0,޼ܽX,^}t>F/e/OQ_u&ܷ]mo*?iv{Im?^~\ݤa| {s{w8PSxY̆foru۝toW>(\ vߩYg#,\gbH@@2ColioVnza^WH@g$m&KU[ow;oe))KwUM7'4Sנir.TX''cP 1:VR2Ġ16d"8LQX +I3\(W;&}I! ]א5s_q^E[sXd 5|7Eΐ2ըlfl`iBeQ%$t'M.4jFѼfyuBфd.s&$u{\L~V m# CAOtvL:ɝEB+˥'% +`VZ w;H_ܩ3VT{ fmpUFF czaMN PY#;rI"lv^j3[\w:)J/]}УS KŦE`NZsȫ +" +V]<~UC +ts܅E PYcW#O@Wn:͓ؿ*ǡ8LƃnQ=w|E9_T$꾲}fIļk{4^!=kF)汾rb @Fa@Pc0YڍYiH8]#宦PD>'Y5Ҙv *X/#Fm8OscYGlڳu^z`v;00H 'kÕjDu$b(hMVCjld1Jg1W0ؓ[.:zڍ{[zb +]T ̰zP˷?SL1_Wp%9xru30uYpBaf2ɦmwҝw*݇ZdK;/O;;떘lĆ jMD8[52Eś¨ pz]"QmxM*t]wxM SQ#Srq1_[9j+*:oOhBA\7 +/RjO CQctj.eAc +.hEq8w9 fڹPwL\2H3A$S +ޯ!k6 7+ȽƱknfc5!eͫQH٪ e2Qu$'M.4jFѼfyuBg.s&$u{Ψ\L~V!m#CFOTtvL*:ɝEG+˥ݧ% +`VZpw;_ܩ+3VT{ fV_Ku"OIvh0gInH5Y5aa {dݠ˹Tl5j,G8!^xAmHaa\nX ߑJI&ܺoXS +Zx9,&Gv{J.4vę՜݄l95oj1u32f32#>54diSqȇM] 晛i7 vvc=rpٗGP9Tr#Ašژz R2"PbPT-M4f$v<lu(VD>XA v\\=V&.a'DVL" Z 75!9Wg̈́u/c;;`'Zz|:V? +첏H_]2SAP2P ++#`Xyu$#IH*GR9?TP4ӃTV򚗐JMPW8FLȪ2/~Nw ();yU? B G:0Wwee'eDB$a`ojtu|k ՜ aE(VDS?ެ$paCbi1h$[+J]q1=Y֎zzԏ.fnu="{8c]vA;s}aoсC/#X %&vPQbڡBM1&Gf0q =f&D:$Hdޫm7~Aa^ HA{w%O"8Nd ` zE8 xh:6>o3+S왞꺞f P7/:oK:fL$lFyj00[ԓ>esu+oz6L/?W>J;OqƔ1)O`METٓ=񼊼!}u&75}qKZ>ΧuY&yA2'0$KȶR+5@A^Xhn +MyM=9oʓ})VZ[6 ¼H~$"i{B> #Ig$mGAAbohg[O\-tzH_a\*PH GΒ?MlhBziiC] >0X2Hڑw46a9q8¹#k3 /$uqrWrtͽч$ +iGQ&p>eǰdQ14]ANhHuVYUۡ(L2ɹ騕s[j^u.&a]6_K7=7;2+w&}&EAM| R9/L| x% +|KJ|ej7 _86e V' Pһb>%S+X$'~Ti;=-4%Wd*a.g:2MzΕe5q""xT"t()uDB* 8ֹ/.6j=5&2I Tgzk9 -V$ <KzKwdmnBp$v;f\鰧08]`NX mopM,W~85-C +~&G 3g+%66d@BՎs`Zk[e+,5hLG&c3}γ.!Э` j&gSM懈"ʜnP/XMc1QQ9֮amGa #n{גl8`dFF g߽|uGƞ*vonXysp/?o%}KǛ+pvm?wWW|o~%댞f"đ)ʹSo`?/njjyu߼q;BGX%0*,p!-7 rP; gF,)L%1ufHpXib!ƚB"FNt +H:`63-ߜ+2o(!閡] %vF;g4ID3q i -TS>sd6 K/ ER澮8|-&&pɏkoOdv- Ƭ"M#IwJmfy%x34lywKjyyvww=򋟮](VLScgM C?3il|syqf/$^_//1ؾz#WM^^_OHF= ExiIܱ"D-RD4l_C2ML/n;^W +ū$b?NU_ +%yÁy4*(ᏸa>stream +HWn}'a^r&2L ـ,}Neghbٞ꺞"LgIjNjĻÃ6vdct +NpQ0@7w8g 1}VwS<ctS4h@1|||~Ϣl?nN϶7nyoķiqzGg}ۭe}xeu,3R6rk9E]ֿs3Yt'WRGNz\Bj~~ۮ?'#~X]-ǻo"; cq3^qyp =V8OC)8G;j"ERW͠8=}/U7Zx5!XI^E(ms.b 3 TXq}6>C4=+5|r3|^ʇcq";)c`Ϊ@a/8v +央/vչ AjԈ.X2 +y +ZARН&8L\ʁk罉ZW۠U0{/>.8M,d_=vwz#<:ǙBM"G7xk/7i0q^q*$*3' ҋVÐF([?> q'qAA GƏ ˆ:j|S:F)tZkNJWm ̓![jOGEj}D!Gbꐹsd +,5ҡYApc v/lzGSXuN#qEp3R]vMiϨ3h:k"iirb$ǪJ 1ȜX + F^#Bfԗooq:R a鴭Q:`qUIΫ``h*L`ѡHqB[H,:TKQ=ܛ֊kbN}9wa0&gRQAdI2DӜWxat>¢2jc?RD&T"n,y5bʸRՒ&|6c]tÄu #h$|0LUBQTبP"aз9܋zU S^Z^$GK$Oo<D &qCoҁagf"vE€ȠS7b*(ĉ,Ãi=?Nhմ2ַIR 1;Z<N 9xPfP0dά: e#FR#绳c* 6{^xqny,ߥ4a?qdTڐ2Rč?adDU”V6qgH c}Y*cP܌l؄H d wPiڏ78<}U}uszݽY/v|$MX 6b]"~,|loYwl]ݜ]v{_ +cG +?މlptJ\/sB?S +X\̻4»YbB\^q3H]L۝蠊r9a D4s^%ಌh1Æ*&UtyvQ1D_n# ESLd)bÔf*vDb:.ҒɊ׵GvxA :d.U0:1Y2>2LPtWՏHYZBΡɦߴACv9⦡CI\_NH85YЦC%.$xOh04T=#@i8;2EOxnO<I+XK݇ʺQ/<ɗ #W?[)$+\*p Mi*bCbK\C$r/N"201oL\=5@eUT28)ߦcb6^.H$UTYՁGB`<32]b4AN%<71WɊ>cb2* k@ 6iUbmDACH*I%=HpXH0,`lq<`0&>>ԭ{ٽc&ZuTq2j5\wVƋxZĺuqAʴ9 +0 Fٔn:xrsः#bauޛp_dO*vk)dEpN]@9e /&n? ^Y&bkr.tŹ_~ە!djlFoO.c@)@xMXLgRP18梤 :ȧ̯ 4d䇳A12X{؂`!Ė%n +S4vw\8) eCh;Z۰P*Je톚IZyu1̄T- +7v5R1*d%#b-~k _q;1}JT,̆pSj +$uUFD +8@G ++g{h)"N"wU`ɺby* !!o5dC~]3jrZsawf0ۨVٸv1[tb`IYG&>#(Uz$Uu cŌ CW2NSjs|U@(QHz u]YeBa]F`7GI9ل8FS;0p/S5M[ + +zgʢ(EFM\,RN: ^9)|!Q]WoIܡ8ąD=Dh3p #JwXB1lDhy+X(lc}aUqͽDЄD*kݶ k"Jj%6}݄=VσJ%)JI޿ou/E a`v]PuEp!D{xp"0O t pSf LpBRq.` z"57Kj$i"?Clgٖ4Ro~W lOW#9QI%AN쎴xY%U9jeP +Ȓ$ U؛p|J~ {\!'60+b!:LXX@e_45SqRtUǴˤDԈp{c0 -m ~/}YQ\,%B76`Ջ" f]z|}dWgiKv'H.ً*t({2vp8 |M&zQfWMNeJ4._k1&a*<$XȀDEeQ}hA.!! p'Mp)S誗)sd_їJىnB3IL3yį<}r<_)o{??Ûׇa۟]?}_.,w(:G /K^ayv0F$h:0Aq&;%Gۂ +'(/WF}fsb6}dǢ ]Konj5s3?/+?b@S + 8_!4d,Y;YM/#nq2j^]J?~D1(hj\8?jf#bWp2aZuW(f]<ٷ(7{?OŗtLբ",x`a RXʧY;&RA ?Lw\MKT֣.`y?Oc,yDImR(ꑇM7Xk&6HHۑSrIin}?Wնs96sqwdb]ݮO(u|JFܺ)ixdnvXr͟7U8wuX[2=~/>JE|f$sߕe*h^RSo!z]yjba9՝8b0l|*Ӳs۠ cѹtxz<Wʘ?h{ Lj7q!ԩ/ZQ5AB\{"SɌte*xxjbu0ȱkq05YnQ%i JdU?mUx&PypRe xbScu8ɸfP6e1팩Ϲ,;z0k]K[J8`A&3s*M' (frࠥ DuQS9h!|7puW5`OvjV{·mnϲp`kbE?v$AV18Dl2(ynDd\+6| BJ{b^^HO!=lNnYAcr +#\[rM z}DG;Zr#Fc6׳D\VBm6B*{4H+G5Sh2-si2ev.Ih0}0^-+J# xS~1FHSbl(_ h<8L>A'Oq!RT:(q'a s]%)fy|)a.ږsxZl!dcבN7`ߒUaEFqzU߼x|o.?zçwj5,|˫o/~7ɓ2?>ٿ_N^]ߞk| ^s*wϮ><8. ] 6Yrh r VWVL&g]Z]tk SRa3O֓-}N_j qV \qQ8qZ0԰>?k^&=Dx6kas^T@ _uO8M]Yv=ٌ(TjQ!W9NQ@jLmBnN#3@ +&)[FʨٲIvߥP|Kc$S3I4GqW# +MYxq:t2i-N5"V` "^$]`D*fxXj+&UX˴^, tT8!ZSa P +=VQNp(5 1W8c)ՌUW2&>ikBP+^!ܟQ:Ufl@d.+G0>5t6Mzg87Sm +W*.Zf׵ ϐgb/sԩ$Eq*k#PX@ ~"/R\E$umM|LXӆq!Ln*@ +qb $/3}ԽFxZ@$Y3 &zmօt<3Up%*h +u Y>U^y]J>U66y]ض̆¬s EE;e:RˍLk{DSJ0rzU-1SI%(7nԯfa=4p}7T``h/_Kla;e&D zVq?O za'^XN,һ@Gژ~Tpu3s$Vv"@/M!Fhq +M5q ` + ^}J̑rUO!5Iٽ;aPZȈ5Rߔp )MɎ݊1)e +B۶h5QPB(BP,J 7˄s[Ҳz@Iэ 1L(tbsB6 fjL/ 9f[ +b+8]Fh^2nubL39|1S}_ <]@_ьI'a eRF#~"+MA-2$)8p؛V IMKe CH"91>"o4Wļ5G)r!CUi0F6rS )7A#kahafau@FbN*XoU/4ςU{ndL?K.O^jmCR%Y-;;RB ꭂ2:˲{r^/mN>f + G d<͙0o@7\Y$ID@JrSC!C Yq].@ vaY}.7eB]=o鋓7."+e?ެUCFMdVԫ .e!OWxFhF16ӼtJTTrm8{|HcFQ [PmTC?3CZ%b$9=sou_!B:*1$#/ƋR? =hmy#xK?a,OpR&*/y8o 6^4tZQU3JVuFFEs*Xxu̧Gb<P@$߿۵r7EWg^}x{{ߖr77 1Ԁ oAڨi'Rɮ?w{J0)|;پW*IK{!1LY1(sbvYՁU#JM0_*E)hB.)T\#tc \ѓCOz%`2ɀXcl`e8`Zԩ,g;0hFq&4is;3#EjCƧ@mnC/ QBeVc.yd'eǖ@}nyƪUJ~y lDz }i3|<} }JmCP({J+BZ\SQTF_͏W3\QtF_^DlFl :0[] +yz"Dqʇ@W5 ]}+~6 +d.;!W=\utA.򣐋\QO\=^WBj<1?Xs2n'=vP`,0ߺ[\vߝϋN  ṛIN¤j̍Ѐhu0$WքSQgBm7NLުԌkOf4j3qiN< +Z{ѝA $3hG<4³,"U_@>5ТR +r'8=';AC`geR䃃S>8\ IxK$C,HV{]*SS !nkXB"֒Z+c| 7l=v/.0S38O֥2Y#{ '~0萉NLЌZLjvVc>l abս'QlތS78;'h 8p+[gHh>f+n^|z:Y_v~AڙAW!{Bީ0bf=ؚؗt/6рً! N +D:$ (I>\U5Z5%.蠖FLM8%ӡ1Y}Qv۶υIKeJ00r0IEʋ5ŐK:bʮڋe3Ever:lf~3% Wh / +|ԤI`d;`qlqtfޔmN44 םIH]\{~ɡAt$8MxnR,˘u&c@%XV&:~[7|kµ9)RײHz8yx& g-SOStjIuj~MĎ5ڔCZS bUvJA`K&׼N^0碚wa8^.CgJ{Ƶ2@LZ^?]t^M0(03[M:!+ɴK^lqW$/yy|CT9g]+N x: @}}Wv_pjegBEe4m*T*4)7 |*h'bEae*UV畝1)\嵊BQ*~v$daA%s bZH"ԢӜA$ P +/ +RJ&12s끤BO N-q[oezF@CxMu-􂵒]/Jrپ2wA*6iCuY!4TAe| MҶ/!ŭhA73 +.ʬG5=>$-n4*,€t1'}`>]f(C"3=s+fj>AWAEh']7d@cjz7Q<nQj.]l~8~0k*>.,-zZ[t>.M {TH  j鶋^T9*I VS`? .~ QDwm{l_1z&}8MЏF3mG.9Ȣ,٢d_|=]I>?di?0Z),t DvBh^#XMfeIlUGW*jF/.jr^}< g!$H6=ba,H |R1ZRE +,'Cs Z6ᕊ[ZsϐR}io]7 Rڞqdh ^\1 V{w-ՍLA2;O&3H<;H *$_PB,ǥ:fsI9WkwKf/a%6]J!jA.m\\.L6Vp8*]Սz[DۇZ* +jIluyP.RuQDL?¡3M85UѓZT5PּDfnbY2n @gCk&]P,:jz{_> +  fzdeॐz{-GG(%0k tK` zQVjCkUЙBгn .q, j6W(ίؑTJhl)fQ q>SwedK+j[fٿZ޵ϺpFYꂩrԐdQm-}ߑqCqn&tHKyekQ48<^_JxƅW F9jl:q.2x.ea9C*P~U߳/4.\v0/BѢaSe5r[yռ@`z Z4Ԡ-͟Xwiv/jzVkD}p]힥vv/n:O +~=9y.j][xQ7wޭO>a6JQr[؍ zqbNƃBiƤ]Nɇ( ig;^U4hP =N$eF}Z8c]8ʗNf§265:ffga={FycWQ6Hsb]cqON^FU$ΐGy~^q@LGs"RQj70tAHG9| |k{qn#VD9srcƜݓs6>>7]HW9N[#Q@q=bbz,m7dvsv^wT#Ĺ,!^9 -'}])4\3u{bNW:;(>[/׉~&;d#C~}|*hDqF3%f1vO;ʣO[[? W<'qe|:uixB [; i#]I>?dw*):B^dԎ^%1 ;Xq b +NPy/>ū4^y'hN#@蛾M0:@c2\pho TSw= xhPB M!eg${h_>|fb*7qd9oz/Y ~p|=?[!,鎉Amvu/M1[0(v[ܞYexW[8Bept9]537G"[e{X0M(>σ)Ć) SXty58*6;^gG3ªy\H'(L_Q#r=KEoi6&9mI=&c{QwEK]+SKSmUR=rM;x;L/F?fu^ٮk:o'q6ۓɢtT+qyŨN*/I,IֲP_ +8`W,+u/L0%\RӋRS# <,$t-Aΐzh;%JKMAZu- -{x`8 srBb~ ^Oxۀ +9 +ebXW, +endstream endobj 188 0 obj <>stream +HWkO/@~?/F#˺vxvOU.#ɍ̊e>]}T5gb4{޾l ooM1b;Uu^W.c6y1MK&blO[;I~kE ;s6fǽbq `٢)}I,ڊɚŲ.kZGl9{ΰQYTlgyYIuЈd9 nଽIk(?ϛy3wz@{lV5*9]yYp>2y@lg*gWhK|I0zL3. 6-?8?gM,_.'ŢؓeaڌQrc)拫gÙbvqǙ)UOOWe|iKStf[Ƽij95)S%UCYkSCIXGR6@T![YwTϜm!uMdqE;zs,բDwƗ0Mt/,o@!-k *)-zHL0ĞtuM_2Q _}t^M}wNOY{>>/AjI G?y)I%u_(4wXߡ.Gi(͇4Qџ6K]G/oW e8xY,[FJz ב9+ [ͪ +lh6e)֛Eļh.h,"KJM9Mz4ߚE1*?,}mT@,ZI;ʱϰRf 2 FQt  J|䤎 +5 +@Cʟ*ӜLɢhO+[Y7RWM$yjT䈣0FX@k&c-H3Hlc uƐ}#RI8EEuP mL]'(-Q*"2NJ;e$ލ3=ޒlxy2h-j?v3ҽ"~Opt +76żdś]p E] \-:;g`tA?[ī;YEu-vyU4g2y;B}.7|e3{TQ&*AD]kYↇ{ԕؠAG@H? \(|b{cPP>Qʙ;t($ &Tjux+q#Ma|OTYπ(AN^3~tG2n!aKb TΫ: ĚJfpFMڒhKR55م%572K +l=V)tn|׆|Lg^ooH80B +[.Ml+AK-0!VcC 2=ntqYhUs xXW"E˧DZJu1T7J~o3|f8-}N5-ЖZ'qr?LXQqƎӿ#5 +Fji%U~8_HZ3%gξɄ/?(<>d7~DM*.;.gd=$$jF4-NʻZ+G!{yc(y@4zorj;*E3="7 A||6OYG%ۤy*W_(7^uֵYvDBU, +"£̝b4x9\eCVk?W2aDwRxSNnS碌2 hW;t99U3U~> cȄ3"}sy_zUrAH)Fg%.3oW ]'i(򊔪`Gq,%"jյ[R {AJdNjOB BPg˄y.2?3T~V4PSIqۓKEB)uҝ‡-|,Z 6+]臌)-м'< lor}|*Ϲ|Vrc6HŸtm28N|\**GIӗ:ȠFxrqhh':Hcgx;9%ei'^E /@lZz)h*饠h6+- +{xJ{Eo(܈t(VdK&jx=KT\8n,qr:\ 5 +쥆a.IT78M9 +Pkc.u4(r2ͨr-Aͯ4V7Ȼ'vvD~FUh6Y=/$]9(wR 4bR3ĵP  W/l8/%!dO]㹀>ۃX": !{hꜺCzJ_$ شR$]eZz)h+e$ Jn0t߻uŌlb[ҢTp#Rҡ:-jx=K U\8n,qr:\Enpl~yQF=W $3BdFHy!ʡFCp$whȾ4bRCĿP uZc6,]Ww< wI47G3ډ y%\k*- +H@wT.HbKADDvi饠h6+- +t2'#slmW`k`UZnD +S:PV#B·PC8{jK<Ǎ NSZǘgx 5 +|8o)zgw{d+ͽ2z]!Q$D6B:uV IWE0#FsJ$aLKQ ώKBȎJ`_j!ٰt]_K.B*\]BƀNۃH: Otz%\k*- +H@{T.HbKADDvi饠h6+- +7M'C甮X`k`UZnD +S:PV#B·PC8{jK<Ǎ NSZǘgx 5 +x8o)zgw{d+ͽ2=jAH$gTl3NBҕC2H,օ I!}y%AdG% +0/l/%!C]B?/T( xVD/wwNOԜ]#"cfh!ay3yG׳W|c 3*#Bdh mǙMSgj,rWM% [%4daVIom͕bk- dlO\Tw ֒"+u$}r˥ƯІ ɱja.^[CM9 PcC!?86$QSJu`>ޝ'Q.䑫;vMf!:cҡ\=Ϥ*r$)CC.41!*)2>"_ڷi==h)b/ +o@۲AP @vD]3s-a:5X9æ֒z +f28Jkpd[cѡYaj- H !RGʸl!P$"9VP-%ދtK|)'jc('dž^< +qjQnB'$ʅ,p7M% [%4dIVIom͕bk- =;ԙٮ l]% D01VH@-AjxD$ +d{nq6$@q PG!N-*yW{uDG_7;g+^xȎIr<ȑ0X`S wOFSy(mgef|BhJd22"<hQZ+_dDưqz&RbeXА;#, ~Z>SD}yzr͎M*Iu)6ٷ=CK a0A,辕$=%q d5| z(E-s4X,h?FY"llS~#XH >vM( -f!¦f8O),)OHi&>hoIږq_9 @v^5b~[9{oH_Ru=iL'c",7>m<p? :G_ +endstream endobj 189 0 obj <>stream +HQo80@q@E4Iۧ6)\vPd: *K$?mĉh4m06"E;_X?/v:[)R{}^NgV/5X3e?@|j{ҿ_KnJ2?xg_8,7~ךmDebGmQLcSf2;k`:=ؓk +xd)^f1 BW"IbFL+!P^,\5YwPziSp[]oj%Z2cA`[֮ڀl7ˬF-7P)~ +Fbt윌rwzih.%^48$²ycbb<2"io0S5l` $M@nx|y7 ?I2UN95qZ:W ycsARLS?@LM*U4D[}dT7Xi^ADc^ނvW`OIh)(A'Ifv_I[>Ǵ&=1N+WZG;hܱ )ϩS  wp*H->2x4J L/poAeit\7\51m;1~y-.=Y +c~LC+-4+oϴq(hD\ތB'մR !ɸx(;GJ+P0Nزy0߱[9p9п.zMEZ5PU7׻Y|V],^]h%Z2SxwtgCYfm6lټ!lu7d"'$EV0zuW%h?6<b>|vLl- P$3MJzaT&y fycsAS?@LM*U4D[}dTsñL/PΣՍt/zovkRgv +czam{aOԊSj&͊3@ ?1C7й /ep윌rzih-)V^,(óYw]e[9ʁVrr׭k@+Z9ʁVr`؏h@Z=Vzbprz࢕ kX()-zpJ=e&r: jφp̪Ǥ2 ]͌ȫm0- ~?Pbz'n +WɌ$#򮯟ezvrnD Kr`rMjMNa/,^ou9Rc[wlYͤY1|#Dq3f:w,CqP.wZ6 &Kѓ%`$czPz`x>[5Ъe 25P*KV],^\dj%Z2زvtgCYfm6lټ!m+o@E[)] H{YZTIR^Ĺ @0/[t'T<$Wz:iBw3'i%j[vp;6$9~*N"[EI:GFu3FD4-hwu:.Q;.&פδՖC,+1?ygL7gZy8AW e 20j"z-zJ=eZ,vnYu[6oTS4:A9hX ċ&CE[)] H{o,/Te W/8q. ir#P/#̋ OxI2Xjp鍺=@; v;8vN +*iS+C4g)g/vN95 Zٶ UysIRL_SZmm@|@_,JvN95 Zٶ UysIRL_SZ34MAE47K(qoAe%Ipv0!um8rouy싕z-z4Xpj+GB+!f/nKqG蔞]ʾ9DA;KGyy;<6VTX bͣQ} (=Қ'5w 4W(z$T<ʗ[.Ys.(#h)̌[\bjwл=;BUi;Bx'y. +YfpUdDJ% +Ar]$u: +@ 0T',M +endstream endobj 162 0 obj [/ICCBased 170 0 R] endobj 190 0 obj <> endobj xref +0 191 +0000000004 65535 f +0000000016 00000 n +0000000076 00000 n +0000048436 00000 n +0000000005 00000 f +0000000006 00000 f +0000000007 00000 f +0000000008 00000 f +0000000009 00000 f +0000000010 00000 f +0000000011 00000 f +0000000012 00000 f +0000000013 00000 f +0000000014 00000 f +0000000015 00000 f +0000000016 00000 f +0000000017 00000 f +0000000018 00000 f +0000000019 00000 f +0000000020 00000 f +0000000021 00000 f +0000000022 00000 f +0000000023 00000 f +0000000024 00000 f +0000000025 00000 f +0000000026 00000 f +0000000027 00000 f +0000000028 00000 f +0000000029 00000 f +0000000030 00000 f +0000000031 00000 f +0000000032 00000 f +0000000033 00000 f +0000000034 00000 f +0000000035 00000 f +0000000036 00000 f +0000000037 00000 f +0000000038 00000 f +0000000039 00000 f +0000000040 00000 f +0000000041 00000 f +0000000042 00000 f +0000000043 00000 f +0000000044 00000 f +0000000045 00000 f +0000000046 00000 f +0000000047 00000 f +0000000048 00000 f +0000000049 00000 f +0000000050 00000 f +0000000051 00000 f +0000000052 00000 f +0000000053 00000 f +0000000054 00000 f +0000000055 00000 f +0000000056 00000 f +0000000057 00000 f +0000000058 00000 f +0000000059 00000 f +0000000060 00000 f +0000000061 00000 f +0000000062 00000 f +0000000063 00000 f +0000000064 00000 f +0000000065 00000 f +0000000066 00000 f +0000000067 00000 f +0000000068 00000 f +0000000069 00000 f +0000000070 00000 f +0000000071 00000 f +0000000072 00000 f +0000000073 00000 f +0000000074 00000 f +0000000075 00000 f +0000000076 00000 f +0000000077 00000 f +0000000078 00000 f +0000000079 00000 f +0000000080 00000 f +0000000081 00000 f +0000000082 00000 f +0000000083 00000 f +0000000084 00000 f +0000000085 00000 f +0000000086 00000 f +0000000087 00000 f +0000000088 00000 f +0000000089 00000 f +0000000090 00000 f +0000000091 00000 f +0000000092 00000 f +0000000093 00000 f +0000000094 00000 f +0000000095 00000 f +0000000096 00000 f +0000000097 00000 f +0000000098 00000 f +0000000099 00000 f +0000000100 00000 f +0000000101 00000 f +0000000102 00000 f +0000000103 00000 f +0000000104 00000 f +0000000105 00000 f +0000000106 00000 f +0000000107 00000 f +0000000108 00000 f +0000000109 00000 f +0000000110 00000 f +0000000111 00000 f +0000000112 00000 f +0000000113 00000 f +0000000114 00000 f +0000000115 00000 f +0000000117 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000051202 00000 n +0000048489 00000 n +0000048844 00000 n +0000049045 00000 n +0000061445 00000 n +0000058207 00000 n +0000050103 00000 n +0000049109 00000 n +0000231123 00000 n +0000049538 00000 n +0000049588 00000 n +0000055520 00000 n +0000055406 00000 n +0000051720 00000 n +0000051805 00000 n +0000052189 00000 n +0000055557 00000 n +0000058244 00000 n +0000061521 00000 n +0000062006 00000 n +0000062952 00000 n +0000069751 00000 n +0000084919 00000 n +0000102822 00000 n +0000111395 00000 n +0000126519 00000 n +0000132206 00000 n +0000141391 00000 n +0000143749 00000 n +0000159943 00000 n +0000177431 00000 n +0000183301 00000 n +0000187819 00000 n +0000205653 00000 n +0000220229 00000 n +0000227091 00000 n +0000231160 00000 n +trailer +<]>> +startxref +231333 +%%EOF diff --git a/src/main/webapp/js/colorbox/colorbox.css b/src/main/webapp/js/colorbox/colorbox.css new file mode 100644 index 00000000..4e57eae1 --- /dev/null +++ b/src/main/webapp/js/colorbox/colorbox.css @@ -0,0 +1,85 @@ +/* + ColorBox Core Style: + The following CSS is consistent between example themes and should not be altered. +*/ +#colorbox, #cboxOverlay, #cboxWrapper{position:absolute; top:0; left:0; z-index:9999; overflow:hidden;} +#cboxOverlay{position:fixed; width:100%; height:100%;} +#cboxMiddleLeft, #cboxBottomLeft{clear:left;} +#cboxContent{position:relative;} +#cboxLoadedContent{overflow:auto;} +#cboxTitle{margin:0;} +#cboxLoadingOverlay, #cboxLoadingGraphic{position:absolute; top:0; left:0; width:100%;} +#cboxPrevious, #cboxNext, #cboxClose, #cboxSlideshow{cursor:pointer;} +.cboxPhoto{float:left; margin:auto; border:0; display:block;} +.cboxIframe{width:100%; height:100%; display:block; border:0;} + +/* + User Style: + Change the following styles to modify the appearance of ColorBox. They are + ordered & tabbed in a way that represents the nesting of the generated HTML. +*/ +#cboxOverlay{background:url(images/overlay.png) repeat 0 0;} +#colorbox{} + #cboxTopLeft{width:21px; height:21px; background:url(images/controls.png) no-repeat -101px 0;} + #cboxTopRight{width:21px; height:21px; background:url(images/controls.png) no-repeat -130px 0;} + #cboxBottomLeft{width:21px; height:21px; background:url(images/controls.png) no-repeat -101px -29px;} + #cboxBottomRight{width:21px; height:21px; background:url(images/controls.png) no-repeat -130px -29px;} + #cboxMiddleLeft{width:21px; background:url(images/controls.png) left top repeat-y;} + #cboxMiddleRight{width:21px; background:url(images/controls.png) right top repeat-y;} + #cboxTopCenter{height:21px; background:url(images/border.png) 0 0 repeat-x;} + #cboxBottomCenter{height:21px; background:url(images/border.png) 0 -29px repeat-x;} + #cboxContent{background:#fff; overflow:hidden;} + .cboxIframe{background:#fff;} + #cboxError{padding:50px; border:1px solid #ccc;} + #cboxLoadedContent{margin-bottom:28px;} + #cboxTitle{position:absolute; bottom:4px; left:0; text-align:center; width:100%; color:#949494;} + #cboxCurrent{position:absolute; bottom:4px; left:58px; color:#949494;} + #cboxSlideshow{position:absolute; bottom:4px; right:30px; color:#0092ef;} + #cboxPrevious{position:absolute; bottom:0; left:0; background:url(images/controls.png) no-repeat -75px 0; width:25px; height:25px; text-indent:-9999px;} + #cboxPrevious:hover{background-position:-75px -25px;} + #cboxNext{position:absolute; bottom:0; left:27px; background:url(images/controls.png) no-repeat -50px 0; width:25px; height:25px; text-indent:-9999px;} + #cboxNext:hover{background-position:-50px -25px;} + #cboxLoadingOverlay{background:url(images/loading_background.png) no-repeat center center;} + #cboxLoadingGraphic{background:url(images/loading.gif) no-repeat center center;} + #cboxClose{position:absolute;top:0; bottom:0; border:0; right:0; background:url(images/controls.png) no-repeat -25px 0; width:26px; height:26px; text-indent:-9999px;} + #cboxClose:hover{background-position:-25px -25px;} + +/* + The following fixes a problem where IE7 and IE8 replace a PNG's alpha transparency with a black fill + when an alpha filter (opacity change) is set on the element or ancestor element. This style is not applied to or needed in IE9. + See: http://jacklmoore.com/notes/ie-transparency-problems/ +*/ +.cboxIE #cboxTopLeft, +.cboxIE #cboxTopCenter, +.cboxIE #cboxTopRight, +.cboxIE #cboxBottomLeft, +.cboxIE #cboxBottomCenter, +.cboxIE #cboxBottomRight, +.cboxIE #cboxMiddleLeft, +.cboxIE #cboxMiddleRight { + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#00FFFFFF,endColorstr=#00FFFFFF); +} + +/* + The following provides PNG transparency support for IE6 + Feel free to remove this and the /ie6/ directory if you have dropped IE6 support. +*/ +.cboxIE6 #cboxTopLeft{background:url(images/ie6/borderTopLeft.png);} +.cboxIE6 #cboxTopCenter{background:url(images/ie6/borderTopCenter.png);} +.cboxIE6 #cboxTopRight{background:url(images/ie6/borderTopRight.png);} +.cboxIE6 #cboxBottomLeft{background:url(images/ie6/borderBottomLeft.png);} +.cboxIE6 #cboxBottomCenter{background:url(images/ie6/borderBottomCenter.png);} +.cboxIE6 #cboxBottomRight{background:url(images/ie6/borderBottomRight.png);} +.cboxIE6 #cboxMiddleLeft{background:url(images/ie6/borderMiddleLeft.png);} +.cboxIE6 #cboxMiddleRight{background:url(images/ie6/borderMiddleRight.png);} + +.cboxIE6 #cboxTopLeft, +.cboxIE6 #cboxTopCenter, +.cboxIE6 #cboxTopRight, +.cboxIE6 #cboxBottomLeft, +.cboxIE6 #cboxBottomCenter, +.cboxIE6 #cboxBottomRight, +.cboxIE6 #cboxMiddleLeft, +.cboxIE6 #cboxMiddleRight { + _behavior: expression(this.src = this.src ? this.src : this.currentStyle.backgroundImage.split('"')[1], this.style.background = "none", this.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src=" + this.src + ", sizingMethod='scale')"); +} diff --git a/src/main/webapp/js/colorbox/colorbox.jquery.json b/src/main/webapp/js/colorbox/colorbox.jquery.json new file mode 100644 index 00000000..3002051f --- /dev/null +++ b/src/main/webapp/js/colorbox/colorbox.jquery.json @@ -0,0 +1,30 @@ +{ + "name": "colorbox", + "title": "Colorbox", + "description": "jQuery lightbox and modal window plugin", + "version": "1.5.8", + "dependencies": { + "jquery": ">=1.3.2" + }, + "keywords": [ + "modal", + "lightbox", + "window", + "popup", + "ui", + "jQuery" + ], + "author": { + "name": "Jack Moore", + "url": "http://www.jacklmoore.com", + "email": "hello@jacklmoore.com" + }, + "licenses": [ + { + "type": "MIT", + "url": "http://www.opensource.org/licenses/mit-license.php" + } + ], + "homepage": "http://www.jacklmoore.com/colorbox", + "demo": "http://www.jacklmoore.com/colorbox" +} \ No newline at end of file diff --git a/src/main/webapp/js/colorbox/colorboxSet.js b/src/main/webapp/js/colorbox/colorboxSet.js new file mode 100644 index 00000000..7678a22e --- /dev/null +++ b/src/main/webapp/js/colorbox/colorboxSet.js @@ -0,0 +1,23 @@ +$(document).ready(function () { + $(".iframe_SmallForm").colorbox({ overlayClose: false, opacity: 0.2, iframe: true, width: 400, height: 350 }); + $(".iframe_LargeForm").colorbox({ overlayClose: false, opacity: 0.2, iframe: true, width: 700, height: 500 }); + $(".iframe_MoreLargeForm").colorbox({ overlayClose: false, opacity: 0.2, iframe: true, width: 900, height: 500 }); + $("._Win").colorbox({ overlayClose: false, opacity: 0.2, inline: true, width: 400, height: 350 }); + + $(".iframe_WareHouseDocument").colorbox({ overlayClose: false, iframe: true, width: 800, height: 500 }); + $(".iframe_Contract").colorbox({ overlayClose: false, opacity: 0.2, iframe: true, width: 750, height: 500 }); + + $("._WinMaterials").colorbox({ overlayClose: false, opacity: 0.2, inline: true, width: 660, height: 420 }); + $("._WinNP").colorbox({ overlayClose: false, opacity: 0.2, inline: true, width: 400, height: 260 }); + $("._WinActivity").colorbox({ overlayClose: false, opacity: 0.2, inline: true, width: 400, height: 260 }); + $("._WinMaterialCategory").colorbox({ overlayClose: false, opacity: 0.2, inline: true, width: 600, height: 450 }); + $("._WinBudgetCategory").colorbox({ overlayClose: false, opacity: 0.2, inline: true, width: 600, height: 450 }); + $("._WinDetail").colorbox({ overlayClose: false, opacity: 0.2, inline: true, width: 660, height: 400 }); + + $(".iframe_Img").colorbox({ iframe: true, opacity: 0.2, width: 600, height: 400 }); + + + //单据 + $(".iframe_BillDetailForm").colorbox({ overlayClose: false, opacity: 0.2, iframe: true, width: 780, height: 500 }); + $(".iframe_BillDetailFormWin").colorbox({ overlayClose: false, opacity: 0.2, inline: true, width: 700, height: 400 }); +}); \ No newline at end of file diff --git a/src/main/webapp/js/colorbox/content/ajax.html b/src/main/webapp/js/colorbox/content/ajax.html new file mode 100644 index 00000000..e772638a --- /dev/null +++ b/src/main/webapp/js/colorbox/content/ajax.html @@ -0,0 +1,11 @@ +

    + Homer
    + \noun\
    + 1. American bonehead
    + 2. Pull a Homer-
    + to succeed despite
    + idiocy +
    + \ No newline at end of file diff --git a/src/main/webapp/js/colorbox/content/daisy.jpg b/src/main/webapp/js/colorbox/content/daisy.jpg new file mode 100644 index 00000000..2928b193 Binary files /dev/null and b/src/main/webapp/js/colorbox/content/daisy.jpg differ diff --git a/src/main/webapp/js/colorbox/content/daisy@2x.jpg b/src/main/webapp/js/colorbox/content/daisy@2x.jpg new file mode 100644 index 00000000..44f0e605 Binary files /dev/null and b/src/main/webapp/js/colorbox/content/daisy@2x.jpg differ diff --git a/src/main/webapp/js/colorbox/content/homer.jpg b/src/main/webapp/js/colorbox/content/homer.jpg new file mode 100644 index 00000000..87ec76c9 Binary files /dev/null and b/src/main/webapp/js/colorbox/content/homer.jpg differ diff --git a/src/main/webapp/js/colorbox/content/marylou.jpg b/src/main/webapp/js/colorbox/content/marylou.jpg new file mode 100644 index 00000000..4c717d27 Binary files /dev/null and b/src/main/webapp/js/colorbox/content/marylou.jpg differ diff --git a/src/main/webapp/js/colorbox/content/ohoopee1.jpg b/src/main/webapp/js/colorbox/content/ohoopee1.jpg new file mode 100644 index 00000000..aae19a3e Binary files /dev/null and b/src/main/webapp/js/colorbox/content/ohoopee1.jpg differ diff --git a/src/main/webapp/js/colorbox/content/ohoopee2.jpg b/src/main/webapp/js/colorbox/content/ohoopee2.jpg new file mode 100644 index 00000000..20689448 Binary files /dev/null and b/src/main/webapp/js/colorbox/content/ohoopee2.jpg differ diff --git a/src/main/webapp/js/colorbox/content/ohoopee3.jpg b/src/main/webapp/js/colorbox/content/ohoopee3.jpg new file mode 100644 index 00000000..4d64d240 Binary files /dev/null and b/src/main/webapp/js/colorbox/content/ohoopee3.jpg differ diff --git a/src/main/webapp/js/colorbox/example1/colorbox.css b/src/main/webapp/js/colorbox/example1/colorbox.css new file mode 100644 index 00000000..d5613d74 --- /dev/null +++ b/src/main/webapp/js/colorbox/example1/colorbox.css @@ -0,0 +1,70 @@ +/* + Colorbox Core Style: + The following CSS is consistent between example themes and should not be altered. +*/ +#colorbox, #cboxOverlay, #cboxWrapper{position:absolute; top:0; left:0; z-index:9999; overflow:hidden;} +#cboxWrapper {max-width:none;} +#cboxOverlay{position:fixed; width:100%; height:100%;} +#cboxMiddleLeft, #cboxBottomLeft{clear:left;} +#cboxContent{position:relative;} +#cboxLoadedContent{overflow:auto; -webkit-overflow-scrolling: touch;} +#cboxTitle{margin:0;} +#cboxLoadingOverlay, #cboxLoadingGraphic{position:absolute; top:0; left:0; width:100%; height:100%;} +#cboxPrevious, #cboxNext, #cboxClose, #cboxSlideshow{cursor:pointer;} +.cboxPhoto{float:left; margin:auto; border:0; display:block; max-width:none; -ms-interpolation-mode:bicubic;} +.cboxIframe{width:100%; height:100%; display:block; border:0; padding:0; margin:0;} +#colorbox, #cboxContent, #cboxLoadedContent{box-sizing:content-box; -moz-box-sizing:content-box; -webkit-box-sizing:content-box;} + +/* + User Style: + Change the following styles to modify the appearance of Colorbox. They are + ordered & tabbed in a way that represents the nesting of the generated HTML. +*/ +#cboxOverlay{background:url(images/overlay.png) repeat 0 0;} +#colorbox{outline:0;} + #cboxTopLeft{width:21px; height:21px; background:url(images/controls.png) no-repeat -101px 0;} + #cboxTopRight{width:21px; height:21px; background:url(images/controls.png) no-repeat -130px 0;} + #cboxBottomLeft{width:21px; height:21px; background:url(images/controls.png) no-repeat -101px -29px;} + #cboxBottomRight{width:21px; height:21px; background:url(images/controls.png) no-repeat -130px -29px;} + #cboxMiddleLeft{width:21px; background:url(images/controls.png) left top repeat-y;} + #cboxMiddleRight{width:21px; background:url(images/controls.png) right top repeat-y;} + #cboxTopCenter{height:21px; background:url(images/border.png) 0 0 repeat-x;} + #cboxBottomCenter{height:21px; background:url(images/border.png) 0 -29px repeat-x;} + #cboxContent{background:#fff; overflow:hidden;} + .cboxIframe{background:#fff;} + #cboxError{padding:50px; border:1px solid #ccc;} + #cboxLoadedContent{margin-bottom:28px;} + #cboxTitle{position:absolute; bottom:4px; left:0; text-align:center; width:100%; color:#949494;} + #cboxCurrent{position:absolute; bottom:4px; left:58px; color:#949494;} + #cboxLoadingOverlay{background:url(images/loading_background.png) no-repeat center center;} + #cboxLoadingGraphic{background:url(images/loading.gif) no-repeat center center;} + + /* these elements are buttons, and may need to have additional styles reset to avoid unwanted base styles */ + #cboxPrevious, #cboxNext, #cboxSlideshow, #cboxClose {border:0; padding:0; margin:0; overflow:visible; width:auto; background:none; } + + /* avoid outlines on :active (mouseclick), but preserve outlines on :focus (tabbed navigating) */ + #cboxPrevious:active, #cboxNext:active, #cboxSlideshow:active, #cboxClose:active {outline:0;} + + #cboxSlideshow{position:absolute; bottom:4px; right:30px; color:#0092ef;} + #cboxPrevious{position:absolute; bottom:0; left:0; background:url(images/controls.png) no-repeat -75px 0; width:25px; height:25px; text-indent:-9999px;} + #cboxPrevious:hover{background-position:-75px -25px;} + #cboxNext{position:absolute; bottom:0; left:27px; background:url(images/controls.png) no-repeat -50px 0; width:25px; height:25px; text-indent:-9999px;} + #cboxNext:hover{background-position:-50px -25px;} + #cboxClose{position:absolute; bottom:0; right:0; background:url(images/controls.png) no-repeat -25px 0; width:25px; height:25px; text-indent:-9999px;} + #cboxClose:hover{background-position:-25px -25px;} + +/* + The following fixes a problem where IE7 and IE8 replace a PNG's alpha transparency with a black fill + when an alpha filter (opacity change) is set on the element or ancestor element. This style is not applied to or needed in IE9. + See: http://jacklmoore.com/notes/ie-transparency-problems/ +*/ +.cboxIE #cboxTopLeft, +.cboxIE #cboxTopCenter, +.cboxIE #cboxTopRight, +.cboxIE #cboxBottomLeft, +.cboxIE #cboxBottomCenter, +.cboxIE #cboxBottomRight, +.cboxIE #cboxMiddleLeft, +.cboxIE #cboxMiddleRight { + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#00FFFFFF,endColorstr=#00FFFFFF); +} \ No newline at end of file diff --git a/src/main/webapp/js/colorbox/example1/images/border.png b/src/main/webapp/js/colorbox/example1/images/border.png new file mode 100644 index 00000000..f463a10d Binary files /dev/null and b/src/main/webapp/js/colorbox/example1/images/border.png differ diff --git a/src/main/webapp/js/colorbox/example1/images/controls.png b/src/main/webapp/js/colorbox/example1/images/controls.png new file mode 100644 index 00000000..dcfd6fb9 Binary files /dev/null and b/src/main/webapp/js/colorbox/example1/images/controls.png differ diff --git a/src/main/webapp/js/colorbox/example1/images/loading.gif b/src/main/webapp/js/colorbox/example1/images/loading.gif new file mode 100644 index 00000000..b4695d81 Binary files /dev/null and b/src/main/webapp/js/colorbox/example1/images/loading.gif differ diff --git a/src/main/webapp/js/colorbox/example1/images/loading_background.png b/src/main/webapp/js/colorbox/example1/images/loading_background.png new file mode 100644 index 00000000..6ae83e69 Binary files /dev/null and b/src/main/webapp/js/colorbox/example1/images/loading_background.png differ diff --git a/src/main/webapp/js/colorbox/example1/images/overlay.png b/src/main/webapp/js/colorbox/example1/images/overlay.png new file mode 100644 index 00000000..53ea98f7 Binary files /dev/null and b/src/main/webapp/js/colorbox/example1/images/overlay.png differ diff --git a/src/main/webapp/js/colorbox/example1/index.html b/src/main/webapp/js/colorbox/example1/index.html new file mode 100644 index 00000000..8f10b930 --- /dev/null +++ b/src/main/webapp/js/colorbox/example1/index.html @@ -0,0 +1,95 @@ + + + + + Colorbox Examples + + + + + + + +

    Colorbox Demonstration

    +

    Elastic Transition

    +

    Grouped Photo 1

    +

    Grouped Photo 2

    +

    Grouped Photo 3

    + +

    Fade Transition

    +

    Grouped Photo 1

    +

    Grouped Photo 2

    +

    Grouped Photo 3

    + +

    No Transition + fixed width and height (75% of screen size)

    +

    Grouped Photo 1

    +

    Grouped Photo 2

    +

    Grouped Photo 3

    + +

    Slideshow

    +

    Grouped Photo 1

    +

    Grouped Photo 2

    +

    Grouped Photo 3

    + +

    Other Content Types

    +

    Outside HTML (Ajax)

    +

    Flash / Video (Iframe/Direct Link To YouTube)

    +

    Flash / Video (Iframe/Direct Link To Vimeo)

    +

    Outside Webpage (Iframe)

    +

    Inline HTML

    + +

    Demonstration of using callbacks

    +

    Example with alerts. Callbacks and event-hooks allow users to extend functionality without having to rewrite parts of the plugin.

    + + +

    Retina Images

    +

    Retina

    +

    Non-Retina

    + + +
    +
    +

    This content comes from a hidden element on this page.

    +

    The inline option preserves bound JavaScript events and changes, and it puts the content back where it came from when it is closed.

    +

    Click me, it will be preserved!

    + +

    If you try to open a new Colorbox while it is already open, it will update itself with the new content.

    +

    Updating Content Example:
    + Click here to load new content

    +
    +
    + + \ No newline at end of file diff --git a/src/main/webapp/js/colorbox/example2/colorbox.css b/src/main/webapp/js/colorbox/example2/colorbox.css new file mode 100644 index 00000000..fbe8e4a5 --- /dev/null +++ b/src/main/webapp/js/colorbox/example2/colorbox.css @@ -0,0 +1,50 @@ +/* + Colorbox Core Style: + The following CSS is consistent between example themes and should not be altered. +*/ +#colorbox, #cboxOverlay, #cboxWrapper{position:absolute; top:0; left:0; z-index:9999; overflow:hidden;} +#cboxWrapper {max-width:none;} +#cboxOverlay{position:fixed; width:100%; height:100%;} +#cboxMiddleLeft, #cboxBottomLeft{clear:left;} +#cboxContent{position:relative;} +#cboxLoadedContent{overflow:auto; -webkit-overflow-scrolling: touch;} +#cboxTitle{margin:0;} +#cboxLoadingOverlay, #cboxLoadingGraphic{position:absolute; top:0; left:0; width:100%; height:100%;} +#cboxPrevious, #cboxNext, #cboxClose, #cboxSlideshow{cursor:pointer;} +.cboxPhoto{float:left; margin:auto; border:0; display:block; max-width:none; -ms-interpolation-mode:bicubic;} +.cboxIframe{width:100%; height:100%; display:block; border:0; padding:0; margin:0;} +#colorbox, #cboxContent, #cboxLoadedContent{box-sizing:content-box; -moz-box-sizing:content-box; -webkit-box-sizing:content-box;} + +/* + User Style: + Change the following styles to modify the appearance of Colorbox. They are + ordered & tabbed in a way that represents the nesting of the generated HTML. +*/ +#cboxOverlay{background:#fff;} +#colorbox{outline:0;} + #cboxContent{margin-top:32px; overflow:visible; background:#000;} + .cboxIframe{background:#fff;} + #cboxError{padding:50px; border:1px solid #ccc;} + #cboxLoadedContent{background:#000; padding:1px;} + #cboxLoadingGraphic{background:url(images/loading.gif) no-repeat center center;} + #cboxLoadingOverlay{background:#000;} + #cboxTitle{position:absolute; top:-22px; left:0; color:#000;} + #cboxCurrent{position:absolute; top:-22px; right:205px; text-indent:-9999px;} + + /* these elements are buttons, and may need to have additional styles reset to avoid unwanted base styles */ + #cboxPrevious, #cboxNext, #cboxSlideshow, #cboxClose {border:0; padding:0; margin:0; overflow:visible; text-indent:-9999px; width:20px; height:20px; position:absolute; top:-20px; background:url(images/controls.png) no-repeat 0 0;} + + /* avoid outlines on :active (mouseclick), but preserve outlines on :focus (tabbed navigating) */ + #cboxPrevious:active, #cboxNext:active, #cboxSlideshow:active, #cboxClose:active {outline:0;} + + #cboxPrevious{background-position:0px 0px; right:44px;} + #cboxPrevious:hover{background-position:0px -25px;} + #cboxNext{background-position:-25px 0px; right:22px;} + #cboxNext:hover{background-position:-25px -25px;} + #cboxClose{background-position:-50px 0px; right:0;} + #cboxClose:hover{background-position:-50px -25px;} + .cboxSlideshow_on #cboxPrevious, .cboxSlideshow_off #cboxPrevious{right:66px;} + .cboxSlideshow_on #cboxSlideshow{background-position:-75px -25px; right:44px;} + .cboxSlideshow_on #cboxSlideshow:hover{background-position:-100px -25px;} + .cboxSlideshow_off #cboxSlideshow{background-position:-100px 0px; right:44px;} + .cboxSlideshow_off #cboxSlideshow:hover{background-position:-75px -25px;} diff --git a/src/main/webapp/js/colorbox/example2/images/controls.png b/src/main/webapp/js/colorbox/example2/images/controls.png new file mode 100644 index 00000000..8569b57f Binary files /dev/null and b/src/main/webapp/js/colorbox/example2/images/controls.png differ diff --git a/src/main/webapp/js/colorbox/example2/images/loading.gif b/src/main/webapp/js/colorbox/example2/images/loading.gif new file mode 100644 index 00000000..19c67bbd Binary files /dev/null and b/src/main/webapp/js/colorbox/example2/images/loading.gif differ diff --git a/src/main/webapp/js/colorbox/example2/index.html b/src/main/webapp/js/colorbox/example2/index.html new file mode 100644 index 00000000..8f10b930 --- /dev/null +++ b/src/main/webapp/js/colorbox/example2/index.html @@ -0,0 +1,95 @@ + + + + + Colorbox Examples + + + + + + + +

    Colorbox Demonstration

    +

    Elastic Transition

    +

    Grouped Photo 1

    +

    Grouped Photo 2

    +

    Grouped Photo 3

    + +

    Fade Transition

    +

    Grouped Photo 1

    +

    Grouped Photo 2

    +

    Grouped Photo 3

    + +

    No Transition + fixed width and height (75% of screen size)

    +

    Grouped Photo 1

    +

    Grouped Photo 2

    +

    Grouped Photo 3

    + +

    Slideshow

    +

    Grouped Photo 1

    +

    Grouped Photo 2

    +

    Grouped Photo 3

    + +

    Other Content Types

    +

    Outside HTML (Ajax)

    +

    Flash / Video (Iframe/Direct Link To YouTube)

    +

    Flash / Video (Iframe/Direct Link To Vimeo)

    +

    Outside Webpage (Iframe)

    +

    Inline HTML

    + +

    Demonstration of using callbacks

    +

    Example with alerts. Callbacks and event-hooks allow users to extend functionality without having to rewrite parts of the plugin.

    + + +

    Retina Images

    +

    Retina

    +

    Non-Retina

    + + +
    +
    +

    This content comes from a hidden element on this page.

    +

    The inline option preserves bound JavaScript events and changes, and it puts the content back where it came from when it is closed.

    +

    Click me, it will be preserved!

    + +

    If you try to open a new Colorbox while it is already open, it will update itself with the new content.

    +

    Updating Content Example:
    + Click here to load new content

    +
    +
    + + \ No newline at end of file diff --git a/src/main/webapp/js/colorbox/example3/colorbox.css b/src/main/webapp/js/colorbox/example3/colorbox.css new file mode 100644 index 00000000..6b1b6d4b --- /dev/null +++ b/src/main/webapp/js/colorbox/example3/colorbox.css @@ -0,0 +1,45 @@ +/* + Colorbox Core Style: + The following CSS is consistent between example themes and should not be altered. +*/ +#colorbox, #cboxOverlay, #cboxWrapper{position:absolute; top:0; left:0; z-index:9999; overflow:hidden;} +#cboxWrapper {max-width:none;} +#cboxOverlay{position:fixed; width:100%; height:100%;} +#cboxMiddleLeft, #cboxBottomLeft{clear:left;} +#cboxContent{position:relative;} +#cboxLoadedContent{overflow:auto; -webkit-overflow-scrolling: touch;} +#cboxTitle{margin:0;} +#cboxLoadingOverlay, #cboxLoadingGraphic{position:absolute; top:0; left:0; width:100%; height:100%;} +#cboxPrevious, #cboxNext, #cboxClose, #cboxSlideshow{cursor:pointer;} +.cboxPhoto{float:left; margin:auto; border:0; display:block; max-width:none; -ms-interpolation-mode:bicubic;} +.cboxIframe{width:100%; height:100%; display:block; border:0; padding:0; margin:0;} +#colorbox, #cboxContent, #cboxLoadedContent{box-sizing:content-box; -moz-box-sizing:content-box; -webkit-box-sizing:content-box;} + +/* + User Style: + Change the following styles to modify the appearance of Colorbox. They are + ordered & tabbed in a way that represents the nesting of the generated HTML. +*/ +#cboxOverlay{background:#000;} +#colorbox{outline:0;} + #cboxContent{margin-top:20px;background:#000;} + .cboxIframe{background:#fff;} + #cboxError{padding:50px; border:1px solid #ccc;} + #cboxLoadedContent{border:5px solid #000; background:#fff;} + #cboxTitle{position:absolute; top:-20px; left:0; color:#ccc;} + #cboxCurrent{position:absolute; top:-20px; right:0px; color:#ccc;} + #cboxLoadingGraphic{background:url(images/loading.gif) no-repeat center center;} + + /* these elements are buttons, and may need to have additional styles reset to avoid unwanted base styles */ + #cboxPrevious, #cboxNext, #cboxSlideshow, #cboxClose {border:0; padding:0; margin:0; overflow:visible; width:auto; background:none; } + + /* avoid outlines on :active (mouseclick), but preserve outlines on :focus (tabbed navigating) */ + #cboxPrevious:active, #cboxNext:active, #cboxSlideshow:active, #cboxClose:active {outline:0;} + + #cboxSlideshow{position:absolute; top:-20px; right:90px; color:#fff;} + #cboxPrevious{position:absolute; top:50%; left:5px; margin-top:-32px; background:url(images/controls.png) no-repeat top left; width:28px; height:65px; text-indent:-9999px;} + #cboxPrevious:hover{background-position:bottom left;} + #cboxNext{position:absolute; top:50%; right:5px; margin-top:-32px; background:url(images/controls.png) no-repeat top right; width:28px; height:65px; text-indent:-9999px;} + #cboxNext:hover{background-position:bottom right;} + #cboxClose{position:absolute; top:5px; right:5px; display:block; background:url(images/controls.png) no-repeat top center; width:38px; height:19px; text-indent:-9999px;} + #cboxClose:hover{background-position:bottom center;} diff --git a/src/main/webapp/js/colorbox/example3/images/controls.png b/src/main/webapp/js/colorbox/example3/images/controls.png new file mode 100644 index 00000000..e1e97982 Binary files /dev/null and b/src/main/webapp/js/colorbox/example3/images/controls.png differ diff --git a/src/main/webapp/js/colorbox/example3/images/loading.gif b/src/main/webapp/js/colorbox/example3/images/loading.gif new file mode 100644 index 00000000..19c67bbd Binary files /dev/null and b/src/main/webapp/js/colorbox/example3/images/loading.gif differ diff --git a/src/main/webapp/js/colorbox/example3/index.html b/src/main/webapp/js/colorbox/example3/index.html new file mode 100644 index 00000000..8f10b930 --- /dev/null +++ b/src/main/webapp/js/colorbox/example3/index.html @@ -0,0 +1,95 @@ + + + + + Colorbox Examples + + + + + + + +

    Colorbox Demonstration

    +

    Elastic Transition

    +

    Grouped Photo 1

    +

    Grouped Photo 2

    +

    Grouped Photo 3

    + +

    Fade Transition

    +

    Grouped Photo 1

    +

    Grouped Photo 2

    +

    Grouped Photo 3

    + +

    No Transition + fixed width and height (75% of screen size)

    +

    Grouped Photo 1

    +

    Grouped Photo 2

    +

    Grouped Photo 3

    + +

    Slideshow

    +

    Grouped Photo 1

    +

    Grouped Photo 2

    +

    Grouped Photo 3

    + +

    Other Content Types

    +

    Outside HTML (Ajax)

    +

    Flash / Video (Iframe/Direct Link To YouTube)

    +

    Flash / Video (Iframe/Direct Link To Vimeo)

    +

    Outside Webpage (Iframe)

    +

    Inline HTML

    + +

    Demonstration of using callbacks

    +

    Example with alerts. Callbacks and event-hooks allow users to extend functionality without having to rewrite parts of the plugin.

    + + +

    Retina Images

    +

    Retina

    +

    Non-Retina

    + + +
    +
    +

    This content comes from a hidden element on this page.

    +

    The inline option preserves bound JavaScript events and changes, and it puts the content back where it came from when it is closed.

    +

    Click me, it will be preserved!

    + +

    If you try to open a new Colorbox while it is already open, it will update itself with the new content.

    +

    Updating Content Example:
    + Click here to load new content

    +
    +
    + + \ No newline at end of file diff --git a/src/main/webapp/js/colorbox/example4/colorbox.css b/src/main/webapp/js/colorbox/example4/colorbox.css new file mode 100644 index 00000000..152ca828 --- /dev/null +++ b/src/main/webapp/js/colorbox/example4/colorbox.css @@ -0,0 +1,66 @@ +/* + Colorbox Core Style: + The following CSS is consistent between example themes and should not be altered. +*/ +#colorbox, #cboxOverlay, #cboxWrapper{position:absolute; top:0; left:0; z-index:9999; overflow:hidden;} +#cboxWrapper {max-width:none;} +#cboxOverlay{position:fixed; width:100%; height:100%;} +#cboxMiddleLeft, #cboxBottomLeft{clear:left;} +#cboxContent{position:relative;} +#cboxLoadedContent{overflow:auto; -webkit-overflow-scrolling: touch;} +#cboxTitle{margin:0;} +#cboxLoadingOverlay, #cboxLoadingGraphic{position:absolute; top:0; left:0; width:100%; height:100%;} +#cboxPrevious, #cboxNext, #cboxClose, #cboxSlideshow{cursor:pointer;} +.cboxPhoto{float:left; margin:auto; border:0; display:block; max-width:none; -ms-interpolation-mode:bicubic;} +.cboxIframe{width:100%; height:100%; display:block; border:0; padding:0; margin:0;} +#colorbox, #cboxContent, #cboxLoadedContent{box-sizing:content-box; -moz-box-sizing:content-box; -webkit-box-sizing:content-box;} + +/* + User Style: + Change the following styles to modify the appearance of Colorbox. They are + ordered & tabbed in a way that represents the nesting of the generated HTML. +*/ +#cboxOverlay{background:#fff;} +#colorbox{outline:0;} + #cboxTopLeft{width:25px; height:25px; background:url(images/border1.png) no-repeat 0 0;} + #cboxTopCenter{height:25px; background:url(images/border1.png) repeat-x 0 -50px;} + #cboxTopRight{width:25px; height:25px; background:url(images/border1.png) no-repeat -25px 0;} + #cboxBottomLeft{width:25px; height:25px; background:url(images/border1.png) no-repeat 0 -25px;} + #cboxBottomCenter{height:25px; background:url(images/border1.png) repeat-x 0 -75px;} + #cboxBottomRight{width:25px; height:25px; background:url(images/border1.png) no-repeat -25px -25px;} + #cboxMiddleLeft{width:25px; background:url(images/border2.png) repeat-y 0 0;} + #cboxMiddleRight{width:25px; background:url(images/border2.png) repeat-y -25px 0;} + #cboxContent{background:#fff; overflow:hidden;} + .cboxIframe{background:#fff;} + #cboxError{padding:50px; border:1px solid #ccc;} + #cboxLoadedContent{margin-bottom:20px;} + #cboxTitle{position:absolute; bottom:0px; left:0; text-align:center; width:100%; color:#999;} + #cboxCurrent{position:absolute; bottom:0px; left:100px; color:#999;} + #cboxLoadingOverlay{background:#fff url(images/loading.gif) no-repeat 5px 5px;} + + /* these elements are buttons, and may need to have additional styles reset to avoid unwanted base styles */ + #cboxPrevious, #cboxNext, #cboxSlideshow, #cboxClose {border:0; padding:0; margin:0; overflow:visible; width:auto; background:none; } + + /* avoid outlines on :active (mouseclick), but preserve outlines on :focus (tabbed navigating) */ + #cboxPrevious:active, #cboxNext:active, #cboxSlideshow:active, #cboxClose:active {outline:0;} + + #cboxSlideshow{position:absolute; bottom:0px; right:42px; color:#444;} + #cboxPrevious{position:absolute; bottom:0px; left:0; color:#444;} + #cboxNext{position:absolute; bottom:0px; left:63px; color:#444;} + #cboxClose{position:absolute; bottom:0; right:0; display:block; color:#444;} + +/* + The following fixes a problem where IE7 and IE8 replace a PNG's alpha transparency with a black fill + when an alpha filter (opacity change) is set on the element or ancestor element. This style is not applied to or needed in IE9. + See: http://jacklmoore.com/notes/ie-transparency-problems/ +*/ +.cboxIE #cboxTopLeft, +.cboxIE #cboxTopCenter, +.cboxIE #cboxTopRight, +.cboxIE #cboxBottomLeft, +.cboxIE #cboxBottomCenter, +.cboxIE #cboxBottomRight, +.cboxIE #cboxMiddleLeft, +.cboxIE #cboxMiddleRight { + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#00FFFFFF,endColorstr=#00FFFFFF); +} \ No newline at end of file diff --git a/src/main/webapp/js/colorbox/example4/images/border1.png b/src/main/webapp/js/colorbox/example4/images/border1.png new file mode 100644 index 00000000..0ddc7040 Binary files /dev/null and b/src/main/webapp/js/colorbox/example4/images/border1.png differ diff --git a/src/main/webapp/js/colorbox/example4/images/border2.png b/src/main/webapp/js/colorbox/example4/images/border2.png new file mode 100644 index 00000000..aa62a0b7 Binary files /dev/null and b/src/main/webapp/js/colorbox/example4/images/border2.png differ diff --git a/src/main/webapp/js/colorbox/example4/images/loading.gif b/src/main/webapp/js/colorbox/example4/images/loading.gif new file mode 100644 index 00000000..602ce3c3 Binary files /dev/null and b/src/main/webapp/js/colorbox/example4/images/loading.gif differ diff --git a/src/main/webapp/js/colorbox/example4/index.html b/src/main/webapp/js/colorbox/example4/index.html new file mode 100644 index 00000000..8f10b930 --- /dev/null +++ b/src/main/webapp/js/colorbox/example4/index.html @@ -0,0 +1,95 @@ + + + + + Colorbox Examples + + + + + + + +

    Colorbox Demonstration

    +

    Elastic Transition

    +

    Grouped Photo 1

    +

    Grouped Photo 2

    +

    Grouped Photo 3

    + +

    Fade Transition

    +

    Grouped Photo 1

    +

    Grouped Photo 2

    +

    Grouped Photo 3

    + +

    No Transition + fixed width and height (75% of screen size)

    +

    Grouped Photo 1

    +

    Grouped Photo 2

    +

    Grouped Photo 3

    + +

    Slideshow

    +

    Grouped Photo 1

    +

    Grouped Photo 2

    +

    Grouped Photo 3

    + +

    Other Content Types

    +

    Outside HTML (Ajax)

    +

    Flash / Video (Iframe/Direct Link To YouTube)

    +

    Flash / Video (Iframe/Direct Link To Vimeo)

    +

    Outside Webpage (Iframe)

    +

    Inline HTML

    + +

    Demonstration of using callbacks

    +

    Example with alerts. Callbacks and event-hooks allow users to extend functionality without having to rewrite parts of the plugin.

    + + +

    Retina Images

    +

    Retina

    +

    Non-Retina

    + + +
    +
    +

    This content comes from a hidden element on this page.

    +

    The inline option preserves bound JavaScript events and changes, and it puts the content back where it came from when it is closed.

    +

    Click me, it will be preserved!

    + +

    If you try to open a new Colorbox while it is already open, it will update itself with the new content.

    +

    Updating Content Example:
    + Click here to load new content

    +
    +
    + + \ No newline at end of file diff --git a/src/main/webapp/js/colorbox/example5/colorbox.css b/src/main/webapp/js/colorbox/example5/colorbox.css new file mode 100644 index 00000000..54f9ba76 --- /dev/null +++ b/src/main/webapp/js/colorbox/example5/colorbox.css @@ -0,0 +1,58 @@ +/* + Colorbox Core Style: + The following CSS is consistent between example themes and should not be altered. +*/ +#colorbox, #cboxOverlay, #cboxWrapper{position:absolute; top:0; left:0; z-index:9999; overflow:hidden;} +#cboxWrapper {max-width:none;} +#cboxOverlay{position:fixed; width:100%; height:100%;} +#cboxMiddleLeft, #cboxBottomLeft{clear:left;} +#cboxContent{position:relative;} +#cboxLoadedContent{overflow:auto; -webkit-overflow-scrolling: touch;} +#cboxTitle{margin:0;} +#cboxLoadingOverlay, #cboxLoadingGraphic{position:absolute; top:0; left:0; width:100%; height:100%;} +#cboxPrevious, #cboxNext, #cboxClose, #cboxSlideshow{cursor:pointer;} +.cboxPhoto{float:left; margin:auto; border:0; display:block; max-width:none; -ms-interpolation-mode:bicubic;} +.cboxIframe{width:100%; height:100%; display:block; border:0; padding:0; margin:0;} +#colorbox, #cboxContent, #cboxLoadedContent{box-sizing:content-box; -moz-box-sizing:content-box; -webkit-box-sizing:content-box;} + +/* + User Style: + Change the following styles to modify the appearance of Colorbox. They are + ordered & tabbed in a way that represents the nesting of the generated HTML. +*/ +#cboxOverlay{background:#000;} +#colorbox{outline:0;} + #cboxTopLeft{width:14px; height:14px; background:url(images/controls.png) no-repeat 0 0;} + #cboxTopCenter{height:14px; background:url(images/border.png) repeat-x top left;} + #cboxTopRight{width:14px; height:14px; background:url(images/controls.png) no-repeat -36px 0;} + #cboxBottomLeft{width:14px; height:43px; background:url(images/controls.png) no-repeat 0 -32px;} + #cboxBottomCenter{height:43px; background:url(images/border.png) repeat-x bottom left;} + #cboxBottomRight{width:14px; height:43px; background:url(images/controls.png) no-repeat -36px -32px;} + #cboxMiddleLeft{width:14px; background:url(images/controls.png) repeat-y -175px 0;} + #cboxMiddleRight{width:14px; background:url(images/controls.png) repeat-y -211px 0;} + #cboxContent{background:#fff; overflow:visible;} + .cboxIframe{background:#fff;} + #cboxError{padding:50px; border:1px solid #ccc;} + #cboxLoadedContent{margin-bottom:5px;} + #cboxLoadingOverlay{background:url(images/loading_background.png) no-repeat center center;} + #cboxLoadingGraphic{background:url(images/loading.gif) no-repeat center center;} + #cboxTitle{position:absolute; bottom:-25px; left:0; text-align:center; width:100%; font-weight:bold; color:#7C7C7C;} + #cboxCurrent{position:absolute; bottom:-25px; left:58px; font-weight:bold; color:#7C7C7C;} + + /* these elements are buttons, and may need to have additional styles reset to avoid unwanted base styles */ + #cboxPrevious, #cboxNext, #cboxSlideshow, #cboxClose {border:0; padding:0; margin:0; overflow:visible; position:absolute; bottom:-29px; background:url(images/controls.png) no-repeat 0px 0px; width:23px; height:23px; text-indent:-9999px;} + + /* avoid outlines on :active (mouseclick), but preserve outlines on :focus (tabbed navigating) */ + #cboxPrevious:active, #cboxNext:active, #cboxSlideshow:active, #cboxClose:active {outline:0;} + + #cboxPrevious{left:0px; background-position: -51px -25px;} + #cboxPrevious:hover{background-position:-51px 0px;} + #cboxNext{left:27px; background-position:-75px -25px;} + #cboxNext:hover{background-position:-75px 0px;} + #cboxClose{right:0; background-position:-100px -25px;} + #cboxClose:hover{background-position:-100px 0px;} + + .cboxSlideshow_on #cboxSlideshow{background-position:-125px 0px; right:27px;} + .cboxSlideshow_on #cboxSlideshow:hover{background-position:-150px 0px;} + .cboxSlideshow_off #cboxSlideshow{background-position:-150px -25px; right:27px;} + .cboxSlideshow_off #cboxSlideshow:hover{background-position:-125px 0px;} \ No newline at end of file diff --git a/src/main/webapp/js/colorbox/example5/images/border.png b/src/main/webapp/js/colorbox/example5/images/border.png new file mode 100644 index 00000000..df13bb6d Binary files /dev/null and b/src/main/webapp/js/colorbox/example5/images/border.png differ diff --git a/src/main/webapp/js/colorbox/example5/images/controls.png b/src/main/webapp/js/colorbox/example5/images/controls.png new file mode 100644 index 00000000..65cfd1dc Binary files /dev/null and b/src/main/webapp/js/colorbox/example5/images/controls.png differ diff --git a/src/main/webapp/js/colorbox/example5/images/loading.gif b/src/main/webapp/js/colorbox/example5/images/loading.gif new file mode 100644 index 00000000..b4695d81 Binary files /dev/null and b/src/main/webapp/js/colorbox/example5/images/loading.gif differ diff --git a/src/main/webapp/js/colorbox/example5/images/loading_background.png b/src/main/webapp/js/colorbox/example5/images/loading_background.png new file mode 100644 index 00000000..9de11f46 Binary files /dev/null and b/src/main/webapp/js/colorbox/example5/images/loading_background.png differ diff --git a/src/main/webapp/js/colorbox/example5/index.html b/src/main/webapp/js/colorbox/example5/index.html new file mode 100644 index 00000000..8f10b930 --- /dev/null +++ b/src/main/webapp/js/colorbox/example5/index.html @@ -0,0 +1,95 @@ + + + + + Colorbox Examples + + + + + + + +

    Colorbox Demonstration

    +

    Elastic Transition

    +

    Grouped Photo 1

    +

    Grouped Photo 2

    +

    Grouped Photo 3

    + +

    Fade Transition

    +

    Grouped Photo 1

    +

    Grouped Photo 2

    +

    Grouped Photo 3

    + +

    No Transition + fixed width and height (75% of screen size)

    +

    Grouped Photo 1

    +

    Grouped Photo 2

    +

    Grouped Photo 3

    + +

    Slideshow

    +

    Grouped Photo 1

    +

    Grouped Photo 2

    +

    Grouped Photo 3

    + +

    Other Content Types

    +

    Outside HTML (Ajax)

    +

    Flash / Video (Iframe/Direct Link To YouTube)

    +

    Flash / Video (Iframe/Direct Link To Vimeo)

    +

    Outside Webpage (Iframe)

    +

    Inline HTML

    + +

    Demonstration of using callbacks

    +

    Example with alerts. Callbacks and event-hooks allow users to extend functionality without having to rewrite parts of the plugin.

    + + +

    Retina Images

    +

    Retina

    +

    Non-Retina

    + + +
    +
    +

    This content comes from a hidden element on this page.

    +

    The inline option preserves bound JavaScript events and changes, and it puts the content back where it came from when it is closed.

    +

    Click me, it will be preserved!

    + +

    If you try to open a new Colorbox while it is already open, it will update itself with the new content.

    +

    Updating Content Example:
    + Click here to load new content

    +
    +
    + + \ No newline at end of file diff --git a/src/main/webapp/js/colorbox/i18n/jquery.colorbox-ar.js b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-ar.js new file mode 100644 index 00000000..6c4228cd --- /dev/null +++ b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-ar.js @@ -0,0 +1,15 @@ +/* + jQuery Colorbox language configuration + language: Arabic (ar) + translated by: A.Rhman Sayes +*/ +jQuery.extend(jQuery.colorbox.settings, { + current: "الصورة {current} من {total}", + previous: "السابق", + next: "التالي", + close: "إغلاق", + xhrError: "حدث خطأ أثناء تحميل المحتوى.", + imgError: "حدث خطأ أثناء تحميل الصورة.", + slideshowStart: "تشغيل العرض", + slideshowStop: "إيقاف العرض" +}); diff --git a/src/main/webapp/js/colorbox/i18n/jquery.colorbox-bg.js b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-bg.js new file mode 100644 index 00000000..de7e4a1d --- /dev/null +++ b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-bg.js @@ -0,0 +1,16 @@ +/* + jQuery Colorbox language configuration + language: Bulgarian (bg) + translated by: Marian M.Bida + site: webmax.bg +*/ +jQuery.extend(jQuery.colorbox.settings, { + current: "изображение {current} от {total}", + previous: "предишна", + next: "следваща", + close: "затвори", + xhrError: "Неуспешно зареждане на съдържанието.", + imgError: "Неуспешно зареждане на изображението.", + slideshowStart: "пусни слайд-шоу", + slideshowStop: "спри слайд-шоу" +}); diff --git a/src/main/webapp/js/colorbox/i18n/jquery.colorbox-ca.js b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-ca.js new file mode 100644 index 00000000..173c05fd --- /dev/null +++ b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-ca.js @@ -0,0 +1,13 @@ +/* + jQuery Colorbox language configuration + language: Catala (ca) + translated by: eduard salla +*/ +jQuery.extend(jQuery.colorbox.settings, { + current: "Imatge {current} de {total}", + previous: "Anterior", + next: "Següent", + close: "Tancar", + xhrError: "Error en la càrrega del contingut.", + imgError: "Error en la càrrega de la imatge." +}); diff --git a/src/main/webapp/js/colorbox/i18n/jquery.colorbox-cs.js b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-cs.js new file mode 100644 index 00000000..9649fd45 --- /dev/null +++ b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-cs.js @@ -0,0 +1,16 @@ +/* + jQuery Colorbox language configuration + language: Czech (cs) + translated by: Filip Novak + site: mame.napilno.cz/filip-novak +*/ +jQuery.extend(jQuery.colorbox.settings, { + current: "{current}. obrázek z {total}", + previous: "Předchozí", + next: "Následující", + close: "Zavřít", + xhrError: "Obsah se nepodařilo načíst.", + imgError: "Obrázek se nepodařilo načíst.", + slideshowStart: "Spustit slideshow", + slideshowStop: "Zastavit slideshow" +}); \ No newline at end of file diff --git a/src/main/webapp/js/colorbox/i18n/jquery.colorbox-da.js b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-da.js new file mode 100644 index 00000000..676fffed --- /dev/null +++ b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-da.js @@ -0,0 +1,16 @@ +/* + jQuery Colorbox language configuration + language: Danish (da) + translated by: danieljuhl + site: danieljuhl.dk +*/ +jQuery.extend(jQuery.colorbox.settings, { + current: "Billede {current} af {total}", + previous: "Forrige", + next: "Næste", + close: "Luk", + xhrError: "Indholdet fejlede i indlæsningen.", + imgError: "Billedet fejlede i indlæsningen.", + slideshowStart: "Start slideshow", + slideshowStop: "Stop slideshow" +}); diff --git a/src/main/webapp/js/colorbox/i18n/jquery.colorbox-de.js b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-de.js new file mode 100644 index 00000000..d489379b --- /dev/null +++ b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-de.js @@ -0,0 +1,15 @@ +/* + jQuery Colorbox language configuration + language: German (de) + translated by: wallenium +*/ +jQuery.extend(jQuery.colorbox.settings, { + current: "Bild {current} von {total}", + previous: "Zurück", + next: "Vor", + close: "Schließen", + xhrError: "Dieser Inhalt konnte nicht geladen werden.", + imgError: "Dieses Bild konnte nicht geladen werden.", + slideshowStart: "Slideshow starten", + slideshowStop: "Slideshow anhalten" +}); \ No newline at end of file diff --git a/src/main/webapp/js/colorbox/i18n/jquery.colorbox-es.js b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-es.js new file mode 100644 index 00000000..11296fc9 --- /dev/null +++ b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-es.js @@ -0,0 +1,13 @@ +/* + jQuery Colorbox language configuration + language: Spanish (es) + translated by: migolo +*/ +jQuery.extend(jQuery.colorbox.settings, { + current: "Imagen {current} de {total}", + previous: "Anterior", + next: "Siguiente", + close: "Cerrar", + xhrError: "Error en la carga del contenido.", + imgError: "Error en la carga de la imagen." +}); diff --git a/src/main/webapp/js/colorbox/i18n/jquery.colorbox-et.js b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-et.js new file mode 100644 index 00000000..60a4e888 --- /dev/null +++ b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-et.js @@ -0,0 +1,15 @@ +/* + jQuery Colorbox language configuration + language: Estonian (et) + translated by: keevitaja +*/ +jQuery.extend(jQuery.colorbox.settings, { + current: "{current}/{total}", + previous: "eelmine", + next: "järgmine", + close: "sulge", + xhrError: "Sisu ei õnnestunud laadida.", + imgError: "Pilti ei õnnestunud laadida.", + slideshowStart: "Käivita slaidid", + slideshowStop: "Peata slaidid" +}); \ No newline at end of file diff --git a/src/main/webapp/js/colorbox/i18n/jquery.colorbox-fa.js b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-fa.js new file mode 100644 index 00000000..32869a4c --- /dev/null +++ b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-fa.js @@ -0,0 +1,18 @@ +/* + jQuery Colorbox language configuration + language: Persian (Farsi) + translated by: Mahdi Jaberzadeh Ansari (MJZSoft) + site: www.mjzsoft.ir + email: mahdijaberzadehansari (at) yahoo.co.uk + Please note : Persian language is right to left like arabic. +*/ +jQuery.extend(jQuery.colorbox.settings, { + current: "تصویر {current} از {total}", + previous: "قبلی", + next: "بعدی", + close: "بستن", + xhrError: "متاسفانه محتویات مورد نظر قابل نمایش نیست.", + imgError: "متاسفانه بارگذاری این عکس با مشکل مواجه شده است.", + slideshowStart: "آغاز نمایش خودکار", + slideshowStop: "توقف نمایش خودکار" +}); diff --git a/src/main/webapp/js/colorbox/i18n/jquery.colorbox-fi.js b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-fi.js new file mode 100644 index 00000000..ac03fe02 --- /dev/null +++ b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-fi.js @@ -0,0 +1,15 @@ +/* + jQuery Colorbox language configuration + language: Finnish (fi) + translated by: Mikko +*/ +jQuery.extend(jQuery.colorbox.settings, { + current: "Kuva {current} / {total}", + previous: "Edellinen", + next: "Seuraava", + close: "Sulje", + xhrError: "Sisällön lataaminen epäonnistui.", + imgError: "Kuvan lataaminen epäonnistui.", + slideshowStart: "Aloita kuvaesitys.", + slideshowStop: "Lopeta kuvaesitys." +}); diff --git a/src/main/webapp/js/colorbox/i18n/jquery.colorbox-fr.js b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-fr.js new file mode 100644 index 00000000..f76352bd --- /dev/null +++ b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-fr.js @@ -0,0 +1,15 @@ +/* + jQuery Colorbox language configuration + language: French (fr) + translated by: oaubert +*/ +jQuery.extend(jQuery.colorbox.settings, { + current: "image {current} sur {total}", + previous: "précédente", + next: "suivante", + close: "fermer", + xhrError: "Impossible de charger ce contenu.", + imgError: "Impossible de charger cette image.", + slideshowStart: "démarrer la présentation", + slideshowStop: "arrêter la présentation" +}); diff --git a/src/main/webapp/js/colorbox/i18n/jquery.colorbox-gl.js b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-gl.js new file mode 100644 index 00000000..3641b51b --- /dev/null +++ b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-gl.js @@ -0,0 +1,13 @@ +/* + jQuery Colorbox language configuration + language: Galician (gl) + translated by: donatorouco +*/ +jQuery.extend(jQuery.colorbox.settings, { + current: "Imaxe {current} de {total}", + previous: "Anterior", + next: "Seguinte", + close: "Pechar", + xhrError: "Erro na carga do contido.", + imgError: "Erro na carga da imaxe." +}); diff --git a/src/main/webapp/js/colorbox/i18n/jquery.colorbox-gr.js b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-gr.js new file mode 100644 index 00000000..0d2c1bb7 --- /dev/null +++ b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-gr.js @@ -0,0 +1,16 @@ +/* + jQuery Colorbox language configuration + language: Greek (gr) + translated by: S.Demirtzoglou + site: webiq.gr +*/ +jQuery.extend(jQuery.colorbox.settings, { + current: "Εικόνα {current} από {total}", + previous: "Προηγούμενη", + next: "Επόμενη", + close: "Απόκρυψη", + xhrError: "Το περιεχόμενο δεν μπόρεσε να φορτωθεί.", + imgError: "Απέτυχε η φόρτωση της εικόνας.", + slideshowStart: "Έναρξη παρουσίασης", + slideshowStop: "Παύση παρουσίασης" +}); diff --git a/src/main/webapp/js/colorbox/i18n/jquery.colorbox-he.js b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-he.js new file mode 100644 index 00000000..78908e39 --- /dev/null +++ b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-he.js @@ -0,0 +1,16 @@ +/* + jQuery Colorbox language configuration + language: Hebrew (he) + translated by: DavidCo + site: DavidCo.me +*/ +jQuery.extend(jQuery.colorbox.settings, { + current: "תמונה {current} מתוך {total}", + previous: "הקודם", + next: "הבא", + close: "סגור", + xhrError: "שגיאה בטעינת התוכן.", + imgError: "שגיאה בטעינת התמונה.", + slideshowStart: "התחל מצגת", + slideshowStop: "עצור מצגת" +}); diff --git a/src/main/webapp/js/colorbox/i18n/jquery.colorbox-hr.js b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-hr.js new file mode 100644 index 00000000..7eb62bec --- /dev/null +++ b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-hr.js @@ -0,0 +1,15 @@ +/* + jQuery Colorbox language configuration + language: Croatian (hr) + translated by: Mladen Bicanic (base.hr) +*/ +jQuery.extend(jQuery.colorbox.settings, { + current: "Slika {current} od {total}", + previous: "Prethodna", + next: "Sljedeća", + close: "Zatvori", + xhrError: "Neuspješno učitavanje sadržaja.", + imgError: "Neuspješno učitavanje slike.", + slideshowStart: "Pokreni slideshow", + slideshowStop: "Zaustavi slideshow" +}); \ No newline at end of file diff --git a/src/main/webapp/js/colorbox/i18n/jquery.colorbox-hu.js b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-hu.js new file mode 100644 index 00000000..72e9d36b --- /dev/null +++ b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-hu.js @@ -0,0 +1,15 @@ +/* + jQuery Colorbox language configuration + language: Hungarian (hu) + translated by: kovadani +*/ +jQuery.extend(jQuery.colorbox.settings, { + current: "{current}/{total} kép", + previous: "Előző", + next: "Következő", + close: "Bezár", + xhrError: "A tartalmat nem sikerült betölteni.", + imgError: "A képet nem sikerült betölteni.", + slideshowStart: "Diavetítés indítása", + slideshowStop: "Diavetítés leállítása" +}); \ No newline at end of file diff --git a/src/main/webapp/js/colorbox/i18n/jquery.colorbox-id.js b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-id.js new file mode 100644 index 00000000..81a62df3 --- /dev/null +++ b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-id.js @@ -0,0 +1,15 @@ +/* + jQuery Colorbox language configuration + language: Indonesian (id) + translated by: sarwasunda +*/ +jQuery.extend(jQuery.colorbox.settings, { + current: "ke {current} dari {total}", + previous: "Sebelumnya", + next: "Berikutnya", + close: "Tutup", + xhrError: "Konten ini tidak dapat dimuat.", + imgError: "Gambar ini tidak dapat dimuat.", + slideshowStart: "Putar", + slideshowStop: "Berhenti" +}); diff --git a/src/main/webapp/js/colorbox/i18n/jquery.colorbox-it.js b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-it.js new file mode 100644 index 00000000..2a4af645 --- /dev/null +++ b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-it.js @@ -0,0 +1,15 @@ +/* + jQuery Colorbox language configuration + language: Italian (it) + translated by: maur8ino +*/ +jQuery.extend(jQuery.colorbox.settings, { + current: "Immagine {current} di {total}", + previous: "Precedente", + next: "Successiva", + close: "Chiudi", + xhrError: "Errore nel caricamento del contenuto.", + imgError: "Errore nel caricamento dell'immagine.", + slideshowStart: "Inizia la presentazione", + slideshowStop: "Termina la presentazione" +}); diff --git a/src/main/webapp/js/colorbox/i18n/jquery.colorbox-ja.js b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-ja.js new file mode 100644 index 00000000..5480de33 --- /dev/null +++ b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-ja.js @@ -0,0 +1,15 @@ +/* + jQuery Colorbox language configuration + language: Japanaese (ja) + translated by: Hajime Fujimoto +*/ +jQuery.extend(jQuery.colorbox.settings, { + current: "{total}枚中{current}枚目", + previous: "前", + next: "次", + close: "閉じる", + xhrError: "コンテンツの読み込みに失敗しました", + imgError: "画像の読み込みに失敗しました", + slideshowStart: "スライドショー開始", + slideshowStop: "スライドショー終了" +}); diff --git a/src/main/webapp/js/colorbox/i18n/jquery.colorbox-kr.js b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-kr.js new file mode 100644 index 00000000..b95702bc --- /dev/null +++ b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-kr.js @@ -0,0 +1,15 @@ +/* + jQuery Colorbox language configuration + language: Korean (kr) + translated by: lunareffect +*/ +jQuery.extend(jQuery.colorbox.settings, { + current: "총 {total} 중 {current}", + previous: "이전", + next: "다음", + close: "닫기", + xhrError: "컨텐츠를 불러오는 데 실패했습니다.", + imgError: "이미지를 불러오는 데 실패했습니다.", + slideshowStart: "슬라이드쇼 시작", + slideshowStop: "슬라이드쇼 중지" +}); diff --git a/src/main/webapp/js/colorbox/i18n/jquery.colorbox-lt.js b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-lt.js new file mode 100644 index 00000000..a513fcf6 --- /dev/null +++ b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-lt.js @@ -0,0 +1,15 @@ +/* + jQuery Colorbox language configuration + language: Lithuanian (lt) + translated by: Tomas Norkūnas +*/ +jQuery.extend(jQuery.colorbox.settings, { + current: "Nuotrauka {current} iš {total}", + previous: "Atgal", + next: "Pirmyn", + close: "Uždaryti", + xhrError: "Nepavyko užkrauti turinio.", + imgError: "Nepavyko užkrauti nuotraukos.", + slideshowStart: "Pradėti automatinę peržiūrą", + slideshowStop: "Sustabdyti automatinę peržiūrą" +}); \ No newline at end of file diff --git a/src/main/webapp/js/colorbox/i18n/jquery.colorbox-lv.js b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-lv.js new file mode 100644 index 00000000..e376366b --- /dev/null +++ b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-lv.js @@ -0,0 +1,16 @@ +/* + jQuery Colorbox language configuration + language: Latvian (lv) + translated by: Matiss Roberts Treinis + site: x0.lv +*/ +jQuery.extend(jQuery.colorbox.settings, { + current: "attēls {current} no {total}", + previous: "iepriekšējais", + next: "nākamais", + close: "aizvērt", + xhrError: "Neizdevās ielādēt saturu.", + imgError: "Neizdevās ielādēt attēlu.", + slideshowStart: "sākt slaidrādi", + slideshowStop: "apturēt slaidrādi" +}); diff --git a/src/main/webapp/js/colorbox/i18n/jquery.colorbox-my.js b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-my.js new file mode 100644 index 00000000..216e252c --- /dev/null +++ b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-my.js @@ -0,0 +1,15 @@ +/* + jQuery Colorbox language configuration + language: Myanmar (my) + translated by: Yan Naing +*/ +jQuery.extend(jQuery.colorbox.settings, { + current: "ပုံ {total} မှာ {current} မြောက်ပုံ", + previous: "ရှေ့သို့", + next: "နောက်သို့", + close: "ပိတ်မည်", + xhrError: "ပါဝင်သော အကြောင်းအရာများ ဖော်ပြရာတွင် အနည်းငယ် ချို့ယွင်းမှုရှိနေပါသည်", + imgError: "ပုံပြသရာတွင် အနည်းငယ် ချို့ယွင်းချက် ရှိနေပါသည်", + slideshowStart: "ပုံများ စတင်ပြသမည်", + slideshowStop: "ပုံပြသခြင်း ရပ်ဆိုင်မည်" +}); diff --git a/src/main/webapp/js/colorbox/i18n/jquery.colorbox-nl.js b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-nl.js new file mode 100644 index 00000000..dfc658ec --- /dev/null +++ b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-nl.js @@ -0,0 +1,15 @@ +/* + jQuery Colorbox language configuration + language: Dutch (nl) + translated by: barryvdh +*/ +jQuery.extend(jQuery.colorbox.settings, { + current: "Afbeelding {current} van {total}", + previous: "Vorige", + next: "Volgende", + close: "Sluiten", + xhrError: "Deze inhoud kan niet geladen worden.", + imgError: "Deze afbeelding kan niet geladen worden.", + slideshowStart: "Diashow starten", + slideshowStop: "Diashow stoppen" +}); \ No newline at end of file diff --git a/src/main/webapp/js/colorbox/i18n/jquery.colorbox-no.js b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-no.js new file mode 100644 index 00000000..277c5d3f --- /dev/null +++ b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-no.js @@ -0,0 +1,16 @@ +/* + jQuery Colorbox language configuration + language: Norwegian (no) + translated by: lars-erik + site: markedspartner.no +*/ +jQuery.extend(jQuery.colorbox.settings, { + current: "Bilde {current} av {total}", + previous: "Forrige", + next: "Neste", + close: "Lukk", + xhrError: "Feil ved lasting av innhold.", + imgError: "Feil ved lasting av bilde.", + slideshowStart: "Start lysbildefremvisning", + slideshowStop: "Stopp lysbildefremvisning" +}); diff --git a/src/main/webapp/js/colorbox/i18n/jquery.colorbox-pl.js b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-pl.js new file mode 100644 index 00000000..1c04dae1 --- /dev/null +++ b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-pl.js @@ -0,0 +1,16 @@ +/* + jQuery Colorbox language configuration + language: Polski (pl) + translated by: Tomasz Wasiński + site: 2bevisible.pl +*/ +jQuery.extend(jQuery.colorbox.settings, { + current: "{current}. obrazek z {total}", + previous: "Poprzedni", + next: "Następny", + close: "Zamknij", + xhrError: "Nie udało się załadować treści.", + imgError: "Nie udało się załadować obrazka.", + slideshowStart: "rozpocznij pokaz slajdów", + slideshowStop: "zatrzymaj pokaz slajdów" +}); \ No newline at end of file diff --git a/src/main/webapp/js/colorbox/i18n/jquery.colorbox-pt-br.js b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-pt-br.js new file mode 100644 index 00000000..73e948b7 --- /dev/null +++ b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-pt-br.js @@ -0,0 +1,15 @@ +/* + jQuery Colorbox language configuration + language: Brazilian Portuguese (pt-br) + translated by: ReinaldoMT +*/ +jQuery.extend(jQuery.colorbox.settings, { + current: "Imagem {current} de {total}", + previous: "Anterior", + next: "Próxima", + close: "Fechar", + slideshowStart: "iniciar apresentação de slides", + slideshowStop: "parar apresentação de slides", + xhrError: "Erro ao carregar o conteúdo.", + imgError: "Erro ao carregar a imagem." +}); \ No newline at end of file diff --git a/src/main/webapp/js/colorbox/i18n/jquery.colorbox-ro.js b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-ro.js new file mode 100644 index 00000000..0a461e28 --- /dev/null +++ b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-ro.js @@ -0,0 +1,15 @@ +/* + jQuery Colorbox language configuration + language: Romanian (ro) + translated by: shurub3l +*/ +jQuery.extend(jQuery.colorbox.settings, { + current: "imagine {current} din {total}", + previous: "precedenta", + next: "următoarea", + close: "închideți", + xhrError: "Acest conținut nu poate fi încărcat.", + imgError: "Această imagine nu poate fi încărcată", + slideshowStart: "începeți prezentarea (slideshow)", + slideshowStop: "opriți prezentarea (slideshow)" +}); \ No newline at end of file diff --git a/src/main/webapp/js/colorbox/i18n/jquery.colorbox-ru.js b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-ru.js new file mode 100644 index 00000000..1d88b8cd --- /dev/null +++ b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-ru.js @@ -0,0 +1,16 @@ +/* + jQuery Colorbox language configuration + language: Russian (ru) + translated by: Marfa + site: themarfa.name +*/ +jQuery.extend(jQuery.colorbox.settings, { + current: "изображение {current} из {total}", + previous: "назад", + next: "вперёд", + close: "закрыть", + xhrError: "Не удалось загрузить содержимое.", + imgError: "Не удалось загрузить изображение.", + slideshowStart: "начать слайд-шоу", + slideshowStop: "остановить слайд-шоу" +}); \ No newline at end of file diff --git a/src/main/webapp/js/colorbox/i18n/jquery.colorbox-si.js b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-si.js new file mode 100644 index 00000000..034b5b3c --- /dev/null +++ b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-si.js @@ -0,0 +1,15 @@ +/* + jQuery Colorbox language configuration + language: Slovenian (si) + translated by: Boštjan Pišler (pisler.si) +*/ +jQuery.extend(jQuery.colorbox.settings, { + current: "Slika {current} od {total}", + previous: "Prejšnja", + next: "Naslednja", + close: "Zapri", + xhrError: "Vsebine ni bilo mogoče naložiti.", + imgError: "Slike ni bilo mogoče naložiti.", + slideshowStart: "Zaženi prezentacijo", + slideshowStop: "Zaustavi prezentacijo" +}); \ No newline at end of file diff --git a/src/main/webapp/js/colorbox/i18n/jquery.colorbox-sk.js b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-sk.js new file mode 100644 index 00000000..faa9291c --- /dev/null +++ b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-sk.js @@ -0,0 +1,15 @@ +/* + jQuery Colorbox language configuration + language: Slovak (sk) + translated by: Jaroslav Kostal +*/ +jQuery.extend(jQuery.colorbox.settings, { + current: "{current}. obrázok z {total}", + previous: "Predchádzajúci", + next: "Následujúci", + close: "Zatvoriť", + xhrError: "Obsah sa nepodarilo načítať.", + imgError: "Obrázok sa nepodarilo načítať.", + slideshowStart: "Spustiť slideshow", + slideshowStop: "zastaviť slideshow" +}); \ No newline at end of file diff --git a/src/main/webapp/js/colorbox/i18n/jquery.colorbox-sr.js b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-sr.js new file mode 100644 index 00000000..618e73c4 --- /dev/null +++ b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-sr.js @@ -0,0 +1,15 @@ +/* + jQuery Colorbox language configuration + language: Serbian (sr) + translated by: Sasa Stefanovic (baguje.com) +*/ +jQuery.extend(jQuery.colorbox.settings, { + current: "Slika {current} od {total}", + previous: "Prethodna", + next: "Sledeća", + close: "Zatvori", + xhrError: "Neuspešno učitavanje sadržaja.", + imgError: "Neuspešno učitavanje slike.", + slideshowStart: "Pokreni slideshow", + slideshowStop: "Zaustavi slideshow" +}); diff --git a/src/main/webapp/js/colorbox/i18n/jquery.colorbox-sv.js b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-sv.js new file mode 100644 index 00000000..01bb1d8c --- /dev/null +++ b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-sv.js @@ -0,0 +1,15 @@ +/* + jQuery Colorbox language configuration + language: Swedish (sv) + translated by: Mattias Reichel +*/ +jQuery.extend(jQuery.colorbox.settings, { + current: "Bild {current} av {total}", + previous: "Föregående", + next: "Nästa", + close: "Stäng", + xhrError: "Innehållet kunde inte laddas.", + imgError: "Den här bilden kunde inte laddas.", + slideshowStart: "Starta bildspel", + slideshowStop: "Stoppa bildspel" +}); \ No newline at end of file diff --git a/src/main/webapp/js/colorbox/i18n/jquery.colorbox-tr.js b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-tr.js new file mode 100644 index 00000000..d467c2ef --- /dev/null +++ b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-tr.js @@ -0,0 +1,19 @@ +/* + jQuery Colorbox language configuration + language: Turkish (tr) + translated by: Caner ÖNCEL + site: egonomik.com + + edited by: Sinan Eldem + www.sinaneldem.com.tr +*/ +jQuery.extend(jQuery.colorbox.settings, { + current: "Görsel {current} / {total}", + previous: "Önceki", + next: "Sonraki", + close: "Kapat", + xhrError: "İçerik yüklenirken hata meydana geldi.", + imgError: "Resim yüklenirken hata meydana geldi.", + slideshowStart: "Slaytı Başlat", + slideshowStop: "Slaytı Durdur" +}); diff --git a/src/main/webapp/js/colorbox/i18n/jquery.colorbox-uk.js b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-uk.js new file mode 100644 index 00000000..3f786d3f --- /dev/null +++ b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-uk.js @@ -0,0 +1,16 @@ +/* + jQuery ColorBox language configuration + language: Ukrainian (uk) + translated by: Andrew + http://acisoftware.com.ua +*/ +jQuery.extend(jQuery.colorbox.settings, { + current: "зображення {current} з {total}", + previous: "попереднє", + next: "наступне", + close: "закрити", + xhrError: "Не вдалося завантажити вміст.", + imgError: "Не вдалося завантажити зображення.", + slideshowStart: "почати слайд-шоу", + slideshowStop: "зупинити слайд-шоу" +}); \ No newline at end of file diff --git a/src/main/webapp/js/colorbox/i18n/jquery.colorbox-zh-CN.js b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-zh-CN.js new file mode 100644 index 00000000..770d8eac --- /dev/null +++ b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-zh-CN.js @@ -0,0 +1,15 @@ +/* + jQuery Colorbox language configuration + language: Chinese Simplified (zh-CN) + translated by: zhao weiming +*/ +jQuery.extend(jQuery.colorbox.settings, { + current: "当前图像 {current} 总共 {total}", + previous: "前一页", + next: "后一页", + close: "关闭", + xhrError: "此内容无法加载", + imgError: "此图片无法加载", + slideshowStart: "开始播放幻灯片", + slideshowStop: "停止播放幻灯片" +}); \ No newline at end of file diff --git a/src/main/webapp/js/colorbox/i18n/jquery.colorbox-zh-TW.js b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-zh-TW.js new file mode 100644 index 00000000..b0c4f123 --- /dev/null +++ b/src/main/webapp/js/colorbox/i18n/jquery.colorbox-zh-TW.js @@ -0,0 +1,15 @@ +/* + jQuery Colorbox language configuration + language: Chinese Traditional (zh-TW) + translated by: Atans Chiu +*/ +jQuery.extend(jQuery.colorbox.settings, { + current: "圖片 {current} 總共 {total}", + previous: "上一頁", + next: "下一頁", + close: "關閉", + xhrError: "此內容加載失敗.", + imgError: "此圖片加載失敗.", + slideshowStart: "開始幻燈片", + slideshowStop: "結束幻燈片" +}); \ No newline at end of file diff --git a/src/main/webapp/js/colorbox/images/border.png b/src/main/webapp/js/colorbox/images/border.png new file mode 100644 index 00000000..f463a10d Binary files /dev/null and b/src/main/webapp/js/colorbox/images/border.png differ diff --git a/src/main/webapp/js/colorbox/images/controls.png b/src/main/webapp/js/colorbox/images/controls.png new file mode 100644 index 00000000..dcfd6fb9 Binary files /dev/null and b/src/main/webapp/js/colorbox/images/controls.png differ diff --git a/src/main/webapp/js/colorbox/images/ie6/Thumbs.db b/src/main/webapp/js/colorbox/images/ie6/Thumbs.db new file mode 100644 index 00000000..f9d41ccd Binary files /dev/null and b/src/main/webapp/js/colorbox/images/ie6/Thumbs.db differ diff --git a/src/main/webapp/js/colorbox/images/ie6/borderBottomCenter.png b/src/main/webapp/js/colorbox/images/ie6/borderBottomCenter.png new file mode 100644 index 00000000..0d4475ed Binary files /dev/null and b/src/main/webapp/js/colorbox/images/ie6/borderBottomCenter.png differ diff --git a/src/main/webapp/js/colorbox/images/ie6/borderBottomLeft.png b/src/main/webapp/js/colorbox/images/ie6/borderBottomLeft.png new file mode 100644 index 00000000..2775eba8 Binary files /dev/null and b/src/main/webapp/js/colorbox/images/ie6/borderBottomLeft.png differ diff --git a/src/main/webapp/js/colorbox/images/ie6/borderBottomRight.png b/src/main/webapp/js/colorbox/images/ie6/borderBottomRight.png new file mode 100644 index 00000000..f7f51379 Binary files /dev/null and b/src/main/webapp/js/colorbox/images/ie6/borderBottomRight.png differ diff --git a/src/main/webapp/js/colorbox/images/ie6/borderMiddleLeft.png b/src/main/webapp/js/colorbox/images/ie6/borderMiddleLeft.png new file mode 100644 index 00000000..a2d63d15 Binary files /dev/null and b/src/main/webapp/js/colorbox/images/ie6/borderMiddleLeft.png differ diff --git a/src/main/webapp/js/colorbox/images/ie6/borderMiddleRight.png b/src/main/webapp/js/colorbox/images/ie6/borderMiddleRight.png new file mode 100644 index 00000000..fd7c3e84 Binary files /dev/null and b/src/main/webapp/js/colorbox/images/ie6/borderMiddleRight.png differ diff --git a/src/main/webapp/js/colorbox/images/ie6/borderTopCenter.png b/src/main/webapp/js/colorbox/images/ie6/borderTopCenter.png new file mode 100644 index 00000000..2937a9cf Binary files /dev/null and b/src/main/webapp/js/colorbox/images/ie6/borderTopCenter.png differ diff --git a/src/main/webapp/js/colorbox/images/ie6/borderTopLeft.png b/src/main/webapp/js/colorbox/images/ie6/borderTopLeft.png new file mode 100644 index 00000000..f9d458b5 Binary files /dev/null and b/src/main/webapp/js/colorbox/images/ie6/borderTopLeft.png differ diff --git a/src/main/webapp/js/colorbox/images/ie6/borderTopRight.png b/src/main/webapp/js/colorbox/images/ie6/borderTopRight.png new file mode 100644 index 00000000..74b8583c Binary files /dev/null and b/src/main/webapp/js/colorbox/images/ie6/borderTopRight.png differ diff --git a/src/main/webapp/js/colorbox/images/loading.gif b/src/main/webapp/js/colorbox/images/loading.gif new file mode 100644 index 00000000..b4695d81 Binary files /dev/null and b/src/main/webapp/js/colorbox/images/loading.gif differ diff --git a/src/main/webapp/js/colorbox/images/loading_background.png b/src/main/webapp/js/colorbox/images/loading_background.png new file mode 100644 index 00000000..6ae83e69 Binary files /dev/null and b/src/main/webapp/js/colorbox/images/loading_background.png differ diff --git a/src/main/webapp/js/colorbox/images/overlay.png b/src/main/webapp/js/colorbox/images/overlay.png new file mode 100644 index 00000000..53ea98f7 Binary files /dev/null and b/src/main/webapp/js/colorbox/images/overlay.png differ diff --git a/src/main/webapp/js/colorbox/jquery.colorbox-min.js b/src/main/webapp/js/colorbox/jquery.colorbox-min.js new file mode 100644 index 00000000..71e57643 --- /dev/null +++ b/src/main/webapp/js/colorbox/jquery.colorbox-min.js @@ -0,0 +1,7 @@ +/*! + Colorbox v1.5.8 - 2014-04-15 + jQuery lightbox and modal window plugin + (c) 2014 Jack Moore - http://www.jacklmoore.com/colorbox + license: http://www.opensource.org/licenses/mit-license.php +*/ +(function(t,e,i){function n(i,n,o){var r=e.createElement(i);return n&&(r.id=Z+n),o&&(r.style.cssText=o),t(r)}function o(){return i.innerHeight?i.innerHeight:t(i).height()}function r(e,i){i!==Object(i)&&(i={}),this.cache={},this.el=e,this.value=function(e){var n;return void 0===this.cache[e]&&(n=t(this.el).attr("data-cbox-"+e),void 0!==n?this.cache[e]=n:void 0!==i[e]?this.cache[e]=i[e]:void 0!==X[e]&&(this.cache[e]=X[e])),this.cache[e]},this.get=function(e){var i=this.value(e);return t.isFunction(i)?i.call(this.el,this):i}}function h(t){var e=W.length,i=(z+t)%e;return 0>i?e+i:i}function a(t,e){return Math.round((/%/.test(t)?("x"===e?E.width():o())/100:1)*parseInt(t,10))}function s(t,e){return t.get("photo")||t.get("photoRegex").test(e)}function l(t,e){return t.get("retinaUrl")&&i.devicePixelRatio>1?e.replace(t.get("photoRegex"),t.get("retinaSuffix")):e}function d(t){"contains"in x[0]&&!x[0].contains(t.target)&&t.target!==v[0]&&(t.stopPropagation(),x.focus())}function c(t){c.str!==t&&(x.add(v).removeClass(c.str).addClass(t),c.str=t)}function g(e){z=0,e&&e!==!1?(W=t("."+te).filter(function(){var i=t.data(this,Y),n=new r(this,i);return n.get("rel")===e}),z=W.index(_.el),-1===z&&(W=W.add(_.el),z=W.length-1)):W=t(_.el)}function u(i){t(e).trigger(i),ae.triggerHandler(i)}function f(i){var o;if(!G){if(o=t(i).data("colorbox"),_=new r(i,o),g(_.get("rel")),!$){$=q=!0,c(_.get("className")),x.css({visibility:"hidden",display:"block",opacity:""}),L=n(se,"LoadedContent","width:0; height:0; overflow:hidden; visibility:hidden"),b.css({width:"",height:""}).append(L),D=T.height()+k.height()+b.outerHeight(!0)-b.height(),j=C.width()+H.width()+b.outerWidth(!0)-b.width(),A=L.outerHeight(!0),N=L.outerWidth(!0);var h=a(_.get("initialWidth"),"x"),s=a(_.get("initialHeight"),"y"),l=_.get("maxWidth"),f=_.get("maxHeight");_.w=(l!==!1?Math.min(h,a(l,"x")):h)-N-j,_.h=(f!==!1?Math.min(s,a(f,"y")):s)-A-D,L.css({width:"",height:_.h}),J.position(),u(ee),_.get("onOpen"),O.add(I).hide(),x.focus(),_.get("trapFocus")&&e.addEventListener&&(e.addEventListener("focus",d,!0),ae.one(re,function(){e.removeEventListener("focus",d,!0)})),_.get("returnFocus")&&ae.one(re,function(){t(_.el).focus()})}v.css({opacity:parseFloat(_.get("opacity"))||"",cursor:_.get("overlayClose")?"pointer":"",visibility:"visible"}).show(),_.get("closeButton")?B.html(_.get("close")).appendTo(b):B.appendTo("
    "),w()}}function p(){!x&&e.body&&(V=!1,E=t(i),x=n(se).attr({id:Y,"class":t.support.opacity===!1?Z+"IE":"",role:"dialog",tabindex:"-1"}).hide(),v=n(se,"Overlay").hide(),S=t([n(se,"LoadingOverlay")[0],n(se,"LoadingGraphic")[0]]),y=n(se,"Wrapper"),b=n(se,"Content").append(I=n(se,"Title"),R=n(se,"Current"),P=t('
    element. + * combo: Add 'selectOnNavigation' and 'readonly' options. + * combobox: Add 'loadFilter' option to allow users to change data format before loading into combobox. + * tree: Add 'onBeforeDrop' callback event. + * validatebox: Dependent on tooltip plugin now, add 'deltaX' property. + * numberbox: The 'filter' options can be used to determine if the key pressed was accepted. + * linkbutton: The group button is available. + * layout: The 'minWidth','maxWidth','minHeight','maxHeight' and 'collapsible' properties are available for region panel. +* New Plugins + * tooltip: Display a popup message when moving mouse over an element. + +Version 1.3.2 +------------- +* Bug + * datagrid: The loading message window can not be centered when changing the width of datagrid. fixed. + * treegrid: The 'mergeCells' method can not work normally. fixed. + * propertygrid: Calling 'endEdit' method to stop editing a row will cause errors. fixed. + * tree: Can not load empty data when 'lines' property set to true. fixed. +* Improvement + * RTL feature is supported now. + * tabs: Add 'scrollBy' method to scroll the tab header by the specified amount of pixels + * tabs: Add 'toolPosition' property to set tab tools to left or right. + * tabs: Add 'tabPosition' property to define the tab position, possible values are: 'top','bottom','left','right'. + * datagrid: Add a column level property 'order' that allows users to define different default sort order per column. + * datagrid: Add a column level property 'halign' that allows users to define how to align the column header. + * datagrid: Add 'resizeHandle' property to define the resizing column position, by grabbing the left or right edge of the column. + * datagrid: Add 'freezeRow' method to freeze some rows that will always be displayed at the top when the datagrid is scrolled down. + * datagrid: Add 'clearChecked' method to clear all checked records. + * datagrid: Add 'data' property to initialize the datagrid data. + * linkbutton: Add 'iconAlgin' property to define the icon position, supported values are: 'left','right'. + * menu: Add 'minWidth' property. + * menu: The menu width can be automatically calculated. + * tree: New events are available including 'onBeforeDrag','onStartDrag','onDragEnter','onDragOver','onDragLeave',etc. + * combo: Add 'height' property to allow users to define the height of combo. + * combo: Add 'reset' method. + * numberbox: Add 'reset' method. + * spinner: Add 'reset' method. + * spinner: Add 'height' property to allow users to define the height of spinner. + * searchbox: Add 'height' property to allow users to define the height of searchbox. + * form: Add 'reset' method. + * validatebox: Add 'delay' property to delay validating from the last inputting value. + * validatebox: Add 'tipPosition' property to define the tip position, supported values are: 'left','right'. + * validatebox: Multiple validate rules on a field is supported now. + * slider: Add 'reversed' property to determine if the min value and max value will switch their positions. + * progressbar: Add 'height' property to allow users to define the height of progressbar. + +Version 1.3.1 +------------- +* Bug + * datagrid: Setting the 'pageNumber' property is not valid. fixed. + * datagrid: The id attribute of rows isn't adjusted properly while calling 'insertRow' or 'deleteRow' method. + * dialog: When load content from 'href', the script will run twice. fixed. + * propertygrid: The editors that extended from combo can not accept its changed value. fixed. +* Improvement + * droppable: Add 'disabled' property. + * droppable: Add 'options','enable' and 'disable' methods. + * tabs: The tab panel tools can be changed by calling 'update' method. + * messager: When show a message window, the user can define the window position by applying 'style' property. + * window: Prevent script on window body from running twice. + * window: Add 'hcenter','vcenter' and 'center' methods. + * tree: Add 'onBeforeCheck' callback event. + * tree: Extend the 'getChecked' method to allow users to get 'checked','unchecked' or 'indeterminate' nodes. + * treegrid: Add 'update' method to update a specified node. + * treegrid: Add 'insert' method to insert a new node. + * treegrid: Add 'pop' method to remove a node and get the removed node data. + +Version 1.3 +----------- +* Bug + * combogrid: When set to 'remote' query mode, the 'queryParams' parameters can't be sent to server. fixed. + * combotree: The tree nodes on drop-down panel can not be unchecked while calling 'clear' method. fixed. + * datetimebox: Setting 'showSeconds' property to false cannot hide seconds info. fixed. + * datagrid: Calling 'mergeCells' method can't auto resize the merged cell while header is hidden. fixed. + * dialog: Set cache to false and load data via ajax, the content cannot be refreshed. fixed. +* Improvement + * The HTML5 'data-options' attribute is available for components to declare all custom options, including properties and events. + * More detailed documentation is available. + * panel: Prevent script on panel body from running twice. + * accordion: Add 'getPanelIndex' method. + * accordion: The tools can be added on panel header. + * datetimebox: Add 'timeSeparator' option that allows users to define the time separator. + * pagination: Add 'refresh' and 'select' methods. + * datagrid: Auto resize the column width to fit the contents when the column width is not defined. + * datagrid: Double click on the right border of columns to auto resize the columns to the contents in the columns. + * datagrid: Add 'autoSizeColumn' method that allows users to adjust the column width to fit the contents. + * datagrid: Add 'getChecked' method to get all rows where the checkbox has been checked. + * datagrid: Add 'selectOnCheck' and 'checkOnSelect' properties and some checking methods to enhance the row selections. + * datagrid: Add 'pagePosition' property to allow users to display pager bar at either top,bottom or both places of the grid. + * datagrid: The buffer view and virtual scroll view are supported to display large amounts of records without pagination. + * tabs: Add 'disableTab' and 'enableTab' methods to allow users to disable or enable a tab panel. + +Version 1.2.6 +------------- +* Bug + * tabs: Call 'add' method with 'selected:false' option, the added tab panel is always selected. fixed. + * treegrid: The 'onSelect' and 'onUnselect' events can't be triggered. fixed. + * treegrid: Cannot display zero value field. fixed. +* Improvement + * propertygrid: Add 'expandGroup' and 'collapseGroup' methods. + * layout: Allow users to create collapsed layout panels by assigning 'collapsed' property to true. + * layout: Add 'add' and 'remove' methods that allow users to dynamically add or remove region panel. + * layout: Additional tool icons can be added on region panel header. + * calendar: Add 'firstDay' option that allow users to set first day of week. Sunday is 0, Monday is 1, ... + * tree: Add 'lines' option, true to display tree lines. + * tree: Add 'loadFilter' option that allow users to change data format before loading into the tree. + * tree: Add 'loader' option that allow users to define how to load data from remote server. + * treegrid: Add 'onClickCell' and 'onDblClickCell' callback function options. + * datagrid: Add 'autoRowHeight' property that allow users to determine if set the row height based on the contents of that row. + * datagrid: Improve performance to load large data set. + * datagrid: Add 'loader' option that allow users to define how to load data from remote server. + * treegrid: Add 'loader' option that allow users to define how to load data from remote server. + * combobox: Add 'onBeforeLoad' callback event function. + * combobox: Add 'loader' option that allow users to define how to load data from remote server. + * Add support for other loading mode such as dwr,xml,etc. +* New Plugins + * slider: Allows the user to choose a numeric value from a finite range. + +Version 1.2.5 +------------- +* Bug + * tabs: When add a new tab panel with href property, the content page is loaded twice. fixed. + * form: Failed to call 'load' method to load form input with complex name. fixed. + * draggable: End drag in ie9, the cursor cannot be restored. fixed. +* Improvement + * panel: The tools can be defined via html markup. + * tabs: Call 'close' method to close specified tab panel, users can pass tab title or index of tab panel. Other methods such 'select','getTab' and 'exists' are similar to 'close' method. + * tabs: Add 'getTabIndex' method. + * tabs: Users can define mini tools on tabs. + * tree: The mouse must move a specified distance to begin drag and drop operation. + * resizable: Add 'options','enable' and 'disable' methods. + * numberbox: Allow users to change number format. + * datagrid: The subgrid is supported now. + * searchbox: Add 'selectName' method to select searching type name. + +Version 1.2.4 +------------- +* Bug + * menu: The menu position is wrong when scroll bar appears. fixed. + * accordion: Cannot display the default selected panel in jQuery 1.6.2. fixed. + * tabs: Cannot display the default selected tab panel in jQuery 1.6.2. fixed. +* Improvement + * menu: Allow users to disable or enable menu item. + * combo: Add 'delay' property to set the delay time to do searching from the last key input event. + * treegrid: The 'getEditors' and 'getEditor' methods are supported now. + * treegrid: The 'loadFilter' option is supported now. + * messager: Add 'progress' method to display a message box with a progress bar. + * panel: Add 'extractor' option to allow users to extract panel content from ajax response. +* New Plugins + * searchbox: Allow users to type words into box and do searching operation. + * progressbar: To display the progress of a task. + +Version 1.2.3 +------------- +* Bug + * window: Cannot resize the window with iframe content. fixed. + * tree: The node will be removed when dragging to its child. fixed. + * combogrid: The onChange event fires multiple times. fixed. + * accordion: Cannot add batch new panels when animate property is set to true. fixed. +* Improvement + * treegrid: The footer row and row styler features are supported now. + * treegrid: Add 'getLevel','reloadFooter','getFooterRows' methods. + * treegrid: Support root nodes pagination and editable features. + * datagrid: Add 'getFooterRows','reloadFooter','insertRow' methods and improve editing performance. + * datagrid: Add 'loadFilter' option that allow users to change original source data to standard data format. + * draggable: Add 'onBeforeDrag' callback event function. + * validatebox: Add 'remote' validation type. + * combobox: Add 'method' option. +* New Plugins + * propertygrid: Allow users to edit property value in datagrid. + +Version 1.2.2 +------------- +* Bug + * datagrid: Apply fitColumns cannot work fine while set checkbox column. fixed. + * datagrid: The validateRow method cannot return boolean type value. fixed. + * numberbox: Cannot fix value in chrome when min or max property isn't defined. fixed. +* Improvement + * menu: Add some crud methods. + * combo: Add hasDownArrow property to determine whether to display the down arrow button. + * tree: Supports inline editing. + * calendar: Add some useful methods such as 'resize', 'moveTo' etc. + * timespinner: Add some useful methods. + * datebox: Refactoring based on combo and calendar plugin now. + * datagrid: Allow users to change row style in some conditions. + * datagrid: Users can use the footer row to display summary information. +* New Plugins + * datetimebox: Combines datebox with timespinner component. + +Version 1.2.1 +------------- +* Bug + * easyloader: Some dependencies cannot be loaded by their order. fixed. + * tree: The checkbox is setted incorrectly when removing a node. fixed. + * dialog: The dialog layout incorrectly when 'closed' property is setted to true. fixed. +* Improvement + * parser: Add onComplete callback function that can indicate whether the parse action is complete. + * menu: Add onClick callback function and some other methods. + * tree: Add some useful methods. + * tree: Drag and Drop feature is supported now. + * tree: Add onContextMenu callback function. + * tabs: Add onContextMenu callback function. + * tabs: Add 'tools' property that can create buttons on right bar. + * datagrid: Add onHeaderContextMenu and onRowContextMenu callback functions. + * datagrid: Custom view is supported. + * treegrid: Add onContextMenu callback function and append,remove methods. + +Version 1.2 +------------- +* Improvement + * tree: Add cascadeCheck,onlyLeafCheck properties and select event. + * combobox: Enable multiple selection. + * combotree: Enable multiple selection. + * tabs: Remember the trace of selection, when current tab panel is closed, the previous selected tab will be selected. + * datagrid: Extend from panel, so many properties defined in panel can be used for datagrid. +* New Plugins + * treegrid: Represent tabular data in hierarchical view, combines tree view and datagrid. + * combo: The basic component that allow user to extend their combo component such as combobox,combotree,etc. + * combogrid: Combines combobox with drop-down datagrid component. + * spinner: The basic plugin to create numberspinner,timespinner,etc. + * numberspinner: The numberbox that allow user to change value by clicking up and down spin buttons. + * timespinner: The time selector that allow user to quickly inc/dec a time. + +Version 1.1.2 +------------- +* Bug + * messager: When call show method in layout, the message window will be blocked. fixed. +* Improvement + * datagrid: Add validateRow method, remember the current editing row status when do editing action. + * datagrid: Add the ability to create merged cells. + * form: Add callback functions when loading data. + * panel,window,dialog: Add maximize,minimize,restore,collapse,expand methods. + * panel,tabs,accordion: The lazy loading feature is supported. + * tabs: Add getSelected,update,getTab methods. + * accordion: Add crud methods. + * linkbutton: Accept an id option to set the id attribute. + * tree: Enhance tree node operation. + +Version 1.1.1 +------------- +* Bug + * form: Cannot clear the value of combobox and combotree component. fixed. +* Improvement + * tree: Add some useful methods such as 'getRoot','getChildren','update',etc. + * datagrid: Add editable feature, improve performance while loading data. + * datebox: Add destroy method. + * combobox: Add destroy and clear method. + * combotree: Add destroy and clear method. + +Version 1.1 +------------- +* Bug + * messager: When call show method with timeout property setted, an error occurs while clicking the close button. fixed. + * combobox: The editable property of combobox plugin is invalid. fixed. + * window: The proxy box will not be removed when dragging or resizing exceed browser border in ie. fixed. +* Improvement + * menu: The menu item can use markup to display a different page. + * tree: The tree node can use markup to act as a tree menu. + * pagination: Add some event on refresh button and page list. + * datagrid: Add a 'param' parameter for reload method, with which users can pass query parameter when reload data. + * numberbox: Add required validation support, the usage is same as validatebox plugin. + * combobox: Add required validation support. + * combotree: Add required validation support. + * layout: Add some method that can get a region panel and attach event handlers. +* New Plugins + * droppable: A droppable plugin that supports drag drop operation. + * calendar: A calendar plugin that can either be embedded within a page or popup. + * datebox: Combines a textbox with a calendar that let users to select date. + * easyloader: A JavaScript loader that allows you to load plugin and their dependencies into your page. + +Version 1.0.5 +* Bug + * panel: The fit property of panel performs incorrectly. fixed. +* Improvement + * menu: Add a href attribute for menu item, with which user can display a different page in the current browser window. + * form: Add a validate method to do validation for validatebox component. + * dialog: The dialog can read collapsible,minimizable,maximizable and resizable attribute from markup. +* New Plugins + * validatebox: A validation plugin that checks to make sure the user's input value is valid. + +Version 1.0.4 +------------- +* Bug + * panel: When panel is invisible, it is abnormal when resized. fixed. + * panel: Memory leak in method 'destroy'. fixed. + * messager: Memory leak when messager box is closed. fixed. + * dialog: No onLoad event occurs when loading remote data. fixed. +* Improvement + * panel: Add method 'setTitle'. + * window: Add method 'setTitle'. + * dialog: Add method 'setTitle'. + * combotree: Add method 'getValue'. + * combobox: Add method 'getValue'. + * form: The 'load' method can load data and fill combobox and combotree field correctly. + +Version 1.0.3 +------------- +* Bug + * menu: When menu is show in a DIV container, it will be cropped. fixed. + * layout: If you collpase a region panel and then expand it immediately, the region panel will not show normally. fixed. + * accordion: If no panel selected then the first one will become selected and the first panel's body height will not set correctly. fixed. +* Improvement + * tree: Add some methods to support CRUD operation. + * datagrid: Toolbar can accept a new property named 'disabled' to disable the specified tool button. +* New Plugins + * combobox: Combines a textbox with a list of options that users are able to choose from. + * combotree: Combines combobox with drop-down tree component. + * numberbox: Make input element can only enter number char. + * dialog: rewrite the dialog plugin, dialog can contains toolbar and buttons. diff --git a/src/main/webapp/js/easyui-1.3.5/demo/accordion/_content.html b/src/main/webapp/js/easyui-1.3.5/demo/accordion/_content.html new file mode 100644 index 00000000..99674027 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/accordion/_content.html @@ -0,0 +1,18 @@ + + + + + AJAX Content + + +

    Here is the content loaded via AJAX.

    +
      +
    • easyui is a collection of user-interface plugin based on jQuery.
    • +
    • easyui provides essential functionality for building modern, interactive, javascript applications.
    • +
    • using easyui you don't need to write many javascript code, you usually defines user-interface by writing some HTML markup.
    • +
    • complete framework for HTML5 web page.
    • +
    • easyui save your time and scales while developing your products.
    • +
    • easyui is very easy but powerful.
    • +
    + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/accordion/actions.html b/src/main/webapp/js/easyui-1.3.5/demo/accordion/actions.html new file mode 100644 index 00000000..0090ffb3 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/accordion/actions.html @@ -0,0 +1,54 @@ + + + + + Accordion Actions - jQuery EasyUI Demo + + + + + + + +

    Accordion Actions

    +
    +
    +
    Click the buttons below to add or remove accordion items.
    +
    +
    +
    +
    +

    Accordion for jQuery

    +

    Accordion is a part of easyui framework for jQuery. It lets you define your accordion component on web page more easily.

    +
    +
    + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/accordion/ajax.html b/src/main/webapp/js/easyui-1.3.5/demo/accordion/ajax.html new file mode 100644 index 00000000..c3371b8f --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/accordion/ajax.html @@ -0,0 +1,31 @@ + + + + + Loading Accordion Content with AJAX - jQuery EasyUI Demo + + + + + + + +

    Loading Accordion Content with AJAX

    +
    +
    +
    Click AJAX panel header to load content via AJAX.
    +
    +
    +
    +
    +

    Accordion for jQuery

    +

    Accordion is a part of easyui framework for jQuery. It lets you define your accordion component on web page more easily.

    +
    +
    +

    The accordion allows you to provide multiple panels and display one or more at a time. Each panel has built-in support for expanding and collapsing. Clicking on a panel header to expand or collapse that panel body. The panel content can be loaded via ajax by specifying a 'href' property. Users can define a panel to be selected. If it is not specified, then the first panel is taken by default.

    +
    +
    +
    +
    + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/accordion/basic.html b/src/main/webapp/js/easyui-1.3.5/demo/accordion/basic.html new file mode 100644 index 00000000..57fdd0c7 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/accordion/basic.html @@ -0,0 +1,55 @@ + + + + + Basic Accordion - jQuery EasyUI Demo + + + + + + + +

    Basic Accordion

    +
    +
    +
    Click on panel header to show its content.
    +
    +
    +
    +
    +

    Accordion for jQuery

    +

    Accordion is a part of easyui framework for jQuery. It lets you define your accordion component on web page more easily.

    +
    +
    +

    The accordion allows you to provide multiple panels and display one or more at a time. Each panel has built-in support for expanding and collapsing. Clicking on a panel header to expand or collapse that panel body. The panel content can be loaded via ajax by specifying a 'href' property. Users can define a panel to be selected. If it is not specified, then the first panel is taken by default.

    +
    +
    +
      +
    • + Foods +
        +
      • + Fruits +
          +
        • apple
        • +
        • orange
        • +
        +
      • +
      • + Vegetables +
          +
        • tomato
        • +
        • carrot
        • +
        • cabbage
        • +
        • potato
        • +
        • lettuce
        • +
        +
      • +
      +
    • +
    +
    +
    + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/accordion/datagrid_data1.json b/src/main/webapp/js/easyui-1.3.5/demo/accordion/datagrid_data1.json new file mode 100644 index 00000000..63d64735 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/accordion/datagrid_data1.json @@ -0,0 +1,12 @@ +{"total":28,"rows":[ + {"productid":"FI-SW-01","productname":"Koi","unitcost":10.00,"status":"P","listprice":36.50,"attr1":"Large","itemid":"EST-1"}, + {"productid":"K9-DL-01","productname":"Dalmation","unitcost":12.00,"status":"P","listprice":18.50,"attr1":"Spotted Adult Female","itemid":"EST-10"}, + {"productid":"RP-SN-01","productname":"Rattlesnake","unitcost":12.00,"status":"P","listprice":38.50,"attr1":"Venomless","itemid":"EST-11"}, + {"productid":"RP-SN-01","productname":"Rattlesnake","unitcost":12.00,"status":"P","listprice":26.50,"attr1":"Rattleless","itemid":"EST-12"}, + {"productid":"RP-LI-02","productname":"Iguana","unitcost":12.00,"status":"P","listprice":35.50,"attr1":"Green Adult","itemid":"EST-13"}, + {"productid":"FL-DSH-01","productname":"Manx","unitcost":12.00,"status":"P","listprice":158.50,"attr1":"Tailless","itemid":"EST-14"}, + {"productid":"FL-DSH-01","productname":"Manx","unitcost":12.00,"status":"P","listprice":83.50,"attr1":"With tail","itemid":"EST-15"}, + {"productid":"FL-DLH-02","productname":"Persian","unitcost":12.00,"status":"P","listprice":23.50,"attr1":"Adult Female","itemid":"EST-16"}, + {"productid":"FL-DLH-02","productname":"Persian","unitcost":12.00,"status":"P","listprice":89.50,"attr1":"Adult Male","itemid":"EST-17"}, + {"productid":"AV-CB-01","productname":"Amazon Parrot","unitcost":92.00,"status":"P","listprice":63.50,"attr1":"Adult Male","itemid":"EST-18"} +]} diff --git a/src/main/webapp/js/easyui-1.3.5/demo/accordion/expandable.html b/src/main/webapp/js/easyui-1.3.5/demo/accordion/expandable.html new file mode 100644 index 00000000..a6d56ff1 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/accordion/expandable.html @@ -0,0 +1,36 @@ + + + + + Keep Expandable Panel in Accordion - jQuery EasyUI Demo + + + + + + + +

    Keep Expandable Panel in Accordion

    +
    +
    +
    Keep a expandable panel and prevent it from collapsing.
    +
    +
    +
    +
    + +
    +
    +

    Accordion for jQuery

    +

    Accordion is a part of easyui framework for jQuery. It lets you define your accordion component on web page more easily.

    +
    +
    +

    Content1

    +
    +
    +

    Content2

    +
    +
    + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/accordion/multiple.html b/src/main/webapp/js/easyui-1.3.5/demo/accordion/multiple.html new file mode 100644 index 00000000..36f97785 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/accordion/multiple.html @@ -0,0 +1,37 @@ + + + + + Multiple Accordion Panels - jQuery EasyUI Demo + + + + + + + +

    Multiple Accordion Panels

    +
    +
    +
    Enable 'multiple' mode to expand multiple panels at one time.
    +
    +
    +
    +
    +

    A programming language is a formal language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely.

    +
    +
    +

    Java (Indonesian: Jawa) is an island of Indonesia. With a population of 135 million (excluding the 3.6 million on the island of Madura which is administered as part of the provinces of Java), Java is the world's most populous island, and one of the most densely populated places in the world.

    +
    +
    +

    C# is a multi-paradigm programming language encompassing strong typing, imperative, declarative, functional, generic, object-oriented (class-based), and component-oriented programming disciplines.

    +
    +
    +

    A dynamic, reflective, general-purpose object-oriented programming language.

    +
    +
    +

    Fortran (previously FORTRAN) is a general-purpose, imperative programming language that is especially suited to numeric computation and scientific computing.

    +
    +
    + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/accordion/tools.html b/src/main/webapp/js/easyui-1.3.5/demo/accordion/tools.html new file mode 100644 index 00000000..7246e58c --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/accordion/tools.html @@ -0,0 +1,51 @@ + + + + + Accordion Tools - jQuery EasyUI Demo + + + + + + + +

    Accordion Tools

    +
    +
    +
    Click the tools on top right of panel to perform actions.
    +
    +
    +
    +
    +

    Accordion for jQuery

    +

    Accordion is a part of easyui framework for jQuery. It lets you define your accordion component on web page more easily.

    +
    +
    +

    The accordion allows you to provide multiple panels and display one ore more at a time. Each panel has built-in support for expanding and collapsing. Clicking on a panel header to expand or collapse that panel body. The panel content can be loaded via ajax by specifying a 'href' property. Users can define a panel to be selected. If it is not specified, then the first panel is taken by default.

    +
    +
    +
    + + + + + + + + + + +
    Item IDProduct IDList PriceUnit CostAttributeStatus
    + + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/calendar/basic.html b/src/main/webapp/js/easyui-1.3.5/demo/calendar/basic.html new file mode 100644 index 00000000..c38de4d1 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/calendar/basic.html @@ -0,0 +1,22 @@ + + + + + Basic Calendar - jQuery EasyUI Demo + + + + + + + +

    Basic Calendar

    +
    +
    +
    Click to select date.
    +
    + +
    + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/calendar/firstday.html b/src/main/webapp/js/easyui-1.3.5/demo/calendar/firstday.html new file mode 100644 index 00000000..b7437e2f --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/calendar/firstday.html @@ -0,0 +1,33 @@ + + + + + First Day of Week - jQuery EasyUI Demo + + + + + + + +

    First Day of Week

    +
    +
    +
    Choose the first day of the week.
    +
    + +
    + +
    + +
    + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/combo/basic.html b/src/main/webapp/js/easyui-1.3.5/demo/combo/basic.html new file mode 100644 index 00000000..ab546eba --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/combo/basic.html @@ -0,0 +1,42 @@ + + + + + Basic Combo - jQuery EasyUI Demo + + + + + + + +

    Basic Combo

    +
    +
    +
    Click the right arrow button to show drop down panel that can be filled with any content.
    +
    + +
    +
    Select a language
    + Java
    + C#
    + Ruby
    + Basic
    + Fortran +
    + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/combobox/actions.html b/src/main/webapp/js/easyui-1.3.5/demo/combobox/actions.html new file mode 100644 index 00000000..e0a00a85 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/combobox/actions.html @@ -0,0 +1,89 @@ + + + + + ComboBox Actions - jQuery EasyUI Demo + + + + + + + +

    ComboBox

    +
    +
    +
    Click the buttons below to perform actions.
    +
    + + + + + + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/combobox/basic.html b/src/main/webapp/js/easyui-1.3.5/demo/combobox/basic.html new file mode 100644 index 00000000..ea001e75 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/combobox/basic.html @@ -0,0 +1,73 @@ + + + + + Basic ComboBox - jQuery EasyUI Demo + + + + + + + +

    Basic ComboBox

    +
    +
    +
    Type in ComboBox to try auto complete.
    +
    + + + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/combobox/combobox_data1.json b/src/main/webapp/js/easyui-1.3.5/demo/combobox/combobox_data1.json new file mode 100644 index 00000000..9c8f7f5b --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/combobox/combobox_data1.json @@ -0,0 +1,22 @@ +[{ + "id":1, + "text":"Java", + "desc":"Write once, run anywhere" +},{ + "id":2, + "text":"C#", + "desc":"One of the programming languages designed for the Common Language Infrastructure" +},{ + "id":3, + "text":"Ruby", + "selected":true, + "desc":"A dynamic, reflective, general-purpose object-oriented programming language" +},{ + "id":4, + "text":"Perl", + "desc":"A high-level, general-purpose, interpreted, dynamic programming language" +},{ + "id":5, + "text":"Basic", + "desc":"A family of general-purpose, high-level programming languages" +}] \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/combobox/combobox_data2.json b/src/main/webapp/js/easyui-1.3.5/demo/combobox/combobox_data2.json new file mode 100644 index 00000000..c3baf77d --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/combobox/combobox_data2.json @@ -0,0 +1,47 @@ +[{ + "value":"f20", + "text":"Firefox 2.0 or higher", + "group":"Firefox" +},{ + "value":"f15", + "text":"Firefox 1.5.x", + "group":"Firefox" +},{ + "value":"f10", + "text":"Firefox 1.0.x", + "group":"Firefox" +},{ + "value":"ie7", + "text":"Microsoft Internet Explorer 7.0 or higher", + "group":"Microsoft Internet Explorer" +},{ + "value":"ie6", + "text":"Microsoft Internet Explorer 6.x", + "group":"Microsoft Internet Explorer" +},{ + "value":"ie5", + "text":"Microsoft Internet Explorer 5.x", + "group":"Microsoft Internet Explorer" +},{ + "value":"ie4", + "text":"Microsoft Internet Explorer 4.x", + "group":"Microsoft Internet Explorer" +},{ + "value":"op9", + "text":"Opera 9.0 or higher", + "group":"Opera" +},{ + "value":"op8", + "text":"Opera 8.x", + "group":"Opera" +},{ + "value":"op7", + "text":"Opera 7.x", + "group":"Opera" +},{ + "value":"Safari", + "text":"Safari" +},{ + "value":"Other", + "text":"Other" +}] \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/combobox/customformat.html b/src/main/webapp/js/easyui-1.3.5/demo/combobox/customformat.html new file mode 100644 index 00000000..2571b8b8 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/combobox/customformat.html @@ -0,0 +1,35 @@ + + + + + Custom Format in ComboBox - jQuery EasyUI Demo + + + + + + + +

    Custom Format in ComboBox

    +
    +
    +
    This sample shows how to custom the format of list item.
    +
    + + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/combobox/dynamicdata.html b/src/main/webapp/js/easyui-1.3.5/demo/combobox/dynamicdata.html new file mode 100644 index 00000000..9e14e93f --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/combobox/dynamicdata.html @@ -0,0 +1,25 @@ + + + + + Load Dynamic ComboBox Data - jQuery EasyUI Demo + + + + + + + +

    Load Dynamic ComboBox Data

    +
    +
    +
    Click the button below to load data.
    +
    +
    + LoadData +
    + + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/combobox/group.html b/src/main/webapp/js/easyui-1.3.5/demo/combobox/group.html new file mode 100644 index 00000000..f345c532 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/combobox/group.html @@ -0,0 +1,28 @@ + + + + + Group ComboBox - jQuery EasyUI Demo + + + + + + + +

    Group ComboBox

    +
    +
    +
    This example shows how to display combobox items in groups.
    +
    + + + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/combobox/multiple.html b/src/main/webapp/js/easyui-1.3.5/demo/combobox/multiple.html new file mode 100644 index 00000000..edfca1a5 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/combobox/multiple.html @@ -0,0 +1,30 @@ + + + + + Multiple Select - jQuery EasyUI Demo + + + + + + + +

    Load Dynamic ComboBox Data

    +
    +
    +
    Drop down the panel and select multiple items.
    +
    + + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/combobox/navigation.html b/src/main/webapp/js/easyui-1.3.5/demo/combobox/navigation.html new file mode 100644 index 00000000..d3161dd9 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/combobox/navigation.html @@ -0,0 +1,76 @@ + + + + + Navigate ComboBox - jQuery EasyUI Demo + + + + + + + +

    Navigate ComboBox

    +
    +
    +
    Navigate through combobox items width keyboard to select an item.
    +
    +
    + + SelectOnNavigation +
    + + + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/combobox/remotedata.html b/src/main/webapp/js/easyui-1.3.5/demo/combobox/remotedata.html new file mode 100644 index 00000000..8d981cbc --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/combobox/remotedata.html @@ -0,0 +1,29 @@ + + + + + Binding to Remote Data - jQuery EasyUI Demo + + + + + + + +

    Binding to Remote Data

    +
    +
    +
    The ComboBox is bound to a remote data.
    +
    + + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/combobox/remotejsonp.html b/src/main/webapp/js/easyui-1.3.5/demo/combobox/remotejsonp.html new file mode 100644 index 00000000..426446b2 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/combobox/remotejsonp.html @@ -0,0 +1,53 @@ + + + + + Remote JSONP - jQuery EasyUI Demo + + + + + + + +

    Remote JSONP

    +
    +
    +
    This sample shows how to use JSONP to retrieve data from a remote site.
    +
    + + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/combogrid/actions.html b/src/main/webapp/js/easyui-1.3.5/demo/combogrid/actions.html new file mode 100644 index 00000000..8823b114 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/combogrid/actions.html @@ -0,0 +1,56 @@ + + + + + ComboGrid Actions - jQuery EasyUI Demo + + + + + + + +

    ComboGrid Actions

    +
    +
    +
    Click the buttons below to perform actions.
    +
    + + + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/combogrid/basic.html b/src/main/webapp/js/easyui-1.3.5/demo/combogrid/basic.html new file mode 100644 index 00000000..9bd52036 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/combogrid/basic.html @@ -0,0 +1,37 @@ + + + + + Basic ComboGrid - jQuery EasyUI Demo + + + + + + + +

    Basic ComboGrid

    +
    +
    +
    Click the right arrow button to show the DataGrid.
    +
    +
    + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/combogrid/datagrid_data1.json b/src/main/webapp/js/easyui-1.3.5/demo/combogrid/datagrid_data1.json new file mode 100644 index 00000000..c74fa230 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/combogrid/datagrid_data1.json @@ -0,0 +1,12 @@ +{"total":28,"rows":[ + {"productid":"FI-SW-01","productname":"Koi","unitcost":10.00,"status":"P","listprice":36.50,"attr1":"Large","itemid":"EST-1"}, + {"productid":"K9-DL-01","productname":"Dalmation","unitcost":12.00,"status":"P","listprice":18.50,"attr1":"Spotted Adult Female","itemid":"EST-10"}, + {"productid":"RP-SN-01","productname":"Rattlesnake","unitcost":12.00,"status":"P","listprice":38.50,"attr1":"Venomless","itemid":"EST-11"}, + {"productid":"RP-SN-01","productname":"Rattlesnake","unitcost":12.00,"status":"P","listprice":26.50,"attr1":"Rattleless","itemid":"EST-12"}, + {"selected":true,"productid":"RP-LI-02","productname":"Iguana","unitcost":12.00,"status":"P","listprice":35.50,"attr1":"Green Adult","itemid":"EST-13"}, + {"productid":"FL-DSH-01","productname":"Manx","unitcost":12.00,"status":"P","listprice":158.50,"attr1":"Tailless","itemid":"EST-14"}, + {"productid":"FL-DSH-01","productname":"Manx","unitcost":12.00,"status":"P","listprice":83.50,"attr1":"With tail","itemid":"EST-15"}, + {"productid":"FL-DLH-02","productname":"Persian","unitcost":12.00,"status":"P","listprice":23.50,"attr1":"Adult Female","itemid":"EST-16"}, + {"productid":"FL-DLH-02","productname":"Persian","unitcost":12.00,"status":"P","listprice":89.50,"attr1":"Adult Male","itemid":"EST-17"}, + {"productid":"AV-CB-01","productname":"Amazon Parrot","unitcost":92.00,"status":"P","listprice":63.50,"attr1":"Adult Male","itemid":"EST-18"} +]} diff --git a/src/main/webapp/js/easyui-1.3.5/demo/combogrid/initvalue.html b/src/main/webapp/js/easyui-1.3.5/demo/combogrid/initvalue.html new file mode 100644 index 00000000..5e86a60b --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/combogrid/initvalue.html @@ -0,0 +1,36 @@ + + + + + Initialize Value for ComboGrid - jQuery EasyUI Demo + + + + + + + +

    Initialize Value for ComboGrid

    +
    +
    +
    Initialize value when ComboGrid is created.
    +
    +
    + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/combogrid/multiple.html b/src/main/webapp/js/easyui-1.3.5/demo/combogrid/multiple.html new file mode 100644 index 00000000..7229f3ee --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/combogrid/multiple.html @@ -0,0 +1,40 @@ + + + + + Multiple ComboGrid - jQuery EasyUI Demo + + + + + + + +

    Multiple ComboGrid

    +
    +
    +
    Click the right arrow button to show the DataGrid and select items.
    +
    +
    + + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/combogrid/navigation.html b/src/main/webapp/js/easyui-1.3.5/demo/combogrid/navigation.html new file mode 100644 index 00000000..24b3238d --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/combogrid/navigation.html @@ -0,0 +1,41 @@ + + + + + Navigate ComboGrid - jQuery EasyUI Demo + + + + + + + +

    Navigate ComboGrid

    +
    +
    +
    Navigate through grid items with keyboard to select an item.
    +
    +
    + + SelectOnNavigation +
    + + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/combotree/actions.html b/src/main/webapp/js/easyui-1.3.5/demo/combotree/actions.html new file mode 100644 index 00000000..4a29e507 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/combotree/actions.html @@ -0,0 +1,42 @@ + + + + + ComboTree Actions - jQuery EasyUI Demo + + + + + + + +

    ComboTree Actions

    +
    +
    +
    Click the buttons below to perform actions
    +
    + + + + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/combotree/basic.html b/src/main/webapp/js/easyui-1.3.5/demo/combotree/basic.html new file mode 100644 index 00000000..278a4a40 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/combotree/basic.html @@ -0,0 +1,22 @@ + + + + + Basic ComboTree - jQuery EasyUI Demo + + + + + + + +

    Basic ComboTree

    +
    +
    +
    Click the right arrow button to show the tree panel.
    +
    +
    + + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/combotree/initvalue.html b/src/main/webapp/js/easyui-1.3.5/demo/combotree/initvalue.html new file mode 100644 index 00000000..2d9113f5 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/combotree/initvalue.html @@ -0,0 +1,22 @@ + + + + + Initialize Value for ComboTree - jQuery EasyUI Demo + + + + + + + +

    Initialize Value for ComboTree

    +
    +
    +
    Initialize Value when ComboTree is created.
    +
    +
    + + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/combotree/multiple.html b/src/main/webapp/js/easyui-1.3.5/demo/combotree/multiple.html new file mode 100644 index 00000000..add5382c --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/combotree/multiple.html @@ -0,0 +1,25 @@ + + + + + Multiple ComboTree - jQuery EasyUI Demo + + + + + + + +

    Multiple ComboTree

    +
    +
    +
    Click the right arrow button to show the tree panel and select multiple nodes.
    +
    +
    + Cascade Check: + +
    + + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/combotree/tree_data1.json b/src/main/webapp/js/easyui-1.3.5/demo/combotree/tree_data1.json new file mode 100644 index 00000000..e0c61922 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/combotree/tree_data1.json @@ -0,0 +1,49 @@ +[{ + "id":1, + "text":"My Documents", + "children":[{ + "id":11, + "text":"Photos", + "state":"closed", + "children":[{ + "id":111, + "text":"Friend" + },{ + "id":112, + "text":"Wife" + },{ + "id":113, + "text":"Company" + }] + },{ + "id":12, + "text":"Program Files", + "children":[{ + "id":121, + "text":"Intel" + },{ + "id":122, + "text":"Java", + "attributes":{ + "p1":"Custom Attribute1", + "p2":"Custom Attribute2" + } + },{ + "id":123, + "text":"Microsoft Office" + },{ + "id":124, + "text":"Games", + "checked":true + }] + },{ + "id":13, + "text":"index.html" + },{ + "id":14, + "text":"about.html" + },{ + "id":15, + "text":"welcome.html" + }] +}] diff --git a/src/main/webapp/js/easyui-1.3.5/demo/datagrid/aligncolumns.html b/src/main/webapp/js/easyui-1.3.5/demo/datagrid/aligncolumns.html new file mode 100644 index 00000000..84b33b6c --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/datagrid/aligncolumns.html @@ -0,0 +1,35 @@ + + + + + Aligning Columns in DataGrid - jQuery EasyUI Demo + + + + + + + +

    Aligning Columns in DataGrid

    +
    +
    +
    Use align and halign properties to set the alignment of the columns and their header.
    +
    +
    + + + + + + + + + + + + +
    Item IDProductList PriceUnit CostAttributeStatus
    + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/datagrid/basic.html b/src/main/webapp/js/easyui-1.3.5/demo/datagrid/basic.html new file mode 100644 index 00000000..657c0f90 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/datagrid/basic.html @@ -0,0 +1,35 @@ + + + + + Basic DataGrid - jQuery EasyUI Demo + + + + + + + +

    Basic DataGrid

    +
    +
    +
    The DataGrid is created from markup, no JavaScript code needed.
    +
    +
    + + + + + + + + + + + + +
    Item IDProductList PriceUnit CostAttributeStatus
    + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/datagrid/cellediting.html b/src/main/webapp/js/easyui-1.3.5/demo/datagrid/cellediting.html new file mode 100644 index 00000000..07dcaedb --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/datagrid/cellediting.html @@ -0,0 +1,82 @@ + + + + + Cell Editing in DataGrid - jQuery EasyUI Demo + + + + + + + +

    Cell Editing in DataGrid

    +
    +
    +
    Click a cell to start editing.
    +
    +
    + + + + + + + + + + + + +
    Item IDProductList PriceUnit CostAttributeStatus
    + + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/datagrid/cellstyle.html b/src/main/webapp/js/easyui-1.3.5/demo/datagrid/cellstyle.html new file mode 100644 index 00000000..52447852 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/datagrid/cellstyle.html @@ -0,0 +1,45 @@ + + + + + DataGrid Cell Style - jQuery EasyUI Demo + + + + + + + +

    DataGrid Cell Style

    +
    +
    +
    The cells which listprice value is less than 30 are highlighted.
    +
    +
    + + + + + + + + + + + +
    Item IDProductList PriceUnit CostAttributeStatus
    + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/datagrid/checkbox.html b/src/main/webapp/js/easyui-1.3.5/demo/datagrid/checkbox.html new file mode 100644 index 00000000..44519c22 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/datagrid/checkbox.html @@ -0,0 +1,45 @@ + + + + + CheckBox Selection on DataGrid - jQuery EasyUI Demo + + + + + + + +

    CheckBox Selection on DataGrid

    +
    +
    +
    Click the checkbox on header to select or unselect all selections.
    +
    +
    + + + + + + + + + + + + + +
    Item IDProductList PriceUnit CostAttributeStatus
    +
    + Selection Mode: +
    + SelectOnCheck:
    + CheckOnSelect: +
    + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/datagrid/clientpagination.html b/src/main/webapp/js/easyui-1.3.5/demo/datagrid/clientpagination.html new file mode 100644 index 00000000..7e820f55 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/datagrid/clientpagination.html @@ -0,0 +1,92 @@ + + + + + Client Side Pagination in DataGrid - jQuery EasyUI Demo + + + + + + + +

    Client Side Pagination in DataGrid

    +
    +
    +
    This sample shows how to implement client side pagination in DataGrid.
    +
    +
    + + + + + + + + + + + + + +
    Inv NoDateNameAmountPriceCostNote
    + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/datagrid/columngroup.html b/src/main/webapp/js/easyui-1.3.5/demo/datagrid/columngroup.html new file mode 100644 index 00000000..1954f4e8 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/datagrid/columngroup.html @@ -0,0 +1,37 @@ + + + + + Column Group - jQuery EasyUI Demo + + + + + + + +

    Column Group

    +
    +
    +
    The header cells can be merged. Useful to group columns under a category.
    +
    +
    + + + + + + + + + + + + + + +
    Item IDProductItem Details
    List PriceUnit CostAttributeStatus
    + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/datagrid/complextoolbar.html b/src/main/webapp/js/easyui-1.3.5/demo/datagrid/complextoolbar.html new file mode 100644 index 00000000..73aae131 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/datagrid/complextoolbar.html @@ -0,0 +1,55 @@ + + + + + DataGrid Complex Toolbar - jQuery EasyUI Demo + + + + + + + +

    DataGrid Complex Toolbar

    +
    +
    +
    The DataGrid toolbar can be defined from a <div/> markup, so you can define the layout of toolbar easily.
    +
    +
    + + + + + + + + + + + +
    Item IDProductList PriceUnit CostAttributeStatus
    +
    +
    + + + + + +
    +
    + Date From: + To: + Language: + + Search +
    +
    + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/datagrid/contextmenu.html b/src/main/webapp/js/easyui-1.3.5/demo/datagrid/contextmenu.html new file mode 100644 index 00000000..0aaca6f0 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/datagrid/contextmenu.html @@ -0,0 +1,84 @@ + + + + + Context Menu on DataGrid - jQuery EasyUI Demo + + + + + + + +

    Context Menu on DataGrid

    +
    +
    +
    Right click on the header of DataGrid to display context menu.
    +
    +
    +
    + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/datagrid/custompager.html b/src/main/webapp/js/easyui-1.3.5/demo/datagrid/custompager.html new file mode 100644 index 00000000..727d2e31 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/datagrid/custompager.html @@ -0,0 +1,56 @@ + + + + + Custom DataGrid Pager - jQuery EasyUI Demo + + + + + + + +

    Custom DataGrid Pager

    +
    +
    +
    You can append some buttons to the standard datagrid pager bar.
    +
    +
    + + + + + + + + + + + +
    Item IDProductList PriceUnit CostAttributeStatus
    + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/datagrid/datagrid_data1.json b/src/main/webapp/js/easyui-1.3.5/demo/datagrid/datagrid_data1.json new file mode 100644 index 00000000..63d64735 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/datagrid/datagrid_data1.json @@ -0,0 +1,12 @@ +{"total":28,"rows":[ + {"productid":"FI-SW-01","productname":"Koi","unitcost":10.00,"status":"P","listprice":36.50,"attr1":"Large","itemid":"EST-1"}, + {"productid":"K9-DL-01","productname":"Dalmation","unitcost":12.00,"status":"P","listprice":18.50,"attr1":"Spotted Adult Female","itemid":"EST-10"}, + {"productid":"RP-SN-01","productname":"Rattlesnake","unitcost":12.00,"status":"P","listprice":38.50,"attr1":"Venomless","itemid":"EST-11"}, + {"productid":"RP-SN-01","productname":"Rattlesnake","unitcost":12.00,"status":"P","listprice":26.50,"attr1":"Rattleless","itemid":"EST-12"}, + {"productid":"RP-LI-02","productname":"Iguana","unitcost":12.00,"status":"P","listprice":35.50,"attr1":"Green Adult","itemid":"EST-13"}, + {"productid":"FL-DSH-01","productname":"Manx","unitcost":12.00,"status":"P","listprice":158.50,"attr1":"Tailless","itemid":"EST-14"}, + {"productid":"FL-DSH-01","productname":"Manx","unitcost":12.00,"status":"P","listprice":83.50,"attr1":"With tail","itemid":"EST-15"}, + {"productid":"FL-DLH-02","productname":"Persian","unitcost":12.00,"status":"P","listprice":23.50,"attr1":"Adult Female","itemid":"EST-16"}, + {"productid":"FL-DLH-02","productname":"Persian","unitcost":12.00,"status":"P","listprice":89.50,"attr1":"Adult Male","itemid":"EST-17"}, + {"productid":"AV-CB-01","productname":"Amazon Parrot","unitcost":92.00,"status":"P","listprice":63.50,"attr1":"Adult Male","itemid":"EST-18"} +]} diff --git a/src/main/webapp/js/easyui-1.3.5/demo/datagrid/datagrid_data2.json b/src/main/webapp/js/easyui-1.3.5/demo/datagrid/datagrid_data2.json new file mode 100644 index 00000000..ce91babf --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/datagrid/datagrid_data2.json @@ -0,0 +1,15 @@ +{"total":28,"rows":[ + {"productid":"FI-SW-01","unitcost":10.00,"status":"P","listprice":36.50,"attr1":"Large","itemid":"EST-1"}, + {"productid":"K9-DL-01","unitcost":12.00,"status":"P","listprice":18.50,"attr1":"Spotted Adult Female","itemid":"EST-10"}, + {"productid":"RP-SN-01","unitcost":12.00,"status":"P","listprice":28.50,"attr1":"Venomless","itemid":"EST-11"}, + {"productid":"RP-SN-01","unitcost":12.00,"status":"P","listprice":26.50,"attr1":"Rattleless","itemid":"EST-12"}, + {"productid":"RP-LI-02","unitcost":12.00,"status":"P","listprice":35.50,"attr1":"Green Adult","itemid":"EST-13"}, + {"productid":"FL-DSH-01","unitcost":12.00,"status":"P","listprice":158.50,"attr1":"Tailless","itemid":"EST-14"}, + {"productid":"FL-DSH-01","unitcost":12.00,"status":"P","listprice":83.50,"attr1":"With tail","itemid":"EST-15"}, + {"productid":"FL-DLH-02","unitcost":12.00,"status":"P","listprice":63.50,"attr1":"Adult Female","itemid":"EST-16"}, + {"productid":"FL-DLH-02","unitcost":12.00,"status":"P","listprice":89.50,"attr1":"Adult Male","itemid":"EST-17"}, + {"productid":"AV-CB-01","unitcost":92.00,"status":"P","listprice":63.50,"attr1":"Adult Male","itemid":"EST-18"} +],"footer":[ + {"unitcost":19.80,"listprice":60.40,"productid":"Average:"}, + {"unitcost":198.00,"listprice":604.00,"productid":"Total:"} +]} diff --git a/src/main/webapp/js/easyui-1.3.5/demo/datagrid/footer.html b/src/main/webapp/js/easyui-1.3.5/demo/datagrid/footer.html new file mode 100644 index 00000000..4c639854 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/datagrid/footer.html @@ -0,0 +1,41 @@ + + + + + Footer Rows in DataGrid - jQuery EasyUI Demo + + + + + + + +

    Footer Rows in DataGrid

    +
    +
    +
    The summary informations can be displayed in footer rows.
    +
    +
    + + + + + + + + + + + +
    Item IDProduct IDList PriceUnit CostAttributeStatus
    + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/datagrid/formatcolumns.html b/src/main/webapp/js/easyui-1.3.5/demo/datagrid/formatcolumns.html new file mode 100644 index 00000000..95e42385 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/datagrid/formatcolumns.html @@ -0,0 +1,42 @@ + + + + + Format DataGrid Columns - jQuery EasyUI Demo + + + + + + + +

    Format DataGrid Columns

    +
    +
    +
    The list price value will show red color when less than 30.
    +
    +
    + + + + + + + + + + + +
    Item IDProductList PriceUnit CostAttributeStatus
    + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/datagrid/frozencolumns.html b/src/main/webapp/js/easyui-1.3.5/demo/datagrid/frozencolumns.html new file mode 100644 index 00000000..dadb429a --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/datagrid/frozencolumns.html @@ -0,0 +1,38 @@ + + + + + Frozen Columns in DataGrid - jQuery EasyUI Demo + + + + + + + +

    Frozen Columns in DataGrid

    +
    +
    +
    You can freeze some columns that can't scroll out of view.
    +
    +
    + + + + + + + + + + + + + + + +
    Item IDProduct
    List PriceUnit CostAttributeStatus
    + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/datagrid/frozenrows.html b/src/main/webapp/js/easyui-1.3.5/demo/datagrid/frozenrows.html new file mode 100644 index 00000000..bf964fff --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/datagrid/frozenrows.html @@ -0,0 +1,47 @@ + + + + + Frozen Rows in DataGrid - jQuery EasyUI Demo + + + + + + + +

    Frozen Rows in DataGrid

    +
    +
    +
    This sample shows how to freeze some rows that will always be displayed at the top when the datagrid is scrolled down.
    +
    +
    + + + + + + + + + + + + + + + +
    Item IDProduct
    List PriceUnit CostAttributeStatus
    + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/datagrid/mergecells.html b/src/main/webapp/js/easyui-1.3.5/demo/datagrid/mergecells.html new file mode 100644 index 00000000..e98bb1c9 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/datagrid/mergecells.html @@ -0,0 +1,61 @@ + + + + + Merge Cells for DataGrid - jQuery EasyUI Demo + + + + + + + +

    Merge Cells for DataGrid

    +
    +
    +
    Cells in DataGrid body can be merged.
    +
    +
    + + + + + + + + + + + +
    ProductItem IDList PriceUnit CostAttributeStatus
    + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/datagrid/multisorting.html b/src/main/webapp/js/easyui-1.3.5/demo/datagrid/multisorting.html new file mode 100644 index 00000000..134fbf35 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/datagrid/multisorting.html @@ -0,0 +1,40 @@ + + + + + Multiple Sorting - jQuery EasyUI Demo + + + + + + + +

    Multiple Sorting

    +
    +
    +
    Set 'multiSort' property to true to enable multiple column sorting.
    +
    +
    + + + + + + + + + + + + +
    Item IDProductList PriceUnit CostAttributeStatus
    + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/datagrid/products.json b/src/main/webapp/js/easyui-1.3.5/demo/datagrid/products.json new file mode 100644 index 00000000..b0b6a936 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/datagrid/products.json @@ -0,0 +1,9 @@ +[ +{"productid":"FI-SW-01","productname":"Koi"}, +{"productid":"K9-DL-01","productname":"Dalmation"}, +{"productid":"RP-SN-01","productname":"Rattlesnake"}, +{"productid":"RP-LI-02","productname":"Iguana"}, +{"productid":"FL-DSH-01","productname":"Manx"}, +{"productid":"FL-DLH-02","productname":"Persian"}, +{"productid":"AV-CB-01","productname":"Amazon Parrot"} +] diff --git a/src/main/webapp/js/easyui-1.3.5/demo/datagrid/rowborder.html b/src/main/webapp/js/easyui-1.3.5/demo/datagrid/rowborder.html new file mode 100644 index 00000000..fcbec741 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/datagrid/rowborder.html @@ -0,0 +1,63 @@ + + + + + Row Border in DataGrid - jQuery EasyUI Demo + + + + + + + +

    Row Border in DataGrid

    +
    +
    +
    This sample shows how to change the row border style of datagrid.
    +
    +
    + Border: + + Striped: + +
    + + + + + + + + + + + +
    Item IDProductList PriceUnit CostAttributeStatus
    + + + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/datagrid/rowediting.html b/src/main/webapp/js/easyui-1.3.5/demo/datagrid/rowediting.html new file mode 100644 index 00000000..6e7c5056 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/datagrid/rowediting.html @@ -0,0 +1,116 @@ + + + + + Row Editing in DataGrid - jQuery EasyUI Demo + + + + + + + +

    Row Editing in DataGrid

    +
    +
    +
    Click the row to start editing.
    +
    +
    + + + + + + + + + + + + +
    Item IDProductList PriceUnit CostAttributeStatus
    + + + + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/datagrid/rowstyle.html b/src/main/webapp/js/easyui-1.3.5/demo/datagrid/rowstyle.html new file mode 100644 index 00000000..b5956b00 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/datagrid/rowstyle.html @@ -0,0 +1,34 @@ + + + + + DataGrid Row Style - jQuery EasyUI Demo + + + + + + + +

    DataGrid Row Style

    +
    +
    +
    The rows which listprice value is less than 30 are highlighted.
    +
    +
    + + + + + + + + + + + + +
    Item IDProductList PriceUnit CostAttributeStatus
    + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/datagrid/selection.html b/src/main/webapp/js/easyui-1.3.5/demo/datagrid/selection.html new file mode 100644 index 00000000..e1c618cc --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/datagrid/selection.html @@ -0,0 +1,60 @@ + + + + + DataGrid Selection - jQuery EasyUI Demo + + + + + + + +

    DataGrid Selection

    +
    +
    +
    Choose a selection mode and select one or more rows.
    +
    + + + + + + + + + + + + +
    Item IDProductList PriceUnit CostAttributeStatus
    +
    + Selection Mode: + +
    + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/datagrid/simpletoolbar.html b/src/main/webapp/js/easyui-1.3.5/demo/datagrid/simpletoolbar.html new file mode 100644 index 00000000..c3eada19 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/datagrid/simpletoolbar.html @@ -0,0 +1,48 @@ + + + + + DataGrid with Toolbar - jQuery EasyUI Demo + + + + + + + +

    DataGrid with Toolbar

    +
    +
    +
    Put buttons on top toolbar of DataGrid.
    +
    +
    + + + + + + + + + + + +
    Item IDProductList PriceUnit CostAttributeStatus
    + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/datagrid/transform.html b/src/main/webapp/js/easyui-1.3.5/demo/datagrid/transform.html new file mode 100644 index 00000000..9ebdc5ad --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/datagrid/transform.html @@ -0,0 +1,47 @@ + + + + + Transform DataGrid from Table - jQuery EasyUI Demo + + + + + + + +

    Transform DataGrid from Table

    +
    +
    +
    Transform DataGrid from an existing, unformatted html table.
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Item IDProductList PriceAttribute
    EST-1FI-SW-0136.50Large
    EST-10K9-DL-0118.50Spotted Adult Female
    EST-11RP-SN-0128.50Venomless
    EST-12RP-SN-0126.50Rattleless
    EST-13RP-LI-0235.50Green Adult
    + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/datebox/basic.html b/src/main/webapp/js/easyui-1.3.5/demo/datebox/basic.html new file mode 100644 index 00000000..efaa4692 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/datebox/basic.html @@ -0,0 +1,21 @@ + + + + + Basic DateBox - jQuery EasyUI Demo + + + + + + + +

    Basic DateBox

    +
    +
    +
    Click the calendar image on the right side.
    +
    +
    + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/datebox/buttons.html b/src/main/webapp/js/easyui-1.3.5/demo/datebox/buttons.html new file mode 100644 index 00000000..6f6b99a2 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/datebox/buttons.html @@ -0,0 +1,31 @@ + + + + + DateBox Buttons - jQuery EasyUI Demo + + + + + + + +

    DateBox Buttons

    +
    +
    +
    This example shows how to customize the datebox buttons underneath the calendar.
    +
    +
    + + + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/datebox/dateformat.html b/src/main/webapp/js/easyui-1.3.5/demo/datebox/dateformat.html new file mode 100644 index 00000000..d912416a --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/datebox/dateformat.html @@ -0,0 +1,42 @@ + + + + + Date Format - jQuery EasyUI Demo + + + + + + + +

    Date Format

    +
    +
    +
    Different date formats are applied to different DateBox components.
    +
    +
    + + + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/datebox/events.html b/src/main/webapp/js/easyui-1.3.5/demo/datebox/events.html new file mode 100644 index 00000000..9e67cd36 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/datebox/events.html @@ -0,0 +1,30 @@ + + + + + DateBox Events - jQuery EasyUI Demo + + + + + + + +

    DateBox Events

    +
    +
    +
    Click the calendar image on the right side.
    +
    +
    + +
    + Selected Date: + +
    + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/datebox/validate.html b/src/main/webapp/js/easyui-1.3.5/demo/datebox/validate.html new file mode 100644 index 00000000..f4f1b9d5 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/datebox/validate.html @@ -0,0 +1,33 @@ + + + + + Validate DateBox - jQuery EasyUI Demo + + + + + + + +

    Validate DateBox

    +
    +
    +
    When the selected date is greater than specified date. The field validator will raise an error.
    +
    +
    + + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/datetimebox/basic.html b/src/main/webapp/js/easyui-1.3.5/demo/datetimebox/basic.html new file mode 100644 index 00000000..6cb9c140 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/datetimebox/basic.html @@ -0,0 +1,21 @@ + + + + + Basic DateTimeBox - jQuery EasyUI Demo + + + + + + + +

    Basic DateTimeBox

    +
    +
    +
    Click the calendar image on the right side.
    +
    +
    + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/datetimebox/initvalue.html b/src/main/webapp/js/easyui-1.3.5/demo/datetimebox/initvalue.html new file mode 100644 index 00000000..ad00eb68 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/datetimebox/initvalue.html @@ -0,0 +1,22 @@ + + + + + Initialize Value for DateTime - jQuery EasyUI Demo + + + + + + + +

    Initialize Value for DateTime

    +
    +
    +
    The value is initialized when DateTimeBox has been created.
    +
    +
    + + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/datetimebox/showseconds.html b/src/main/webapp/js/easyui-1.3.5/demo/datetimebox/showseconds.html new file mode 100644 index 00000000..e88e3b27 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/datetimebox/showseconds.html @@ -0,0 +1,25 @@ + + + + + Display Seconds - jQuery EasyUI Demo + + + + + + + +

    Display Seconds

    +
    +
    +
    The user can decide to display seconds part or not.
    +
    +
    + Show Seconds: + +
    + + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/demo.css b/src/main/webapp/js/easyui-1.3.5/demo/demo.css new file mode 100644 index 00000000..ad8695a1 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/demo.css @@ -0,0 +1,26 @@ +*{ + font-size:12px; +} +body { + font-family:helvetica,tahoma,verdana,sans-serif; + padding:3px; + font-size:13px; + margin:0; +} +h2 { + font-size:18px; + font-weight:bold; + margin:0; + margin-bottom:15px; +} +.demo-info{ + background:#FFFEE6; + color:#8F5700; + padding:12px; +} +.demo-tip{ + width:16px; + height:16px; + margin-right:8px; + float:left; +} diff --git a/src/main/webapp/js/easyui-1.3.5/demo/dialog/basic.html b/src/main/webapp/js/easyui-1.3.5/demo/dialog/basic.html new file mode 100644 index 00000000..d8b8151e --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/dialog/basic.html @@ -0,0 +1,26 @@ + + + + + Basic Dialog - jQuery EasyUI Demo + + + + + + + +

    Basic Dialog

    +
    +
    +
    Click below button to open or close dialog.
    +
    +
    + Open + Close +
    +
    + The dialog content. +
    + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/dialog/complextoolbar.html b/src/main/webapp/js/easyui-1.3.5/demo/dialog/complextoolbar.html new file mode 100644 index 00000000..6e32fbb7 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/dialog/complextoolbar.html @@ -0,0 +1,49 @@ + + + + + Complex Toolbar on Dialog - jQuery EasyUI Demo + + + + + + + +

    Complex Toolbar on Dialog

    +
    +
    +
    This sample shows how to create complex toolbar on dialog.
    +
    +
    + Open + Close +
    +
    + The dialog content. +
    +
    + + + + + +
    + Edit + Help + + +
    +
    +
    + Save + Close +
    + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/dialog/toolbarbuttons.html b/src/main/webapp/js/easyui-1.3.5/demo/dialog/toolbarbuttons.html new file mode 100644 index 00000000..c9d5857c --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/dialog/toolbarbuttons.html @@ -0,0 +1,55 @@ + + + + + Toolbar and Buttons - jQuery EasyUI Demo + + + + + + + +

    Toolbar and Buttons

    +
    +
    +
    The toolbar and buttons can be added to dialog.
    +
    +
    + Open + Close +
    +
    + The dialog content. +
    + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/draggable/basic.html b/src/main/webapp/js/easyui-1.3.5/demo/draggable/basic.html new file mode 100644 index 00000000..e0795816 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/draggable/basic.html @@ -0,0 +1,24 @@ + + + + + Basic Draggable - jQuery EasyUI Demo + + + + + + + +

    Basic Draggable

    +
    +
    +
    Move the boxes below by clicking on it with mouse.
    +
    +
    +
    +
    +
    Title
    +
    + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/draggable/constain.html b/src/main/webapp/js/easyui-1.3.5/demo/draggable/constain.html new file mode 100644 index 00000000..e50d610a --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/draggable/constain.html @@ -0,0 +1,38 @@ + + + + + Constrain Draggable - jQuery EasyUI Demo + + + + + + + +

    Constrain Draggable

    +
    +
    +
    The draggable object can only be moved within its parent container.
    +
    +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/draggable/snap.html b/src/main/webapp/js/easyui-1.3.5/demo/draggable/snap.html new file mode 100644 index 00000000..c1a00358 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/draggable/snap.html @@ -0,0 +1,40 @@ + + + + + Snap Draggable - jQuery EasyUI Demo + + + + + + + +

    Snap Draggable

    +
    +
    +
    This sample shows how to snap a draggable object to a 20x20 grid.
    +
    +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/droppable/accept.html b/src/main/webapp/js/easyui-1.3.5/demo/droppable/accept.html new file mode 100644 index 00000000..9297a02a --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/droppable/accept.html @@ -0,0 +1,81 @@ + + + + + Accept a Drop - jQuery EasyUI Demo + + + + + + + +

    Accept a Drop

    +
    +
    +
    Some draggable object can not be accepted.
    +
    +
    +
    + drag me! +
    Drag 1
    +
    Drag 2
    +
    Drag 3
    +
    +
    + drop here! +
    +
    + + + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/droppable/basic.html b/src/main/webapp/js/easyui-1.3.5/demo/droppable/basic.html new file mode 100644 index 00000000..1261e310 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/droppable/basic.html @@ -0,0 +1,80 @@ + + + + + Basic Droppable - jQuery EasyUI Demo + + + + + + + +

    Basic Droppable

    +
    +
    +
    Drag the boxed on left to the target area on right.
    +
    +
    +
    +
    Source
    +
    +
    Apple
    +
    Peach
    +
    Orange
    +
    +
    +
    +
    Target
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/droppable/sort.html b/src/main/webapp/js/easyui-1.3.5/demo/droppable/sort.html new file mode 100644 index 00000000..960b7244 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/droppable/sort.html @@ -0,0 +1,74 @@ + + + + + Change Items Order - jQuery EasyUI Demo + + + + + + + +

    Change Items Order

    +
    +
    +
    Drag the list items to change their order.
    +
    +
    +
      +
    • Drag 1
    • +
    • Drag 2
    • +
    • Drag 3
    • +
    • Drag 4
    • +
    • Drag 5
    • +
    • Drag 6
    • +
    + + + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/easyloader/basic.html b/src/main/webapp/js/easyui-1.3.5/demo/easyloader/basic.html new file mode 100644 index 00000000..0d7ba7b1 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/easyloader/basic.html @@ -0,0 +1,75 @@ + + + + + Basic EasyLoader - jQuery EasyUI Demo + + + + + + + +

    Basic EasyLoader

    +
    +
    +
    Click the buttons below to load components dynamically.
    +
    + +
    +
    +
    + + + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/form/basic.html b/src/main/webapp/js/easyui-1.3.5/demo/form/basic.html new file mode 100644 index 00000000..5875c829 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/form/basic.html @@ -0,0 +1,62 @@ + + + + + Basic Form - jQuery EasyUI Demo + + + + + + + +

    Basic Form

    +
    +
    +
    Fill the form and submit it.
    +
    +
    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + +
    Name:
    Email:
    Subject:
    Message:
    Language: + +
    +
    +
    +
    + Submit + Clear +
    +
    + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/form/form_data1.json b/src/main/webapp/js/easyui-1.3.5/demo/form/form_data1.json new file mode 100644 index 00000000..45f0c9aa --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/form/form_data1.json @@ -0,0 +1,7 @@ +{ + "name":"easyui", + "email":"easyui@gmail.com", + "subject":"Subject Title", + "message":"Message Content", + "language":"en" +} \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/form/load.html b/src/main/webapp/js/easyui-1.3.5/demo/form/load.html new file mode 100644 index 00000000..513cb3e4 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/form/load.html @@ -0,0 +1,71 @@ + + + + + Load Form Data - jQuery EasyUI Demo + + + + + + + +

    Load Form Data

    +
    +
    +
    Click the buttons below to load form data.
    +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + +
    Name:
    Email:
    Subject:
    Message:
    Language: + +
    +
    +
    +
    + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/layout/_content.html b/src/main/webapp/js/easyui-1.3.5/demo/layout/_content.html new file mode 100644 index 00000000..76f2506a --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/layout/_content.html @@ -0,0 +1,18 @@ + + + + + AJAX Content + + +

    jQuery EasyUI framework help you build your web page easily.

    +
      +
    • easyui is a collection of user-interface plugin based on jQuery.
    • +
    • easyui provides essential functionality for building modern, interactive, javascript applications.
    • +
    • using easyui you don't need to write many javascript code, you usually defines user-interface by writing some HTML markup.
    • +
    • complete framework for HTML5 web page.
    • +
    • easyui save your time and scales while developing your products.
    • +
    • easyui is very easy but powerful.
    • +
    + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/layout/addremove.html b/src/main/webapp/js/easyui-1.3.5/demo/layout/addremove.html new file mode 100644 index 00000000..f9e26e47 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/layout/addremove.html @@ -0,0 +1,56 @@ + + + + + Add and Remove Layout - jQuery EasyUI Demo + + + + + + + +

    Add and Remove Layout

    +
    +
    +
    Click the buttons below to add or remove region panel of layout.
    +
    +
    + Select Region Panel: + + Add + Remove +
    +
    +
    +
    +
    +
    +
    +
    + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/layout/autoheight.html b/src/main/webapp/js/easyui-1.3.5/demo/layout/autoheight.html new file mode 100644 index 00000000..8e5343e3 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/layout/autoheight.html @@ -0,0 +1,61 @@ + + + + + Auto Height for Layout - jQuery EasyUI Demo + + + + + + + +

    Auto Height for Layout

    +
    +
    +
    This example shows how to auto adjust layout height after dynamically adding items.
    +
    + +
    +
    +
    +
    +
    +

    Panel Content.

    +

    Panel Content.

    +

    Panel Content.

    +

    Panel Content.

    +

    Panel Content.

    +
    +
    + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/layout/basic.html b/src/main/webapp/js/easyui-1.3.5/demo/layout/basic.html new file mode 100644 index 00000000..4e36b8a1 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/layout/basic.html @@ -0,0 +1,42 @@ + + + + + Basic Layout - jQuery EasyUI Demo + + + + + + + +

    Basic Layout

    +
    +
    +
    The layout contains north,south,west,east and center regions.
    +
    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + +
    Item IDProduct IDList PriceUnit CostAttributeStatus
    +
    +
    + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/layout/complex.html b/src/main/webapp/js/easyui-1.3.5/demo/layout/complex.html new file mode 100644 index 00000000..8936d436 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/layout/complex.html @@ -0,0 +1,60 @@ + + + + + Complex Layout - jQuery EasyUI Demo + + + + + + + +

    Complex Layout

    +
    +
    +
    This sample shows how to create a complex layout.
    +
    +
    +
    +
    +
    +
    +
      +
      +
      +
      +
      + content1 +
      +
      + content2 +
      +
      + content3 +
      +
      +
      +
      +
      +
      +
      + + + + + + + + + + + +
      Item IDProduct IDList PriceUnit CostAttributeStatus
      +
      +
      +
      +
      + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/layout/datagrid_data1.json b/src/main/webapp/js/easyui-1.3.5/demo/layout/datagrid_data1.json new file mode 100644 index 00000000..63d64735 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/layout/datagrid_data1.json @@ -0,0 +1,12 @@ +{"total":28,"rows":[ + {"productid":"FI-SW-01","productname":"Koi","unitcost":10.00,"status":"P","listprice":36.50,"attr1":"Large","itemid":"EST-1"}, + {"productid":"K9-DL-01","productname":"Dalmation","unitcost":12.00,"status":"P","listprice":18.50,"attr1":"Spotted Adult Female","itemid":"EST-10"}, + {"productid":"RP-SN-01","productname":"Rattlesnake","unitcost":12.00,"status":"P","listprice":38.50,"attr1":"Venomless","itemid":"EST-11"}, + {"productid":"RP-SN-01","productname":"Rattlesnake","unitcost":12.00,"status":"P","listprice":26.50,"attr1":"Rattleless","itemid":"EST-12"}, + {"productid":"RP-LI-02","productname":"Iguana","unitcost":12.00,"status":"P","listprice":35.50,"attr1":"Green Adult","itemid":"EST-13"}, + {"productid":"FL-DSH-01","productname":"Manx","unitcost":12.00,"status":"P","listprice":158.50,"attr1":"Tailless","itemid":"EST-14"}, + {"productid":"FL-DSH-01","productname":"Manx","unitcost":12.00,"status":"P","listprice":83.50,"attr1":"With tail","itemid":"EST-15"}, + {"productid":"FL-DLH-02","productname":"Persian","unitcost":12.00,"status":"P","listprice":23.50,"attr1":"Adult Female","itemid":"EST-16"}, + {"productid":"FL-DLH-02","productname":"Persian","unitcost":12.00,"status":"P","listprice":89.50,"attr1":"Adult Male","itemid":"EST-17"}, + {"productid":"AV-CB-01","productname":"Amazon Parrot","unitcost":92.00,"status":"P","listprice":63.50,"attr1":"Adult Male","itemid":"EST-18"} +]} diff --git a/src/main/webapp/js/easyui-1.3.5/demo/layout/full.html b/src/main/webapp/js/easyui-1.3.5/demo/layout/full.html new file mode 100644 index 00000000..13eb94ad --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/layout/full.html @@ -0,0 +1,19 @@ + + + + + Full Layout - jQuery EasyUI Demo + + + + + + + +
      north region
      +
      west content
      +
      east region
      +
      south region
      +
      + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/layout/nestedlayout.html b/src/main/webapp/js/easyui-1.3.5/demo/layout/nestedlayout.html new file mode 100644 index 00000000..5e436fff --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/layout/nestedlayout.html @@ -0,0 +1,34 @@ + + + + + Nested Layout - jQuery EasyUI Demo + + + + + + + +

      Nested Layout

      +
      +
      +
      The layout region panel contains another layout or other components.
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/layout/nocollapsible.html b/src/main/webapp/js/easyui-1.3.5/demo/layout/nocollapsible.html new file mode 100644 index 00000000..1fcc5248 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/layout/nocollapsible.html @@ -0,0 +1,37 @@ + + + + + No collapsible button in Layout - jQuery EasyUI Demo + + + + + + + +

      No collapsible button in Layout

      +
      +
      +
      The layout region panel has no collapsible button.
      +
      +
      +
      +
      +
      +
      + +
      +
      +
      +
      +
      + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/layout/propertygrid_data1.json b/src/main/webapp/js/easyui-1.3.5/demo/layout/propertygrid_data1.json new file mode 100644 index 00000000..a458d83f --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/layout/propertygrid_data1.json @@ -0,0 +1,20 @@ +{"total":7,"rows":[ + {"name":"Name","value":"Bill Smith","group":"ID Settings","editor":"text"}, + {"name":"Address","value":"","group":"ID Settings","editor":"text"}, + {"name":"Age","value":"40","group":"ID Settings","editor":"numberbox"}, + {"name":"Birthday","value":"01/02/2012","group":"ID Settings","editor":"datebox"}, + {"name":"SSN","value":"123-456-7890","group":"ID Settings","editor":"text"}, + {"name":"Email","value":"bill@gmail.com","group":"Marketing Settings","editor":{ + "type":"validatebox", + "options":{ + "validType":"email" + } + }}, + {"name":"FrequentBuyer","value":"false","group":"Marketing Settings","editor":{ + "type":"checkbox", + "options":{ + "on":true, + "off":false + } + }} +]} \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/layout/tree_data1.json b/src/main/webapp/js/easyui-1.3.5/demo/layout/tree_data1.json new file mode 100644 index 00000000..e0c61922 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/layout/tree_data1.json @@ -0,0 +1,49 @@ +[{ + "id":1, + "text":"My Documents", + "children":[{ + "id":11, + "text":"Photos", + "state":"closed", + "children":[{ + "id":111, + "text":"Friend" + },{ + "id":112, + "text":"Wife" + },{ + "id":113, + "text":"Company" + }] + },{ + "id":12, + "text":"Program Files", + "children":[{ + "id":121, + "text":"Intel" + },{ + "id":122, + "text":"Java", + "attributes":{ + "p1":"Custom Attribute1", + "p2":"Custom Attribute2" + } + },{ + "id":123, + "text":"Microsoft Office" + },{ + "id":124, + "text":"Games", + "checked":true + }] + },{ + "id":13, + "text":"index.html" + },{ + "id":14, + "text":"about.html" + },{ + "id":15, + "text":"welcome.html" + }] +}] diff --git a/src/main/webapp/js/easyui-1.3.5/demo/linkbutton/basic.html b/src/main/webapp/js/easyui-1.3.5/demo/linkbutton/basic.html new file mode 100644 index 00000000..8ee52e69 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/linkbutton/basic.html @@ -0,0 +1,28 @@ + + + + + Basic LinkButton - jQuery EasyUI Demo + + + + + + + +

      Basic LinkButton

      +
      +
      +
      Buttons can be created from <a/> link.
      +
      +
      +
      + Add + Remove + Save + Cut + Text Button +
      + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/linkbutton/group.html b/src/main/webapp/js/easyui-1.3.5/demo/linkbutton/group.html new file mode 100644 index 00000000..c5e0b500 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/linkbutton/group.html @@ -0,0 +1,36 @@ + + + + + Button Group - jQuery EasyUI Demo + + + + + + + +

      Button Group

      +
      +
      +
      In a button group only one button can be selected.
      +
      +
      + +
      + + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/linkbutton/iconalign.html b/src/main/webapp/js/easyui-1.3.5/demo/linkbutton/iconalign.html new file mode 100644 index 00000000..6ca8bd5d --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/linkbutton/iconalign.html @@ -0,0 +1,33 @@ + + + + + Icon Align on LinkButton - jQuery EasyUI Demo + + + + + + + +

      Icon Align on LinkButton

      +
      +
      +
      Change the icon align to place icon on left or right of button.
      +
      +
      +
      + Add + Remove + Save + Cut +
      +
      + Select Icon Align: + +
      + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/linkbutton/plain.html b/src/main/webapp/js/easyui-1.3.5/demo/linkbutton/plain.html new file mode 100644 index 00000000..a5246375 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/linkbutton/plain.html @@ -0,0 +1,31 @@ + + + + + Plain LinkButton - jQuery EasyUI Demo + + + + + + + +

      Plain LinkButton

      +
      +
      +
      The link buttons have plain effect.
      +
      +
      + + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/linkbutton/toggle.html b/src/main/webapp/js/easyui-1.3.5/demo/linkbutton/toggle.html new file mode 100644 index 00000000..8ee681bd --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/linkbutton/toggle.html @@ -0,0 +1,28 @@ + + + + + Toggle Button - jQuery EasyUI Demo + + + + + + + +

      Toggle Button

      +
      +
      +
      Click the button below to switch its selected state.
      +
      +
      +
      + Add + Remove + Save + Cut + Text Button +
      + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/menu/basic.html b/src/main/webapp/js/easyui-1.3.5/demo/menu/basic.html new file mode 100644 index 00000000..dea4f0ff --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/menu/basic.html @@ -0,0 +1,71 @@ + + + + + Basic Menu - jQuery EasyUI Demo + + + + + + + +

      Basic Menu

      +
      +
      +
      Right click on page to display menu.
      +
      +
      + +
      +
      New
      +
      + Open +
      +
      Word
      +
      Excel
      +
      PowerPoint
      +
      + M1 +
      +
      sub1
      +
      sub2
      +
      + Sub +
      +
      sub21
      +
      sub22
      +
      sub23
      +
      +
      +
      sub3
      +
      +
      +
      + Window Demos +
      +
      Window
      +
      Dialog
      + +
      +
      +
      +
      +
      Save
      +
      Print
      + +
      Exit
      +
      + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/menu/customitem.html b/src/main/webapp/js/easyui-1.3.5/demo/menu/customitem.html new file mode 100644 index 00000000..d56c147b --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/menu/customitem.html @@ -0,0 +1,58 @@ + + + + + Custom Menu Item - jQuery EasyUI Demo + + + + + + + +

      Custom Menu Item

      +
      +
      +
      Right click on page to display menu, move to the 'Open' item to display its custom sub content.
      +
      +
      +
      +
      New
      +
      + Open + +
      +
      Save
      +
      Print
      + +
      Exit
      +
      + + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/menu/events.html b/src/main/webapp/js/easyui-1.3.5/demo/menu/events.html new file mode 100644 index 00000000..568185b0 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/menu/events.html @@ -0,0 +1,41 @@ + + + + + Menu Events - jQuery EasyUI Demo + + + + + + + +

      Menu Events

      +
      +
      +
      Right click on page to display menu and click an item.
      +
      +
      +
      +
      New
      +
      Save
      +
      Print
      + +
      Exit
      +
      + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/menubutton/actions.html b/src/main/webapp/js/easyui-1.3.5/demo/menubutton/actions.html new file mode 100644 index 00000000..f8f55ba1 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/menubutton/actions.html @@ -0,0 +1,61 @@ + + + + + MenuButton Actions - jQuery EasyUI Demo + + + + + + + +

      MenuButton Actions

      +
      +
      +
      Click the buttons below to perform actions.
      +
      + +
      + Home + Edit + Help + About +
      +
      +
      Undo
      +
      Redo
      + +
      Cut
      +
      Copy
      +
      Paste
      + +
      + Toolbar +
      +
      Address
      +
      Link
      +
      Navigation Toolbar
      +
      Bookmark Toolbar
      + +
      New Toolbar...
      +
      +
      +
      Delete
      +
      Select All
      +
      +
      +
      Help
      +
      Update
      +
      About
      +
      + + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/menubutton/basic.html b/src/main/webapp/js/easyui-1.3.5/demo/menubutton/basic.html new file mode 100644 index 00000000..e31b5b92 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/menubutton/basic.html @@ -0,0 +1,57 @@ + + + + + Basic MenuButton - jQuery EasyUI Demo + + + + + + + +

      Basic MenuButton

      +
      +
      +
      Move mouse over the button to drop down menu.
      +
      +
      +
      + Home + Edit + Help + About +
      +
      +
      Undo
      +
      Redo
      + +
      Cut
      +
      Copy
      +
      Paste
      + +
      + Toolbar +
      +
      Address
      +
      Link
      +
      Navigation Toolbar
      +
      Bookmark Toolbar
      + +
      New Toolbar...
      +
      +
      +
      Delete
      +
      Select All
      +
      +
      +
      Help
      +
      Update
      +
      About
      +
      + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/messager/alert.html b/src/main/webapp/js/easyui-1.3.5/demo/messager/alert.html new file mode 100644 index 00000000..ccaf7f10 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/messager/alert.html @@ -0,0 +1,43 @@ + + + + + Alert Messager - jQuery EasyUI Demo + + + + + + + +

      Alert Messager

      +
      +
      +
      Click on each button to display different alert message box.
      +
      + + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/messager/basic.html b/src/main/webapp/js/easyui-1.3.5/demo/messager/basic.html new file mode 100644 index 00000000..1d14b9f6 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/messager/basic.html @@ -0,0 +1,59 @@ + + + + + Basic Messager - jQuery EasyUI Demo + + + + + + + +

      Basic Messager

      +
      +
      +
      Click on each button to see a distinct message box.
      +
      +
      + Show + Slide + Fade + Progress +
      + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/messager/interactive.html b/src/main/webapp/js/easyui-1.3.5/demo/messager/interactive.html new file mode 100644 index 00000000..686d7ab4 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/messager/interactive.html @@ -0,0 +1,39 @@ + + + + + Interactive Messager - jQuery EasyUI Demo + + + + + + + +

      Interactive Messager

      +
      +
      +
      Click on each button to display interactive message box.
      +
      +
      + Confirm + Prompt +
      + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/messager/position.html b/src/main/webapp/js/easyui-1.3.5/demo/messager/position.html new file mode 100644 index 00000000..a6ce26e6 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/messager/position.html @@ -0,0 +1,143 @@ + + + + + Message Box Position - jQuery EasyUI Demo + + + + + + + +

      Message Box Position

      +
      +
      +
      Click the buttons below to display message box on different position.
      +
      + + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/numberbox/basic.html b/src/main/webapp/js/easyui-1.3.5/demo/numberbox/basic.html new file mode 100644 index 00000000..3e7390ca --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/numberbox/basic.html @@ -0,0 +1,27 @@ + + + + + Basic NumberBox - jQuery EasyUI Demo + + + + + + + +

      Basic NumberBox

      +
      +
      +
      The Box can only input number.
      +
      +
      + +
      + Value: +
      + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/numberbox/format.html b/src/main/webapp/js/easyui-1.3.5/demo/numberbox/format.html new file mode 100644 index 00000000..988a9b9e --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/numberbox/format.html @@ -0,0 +1,43 @@ + + + + + Format NumberBox - jQuery EasyUI Demo + + + + + + + +

      Format NumberBox

      +
      +
      +
      Number formatting is the ability to control how a number is displayed.
      +
      +
      + + + + + + + + + + + + + + + + + + + + + +
      Number in the United States
      Number in France
      Currency:USD
      Currency:EUR
      + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/numberbox/range.html b/src/main/webapp/js/easyui-1.3.5/demo/numberbox/range.html new file mode 100644 index 00000000..0cd498f3 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/numberbox/range.html @@ -0,0 +1,21 @@ + + + + + Number Range - jQuery EasyUI Demo + + + + + + + +

      Number Range

      +
      +
      +
      The value is constrained to a range between 10 and 90.
      +
      +
      + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/numberspinner/basic.html b/src/main/webapp/js/easyui-1.3.5/demo/numberspinner/basic.html new file mode 100644 index 00000000..fa050ebe --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/numberspinner/basic.html @@ -0,0 +1,28 @@ + + + + + Basic NumberSpinner - jQuery EasyUI Demo + + + + + + + +

      Basic NumberSpinner

      +
      +
      +
      Click spinner button to change value.
      +
      +
      + +
      + Value: +
      + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/numberspinner/increment.html b/src/main/webapp/js/easyui-1.3.5/demo/numberspinner/increment.html new file mode 100644 index 00000000..b083a20f --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/numberspinner/increment.html @@ -0,0 +1,21 @@ + + + + + Increment Number - jQuery EasyUI Demo + + + + + + + +

      Increment Number

      +
      +
      +
      The sample shows how to set the increment step.
      +
      +
      + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/numberspinner/range.html b/src/main/webapp/js/easyui-1.3.5/demo/numberspinner/range.html new file mode 100644 index 00000000..9e5642d7 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/numberspinner/range.html @@ -0,0 +1,21 @@ + + + + + Number Range - jQuery EasyUI Demo + + + + + + + +

      Number Range

      +
      +
      +
      The value is constrained to a range between 10 and 100.
      +
      +
      + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/pagination/attaching.html b/src/main/webapp/js/easyui-1.3.5/demo/pagination/attaching.html new file mode 100644 index 00000000..e0059ff9 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/pagination/attaching.html @@ -0,0 +1,33 @@ + + + + + Attaching Other Components - jQuery EasyUI Demo + + + + + + + +

      Attaching Other Components

      +
      +
      +
      Any other components can be attached to page bar.
      +
      +
      +
      +
      + + + + + +
      + + + +
      +
      + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/pagination/basic.html b/src/main/webapp/js/easyui-1.3.5/demo/pagination/basic.html new file mode 100644 index 00000000..0f38524c --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/pagination/basic.html @@ -0,0 +1,21 @@ + + + + + Basic Pagination - jQuery EasyUI Demo + + + + + + + +

      Basic Pagination

      +
      +
      +
      The user can change page number and page size on page bar.
      +
      +
      +
      + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/pagination/custombuttons.html b/src/main/webapp/js/easyui-1.3.5/demo/pagination/custombuttons.html new file mode 100644 index 00000000..26b1e411 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/pagination/custombuttons.html @@ -0,0 +1,39 @@ + + + + + Custom Pagination Buttons - jQuery EasyUI Demo + + + + + + + +

      Custom Pagination Buttons

      +
      +
      +
      The customized buttons can be appended to page bar.
      +
      +
      +
      + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/pagination/layout.html b/src/main/webapp/js/easyui-1.3.5/demo/pagination/layout.html new file mode 100644 index 00000000..82886a1f --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/pagination/layout.html @@ -0,0 +1,63 @@ + + + + + Pagination Layout - jQuery EasyUI Demo + + + + + + + +

      Pagination Layout

      +
      +
      +
      The pagination layout supports various types of pages which you can choose.
      +
      +
      +
      +
      + +
      + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/pagination/links.html b/src/main/webapp/js/easyui-1.3.5/demo/pagination/links.html new file mode 100644 index 00000000..0152dc5e --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/pagination/links.html @@ -0,0 +1,24 @@ + + + + + Pagination Links - jQuery EasyUI Demo + + + + + + + +

      Pagination Links

      +
      +
      +
      The example shows how to customize numbered pagination links.
      +
      +
      +
      + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/pagination/simple.html b/src/main/webapp/js/easyui-1.3.5/demo/pagination/simple.html new file mode 100644 index 00000000..19333586 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/pagination/simple.html @@ -0,0 +1,27 @@ + + + + + Simplify Pagination - jQuery EasyUI Demo + + + + + + + +

      Simplify Pagination

      +
      +
      +
      The sample shows how to simplify pagination.
      +
      +
      +
      + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/panel/_content.html b/src/main/webapp/js/easyui-1.3.5/demo/panel/_content.html new file mode 100644 index 00000000..99674027 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/panel/_content.html @@ -0,0 +1,18 @@ + + + + + AJAX Content + + +

      Here is the content loaded via AJAX.

      +
        +
      • easyui is a collection of user-interface plugin based on jQuery.
      • +
      • easyui provides essential functionality for building modern, interactive, javascript applications.
      • +
      • using easyui you don't need to write many javascript code, you usually defines user-interface by writing some HTML markup.
      • +
      • complete framework for HTML5 web page.
      • +
      • easyui save your time and scales while developing your products.
      • +
      • easyui is very easy but powerful.
      • +
      + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/panel/basic.html b/src/main/webapp/js/easyui-1.3.5/demo/panel/basic.html new file mode 100644 index 00000000..e1829088 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/panel/basic.html @@ -0,0 +1,34 @@ + + + + + Basic Panel - jQuery EasyUI Demo + + + + + + + +

      Basic Panel

      +
      +
      +
      The panel is a container for other components or elements.
      +
      +
      + Open + Close +
      +
      +

      jQuery EasyUI framework helps you build your web pages easily.

      +
        +
      • easyui is a collection of user-interface plugin based on jQuery.
      • +
      • easyui provides essential functionality for building modem, interactive, javascript applications.
      • +
      • using easyui you don't need to write many javascript code, you usually defines user-interface by writing some HTML markup.
      • +
      • complete framework for HTML5 web page.
      • +
      • easyui save your time and scales while developing your products.
      • +
      • easyui is very easy but powerful.
      • +
      +
      + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/panel/customtools.html b/src/main/webapp/js/easyui-1.3.5/demo/panel/customtools.html new file mode 100644 index 00000000..d92b4e41 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/panel/customtools.html @@ -0,0 +1,38 @@ + + + + + Custom Panel Tools - jQuery EasyUI Demo + + + + + + + +

      Custom Panel Tools

      +
      +
      +
      Click the right top buttons to perform actions with panel.
      +
      +
      +
      +

      jQuery EasyUI framework helps you build your web pages easily.

      +
        +
      • easyui is a collection of user-interface plugin based on jQuery.
      • +
      • easyui provides essential functionality for building modem, interactive, javascript applications.
      • +
      • using easyui you don't need to write many javascript code, you usually defines user-interface by writing some HTML markup.
      • +
      • complete framework for HTML5 web page.
      • +
      • easyui save your time and scales while developing your products.
      • +
      • easyui is very easy but powerful.
      • +
      +
      +
      + + + + +
      + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/panel/loadcontent.html b/src/main/webapp/js/easyui-1.3.5/demo/panel/loadcontent.html new file mode 100644 index 00000000..8c0e039f --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/panel/loadcontent.html @@ -0,0 +1,30 @@ + + + + + Load Panel Content - jQuery EasyUI Demo + + + + + + + +

      Load Panel Content

      +
      +
      +
      Click the refresh button on top right of panel to load content.
      +
      +
      +
      +
      + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/panel/nestedpanel.html b/src/main/webapp/js/easyui-1.3.5/demo/panel/nestedpanel.html new file mode 100644 index 00000000..66b4858a --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/panel/nestedpanel.html @@ -0,0 +1,30 @@ + + + + + Nested Panel - jQuery EasyUI Demo + + + + + + + +

      Nested Panel

      +
      +
      +
      The panel can be placed inside containers and can contain other components.
      +
      +
      +
      +
      +
      + Left Content +
      +
      + Right Content +
      +
      +
      + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/panel/paneltools.html b/src/main/webapp/js/easyui-1.3.5/demo/panel/paneltools.html new file mode 100644 index 00000000..f38e8d92 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/panel/paneltools.html @@ -0,0 +1,40 @@ + + + + + Panel Tools - jQuery EasyUI Demo + + + + + + + +

      Panel Tools

      +
      +
      +
      Click the right top buttons to perform actions with panel.
      +
      + +
      +
      +

      jQuery EasyUI framework helps you build your web pages easily.

      +
        +
      • easyui is a collection of user-interface plugin based on jQuery.
      • +
      • easyui provides essential functionality for building modem, interactive, javascript applications.
      • +
      • using easyui you don't need to write many javascript code, you usually defines user-interface by writing some HTML markup.
      • +
      • complete framework for HTML5 web page.
      • +
      • easyui save your time and scales while developing your products.
      • +
      • easyui is very easy but powerful.
      • +
      +
      +
      + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/progressbar/basic.html b/src/main/webapp/js/easyui-1.3.5/demo/progressbar/basic.html new file mode 100644 index 00000000..24d58115 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/progressbar/basic.html @@ -0,0 +1,33 @@ + + + + + Basic ProgressBar - jQuery EasyUI Demo + + + + + + + +

      Basic ProgressBar

      +
      +
      +
      Click the button below to show progress information.
      +
      +
      + Start +
      +
      + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/propertygrid/basic.html b/src/main/webapp/js/easyui-1.3.5/demo/propertygrid/basic.html new file mode 100644 index 00000000..51aeadb2 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/propertygrid/basic.html @@ -0,0 +1,64 @@ + + + + + Basic PropertyGrid - jQuery EasyUI Demo + + + + + + + +

      Basic PropertyGrid

      +
      +
      +
      Click on row to change each property value.
      +
      + + +
      + + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/propertygrid/customcolumns.html b/src/main/webapp/js/easyui-1.3.5/demo/propertygrid/customcolumns.html new file mode 100644 index 00000000..a88bb7b2 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/propertygrid/customcolumns.html @@ -0,0 +1,34 @@ + + + + + Customize Columns of PropertyGrid - jQuery EasyUI Demo + + + + + + + +

      Customize Columns of PropertyGrid

      +
      +
      +
      The columns of PropertyGrid can be changed.
      +
      +
      + +
      + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/propertygrid/groupformat.html b/src/main/webapp/js/easyui-1.3.5/demo/propertygrid/groupformat.html new file mode 100644 index 00000000..90ea4ed4 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/propertygrid/groupformat.html @@ -0,0 +1,33 @@ + + + + + Group Format - jQuery EasyUI Demo + + + + + + + +

      Group Format

      +
      +
      +
      The user can change the group information.
      +
      +
      + +
      + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/propertygrid/propertygrid_data1.json b/src/main/webapp/js/easyui-1.3.5/demo/propertygrid/propertygrid_data1.json new file mode 100644 index 00000000..a458d83f --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/propertygrid/propertygrid_data1.json @@ -0,0 +1,20 @@ +{"total":7,"rows":[ + {"name":"Name","value":"Bill Smith","group":"ID Settings","editor":"text"}, + {"name":"Address","value":"","group":"ID Settings","editor":"text"}, + {"name":"Age","value":"40","group":"ID Settings","editor":"numberbox"}, + {"name":"Birthday","value":"01/02/2012","group":"ID Settings","editor":"datebox"}, + {"name":"SSN","value":"123-456-7890","group":"ID Settings","editor":"text"}, + {"name":"Email","value":"bill@gmail.com","group":"Marketing Settings","editor":{ + "type":"validatebox", + "options":{ + "validType":"email" + } + }}, + {"name":"FrequentBuyer","value":"false","group":"Marketing Settings","editor":{ + "type":"checkbox", + "options":{ + "on":true, + "off":false + } + }} +]} \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/resizable/basic.html b/src/main/webapp/js/easyui-1.3.5/demo/resizable/basic.html new file mode 100644 index 00000000..8611d784 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/resizable/basic.html @@ -0,0 +1,27 @@ + + + + + Basic Resizable - jQuery EasyUI Demo + + + + + + + +

      Basic Resizable

      +
      +
      +
      Click on the edge of box and move the edge to resize the box.
      +
      +
      +
      +
      Resize Me
      +
      +
      +
      Title
      +
      Drag and Resize Me
      +
      + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/searchbox/basic.html b/src/main/webapp/js/easyui-1.3.5/demo/searchbox/basic.html new file mode 100644 index 00000000..2ff0bc13 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/searchbox/basic.html @@ -0,0 +1,26 @@ + + + + + Basic SearchBox - jQuery EasyUI Demo + + + + + + + +

      Basic SearchBox

      +
      +
      +
      Click search button or press enter key in input box to do searching.
      +
      +
      + + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/searchbox/category.html b/src/main/webapp/js/easyui-1.3.5/demo/searchbox/category.html new file mode 100644 index 00000000..6d94016f --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/searchbox/category.html @@ -0,0 +1,31 @@ + + + + + Search Category - jQuery EasyUI Demo + + + + + + + +

      Search Category

      +
      +
      +
      Select a category and click search button or press enter key in input box to do searching.
      +
      +
      + +
      +
      All News
      +
      Sports News
      +
      + + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/slider/basic.html b/src/main/webapp/js/easyui-1.3.5/demo/slider/basic.html new file mode 100644 index 00000000..5a6879a4 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/slider/basic.html @@ -0,0 +1,23 @@ + + + + + Basic Slider - jQuery EasyUI Demo + + + + + + + +

      Basic Slider

      +
      +
      +
      Drag the slider to change value.
      +
      +
      +
      + +
      + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/slider/formattip.html b/src/main/webapp/js/easyui-1.3.5/demo/slider/formattip.html new file mode 100644 index 00000000..a84ee6b2 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/slider/formattip.html @@ -0,0 +1,33 @@ + + + + + Format Tip Information - jQuery EasyUI Demo + + + + + + + +

      Format Tip Information

      +
      +
      +
      This sample shows how to format tip information.
      +
      +
      +
      + +
      +
      jQuery EasyUI
      + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/slider/rule.html b/src/main/webapp/js/easyui-1.3.5/demo/slider/rule.html new file mode 100644 index 00000000..3f8b5e30 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/slider/rule.html @@ -0,0 +1,26 @@ + + + + + Slider Rule - jQuery EasyUI Demo + + + + + + + +

      Slider Rule

      +
      +
      +
      This sample shows how to define slider rule.
      +
      +
      +
      + +
      + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/slider/vertical.html b/src/main/webapp/js/easyui-1.3.5/demo/slider/vertical.html new file mode 100644 index 00000000..1b54f487 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/slider/vertical.html @@ -0,0 +1,27 @@ + + + + + Vertical Slider - jQuery EasyUI Demo + + + + + + + +

      Vertical Slider

      +
      +
      +
      This sample shows how to create a vertical slider.
      +
      +
      + + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/splitbutton/actions.html b/src/main/webapp/js/easyui-1.3.5/demo/splitbutton/actions.html new file mode 100644 index 00000000..5d6e1871 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/splitbutton/actions.html @@ -0,0 +1,67 @@ + + + + + SplitButton Actions - jQuery EasyUI Demo + + + + + + + +

      SplitButton Actions

      +
      +
      +
      Click the buttons below to perform actions.
      +
      + +
      + Home + Edit + Ok + Help +
      +
      +
      Undo
      +
      Redo
      + +
      Cut
      +
      Copy
      +
      Paste
      + +
      + Toolbar +
      +
      Address
      +
      Link
      +
      Navigation Toolbar
      +
      Bookmark Toolbar
      + +
      New Toolbar...
      +
      +
      +
      Delete
      +
      Select All
      +
      +
      +
      Ok
      +
      Cancel
      +
      +
      +
      Help
      +
      Update
      +
      + About + +
      +
      + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/splitbutton/basic.html b/src/main/webapp/js/easyui-1.3.5/demo/splitbutton/basic.html new file mode 100644 index 00000000..a8c71bac --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/splitbutton/basic.html @@ -0,0 +1,64 @@ + + + + + Basic SplitButton - jQuery EasyUI Demo + + + + + + + +

      Basic SplitButton

      +
      +
      +
      Move mouse over the arrow area of button to drop down menu.
      +
      +
      +
      + Home + Edit + Ok + Help +
      +
      +
      Undo
      +
      Redo
      + +
      Cut
      +
      Copy
      +
      Paste
      + +
      + Toolbar +
      +
      Address
      +
      Link
      +
      Navigation Toolbar
      +
      Bookmark Toolbar
      + +
      New Toolbar...
      +
      +
      +
      Delete
      +
      Select All
      +
      +
      +
      Ok
      +
      Cancel
      +
      +
      +
      Help
      +
      Update
      +
      + About + +
      +
      + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/tabs/_content.html b/src/main/webapp/js/easyui-1.3.5/demo/tabs/_content.html new file mode 100644 index 00000000..99674027 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/tabs/_content.html @@ -0,0 +1,18 @@ + + + + + AJAX Content + + +

      Here is the content loaded via AJAX.

      +
        +
      • easyui is a collection of user-interface plugin based on jQuery.
      • +
      • easyui provides essential functionality for building modern, interactive, javascript applications.
      • +
      • using easyui you don't need to write many javascript code, you usually defines user-interface by writing some HTML markup.
      • +
      • complete framework for HTML5 web page.
      • +
      • easyui save your time and scales while developing your products.
      • +
      • easyui is very easy but powerful.
      • +
      + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/tabs/autoheight.html b/src/main/webapp/js/easyui-1.3.5/demo/tabs/autoheight.html new file mode 100644 index 00000000..51c4fb4e --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/tabs/autoheight.html @@ -0,0 +1,39 @@ + + + + + Auto Height for Tabs - jQuery EasyUI Demo + + + + + + + +

      Auto Height for Tabs

      +
      +
      +
      The tabs height is auto adjusted according to tab panel content.
      +
      +
      +
      +
      +

      jQuery EasyUI framework helps you build your web pages easily.

      +
        +
      • easyui is a collection of user-interface plugin based on jQuery.
      • +
      • easyui provides essential functionality for building modem, interactive, javascript applications.
      • +
      • using easyui you don't need to write many javascript code, you usually defines user-interface by writing some HTML markup.
      • +
      • complete framework for HTML5 web page.
      • +
      • easyui save your time and scales while developing your products.
      • +
      • easyui is very easy but powerful.
      • +
      +
      +
      +
        +
        +
        + This is the help content. +
        +
        + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/tabs/basic.html b/src/main/webapp/js/easyui-1.3.5/demo/tabs/basic.html new file mode 100644 index 00000000..8bbe09ea --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/tabs/basic.html @@ -0,0 +1,39 @@ + + + + + Basic Tabs - jQuery EasyUI Demo + + + + + + + +

        Basic Tabs

        +
        +
        +
        Click tab strip to swap tab panel content.
        +
        +
        +
        +
        +

        jQuery EasyUI framework helps you build your web pages easily.

        +
          +
        • easyui is a collection of user-interface plugin based on jQuery.
        • +
        • easyui provides essential functionality for building modem, interactive, javascript applications.
        • +
        • using easyui you don't need to write many javascript code, you usually defines user-interface by writing some HTML markup.
        • +
        • complete framework for HTML5 web page.
        • +
        • easyui save your time and scales while developing your products.
        • +
        • easyui is very easy but powerful.
        • +
        +
        +
        +
          +
          +
          + This is the help content. +
          +
          + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/tabs/dropdown.html b/src/main/webapp/js/easyui-1.3.5/demo/tabs/dropdown.html new file mode 100644 index 00000000..8615feb4 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/tabs/dropdown.html @@ -0,0 +1,58 @@ + + + + + Tabs with DropDown - jQuery EasyUI Demo + + + + + + + +

          Tabs with DropDown

          +
          +
          +
          This sample shows how to add a dropdown menu over a tab strip.
          +
          +
          +
          +
          +

          jQuery EasyUI framework helps you build your web pages easily.

          +
            +
          • easyui is a collection of user-interface plugin based on jQuery.
          • +
          • easyui provides essential functionality for building modem, interactive, javascript applications.
          • +
          • using easyui you don't need to write many javascript code, you usually defines user-interface by writing some HTML markup.
          • +
          • complete framework for HTML5 web page.
          • +
          • easyui save your time and scales while developing your products.
          • +
          • easyui is very easy but powerful.
          • +
          +
          +
          +
            +
            +
            + This is the help content. +
            +
            +
            +
            Welcome
            +
            Help Contents
            +
            Search
            +
            Dynamic Help
            +
            + + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/tabs/fixedwidth.html b/src/main/webapp/js/easyui-1.3.5/demo/tabs/fixedwidth.html new file mode 100644 index 00000000..703bfd1e --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/tabs/fixedwidth.html @@ -0,0 +1,40 @@ + + + + + Fixed Tab Width - jQuery EasyUI Demo + + + + + + + +

            Fixed Tab Width

            +
            +
            +
            The tab strips have fixed width and height.
            +
            +
            +
            +
            +

            Home Content.

            +
            +
            +

            Maps Content.

            +
            +
            +

            Journal Content.

            +
            +
            +

            History Content.

            +
            +
            +

            References Content.

            +
            +
            +

            Contact Content.

            +
            +
            + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/tabs/hover.html b/src/main/webapp/js/easyui-1.3.5/demo/tabs/hover.html new file mode 100644 index 00000000..4ff71c16 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/tabs/hover.html @@ -0,0 +1,49 @@ + + + + + Hover Tabs - jQuery EasyUI Demo + + + + + + + +

            Hover Tabs

            +
            +
            +
            Move mouse over the tab strip to open the tab panel.
            +
            +
            +
            +
            +

            jQuery EasyUI framework helps you build your web pages easily.

            +
              +
            • easyui is a collection of user-interface plugin based on jQuery.
            • +
            • easyui provides essential functionality for building modem, interactive, javascript applications.
            • +
            • using easyui you don't need to write many javascript code, you usually defines user-interface by writing some HTML markup.
            • +
            • complete framework for HTML5 web page.
            • +
            • easyui save your time and scales while developing your products.
            • +
            • easyui is very easy but powerful.
            • +
            +
            +
            +
              +
              +
              + This is the help content. +
              +
              + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/tabs/images/modem.png b/src/main/webapp/js/easyui-1.3.5/demo/tabs/images/modem.png new file mode 100644 index 00000000..be5a2eb2 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/demo/tabs/images/modem.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/demo/tabs/images/pda.png b/src/main/webapp/js/easyui-1.3.5/demo/tabs/images/pda.png new file mode 100644 index 00000000..1458d9bf Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/demo/tabs/images/pda.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/demo/tabs/images/scanner.png b/src/main/webapp/js/easyui-1.3.5/demo/tabs/images/scanner.png new file mode 100644 index 00000000..974635d9 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/demo/tabs/images/scanner.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/demo/tabs/images/tablet.png b/src/main/webapp/js/easyui-1.3.5/demo/tabs/images/tablet.png new file mode 100644 index 00000000..fa871f54 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/demo/tabs/images/tablet.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/demo/tabs/nestedtabs.html b/src/main/webapp/js/easyui-1.3.5/demo/tabs/nestedtabs.html new file mode 100644 index 00000000..d1afc760 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/tabs/nestedtabs.html @@ -0,0 +1,57 @@ + + + + + Nested Tabs - jQuery EasyUI Demo + + + + + + + +

              Nested Tabs

              +
              +
              +
              The tab panel can contain sub tabs or other components.
              +
              +
              +
              +
              +
              +
              Content 1
              +
              Content 2
              +
              Content 3
              +
              +
              +
              +
              + +
              +
              + + + + + + + + + + + + + + + + + + + + +
              Title1Title2Title3
              d11d12d13
              d21d22d23
              +
              +
              + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/tabs/striptools.html b/src/main/webapp/js/easyui-1.3.5/demo/tabs/striptools.html new file mode 100644 index 00000000..c72e2611 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/tabs/striptools.html @@ -0,0 +1,42 @@ + + + + + Tabs Strip Tools - jQuery EasyUI Demo + + + + + + + +

              Tabs Strip Tools

              +
              +
              +
              Click the mini-buttons on the tab strip to perform actions.
              +
              +
              +
              +
              +

              jQuery EasyUI framework helps you build your web pages easily.

              +
                +
              • easyui is a collection of user-interface plugin based on jQuery.
              • +
              • easyui provides essential functionality for building modem, interactive, javascript applications.
              • +
              • using easyui you don't need to write many javascript code, you usually defines user-interface by writing some HTML markup.
              • +
              • complete framework for HTML5 web page.
              • +
              • easyui save your time and scales while developing your products.
              • +
              • easyui is very easy but powerful.
              • +
              +
              +
              + This is the help content. +
              +
              +
              + + + +
              + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/tabs/tabimage.html b/src/main/webapp/js/easyui-1.3.5/demo/tabs/tabimage.html new file mode 100644 index 00000000..d99a3aa0 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/tabs/tabimage.html @@ -0,0 +1,44 @@ + + + + + Tabs with Images - jQuery EasyUI Demo + + + + + + + +

              Tabs with Images

              +
              +
              +
              The tab strip can display big images.
              +
              +
              +
              + +

              A modem (modulator-demodulator) is a device that modulates an analog carrier signal to encode digital information, and also demodulates such a carrier signal to decode the transmitted information.

              +
              + +

              In computing, an image scanner—often abbreviated to just scanner—is a device that optically scans images, printed text, handwriting, or an object, and converts it to a digital image.

              + + +

              A personal digital assistant (PDA), also known as a palmtop computer, or personal data assistant, is a mobile device that functions as a personal information manager. PDAs are largely considered obsolete with the widespread adoption of smartphones.

              + + +

              A tablet computer, or simply tablet, is a one-piece mobile computer. Devices typically have a touchscreen, with finger or stylus gestures replacing the conventional computer mouse.

              + + + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/tabs/tabposition.html b/src/main/webapp/js/easyui-1.3.5/demo/tabs/tabposition.html new file mode 100644 index 00000000..62a5f507 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/tabs/tabposition.html @@ -0,0 +1,48 @@ + + + + + Tab Position - jQuery EasyUI Demo + + + + + + + +

              Tab Position

              +
              +
              +
              Click the 'position' drop-down list and select an item to change the tab position.
              +
              +
              + Position: + +
              +
              +
              +

              jQuery EasyUI framework helps you build your web pages easily.

              +
                +
              • easyui is a collection of user-interface plugin based on jQuery.
              • +
              • easyui provides essential functionality for building modem, interactive, javascript applications.
              • +
              • using easyui you don't need to write many javascript code, you usually defines user-interface by writing some HTML markup.
              • +
              • complete framework for HTML5 web page.
              • +
              • easyui save your time and scales while developing your products.
              • +
              • easyui is very easy but powerful.
              • +
              +
              +
              +
                +
                +
                + This is the help content. +
                +
                + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/tabs/tabstools.html b/src/main/webapp/js/easyui-1.3.5/demo/tabs/tabstools.html new file mode 100644 index 00000000..93ecc0e6 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/tabs/tabstools.html @@ -0,0 +1,44 @@ + + + + + Tabs Tools - jQuery EasyUI Demo + + + + + + + +

                Tabs Tools

                +
                +
                +
                Click the buttons on the top right of tabs header to add or remove tab panel.
                +
                +
                +
                +
                +
                + + +
                + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/tabs/tree_data1.json b/src/main/webapp/js/easyui-1.3.5/demo/tabs/tree_data1.json new file mode 100644 index 00000000..e0c61922 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/tabs/tree_data1.json @@ -0,0 +1,49 @@ +[{ + "id":1, + "text":"My Documents", + "children":[{ + "id":11, + "text":"Photos", + "state":"closed", + "children":[{ + "id":111, + "text":"Friend" + },{ + "id":112, + "text":"Wife" + },{ + "id":113, + "text":"Company" + }] + },{ + "id":12, + "text":"Program Files", + "children":[{ + "id":121, + "text":"Intel" + },{ + "id":122, + "text":"Java", + "attributes":{ + "p1":"Custom Attribute1", + "p2":"Custom Attribute2" + } + },{ + "id":123, + "text":"Microsoft Office" + },{ + "id":124, + "text":"Games", + "checked":true + }] + },{ + "id":13, + "text":"index.html" + },{ + "id":14, + "text":"about.html" + },{ + "id":15, + "text":"welcome.html" + }] +}] diff --git a/src/main/webapp/js/easyui-1.3.5/demo/timespinner/actions.html b/src/main/webapp/js/easyui-1.3.5/demo/timespinner/actions.html new file mode 100644 index 00000000..9e88216f --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/timespinner/actions.html @@ -0,0 +1,41 @@ + + + + + TimeSpinner Actions - jQuery EasyUI Demo + + + + + + + +

                TimeSpinner Actions

                +
                +
                +
                Click the buttons below to perform actions.
                +
                + + + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/timespinner/basic.html b/src/main/webapp/js/easyui-1.3.5/demo/timespinner/basic.html new file mode 100644 index 00000000..40a5a786 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/timespinner/basic.html @@ -0,0 +1,21 @@ + + + + + Basic TimeSpinner - jQuery EasyUI Demo + + + + + + + +

                Basic TimeSpinner

                +
                +
                +
                Click spin button to adjust time.
                +
                +
                + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/timespinner/range.html b/src/main/webapp/js/easyui-1.3.5/demo/timespinner/range.html new file mode 100644 index 00000000..f31a8bb1 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/timespinner/range.html @@ -0,0 +1,23 @@ + + + + + Time Range - jQuery EasyUI Demo + + + + + + + +

                Time Range

                +
                +
                +
                The time value is constrained in specified range.
                +
                +
                + From 08:30 to 18:00 +
                + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/tooltip/_content.html b/src/main/webapp/js/easyui-1.3.5/demo/tooltip/_content.html new file mode 100644 index 00000000..99674027 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/tooltip/_content.html @@ -0,0 +1,18 @@ + + + + + AJAX Content + + +

                Here is the content loaded via AJAX.

                +
                  +
                • easyui is a collection of user-interface plugin based on jQuery.
                • +
                • easyui provides essential functionality for building modern, interactive, javascript applications.
                • +
                • using easyui you don't need to write many javascript code, you usually defines user-interface by writing some HTML markup.
                • +
                • complete framework for HTML5 web page.
                • +
                • easyui save your time and scales while developing your products.
                • +
                • easyui is very easy but powerful.
                • +
                + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/tooltip/_dialog.html b/src/main/webapp/js/easyui-1.3.5/demo/tooltip/_dialog.html new file mode 100644 index 00000000..ddcdc074 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/tooltip/_dialog.html @@ -0,0 +1,23 @@ + + + + + Dialog Content + + +
                +
                +
                User Name:
                + +
                +
                +
                Password:
                + +
                +
                + Login + Cancel +
                +
                + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/tooltip/ajax.html b/src/main/webapp/js/easyui-1.3.5/demo/tooltip/ajax.html new file mode 100644 index 00000000..e68a4b5c --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/tooltip/ajax.html @@ -0,0 +1,35 @@ + + + + + Ajax Tooltip - jQuery EasyUI Demo + + + + + + + +

                Ajax Tooltip

                +
                +
                +
                The tooltip content can be loaded via AJAX.
                +
                +
                + + + onShow: function(){ + $(this).tooltip('arrow').css('left', 20); + $(this).tooltip('tip').css('left', $(this).offset().left); + }, + onUpdate: function(cc){ + cc.panel({ + width: 500, + height: 'auto', + border: false, + href: '_content.html' + }); + } + ">Hove me to display tooltip content via AJAX. + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/tooltip/basic.html b/src/main/webapp/js/easyui-1.3.5/demo/tooltip/basic.html new file mode 100644 index 00000000..6fb8cc7a --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/tooltip/basic.html @@ -0,0 +1,23 @@ + + + + + Basic Tooltip - jQuery EasyUI Demo + + + + + + + +

                Basic Tooltip

                +
                +
                +
                Hover the links to display tooltip message.
                +
                +
                +

                The tooltip can use each elements title attribute. + Hover me to display tooltip. +

                + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/tooltip/customcontent.html b/src/main/webapp/js/easyui-1.3.5/demo/tooltip/customcontent.html new file mode 100644 index 00000000..1fb99b31 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/tooltip/customcontent.html @@ -0,0 +1,33 @@ + + + + + Custom Tooltip Content - jQuery EasyUI Demo + + + + + + + +

                Custom Tooltip Content

                +
                +
                +
                Access to each elements attribute to get the tooltip content.
                +
                +
                +
                + + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/tooltip/customstyle.html b/src/main/webapp/js/easyui-1.3.5/demo/tooltip/customstyle.html new file mode 100644 index 00000000..67bbd087 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/tooltip/customstyle.html @@ -0,0 +1,55 @@ + + + + + Custom Tooltip Style - jQuery EasyUI Demo + + + + + + + +

                Custom Tooltip Style

                +
                +
                +
                This sample shows how to change the tooltip style.
                +
                +
                +
                +
                Hover Me
                +
                +
                +
                Hover Me
                +
                + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/tooltip/position.html b/src/main/webapp/js/easyui-1.3.5/demo/tooltip/position.html new file mode 100644 index 00000000..28a5f9a0 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/tooltip/position.html @@ -0,0 +1,37 @@ + + + + + Tooltip Position - jQuery EasyUI Demo + + + + + + + +

                Tooltip Position

                +
                +
                +
                Click the drop-down list below to change where the tooltip appears.
                +
                +
                + Select position: + +
                +
                Hover Me
                +
                + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/tooltip/toolbar.html b/src/main/webapp/js/easyui-1.3.5/demo/tooltip/toolbar.html new file mode 100644 index 00000000..c7d2f219 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/tooltip/toolbar.html @@ -0,0 +1,43 @@ + + + + + Tooltip as Toolbar - jQuery EasyUI Demo + + + + + + + +

                Tooltip as Toolbar

                +
                +
                +
                This sample shows how to create a tooltip style toolbar.
                +
                +
                +
                +

                Hover me to display toolbar.

                +
                +
                +
                + + + + + +
                +
                + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/tooltip/tooltipdialog.html b/src/main/webapp/js/easyui-1.3.5/demo/tooltip/tooltipdialog.html new file mode 100644 index 00000000..957f58a0 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/tooltip/tooltipdialog.html @@ -0,0 +1,47 @@ + + + + + Tooltip Dialog - jQuery EasyUI Demo + + + + + + + +

                Tooltip Dialog

                +
                +
                +
                This sample shows how to create a tooltip dialog.
                +
                +
                +
                +

                Click here to see the tooltip dialog. +

                + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/treegrid/actions.html b/src/main/webapp/js/easyui-1.3.5/demo/treegrid/actions.html new file mode 100644 index 00000000..62b1ad0f --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/treegrid/actions.html @@ -0,0 +1,67 @@ + + + + + TreeGrid Actions - jQuery EasyUI Demo + + + + + + + +

                TreeGrid Actions

                +
                +
                +
                Click the buttons below to perform actions.
                +
                + + + + + + + + + + + +
                Task NamePersonsBegin DateEnd DateProgress
                + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/treegrid/basic.html b/src/main/webapp/js/easyui-1.3.5/demo/treegrid/basic.html new file mode 100644 index 00000000..417e783a --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/treegrid/basic.html @@ -0,0 +1,37 @@ + + + + + Basic TreeGrid - jQuery EasyUI Demo + + + + + + + +

                Basic TreeGrid

                +
                +
                +
                TreeGrid allows you to expand or collapse group rows.
                +
                +
                + + + + + + + + +
                NameSizeModified Date
                + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/treegrid/clientpagination.html b/src/main/webapp/js/easyui-1.3.5/demo/treegrid/clientpagination.html new file mode 100644 index 00000000..7f1d6468 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/treegrid/clientpagination.html @@ -0,0 +1,95 @@ + + + + + Client Side Pagination in TreeGrid - jQuery EasyUI Demo + + + + + + + +

                Client Side Pagination in TreeGrid

                +
                +
                +
                This sample shows how to implement client side pagination in TreeGrid.
                +
                +
                + + + + + + + + + + +
                Task NamePersonsBegin DateEnd DateProgress
                + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/treegrid/contextmenu.html b/src/main/webapp/js/easyui-1.3.5/demo/treegrid/contextmenu.html new file mode 100644 index 00000000..2a5954cd --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/treegrid/contextmenu.html @@ -0,0 +1,107 @@ + + + + + TreeGrid ContextMenu - jQuery EasyUI Demo + + + + + + + +

                TreeGrid ContextMenu

                +
                +
                +
                Right click to display the context menu.
                +
                +
                + + + + + + + + + + +
                Task NamePersonsBegin DateEnd DateProgress
                +
                +
                Append
                +
                Remove
                + +
                Collapse
                +
                Expand
                +
                + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/treegrid/editable.html b/src/main/webapp/js/easyui-1.3.5/demo/treegrid/editable.html new file mode 100644 index 00000000..1eaa64cd --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/treegrid/editable.html @@ -0,0 +1,96 @@ + + + + + Editable TreeGrid - jQuery EasyUI Demo + + + + + + + +

                Editable TreeGrid

                +
                +
                +
                Select one node and click edit button to perform editing.
                +
                +
                + Edit + Save + Cancel +
                + + + + + + + + + + +
                Task NamePersonsBegin DateEnd DateProgress
                + + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/treegrid/footer.html b/src/main/webapp/js/easyui-1.3.5/demo/treegrid/footer.html new file mode 100644 index 00000000..7f9b601c --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/treegrid/footer.html @@ -0,0 +1,58 @@ + + + + + TreeGrid with Footer - jQuery EasyUI Demo + + + + + + + +

                TreeGrid with Footer

                +
                +
                +
                Show summary information on TreeGrid footer.
                +
                +
                +
                + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/treegrid/reports.html b/src/main/webapp/js/easyui-1.3.5/demo/treegrid/reports.html new file mode 100644 index 00000000..70cc63e2 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/treegrid/reports.html @@ -0,0 +1,52 @@ + + + + + Reports using TreeGrid - jQuery EasyUI Demo + + + + + + + +

                Reports using TreeGrid

                +
                +
                +
                Using TreeGrid to show complex reports.
                +
                +
                + + + + + + + + + + + + + + + + + + + + + + +
                Region
                20092010
                1st qrt.2st qrt.3st qrt.4st qrt.1st qrt.2st qrt.3st qrt.4st qrt.
                + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/treegrid/treegrid_data1.json b/src/main/webapp/js/easyui-1.3.5/demo/treegrid/treegrid_data1.json new file mode 100644 index 00000000..6cc10973 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/treegrid/treegrid_data1.json @@ -0,0 +1,73 @@ +[{ + "id":1, + "name":"C", + "size":"", + "date":"02/19/2010", + "children":[{ + "id":2, + "name":"Program Files", + "size":"120 MB", + "date":"03/20/2010", + "children":[{ + "id":21, + "name":"Java", + "size":"", + "date":"01/13/2010", + "state":"closed", + "children":[{ + "id":211, + "name":"java.exe", + "size":"142 KB", + "date":"01/13/2010" + },{ + "id":212, + "name":"jawt.dll", + "size":"5 KB", + "date":"01/13/2010" + }] + },{ + "id":22, + "name":"MySQL", + "size":"", + "date":"01/13/2010", + "state":"closed", + "children":[{ + "id":221, + "name":"my.ini", + "size":"10 KB", + "date":"02/26/2009" + },{ + "id":222, + "name":"my-huge.ini", + "size":"5 KB", + "date":"02/26/2009" + },{ + "id":223, + "name":"my-large.ini", + "size":"5 KB", + "date":"02/26/2009" + }] + }] + },{ + "id":3, + "name":"eclipse", + "size":"", + "date":"01/20/2010", + "children":[{ + "id":31, + "name":"eclipse.exe", + "size":"56 KB", + "date":"05/19/2009" + },{ + "id":32, + "name":"eclipse.ini", + "size":"1 KB", + "date":"04/20/2010" + },{ + "id":33, + "name":"notice.html", + "size":"7 KB", + "date":"03/17/2005" + }] + }] +}] \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/treegrid/treegrid_data2.json b/src/main/webapp/js/easyui-1.3.5/demo/treegrid/treegrid_data2.json new file mode 100644 index 00000000..52c2c052 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/treegrid/treegrid_data2.json @@ -0,0 +1,11 @@ +{"total":7,"rows":[ + {"id":1,"name":"All Tasks","begin":"3/4/2010","end":"3/20/2010","progress":60,"iconCls":"icon-ok"}, + {"id":2,"name":"Designing","begin":"3/4/2010","end":"3/10/2010","progress":100,"_parentId":1,"state":"closed"}, + {"id":21,"name":"Database","persons":2,"begin":"3/4/2010","end":"3/6/2010","progress":100,"_parentId":2}, + {"id":22,"name":"UML","persons":1,"begin":"3/7/2010","end":"3/8/2010","progress":100,"_parentId":2}, + {"id":23,"name":"Export Document","persons":1,"begin":"3/9/2010","end":"3/10/2010","progress":100,"_parentId":2}, + {"id":3,"name":"Coding","persons":2,"begin":"3/11/2010","end":"3/18/2010","progress":80}, + {"id":4,"name":"Testing","persons":1,"begin":"3/19/2010","end":"3/20/2010","progress":20} +],"footer":[ + {"name":"Total Persons:","persons":7,"iconCls":"icon-sum"} +]} diff --git a/src/main/webapp/js/easyui-1.3.5/demo/treegrid/treegrid_data3.json b/src/main/webapp/js/easyui-1.3.5/demo/treegrid/treegrid_data3.json new file mode 100644 index 00000000..7015d317 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/treegrid/treegrid_data3.json @@ -0,0 +1,13 @@ +{"total":9,"rows":[ + {"id":1,"region":"Wyoming"}, + {"id":11,"region":"Albin","f1":2000,"f2":1800,"f3":1903,"f4":2183,"f5":2133,"f6":1923,"f7":2018,"f8":1838,"_parentId":1}, + {"id":12,"region":"Canon","f1":2000,"f2":1800,"f3":1903,"f4":2183,"f5":2133,"f6":1923,"f7":2018,"f8":1838,"_parentId":1}, + {"id":13,"region":"Egbert","f1":2000,"f2":1800,"f3":1903,"f4":2183,"f5":2133,"f6":1923,"f7":2018,"f8":1838,"_parentId":1}, + {"id":2,"region":"Washington"}, + {"id":21,"region":"Bellingham","f1":2000,"f2":1800,"f3":1903,"f4":2183,"f5":2133,"f6":1923,"f7":2018,"f8":1838,"_parentId":2}, + {"id":22,"region":"Chehalis","f1":2000,"f2":1800,"f3":1903,"f4":2183,"f5":2133,"f6":1923,"f7":2018,"f8":1838,"_parentId":2}, + {"id":23,"region":"Ellensburg","f1":2000,"f2":1800,"f3":1903,"f4":2183,"f5":2133,"f6":1923,"f7":2018,"f8":1838,"_parentId":2}, + {"id":24,"region":"Monroe","f1":2000,"f2":1800,"f3":1903,"f4":2183,"f5":2133,"f6":1923,"f7":2018,"f8":1838,"_parentId":2} +],"footer":[ + {"region":"Total","f1":14000,"f2":12600,"f3":13321,"f4":15281,"f5":14931,"f6":13461,"f7":14126,"f8":12866} +]} \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/validatebox/basic.html b/src/main/webapp/js/easyui-1.3.5/demo/validatebox/basic.html new file mode 100644 index 00000000..16d01b90 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/validatebox/basic.html @@ -0,0 +1,45 @@ + + + + + Basic ValidateBox - jQuery EasyUI Demo + + + + + + + +

                Basic ValidateBox

                +
                +
                +
                It's easy to add validate logic to a input box.
                +
                +
                +
                + + + + + + + + + + + + + + + + + + + + + +
                User Name:
                Email:
                Birthday:
                URL:
                Phone:
                +
                + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/validatebox/customtooltip.html b/src/main/webapp/js/easyui-1.3.5/demo/validatebox/customtooltip.html new file mode 100644 index 00000000..2af80fea --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/validatebox/customtooltip.html @@ -0,0 +1,90 @@ + + + + + Custom ValidateBox Tooltip - jQuery EasyUI Demo + + + + + + + +

                Custom ValidateBox Tooltip

                +
                +
                +
                This sample shows how to display another tooltip message on a valid textbox.
                +
                +
                +
                + + + + + + + + + + + + + + + + + + + + + +
                User Name:
                Email:
                Birthday:
                URL:
                Phone:
                +
                + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/window/basic.html b/src/main/webapp/js/easyui-1.3.5/demo/window/basic.html new file mode 100644 index 00000000..9475150a --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/window/basic.html @@ -0,0 +1,26 @@ + + + + + Basic Window - jQuery EasyUI Demo + + + + + + + +

                Basic Window

                +
                +
                +
                Window can be dragged freely on screen.
                +
                +
                + Open + Close +
                +
                + The window content. +
                + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/window/customtools.html b/src/main/webapp/js/easyui-1.3.5/demo/window/customtools.html new file mode 100644 index 00000000..aab788c1 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/window/customtools.html @@ -0,0 +1,33 @@ + + + + + Custom Window Tools - jQuery EasyUI Demo + + + + + + + +

                Custom Window Tools

                +
                +
                +
                Click the right top buttons to perform actions.
                +
                +
                + Open + Close +
                +
                + The window content. +
                +
                + + + + +
                + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/window/inlinewindow.html b/src/main/webapp/js/easyui-1.3.5/demo/window/inlinewindow.html new file mode 100644 index 00000000..64083f0c --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/window/inlinewindow.html @@ -0,0 +1,29 @@ + + + + + Inline Window - jQuery EasyUI Demo + + + + + + + +

                Inline Window

                +
                +
                +
                The inline window stay inside its parent.
                +
                +
                + Open + Close +
                +
                +
                + This window stay inside its parent +
                +
                + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/window/modalwindow.html b/src/main/webapp/js/easyui-1.3.5/demo/window/modalwindow.html new file mode 100644 index 00000000..f59a9c07 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/window/modalwindow.html @@ -0,0 +1,27 @@ + + + + + Modal Window - jQuery EasyUI Demo + + + + + + + +

                Modal Window

                +
                +
                +
                Click the open button below to open the modal window.
                +
                +
                + Open + Close +
                +
                + The window content. +
                + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/demo/window/windowlayout.html b/src/main/webapp/js/easyui-1.3.5/demo/window/windowlayout.html new file mode 100644 index 00000000..d29c6568 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/demo/window/windowlayout.html @@ -0,0 +1,36 @@ + + + + + Window Layout - jQuery EasyUI Demo + + + + + + + +

                Window Layout

                +
                +
                +
                Using layout on window.
                +
                +
                + Open + Close +
                +
                +
                +
                +
                + jQuery EasyUI framework help you build your web page easily. +
                +
                + Ok + Cancel +
                +
                +
                + + + \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/easyloader.js b/src/main/webapp/js/easyui-1.3.5/easyloader.js new file mode 100644 index 00000000..2cb888f7 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/easyloader.js @@ -0,0 +1,192 @@ +/** + * jQuery EasyUI 1.3.5 + * + * Copyright (c) 2009-2013 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL or commercial licenses + * To use it on other terms please contact us: info@jeasyui.com + * http://www.gnu.org/licenses/gpl.txt + * http://www.jeasyui.com/license_commercial.php + * + */ +(function(){ +var _1={draggable:{js:"jquery.draggable.js"},droppable:{js:"jquery.droppable.js"},resizable:{js:"jquery.resizable.js"},linkbutton:{js:"jquery.linkbutton.js",css:"linkbutton.css"},progressbar:{js:"jquery.progressbar.js",css:"progressbar.css"},tooltip:{js:"jquery.tooltip.js",css:"tooltip.css"},pagination:{js:"jquery.pagination.js",css:"pagination.css",dependencies:["linkbutton"]},datagrid:{js:"jquery.datagrid.js",css:"datagrid.css",dependencies:["panel","resizable","linkbutton","pagination"]},treegrid:{js:"jquery.treegrid.js",css:"tree.css",dependencies:["datagrid"]},propertygrid:{js:"jquery.propertygrid.js",css:"propertygrid.css",dependencies:["datagrid"]},panel:{js:"jquery.panel.js",css:"panel.css"},window:{js:"jquery.window.js",css:"window.css",dependencies:["resizable","draggable","panel"]},dialog:{js:"jquery.dialog.js",css:"dialog.css",dependencies:["linkbutton","window"]},messager:{js:"jquery.messager.js",css:"messager.css",dependencies:["linkbutton","window","progressbar"]},layout:{js:"jquery.layout.js",css:"layout.css",dependencies:["resizable","panel"]},form:{js:"jquery.form.js"},menu:{js:"jquery.menu.js",css:"menu.css"},tabs:{js:"jquery.tabs.js",css:"tabs.css",dependencies:["panel","linkbutton"]},menubutton:{js:"jquery.menubutton.js",css:"menubutton.css",dependencies:["linkbutton","menu"]},splitbutton:{js:"jquery.splitbutton.js",css:"splitbutton.css",dependencies:["menubutton"]},accordion:{js:"jquery.accordion.js",css:"accordion.css",dependencies:["panel"]},calendar:{js:"jquery.calendar.js",css:"calendar.css"},combo:{js:"jquery.combo.js",css:"combo.css",dependencies:["panel","validatebox"]},combobox:{js:"jquery.combobox.js",css:"combobox.css",dependencies:["combo"]},combotree:{js:"jquery.combotree.js",dependencies:["combo","tree"]},combogrid:{js:"jquery.combogrid.js",dependencies:["combo","datagrid"]},validatebox:{js:"jquery.validatebox.js",css:"validatebox.css",dependencies:["tooltip"]},numberbox:{js:"jquery.numberbox.js",dependencies:["validatebox"]},searchbox:{js:"jquery.searchbox.js",css:"searchbox.css",dependencies:["menubutton"]},spinner:{js:"jquery.spinner.js",css:"spinner.css",dependencies:["validatebox"]},numberspinner:{js:"jquery.numberspinner.js",dependencies:["spinner","numberbox"]},timespinner:{js:"jquery.timespinner.js",dependencies:["spinner"]},tree:{js:"jquery.tree.js",css:"tree.css",dependencies:["draggable","droppable"]},datebox:{js:"jquery.datebox.js",css:"datebox.css",dependencies:["calendar","combo"]},datetimebox:{js:"jquery.datetimebox.js",dependencies:["datebox","timespinner"]},slider:{js:"jquery.slider.js",dependencies:["draggable"]},tooltip:{js:"jquery.tooltip.js"},parser:{js:"jquery.parser.js"}}; +var _2={"af":"easyui-lang-af.js","ar":"easyui-lang-ar.js","bg":"easyui-lang-bg.js","ca":"easyui-lang-ca.js","cs":"easyui-lang-cs.js","cz":"easyui-lang-cz.js","da":"easyui-lang-da.js","de":"easyui-lang-de.js","el":"easyui-lang-el.js","en":"easyui-lang-en.js","es":"easyui-lang-es.js","fr":"easyui-lang-fr.js","it":"easyui-lang-it.js","jp":"easyui-lang-jp.js","nl":"easyui-lang-nl.js","pl":"easyui-lang-pl.js","pt_BR":"easyui-lang-pt_BR.js","ru":"easyui-lang-ru.js","sv_SE":"easyui-lang-sv_SE.js","tr":"easyui-lang-tr.js","zh_CN":"easyui-lang-zh_CN.js","zh_TW":"easyui-lang-zh_TW.js"}; +var _3={}; +function _4(_5,_6){ +var _7=false; +var _8=document.createElement("script"); +_8.type="text/javascript"; +_8.language="javascript"; +_8.src=_5; +_8.onload=_8.onreadystatechange=function(){ +if(!_7&&(!_8.readyState||_8.readyState=="loaded"||_8.readyState=="complete")){ +_7=true; +_8.onload=_8.onreadystatechange=null; +if(_6){ +_6.call(_8); +} +} +}; +document.getElementsByTagName("head")[0].appendChild(_8); +}; +function _9(_a,_b){ +_4(_a,function(){ +document.getElementsByTagName("head")[0].removeChild(this); +if(_b){ +_b(); +} +}); +}; +function _c(_d,_e){ +var _f=document.createElement("link"); +_f.rel="stylesheet"; +_f.type="text/css"; +_f.media="screen"; +_f.href=_d; +document.getElementsByTagName("head")[0].appendChild(_f); +if(_e){ +_e.call(_f); +} +}; +function _10(_11,_12){ +_3[_11]="loading"; +var _13=_1[_11]; +var _14="loading"; +var _15=(easyloader.css&&_13["css"])?"loading":"loaded"; +if(easyloader.css&&_13["css"]){ +if(/^http/i.test(_13["css"])){ +var url=_13["css"]; +}else{ +var url=easyloader.base+"themes/"+easyloader.theme+"/"+_13["css"]; +} +_c(url,function(){ +_15="loaded"; +if(_14=="loaded"&&_15=="loaded"){ +_16(); +} +}); +} +if(/^http/i.test(_13["js"])){ +var url=_13["js"]; +}else{ +var url=easyloader.base+"plugins/"+_13["js"]; +} +_4(url,function(){ +_14="loaded"; +if(_14=="loaded"&&_15=="loaded"){ +_16(); +} +}); +function _16(){ +_3[_11]="loaded"; +easyloader.onProgress(_11); +if(_12){ +_12(); +} +}; +}; +function _17(_18,_19){ +var mm=[]; +var _1a=false; +if(typeof _18=="string"){ +add(_18); +}else{ +for(var i=0;i<_18.length;i++){ +add(_18[i]); +} +} +function add(_1b){ +if(!_1[_1b]){ +return; +} +var d=_1[_1b]["dependencies"]; +if(d){ +for(var i=0;i").appendTo("body"); +d.width(100); +$._boxModel=parseInt(d.width())==100; +d.remove(); +if(!window.easyloader&&$.parser.auto){ +$.parser.parse(); +} +}); +$.fn._outerWidth=function(_c){ +if(_c==undefined){ +if(this[0]==window){ +return this.width()||document.body.clientWidth; +} +return this.outerWidth()||0; +} +return this.each(function(){ +if($._boxModel){ +$(this).width(_c-($(this).outerWidth()-$(this).width())); +}else{ +$(this).width(_c); +} +}); +}; +$.fn._outerHeight=function(_d){ +if(_d==undefined){ +if(this[0]==window){ +return this.height()||document.body.clientHeight; +} +return this.outerHeight()||0; +} +return this.each(function(){ +if($._boxModel){ +$(this).height(_d-($(this).outerHeight()-$(this).height())); +}else{ +$(this).height(_d); +} +}); +}; +$.fn._scrollLeft=function(_e){ +if(_e==undefined){ +return this.scrollLeft(); +}else{ +return this.each(function(){ +$(this).scrollLeft(_e); +}); +} +}; +$.fn._propAttr=$.fn.prop||$.fn.attr; +$.fn._fit=function(_f){ +_f=_f==undefined?true:_f; +var t=this[0]; +var p=(t.tagName=="BODY"?t:this.parent()[0]); +var _10=p.fcount||0; +if(_f){ +if(!t.fitted){ +t.fitted=true; +p.fcount=_10+1; +$(p).addClass("panel-noscroll"); +if(p.tagName=="BODY"){ +$("html").addClass("panel-fit"); +} +} +}else{ +if(t.fitted){ +t.fitted=false; +p.fcount=_10-1; +if(p.fcount==0){ +$(p).removeClass("panel-noscroll"); +if(p.tagName=="BODY"){ +$("html").removeClass("panel-fit"); +} +} +} +} +return {width:$(p).width(),height:$(p).height()}; +}; +})(jQuery); +(function($){ +var _11=null; +var _12=null; +var _13=false; +function _14(e){ +if(e.touches.length!=1){ +return; +} +if(!_13){ +_13=true; +dblClickTimer=setTimeout(function(){ +_13=false; +},500); +}else{ +clearTimeout(dblClickTimer); +_13=false; +_15(e,"dblclick"); +} +_11=setTimeout(function(){ +_15(e,"contextmenu",3); +},1000); +_15(e,"mousedown"); +if($.fn.draggable.isDragging||$.fn.resizable.isResizing){ +e.preventDefault(); +} +}; +function _16(e){ +if(e.touches.length!=1){ +return; +} +if(_11){ +clearTimeout(_11); +} +_15(e,"mousemove"); +if($.fn.draggable.isDragging||$.fn.resizable.isResizing){ +e.preventDefault(); +} +}; +function _17(e){ +if(_11){ +clearTimeout(_11); +} +_15(e,"mouseup"); +if($.fn.draggable.isDragging||$.fn.resizable.isResizing){ +e.preventDefault(); +} +}; +function _15(e,_18,_19){ +var _1a=new $.Event(_18); +_1a.pageX=e.changedTouches[0].pageX; +_1a.pageY=e.changedTouches[0].pageY; +_1a.which=_19||1; +$(e.target).trigger(_1a); +}; +if(document.addEventListener){ +document.addEventListener("touchstart",_14,true); +document.addEventListener("touchmove",_16,true); +document.addEventListener("touchend",_17,true); +} +})(jQuery); +(function($){ +function _1b(e){ +var _1c=$.data(e.data.target,"draggable"); +var _1d=_1c.options; +var _1e=_1c.proxy; +var _1f=e.data; +var _20=_1f.startLeft+e.pageX-_1f.startX; +var top=_1f.startTop+e.pageY-_1f.startY; +if(_1e){ +if(_1e.parent()[0]==document.body){ +if(_1d.deltaX!=null&&_1d.deltaX!=undefined){ +_20=e.pageX+_1d.deltaX; +}else{ +_20=e.pageX-e.data.offsetWidth; +} +if(_1d.deltaY!=null&&_1d.deltaY!=undefined){ +top=e.pageY+_1d.deltaY; +}else{ +top=e.pageY-e.data.offsetHeight; +} +}else{ +if(_1d.deltaX!=null&&_1d.deltaX!=undefined){ +_20+=e.data.offsetWidth+_1d.deltaX; +} +if(_1d.deltaY!=null&&_1d.deltaY!=undefined){ +top+=e.data.offsetHeight+_1d.deltaY; +} +} +} +if(e.data.parent!=document.body){ +_20+=$(e.data.parent).scrollLeft(); +top+=$(e.data.parent).scrollTop(); +} +if(_1d.axis=="h"){ +_1f.left=_20; +}else{ +if(_1d.axis=="v"){ +_1f.top=top; +}else{ +_1f.left=_20; +_1f.top=top; +} +} +}; +function _21(e){ +var _22=$.data(e.data.target,"draggable"); +var _23=_22.options; +var _24=_22.proxy; +if(!_24){ +_24=$(e.data.target); +} +_24.css({left:e.data.left,top:e.data.top}); +$("body").css("cursor",_23.cursor); +}; +function _25(e){ +$.fn.draggable.isDragging=true; +var _26=$.data(e.data.target,"draggable"); +var _27=_26.options; +var _28=$(".droppable").filter(function(){ +return e.data.target!=this; +}).filter(function(){ +var _29=$.data(this,"droppable").options.accept; +if(_29){ +return $(_29).filter(function(){ +return this==e.data.target; +}).length>0; +}else{ +return true; +} +}); +_26.droppables=_28; +var _2a=_26.proxy; +if(!_2a){ +if(_27.proxy){ +if(_27.proxy=="clone"){ +_2a=$(e.data.target).clone().insertAfter(e.data.target); +}else{ +_2a=_27.proxy.call(e.data.target,e.data.target); +} +_26.proxy=_2a; +}else{ +_2a=$(e.data.target); +} +} +_2a.css("position","absolute"); +_1b(e); +_21(e); +_27.onStartDrag.call(e.data.target,e); +return false; +}; +function _2b(e){ +var _2c=$.data(e.data.target,"draggable"); +_1b(e); +if(_2c.options.onDrag.call(e.data.target,e)!=false){ +_21(e); +} +var _2d=e.data.target; +_2c.droppables.each(function(){ +var _2e=$(this); +if(_2e.droppable("options").disabled){ +return; +} +var p2=_2e.offset(); +if(e.pageX>p2.left&&e.pageXp2.top&&e.pageYp2.left&&e.pageXp2.top&&e.pageY_43.options.edge; +}; +}); +}; +$.fn.draggable.methods={options:function(jq){ +return $.data(jq[0],"draggable").options; +},proxy:function(jq){ +return $.data(jq[0],"draggable").proxy; +},enable:function(jq){ +return jq.each(function(){ +$(this).draggable({disabled:false}); +}); +},disable:function(jq){ +return jq.each(function(){ +$(this).draggable({disabled:true}); +}); +}}; +$.fn.draggable.parseOptions=function(_48){ +var t=$(_48); +return $.extend({},$.parser.parseOptions(_48,["cursor","handle","axis",{"revert":"boolean","deltaX":"number","deltaY":"number","edge":"number"}]),{disabled:(t.attr("disabled")?true:undefined)}); +}; +$.fn.draggable.defaults={proxy:null,revert:false,cursor:"move",deltaX:null,deltaY:null,handle:null,disabled:false,edge:0,axis:null,onBeforeDrag:function(e){ +},onStartDrag:function(e){ +},onDrag:function(e){ +},onStopDrag:function(e){ +}}; +$.fn.draggable.isDragging=false; +})(jQuery); +(function($){ +function _49(_4a){ +$(_4a).addClass("droppable"); +$(_4a).bind("_dragenter",function(e,_4b){ +$.data(_4a,"droppable").options.onDragEnter.apply(_4a,[e,_4b]); +}); +$(_4a).bind("_dragleave",function(e,_4c){ +$.data(_4a,"droppable").options.onDragLeave.apply(_4a,[e,_4c]); +}); +$(_4a).bind("_dragover",function(e,_4d){ +$.data(_4a,"droppable").options.onDragOver.apply(_4a,[e,_4d]); +}); +$(_4a).bind("_drop",function(e,_4e){ +$.data(_4a,"droppable").options.onDrop.apply(_4a,[e,_4e]); +}); +}; +$.fn.droppable=function(_4f,_50){ +if(typeof _4f=="string"){ +return $.fn.droppable.methods[_4f](this,_50); +} +_4f=_4f||{}; +return this.each(function(){ +var _51=$.data(this,"droppable"); +if(_51){ +$.extend(_51.options,_4f); +}else{ +_49(this); +$.data(this,"droppable",{options:$.extend({},$.fn.droppable.defaults,$.fn.droppable.parseOptions(this),_4f)}); +} +}); +}; +$.fn.droppable.methods={options:function(jq){ +return $.data(jq[0],"droppable").options; +},enable:function(jq){ +return jq.each(function(){ +$(this).droppable({disabled:false}); +}); +},disable:function(jq){ +return jq.each(function(){ +$(this).droppable({disabled:true}); +}); +}}; +$.fn.droppable.parseOptions=function(_52){ +var t=$(_52); +return $.extend({},$.parser.parseOptions(_52,["accept"]),{disabled:(t.attr("disabled")?true:undefined)}); +}; +$.fn.droppable.defaults={accept:null,disabled:false,onDragEnter:function(e,_53){ +},onDragOver:function(e,_54){ +},onDragLeave:function(e,_55){ +},onDrop:function(e,_56){ +}}; +})(jQuery); +(function($){ +$.fn.resizable=function(_57,_58){ +if(typeof _57=="string"){ +return $.fn.resizable.methods[_57](this,_58); +} +function _59(e){ +var _5a=e.data; +var _5b=$.data(_5a.target,"resizable").options; +if(_5a.dir.indexOf("e")!=-1){ +var _5c=_5a.startWidth+e.pageX-_5a.startX; +_5c=Math.min(Math.max(_5c,_5b.minWidth),_5b.maxWidth); +_5a.width=_5c; +} +if(_5a.dir.indexOf("s")!=-1){ +var _5d=_5a.startHeight+e.pageY-_5a.startY; +_5d=Math.min(Math.max(_5d,_5b.minHeight),_5b.maxHeight); +_5a.height=_5d; +} +if(_5a.dir.indexOf("w")!=-1){ +var _5c=_5a.startWidth-e.pageX+_5a.startX; +_5c=Math.min(Math.max(_5c,_5b.minWidth),_5b.maxWidth); +_5a.width=_5c; +_5a.left=_5a.startLeft+_5a.startWidth-_5a.width; +} +if(_5a.dir.indexOf("n")!=-1){ +var _5d=_5a.startHeight-e.pageY+_5a.startY; +_5d=Math.min(Math.max(_5d,_5b.minHeight),_5b.maxHeight); +_5a.height=_5d; +_5a.top=_5a.startTop+_5a.startHeight-_5a.height; +} +}; +function _5e(e){ +var _5f=e.data; +var t=$(_5f.target); +t.css({left:_5f.left,top:_5f.top}); +if(t.outerWidth()!=_5f.width){ +t._outerWidth(_5f.width); +} +if(t.outerHeight()!=_5f.height){ +t._outerHeight(_5f.height); +} +}; +function _60(e){ +$.fn.resizable.isResizing=true; +$.data(e.data.target,"resizable").options.onStartResize.call(e.data.target,e); +return false; +}; +function _61(e){ +_59(e); +if($.data(e.data.target,"resizable").options.onResize.call(e.data.target,e)!=false){ +_5e(e); +} +return false; +}; +function _62(e){ +$.fn.resizable.isResizing=false; +_59(e,true); +_5e(e); +$.data(e.data.target,"resizable").options.onStopResize.call(e.data.target,e); +$(document).unbind(".resizable"); +$("body").css("cursor",""); +return false; +}; +return this.each(function(){ +var _63=null; +var _64=$.data(this,"resizable"); +if(_64){ +$(this).unbind(".resizable"); +_63=$.extend(_64.options,_57||{}); +}else{ +_63=$.extend({},$.fn.resizable.defaults,$.fn.resizable.parseOptions(this),_57||{}); +$.data(this,"resizable",{options:_63}); +} +if(_63.disabled==true){ +return; +} +$(this).bind("mousemove.resizable",{target:this},function(e){ +if($.fn.resizable.isResizing){ +return; +} +var dir=_65(e); +if(dir==""){ +$(e.data.target).css("cursor",""); +}else{ +$(e.data.target).css("cursor",dir+"-resize"); +} +}).bind("mouseleave.resizable",{target:this},function(e){ +$(e.data.target).css("cursor",""); +}).bind("mousedown.resizable",{target:this},function(e){ +var dir=_65(e); +if(dir==""){ +return; +} +function _66(css){ +var val=parseInt($(e.data.target).css(css)); +if(isNaN(val)){ +return 0; +}else{ +return val; +} +}; +var _67={target:e.data.target,dir:dir,startLeft:_66("left"),startTop:_66("top"),left:_66("left"),top:_66("top"),startX:e.pageX,startY:e.pageY,startWidth:$(e.data.target).outerWidth(),startHeight:$(e.data.target).outerHeight(),width:$(e.data.target).outerWidth(),height:$(e.data.target).outerHeight(),deltaWidth:$(e.data.target).outerWidth()-$(e.data.target).width(),deltaHeight:$(e.data.target).outerHeight()-$(e.data.target).height()}; +$(document).bind("mousedown.resizable",_67,_60); +$(document).bind("mousemove.resizable",_67,_61); +$(document).bind("mouseup.resizable",_67,_62); +$("body").css("cursor",dir+"-resize"); +}); +function _65(e){ +var tt=$(e.data.target); +var dir=""; +var _68=tt.offset(); +var _69=tt.outerWidth(); +var _6a=tt.outerHeight(); +var _6b=_63.edge; +if(e.pageY>_68.top&&e.pageY<_68.top+_6b){ +dir+="n"; +}else{ +if(e.pageY<_68.top+_6a&&e.pageY>_68.top+_6a-_6b){ +dir+="s"; +} +} +if(e.pageX>_68.left&&e.pageX<_68.left+_6b){ +dir+="w"; +}else{ +if(e.pageX<_68.left+_69&&e.pageX>_68.left+_69-_6b){ +dir+="e"; +} +} +var _6c=_63.handles.split(","); +for(var i=0;i<_6c.length;i++){ +var _6d=_6c[i].replace(/(^\s*)|(\s*$)/g,""); +if(_6d=="all"||_6d==dir){ +return dir; +} +} +return ""; +}; +}); +}; +$.fn.resizable.methods={options:function(jq){ +return $.data(jq[0],"resizable").options; +},enable:function(jq){ +return jq.each(function(){ +$(this).resizable({disabled:false}); +}); +},disable:function(jq){ +return jq.each(function(){ +$(this).resizable({disabled:true}); +}); +}}; +$.fn.resizable.parseOptions=function(_6e){ +var t=$(_6e); +return $.extend({},$.parser.parseOptions(_6e,["handles",{minWidth:"number",minHeight:"number",maxWidth:"number",maxHeight:"number",edge:"number"}]),{disabled:(t.attr("disabled")?true:undefined)}); +}; +$.fn.resizable.defaults={disabled:false,handles:"n, e, s, w, ne, se, sw, nw, all",minWidth:10,minHeight:10,maxWidth:10000,maxHeight:10000,edge:5,onStartResize:function(e){ +},onResize:function(e){ +},onStopResize:function(e){ +}}; +$.fn.resizable.isResizing=false; +})(jQuery); +(function($){ +function _6f(_70){ +var _71=$.data(_70,"linkbutton").options; +var t=$(_70); +t.addClass("l-btn").removeClass("l-btn-plain l-btn-selected l-btn-plain-selected"); +if(_71.plain){ +t.addClass("l-btn-plain"); +} +if(_71.selected){ +t.addClass(_71.plain?"l-btn-selected l-btn-plain-selected":"l-btn-selected"); +} +t.attr("group",_71.group||""); +t.attr("id",_71.id||""); +t.html(""+""+""); +if(_71.text){ +t.find(".l-btn-text").html(_71.text); +if(_71.iconCls){ +t.find(".l-btn-text").addClass(_71.iconCls).addClass(_71.iconAlign=="left"?"l-btn-icon-left":"l-btn-icon-right"); +} +}else{ +t.find(".l-btn-text").html(" "); +if(_71.iconCls){ +t.find(".l-btn-empty").addClass(_71.iconCls); +} +} +t.unbind(".linkbutton").bind("focus.linkbutton",function(){ +if(!_71.disabled){ +$(this).find(".l-btn-text").addClass("l-btn-focus"); +} +}).bind("blur.linkbutton",function(){ +$(this).find(".l-btn-text").removeClass("l-btn-focus"); +}); +if(_71.toggle&&!_71.disabled){ +t.bind("click.linkbutton",function(){ +if(_71.selected){ +$(this).linkbutton("unselect"); +}else{ +$(this).linkbutton("select"); +} +}); +} +_72(_70,_71.selected); +_73(_70,_71.disabled); +}; +function _72(_74,_75){ +var _76=$.data(_74,"linkbutton").options; +if(_75){ +if(_76.group){ +$("a.l-btn[group=\""+_76.group+"\"]").each(function(){ +var o=$(this).linkbutton("options"); +if(o.toggle){ +$(this).removeClass("l-btn-selected l-btn-plain-selected"); +o.selected=false; +} +}); +} +$(_74).addClass(_76.plain?"l-btn-selected l-btn-plain-selected":"l-btn-selected"); +_76.selected=true; +}else{ +if(!_76.group){ +$(_74).removeClass("l-btn-selected l-btn-plain-selected"); +_76.selected=false; +} +} +}; +function _73(_77,_78){ +var _79=$.data(_77,"linkbutton"); +var _7a=_79.options; +$(_77).removeClass("l-btn-disabled l-btn-plain-disabled"); +if(_78){ +_7a.disabled=true; +var _7b=$(_77).attr("href"); +if(_7b){ +_79.href=_7b; +$(_77).attr("href","javascript:void(0)"); +} +if(_77.onclick){ +_79.onclick=_77.onclick; +_77.onclick=null; +} +_7a.plain?$(_77).addClass("l-btn-disabled l-btn-plain-disabled"):$(_77).addClass("l-btn-disabled"); +}else{ +_7a.disabled=false; +if(_79.href){ +$(_77).attr("href",_79.href); +} +if(_79.onclick){ +_77.onclick=_79.onclick; +} +} +}; +$.fn.linkbutton=function(_7c,_7d){ +if(typeof _7c=="string"){ +return $.fn.linkbutton.methods[_7c](this,_7d); +} +_7c=_7c||{}; +return this.each(function(){ +var _7e=$.data(this,"linkbutton"); +if(_7e){ +$.extend(_7e.options,_7c); +}else{ +$.data(this,"linkbutton",{options:$.extend({},$.fn.linkbutton.defaults,$.fn.linkbutton.parseOptions(this),_7c)}); +$(this).removeAttr("disabled"); +} +_6f(this); +}); +}; +$.fn.linkbutton.methods={options:function(jq){ +return $.data(jq[0],"linkbutton").options; +},enable:function(jq){ +return jq.each(function(){ +_73(this,false); +}); +},disable:function(jq){ +return jq.each(function(){ +_73(this,true); +}); +},select:function(jq){ +return jq.each(function(){ +_72(this,true); +}); +},unselect:function(jq){ +return jq.each(function(){ +_72(this,false); +}); +}}; +$.fn.linkbutton.parseOptions=function(_7f){ +var t=$(_7f); +return $.extend({},$.parser.parseOptions(_7f,["id","iconCls","iconAlign","group",{plain:"boolean",toggle:"boolean",selected:"boolean"}]),{disabled:(t.attr("disabled")?true:undefined),text:$.trim(t.html()),iconCls:(t.attr("icon")||t.attr("iconCls"))}); +}; +$.fn.linkbutton.defaults={id:null,disabled:false,toggle:false,selected:false,group:null,plain:false,text:"",iconCls:null,iconAlign:"left"}; +})(jQuery); +(function($){ +function _80(_81){ +var _82=$.data(_81,"pagination"); +var _83=_82.options; +var bb=_82.bb={}; +var _84=$(_81).addClass("pagination").html("
                "); +var tr=_84.find("tr"); +var aa=$.extend([],_83.layout); +if(!_83.showPageList){ +_85(aa,"list"); +} +if(!_83.showRefresh){ +_85(aa,"refresh"); +} +if(aa[0]=="sep"){ +aa.shift(); +} +if(aa[aa.length-1]=="sep"){ +aa.pop(); +} +for(var _86=0;_86"); +ps.bind("change",function(){ +_83.pageSize=parseInt($(this).val()); +_83.onChangePageSize.call(_81,_83.pageSize); +_8d(_81,_83.pageNumber); +}); +for(var i=0;i<_83.pageList.length;i++){ +$("").text(_83.pageList[i]).appendTo(ps); +} +$("").append(ps).appendTo(tr); +}else{ +if(_87=="sep"){ +$("
                ").appendTo(tr); +}else{ +if(_87=="first"){ +bb.first=_88("first"); +}else{ +if(_87=="prev"){ +bb.prev=_88("prev"); +}else{ +if(_87=="next"){ +bb.next=_88("next"); +}else{ +if(_87=="last"){ +bb.last=_88("last"); +}else{ +if(_87=="manual"){ +$("").html(_83.beforePageText).appendTo(tr).wrap(""); +bb.num=$("").appendTo(tr).wrap(""); +bb.num.unbind(".pagination").bind("keydown.pagination",function(e){ +if(e.keyCode==13){ +var _89=parseInt($(this).val())||1; +_8d(_81,_89); +return false; +} +}); +bb.after=$("").appendTo(tr).wrap(""); +}else{ +if(_87=="refresh"){ +bb.refresh=_88("refresh"); +}else{ +if(_87=="links"){ +$("").appendTo(tr); +} +} +} +} +} +} +} +} +} +} +if(_83.buttons){ +$("
                ").appendTo(tr); +if($.isArray(_83.buttons)){ +for(var i=0;i<_83.buttons.length;i++){ +var btn=_83.buttons[i]; +if(btn=="-"){ +$("
                ").appendTo(tr); +}else{ +var td=$("").appendTo(tr); +var a=$("").appendTo(td); +a[0].onclick=eval(btn.handler||function(){ +}); +a.linkbutton($.extend({},btn,{plain:true})); +} +} +}else{ +var td=$("").appendTo(tr); +$(_83.buttons).appendTo(td).show(); +} +} +$("
                ").appendTo(_84); +$("
                ").appendTo(_84); +function _88(_8a){ +var btn=_83.nav[_8a]; +var a=$("").appendTo(tr); +a.wrap(""); +a.linkbutton({iconCls:btn.iconCls,plain:true}).unbind(".pagination").bind("click.pagination",function(){ +btn.handler.call(_81); +}); +return a; +}; +function _85(aa,_8b){ +var _8c=$.inArray(_8b,aa); +if(_8c>=0){ +aa.splice(_8c,1); +} +return aa; +}; +}; +function _8d(_8e,_8f){ +var _90=$.data(_8e,"pagination").options; +_91(_8e,{pageNumber:_8f}); +_90.onSelectPage.call(_8e,_90.pageNumber,_90.pageSize); +}; +function _91(_92,_93){ +var _94=$.data(_92,"pagination"); +var _95=_94.options; +var bb=_94.bb; +$.extend(_95,_93||{}); +var ps=$(_92).find("select.pagination-page-list"); +if(ps.length){ +ps.val(_95.pageSize+""); +_95.pageSize=parseInt(ps.val()); +} +var _96=Math.ceil(_95.total/_95.pageSize)||1; +if(_95.pageNumber<1){ +_95.pageNumber=1; +} +if(_95.pageNumber>_96){ +_95.pageNumber=_96; +} +if(bb.num){ +bb.num.val(_95.pageNumber); +} +if(bb.after){ +bb.after.html(_95.afterPageText.replace(/{pages}/,_96)); +} +var td=$(_92).find("td.pagination-links"); +if(td.length){ +td.empty(); +var _97=_95.pageNumber-Math.floor(_95.links/2); +if(_97<1){ +_97=1; +} +var _98=_97+_95.links-1; +if(_98>_96){ +_98=_96; +} +_97=_98-_95.links+1; +if(_97<1){ +_97=1; +} +for(var i=_97;i<=_98;i++){ +var a=$("").appendTo(td); +a.linkbutton({plain:true,text:i}); +if(i==_95.pageNumber){ +a.linkbutton("select"); +}else{ +a.unbind(".pagination").bind("click.pagination",{pageNumber:i},function(e){ +_8d(_92,e.data.pageNumber); +}); +} +} +} +var _99=_95.displayMsg; +_99=_99.replace(/{from}/,_95.total==0?0:_95.pageSize*(_95.pageNumber-1)+1); +_99=_99.replace(/{to}/,Math.min(_95.pageSize*(_95.pageNumber),_95.total)); +_99=_99.replace(/{total}/,_95.total); +$(_92).find("div.pagination-info").html(_99); +if(bb.first){ +bb.first.linkbutton({disabled:(_95.pageNumber==1)}); +} +if(bb.prev){ +bb.prev.linkbutton({disabled:(_95.pageNumber==1)}); +} +if(bb.next){ +bb.next.linkbutton({disabled:(_95.pageNumber==_96)}); +} +if(bb.last){ +bb.last.linkbutton({disabled:(_95.pageNumber==_96)}); +} +_9a(_92,_95.loading); +}; +function _9a(_9b,_9c){ +var _9d=$.data(_9b,"pagination"); +var _9e=_9d.options; +_9e.loading=_9c; +if(_9e.showRefresh&&_9d.bb.refresh){ +_9d.bb.refresh.linkbutton({iconCls:(_9e.loading?"pagination-loading":"pagination-load")}); +} +}; +$.fn.pagination=function(_9f,_a0){ +if(typeof _9f=="string"){ +return $.fn.pagination.methods[_9f](this,_a0); +} +_9f=_9f||{}; +return this.each(function(){ +var _a1; +var _a2=$.data(this,"pagination"); +if(_a2){ +_a1=$.extend(_a2.options,_9f); +}else{ +_a1=$.extend({},$.fn.pagination.defaults,$.fn.pagination.parseOptions(this),_9f); +$.data(this,"pagination",{options:_a1}); +} +_80(this); +_91(this); +}); +}; +$.fn.pagination.methods={options:function(jq){ +return $.data(jq[0],"pagination").options; +},loading:function(jq){ +return jq.each(function(){ +_9a(this,true); +}); +},loaded:function(jq){ +return jq.each(function(){ +_9a(this,false); +}); +},refresh:function(jq,_a3){ +return jq.each(function(){ +_91(this,_a3); +}); +},select:function(jq,_a4){ +return jq.each(function(){ +_8d(this,_a4); +}); +}}; +$.fn.pagination.parseOptions=function(_a5){ +var t=$(_a5); +return $.extend({},$.parser.parseOptions(_a5,[{total:"number",pageSize:"number",pageNumber:"number",links:"number"},{loading:"boolean",showPageList:"boolean",showRefresh:"boolean"}]),{pageList:(t.attr("pageList")?eval(t.attr("pageList")):undefined)}); +}; +$.fn.pagination.defaults={total:1,pageSize:10,pageNumber:1,pageList:[10,20,30,50],loading:false,buttons:null,showPageList:true,showRefresh:true,links:10,layout:["list","sep","first","prev","sep","manual","sep","next","last","sep","refresh"],onSelectPage:function(_a6,_a7){ +},onBeforeRefresh:function(_a8,_a9){ +},onRefresh:function(_aa,_ab){ +},onChangePageSize:function(_ac){ +},beforePageText:"Page",afterPageText:"of {pages}",displayMsg:"Displaying {from} to {to} of {total} items",nav:{first:{iconCls:"pagination-first",handler:function(){ +var _ad=$(this).pagination("options"); +if(_ad.pageNumber>1){ +$(this).pagination("select",1); +} +}},prev:{iconCls:"pagination-prev",handler:function(){ +var _ae=$(this).pagination("options"); +if(_ae.pageNumber>1){ +$(this).pagination("select",_ae.pageNumber-1); +} +}},next:{iconCls:"pagination-next",handler:function(){ +var _af=$(this).pagination("options"); +var _b0=Math.ceil(_af.total/_af.pageSize); +if(_af.pageNumber<_b0){ +$(this).pagination("select",_af.pageNumber+1); +} +}},last:{iconCls:"pagination-last",handler:function(){ +var _b1=$(this).pagination("options"); +var _b2=Math.ceil(_b1.total/_b1.pageSize); +if(_b1.pageNumber<_b2){ +$(this).pagination("select",_b2); +} +}},refresh:{iconCls:"pagination-refresh",handler:function(){ +var _b3=$(this).pagination("options"); +if(_b3.onBeforeRefresh.call(this,_b3.pageNumber,_b3.pageSize)!=false){ +$(this).pagination("select",_b3.pageNumber); +_b3.onRefresh.call(this,_b3.pageNumber,_b3.pageSize); +} +}}}}; +})(jQuery); +(function($){ +function _b4(_b5){ +var _b6=$(_b5); +_b6.addClass("tree"); +return _b6; +}; +function _b7(_b8){ +var _b9=$.data(_b8,"tree").options; +$(_b8).unbind().bind("mouseover",function(e){ +var tt=$(e.target); +var _ba=tt.closest("div.tree-node"); +if(!_ba.length){ +return; +} +_ba.addClass("tree-node-hover"); +if(tt.hasClass("tree-hit")){ +if(tt.hasClass("tree-expanded")){ +tt.addClass("tree-expanded-hover"); +}else{ +tt.addClass("tree-collapsed-hover"); +} +} +e.stopPropagation(); +}).bind("mouseout",function(e){ +var tt=$(e.target); +var _bb=tt.closest("div.tree-node"); +if(!_bb.length){ +return; +} +_bb.removeClass("tree-node-hover"); +if(tt.hasClass("tree-hit")){ +if(tt.hasClass("tree-expanded")){ +tt.removeClass("tree-expanded-hover"); +}else{ +tt.removeClass("tree-collapsed-hover"); +} +} +e.stopPropagation(); +}).bind("click",function(e){ +var tt=$(e.target); +var _bc=tt.closest("div.tree-node"); +if(!_bc.length){ +return; +} +if(tt.hasClass("tree-hit")){ +_121(_b8,_bc[0]); +return false; +}else{ +if(tt.hasClass("tree-checkbox")){ +_e5(_b8,_bc[0],!tt.hasClass("tree-checkbox1")); +return false; +}else{ +_165(_b8,_bc[0]); +_b9.onClick.call(_b8,_bf(_b8,_bc[0])); +} +} +e.stopPropagation(); +}).bind("dblclick",function(e){ +var _bd=$(e.target).closest("div.tree-node"); +if(!_bd.length){ +return; +} +_165(_b8,_bd[0]); +_b9.onDblClick.call(_b8,_bf(_b8,_bd[0])); +e.stopPropagation(); +}).bind("contextmenu",function(e){ +var _be=$(e.target).closest("div.tree-node"); +if(!_be.length){ +return; +} +_b9.onContextMenu.call(_b8,e,_bf(_b8,_be[0])); +e.stopPropagation(); +}); +}; +function _c0(_c1){ +var _c2=$.data(_c1,"tree").options; +_c2.dnd=false; +var _c3=$(_c1).find("div.tree-node"); +_c3.draggable("disable"); +_c3.css("cursor","pointer"); +}; +function _c4(_c5){ +var _c6=$.data(_c5,"tree"); +var _c7=_c6.options; +var _c8=_c6.tree; +_c6.disabledNodes=[]; +_c7.dnd=true; +_c8.find("div.tree-node").draggable({disabled:false,revert:true,cursor:"pointer",proxy:function(_c9){ +var p=$("
                ").appendTo("body"); +p.html(" "+$(_c9).find(".tree-title").html()); +p.hide(); +return p; +},deltaX:15,deltaY:15,onBeforeDrag:function(e){ +if(_c7.onBeforeDrag.call(_c5,_bf(_c5,this))==false){ +return false; +} +if($(e.target).hasClass("tree-hit")||$(e.target).hasClass("tree-checkbox")){ +return false; +} +if(e.which!=1){ +return false; +} +$(this).next("ul").find("div.tree-node").droppable({accept:"no-accept"}); +var _ca=$(this).find("span.tree-indent"); +if(_ca.length){ +e.data.offsetWidth-=_ca.length*_ca.width(); +} +},onStartDrag:function(){ +$(this).draggable("proxy").css({left:-10000,top:-10000}); +_c7.onStartDrag.call(_c5,_bf(_c5,this)); +var _cb=_bf(_c5,this); +if(_cb.id==undefined){ +_cb.id="easyui_tree_node_id_temp"; +_105(_c5,_cb); +} +_c6.draggingNodeId=_cb.id; +},onDrag:function(e){ +var x1=e.pageX,y1=e.pageY,x2=e.data.startX,y2=e.data.startY; +var d=Math.sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)); +if(d>3){ +$(this).draggable("proxy").show(); +} +this.pageY=e.pageY; +},onStopDrag:function(){ +$(this).next("ul").find("div.tree-node").droppable({accept:"div.tree-node"}); +for(var i=0;i<_c6.disabledNodes.length;i++){ +$(_c6.disabledNodes[i]).droppable("enable"); +} +_c6.disabledNodes=[]; +var _cc=_15d(_c5,_c6.draggingNodeId); +if(_cc&&_cc.id=="easyui_tree_node_id_temp"){ +_cc.id=""; +_105(_c5,_cc); +} +_c7.onStopDrag.call(_c5,_cc); +}}).droppable({accept:"div.tree-node",onDragEnter:function(e,_cd){ +if(_c7.onDragEnter.call(_c5,this,_bf(_c5,_cd))==false){ +_ce(_cd,false); +$(this).removeClass("tree-node-append tree-node-top tree-node-bottom"); +$(this).droppable("disable"); +_c6.disabledNodes.push(this); +} +},onDragOver:function(e,_cf){ +if($(this).droppable("options").disabled){ +return; +} +var _d0=_cf.pageY; +var top=$(this).offset().top; +var _d1=top+$(this).outerHeight(); +_ce(_cf,true); +$(this).removeClass("tree-node-append tree-node-top tree-node-bottom"); +if(_d0>top+(_d1-top)/2){ +if(_d1-_d0<5){ +$(this).addClass("tree-node-bottom"); +}else{ +$(this).addClass("tree-node-append"); +} +}else{ +if(_d0-top<5){ +$(this).addClass("tree-node-top"); +}else{ +$(this).addClass("tree-node-append"); +} +} +if(_c7.onDragOver.call(_c5,this,_bf(_c5,_cf))==false){ +_ce(_cf,false); +$(this).removeClass("tree-node-append tree-node-top tree-node-bottom"); +$(this).droppable("disable"); +_c6.disabledNodes.push(this); +} +},onDragLeave:function(e,_d2){ +_ce(_d2,false); +$(this).removeClass("tree-node-append tree-node-top tree-node-bottom"); +_c7.onDragLeave.call(_c5,this,_bf(_c5,_d2)); +},onDrop:function(e,_d3){ +var _d4=this; +var _d5,_d6; +if($(this).hasClass("tree-node-append")){ +_d5=_d7; +_d6="append"; +}else{ +_d5=_d8; +_d6=$(this).hasClass("tree-node-top")?"top":"bottom"; +} +if(_c7.onBeforeDrop.call(_c5,_d4,_158(_c5,_d3),_d6)==false){ +$(this).removeClass("tree-node-append tree-node-top tree-node-bottom"); +return; +} +_d5(_d3,_d4,_d6); +$(this).removeClass("tree-node-append tree-node-top tree-node-bottom"); +}}); +function _ce(_d9,_da){ +var _db=$(_d9).draggable("proxy").find("span.tree-dnd-icon"); +_db.removeClass("tree-dnd-yes tree-dnd-no").addClass(_da?"tree-dnd-yes":"tree-dnd-no"); +}; +function _d7(_dc,_dd){ +if(_bf(_c5,_dd).state=="closed"){ +_119(_c5,_dd,function(){ +_de(); +}); +}else{ +_de(); +} +function _de(){ +var _df=$(_c5).tree("pop",_dc); +$(_c5).tree("append",{parent:_dd,data:[_df]}); +_c7.onDrop.call(_c5,_dd,_df,"append"); +}; +}; +function _d8(_e0,_e1,_e2){ +var _e3={}; +if(_e2=="top"){ +_e3.before=_e1; +}else{ +_e3.after=_e1; +} +var _e4=$(_c5).tree("pop",_e0); +_e3.data=_e4; +$(_c5).tree("insert",_e3); +_c7.onDrop.call(_c5,_e1,_e4,_e2); +}; +}; +function _e5(_e6,_e7,_e8){ +var _e9=$.data(_e6,"tree").options; +if(!_e9.checkbox){ +return; +} +var _ea=_bf(_e6,_e7); +if(_e9.onBeforeCheck.call(_e6,_ea,_e8)==false){ +return; +} +var _eb=$(_e7); +var ck=_eb.find(".tree-checkbox"); +ck.removeClass("tree-checkbox0 tree-checkbox1 tree-checkbox2"); +if(_e8){ +ck.addClass("tree-checkbox1"); +}else{ +ck.addClass("tree-checkbox0"); +} +if(_e9.cascadeCheck){ +_ec(_eb); +_ed(_eb); +} +_e9.onCheck.call(_e6,_ea,_e8); +function _ed(_ee){ +var _ef=_ee.next().find(".tree-checkbox"); +_ef.removeClass("tree-checkbox0 tree-checkbox1 tree-checkbox2"); +if(_ee.find(".tree-checkbox").hasClass("tree-checkbox1")){ +_ef.addClass("tree-checkbox1"); +}else{ +_ef.addClass("tree-checkbox0"); +} +}; +function _ec(_f0){ +var _f1=_12c(_e6,_f0[0]); +if(_f1){ +var ck=$(_f1.target).find(".tree-checkbox"); +ck.removeClass("tree-checkbox0 tree-checkbox1 tree-checkbox2"); +if(_f2(_f0)){ +ck.addClass("tree-checkbox1"); +}else{ +if(_f3(_f0)){ +ck.addClass("tree-checkbox0"); +}else{ +ck.addClass("tree-checkbox2"); +} +} +_ec($(_f1.target)); +} +function _f2(n){ +var ck=n.find(".tree-checkbox"); +if(ck.hasClass("tree-checkbox0")||ck.hasClass("tree-checkbox2")){ +return false; +} +var b=true; +n.parent().siblings().each(function(){ +if(!$(this).children("div.tree-node").children(".tree-checkbox").hasClass("tree-checkbox1")){ +b=false; +} +}); +return b; +}; +function _f3(n){ +var ck=n.find(".tree-checkbox"); +if(ck.hasClass("tree-checkbox1")||ck.hasClass("tree-checkbox2")){ +return false; +} +var b=true; +n.parent().siblings().each(function(){ +if(!$(this).children("div.tree-node").children(".tree-checkbox").hasClass("tree-checkbox0")){ +b=false; +} +}); +return b; +}; +}; +}; +function _f4(_f5,_f6){ +var _f7=$.data(_f5,"tree").options; +if(!_f7.checkbox){ +return; +} +var _f8=$(_f6); +if(_f9(_f5,_f6)){ +var ck=_f8.find(".tree-checkbox"); +if(ck.length){ +if(ck.hasClass("tree-checkbox1")){ +_e5(_f5,_f6,true); +}else{ +_e5(_f5,_f6,false); +} +}else{ +if(_f7.onlyLeafCheck){ +$("").insertBefore(_f8.find(".tree-title")); +} +} +}else{ +var ck=_f8.find(".tree-checkbox"); +if(_f7.onlyLeafCheck){ +ck.remove(); +}else{ +if(ck.hasClass("tree-checkbox1")){ +_e5(_f5,_f6,true); +}else{ +if(ck.hasClass("tree-checkbox2")){ +var _fa=true; +var _fb=true; +var _fc=_fd(_f5,_f6); +for(var i=0;i<_fc.length;i++){ +if(_fc[i].checked){ +_fb=false; +}else{ +_fa=false; +} +} +if(_fa){ +_e5(_f5,_f6,true); +} +if(_fb){ +_e5(_f5,_f6,false); +} +} +} +} +} +}; +function _fe(_ff,ul,data,_100){ +var _101=$.data(_ff,"tree"); +var opts=_101.options; +var _102=$(ul).prevAll("div.tree-node:first"); +data=opts.loadFilter.call(_ff,data,_102[0]); +var _103=_104(_ff,"domId",_102.attr("id")); +if(!_100){ +_103?_103.children=data:_101.data=data; +$(ul).empty(); +}else{ +if(_103){ +_103.children?_103.children=_103.children.concat(data):_103.children=data; +}else{ +_101.data=_101.data.concat(data); +} +} +opts.view.render.call(opts.view,_ff,ul,data); +if(opts.dnd){ +_c4(_ff); +} +if(_103){ +_105(_ff,_103); +} +var _106=[]; +var _107=[]; +for(var i=0;i1){ +$(_10c[0].target).addClass("tree-root-first"); +}else{ +if(_10c.length==1){ +$(_10c[0].target).addClass("tree-root-one"); +} +} +} +$(ul).children("li").each(function(){ +var node=$(this).children("div.tree-node"); +var ul=node.next("ul"); +if(ul.length){ +if($(this).next().length){ +_10d(node); +} +_109(_10a,ul,_10b); +}else{ +_10e(node); +} +}); +var _10f=$(ul).children("li:last").children("div.tree-node").addClass("tree-node-last"); +_10f.children("span.tree-join").removeClass("tree-join").addClass("tree-joinbottom"); +function _10e(node,_110){ +var icon=node.find("span.tree-icon"); +icon.prev("span.tree-indent").addClass("tree-join"); +}; +function _10d(node){ +var _111=node.find("span.tree-indent, span.tree-hit").length; +node.next().find("div.tree-node").each(function(){ +$(this).children("span:eq("+(_111-1)+")").addClass("tree-line"); +}); +}; +}; +function _112(_113,ul,_114,_115){ +var opts=$.data(_113,"tree").options; +_114=_114||{}; +var _116=null; +if(_113!=ul){ +var node=$(ul).prev(); +_116=_bf(_113,node[0]); +} +if(opts.onBeforeLoad.call(_113,_116,_114)==false){ +return; +} +var _117=$(ul).prev().children("span.tree-folder"); +_117.addClass("tree-loading"); +var _118=opts.loader.call(_113,_114,function(data){ +_117.removeClass("tree-loading"); +_fe(_113,ul,data); +if(_115){ +_115(); +} +},function(){ +_117.removeClass("tree-loading"); +opts.onLoadError.apply(_113,arguments); +if(_115){ +_115(); +} +}); +if(_118==false){ +_117.removeClass("tree-loading"); +} +}; +function _119(_11a,_11b,_11c){ +var opts=$.data(_11a,"tree").options; +var hit=$(_11b).children("span.tree-hit"); +if(hit.length==0){ +return; +} +if(hit.hasClass("tree-expanded")){ +return; +} +var node=_bf(_11a,_11b); +if(opts.onBeforeExpand.call(_11a,node)==false){ +return; +} +hit.removeClass("tree-collapsed tree-collapsed-hover").addClass("tree-expanded"); +hit.next().addClass("tree-folder-open"); +var ul=$(_11b).next(); +if(ul.length){ +if(opts.animate){ +ul.slideDown("normal",function(){ +node.state="open"; +opts.onExpand.call(_11a,node); +if(_11c){ +_11c(); +} +}); +}else{ +ul.css("display","block"); +node.state="open"; +opts.onExpand.call(_11a,node); +if(_11c){ +_11c(); +} +} +}else{ +var _11d=$("
                  ").insertAfter(_11b); +_112(_11a,_11d[0],{id:node.id},function(){ +if(_11d.is(":empty")){ +_11d.remove(); +} +if(opts.animate){ +_11d.slideDown("normal",function(){ +node.state="open"; +opts.onExpand.call(_11a,node); +if(_11c){ +_11c(); +} +}); +}else{ +_11d.css("display","block"); +node.state="open"; +opts.onExpand.call(_11a,node); +if(_11c){ +_11c(); +} +} +}); +} +}; +function _11e(_11f,_120){ +var opts=$.data(_11f,"tree").options; +var hit=$(_120).children("span.tree-hit"); +if(hit.length==0){ +return; +} +if(hit.hasClass("tree-collapsed")){ +return; +} +var node=_bf(_11f,_120); +if(opts.onBeforeCollapse.call(_11f,node)==false){ +return; +} +hit.removeClass("tree-expanded tree-expanded-hover").addClass("tree-collapsed"); +hit.next().removeClass("tree-folder-open"); +var ul=$(_120).next(); +if(opts.animate){ +ul.slideUp("normal",function(){ +node.state="closed"; +opts.onCollapse.call(_11f,node); +}); +}else{ +ul.css("display","none"); +node.state="closed"; +opts.onCollapse.call(_11f,node); +} +}; +function _121(_122,_123){ +var hit=$(_123).children("span.tree-hit"); +if(hit.length==0){ +return; +} +if(hit.hasClass("tree-expanded")){ +_11e(_122,_123); +}else{ +_119(_122,_123); +} +}; +function _124(_125,_126){ +var _127=_fd(_125,_126); +if(_126){ +_127.unshift(_bf(_125,_126)); +} +for(var i=0;i<_127.length;i++){ +_119(_125,_127[i].target); +} +}; +function _128(_129,_12a){ +var _12b=[]; +var p=_12c(_129,_12a); +while(p){ +_12b.unshift(p); +p=_12c(_129,p.target); +} +for(var i=0;i<_12b.length;i++){ +_119(_129,_12b[i].target); +} +}; +function _12d(_12e,_12f){ +var c=$(_12e).parent(); +while(c[0].tagName!="BODY"&&c.css("overflow-y")!="auto"){ +c=c.parent(); +} +var n=$(_12f); +var ntop=n.offset().top; +if(c[0].tagName!="BODY"){ +var ctop=c.offset().top; +if(ntopctop+c.outerHeight()-18){ +c.scrollTop(c.scrollTop()+ntop+n.outerHeight()-ctop-c.outerHeight()+18); +} +} +}else{ +c.scrollTop(ntop); +} +}; +function _130(_131,_132){ +var _133=_fd(_131,_132); +if(_132){ +_133.unshift(_bf(_131,_132)); +} +for(var i=0;i<_133.length;i++){ +_11e(_131,_133[i].target); +} +}; +function _134(_135,_136){ +var node=$(_136.parent); +var data=_136.data; +if(!data){ +return; +} +data=$.isArray(data)?data:[data]; +if(!data.length){ +return; +} +var ul; +if(node.length==0){ +ul=$(_135); +}else{ +if(_f9(_135,node[0])){ +var _137=node.find("span.tree-icon"); +_137.removeClass("tree-file").addClass("tree-folder tree-folder-open"); +var hit=$("").insertBefore(_137); +if(hit.prev().length){ +hit.prev().remove(); +} +} +ul=node.next(); +if(!ul.length){ +ul=$("
                    ").insertAfter(node); +} +} +_fe(_135,ul[0],data,true); +_f4(_135,ul.prev()); +}; +function _138(_139,_13a){ +var ref=_13a.before||_13a.after; +var _13b=_12c(_139,ref); +var data=_13a.data; +if(!data){ +return; +} +data=$.isArray(data)?data:[data]; +if(!data.length){ +return; +} +_134(_139,{parent:(_13b?_13b.target:null),data:data}); +var li=$(); +for(var i=0;i").prependTo(node); +node.next().remove(); +} +_105(_13d,_13f); +_f4(_13d,_13f.target); +} +_109(_13d,_13d); +function del(_140){ +var id=$(_140).attr("id"); +var _141=_12c(_13d,_140); +var cc=_141?_141.children:$.data(_13d,"tree").data; +for(var i=0;i=0;i--){ +_164.unshift(node.children[i]); +} +} +} +}; +function _165(_166,_167){ +var opts=$.data(_166,"tree").options; +var node=_bf(_166,_167); +if(opts.onBeforeSelect.call(_166,node)==false){ +return; +} +$(_166).find("div.tree-node-selected").removeClass("tree-node-selected"); +$(_167).addClass("tree-node-selected"); +opts.onSelect.call(_166,node); +}; +function _f9(_168,_169){ +return $(_169).children("span.tree-hit").length==0; +}; +function _16a(_16b,_16c){ +var opts=$.data(_16b,"tree").options; +var node=_bf(_16b,_16c); +if(opts.onBeforeEdit.call(_16b,node)==false){ +return; +} +$(_16c).css("position","relative"); +var nt=$(_16c).find(".tree-title"); +var _16d=nt.outerWidth(); +nt.empty(); +var _16e=$("").appendTo(nt); +_16e.val(node.text).focus(); +_16e.width(_16d+20); +_16e.height(document.compatMode=="CSS1Compat"?(18-(_16e.outerHeight()-_16e.height())):18); +_16e.bind("click",function(e){ +return false; +}).bind("mousedown",function(e){ +e.stopPropagation(); +}).bind("mousemove",function(e){ +e.stopPropagation(); +}).bind("keydown",function(e){ +if(e.keyCode==13){ +_16f(_16b,_16c); +return false; +}else{ +if(e.keyCode==27){ +_173(_16b,_16c); +return false; +} +} +}).bind("blur",function(e){ +e.stopPropagation(); +_16f(_16b,_16c); +}); +}; +function _16f(_170,_171){ +var opts=$.data(_170,"tree").options; +$(_171).css("position",""); +var _172=$(_171).find("input.tree-editor"); +var val=_172.val(); +_172.remove(); +var node=_bf(_170,_171); +node.text=val; +_105(_170,node); +opts.onAfterEdit.call(_170,node); +}; +function _173(_174,_175){ +var opts=$.data(_174,"tree").options; +$(_175).css("position",""); +$(_175).find("input.tree-editor").remove(); +var node=_bf(_174,_175); +_105(_174,node); +opts.onCancelEdit.call(_174,node); +}; +$.fn.tree=function(_176,_177){ +if(typeof _176=="string"){ +return $.fn.tree.methods[_176](this,_177); +} +var _176=_176||{}; +return this.each(function(){ +var _178=$.data(this,"tree"); +var opts; +if(_178){ +opts=$.extend(_178.options,_176); +_178.options=opts; +}else{ +opts=$.extend({},$.fn.tree.defaults,$.fn.tree.parseOptions(this),_176); +$.data(this,"tree",{options:opts,tree:_b4(this),data:[]}); +var data=$.fn.tree.parseData(this); +if(data.length){ +_fe(this,this,data); +} +} +_b7(this); +if(opts.data){ +_fe(this,this,opts.data); +} +_112(this,this); +}); +}; +$.fn.tree.methods={options:function(jq){ +return $.data(jq[0],"tree").options; +},loadData:function(jq,data){ +return jq.each(function(){ +_fe(this,this,data); +}); +},getNode:function(jq,_179){ +return _bf(jq[0],_179); +},getData:function(jq,_17a){ +return _158(jq[0],_17a); +},reload:function(jq,_17b){ +return jq.each(function(){ +if(_17b){ +var node=$(_17b); +var hit=node.children("span.tree-hit"); +hit.removeClass("tree-expanded tree-expanded-hover").addClass("tree-collapsed"); +node.next().remove(); +_119(this,_17b); +}else{ +$(this).empty(); +_112(this,this); +} +}); +},getRoot:function(jq){ +return _145(jq[0]); +},getRoots:function(jq){ +return _148(jq[0]); +},getParent:function(jq,_17c){ +return _12c(jq[0],_17c); +},getChildren:function(jq,_17d){ +return _fd(jq[0],_17d); +},getChecked:function(jq,_17e){ +return _151(jq[0],_17e); +},getSelected:function(jq){ +return _156(jq[0]); +},isLeaf:function(jq,_17f){ +return _f9(jq[0],_17f); +},find:function(jq,id){ +return _15d(jq[0],id); +},select:function(jq,_180){ +return jq.each(function(){ +_165(this,_180); +}); +},check:function(jq,_181){ +return jq.each(function(){ +_e5(this,_181,true); +}); +},uncheck:function(jq,_182){ +return jq.each(function(){ +_e5(this,_182,false); +}); +},collapse:function(jq,_183){ +return jq.each(function(){ +_11e(this,_183); +}); +},expand:function(jq,_184){ +return jq.each(function(){ +_119(this,_184); +}); +},collapseAll:function(jq,_185){ +return jq.each(function(){ +_130(this,_185); +}); +},expandAll:function(jq,_186){ +return jq.each(function(){ +_124(this,_186); +}); +},expandTo:function(jq,_187){ +return jq.each(function(){ +_128(this,_187); +}); +},scrollTo:function(jq,_188){ +return jq.each(function(){ +_12d(this,_188); +}); +},toggle:function(jq,_189){ +return jq.each(function(){ +_121(this,_189); +}); +},append:function(jq,_18a){ +return jq.each(function(){ +_134(this,_18a); +}); +},insert:function(jq,_18b){ +return jq.each(function(){ +_138(this,_18b); +}); +},remove:function(jq,_18c){ +return jq.each(function(){ +_13c(this,_18c); +}); +},pop:function(jq,_18d){ +var node=jq.tree("getData",_18d); +jq.tree("remove",_18d); +return node; +},update:function(jq,_18e){ +return jq.each(function(){ +_105(this,_18e); +}); +},enableDnd:function(jq){ +return jq.each(function(){ +_c4(this); +}); +},disableDnd:function(jq){ +return jq.each(function(){ +_c0(this); +}); +},beginEdit:function(jq,_18f){ +return jq.each(function(){ +_16a(this,_18f); +}); +},endEdit:function(jq,_190){ +return jq.each(function(){ +_16f(this,_190); +}); +},cancelEdit:function(jq,_191){ +return jq.each(function(){ +_173(this,_191); +}); +}}; +$.fn.tree.parseOptions=function(_192){ +var t=$(_192); +return $.extend({},$.parser.parseOptions(_192,["url","method",{checkbox:"boolean",cascadeCheck:"boolean",onlyLeafCheck:"boolean"},{animate:"boolean",lines:"boolean",dnd:"boolean"}])); +}; +$.fn.tree.parseData=function(_193){ +var data=[]; +_194(data,$(_193)); +return data; +function _194(aa,tree){ +tree.children("li").each(function(){ +var node=$(this); +var item=$.extend({},$.parser.parseOptions(this,["id","iconCls","state"]),{checked:(node.attr("checked")?true:undefined)}); +item.text=node.children("span").html(); +if(!item.text){ +item.text=node.html(); +} +var _195=node.children("ul"); +if(_195.length){ +item.children=[]; +_194(item.children,_195); +} +aa.push(item); +}); +}; +}; +var _196=1; +var _197={render:function(_198,ul,data){ +var opts=$.data(_198,"tree").options; +var _199=$(ul).prev("div.tree-node").find("span.tree-indent, span.tree-hit").length; +var cc=_19a(_199,data); +$(ul).append(cc.join("")); +function _19a(_19b,_19c){ +var cc=[]; +for(var i=0;i<_19c.length;i++){ +var item=_19c[i]; +if(item.state!="open"&&item.state!="closed"){ +item.state="open"; +} +item.domId="_easyui_tree_"+_196++; +cc.push("
                  • "); +cc.push("
                    "); +for(var j=0;j<_19b;j++){ +cc.push(""); +} +if(item.state=="closed"){ +cc.push(""); +cc.push(""); +}else{ +if(item.children&&item.children.length){ +cc.push(""); +cc.push(""); +}else{ +cc.push(""); +cc.push(""); +} +} +if(opts.checkbox){ +if((!opts.onlyLeafCheck)||(opts.onlyLeafCheck&&(!item.children||!item.children.length))){ +cc.push(""); +} +} +cc.push(""+opts.formatter.call(_198,item)+""); +cc.push("
                    "); +if(item.children&&item.children.length){ +var tmp=_19a(_19b+1,item.children); +cc.push("
                      "); +cc=cc.concat(tmp); +cc.push("
                    "); +} +cc.push("
                  • "); +} +return cc; +}; +}}; +$.fn.tree.defaults={url:null,method:"post",animate:false,checkbox:false,cascadeCheck:true,onlyLeafCheck:false,lines:false,dnd:false,data:null,formatter:function(node){ +return node.text; +},loader:function(_19d,_19e,_19f){ +var opts=$(this).tree("options"); +if(!opts.url){ +return false; +} +$.ajax({type:opts.method,url:opts.url,data:_19d,dataType:"json",success:function(data){ +_19e(data); +},error:function(){ +_19f.apply(this,arguments); +}}); +},loadFilter:function(data,_1a0){ +return data; +},view:_197,onBeforeLoad:function(node,_1a1){ +},onLoadSuccess:function(node,data){ +},onLoadError:function(){ +},onClick:function(node){ +},onDblClick:function(node){ +},onBeforeExpand:function(node){ +},onExpand:function(node){ +},onBeforeCollapse:function(node){ +},onCollapse:function(node){ +},onBeforeCheck:function(node,_1a2){ +},onCheck:function(node,_1a3){ +},onBeforeSelect:function(node){ +},onSelect:function(node){ +},onContextMenu:function(e,node){ +},onBeforeDrag:function(node){ +},onStartDrag:function(node){ +},onStopDrag:function(node){ +},onDragEnter:function(_1a4,_1a5){ +},onDragOver:function(_1a6,_1a7){ +},onDragLeave:function(_1a8,_1a9){ +},onBeforeDrop:function(_1aa,_1ab,_1ac){ +},onDrop:function(_1ad,_1ae,_1af){ +},onBeforeEdit:function(node){ +},onAfterEdit:function(node){ +},onCancelEdit:function(node){ +}}; +})(jQuery); +(function($){ +function init(_1b0){ +$(_1b0).addClass("progressbar"); +$(_1b0).html("
                    "); +return $(_1b0); +}; +function _1b1(_1b2,_1b3){ +var opts=$.data(_1b2,"progressbar").options; +var bar=$.data(_1b2,"progressbar").bar; +if(_1b3){ +opts.width=_1b3; +} +bar._outerWidth(opts.width)._outerHeight(opts.height); +bar.find("div.progressbar-text").width(bar.width()); +bar.find("div.progressbar-text,div.progressbar-value").css({height:bar.height()+"px",lineHeight:bar.height()+"px"}); +}; +$.fn.progressbar=function(_1b4,_1b5){ +if(typeof _1b4=="string"){ +var _1b6=$.fn.progressbar.methods[_1b4]; +if(_1b6){ +return _1b6(this,_1b5); +} +} +_1b4=_1b4||{}; +return this.each(function(){ +var _1b7=$.data(this,"progressbar"); +if(_1b7){ +$.extend(_1b7.options,_1b4); +}else{ +_1b7=$.data(this,"progressbar",{options:$.extend({},$.fn.progressbar.defaults,$.fn.progressbar.parseOptions(this),_1b4),bar:init(this)}); +} +$(this).progressbar("setValue",_1b7.options.value); +_1b1(this); +}); +}; +$.fn.progressbar.methods={options:function(jq){ +return $.data(jq[0],"progressbar").options; +},resize:function(jq,_1b8){ +return jq.each(function(){ +_1b1(this,_1b8); +}); +},getValue:function(jq){ +return $.data(jq[0],"progressbar").options.value; +},setValue:function(jq,_1b9){ +if(_1b9<0){ +_1b9=0; +} +if(_1b9>100){ +_1b9=100; +} +return jq.each(function(){ +var opts=$.data(this,"progressbar").options; +var text=opts.text.replace(/{value}/,_1b9); +var _1ba=opts.value; +opts.value=_1b9; +$(this).find("div.progressbar-value").width(_1b9+"%"); +$(this).find("div.progressbar-text").html(text); +if(_1ba!=_1b9){ +opts.onChange.call(this,_1b9,_1ba); +} +}); +}}; +$.fn.progressbar.parseOptions=function(_1bb){ +return $.extend({},$.parser.parseOptions(_1bb,["width","height","text",{value:"number"}])); +}; +$.fn.progressbar.defaults={width:"auto",height:22,value:0,text:"{value}%",onChange:function(_1bc,_1bd){ +}}; +})(jQuery); +(function($){ +function init(_1be){ +$(_1be).addClass("tooltip-f"); +}; +function _1bf(_1c0){ +var opts=$.data(_1c0,"tooltip").options; +$(_1c0).unbind(".tooltip").bind(opts.showEvent+".tooltip",function(e){ +_1c7(_1c0,e); +}).bind(opts.hideEvent+".tooltip",function(e){ +_1cd(_1c0,e); +}).bind("mousemove.tooltip",function(e){ +if(opts.trackMouse){ +opts.trackMouseX=e.pageX; +opts.trackMouseY=e.pageY; +_1c1(_1c0); +} +}); +}; +function _1c2(_1c3){ +var _1c4=$.data(_1c3,"tooltip"); +if(_1c4.showTimer){ +clearTimeout(_1c4.showTimer); +_1c4.showTimer=null; +} +if(_1c4.hideTimer){ +clearTimeout(_1c4.hideTimer); +_1c4.hideTimer=null; +} +}; +function _1c1(_1c5){ +var _1c6=$.data(_1c5,"tooltip"); +if(!_1c6||!_1c6.tip){ +return; +} +var opts=_1c6.options; +var tip=_1c6.tip; +if(opts.trackMouse){ +t=$(); +var left=opts.trackMouseX+opts.deltaX; +var top=opts.trackMouseY+opts.deltaY; +}else{ +var t=$(_1c5); +var left=t.offset().left+opts.deltaX; +var top=t.offset().top+opts.deltaY; +} +switch(opts.position){ +case "right": +left+=t._outerWidth()+12+(opts.trackMouse?12:0); +top-=(tip._outerHeight()-t._outerHeight())/2; +break; +case "left": +left-=tip._outerWidth()+12+(opts.trackMouse?12:0); +top-=(tip._outerHeight()-t._outerHeight())/2; +break; +case "top": +left-=(tip._outerWidth()-t._outerWidth())/2; +top-=tip._outerHeight()+12+(opts.trackMouse?12:0); +break; +case "bottom": +left-=(tip._outerWidth()-t._outerWidth())/2; +top+=t._outerHeight()+12+(opts.trackMouse?12:0); +break; +} +if(!$(_1c5).is(":visible")){ +left=-100000; +top=-100000; +} +tip.css({left:left,top:top,zIndex:(opts.zIndex!=undefined?opts.zIndex:($.fn.window?$.fn.window.defaults.zIndex++:""))}); +opts.onPosition.call(_1c5,left,top); +}; +function _1c7(_1c8,e){ +var _1c9=$.data(_1c8,"tooltip"); +var opts=_1c9.options; +var tip=_1c9.tip; +if(!tip){ +tip=$("
                    "+"
                    "+"
                    "+"
                    "+"
                    ").appendTo("body"); +_1c9.tip=tip; +_1ca(_1c8); +} +tip.removeClass("tooltip-top tooltip-bottom tooltip-left tooltip-right").addClass("tooltip-"+opts.position); +_1c2(_1c8); +_1c9.showTimer=setTimeout(function(){ +_1c1(_1c8); +tip.show(); +opts.onShow.call(_1c8,e); +var _1cb=tip.children(".tooltip-arrow-outer"); +var _1cc=tip.children(".tooltip-arrow"); +var bc="border-"+opts.position+"-color"; +_1cb.add(_1cc).css({borderTopColor:"",borderBottomColor:"",borderLeftColor:"",borderRightColor:""}); +_1cb.css(bc,tip.css(bc)); +_1cc.css(bc,tip.css("backgroundColor")); +},opts.showDelay); +}; +function _1cd(_1ce,e){ +var _1cf=$.data(_1ce,"tooltip"); +if(_1cf&&_1cf.tip){ +_1c2(_1ce); +_1cf.hideTimer=setTimeout(function(){ +_1cf.tip.hide(); +_1cf.options.onHide.call(_1ce,e); +},_1cf.options.hideDelay); +} +}; +function _1ca(_1d0,_1d1){ +var _1d2=$.data(_1d0,"tooltip"); +var opts=_1d2.options; +if(_1d1){ +opts.content=_1d1; +} +if(!_1d2.tip){ +return; +} +var cc=typeof opts.content=="function"?opts.content.call(_1d0):opts.content; +_1d2.tip.children(".tooltip-content").html(cc); +opts.onUpdate.call(_1d0,cc); +}; +function _1d3(_1d4){ +var _1d5=$.data(_1d4,"tooltip"); +if(_1d5){ +_1c2(_1d4); +var opts=_1d5.options; +if(_1d5.tip){ +_1d5.tip.remove(); +} +if(opts._title){ +$(_1d4).attr("title",opts._title); +} +$.removeData(_1d4,"tooltip"); +$(_1d4).unbind(".tooltip").removeClass("tooltip-f"); +opts.onDestroy.call(_1d4); +} +}; +$.fn.tooltip=function(_1d6,_1d7){ +if(typeof _1d6=="string"){ +return $.fn.tooltip.methods[_1d6](this,_1d7); +} +_1d6=_1d6||{}; +return this.each(function(){ +var _1d8=$.data(this,"tooltip"); +if(_1d8){ +$.extend(_1d8.options,_1d6); +}else{ +$.data(this,"tooltip",{options:$.extend({},$.fn.tooltip.defaults,$.fn.tooltip.parseOptions(this),_1d6)}); +init(this); +} +_1bf(this); +_1ca(this); +}); +}; +$.fn.tooltip.methods={options:function(jq){ +return $.data(jq[0],"tooltip").options; +},tip:function(jq){ +return $.data(jq[0],"tooltip").tip; +},arrow:function(jq){ +return jq.tooltip("tip").children(".tooltip-arrow-outer,.tooltip-arrow"); +},show:function(jq,e){ +return jq.each(function(){ +_1c7(this,e); +}); +},hide:function(jq,e){ +return jq.each(function(){ +_1cd(this,e); +}); +},update:function(jq,_1d9){ +return jq.each(function(){ +_1ca(this,_1d9); +}); +},reposition:function(jq){ +return jq.each(function(){ +_1c1(this); +}); +},destroy:function(jq){ +return jq.each(function(){ +_1d3(this); +}); +}}; +$.fn.tooltip.parseOptions=function(_1da){ +var t=$(_1da); +var opts=$.extend({},$.parser.parseOptions(_1da,["position","showEvent","hideEvent","content",{deltaX:"number",deltaY:"number",showDelay:"number",hideDelay:"number"}]),{_title:t.attr("title")}); +t.attr("title",""); +if(!opts.content){ +opts.content=opts._title; +} +return opts; +}; +$.fn.tooltip.defaults={position:"bottom",content:null,trackMouse:false,deltaX:0,deltaY:0,showEvent:"mouseenter",hideEvent:"mouseleave",showDelay:200,hideDelay:100,onShow:function(e){ +},onHide:function(e){ +},onUpdate:function(_1db){ +},onPosition:function(left,top){ +},onDestroy:function(){ +}}; +})(jQuery); +(function($){ +$.fn._remove=function(){ +return this.each(function(){ +$(this).remove(); +try{ +this.outerHTML=""; +} +catch(err){ +} +}); +}; +function _1dc(node){ +node._remove(); +}; +function _1dd(_1de,_1df){ +var opts=$.data(_1de,"panel").options; +var _1e0=$.data(_1de,"panel").panel; +var _1e1=_1e0.children("div.panel-header"); +var _1e2=_1e0.children("div.panel-body"); +if(_1df){ +$.extend(opts,{width:_1df.width,height:_1df.height,left:_1df.left,top:_1df.top}); +} +opts.fit?$.extend(opts,_1e0._fit()):_1e0._fit(false); +_1e0.css({left:opts.left,top:opts.top}); +if(!isNaN(opts.width)){ +_1e0._outerWidth(opts.width); +}else{ +_1e0.width("auto"); +} +_1e1.add(_1e2)._outerWidth(_1e0.width()); +if(!isNaN(opts.height)){ +_1e0._outerHeight(opts.height); +_1e2._outerHeight(_1e0.height()-_1e1._outerHeight()); +}else{ +_1e2.height("auto"); +} +_1e0.css("height",""); +opts.onResize.apply(_1de,[opts.width,opts.height]); +$(_1de).find(">div,>form>div").triggerHandler("_resize"); +}; +function _1e3(_1e4,_1e5){ +var opts=$.data(_1e4,"panel").options; +var _1e6=$.data(_1e4,"panel").panel; +if(_1e5){ +if(_1e5.left!=null){ +opts.left=_1e5.left; +} +if(_1e5.top!=null){ +opts.top=_1e5.top; +} +} +_1e6.css({left:opts.left,top:opts.top}); +opts.onMove.apply(_1e4,[opts.left,opts.top]); +}; +function _1e7(_1e8){ +$(_1e8).addClass("panel-body"); +var _1e9=$("
                    ").insertBefore(_1e8); +_1e9[0].appendChild(_1e8); +_1e9.bind("_resize",function(){ +var opts=$.data(_1e8,"panel").options; +if(opts.fit==true){ +_1dd(_1e8); +} +return false; +}); +return _1e9; +}; +function _1ea(_1eb){ +var opts=$.data(_1eb,"panel").options; +var _1ec=$.data(_1eb,"panel").panel; +if(opts.tools&&typeof opts.tools=="string"){ +_1ec.find(">div.panel-header>div.panel-tool .panel-tool-a").appendTo(opts.tools); +} +_1dc(_1ec.children("div.panel-header")); +if(opts.title&&!opts.noheader){ +var _1ed=$("
                    "+opts.title+"
                    ").prependTo(_1ec); +if(opts.iconCls){ +_1ed.find(".panel-title").addClass("panel-with-icon"); +$("
                    ").addClass(opts.iconCls).appendTo(_1ed); +} +var tool=$("
                    ").appendTo(_1ed); +tool.bind("click",function(e){ +e.stopPropagation(); +}); +if(opts.tools){ +if($.isArray(opts.tools)){ +for(var i=0;i").addClass(opts.tools[i].iconCls).appendTo(tool); +if(opts.tools[i].handler){ +t.bind("click",eval(opts.tools[i].handler)); +} +} +}else{ +$(opts.tools).children().each(function(){ +$(this).addClass($(this).attr("iconCls")).addClass("panel-tool-a").appendTo(tool); +}); +} +} +if(opts.collapsible){ +$("").appendTo(tool).bind("click",function(){ +if(opts.collapsed==true){ +_208(_1eb,true); +}else{ +_1fd(_1eb,true); +} +return false; +}); +} +if(opts.minimizable){ +$("").appendTo(tool).bind("click",function(){ +_20e(_1eb); +return false; +}); +} +if(opts.maximizable){ +$("").appendTo(tool).bind("click",function(){ +if(opts.maximized==true){ +_211(_1eb); +}else{ +_1fc(_1eb); +} +return false; +}); +} +if(opts.closable){ +$("").appendTo(tool).bind("click",function(){ +_1ee(_1eb); +return false; +}); +} +_1ec.children("div.panel-body").removeClass("panel-body-noheader"); +}else{ +_1ec.children("div.panel-body").addClass("panel-body-noheader"); +} +}; +function _1ef(_1f0){ +var _1f1=$.data(_1f0,"panel"); +var opts=_1f1.options; +if(opts.href){ +if(!_1f1.isLoaded||!opts.cache){ +if(opts.onBeforeLoad.call(_1f0)==false){ +return; +} +_1f1.isLoaded=false; +_1f2(_1f0); +if(opts.loadingMessage){ +$(_1f0).html($("
                    ").html(opts.loadingMessage)); +} +$.ajax({url:opts.href,cache:false,dataType:"html",success:function(data){ +_1f3(opts.extractor.call(_1f0,data)); +opts.onLoad.apply(_1f0,arguments); +_1f1.isLoaded=true; +}}); +} +}else{ +if(opts.content){ +if(!_1f1.isLoaded){ +_1f2(_1f0); +_1f3(opts.content); +_1f1.isLoaded=true; +} +} +} +function _1f3(_1f4){ +$(_1f0).html(_1f4); +if($.parser){ +$.parser.parse($(_1f0)); +} +}; +}; +function _1f2(_1f5){ +var t=$(_1f5); +t.find(".combo-f").each(function(){ +$(this).combo("destroy"); +}); +t.find(".m-btn").each(function(){ +$(this).menubutton("destroy"); +}); +t.find(".s-btn").each(function(){ +$(this).splitbutton("destroy"); +}); +t.find(".tooltip-f").each(function(){ +$(this).tooltip("destroy"); +}); +}; +function _1f6(_1f7){ +$(_1f7).find("div.panel:visible,div.accordion:visible,div.tabs-container:visible,div.layout:visible").each(function(){ +$(this).triggerHandler("_resize",[true]); +}); +}; +function _1f8(_1f9,_1fa){ +var opts=$.data(_1f9,"panel").options; +var _1fb=$.data(_1f9,"panel").panel; +if(_1fa!=true){ +if(opts.onBeforeOpen.call(_1f9)==false){ +return; +} +} +_1fb.show(); +opts.closed=false; +opts.minimized=false; +var tool=_1fb.children("div.panel-header").find("a.panel-tool-restore"); +if(tool.length){ +opts.maximized=true; +} +opts.onOpen.call(_1f9); +if(opts.maximized==true){ +opts.maximized=false; +_1fc(_1f9); +} +if(opts.collapsed==true){ +opts.collapsed=false; +_1fd(_1f9); +} +if(!opts.collapsed){ +_1ef(_1f9); +_1f6(_1f9); +} +}; +function _1ee(_1fe,_1ff){ +var opts=$.data(_1fe,"panel").options; +var _200=$.data(_1fe,"panel").panel; +if(_1ff!=true){ +if(opts.onBeforeClose.call(_1fe)==false){ +return; +} +} +_200._fit(false); +_200.hide(); +opts.closed=true; +opts.onClose.call(_1fe); +}; +function _201(_202,_203){ +var opts=$.data(_202,"panel").options; +var _204=$.data(_202,"panel").panel; +if(_203!=true){ +if(opts.onBeforeDestroy.call(_202)==false){ +return; +} +} +_1f2(_202); +_1dc(_204); +opts.onDestroy.call(_202); +}; +function _1fd(_205,_206){ +var opts=$.data(_205,"panel").options; +var _207=$.data(_205,"panel").panel; +var body=_207.children("div.panel-body"); +var tool=_207.children("div.panel-header").find("a.panel-tool-collapse"); +if(opts.collapsed==true){ +return; +} +body.stop(true,true); +if(opts.onBeforeCollapse.call(_205)==false){ +return; +} +tool.addClass("panel-tool-expand"); +if(_206==true){ +body.slideUp("normal",function(){ +opts.collapsed=true; +opts.onCollapse.call(_205); +}); +}else{ +body.hide(); +opts.collapsed=true; +opts.onCollapse.call(_205); +} +}; +function _208(_209,_20a){ +var opts=$.data(_209,"panel").options; +var _20b=$.data(_209,"panel").panel; +var body=_20b.children("div.panel-body"); +var tool=_20b.children("div.panel-header").find("a.panel-tool-collapse"); +if(opts.collapsed==false){ +return; +} +body.stop(true,true); +if(opts.onBeforeExpand.call(_209)==false){ +return; +} +tool.removeClass("panel-tool-expand"); +if(_20a==true){ +body.slideDown("normal",function(){ +opts.collapsed=false; +opts.onExpand.call(_209); +_1ef(_209); +_1f6(_209); +}); +}else{ +body.show(); +opts.collapsed=false; +opts.onExpand.call(_209); +_1ef(_209); +_1f6(_209); +} +}; +function _1fc(_20c){ +var opts=$.data(_20c,"panel").options; +var _20d=$.data(_20c,"panel").panel; +var tool=_20d.children("div.panel-header").find("a.panel-tool-max"); +if(opts.maximized==true){ +return; +} +tool.addClass("panel-tool-restore"); +if(!$.data(_20c,"panel").original){ +$.data(_20c,"panel").original={width:opts.width,height:opts.height,left:opts.left,top:opts.top,fit:opts.fit}; +} +opts.left=0; +opts.top=0; +opts.fit=true; +_1dd(_20c); +opts.minimized=false; +opts.maximized=true; +opts.onMaximize.call(_20c); +}; +function _20e(_20f){ +var opts=$.data(_20f,"panel").options; +var _210=$.data(_20f,"panel").panel; +_210._fit(false); +_210.hide(); +opts.minimized=true; +opts.maximized=false; +opts.onMinimize.call(_20f); +}; +function _211(_212){ +var opts=$.data(_212,"panel").options; +var _213=$.data(_212,"panel").panel; +var tool=_213.children("div.panel-header").find("a.panel-tool-max"); +if(opts.maximized==false){ +return; +} +_213.show(); +tool.removeClass("panel-tool-restore"); +$.extend(opts,$.data(_212,"panel").original); +_1dd(_212); +opts.minimized=false; +opts.maximized=false; +$.data(_212,"panel").original=null; +opts.onRestore.call(_212); +}; +function _214(_215){ +var opts=$.data(_215,"panel").options; +var _216=$.data(_215,"panel").panel; +var _217=$(_215).panel("header"); +var body=$(_215).panel("body"); +_216.css(opts.style); +_216.addClass(opts.cls); +if(opts.border){ +_217.removeClass("panel-header-noborder"); +body.removeClass("panel-body-noborder"); +}else{ +_217.addClass("panel-header-noborder"); +body.addClass("panel-body-noborder"); +} +_217.addClass(opts.headerCls); +body.addClass(opts.bodyCls); +if(opts.id){ +$(_215).attr("id",opts.id); +}else{ +$(_215).attr("id",""); +} +}; +function _218(_219,_21a){ +$.data(_219,"panel").options.title=_21a; +$(_219).panel("header").find("div.panel-title").html(_21a); +}; +var TO=false; +var _21b=true; +$(window).unbind(".panel").bind("resize.panel",function(){ +if(!_21b){ +return; +} +if(TO!==false){ +clearTimeout(TO); +} +TO=setTimeout(function(){ +_21b=false; +var _21c=$("body.layout"); +if(_21c.length){ +_21c.layout("resize"); +}else{ +$("body").children("div.panel,div.accordion,div.tabs-container,div.layout").triggerHandler("_resize"); +} +_21b=true; +TO=false; +},200); +}); +$.fn.panel=function(_21d,_21e){ +if(typeof _21d=="string"){ +return $.fn.panel.methods[_21d](this,_21e); +} +_21d=_21d||{}; +return this.each(function(){ +var _21f=$.data(this,"panel"); +var opts; +if(_21f){ +opts=$.extend(_21f.options,_21d); +_21f.isLoaded=false; +}else{ +opts=$.extend({},$.fn.panel.defaults,$.fn.panel.parseOptions(this),_21d); +$(this).attr("title",""); +_21f=$.data(this,"panel",{options:opts,panel:_1e7(this),isLoaded:false}); +} +_1ea(this); +_214(this); +if(opts.doSize==true){ +_21f.panel.css("display","block"); +_1dd(this); +} +if(opts.closed==true||opts.minimized==true){ +_21f.panel.hide(); +}else{ +_1f8(this); +} +}); +}; +$.fn.panel.methods={options:function(jq){ +return $.data(jq[0],"panel").options; +},panel:function(jq){ +return $.data(jq[0],"panel").panel; +},header:function(jq){ +return $.data(jq[0],"panel").panel.find(">div.panel-header"); +},body:function(jq){ +return $.data(jq[0],"panel").panel.find(">div.panel-body"); +},setTitle:function(jq,_220){ +return jq.each(function(){ +_218(this,_220); +}); +},open:function(jq,_221){ +return jq.each(function(){ +_1f8(this,_221); +}); +},close:function(jq,_222){ +return jq.each(function(){ +_1ee(this,_222); +}); +},destroy:function(jq,_223){ +return jq.each(function(){ +_201(this,_223); +}); +},refresh:function(jq,href){ +return jq.each(function(){ +$.data(this,"panel").isLoaded=false; +if(href){ +$.data(this,"panel").options.href=href; +} +_1ef(this); +}); +},resize:function(jq,_224){ +return jq.each(function(){ +_1dd(this,_224); +}); +},move:function(jq,_225){ +return jq.each(function(){ +_1e3(this,_225); +}); +},maximize:function(jq){ +return jq.each(function(){ +_1fc(this); +}); +},minimize:function(jq){ +return jq.each(function(){ +_20e(this); +}); +},restore:function(jq){ +return jq.each(function(){ +_211(this); +}); +},collapse:function(jq,_226){ +return jq.each(function(){ +_1fd(this,_226); +}); +},expand:function(jq,_227){ +return jq.each(function(){ +_208(this,_227); +}); +}}; +$.fn.panel.parseOptions=function(_228){ +var t=$(_228); +return $.extend({},$.parser.parseOptions(_228,["id","width","height","left","top","title","iconCls","cls","headerCls","bodyCls","tools","href",{cache:"boolean",fit:"boolean",border:"boolean",noheader:"boolean"},{collapsible:"boolean",minimizable:"boolean",maximizable:"boolean"},{closable:"boolean",collapsed:"boolean",minimized:"boolean",maximized:"boolean",closed:"boolean"}]),{loadingMessage:(t.attr("loadingMessage")!=undefined?t.attr("loadingMessage"):undefined)}); +}; +$.fn.panel.defaults={id:null,title:null,iconCls:null,width:"auto",height:"auto",left:null,top:null,cls:null,headerCls:null,bodyCls:null,style:{},href:null,cache:true,fit:false,border:true,doSize:true,noheader:false,content:null,collapsible:false,minimizable:false,maximizable:false,closable:false,collapsed:false,minimized:false,maximized:false,closed:false,tools:null,href:null,loadingMessage:"Loading...",extractor:function(data){ +var _229=/]*>((.|[\n\r])*)<\/body>/im; +var _22a=_229.exec(data); +if(_22a){ +return _22a[1]; +}else{ +return data; +} +},onBeforeLoad:function(){ +},onLoad:function(){ +},onBeforeOpen:function(){ +},onOpen:function(){ +},onBeforeClose:function(){ +},onClose:function(){ +},onBeforeDestroy:function(){ +},onDestroy:function(){ +},onResize:function(_22b,_22c){ +},onMove:function(left,top){ +},onMaximize:function(){ +},onRestore:function(){ +},onMinimize:function(){ +},onBeforeCollapse:function(){ +},onBeforeExpand:function(){ +},onCollapse:function(){ +},onExpand:function(){ +}}; +})(jQuery); +(function($){ +function _22d(_22e,_22f){ +var opts=$.data(_22e,"window").options; +if(_22f){ +$.extend(opts,_22f); +} +$(_22e).panel("resize",opts); +}; +function _230(_231,_232){ +var _233=$.data(_231,"window"); +if(_232){ +if(_232.left!=null){ +_233.options.left=_232.left; +} +if(_232.top!=null){ +_233.options.top=_232.top; +} +} +$(_231).panel("move",_233.options); +if(_233.shadow){ +_233.shadow.css({left:_233.options.left,top:_233.options.top}); +} +}; +function _234(_235,_236){ +var _237=$.data(_235,"window"); +var opts=_237.options; +var _238=opts.width; +if(isNaN(_238)){ +_238=_237.window._outerWidth(); +} +if(opts.inline){ +var _239=_237.window.parent(); +opts.left=(_239.width()-_238)/2+_239.scrollLeft(); +}else{ +opts.left=($(window)._outerWidth()-_238)/2+$(document).scrollLeft(); +} +if(_236){ +_230(_235); +} +}; +function _23a(_23b,_23c){ +var _23d=$.data(_23b,"window"); +var opts=_23d.options; +var _23e=opts.height; +if(isNaN(_23e)){ +_23e=_23d.window._outerHeight(); +} +if(opts.inline){ +var _23f=_23d.window.parent(); +opts.top=(_23f.height()-_23e)/2+_23f.scrollTop(); +}else{ +opts.top=($(window)._outerHeight()-_23e)/2+$(document).scrollTop(); +} +if(_23c){ +_230(_23b); +} +}; +function _240(_241){ +var _242=$.data(_241,"window"); +var win=$(_241).panel($.extend({},_242.options,{border:false,doSize:true,closed:true,cls:"window",headerCls:"window-header",bodyCls:"window-body "+(_242.options.noheader?"window-body-noheader":""),onBeforeDestroy:function(){ +if(_242.options.onBeforeDestroy.call(_241)==false){ +return false; +} +if(_242.shadow){ +_242.shadow.remove(); +} +if(_242.mask){ +_242.mask.remove(); +} +},onClose:function(){ +if(_242.shadow){ +_242.shadow.hide(); +} +if(_242.mask){ +_242.mask.hide(); +} +_242.options.onClose.call(_241); +},onOpen:function(){ +if(_242.mask){ +_242.mask.css({display:"block",zIndex:$.fn.window.defaults.zIndex++}); +} +if(_242.shadow){ +_242.shadow.css({display:"block",zIndex:$.fn.window.defaults.zIndex++,left:_242.options.left,top:_242.options.top,width:_242.window._outerWidth(),height:_242.window._outerHeight()}); +} +_242.window.css("z-index",$.fn.window.defaults.zIndex++); +_242.options.onOpen.call(_241); +},onResize:function(_243,_244){ +var opts=$(this).panel("options"); +$.extend(_242.options,{width:opts.width,height:opts.height,left:opts.left,top:opts.top}); +if(_242.shadow){ +_242.shadow.css({left:_242.options.left,top:_242.options.top,width:_242.window._outerWidth(),height:_242.window._outerHeight()}); +} +_242.options.onResize.call(_241,_243,_244); +},onMinimize:function(){ +if(_242.shadow){ +_242.shadow.hide(); +} +if(_242.mask){ +_242.mask.hide(); +} +_242.options.onMinimize.call(_241); +},onBeforeCollapse:function(){ +if(_242.options.onBeforeCollapse.call(_241)==false){ +return false; +} +if(_242.shadow){ +_242.shadow.hide(); +} +},onExpand:function(){ +if(_242.shadow){ +_242.shadow.show(); +} +_242.options.onExpand.call(_241); +}})); +_242.window=win.panel("panel"); +if(_242.mask){ +_242.mask.remove(); +} +if(_242.options.modal==true){ +_242.mask=$("
                    ").insertAfter(_242.window); +_242.mask.css({width:(_242.options.inline?_242.mask.parent().width():_245().width),height:(_242.options.inline?_242.mask.parent().height():_245().height),display:"none"}); +} +if(_242.shadow){ +_242.shadow.remove(); +} +if(_242.options.shadow==true){ +_242.shadow=$("
                    ").insertAfter(_242.window); +_242.shadow.css({display:"none"}); +} +if(_242.options.left==null){ +_234(_241); +} +if(_242.options.top==null){ +_23a(_241); +} +_230(_241); +if(_242.options.closed==false){ +win.window("open"); +} +}; +function _246(_247){ +var _248=$.data(_247,"window"); +_248.window.draggable({handle:">div.panel-header>div.panel-title",disabled:_248.options.draggable==false,onStartDrag:function(e){ +if(_248.mask){ +_248.mask.css("z-index",$.fn.window.defaults.zIndex++); +} +if(_248.shadow){ +_248.shadow.css("z-index",$.fn.window.defaults.zIndex++); +} +_248.window.css("z-index",$.fn.window.defaults.zIndex++); +if(!_248.proxy){ +_248.proxy=$("
                    ").insertAfter(_248.window); +} +_248.proxy.css({display:"none",zIndex:$.fn.window.defaults.zIndex++,left:e.data.left,top:e.data.top}); +_248.proxy._outerWidth(_248.window._outerWidth()); +_248.proxy._outerHeight(_248.window._outerHeight()); +setTimeout(function(){ +if(_248.proxy){ +_248.proxy.show(); +} +},500); +},onDrag:function(e){ +_248.proxy.css({display:"block",left:e.data.left,top:e.data.top}); +return false; +},onStopDrag:function(e){ +_248.options.left=e.data.left; +_248.options.top=e.data.top; +$(_247).window("move"); +_248.proxy.remove(); +_248.proxy=null; +}}); +_248.window.resizable({disabled:_248.options.resizable==false,onStartResize:function(e){ +_248.pmask=$("
                    ").insertAfter(_248.window); +_248.pmask.css({zIndex:$.fn.window.defaults.zIndex++,left:e.data.left,top:e.data.top,width:_248.window._outerWidth(),height:_248.window._outerHeight()}); +if(!_248.proxy){ +_248.proxy=$("
                    ").insertAfter(_248.window); +} +_248.proxy.css({zIndex:$.fn.window.defaults.zIndex++,left:e.data.left,top:e.data.top}); +_248.proxy._outerWidth(e.data.width); +_248.proxy._outerHeight(e.data.height); +},onResize:function(e){ +_248.proxy.css({left:e.data.left,top:e.data.top}); +_248.proxy._outerWidth(e.data.width); +_248.proxy._outerHeight(e.data.height); +return false; +},onStopResize:function(e){ +$.extend(_248.options,{left:e.data.left,top:e.data.top,width:e.data.width,height:e.data.height}); +_22d(_247); +_248.pmask.remove(); +_248.pmask=null; +_248.proxy.remove(); +_248.proxy=null; +}}); +}; +function _245(){ +if(document.compatMode=="BackCompat"){ +return {width:Math.max(document.body.scrollWidth,document.body.clientWidth),height:Math.max(document.body.scrollHeight,document.body.clientHeight)}; +}else{ +return {width:Math.max(document.documentElement.scrollWidth,document.documentElement.clientWidth),height:Math.max(document.documentElement.scrollHeight,document.documentElement.clientHeight)}; +} +}; +$(window).resize(function(){ +$("body>div.window-mask").css({width:$(window)._outerWidth(),height:$(window)._outerHeight()}); +setTimeout(function(){ +$("body>div.window-mask").css({width:_245().width,height:_245().height}); +},50); +}); +$.fn.window=function(_249,_24a){ +if(typeof _249=="string"){ +var _24b=$.fn.window.methods[_249]; +if(_24b){ +return _24b(this,_24a); +}else{ +return this.panel(_249,_24a); +} +} +_249=_249||{}; +return this.each(function(){ +var _24c=$.data(this,"window"); +if(_24c){ +$.extend(_24c.options,_249); +}else{ +_24c=$.data(this,"window",{options:$.extend({},$.fn.window.defaults,$.fn.window.parseOptions(this),_249)}); +if(!_24c.options.inline){ +document.body.appendChild(this); +} +} +_240(this); +_246(this); +}); +}; +$.fn.window.methods={options:function(jq){ +var _24d=jq.panel("options"); +var _24e=$.data(jq[0],"window").options; +return $.extend(_24e,{closed:_24d.closed,collapsed:_24d.collapsed,minimized:_24d.minimized,maximized:_24d.maximized}); +},window:function(jq){ +return $.data(jq[0],"window").window; +},resize:function(jq,_24f){ +return jq.each(function(){ +_22d(this,_24f); +}); +},move:function(jq,_250){ +return jq.each(function(){ +_230(this,_250); +}); +},hcenter:function(jq){ +return jq.each(function(){ +_234(this,true); +}); +},vcenter:function(jq){ +return jq.each(function(){ +_23a(this,true); +}); +},center:function(jq){ +return jq.each(function(){ +_234(this); +_23a(this); +_230(this); +}); +}}; +$.fn.window.parseOptions=function(_251){ +return $.extend({},$.fn.panel.parseOptions(_251),$.parser.parseOptions(_251,[{draggable:"boolean",resizable:"boolean",shadow:"boolean",modal:"boolean",inline:"boolean"}])); +}; +$.fn.window.defaults=$.extend({},$.fn.panel.defaults,{zIndex:9000,draggable:true,resizable:true,shadow:true,modal:false,inline:false,title:"New Window",collapsible:true,minimizable:true,maximizable:true,closable:true,closed:false}); +})(jQuery); +(function($){ +function _252(_253){ +var cp=document.createElement("div"); +while(_253.firstChild){ +cp.appendChild(_253.firstChild); +} +_253.appendChild(cp); +var _254=$(cp); +_254.attr("style",$(_253).attr("style")); +$(_253).removeAttr("style").css("overflow","hidden"); +_254.panel({border:false,doSize:false,bodyCls:"dialog-content"}); +return _254; +}; +function _255(_256){ +var opts=$.data(_256,"dialog").options; +var _257=$.data(_256,"dialog").contentPanel; +if(opts.toolbar){ +if($.isArray(opts.toolbar)){ +$(_256).find("div.dialog-toolbar").remove(); +var _258=$("
                    ").prependTo(_256); +var tr=_258.find("tr"); +for(var i=0;i
                    ").appendTo(tr); +}else{ +var td=$("").appendTo(tr); +var tool=$("").appendTo(td); +tool[0].onclick=eval(btn.handler||function(){ +}); +tool.linkbutton($.extend({},btn,{plain:true})); +} +} +}else{ +$(opts.toolbar).addClass("dialog-toolbar").prependTo(_256); +$(opts.toolbar).show(); +} +}else{ +$(_256).find("div.dialog-toolbar").remove(); +} +if(opts.buttons){ +if($.isArray(opts.buttons)){ +$(_256).find("div.dialog-button").remove(); +var _259=$("
                    ").appendTo(_256); +for(var i=0;i").appendTo(_259); +if(p.handler){ +_25a[0].onclick=p.handler; +} +_25a.linkbutton(p); +} +}else{ +$(opts.buttons).addClass("dialog-button").appendTo(_256); +$(opts.buttons).show(); +} +}else{ +$(_256).find("div.dialog-button").remove(); +} +var _25b=opts.href; +var _25c=opts.content; +opts.href=null; +opts.content=null; +_257.panel({closed:opts.closed,cache:opts.cache,href:_25b,content:_25c,onLoad:function(){ +if(opts.height=="auto"){ +$(_256).window("resize"); +} +opts.onLoad.apply(_256,arguments); +}}); +$(_256).window($.extend({},opts,{onOpen:function(){ +if(_257.panel("options").closed){ +_257.panel("open"); +} +if(opts.onOpen){ +opts.onOpen.call(_256); +} +},onResize:function(_25d,_25e){ +var _25f=$(_256); +_257.panel("panel").show(); +_257.panel("resize",{width:_25f.width(),height:(_25e=="auto")?"auto":_25f.height()-_25f.children("div.dialog-toolbar")._outerHeight()-_25f.children("div.dialog-button")._outerHeight()}); +if(opts.onResize){ +opts.onResize.call(_256,_25d,_25e); +} +}})); +opts.href=_25b; +opts.content=_25c; +}; +function _260(_261,href){ +var _262=$.data(_261,"dialog").contentPanel; +_262.panel("refresh",href); +}; +$.fn.dialog=function(_263,_264){ +if(typeof _263=="string"){ +var _265=$.fn.dialog.methods[_263]; +if(_265){ +return _265(this,_264); +}else{ +return this.window(_263,_264); +} +} +_263=_263||{}; +return this.each(function(){ +var _266=$.data(this,"dialog"); +if(_266){ +$.extend(_266.options,_263); +}else{ +$.data(this,"dialog",{options:$.extend({},$.fn.dialog.defaults,$.fn.dialog.parseOptions(this),_263),contentPanel:_252(this)}); +} +_255(this); +}); +}; +$.fn.dialog.methods={options:function(jq){ +var _267=$.data(jq[0],"dialog").options; +var _268=jq.panel("options"); +$.extend(_267,{closed:_268.closed,collapsed:_268.collapsed,minimized:_268.minimized,maximized:_268.maximized}); +var _269=$.data(jq[0],"dialog").contentPanel; +return _267; +},dialog:function(jq){ +return jq.window("window"); +},refresh:function(jq,href){ +return jq.each(function(){ +_260(this,href); +}); +}}; +$.fn.dialog.parseOptions=function(_26a){ +return $.extend({},$.fn.window.parseOptions(_26a),$.parser.parseOptions(_26a,["toolbar","buttons"])); +}; +$.fn.dialog.defaults=$.extend({},$.fn.window.defaults,{title:"New Dialog",collapsible:false,minimizable:false,maximizable:false,resizable:false,toolbar:null,buttons:null}); +})(jQuery); +(function($){ +function show(el,type,_26b,_26c){ +var win=$(el).window("window"); +if(!win){ +return; +} +switch(type){ +case null: +win.show(); +break; +case "slide": +win.slideDown(_26b); +break; +case "fade": +win.fadeIn(_26b); +break; +case "show": +win.show(_26b); +break; +} +var _26d=null; +if(_26c>0){ +_26d=setTimeout(function(){ +hide(el,type,_26b); +},_26c); +} +win.hover(function(){ +if(_26d){ +clearTimeout(_26d); +} +},function(){ +if(_26c>0){ +_26d=setTimeout(function(){ +hide(el,type,_26b); +},_26c); +} +}); +}; +function hide(el,type,_26e){ +if(el.locked==true){ +return; +} +el.locked=true; +var win=$(el).window("window"); +if(!win){ +return; +} +switch(type){ +case null: +win.hide(); +break; +case "slide": +win.slideUp(_26e); +break; +case "fade": +win.fadeOut(_26e); +break; +case "show": +win.hide(_26e); +break; +} +setTimeout(function(){ +$(el).window("destroy"); +},_26e); +}; +function _26f(_270){ +var opts=$.extend({},$.fn.window.defaults,{collapsible:false,minimizable:false,maximizable:false,shadow:false,draggable:false,resizable:false,closed:true,style:{left:"",top:"",right:0,zIndex:$.fn.window.defaults.zIndex++,bottom:-document.body.scrollTop-document.documentElement.scrollTop},onBeforeOpen:function(){ +show(this,opts.showType,opts.showSpeed,opts.timeout); +return false; +},onBeforeClose:function(){ +hide(this,opts.showType,opts.showSpeed); +return false; +}},{title:"",width:250,height:100,showType:"slide",showSpeed:600,msg:"",timeout:4000},_270); +opts.style.zIndex=$.fn.window.defaults.zIndex++; +var win=$("
                    ").html(opts.msg).appendTo("body"); +win.window(opts); +win.window("window").css(opts.style); +win.window("open"); +return win; +}; +function _271(_272,_273,_274){ +var win=$("
                    ").appendTo("body"); +win.append(_273); +if(_274){ +var tb=$("
                    ").appendTo(win); +for(var _275 in _274){ +$("").attr("href","javascript:void(0)").text(_275).css("margin-left",10).bind("click",eval(_274[_275])).appendTo(tb).linkbutton(); +} +} +win.window({title:_272,noheader:(_272?false:true),width:300,height:"auto",modal:true,collapsible:false,minimizable:false,maximizable:false,resizable:false,onClose:function(){ +setTimeout(function(){ +win.window("destroy"); +},100); +}}); +win.window("window").addClass("messager-window"); +win.children("div.messager-button").children("a:first").focus(); +return win; +}; +$.messager={show:function(_276){ +return _26f(_276); +},alert:function(_277,msg,icon,fn){ +var _278="
                    "+msg+"
                    "; +switch(icon){ +case "error": +_278="
                    "+_278; +break; +case "info": +_278="
                    "+_278; +break; +case "question": +_278="
                    "+_278; +break; +case "warning": +_278="
                    "+_278; +break; +} +_278+="
                    "; +var _279={}; +_279[$.messager.defaults.ok]=function(){ +win.window("close"); +if(fn){ +fn(); +return false; +} +}; +var win=_271(_277,_278,_279); +return win; +},confirm:function(_27a,msg,fn){ +var _27b="
                    "+"
                    "+msg+"
                    "+"
                    "; +var _27c={}; +_27c[$.messager.defaults.ok]=function(){ +win.window("close"); +if(fn){ +fn(true); +return false; +} +}; +_27c[$.messager.defaults.cancel]=function(){ +win.window("close"); +if(fn){ +fn(false); +return false; +} +}; +var win=_271(_27a,_27b,_27c); +return win; +},prompt:function(_27d,msg,fn){ +var _27e="
                    "+"
                    "+msg+"
                    "+"
                    "+"
                    "+"
                    "; +var _27f={}; +_27f[$.messager.defaults.ok]=function(){ +win.window("close"); +if(fn){ +fn($(".messager-input",win).val()); +return false; +} +}; +_27f[$.messager.defaults.cancel]=function(){ +win.window("close"); +if(fn){ +fn(); +return false; +} +}; +var win=_271(_27d,_27e,_27f); +win.children("input.messager-input").focus(); +return win; +},progress:function(_280){ +var _281={bar:function(){ +return $("body>div.messager-window").find("div.messager-p-bar"); +},close:function(){ +var win=$("body>div.messager-window>div.messager-body:has(div.messager-progress)"); +if(win.length){ +win.window("close"); +} +}}; +if(typeof _280=="string"){ +var _282=_281[_280]; +return _282(); +} +var opts=$.extend({title:"",msg:"",text:undefined,interval:300},_280||{}); +var _283="
                    "; +var win=_271(opts.title,_283,null); +win.find("div.messager-p-msg").html(opts.msg); +var bar=win.find("div.messager-p-bar"); +bar.progressbar({text:opts.text}); +win.window({closable:false,onClose:function(){ +if(this.timer){ +clearInterval(this.timer); +} +$(this).window("destroy"); +}}); +if(opts.interval){ +win[0].timer=setInterval(function(){ +var v=bar.progressbar("getValue"); +v+=10; +if(v>100){ +v=0; +} +bar.progressbar("setValue",v); +},opts.interval); +} +return win; +}}; +$.messager.defaults={ok:"Ok",cancel:"Cancel"}; +})(jQuery); +(function($){ +function _284(_285){ +var _286=$.data(_285,"accordion"); +var opts=_286.options; +var _287=_286.panels; +var cc=$(_285); +opts.fit?$.extend(opts,cc._fit()):cc._fit(false); +if(!isNaN(opts.width)){ +cc._outerWidth(opts.width); +}else{ +cc.css("width",""); +} +var _288=0; +var _289="auto"; +var _28a=cc.find(">div.panel>div.accordion-header"); +if(_28a.length){ +_288=$(_28a[0]).css("height","")._outerHeight(); +} +if(!isNaN(opts.height)){ +cc._outerHeight(opts.height); +_289=cc.height()-_288*_28a.length; +}else{ +cc.css("height",""); +} +_28b(true,_289-_28b(false)+1); +function _28b(_28c,_28d){ +var _28e=0; +for(var i=0;i<_287.length;i++){ +var p=_287[i]; +var h=p.panel("header")._outerHeight(_288); +if(p.panel("options").collapsible==_28c){ +var _28f=isNaN(_28d)?undefined:(_28d+_288*h.length); +p.panel("resize",{width:cc.width(),height:(_28c?_28f:undefined)}); +_28e+=p.panel("panel").outerHeight()-_288; +} +} +return _28e; +}; +}; +function _290(_291,_292,_293,all){ +var _294=$.data(_291,"accordion").panels; +var pp=[]; +for(var i=0;i<_294.length;i++){ +var p=_294[i]; +if(_292){ +if(p.panel("options")[_292]==_293){ +pp.push(p); +} +}else{ +if(p[0]==$(_293)[0]){ +return i; +} +} +} +if(_292){ +return all?pp:(pp.length?pp[0]:null); +}else{ +return -1; +} +}; +function _295(_296){ +return _290(_296,"collapsed",false,true); +}; +function _297(_298){ +var pp=_295(_298); +return pp.length?pp[0]:null; +}; +function _299(_29a,_29b){ +return _290(_29a,null,_29b); +}; +function _29c(_29d,_29e){ +var _29f=$.data(_29d,"accordion").panels; +if(typeof _29e=="number"){ +if(_29e<0||_29e>=_29f.length){ +return null; +}else{ +return _29f[_29e]; +} +} +return _290(_29d,"title",_29e); +}; +function _2a0(_2a1){ +var opts=$.data(_2a1,"accordion").options; +var cc=$(_2a1); +if(opts.border){ +cc.removeClass("accordion-noborder"); +}else{ +cc.addClass("accordion-noborder"); +} +}; +function init(_2a2){ +var _2a3=$.data(_2a2,"accordion"); +var cc=$(_2a2); +cc.addClass("accordion"); +_2a3.panels=[]; +cc.children("div").each(function(){ +var opts=$.extend({},$.parser.parseOptions(this),{selected:($(this).attr("selected")?true:undefined)}); +var pp=$(this); +_2a3.panels.push(pp); +_2a5(_2a2,pp,opts); +}); +cc.bind("_resize",function(e,_2a4){ +var opts=$.data(_2a2,"accordion").options; +if(opts.fit==true||_2a4){ +_284(_2a2); +} +return false; +}); +}; +function _2a5(_2a6,pp,_2a7){ +var opts=$.data(_2a6,"accordion").options; +pp.panel($.extend({},{collapsible:true,minimizable:false,maximizable:false,closable:false,doSize:false,collapsed:true,headerCls:"accordion-header",bodyCls:"accordion-body"},_2a7,{onBeforeExpand:function(){ +if(_2a7.onBeforeExpand){ +if(_2a7.onBeforeExpand.call(this)==false){ +return false; +} +} +if(!opts.multiple){ +var all=$.grep(_295(_2a6),function(p){ +return p.panel("options").collapsible; +}); +for(var i=0;i").addClass("accordion-collapse accordion-expand").appendTo(tool); +t.bind("click",function(){ +var _2ab=_299(_2a6,pp); +if(pp.panel("options").collapsed){ +_2ac(_2a6,_2ab); +}else{ +_2b0(_2a6,_2ab); +} +return false; +}); +pp.panel("options").collapsible?t.show():t.hide(); +_2aa.click(function(){ +$(this).find("a.accordion-collapse:visible").triggerHandler("click"); +return false; +}); +}; +function _2ac(_2ad,_2ae){ +var p=_29c(_2ad,_2ae); +if(!p){ +return; +} +_2af(_2ad); +var opts=$.data(_2ad,"accordion").options; +p.panel("expand",opts.animate); +}; +function _2b0(_2b1,_2b2){ +var p=_29c(_2b1,_2b2); +if(!p){ +return; +} +_2af(_2b1); +var opts=$.data(_2b1,"accordion").options; +p.panel("collapse",opts.animate); +}; +function _2b3(_2b4){ +var opts=$.data(_2b4,"accordion").options; +var p=_290(_2b4,"selected",true); +if(p){ +_2b5(_299(_2b4,p)); +}else{ +_2b5(opts.selected); +} +function _2b5(_2b6){ +var _2b7=opts.animate; +opts.animate=false; +_2ac(_2b4,_2b6); +opts.animate=_2b7; +}; +}; +function _2af(_2b8){ +var _2b9=$.data(_2b8,"accordion").panels; +for(var i=0;i<_2b9.length;i++){ +_2b9[i].stop(true,true); +} +}; +function add(_2ba,_2bb){ +var _2bc=$.data(_2ba,"accordion"); +var opts=_2bc.options; +var _2bd=_2bc.panels; +if(_2bb.selected==undefined){ +_2bb.selected=true; +} +_2af(_2ba); +var pp=$("
                    ").appendTo(_2ba); +_2bd.push(pp); +_2a5(_2ba,pp,_2bb); +_284(_2ba); +opts.onAdd.call(_2ba,_2bb.title,_2bd.length-1); +if(_2bb.selected){ +_2ac(_2ba,_2bd.length-1); +} +}; +function _2be(_2bf,_2c0){ +var _2c1=$.data(_2bf,"accordion"); +var opts=_2c1.options; +var _2c2=_2c1.panels; +_2af(_2bf); +var _2c3=_29c(_2bf,_2c0); +var _2c4=_2c3.panel("options").title; +var _2c5=_299(_2bf,_2c3); +if(!_2c3){ +return; +} +if(opts.onBeforeRemove.call(_2bf,_2c4,_2c5)==false){ +return; +} +_2c2.splice(_2c5,1); +_2c3.panel("destroy"); +if(_2c2.length){ +_284(_2bf); +var curr=_297(_2bf); +if(!curr){ +_2ac(_2bf,0); +} +} +opts.onRemove.call(_2bf,_2c4,_2c5); +}; +$.fn.accordion=function(_2c6,_2c7){ +if(typeof _2c6=="string"){ +return $.fn.accordion.methods[_2c6](this,_2c7); +} +_2c6=_2c6||{}; +return this.each(function(){ +var _2c8=$.data(this,"accordion"); +if(_2c8){ +$.extend(_2c8.options,_2c6); +}else{ +$.data(this,"accordion",{options:$.extend({},$.fn.accordion.defaults,$.fn.accordion.parseOptions(this),_2c6),accordion:$(this).addClass("accordion"),panels:[]}); +init(this); +} +_2a0(this); +_284(this); +_2b3(this); +}); +}; +$.fn.accordion.methods={options:function(jq){ +return $.data(jq[0],"accordion").options; +},panels:function(jq){ +return $.data(jq[0],"accordion").panels; +},resize:function(jq){ +return jq.each(function(){ +_284(this); +}); +},getSelections:function(jq){ +return _295(jq[0]); +},getSelected:function(jq){ +return _297(jq[0]); +},getPanel:function(jq,_2c9){ +return _29c(jq[0],_2c9); +},getPanelIndex:function(jq,_2ca){ +return _299(jq[0],_2ca); +},select:function(jq,_2cb){ +return jq.each(function(){ +_2ac(this,_2cb); +}); +},unselect:function(jq,_2cc){ +return jq.each(function(){ +_2b0(this,_2cc); +}); +},add:function(jq,_2cd){ +return jq.each(function(){ +add(this,_2cd); +}); +},remove:function(jq,_2ce){ +return jq.each(function(){ +_2be(this,_2ce); +}); +}}; +$.fn.accordion.parseOptions=function(_2cf){ +var t=$(_2cf); +return $.extend({},$.parser.parseOptions(_2cf,["width","height",{fit:"boolean",border:"boolean",animate:"boolean",multiple:"boolean",selected:"number"}])); +}; +$.fn.accordion.defaults={width:"auto",height:"auto",fit:false,border:true,animate:true,multiple:false,selected:0,onSelect:function(_2d0,_2d1){ +},onUnselect:function(_2d2,_2d3){ +},onAdd:function(_2d4,_2d5){ +},onBeforeRemove:function(_2d6,_2d7){ +},onRemove:function(_2d8,_2d9){ +}}; +})(jQuery); +(function($){ +function _2da(_2db){ +var opts=$.data(_2db,"tabs").options; +if(opts.tabPosition=="left"||opts.tabPosition=="right"||!opts.showHeader){ +return; +} +var _2dc=$(_2db).children("div.tabs-header"); +var tool=_2dc.children("div.tabs-tool"); +var _2dd=_2dc.children("div.tabs-scroller-left"); +var _2de=_2dc.children("div.tabs-scroller-right"); +var wrap=_2dc.children("div.tabs-wrap"); +var _2df=_2dc.outerHeight(); +if(opts.plain){ +_2df-=_2df-_2dc.height(); +} +tool._outerHeight(_2df); +var _2e0=0; +$("ul.tabs li",_2dc).each(function(){ +_2e0+=$(this).outerWidth(true); +}); +var _2e1=_2dc.width()-tool._outerWidth(); +if(_2e0>_2e1){ +_2dd.add(_2de).show()._outerHeight(_2df); +if(opts.toolPosition=="left"){ +tool.css({left:_2dd.outerWidth(),right:""}); +wrap.css({marginLeft:_2dd.outerWidth()+tool._outerWidth(),marginRight:_2de._outerWidth(),width:_2e1-_2dd.outerWidth()-_2de.outerWidth()}); +}else{ +tool.css({left:"",right:_2de.outerWidth()}); +wrap.css({marginLeft:_2dd.outerWidth(),marginRight:_2de.outerWidth()+tool._outerWidth(),width:_2e1-_2dd.outerWidth()-_2de.outerWidth()}); +} +}else{ +_2dd.add(_2de).hide(); +if(opts.toolPosition=="left"){ +tool.css({left:0,right:""}); +wrap.css({marginLeft:tool._outerWidth(),marginRight:0,width:_2e1}); +}else{ +tool.css({left:"",right:0}); +wrap.css({marginLeft:0,marginRight:tool._outerWidth(),width:_2e1}); +} +} +}; +function _2e2(_2e3){ +var opts=$.data(_2e3,"tabs").options; +var _2e4=$(_2e3).children("div.tabs-header"); +if(opts.tools){ +if(typeof opts.tools=="string"){ +$(opts.tools).addClass("tabs-tool").appendTo(_2e4); +$(opts.tools).show(); +}else{ +_2e4.children("div.tabs-tool").remove(); +var _2e5=$("
                    ").appendTo(_2e4); +var tr=_2e5.find("tr"); +for(var i=0;i").appendTo(tr); +var tool=$("").appendTo(td); +tool[0].onclick=eval(opts.tools[i].handler||function(){ +}); +tool.linkbutton($.extend({},opts.tools[i],{plain:true})); +} +} +}else{ +_2e4.children("div.tabs-tool").remove(); +} +}; +function _2e6(_2e7){ +var _2e8=$.data(_2e7,"tabs"); +var opts=_2e8.options; +var cc=$(_2e7); +opts.fit?$.extend(opts,cc._fit()):cc._fit(false); +cc.width(opts.width).height(opts.height); +var _2e9=$(_2e7).children("div.tabs-header"); +var _2ea=$(_2e7).children("div.tabs-panels"); +var wrap=_2e9.find("div.tabs-wrap"); +var ul=wrap.find(".tabs"); +for(var i=0;i<_2e8.tabs.length;i++){ +var _2eb=_2e8.tabs[i].panel("options"); +var p_t=_2eb.tab.find("a.tabs-inner"); +var _2ec=parseInt(_2eb.tabWidth||opts.tabWidth)||undefined; +if(_2ec){ +p_t._outerWidth(_2ec); +}else{ +p_t.css("width",""); +} +p_t._outerHeight(opts.tabHeight); +p_t.css("lineHeight",p_t.height()+"px"); +} +if(opts.tabPosition=="left"||opts.tabPosition=="right"){ +_2e9._outerWidth(opts.showHeader?opts.headerWidth:0); +_2ea._outerWidth(cc.width()-_2e9.outerWidth()); +_2e9.add(_2ea)._outerHeight(opts.height); +wrap._outerWidth(_2e9.width()); +ul._outerWidth(wrap.width()).css("height",""); +}else{ +var lrt=_2e9.children("div.tabs-scroller-left,div.tabs-scroller-right,div.tabs-tool"); +_2e9._outerWidth(opts.width).css("height",""); +if(opts.showHeader){ +_2e9.css("background-color",""); +wrap.css("height",""); +lrt.show(); +}else{ +_2e9.css("background-color","transparent"); +_2e9._outerHeight(0); +wrap._outerHeight(0); +lrt.hide(); +} +ul._outerHeight(opts.tabHeight).css("width",""); +_2da(_2e7); +var _2ed=opts.height; +if(!isNaN(_2ed)){ +_2ea._outerHeight(_2ed-_2e9.outerHeight()); +}else{ +_2ea.height("auto"); +} +var _2ec=opts.width; +if(!isNaN(_2ec)){ +_2ea._outerWidth(_2ec); +}else{ +_2ea.width("auto"); +} +} +}; +function _2ee(_2ef){ +var opts=$.data(_2ef,"tabs").options; +var tab=_2f0(_2ef); +if(tab){ +var _2f1=$(_2ef).children("div.tabs-panels"); +var _2f2=opts.width=="auto"?"auto":_2f1.width(); +var _2f3=opts.height=="auto"?"auto":_2f1.height(); +tab.panel("resize",{width:_2f2,height:_2f3}); +} +}; +function _2f4(_2f5){ +var tabs=$.data(_2f5,"tabs").tabs; +var cc=$(_2f5); +cc.addClass("tabs-container"); +var pp=$("
                    ").insertBefore(cc); +cc.children("div").each(function(){ +pp[0].appendChild(this); +}); +cc[0].appendChild(pp[0]); +$("
                    "+"
                    "+"
                    "+"
                    "+"
                      "+"
                      "+"
                      ").prependTo(_2f5); +cc.children("div.tabs-panels").children("div").each(function(i){ +var opts=$.extend({},$.parser.parseOptions(this),{selected:($(this).attr("selected")?true:undefined)}); +var pp=$(this); +tabs.push(pp); +_302(_2f5,pp,opts); +}); +cc.children("div.tabs-header").find(".tabs-scroller-left, .tabs-scroller-right").hover(function(){ +$(this).addClass("tabs-scroller-over"); +},function(){ +$(this).removeClass("tabs-scroller-over"); +}); +cc.bind("_resize",function(e,_2f6){ +var opts=$.data(_2f5,"tabs").options; +if(opts.fit==true||_2f6){ +_2e6(_2f5); +_2ee(_2f5); +} +return false; +}); +}; +function _2f7(_2f8){ +var _2f9=$.data(_2f8,"tabs"); +var opts=_2f9.options; +$(_2f8).children("div.tabs-header").unbind().bind("click",function(e){ +if($(e.target).hasClass("tabs-scroller-left")){ +$(_2f8).tabs("scrollBy",-opts.scrollIncrement); +}else{ +if($(e.target).hasClass("tabs-scroller-right")){ +$(_2f8).tabs("scrollBy",opts.scrollIncrement); +}else{ +var li=$(e.target).closest("li"); +if(li.hasClass("tabs-disabled")){ +return; +} +var a=$(e.target).closest("a.tabs-close"); +if(a.length){ +_313(_2f8,_2fa(li)); +}else{ +if(li.length){ +var _2fb=_2fa(li); +var _2fc=_2f9.tabs[_2fb].panel("options"); +if(_2fc.collapsible){ +_2fc.closed?_309(_2f8,_2fb):_32a(_2f8,_2fb); +}else{ +_309(_2f8,_2fb); +} +} +} +} +} +}).bind("contextmenu",function(e){ +var li=$(e.target).closest("li"); +if(li.hasClass("tabs-disabled")){ +return; +} +if(li.length){ +opts.onContextMenu.call(_2f8,e,li.find("span.tabs-title").html(),_2fa(li)); +} +}); +function _2fa(li){ +var _2fd=0; +li.parent().children("li").each(function(i){ +if(li[0]==this){ +_2fd=i; +return false; +} +}); +return _2fd; +}; +}; +function _2fe(_2ff){ +var opts=$.data(_2ff,"tabs").options; +var _300=$(_2ff).children("div.tabs-header"); +var _301=$(_2ff).children("div.tabs-panels"); +_300.removeClass("tabs-header-top tabs-header-bottom tabs-header-left tabs-header-right"); +_301.removeClass("tabs-panels-top tabs-panels-bottom tabs-panels-left tabs-panels-right"); +if(opts.tabPosition=="top"){ +_300.insertBefore(_301); +}else{ +if(opts.tabPosition=="bottom"){ +_300.insertAfter(_301); +_300.addClass("tabs-header-bottom"); +_301.addClass("tabs-panels-top"); +}else{ +if(opts.tabPosition=="left"){ +_300.addClass("tabs-header-left"); +_301.addClass("tabs-panels-right"); +}else{ +if(opts.tabPosition=="right"){ +_300.addClass("tabs-header-right"); +_301.addClass("tabs-panels-left"); +} +} +} +} +if(opts.plain==true){ +_300.addClass("tabs-header-plain"); +}else{ +_300.removeClass("tabs-header-plain"); +} +if(opts.border==true){ +_300.removeClass("tabs-header-noborder"); +_301.removeClass("tabs-panels-noborder"); +}else{ +_300.addClass("tabs-header-noborder"); +_301.addClass("tabs-panels-noborder"); +} +}; +function _302(_303,pp,_304){ +var _305=$.data(_303,"tabs"); +_304=_304||{}; +pp.panel($.extend({},_304,{border:false,noheader:true,closed:true,doSize:false,iconCls:(_304.icon?_304.icon:undefined),onLoad:function(){ +if(_304.onLoad){ +_304.onLoad.call(this,arguments); +} +_305.options.onLoad.call(_303,$(this)); +}})); +var opts=pp.panel("options"); +var tabs=$(_303).children("div.tabs-header").find("ul.tabs"); +opts.tab=$("
                    • ").appendTo(tabs); +opts.tab.append(""+""+""+""); +$(_303).tabs("update",{tab:pp,options:opts}); +}; +function _306(_307,_308){ +var opts=$.data(_307,"tabs").options; +var tabs=$.data(_307,"tabs").tabs; +if(_308.selected==undefined){ +_308.selected=true; +} +var pp=$("
                      ").appendTo($(_307).children("div.tabs-panels")); +tabs.push(pp); +_302(_307,pp,_308); +opts.onAdd.call(_307,_308.title,tabs.length-1); +_2e6(_307); +if(_308.selected){ +_309(_307,tabs.length-1); +} +}; +function _30a(_30b,_30c){ +var _30d=$.data(_30b,"tabs").selectHis; +var pp=_30c.tab; +var _30e=pp.panel("options").title; +pp.panel($.extend({},_30c.options,{iconCls:(_30c.options.icon?_30c.options.icon:undefined)})); +var opts=pp.panel("options"); +var tab=opts.tab; +var _30f=tab.find("span.tabs-title"); +var _310=tab.find("span.tabs-icon"); +_30f.html(opts.title); +_310.attr("class","tabs-icon"); +tab.find("a.tabs-close").remove(); +if(opts.closable){ +_30f.addClass("tabs-closable"); +$("").appendTo(tab); +}else{ +_30f.removeClass("tabs-closable"); +} +if(opts.iconCls){ +_30f.addClass("tabs-with-icon"); +_310.addClass(opts.iconCls); +}else{ +_30f.removeClass("tabs-with-icon"); +} +if(_30e!=opts.title){ +for(var i=0;i<_30d.length;i++){ +if(_30d[i]==_30e){ +_30d[i]=opts.title; +} +} +} +tab.find("span.tabs-p-tool").remove(); +if(opts.tools){ +var _311=$("").insertAfter(tab.find("a.tabs-inner")); +if($.isArray(opts.tools)){ +for(var i=0;i").appendTo(_311); +t.addClass(opts.tools[i].iconCls); +if(opts.tools[i].handler){ +t.bind("click",{handler:opts.tools[i].handler},function(e){ +if($(this).parents("li").hasClass("tabs-disabled")){ +return; +} +e.data.handler.call(this); +}); +} +} +}else{ +$(opts.tools).children().appendTo(_311); +} +var pr=_311.children().length*12; +if(opts.closable){ +pr+=8; +}else{ +pr-=3; +_311.css("right","5px"); +} +_30f.css("padding-right",pr+"px"); +} +_2e6(_30b); +$.data(_30b,"tabs").options.onUpdate.call(_30b,opts.title,_312(_30b,pp)); +}; +function _313(_314,_315){ +var opts=$.data(_314,"tabs").options; +var tabs=$.data(_314,"tabs").tabs; +var _316=$.data(_314,"tabs").selectHis; +if(!_317(_314,_315)){ +return; +} +var tab=_318(_314,_315); +var _319=tab.panel("options").title; +var _31a=_312(_314,tab); +if(opts.onBeforeClose.call(_314,_319,_31a)==false){ +return; +} +var tab=_318(_314,_315,true); +tab.panel("options").tab.remove(); +tab.panel("destroy"); +opts.onClose.call(_314,_319,_31a); +_2e6(_314); +for(var i=0;i<_316.length;i++){ +if(_316[i]==_319){ +_316.splice(i,1); +i--; +} +} +var _31b=_316.pop(); +if(_31b){ +_309(_314,_31b); +}else{ +if(tabs.length){ +_309(_314,0); +} +} +}; +function _318(_31c,_31d,_31e){ +var tabs=$.data(_31c,"tabs").tabs; +if(typeof _31d=="number"){ +if(_31d<0||_31d>=tabs.length){ +return null; +}else{ +var tab=tabs[_31d]; +if(_31e){ +tabs.splice(_31d,1); +} +return tab; +} +} +for(var i=0;idiv.tabs-header>div.tabs-wrap"); +var left=tab.position().left; +var _32c=left+tab.outerWidth(); +if(left<0||_32c>wrap.width()){ +var _32d=left-(wrap.width()-tab.width())/2; +$(_324).tabs("scrollBy",_32d); +}else{ +$(_324).tabs("scrollBy",0); +} +_2ee(_324); +opts.onSelect.call(_324,_32b,_312(_324,_328)); +}; +function _32a(_32e,_32f){ +var _330=$.data(_32e,"tabs"); +var p=_318(_32e,_32f); +if(p){ +var opts=p.panel("options"); +if(!opts.closed){ +p.panel("close"); +if(opts.closed){ +opts.tab.removeClass("tabs-selected"); +_330.options.onUnselect.call(_32e,opts.title,_312(_32e,p)); +} +} +} +}; +function _317(_331,_332){ +return _318(_331,_332)!=null; +}; +function _333(_334,_335){ +var opts=$.data(_334,"tabs").options; +opts.showHeader=_335; +$(_334).tabs("resize"); +}; +$.fn.tabs=function(_336,_337){ +if(typeof _336=="string"){ +return $.fn.tabs.methods[_336](this,_337); +} +_336=_336||{}; +return this.each(function(){ +var _338=$.data(this,"tabs"); +var opts; +if(_338){ +opts=$.extend(_338.options,_336); +_338.options=opts; +}else{ +$.data(this,"tabs",{options:$.extend({},$.fn.tabs.defaults,$.fn.tabs.parseOptions(this),_336),tabs:[],selectHis:[]}); +_2f4(this); +} +_2e2(this); +_2fe(this); +_2e6(this); +_2f7(this); +_321(this); +}); +}; +$.fn.tabs.methods={options:function(jq){ +var cc=jq[0]; +var opts=$.data(cc,"tabs").options; +var s=_2f0(cc); +opts.selected=s?_312(cc,s):-1; +return opts; +},tabs:function(jq){ +return $.data(jq[0],"tabs").tabs; +},resize:function(jq){ +return jq.each(function(){ +_2e6(this); +_2ee(this); +}); +},add:function(jq,_339){ +return jq.each(function(){ +_306(this,_339); +}); +},close:function(jq,_33a){ +return jq.each(function(){ +_313(this,_33a); +}); +},getTab:function(jq,_33b){ +return _318(jq[0],_33b); +},getTabIndex:function(jq,tab){ +return _312(jq[0],tab); +},getSelected:function(jq){ +return _2f0(jq[0]); +},select:function(jq,_33c){ +return jq.each(function(){ +_309(this,_33c); +}); +},unselect:function(jq,_33d){ +return jq.each(function(){ +_32a(this,_33d); +}); +},exists:function(jq,_33e){ +return _317(jq[0],_33e); +},update:function(jq,_33f){ +return jq.each(function(){ +_30a(this,_33f); +}); +},enableTab:function(jq,_340){ +return jq.each(function(){ +$(this).tabs("getTab",_340).panel("options").tab.removeClass("tabs-disabled"); +}); +},disableTab:function(jq,_341){ +return jq.each(function(){ +$(this).tabs("getTab",_341).panel("options").tab.addClass("tabs-disabled"); +}); +},showHeader:function(jq){ +return jq.each(function(){ +_333(this,true); +}); +},hideHeader:function(jq){ +return jq.each(function(){ +_333(this,false); +}); +},scrollBy:function(jq,_342){ +return jq.each(function(){ +var opts=$(this).tabs("options"); +var wrap=$(this).find(">div.tabs-header>div.tabs-wrap"); +var pos=Math.min(wrap._scrollLeft()+_342,_343()); +wrap.animate({scrollLeft:pos},opts.scrollDuration); +function _343(){ +var w=0; +var ul=wrap.children("ul"); +ul.children("li").each(function(){ +w+=$(this).outerWidth(true); +}); +return w-wrap.width()+(ul.outerWidth()-ul.width()); +}; +}); +}}; +$.fn.tabs.parseOptions=function(_344){ +return $.extend({},$.parser.parseOptions(_344,["width","height","tools","toolPosition","tabPosition",{fit:"boolean",border:"boolean",plain:"boolean",headerWidth:"number",tabWidth:"number",tabHeight:"number",selected:"number",showHeader:"boolean"}])); +}; +$.fn.tabs.defaults={width:"auto",height:"auto",headerWidth:150,tabWidth:"auto",tabHeight:27,selected:0,showHeader:true,plain:false,fit:false,border:true,tools:null,toolPosition:"right",tabPosition:"top",scrollIncrement:100,scrollDuration:400,onLoad:function(_345){ +},onSelect:function(_346,_347){ +},onUnselect:function(_348,_349){ +},onBeforeClose:function(_34a,_34b){ +},onClose:function(_34c,_34d){ +},onAdd:function(_34e,_34f){ +},onUpdate:function(_350,_351){ +},onContextMenu:function(e,_352,_353){ +}}; +})(jQuery); +(function($){ +var _354=false; +function _355(_356){ +var _357=$.data(_356,"layout"); +var opts=_357.options; +var _358=_357.panels; +var cc=$(_356); +if(_356.tagName=="BODY"){ +cc._fit(); +}else{ +opts.fit?cc.css(cc._fit()):cc._fit(false); +} +var cpos={top:0,left:0,width:cc.width(),height:cc.height()}; +_359(_35a(_358.expandNorth)?_358.expandNorth:_358.north,"n"); +_359(_35a(_358.expandSouth)?_358.expandSouth:_358.south,"s"); +_35b(_35a(_358.expandEast)?_358.expandEast:_358.east,"e"); +_35b(_35a(_358.expandWest)?_358.expandWest:_358.west,"w"); +_358.center.panel("resize",cpos); +function _35c(pp){ +var opts=pp.panel("options"); +return Math.min(Math.max(opts.height,opts.minHeight),opts.maxHeight); +}; +function _35d(pp){ +var opts=pp.panel("options"); +return Math.min(Math.max(opts.width,opts.minWidth),opts.maxWidth); +}; +function _359(pp,type){ +if(!pp.length){ +return; +} +var opts=pp.panel("options"); +var _35e=_35c(pp); +pp.panel("resize",{width:cc.width(),height:_35e,left:0,top:(type=="n"?0:cc.height()-_35e)}); +cpos.height-=_35e; +if(type=="n"){ +cpos.top+=_35e; +if(!opts.split&&opts.border){ +cpos.top--; +} +} +if(!opts.split&&opts.border){ +cpos.height++; +} +}; +function _35b(pp,type){ +if(!pp.length){ +return; +} +var opts=pp.panel("options"); +var _35f=_35d(pp); +pp.panel("resize",{width:_35f,height:cpos.height,left:(type=="e"?cc.width()-_35f:0),top:cpos.top}); +cpos.width-=_35f; +if(type=="w"){ +cpos.left+=_35f; +if(!opts.split&&opts.border){ +cpos.left--; +} +} +if(!opts.split&&opts.border){ +cpos.width++; +} +}; +}; +function init(_360){ +var cc=$(_360); +cc.addClass("layout"); +function _361(cc){ +cc.children("div").each(function(){ +var opts=$.fn.layout.parsePanelOptions(this); +if("north,south,east,west,center".indexOf(opts.region)>=0){ +_363(_360,opts,this); +} +}); +}; +cc.children("form").length?_361(cc.children("form")):_361(cc); +cc.append("
                      "); +cc.bind("_resize",function(e,_362){ +var opts=$.data(_360,"layout").options; +if(opts.fit==true||_362){ +_355(_360); +} +return false; +}); +}; +function _363(_364,_365,el){ +_365.region=_365.region||"center"; +var _366=$.data(_364,"layout").panels; +var cc=$(_364); +var dir=_365.region; +if(_366[dir].length){ +return; +} +var pp=$(el); +if(!pp.length){ +pp=$("
                      ").appendTo(cc); +} +var _367=$.extend({},$.fn.layout.paneldefaults,{width:(pp.length?parseInt(pp[0].style.width)||pp.outerWidth():"auto"),height:(pp.length?parseInt(pp[0].style.height)||pp.outerHeight():"auto"),doSize:false,collapsible:true,cls:("layout-panel layout-panel-"+dir),bodyCls:"layout-body",onOpen:function(){ +var tool=$(this).panel("header").children("div.panel-tool"); +tool.children("a.panel-tool-collapse").hide(); +var _368={north:"up",south:"down",east:"right",west:"left"}; +if(!_368[dir]){ +return; +} +var _369="layout-button-"+_368[dir]; +var t=tool.children("a."+_369); +if(!t.length){ +t=$("").addClass(_369).appendTo(tool); +t.bind("click",{dir:dir},function(e){ +_375(_364,e.data.dir); +return false; +}); +} +$(this).panel("options").collapsible?t.show():t.hide(); +}},_365); +pp.panel(_367); +_366[dir]=pp; +if(pp.panel("options").split){ +var _36a=pp.panel("panel"); +_36a.addClass("layout-split-"+dir); +var _36b=""; +if(dir=="north"){ +_36b="s"; +} +if(dir=="south"){ +_36b="n"; +} +if(dir=="east"){ +_36b="w"; +} +if(dir=="west"){ +_36b="e"; +} +_36a.resizable($.extend({},{handles:_36b,onStartResize:function(e){ +_354=true; +if(dir=="north"||dir=="south"){ +var _36c=$(">div.layout-split-proxy-v",_364); +}else{ +var _36c=$(">div.layout-split-proxy-h",_364); +} +var top=0,left=0,_36d=0,_36e=0; +var pos={display:"block"}; +if(dir=="north"){ +pos.top=parseInt(_36a.css("top"))+_36a.outerHeight()-_36c.height(); +pos.left=parseInt(_36a.css("left")); +pos.width=_36a.outerWidth(); +pos.height=_36c.height(); +}else{ +if(dir=="south"){ +pos.top=parseInt(_36a.css("top")); +pos.left=parseInt(_36a.css("left")); +pos.width=_36a.outerWidth(); +pos.height=_36c.height(); +}else{ +if(dir=="east"){ +pos.top=parseInt(_36a.css("top"))||0; +pos.left=parseInt(_36a.css("left"))||0; +pos.width=_36c.width(); +pos.height=_36a.outerHeight(); +}else{ +if(dir=="west"){ +pos.top=parseInt(_36a.css("top"))||0; +pos.left=_36a.outerWidth()-_36c.width(); +pos.width=_36c.width(); +pos.height=_36a.outerHeight(); +} +} +} +} +_36c.css(pos); +$("
                      ").css({left:0,top:0,width:cc.width(),height:cc.height()}).appendTo(cc); +},onResize:function(e){ +if(dir=="north"||dir=="south"){ +var _36f=$(">div.layout-split-proxy-v",_364); +_36f.css("top",e.pageY-$(_364).offset().top-_36f.height()/2); +}else{ +var _36f=$(">div.layout-split-proxy-h",_364); +_36f.css("left",e.pageX-$(_364).offset().left-_36f.width()/2); +} +return false; +},onStopResize:function(e){ +cc.children("div.layout-split-proxy-v,div.layout-split-proxy-h").hide(); +pp.panel("resize",e.data); +_355(_364); +_354=false; +cc.find(">div.layout-mask").remove(); +}},_365)); +} +}; +function _370(_371,_372){ +var _373=$.data(_371,"layout").panels; +if(_373[_372].length){ +_373[_372].panel("destroy"); +_373[_372]=$(); +var _374="expand"+_372.substring(0,1).toUpperCase()+_372.substring(1); +if(_373[_374]){ +_373[_374].panel("destroy"); +_373[_374]=undefined; +} +} +}; +function _375(_376,_377,_378){ +if(_378==undefined){ +_378="normal"; +} +var _379=$.data(_376,"layout").panels; +var p=_379[_377]; +var _37a=p.panel("options"); +if(_37a.onBeforeCollapse.call(p)==false){ +return; +} +var _37b="expand"+_377.substring(0,1).toUpperCase()+_377.substring(1); +if(!_379[_37b]){ +_379[_37b]=_37c(_377); +_379[_37b].panel("panel").bind("click",function(){ +var _37d=_37e(); +p.panel("expand",false).panel("open").panel("resize",_37d.collapse); +p.panel("panel").animate(_37d.expand,function(){ +$(this).unbind(".layout").bind("mouseleave.layout",{region:_377},function(e){ +if(_354==true){ +return; +} +_375(_376,e.data.region); +}); +}); +return false; +}); +} +var _37f=_37e(); +if(!_35a(_379[_37b])){ +_379.center.panel("resize",_37f.resizeC); +} +p.panel("panel").animate(_37f.collapse,_378,function(){ +p.panel("collapse",false).panel("close"); +_379[_37b].panel("open").panel("resize",_37f.expandP); +$(this).unbind(".layout"); +}); +function _37c(dir){ +var icon; +if(dir=="east"){ +icon="layout-button-left"; +}else{ +if(dir=="west"){ +icon="layout-button-right"; +}else{ +if(dir=="north"){ +icon="layout-button-down"; +}else{ +if(dir=="south"){ +icon="layout-button-up"; +} +} +} +} +var p=$("
                      ").appendTo(_376); +p.panel($.extend({},$.fn.layout.paneldefaults,{cls:("layout-expand layout-expand-"+dir),title:" ",closed:true,doSize:false,tools:[{iconCls:icon,handler:function(){ +_381(_376,_377); +return false; +}}]})); +p.panel("panel").hover(function(){ +$(this).addClass("layout-expand-over"); +},function(){ +$(this).removeClass("layout-expand-over"); +}); +return p; +}; +function _37e(){ +var cc=$(_376); +var _380=_379.center.panel("options"); +if(_377=="east"){ +var ww=_380.width+_37a.width-28; +if(_37a.split||!_37a.border){ +ww++; +} +return {resizeC:{width:ww},expand:{left:cc.width()-_37a.width},expandP:{top:_380.top,left:cc.width()-28,width:28,height:_380.height},collapse:{left:cc.width(),top:_380.top,height:_380.height}}; +}else{ +if(_377=="west"){ +var ww=_380.width+_37a.width-28; +if(_37a.split||!_37a.border){ +ww++; +} +return {resizeC:{width:ww,left:28-1},expand:{left:0},expandP:{left:0,top:_380.top,width:28,height:_380.height},collapse:{left:-_37a.width,top:_380.top,height:_380.height}}; +}else{ +if(_377=="north"){ +var hh=_380.height; +if(!_35a(_379.expandNorth)){ +hh+=_37a.height-28+((_37a.split||!_37a.border)?1:0); +} +_379.east.add(_379.west).add(_379.expandEast).add(_379.expandWest).panel("resize",{top:28-1,height:hh}); +return {resizeC:{top:28-1,height:hh},expand:{top:0},expandP:{top:0,left:0,width:cc.width(),height:28},collapse:{top:-_37a.height,width:cc.width()}}; +}else{ +if(_377=="south"){ +var hh=_380.height; +if(!_35a(_379.expandSouth)){ +hh+=_37a.height-28+((_37a.split||!_37a.border)?1:0); +} +_379.east.add(_379.west).add(_379.expandEast).add(_379.expandWest).panel("resize",{height:hh}); +return {resizeC:{height:hh},expand:{top:cc.height()-_37a.height},expandP:{top:cc.height()-28,left:0,width:cc.width(),height:28},collapse:{top:cc.height(),width:cc.width()}}; +} +} +} +} +}; +}; +function _381(_382,_383){ +var _384=$.data(_382,"layout").panels; +var p=_384[_383]; +var _385=p.panel("options"); +if(_385.onBeforeExpand.call(p)==false){ +return; +} +var _386=_387(); +var _388="expand"+_383.substring(0,1).toUpperCase()+_383.substring(1); +if(_384[_388]){ +_384[_388].panel("close"); +p.panel("panel").stop(true,true); +p.panel("expand",false).panel("open").panel("resize",_386.collapse); +p.panel("panel").animate(_386.expand,function(){ +_355(_382); +}); +} +function _387(){ +var cc=$(_382); +var _389=_384.center.panel("options"); +if(_383=="east"&&_384.expandEast){ +return {collapse:{left:cc.width(),top:_389.top,height:_389.height},expand:{left:cc.width()-_384["east"].panel("options").width}}; +}else{ +if(_383=="west"&&_384.expandWest){ +return {collapse:{left:-_384["west"].panel("options").width,top:_389.top,height:_389.height},expand:{left:0}}; +}else{ +if(_383=="north"&&_384.expandNorth){ +return {collapse:{top:-_384["north"].panel("options").height,width:cc.width()},expand:{top:0}}; +}else{ +if(_383=="south"&&_384.expandSouth){ +return {collapse:{top:cc.height(),width:cc.width()},expand:{top:cc.height()-_384["south"].panel("options").height}}; +} +} +} +} +}; +}; +function _35a(pp){ +if(!pp){ +return false; +} +if(pp.length){ +return pp.panel("panel").is(":visible"); +}else{ +return false; +} +}; +function _38a(_38b){ +var _38c=$.data(_38b,"layout").panels; +if(_38c.east.length&&_38c.east.panel("options").collapsed){ +_375(_38b,"east",0); +} +if(_38c.west.length&&_38c.west.panel("options").collapsed){ +_375(_38b,"west",0); +} +if(_38c.north.length&&_38c.north.panel("options").collapsed){ +_375(_38b,"north",0); +} +if(_38c.south.length&&_38c.south.panel("options").collapsed){ +_375(_38b,"south",0); +} +}; +$.fn.layout=function(_38d,_38e){ +if(typeof _38d=="string"){ +return $.fn.layout.methods[_38d](this,_38e); +} +_38d=_38d||{}; +return this.each(function(){ +var _38f=$.data(this,"layout"); +if(_38f){ +$.extend(_38f.options,_38d); +}else{ +var opts=$.extend({},$.fn.layout.defaults,$.fn.layout.parseOptions(this),_38d); +$.data(this,"layout",{options:opts,panels:{center:$(),north:$(),south:$(),east:$(),west:$()}}); +init(this); +} +_355(this); +_38a(this); +}); +}; +$.fn.layout.methods={resize:function(jq){ +return jq.each(function(){ +_355(this); +}); +},panel:function(jq,_390){ +return $.data(jq[0],"layout").panels[_390]; +},collapse:function(jq,_391){ +return jq.each(function(){ +_375(this,_391); +}); +},expand:function(jq,_392){ +return jq.each(function(){ +_381(this,_392); +}); +},add:function(jq,_393){ +return jq.each(function(){ +_363(this,_393); +_355(this); +if($(this).layout("panel",_393.region).panel("options").collapsed){ +_375(this,_393.region,0); +} +}); +},remove:function(jq,_394){ +return jq.each(function(){ +_370(this,_394); +_355(this); +}); +}}; +$.fn.layout.parseOptions=function(_395){ +return $.extend({},$.parser.parseOptions(_395,[{fit:"boolean"}])); +}; +$.fn.layout.defaults={fit:false}; +$.fn.layout.parsePanelOptions=function(_396){ +var t=$(_396); +return $.extend({},$.fn.panel.parseOptions(_396),$.parser.parseOptions(_396,["region",{split:"boolean",minWidth:"number",minHeight:"number",maxWidth:"number",maxHeight:"number"}])); +}; +$.fn.layout.paneldefaults=$.extend({},$.fn.panel.defaults,{region:null,split:false,minWidth:10,minHeight:10,maxWidth:10000,maxHeight:10000}); +})(jQuery); +(function($){ +function init(_397){ +$(_397).appendTo("body"); +$(_397).addClass("menu-top"); +$(document).unbind(".menu").bind("mousedown.menu",function(e){ +var _398=$("body>div.menu:visible"); +var m=$(e.target).closest("div.menu",_398); +if(m.length){ +return; +} +$("body>div.menu-top:visible").menu("hide"); +}); +var _399=_39a($(_397)); +for(var i=0;i<_399.length;i++){ +_39b(_399[i]); +} +function _39a(menu){ +var _39c=[]; +menu.addClass("menu"); +_39c.push(menu); +if(!menu.hasClass("menu-content")){ +menu.children("div").each(function(){ +var _39d=$(this).children("div"); +if(_39d.length){ +_39d.insertAfter(_397); +this.submenu=_39d; +var mm=_39a(_39d); +_39c=_39c.concat(mm); +} +}); +} +return _39c; +}; +function _39b(menu){ +var _39e=$.parser.parseOptions(menu[0],["width"]).width; +if(menu.hasClass("menu-content")){ +menu[0].originalWidth=_39e||menu._outerWidth(); +}else{ +menu[0].originalWidth=_39e||0; +menu.children("div").each(function(){ +var item=$(this); +var _39f=$.extend({},$.parser.parseOptions(this,["name","iconCls","href",{separator:"boolean"}]),{disabled:(item.attr("disabled")?true:undefined)}); +if(_39f.separator){ +item.addClass("menu-sep"); +} +if(!item.hasClass("menu-sep")){ +item[0].itemName=_39f.name||""; +item[0].itemHref=_39f.href||""; +var text=item.addClass("menu-item").html(); +item.empty().append($("
                      ").html(text)); +if(_39f.iconCls){ +$("
                      ").addClass(_39f.iconCls).appendTo(item); +} +if(_39f.disabled){ +_3a0(_397,item[0],true); +} +if(item[0].submenu){ +$("
                      ").appendTo(item); +} +_3a1(_397,item); +} +}); +$("
                      ").prependTo(menu); +} +_3a2(_397,menu); +menu.hide(); +_3a3(_397,menu); +}; +}; +function _3a2(_3a4,menu){ +var opts=$.data(_3a4,"menu").options; +var _3a5=menu.attr("style"); +menu.css({display:"block",left:-10000,height:"auto",overflow:"hidden"}); +var _3a6=0; +menu.find("div.menu-text").each(function(){ +if(_3a6<$(this)._outerWidth()){ +_3a6=$(this)._outerWidth(); +} +$(this).closest("div.menu-item")._outerHeight($(this)._outerHeight()+2); +}); +_3a6+=65; +menu._outerWidth(Math.max((menu[0].originalWidth||0),_3a6,opts.minWidth)); +menu.children("div.menu-line")._outerHeight(menu.outerHeight()); +menu.attr("style",_3a5); +}; +function _3a3(_3a7,menu){ +var _3a8=$.data(_3a7,"menu"); +menu.unbind(".menu").bind("mouseenter.menu",function(){ +if(_3a8.timer){ +clearTimeout(_3a8.timer); +_3a8.timer=null; +} +}).bind("mouseleave.menu",function(){ +if(_3a8.options.hideOnUnhover){ +_3a8.timer=setTimeout(function(){ +_3a9(_3a7); +},100); +} +}); +}; +function _3a1(_3aa,item){ +if(!item.hasClass("menu-item")){ +return; +} +item.unbind(".menu"); +item.bind("click.menu",function(){ +if($(this).hasClass("menu-item-disabled")){ +return; +} +if(!this.submenu){ +_3a9(_3aa); +var href=$(this).attr("href"); +if(href){ +location.href=href; +} +} +var item=$(_3aa).menu("getItem",this); +$.data(_3aa,"menu").options.onClick.call(_3aa,item); +}).bind("mouseenter.menu",function(e){ +item.siblings().each(function(){ +if(this.submenu){ +_3ad(this.submenu); +} +$(this).removeClass("menu-active"); +}); +item.addClass("menu-active"); +if($(this).hasClass("menu-item-disabled")){ +item.addClass("menu-active-disabled"); +return; +} +var _3ab=item[0].submenu; +if(_3ab){ +$(_3aa).menu("show",{menu:_3ab,parent:item}); +} +}).bind("mouseleave.menu",function(e){ +item.removeClass("menu-active menu-active-disabled"); +var _3ac=item[0].submenu; +if(_3ac){ +if(e.pageX>=parseInt(_3ac.css("left"))){ +item.addClass("menu-active"); +}else{ +_3ad(_3ac); +} +}else{ +item.removeClass("menu-active"); +} +}); +}; +function _3a9(_3ae){ +var _3af=$.data(_3ae,"menu"); +if(_3af){ +if($(_3ae).is(":visible")){ +_3ad($(_3ae)); +_3af.options.onHide.call(_3ae); +} +} +return false; +}; +function _3b0(_3b1,_3b2){ +var left,top; +_3b2=_3b2||{}; +var menu=$(_3b2.menu||_3b1); +if(menu.hasClass("menu-top")){ +var opts=$.data(_3b1,"menu").options; +$.extend(opts,_3b2); +left=opts.left; +top=opts.top; +if(opts.alignTo){ +var at=$(opts.alignTo); +left=at.offset().left; +top=at.offset().top+at._outerHeight(); +} +if(left+menu.outerWidth()>$(window)._outerWidth()+$(document)._scrollLeft()){ +left=$(window)._outerWidth()+$(document).scrollLeft()-menu.outerWidth()-5; +} +if(top+menu.outerHeight()>$(window)._outerHeight()+$(document).scrollTop()){ +top=$(window)._outerHeight()+$(document).scrollTop()-menu.outerHeight()-5; +} +}else{ +var _3b3=_3b2.parent; +left=_3b3.offset().left+_3b3.outerWidth()-2; +if(left+menu.outerWidth()+5>$(window)._outerWidth()+$(document).scrollLeft()){ +left=_3b3.offset().left-menu.outerWidth()+2; +} +var top=_3b3.offset().top-3; +if(top+menu.outerHeight()>$(window)._outerHeight()+$(document).scrollTop()){ +top=$(window)._outerHeight()+$(document).scrollTop()-menu.outerHeight()-5; +} +} +menu.css({left:left,top:top}); +menu.show(0,function(){ +if(!menu[0].shadow){ +menu[0].shadow=$("
                      ").insertAfter(menu); +} +menu[0].shadow.css({display:"block",zIndex:$.fn.menu.defaults.zIndex++,left:menu.css("left"),top:menu.css("top"),width:menu.outerWidth(),height:menu.outerHeight()}); +menu.css("z-index",$.fn.menu.defaults.zIndex++); +if(menu.hasClass("menu-top")){ +$.data(menu[0],"menu").options.onShow.call(menu[0]); +} +}); +}; +function _3ad(menu){ +if(!menu){ +return; +} +_3b4(menu); +menu.find("div.menu-item").each(function(){ +if(this.submenu){ +_3ad(this.submenu); +} +$(this).removeClass("menu-active"); +}); +function _3b4(m){ +m.stop(true,true); +if(m[0].shadow){ +m[0].shadow.hide(); +} +m.hide(); +}; +}; +function _3b5(_3b6,text){ +var _3b7=null; +var tmp=$("
                      "); +function find(menu){ +menu.children("div.menu-item").each(function(){ +var item=$(_3b6).menu("getItem",this); +var s=tmp.empty().html(item.text).text(); +if(text==$.trim(s)){ +_3b7=item; +}else{ +if(this.submenu&&!_3b7){ +find(this.submenu); +} +} +}); +}; +find($(_3b6)); +tmp.remove(); +return _3b7; +}; +function _3a0(_3b8,_3b9,_3ba){ +var t=$(_3b9); +if(!t.hasClass("menu-item")){ +return; +} +if(_3ba){ +t.addClass("menu-item-disabled"); +if(_3b9.onclick){ +_3b9.onclick1=_3b9.onclick; +_3b9.onclick=null; +} +}else{ +t.removeClass("menu-item-disabled"); +if(_3b9.onclick1){ +_3b9.onclick=_3b9.onclick1; +_3b9.onclick1=null; +} +} +}; +function _3bb(_3bc,_3bd){ +var menu=$(_3bc); +if(_3bd.parent){ +if(!_3bd.parent.submenu){ +var _3be=$("
                      ").appendTo("body"); +_3be.hide(); +_3bd.parent.submenu=_3be; +$("
                      ").appendTo(_3bd.parent); +} +menu=_3bd.parent.submenu; +} +if(_3bd.separator){ +var item=$("
                      ").appendTo(menu); +}else{ +var item=$("
                      ").appendTo(menu); +$("
                      ").html(_3bd.text).appendTo(item); +} +if(_3bd.iconCls){ +$("
                      ").addClass(_3bd.iconCls).appendTo(item); +} +if(_3bd.id){ +item.attr("id",_3bd.id); +} +if(_3bd.name){ +item[0].itemName=_3bd.name; +} +if(_3bd.href){ +item[0].itemHref=_3bd.href; +} +if(_3bd.onclick){ +if(typeof _3bd.onclick=="string"){ +item.attr("onclick",_3bd.onclick); +}else{ +item[0].onclick=eval(_3bd.onclick); +} +} +if(_3bd.handler){ +item[0].onclick=eval(_3bd.handler); +} +if(_3bd.disabled){ +_3a0(_3bc,item[0],true); +} +_3a1(_3bc,item); +_3a3(_3bc,menu); +_3a2(_3bc,menu); +}; +function _3bf(_3c0,_3c1){ +function _3c2(el){ +if(el.submenu){ +el.submenu.children("div.menu-item").each(function(){ +_3c2(this); +}); +var _3c3=el.submenu[0].shadow; +if(_3c3){ +_3c3.remove(); +} +el.submenu.remove(); +} +$(el).remove(); +}; +_3c2(_3c1); +}; +function _3c4(_3c5){ +$(_3c5).children("div.menu-item").each(function(){ +_3bf(_3c5,this); +}); +if(_3c5.shadow){ +_3c5.shadow.remove(); +} +$(_3c5).remove(); +}; +$.fn.menu=function(_3c6,_3c7){ +if(typeof _3c6=="string"){ +return $.fn.menu.methods[_3c6](this,_3c7); +} +_3c6=_3c6||{}; +return this.each(function(){ +var _3c8=$.data(this,"menu"); +if(_3c8){ +$.extend(_3c8.options,_3c6); +}else{ +_3c8=$.data(this,"menu",{options:$.extend({},$.fn.menu.defaults,$.fn.menu.parseOptions(this),_3c6)}); +init(this); +} +$(this).css({left:_3c8.options.left,top:_3c8.options.top}); +}); +}; +$.fn.menu.methods={options:function(jq){ +return $.data(jq[0],"menu").options; +},show:function(jq,pos){ +return jq.each(function(){ +_3b0(this,pos); +}); +},hide:function(jq){ +return jq.each(function(){ +_3a9(this); +}); +},destroy:function(jq){ +return jq.each(function(){ +_3c4(this); +}); +},setText:function(jq,_3c9){ +return jq.each(function(){ +$(_3c9.target).children("div.menu-text").html(_3c9.text); +}); +},setIcon:function(jq,_3ca){ +return jq.each(function(){ +var item=$(this).menu("getItem",_3ca.target); +if(item.iconCls){ +$(item.target).children("div.menu-icon").removeClass(item.iconCls).addClass(_3ca.iconCls); +}else{ +$("
                      ").addClass(_3ca.iconCls).appendTo(_3ca.target); +} +}); +},getItem:function(jq,_3cb){ +var t=$(_3cb); +var item={target:_3cb,id:t.attr("id"),text:$.trim(t.children("div.menu-text").html()),disabled:t.hasClass("menu-item-disabled"),name:_3cb.itemName,href:_3cb.itemHref,onclick:_3cb.onclick}; +var icon=t.children("div.menu-icon"); +if(icon.length){ +var cc=[]; +var aa=icon.attr("class").split(" "); +for(var i=0;i "})); +if(opts.menu){ +$(opts.menu).menu(); +var _3d2=$(opts.menu).menu("options"); +var _3d3=_3d2.onShow; +var _3d4=_3d2.onHide; +$.extend(_3d2,{onShow:function(){ +var _3d5=$(this).menu("options"); +var btn=$(_3d5.alignTo); +var opts=btn.menubutton("options"); +btn.addClass((opts.plain==true)?opts.cls.btn2:opts.cls.btn1); +_3d3.call(this); +},onHide:function(){ +var _3d6=$(this).menu("options"); +var btn=$(_3d6.alignTo); +var opts=btn.menubutton("options"); +btn.removeClass((opts.plain==true)?opts.cls.btn2:opts.cls.btn1); +_3d4.call(this); +}}); +} +_3d7(_3d1,opts.disabled); +}; +function _3d7(_3d8,_3d9){ +var opts=$.data(_3d8,"menubutton").options; +opts.disabled=_3d9; +var btn=$(_3d8); +var t=btn.find("."+opts.cls.trigger); +if(!t.length){ +t=btn; +} +t.unbind(".menubutton"); +if(_3d9){ +btn.linkbutton("disable"); +}else{ +btn.linkbutton("enable"); +var _3da=null; +t.bind("click.menubutton",function(){ +_3db(_3d8); +return false; +}).bind("mouseenter.menubutton",function(){ +_3da=setTimeout(function(){ +_3db(_3d8); +},opts.duration); +return false; +}).bind("mouseleave.menubutton",function(){ +if(_3da){ +clearTimeout(_3da); +} +}); +} +}; +function _3db(_3dc){ +var opts=$.data(_3dc,"menubutton").options; +if(opts.disabled||!opts.menu){ +return; +} +$("body>div.menu-top").menu("hide"); +var btn=$(_3dc); +var mm=$(opts.menu); +if(mm.length){ +mm.menu("options").alignTo=btn; +mm.menu("show",{alignTo:btn}); +} +btn.blur(); +}; +$.fn.menubutton=function(_3dd,_3de){ +if(typeof _3dd=="string"){ +var _3df=$.fn.menubutton.methods[_3dd]; +if(_3df){ +return _3df(this,_3de); +}else{ +return this.linkbutton(_3dd,_3de); +} +} +_3dd=_3dd||{}; +return this.each(function(){ +var _3e0=$.data(this,"menubutton"); +if(_3e0){ +$.extend(_3e0.options,_3dd); +}else{ +$.data(this,"menubutton",{options:$.extend({},$.fn.menubutton.defaults,$.fn.menubutton.parseOptions(this),_3dd)}); +$(this).removeAttr("disabled"); +} +init(this); +}); +}; +$.fn.menubutton.methods={options:function(jq){ +var _3e1=jq.linkbutton("options"); +var _3e2=$.data(jq[0],"menubutton").options; +_3e2.toggle=_3e1.toggle; +_3e2.selected=_3e1.selected; +return _3e2; +},enable:function(jq){ +return jq.each(function(){ +_3d7(this,false); +}); +},disable:function(jq){ +return jq.each(function(){ +_3d7(this,true); +}); +},destroy:function(jq){ +return jq.each(function(){ +var opts=$(this).menubutton("options"); +if(opts.menu){ +$(opts.menu).menu("destroy"); +} +$(this).remove(); +}); +}}; +$.fn.menubutton.parseOptions=function(_3e3){ +var t=$(_3e3); +return $.extend({},$.fn.linkbutton.parseOptions(_3e3),$.parser.parseOptions(_3e3,["menu",{plain:"boolean",duration:"number"}])); +}; +$.fn.menubutton.defaults=$.extend({},$.fn.linkbutton.defaults,{plain:true,menu:null,duration:100,cls:{btn1:"m-btn-active",btn2:"m-btn-plain-active",arrow:"m-btn-downarrow",trigger:"m-btn"}}); +})(jQuery); +(function($){ +function init(_3e4){ +var opts=$.data(_3e4,"splitbutton").options; +$(_3e4).menubutton(opts); +}; +$.fn.splitbutton=function(_3e5,_3e6){ +if(typeof _3e5=="string"){ +var _3e7=$.fn.splitbutton.methods[_3e5]; +if(_3e7){ +return _3e7(this,_3e6); +}else{ +return this.menubutton(_3e5,_3e6); +} +} +_3e5=_3e5||{}; +return this.each(function(){ +var _3e8=$.data(this,"splitbutton"); +if(_3e8){ +$.extend(_3e8.options,_3e5); +}else{ +$.data(this,"splitbutton",{options:$.extend({},$.fn.splitbutton.defaults,$.fn.splitbutton.parseOptions(this),_3e5)}); +$(this).removeAttr("disabled"); +} +init(this); +}); +}; +$.fn.splitbutton.methods={options:function(jq){ +var _3e9=jq.menubutton("options"); +var _3ea=$.data(jq[0],"splitbutton").options; +$.extend(_3ea,{disabled:_3e9.disabled,toggle:_3e9.toggle,selected:_3e9.selected}); +return _3ea; +}}; +$.fn.splitbutton.parseOptions=function(_3eb){ +var t=$(_3eb); +return $.extend({},$.fn.linkbutton.parseOptions(_3eb),$.parser.parseOptions(_3eb,["menu",{plain:"boolean",duration:"number"}])); +}; +$.fn.splitbutton.defaults=$.extend({},$.fn.linkbutton.defaults,{plain:true,menu:null,duration:100,cls:{btn1:"s-btn-active",btn2:"s-btn-plain-active",arrow:"s-btn-downarrow",trigger:"s-btn-downarrow"}}); +})(jQuery); +(function($){ +function init(_3ec){ +$(_3ec).addClass("searchbox-f").hide(); +var span=$("").insertAfter(_3ec); +var _3ed=$("").appendTo(span); +$("").appendTo(span); +var name=$(_3ec).attr("name"); +if(name){ +_3ed.attr("name",name); +$(_3ec).removeAttr("name").attr("searchboxName",name); +} +return span; +}; +function _3ee(_3ef,_3f0){ +var opts=$.data(_3ef,"searchbox").options; +var sb=$.data(_3ef,"searchbox").searchbox; +if(_3f0){ +opts.width=_3f0; +} +sb.appendTo("body"); +if(isNaN(opts.width)){ +opts.width=sb._outerWidth(); +} +var _3f1=sb.find("span.searchbox-button"); +var menu=sb.find("a.searchbox-menu"); +var _3f2=sb.find("input.searchbox-text"); +sb._outerWidth(opts.width)._outerHeight(opts.height); +_3f2._outerWidth(sb.width()-menu._outerWidth()-_3f1._outerWidth()); +_3f2.css({height:sb.height()+"px",lineHeight:sb.height()+"px"}); +menu._outerHeight(sb.height()); +_3f1._outerHeight(sb.height()); +var _3f3=menu.find("span.l-btn-left"); +_3f3._outerHeight(sb.height()); +_3f3.find("span.l-btn-text,span.m-btn-downarrow").css({height:_3f3.height()+"px",lineHeight:_3f3.height()+"px"}); +sb.insertAfter(_3ef); +}; +function _3f4(_3f5){ +var _3f6=$.data(_3f5,"searchbox"); +var opts=_3f6.options; +if(opts.menu){ +_3f6.menu=$(opts.menu).menu({onClick:function(item){ +_3f7(item); +}}); +var item=_3f6.menu.children("div.menu-item:first"); +_3f6.menu.children("div.menu-item").each(function(){ +var _3f8=$.extend({},$.parser.parseOptions(this),{selected:($(this).attr("selected")?true:undefined)}); +if(_3f8.selected){ +item=$(this); +return false; +} +}); +item.triggerHandler("click"); +}else{ +_3f6.searchbox.find("a.searchbox-menu").remove(); +_3f6.menu=null; +} +function _3f7(item){ +_3f6.searchbox.find("a.searchbox-menu").remove(); +var mb=$("").html(item.text); +mb.prependTo(_3f6.searchbox).menubutton({menu:_3f6.menu,iconCls:item.iconCls}); +_3f6.searchbox.find("input.searchbox-text").attr("name",item.name||item.text); +_3ee(_3f5); +}; +}; +function _3f9(_3fa){ +var _3fb=$.data(_3fa,"searchbox"); +var opts=_3fb.options; +var _3fc=_3fb.searchbox.find("input.searchbox-text"); +var _3fd=_3fb.searchbox.find(".searchbox-button"); +_3fc.unbind(".searchbox").bind("blur.searchbox",function(e){ +opts.value=$(this).val(); +if(opts.value==""){ +$(this).val(opts.prompt); +$(this).addClass("searchbox-prompt"); +}else{ +$(this).removeClass("searchbox-prompt"); +} +}).bind("focus.searchbox",function(e){ +if($(this).val()!=opts.value){ +$(this).val(opts.value); +} +$(this).removeClass("searchbox-prompt"); +}).bind("keydown.searchbox",function(e){ +if(e.keyCode==13){ +e.preventDefault(); +opts.value=$(this).val(); +opts.searcher.call(_3fa,opts.value,_3fc._propAttr("name")); +return false; +} +}); +_3fd.unbind(".searchbox").bind("click.searchbox",function(){ +opts.searcher.call(_3fa,opts.value,_3fc._propAttr("name")); +}).bind("mouseenter.searchbox",function(){ +$(this).addClass("searchbox-button-hover"); +}).bind("mouseleave.searchbox",function(){ +$(this).removeClass("searchbox-button-hover"); +}); +}; +function _3fe(_3ff){ +var _400=$.data(_3ff,"searchbox"); +var opts=_400.options; +var _401=_400.searchbox.find("input.searchbox-text"); +if(opts.value==""){ +_401.val(opts.prompt); +_401.addClass("searchbox-prompt"); +}else{ +_401.val(opts.value); +_401.removeClass("searchbox-prompt"); +} +}; +$.fn.searchbox=function(_402,_403){ +if(typeof _402=="string"){ +return $.fn.searchbox.methods[_402](this,_403); +} +_402=_402||{}; +return this.each(function(){ +var _404=$.data(this,"searchbox"); +if(_404){ +$.extend(_404.options,_402); +}else{ +_404=$.data(this,"searchbox",{options:$.extend({},$.fn.searchbox.defaults,$.fn.searchbox.parseOptions(this),_402),searchbox:init(this)}); +} +_3f4(this); +_3fe(this); +_3f9(this); +_3ee(this); +}); +}; +$.fn.searchbox.methods={options:function(jq){ +return $.data(jq[0],"searchbox").options; +},menu:function(jq){ +return $.data(jq[0],"searchbox").menu; +},textbox:function(jq){ +return $.data(jq[0],"searchbox").searchbox.find("input.searchbox-text"); +},getValue:function(jq){ +return $.data(jq[0],"searchbox").options.value; +},setValue:function(jq,_405){ +return jq.each(function(){ +$(this).searchbox("options").value=_405; +$(this).searchbox("textbox").val(_405); +$(this).searchbox("textbox").blur(); +}); +},getName:function(jq){ +return $.data(jq[0],"searchbox").searchbox.find("input.searchbox-text").attr("name"); +},selectName:function(jq,name){ +return jq.each(function(){ +var menu=$.data(this,"searchbox").menu; +if(menu){ +menu.children("div.menu-item[name=\""+name+"\"]").triggerHandler("click"); +} +}); +},destroy:function(jq){ +return jq.each(function(){ +var menu=$(this).searchbox("menu"); +if(menu){ +menu.menu("destroy"); +} +$.data(this,"searchbox").searchbox.remove(); +$(this).remove(); +}); +},resize:function(jq,_406){ +return jq.each(function(){ +_3ee(this,_406); +}); +}}; +$.fn.searchbox.parseOptions=function(_407){ +var t=$(_407); +return $.extend({},$.parser.parseOptions(_407,["width","height","prompt","menu"]),{value:t.val(),searcher:(t.attr("searcher")?eval(t.attr("searcher")):undefined)}); +}; +$.fn.searchbox.defaults={width:"auto",height:22,prompt:"",value:"",menu:null,searcher:function(_408,name){ +}}; +})(jQuery); +(function($){ +function init(_409){ +$(_409).addClass("validatebox-text"); +}; +function _40a(_40b){ +var _40c=$.data(_40b,"validatebox"); +_40c.validating=false; +if(_40c.timer){ +clearTimeout(_40c.timer); +} +$(_40b).tooltip("destroy"); +$(_40b).unbind(); +$(_40b).remove(); +}; +function _40d(_40e){ +var box=$(_40e); +var _40f=$.data(_40e,"validatebox"); +box.unbind(".validatebox"); +if(_40f.options.novalidate){ +return; +} +box.bind("focus.validatebox",function(){ +_40f.validating=true; +_40f.value=undefined; +(function(){ +if(_40f.validating){ +if(_40f.value!=box.val()){ +_40f.value=box.val(); +if(_40f.timer){ +clearTimeout(_40f.timer); +} +_40f.timer=setTimeout(function(){ +$(_40e).validatebox("validate"); +},_40f.options.delay); +}else{ +_414(_40e); +} +setTimeout(arguments.callee,200); +} +})(); +}).bind("blur.validatebox",function(){ +if(_40f.timer){ +clearTimeout(_40f.timer); +_40f.timer=undefined; +} +_40f.validating=false; +_410(_40e); +}).bind("mouseenter.validatebox",function(){ +if(box.hasClass("validatebox-invalid")){ +_411(_40e); +} +}).bind("mouseleave.validatebox",function(){ +if(!_40f.validating){ +_410(_40e); +} +}); +}; +function _411(_412){ +var _413=$.data(_412,"validatebox"); +var opts=_413.options; +$(_412).tooltip($.extend({},opts.tipOptions,{content:_413.message,position:opts.tipPosition,deltaX:opts.deltaX})).tooltip("show"); +_413.tip=true; +}; +function _414(_415){ +var _416=$.data(_415,"validatebox"); +if(_416&&_416.tip){ +$(_415).tooltip("reposition"); +} +}; +function _410(_417){ +var _418=$.data(_417,"validatebox"); +_418.tip=false; +$(_417).tooltip("hide"); +}; +function _419(_41a){ +var _41b=$.data(_41a,"validatebox"); +var opts=_41b.options; +var box=$(_41a); +var _41c=box.val(); +function _41d(msg){ +_41b.message=msg; +}; +function _41e(_41f){ +var _420=/([a-zA-Z_]+)(.*)/.exec(_41f); +var rule=opts.rules[_420[1]]; +if(rule&&_41c){ +var _421=eval(_420[2]); +if(!rule["validator"](_41c,_421)){ +box.addClass("validatebox-invalid"); +var _422=rule["message"]; +if(_421){ +for(var i=0;i<_421.length;i++){ +_422=_422.replace(new RegExp("\\{"+i+"\\}","g"),_421[i]); +} +} +_41d(opts.invalidMessage||_422); +if(_41b.validating){ +_411(_41a); +} +return false; +} +} +return true; +}; +box.removeClass("validatebox-invalid"); +_410(_41a); +if(opts.novalidate||box.is(":disabled")){ +return true; +} +if(opts.required){ +if(_41c==""){ +box.addClass("validatebox-invalid"); +_41d(opts.missingMessage); +if(_41b.validating){ +_411(_41a); +} +return false; +} +} +if(opts.validType){ +if(typeof opts.validType=="string"){ +if(!_41e(opts.validType)){ +return false; +} +}else{ +for(var i=0;i=_42d[0]&&len<=_42d[1]; +},message:"Please enter a value between {0} and {1}."},remote:{validator:function(_42e,_42f){ +var data={}; +data[_42f[1]]=_42e; +var _430=$.ajax({url:_42f[0],dataType:"json",data:data,async:false,cache:false,type:"post"}).responseText; +return _430=="true"; +},message:"Please fix this field."}}}; +})(jQuery); +(function($){ +function _431(_432,_433){ +_433=_433||{}; +var _434={}; +if(_433.onSubmit){ +if(_433.onSubmit.call(_432,_434)==false){ +return; +} +} +var form=$(_432); +if(_433.url){ +form.attr("action",_433.url); +} +var _435="easyui_frame_"+(new Date().getTime()); +var _436=$("").attr("src",window.ActiveXObject?"javascript:false":"about:blank").css({position:"absolute",top:-1000,left:-1000}); +var t=form.attr("target"),a=form.attr("action"); +form.attr("target",_435); +var _437=$(); +try{ +_436.appendTo("body"); +_436.bind("load",cb); +for(var n in _434){ +var f=$("").val(_434[n]).appendTo(form); +_437=_437.add(f); +} +_438(); +form[0].submit(); +} +finally{ +form.attr("action",a); +t?form.attr("target",t):form.removeAttr("target"); +_437.remove(); +} +function _438(){ +var f=$("#"+_435); +if(!f.length){ +return; +} +try{ +var s=f.contents()[0].readyState; +if(s&&s.toLowerCase()=="uninitialized"){ +setTimeout(_438,100); +} +} +catch(e){ +cb(); +} +}; +var _439=10; +function cb(){ +var _43a=$("#"+_435); +if(!_43a.length){ +return; +} +_43a.unbind(); +var data=""; +try{ +var body=_43a.contents().find("body"); +data=body.html(); +if(data==""){ +if(--_439){ +setTimeout(cb,100); +return; +} +} +var ta=body.find(">textarea"); +if(ta.length){ +data=ta.val(); +}else{ +var pre=body.find(">pre"); +if(pre.length){ +data=pre.html(); +} +} +} +catch(e){ +} +if(_433.success){ +_433.success(data); +} +setTimeout(function(){ +_43a.unbind(); +_43a.remove(); +},100); +}; +}; +function load(_43b,data){ +if(!$.data(_43b,"form")){ +$.data(_43b,"form",{options:$.extend({},$.fn.form.defaults)}); +} +var opts=$.data(_43b,"form").options; +if(typeof data=="string"){ +var _43c={}; +if(opts.onBeforeLoad.call(_43b,_43c)==false){ +return; +} +$.ajax({url:data,data:_43c,dataType:"json",success:function(data){ +_43d(data); +},error:function(){ +opts.onLoadError.apply(_43b,arguments); +}}); +}else{ +_43d(data); +} +function _43d(data){ +var form=$(_43b); +for(var name in data){ +var val=data[name]; +var rr=_43e(name,val); +if(!rr.length){ +var _43f=_440(name,val); +if(!_43f){ +$("input[name=\""+name+"\"]",form).val(val); +$("textarea[name=\""+name+"\"]",form).val(val); +$("select[name=\""+name+"\"]",form).val(val); +} +} +_441(name,val); +} +opts.onLoadSuccess.call(_43b,data); +_447(_43b); +}; +function _43e(name,val){ +var rr=$(_43b).find("input[name=\""+name+"\"][type=radio], input[name=\""+name+"\"][type=checkbox]"); +rr._propAttr("checked",false); +rr.each(function(){ +var f=$(this); +if(f.val()==String(val)||$.inArray(f.val(),$.isArray(val)?val:[val])>=0){ +f._propAttr("checked",true); +} +}); +return rr; +}; +function _440(name,val){ +var _442=0; +var pp=["numberbox","slider"]; +for(var i=0;i").insertAfter(_459); +var name=$(_459).attr("name"); +if(name){ +v.attr("name",name); +$(_459).removeAttr("name").attr("numberboxName",name); +} +return v; +}; +function _45a(_45b){ +var opts=$.data(_45b,"numberbox").options; +var fn=opts.onChange; +opts.onChange=function(){ +}; +_45c(_45b,opts.parser.call(_45b,opts.value)); +opts.onChange=fn; +opts.originalValue=_45d(_45b); +}; +function _45d(_45e){ +return $.data(_45e,"numberbox").field.val(); +}; +function _45c(_45f,_460){ +var _461=$.data(_45f,"numberbox"); +var opts=_461.options; +var _462=_45d(_45f); +_460=opts.parser.call(_45f,_460); +opts.value=_460; +_461.field.val(_460); +$(_45f).val(opts.formatter.call(_45f,_460)); +if(_462!=_460){ +opts.onChange.call(_45f,_460,_462); +} +}; +function _463(_464){ +var opts=$.data(_464,"numberbox").options; +$(_464).unbind(".numberbox").bind("keypress.numberbox",function(e){ +return opts.filter.call(_464,e); +}).bind("blur.numberbox",function(){ +_45c(_464,$(this).val()); +$(this).val(opts.formatter.call(_464,_45d(_464))); +}).bind("focus.numberbox",function(){ +var vv=_45d(_464); +if(vv!=opts.parser.call(_464,$(this).val())){ +$(this).val(opts.formatter.call(_464,vv)); +} +}); +}; +function _465(_466){ +if($.fn.validatebox){ +var opts=$.data(_466,"numberbox").options; +$(_466).validatebox(opts); +} +}; +function _467(_468,_469){ +var opts=$.data(_468,"numberbox").options; +if(_469){ +opts.disabled=true; +$(_468).attr("disabled",true); +}else{ +opts.disabled=false; +$(_468).removeAttr("disabled"); +} +}; +$.fn.numberbox=function(_46a,_46b){ +if(typeof _46a=="string"){ +var _46c=$.fn.numberbox.methods[_46a]; +if(_46c){ +return _46c(this,_46b); +}else{ +return this.validatebox(_46a,_46b); +} +} +_46a=_46a||{}; +return this.each(function(){ +var _46d=$.data(this,"numberbox"); +if(_46d){ +$.extend(_46d.options,_46a); +}else{ +_46d=$.data(this,"numberbox",{options:$.extend({},$.fn.numberbox.defaults,$.fn.numberbox.parseOptions(this),_46a),field:init(this)}); +$(this).removeAttr("disabled"); +$(this).css({imeMode:"disabled"}); +} +_467(this,_46d.options.disabled); +_463(this); +_465(this); +_45a(this); +}); +}; +$.fn.numberbox.methods={options:function(jq){ +return $.data(jq[0],"numberbox").options; +},destroy:function(jq){ +return jq.each(function(){ +$.data(this,"numberbox").field.remove(); +$(this).validatebox("destroy"); +$(this).remove(); +}); +},disable:function(jq){ +return jq.each(function(){ +_467(this,true); +}); +},enable:function(jq){ +return jq.each(function(){ +_467(this,false); +}); +},fix:function(jq){ +return jq.each(function(){ +_45c(this,$(this).val()); +}); +},setValue:function(jq,_46e){ +return jq.each(function(){ +_45c(this,_46e); +}); +},getValue:function(jq){ +return _45d(jq[0]); +},clear:function(jq){ +return jq.each(function(){ +var _46f=$.data(this,"numberbox"); +_46f.field.val(""); +$(this).val(""); +}); +},reset:function(jq){ +return jq.each(function(){ +var opts=$(this).numberbox("options"); +$(this).numberbox("setValue",opts.originalValue); +}); +}}; +$.fn.numberbox.parseOptions=function(_470){ +var t=$(_470); +return $.extend({},$.fn.validatebox.parseOptions(_470),$.parser.parseOptions(_470,["decimalSeparator","groupSeparator","suffix",{min:"number",max:"number",precision:"number"}]),{prefix:(t.attr("prefix")?t.attr("prefix"):undefined),disabled:(t.attr("disabled")?true:undefined),value:(t.val()||undefined)}); +}; +$.fn.numberbox.defaults=$.extend({},$.fn.validatebox.defaults,{disabled:false,value:"",min:null,max:null,precision:0,decimalSeparator:".",groupSeparator:"",prefix:"",suffix:"",filter:function(e){ +var opts=$(this).numberbox("options"); +if(e.which==45){ +return ($(this).val().indexOf("-")==-1?true:false); +} +var c=String.fromCharCode(e.which); +if(c==opts.decimalSeparator){ +return ($(this).val().indexOf(c)==-1?true:false); +}else{ +if(c==opts.groupSeparator){ +return true; +}else{ +if((e.which>=48&&e.which<=57&&e.ctrlKey==false&&e.shiftKey==false)||e.which==0||e.which==8){ +return true; +}else{ +if(e.ctrlKey==true&&(e.which==99||e.which==118)){ +return true; +}else{ +return false; +} +} +} +} +},formatter:function(_471){ +if(!_471){ +return _471; +} +_471=_471+""; +var opts=$(this).numberbox("options"); +var s1=_471,s2=""; +var dpos=_471.indexOf("."); +if(dpos>=0){ +s1=_471.substring(0,dpos); +s2=_471.substring(dpos+1,_471.length); +} +if(opts.groupSeparator){ +var p=/(\d+)(\d{3})/; +while(p.test(s1)){ +s1=s1.replace(p,"$1"+opts.groupSeparator+"$2"); +} +} +if(s2){ +return opts.prefix+s1+opts.decimalSeparator+s2+opts.suffix; +}else{ +return opts.prefix+s1+opts.suffix; +} +},parser:function(s){ +s=s+""; +var opts=$(this).numberbox("options"); +if(parseFloat(s)!=s){ +if(opts.prefix){ +s=$.trim(s.replace(new RegExp("\\"+$.trim(opts.prefix),"g"),"")); +} +if(opts.suffix){ +s=$.trim(s.replace(new RegExp("\\"+$.trim(opts.suffix),"g"),"")); +} +if(opts.groupSeparator){ +s=$.trim(s.replace(new RegExp("\\"+opts.groupSeparator,"g"),"")); +} +if(opts.decimalSeparator){ +s=$.trim(s.replace(new RegExp("\\"+opts.decimalSeparator,"g"),".")); +} +s=s.replace(/\s/g,""); +} +var val=parseFloat(s).toFixed(opts.precision); +if(isNaN(val)){ +val=""; +}else{ +if(typeof (opts.min)=="number"&&valopts.max){ +val=opts.max.toFixed(opts.precision); +} +} +} +return val; +},onChange:function(_472,_473){ +}}); +})(jQuery); +(function($){ +function _474(_475){ +var opts=$.data(_475,"calendar").options; +var t=$(_475); +opts.fit?$.extend(opts,t._fit()):t._fit(false); +var _476=t.find(".calendar-header"); +t._outerWidth(opts.width); +t._outerHeight(opts.height); +t.find(".calendar-body")._outerHeight(t.height()-_476._outerHeight()); +}; +function init(_477){ +$(_477).addClass("calendar").html("
                      "+"
                      "+"
                      "+"
                      "+"
                      "+"
                      "+"Aprial 2010"+"
                      "+"
                      "+"
                      "+"
                      "+"
                      "+""+""+""+"
                      "+"
                      "+"
                      "+"
                      "+"
                      "); +$(_477).find(".calendar-title span").hover(function(){ +$(this).addClass("calendar-menu-hover"); +},function(){ +$(this).removeClass("calendar-menu-hover"); +}).click(function(){ +var menu=$(_477).find(".calendar-menu"); +if(menu.is(":visible")){ +menu.hide(); +}else{ +_47e(_477); +} +}); +$(".calendar-prevmonth,.calendar-nextmonth,.calendar-prevyear,.calendar-nextyear",_477).hover(function(){ +$(this).addClass("calendar-nav-hover"); +},function(){ +$(this).removeClass("calendar-nav-hover"); +}); +$(_477).find(".calendar-nextmonth").click(function(){ +_478(_477,1); +}); +$(_477).find(".calendar-prevmonth").click(function(){ +_478(_477,-1); +}); +$(_477).find(".calendar-nextyear").click(function(){ +_47b(_477,1); +}); +$(_477).find(".calendar-prevyear").click(function(){ +_47b(_477,-1); +}); +$(_477).bind("_resize",function(){ +var opts=$.data(_477,"calendar").options; +if(opts.fit==true){ +_474(_477); +} +return false; +}); +}; +function _478(_479,_47a){ +var opts=$.data(_479,"calendar").options; +opts.month+=_47a; +if(opts.month>12){ +opts.year++; +opts.month=1; +}else{ +if(opts.month<1){ +opts.year--; +opts.month=12; +} +} +show(_479); +var menu=$(_479).find(".calendar-menu-month-inner"); +menu.find("td.calendar-selected").removeClass("calendar-selected"); +menu.find("td:eq("+(opts.month-1)+")").addClass("calendar-selected"); +}; +function _47b(_47c,_47d){ +var opts=$.data(_47c,"calendar").options; +opts.year+=_47d; +show(_47c); +var menu=$(_47c).find(".calendar-menu-year"); +menu.val(opts.year); +}; +function _47e(_47f){ +var opts=$.data(_47f,"calendar").options; +$(_47f).find(".calendar-menu").show(); +if($(_47f).find(".calendar-menu-month-inner").is(":empty")){ +$(_47f).find(".calendar-menu-month-inner").empty(); +var t=$("
                      ").appendTo($(_47f).find(".calendar-menu-month-inner")); +var idx=0; +for(var i=0;i<3;i++){ +var tr=$("").appendTo(t); +for(var j=0;j<4;j++){ +$("").html(opts.months[idx++]).attr("abbr",idx).appendTo(tr); +} +} +$(_47f).find(".calendar-menu-prev,.calendar-menu-next").hover(function(){ +$(this).addClass("calendar-menu-hover"); +},function(){ +$(this).removeClass("calendar-menu-hover"); +}); +$(_47f).find(".calendar-menu-next").click(function(){ +var y=$(_47f).find(".calendar-menu-year"); +if(!isNaN(y.val())){ +y.val(parseInt(y.val())+1); +} +}); +$(_47f).find(".calendar-menu-prev").click(function(){ +var y=$(_47f).find(".calendar-menu-year"); +if(!isNaN(y.val())){ +y.val(parseInt(y.val()-1)); +} +}); +$(_47f).find(".calendar-menu-year").keypress(function(e){ +if(e.keyCode==13){ +_480(); +} +}); +$(_47f).find(".calendar-menu-month").hover(function(){ +$(this).addClass("calendar-menu-hover"); +},function(){ +$(this).removeClass("calendar-menu-hover"); +}).click(function(){ +var menu=$(_47f).find(".calendar-menu"); +menu.find(".calendar-selected").removeClass("calendar-selected"); +$(this).addClass("calendar-selected"); +_480(); +}); +} +function _480(){ +var menu=$(_47f).find(".calendar-menu"); +var year=menu.find(".calendar-menu-year").val(); +var _481=menu.find(".calendar-selected").attr("abbr"); +if(!isNaN(year)){ +opts.year=parseInt(year); +opts.month=parseInt(_481); +show(_47f); +} +menu.hide(); +}; +var body=$(_47f).find(".calendar-body"); +var sele=$(_47f).find(".calendar-menu"); +var _482=sele.find(".calendar-menu-year-inner"); +var _483=sele.find(".calendar-menu-month-inner"); +_482.find("input").val(opts.year).focus(); +_483.find("td.calendar-selected").removeClass("calendar-selected"); +_483.find("td:eq("+(opts.month-1)+")").addClass("calendar-selected"); +sele._outerWidth(body._outerWidth()); +sele._outerHeight(body._outerHeight()); +_483._outerHeight(sele.height()-_482._outerHeight()); +}; +function _484(_485,year,_486){ +var opts=$.data(_485,"calendar").options; +var _487=[]; +var _488=new Date(year,_486,0).getDate(); +for(var i=1;i<=_488;i++){ +_487.push([year,_486,i]); +} +var _489=[],week=[]; +var _48a=-1; +while(_487.length>0){ +var date=_487.shift(); +week.push(date); +var day=new Date(date[0],date[1]-1,date[2]).getDay(); +if(_48a==day){ +day=0; +}else{ +if(day==(opts.firstDay==0?7:opts.firstDay)-1){ +_489.push(week); +week=[]; +} +} +_48a=day; +} +if(week.length){ +_489.push(week); +} +var _48b=_489[0]; +if(_48b.length<7){ +while(_48b.length<7){ +var _48c=_48b[0]; +var date=new Date(_48c[0],_48c[1]-1,_48c[2]-1); +_48b.unshift([date.getFullYear(),date.getMonth()+1,date.getDate()]); +} +}else{ +var _48c=_48b[0]; +var week=[]; +for(var i=1;i<=7;i++){ +var date=new Date(_48c[0],_48c[1]-1,_48c[2]-i); +week.unshift([date.getFullYear(),date.getMonth()+1,date.getDate()]); +} +_489.unshift(week); +} +var _48d=_489[_489.length-1]; +while(_48d.length<7){ +var _48e=_48d[_48d.length-1]; +var date=new Date(_48e[0],_48e[1]-1,_48e[2]+1); +_48d.push([date.getFullYear(),date.getMonth()+1,date.getDate()]); +} +if(_489.length<6){ +var _48e=_48d[_48d.length-1]; +var week=[]; +for(var i=1;i<=7;i++){ +var date=new Date(_48e[0],_48e[1]-1,_48e[2]+i); +week.push([date.getFullYear(),date.getMonth()+1,date.getDate()]); +} +_489.push(week); +} +return _489; +}; +function show(_48f){ +var opts=$.data(_48f,"calendar").options; +$(_48f).find(".calendar-title span").html(opts.months[opts.month-1]+" "+opts.year); +var body=$(_48f).find("div.calendar-body"); +body.find(">table").remove(); +var t=$("
                      ").prependTo(body); +var tr=$("").appendTo(t.find("thead")); +for(var i=opts.firstDay;i"+opts.weeks[i]+""); +} +for(var i=0;i"+opts.weeks[i]+""); +} +var _490=_484(_48f,opts.year,opts.month); +for(var i=0;i<_490.length;i++){ +var week=_490[i]; +var tr=$("").appendTo(t.find("tbody")); +for(var j=0;j").attr("abbr",day[0]+","+day[1]+","+day[2]).html(day[2]).appendTo(tr); +} +} +t.find("td[abbr^=\""+opts.year+","+opts.month+"\"]").removeClass("calendar-other-month"); +var now=new Date(); +var _491=now.getFullYear()+","+(now.getMonth()+1)+","+now.getDate(); +t.find("td[abbr=\""+_491+"\"]").addClass("calendar-today"); +if(opts.current){ +t.find(".calendar-selected").removeClass("calendar-selected"); +var _492=opts.current.getFullYear()+","+(opts.current.getMonth()+1)+","+opts.current.getDate(); +t.find("td[abbr=\""+_492+"\"]").addClass("calendar-selected"); +} +var _493=6-opts.firstDay; +var _494=_493+1; +if(_493>=7){ +_493-=7; +} +if(_494>=7){ +_494-=7; +} +t.find("tr").find("td:eq("+_493+")").addClass("calendar-saturday"); +t.find("tr").find("td:eq("+_494+")").addClass("calendar-sunday"); +t.find("td").hover(function(){ +$(this).addClass("calendar-hover"); +},function(){ +$(this).removeClass("calendar-hover"); +}).click(function(){ +t.find(".calendar-selected").removeClass("calendar-selected"); +$(this).addClass("calendar-selected"); +var _495=$(this).attr("abbr").split(","); +opts.current=new Date(_495[0],parseInt(_495[1])-1,_495[2]); +opts.onSelect.call(_48f,opts.current); +}); +}; +$.fn.calendar=function(_496,_497){ +if(typeof _496=="string"){ +return $.fn.calendar.methods[_496](this,_497); +} +_496=_496||{}; +return this.each(function(){ +var _498=$.data(this,"calendar"); +if(_498){ +$.extend(_498.options,_496); +}else{ +_498=$.data(this,"calendar",{options:$.extend({},$.fn.calendar.defaults,$.fn.calendar.parseOptions(this),_496)}); +init(this); +} +if(_498.options.border==false){ +$(this).addClass("calendar-noborder"); +} +_474(this); +show(this); +$(this).find("div.calendar-menu").hide(); +}); +}; +$.fn.calendar.methods={options:function(jq){ +return $.data(jq[0],"calendar").options; +},resize:function(jq){ +return jq.each(function(){ +_474(this); +}); +},moveTo:function(jq,date){ +return jq.each(function(){ +$(this).calendar({year:date.getFullYear(),month:date.getMonth()+1,current:date}); +}); +}}; +$.fn.calendar.parseOptions=function(_499){ +var t=$(_499); +return $.extend({},$.parser.parseOptions(_499,["width","height",{firstDay:"number",fit:"boolean",border:"boolean"}])); +}; +$.fn.calendar.defaults={width:180,height:180,fit:false,border:true,firstDay:0,weeks:["S","M","T","W","T","F","S"],months:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],year:new Date().getFullYear(),month:new Date().getMonth()+1,current:new Date(),onSelect:function(date){ +}}; +})(jQuery); +(function($){ +function init(_49a){ +var _49b=$(""+""+""+""+""+"").insertAfter(_49a); +$(_49a).addClass("spinner-text spinner-f").prependTo(_49b); +return _49b; +}; +function _49c(_49d,_49e){ +var opts=$.data(_49d,"spinner").options; +var _49f=$.data(_49d,"spinner").spinner; +if(_49e){ +opts.width=_49e; +} +var _4a0=$("
                      ").insertBefore(_49f); +_49f.appendTo("body"); +if(isNaN(opts.width)){ +opts.width=$(_49d).outerWidth(); +} +var _4a1=_49f.find(".spinner-arrow"); +_49f._outerWidth(opts.width)._outerHeight(opts.height); +$(_49d)._outerWidth(_49f.width()-_4a1.outerWidth()); +$(_49d).css({height:_49f.height()+"px",lineHeight:_49f.height()+"px"}); +_4a1._outerHeight(_49f.height()); +_4a1.find("span")._outerHeight(_4a1.height()/2); +_49f.insertAfter(_4a0); +_4a0.remove(); +}; +function _4a2(_4a3){ +var opts=$.data(_4a3,"spinner").options; +var _4a4=$.data(_4a3,"spinner").spinner; +_4a4.find(".spinner-arrow-up,.spinner-arrow-down").unbind(".spinner"); +if(!opts.disabled){ +_4a4.find(".spinner-arrow-up").bind("mouseenter.spinner",function(){ +$(this).addClass("spinner-arrow-hover"); +}).bind("mouseleave.spinner",function(){ +$(this).removeClass("spinner-arrow-hover"); +}).bind("click.spinner",function(){ +opts.spin.call(_4a3,false); +opts.onSpinUp.call(_4a3); +$(_4a3).validatebox("validate"); +}); +_4a4.find(".spinner-arrow-down").bind("mouseenter.spinner",function(){ +$(this).addClass("spinner-arrow-hover"); +}).bind("mouseleave.spinner",function(){ +$(this).removeClass("spinner-arrow-hover"); +}).bind("click.spinner",function(){ +opts.spin.call(_4a3,true); +opts.onSpinDown.call(_4a3); +$(_4a3).validatebox("validate"); +}); +} +}; +function _4a5(_4a6,_4a7){ +var opts=$.data(_4a6,"spinner").options; +if(_4a7){ +opts.disabled=true; +$(_4a6).attr("disabled",true); +}else{ +opts.disabled=false; +$(_4a6).removeAttr("disabled"); +} +}; +$.fn.spinner=function(_4a8,_4a9){ +if(typeof _4a8=="string"){ +var _4aa=$.fn.spinner.methods[_4a8]; +if(_4aa){ +return _4aa(this,_4a9); +}else{ +return this.validatebox(_4a8,_4a9); +} +} +_4a8=_4a8||{}; +return this.each(function(){ +var _4ab=$.data(this,"spinner"); +if(_4ab){ +$.extend(_4ab.options,_4a8); +}else{ +_4ab=$.data(this,"spinner",{options:$.extend({},$.fn.spinner.defaults,$.fn.spinner.parseOptions(this),_4a8),spinner:init(this)}); +$(this).removeAttr("disabled"); +} +_4ab.options.originalValue=_4ab.options.value; +$(this).val(_4ab.options.value); +$(this).attr("readonly",!_4ab.options.editable); +_4a5(this,_4ab.options.disabled); +_49c(this); +$(this).validatebox(_4ab.options); +_4a2(this); +}); +}; +$.fn.spinner.methods={options:function(jq){ +var opts=$.data(jq[0],"spinner").options; +return $.extend(opts,{value:jq.val()}); +},destroy:function(jq){ +return jq.each(function(){ +var _4ac=$.data(this,"spinner").spinner; +$(this).validatebox("destroy"); +_4ac.remove(); +}); +},resize:function(jq,_4ad){ +return jq.each(function(){ +_49c(this,_4ad); +}); +},enable:function(jq){ +return jq.each(function(){ +_4a5(this,false); +_4a2(this); +}); +},disable:function(jq){ +return jq.each(function(){ +_4a5(this,true); +_4a2(this); +}); +},getValue:function(jq){ +return jq.val(); +},setValue:function(jq,_4ae){ +return jq.each(function(){ +var opts=$.data(this,"spinner").options; +opts.value=_4ae; +$(this).val(_4ae); +}); +},clear:function(jq){ +return jq.each(function(){ +var opts=$.data(this,"spinner").options; +opts.value=""; +$(this).val(""); +}); +},reset:function(jq){ +return jq.each(function(){ +var opts=$(this).spinner("options"); +$(this).spinner("setValue",opts.originalValue); +}); +}}; +$.fn.spinner.parseOptions=function(_4af){ +var t=$(_4af); +return $.extend({},$.fn.validatebox.parseOptions(_4af),$.parser.parseOptions(_4af,["width","height","min","max",{increment:"number",editable:"boolean"}]),{value:(t.val()||undefined),disabled:(t.attr("disabled")?true:undefined)}); +}; +$.fn.spinner.defaults=$.extend({},$.fn.validatebox.defaults,{width:"auto",height:22,deltaX:19,value:"",min:null,max:null,increment:1,editable:true,disabled:false,spin:function(down){ +},onSpinUp:function(){ +},onSpinDown:function(){ +}}); +})(jQuery); +(function($){ +function _4b0(_4b1){ +$(_4b1).addClass("numberspinner-f"); +var opts=$.data(_4b1,"numberspinner").options; +$(_4b1).spinner(opts).numberbox(opts); +}; +function _4b2(_4b3,down){ +var opts=$.data(_4b3,"numberspinner").options; +var v=parseFloat($(_4b3).numberbox("getValue")||opts.value)||0; +if(down==true){ +v-=opts.increment; +}else{ +v+=opts.increment; +} +$(_4b3).numberbox("setValue",v); +}; +$.fn.numberspinner=function(_4b4,_4b5){ +if(typeof _4b4=="string"){ +var _4b6=$.fn.numberspinner.methods[_4b4]; +if(_4b6){ +return _4b6(this,_4b5); +}else{ +return this.spinner(_4b4,_4b5); +} +} +_4b4=_4b4||{}; +return this.each(function(){ +var _4b7=$.data(this,"numberspinner"); +if(_4b7){ +$.extend(_4b7.options,_4b4); +}else{ +$.data(this,"numberspinner",{options:$.extend({},$.fn.numberspinner.defaults,$.fn.numberspinner.parseOptions(this),_4b4)}); +} +_4b0(this); +}); +}; +$.fn.numberspinner.methods={options:function(jq){ +var opts=$.data(jq[0],"numberspinner").options; +return $.extend(opts,{value:jq.numberbox("getValue"),originalValue:jq.numberbox("options").originalValue}); +},setValue:function(jq,_4b8){ +return jq.each(function(){ +$(this).numberbox("setValue",_4b8); +}); +},getValue:function(jq){ +return jq.numberbox("getValue"); +},clear:function(jq){ +return jq.each(function(){ +$(this).spinner("clear"); +$(this).numberbox("clear"); +}); +},reset:function(jq){ +return jq.each(function(){ +var opts=$(this).numberspinner("options"); +$(this).numberspinner("setValue",opts.originalValue); +}); +}}; +$.fn.numberspinner.parseOptions=function(_4b9){ +return $.extend({},$.fn.spinner.parseOptions(_4b9),$.fn.numberbox.parseOptions(_4b9),{}); +}; +$.fn.numberspinner.defaults=$.extend({},$.fn.spinner.defaults,$.fn.numberbox.defaults,{spin:function(down){ +_4b2(this,down); +}}); +})(jQuery); +(function($){ +function _4ba(_4bb){ +var opts=$.data(_4bb,"timespinner").options; +$(_4bb).addClass("timespinner-f"); +$(_4bb).spinner(opts); +$(_4bb).unbind(".timespinner"); +$(_4bb).bind("click.timespinner",function(){ +var _4bc=0; +if(this.selectionStart!=null){ +_4bc=this.selectionStart; +}else{ +if(this.createTextRange){ +var _4bd=_4bb.createTextRange(); +var s=document.selection.createRange(); +s.setEndPoint("StartToStart",_4bd); +_4bc=s.text.length; +} +} +if(_4bc>=0&&_4bc<=2){ +opts.highlight=0; +}else{ +if(_4bc>=3&&_4bc<=5){ +opts.highlight=1; +}else{ +if(_4bc>=6&&_4bc<=8){ +opts.highlight=2; +} +} +} +_4bf(_4bb); +}).bind("blur.timespinner",function(){ +_4be(_4bb); +}); +}; +function _4bf(_4c0){ +var opts=$.data(_4c0,"timespinner").options; +var _4c1=0,end=0; +if(opts.highlight==0){ +_4c1=0; +end=2; +}else{ +if(opts.highlight==1){ +_4c1=3; +end=5; +}else{ +if(opts.highlight==2){ +_4c1=6; +end=8; +} +} +} +if(_4c0.selectionStart!=null){ +_4c0.setSelectionRange(_4c1,end); +}else{ +if(_4c0.createTextRange){ +var _4c2=_4c0.createTextRange(); +_4c2.collapse(); +_4c2.moveEnd("character",end); +_4c2.moveStart("character",_4c1); +_4c2.select(); +} +} +$(_4c0).focus(); +}; +function _4c3(_4c4,_4c5){ +var opts=$.data(_4c4,"timespinner").options; +if(!_4c5){ +return null; +} +var vv=_4c5.split(opts.separator); +for(var i=0;itime){ +time=_4c8; +} +if(_4c9&&_4c9"]; +for(var i=0;i<_4dc.length;i++){ +_4db.cache[_4dc[i][0]]={width:_4dc[i][1]}; +} +var _4dd=0; +for(var s in _4db.cache){ +var item=_4db.cache[s]; +item.index=_4dd++; +ss.push(s+"{width:"+item.width+"}"); +} +ss.push(""); +$(ss.join("\n")).appendTo(cc); +setTimeout(function(){ +cc.children("style:not(:last)").remove(); +},0); +},getRule:function(_4de){ +var _4df=cc.children("style:last")[0]; +var _4e0=_4df.styleSheet?_4df.styleSheet:(_4df.sheet||document.styleSheets[document.styleSheets.length-1]); +var _4e1=_4e0.cssRules||_4e0.rules; +return _4e1[_4de]; +},set:function(_4e2,_4e3){ +var item=_4db.cache[_4e2]; +if(item){ +item.width=_4e3; +var rule=this.getRule(item.index); +if(rule){ +rule.style["width"]=_4e3; +} +} +},remove:function(_4e4){ +var tmp=[]; +for(var s in _4db.cache){ +if(s.indexOf(_4e4)==-1){ +tmp.push([s,_4db.cache[s].width]); +} +} +_4db.cache={}; +this.add(tmp); +},dirty:function(_4e5){ +if(_4e5){ +_4db.dirty.push(_4e5); +} +},clean:function(){ +for(var i=0;i<_4db.dirty.length;i++){ +this.remove(_4db.dirty[i]); +} +_4db.dirty=[]; +}}; +}; +function _4e6(_4e7,_4e8){ +var opts=$.data(_4e7,"datagrid").options; +var _4e9=$.data(_4e7,"datagrid").panel; +if(_4e8){ +if(_4e8.width){ +opts.width=_4e8.width; +} +if(_4e8.height){ +opts.height=_4e8.height; +} +} +if(opts.fit==true){ +var p=_4e9.panel("panel").parent(); +opts.width=p.width(); +opts.height=p.height(); +} +_4e9.panel("resize",{width:opts.width,height:opts.height}); +}; +function _4ea(_4eb){ +var opts=$.data(_4eb,"datagrid").options; +var dc=$.data(_4eb,"datagrid").dc; +var wrap=$.data(_4eb,"datagrid").panel; +var _4ec=wrap.width(); +var _4ed=wrap.height(); +var view=dc.view; +var _4ee=dc.view1; +var _4ef=dc.view2; +var _4f0=_4ee.children("div.datagrid-header"); +var _4f1=_4ef.children("div.datagrid-header"); +var _4f2=_4f0.find("table"); +var _4f3=_4f1.find("table"); +view.width(_4ec); +var _4f4=_4f0.children("div.datagrid-header-inner").show(); +_4ee.width(_4f4.find("table").width()); +if(!opts.showHeader){ +_4f4.hide(); +} +_4ef.width(_4ec-_4ee._outerWidth()); +_4ee.children("div.datagrid-header,div.datagrid-body,div.datagrid-footer").width(_4ee.width()); +_4ef.children("div.datagrid-header,div.datagrid-body,div.datagrid-footer").width(_4ef.width()); +var hh; +_4f0.css("height",""); +_4f1.css("height",""); +_4f2.css("height",""); +_4f3.css("height",""); +hh=Math.max(_4f2.height(),_4f3.height()); +_4f2.height(hh); +_4f3.height(hh); +_4f0.add(_4f1)._outerHeight(hh); +if(opts.height!="auto"){ +var _4f5=_4ed-_4ef.children("div.datagrid-header")._outerHeight()-_4ef.children("div.datagrid-footer")._outerHeight()-wrap.children("div.datagrid-toolbar")._outerHeight(); +wrap.children("div.datagrid-pager").each(function(){ +_4f5-=$(this)._outerHeight(); +}); +dc.body1.add(dc.body2).children("table.datagrid-btable-frozen").css({position:"absolute",top:dc.header2._outerHeight()}); +var _4f6=dc.body2.children("table.datagrid-btable-frozen")._outerHeight(); +_4ee.add(_4ef).children("div.datagrid-body").css({marginTop:_4f6,height:(_4f5-_4f6)}); +} +view.height(_4ef.height()); +}; +function _4f7(_4f8,_4f9,_4fa){ +var rows=$.data(_4f8,"datagrid").data.rows; +var opts=$.data(_4f8,"datagrid").options; +var dc=$.data(_4f8,"datagrid").dc; +if(!dc.body1.is(":empty")&&(!opts.nowrap||opts.autoRowHeight||_4fa)){ +if(_4f9!=undefined){ +var tr1=opts.finder.getTr(_4f8,_4f9,"body",1); +var tr2=opts.finder.getTr(_4f8,_4f9,"body",2); +_4fb(tr1,tr2); +}else{ +var tr1=opts.finder.getTr(_4f8,0,"allbody",1); +var tr2=opts.finder.getTr(_4f8,0,"allbody",2); +_4fb(tr1,tr2); +if(opts.showFooter){ +var tr1=opts.finder.getTr(_4f8,0,"allfooter",1); +var tr2=opts.finder.getTr(_4f8,0,"allfooter",2); +_4fb(tr1,tr2); +} +} +} +_4ea(_4f8); +if(opts.height=="auto"){ +var _4fc=dc.body1.parent(); +var _4fd=dc.body2; +var _4fe=_4ff(_4fd); +var _500=_4fe.height; +if(_4fe.width>_4fd.width()){ +_500+=18; +} +_4fc.height(_500); +_4fd.height(_500); +dc.view.height(dc.view2.height()); +} +dc.body2.triggerHandler("scroll"); +function _4fb(trs1,trs2){ +for(var i=0;i"); +} +_508(true); +_508(false); +_4ea(_505); +function _508(_509){ +var _50a=_509?1:2; +var tr=opts.finder.getTr(_505,_506,"body",_50a); +(_509?dc.body1:dc.body2).children("table.datagrid-btable-frozen").append(tr); +}; +}; +function _50b(_50c,_50d){ +function _50e(){ +var _50f=[]; +var _510=[]; +$(_50c).children("thead").each(function(){ +var opt=$.parser.parseOptions(this,[{frozen:"boolean"}]); +$(this).find("tr").each(function(){ +var cols=[]; +$(this).find("th").each(function(){ +var th=$(this); +var col=$.extend({},$.parser.parseOptions(this,["field","align","halign","order",{sortable:"boolean",checkbox:"boolean",resizable:"boolean",fixed:"boolean"},{rowspan:"number",colspan:"number",width:"number"}]),{title:(th.html()||undefined),hidden:(th.attr("hidden")?true:undefined),formatter:(th.attr("formatter")?eval(th.attr("formatter")):undefined),styler:(th.attr("styler")?eval(th.attr("styler")):undefined),sorter:(th.attr("sorter")?eval(th.attr("sorter")):undefined)}); +if(th.attr("editor")){ +var s=$.trim(th.attr("editor")); +if(s.substr(0,1)=="{"){ +col.editor=eval("("+s+")"); +}else{ +col.editor=s; +} +} +cols.push(col); +}); +opt.frozen?_50f.push(cols):_510.push(cols); +}); +}); +return [_50f,_510]; +}; +var _511=$("
                      "+"
                      "+"
                      "+"
                      "+"
                      "+"
                      "+"
                      "+"
                      "+"
                      "+"
                      "+""+"
                      "+"
                      "+"
                      "+"
                      "+"
                      "+"
                      "+"
                      "+"
                      "+""+"
                      "+"
                      "+"
                      "+"
                      ").insertAfter(_50c); +_511.panel({doSize:false}); +_511.panel("panel").addClass("datagrid").bind("_resize",function(e,_512){ +var opts=$.data(_50c,"datagrid").options; +if(opts.fit==true||_512){ +_4e6(_50c); +setTimeout(function(){ +if($.data(_50c,"datagrid")){ +_513(_50c); +} +},0); +} +return false; +}); +$(_50c).hide().appendTo(_511.children("div.datagrid-view")); +var cc=_50e(); +var view=_511.children("div.datagrid-view"); +var _514=view.children("div.datagrid-view1"); +var _515=view.children("div.datagrid-view2"); +var _516=_511.closest("div.datagrid-view"); +if(!_516.length){ +_516=view; +} +var ss=_4d9(_516); +return {panel:_511,frozenColumns:cc[0],columns:cc[1],dc:{view:view,view1:_514,view2:_515,header1:_514.children("div.datagrid-header").children("div.datagrid-header-inner"),header2:_515.children("div.datagrid-header").children("div.datagrid-header-inner"),body1:_514.children("div.datagrid-body").children("div.datagrid-body-inner"),body2:_515.children("div.datagrid-body"),footer1:_514.children("div.datagrid-footer").children("div.datagrid-footer-inner"),footer2:_515.children("div.datagrid-footer").children("div.datagrid-footer-inner")},ss:ss}; +}; +function _517(_518){ +var _519=$.data(_518,"datagrid"); +var opts=_519.options; +var dc=_519.dc; +var _51a=_519.panel; +_51a.panel($.extend({},opts,{id:null,doSize:false,onResize:function(_51b,_51c){ +setTimeout(function(){ +if($.data(_518,"datagrid")){ +_4ea(_518); +_543(_518); +opts.onResize.call(_51a,_51b,_51c); +} +},0); +},onExpand:function(){ +_4f7(_518); +opts.onExpand.call(_51a); +}})); +_519.rowIdPrefix="datagrid-row-r"+(++_4d4); +_519.cellClassPrefix="datagrid-cell-c"+_4d4; +_51d(dc.header1,opts.frozenColumns,true); +_51d(dc.header2,opts.columns,false); +_51e(); +dc.header1.add(dc.header2).css("display",opts.showHeader?"block":"none"); +dc.footer1.add(dc.footer2).css("display",opts.showFooter?"block":"none"); +if(opts.toolbar){ +if($.isArray(opts.toolbar)){ +$("div.datagrid-toolbar",_51a).remove(); +var tb=$("
                      ").prependTo(_51a); +var tr=tb.find("tr"); +for(var i=0;i
                      ").appendTo(tr); +}else{ +var td=$("").appendTo(tr); +var tool=$("").appendTo(td); +tool[0].onclick=eval(btn.handler||function(){ +}); +tool.linkbutton($.extend({},btn,{plain:true})); +} +} +}else{ +$(opts.toolbar).addClass("datagrid-toolbar").prependTo(_51a); +$(opts.toolbar).show(); +} +}else{ +$("div.datagrid-toolbar",_51a).remove(); +} +$("div.datagrid-pager",_51a).remove(); +if(opts.pagination){ +var _51f=$("
                      "); +if(opts.pagePosition=="bottom"){ +_51f.appendTo(_51a); +}else{ +if(opts.pagePosition=="top"){ +_51f.addClass("datagrid-pager-top").prependTo(_51a); +}else{ +var ptop=$("
                      ").prependTo(_51a); +_51f.appendTo(_51a); +_51f=_51f.add(ptop); +} +} +_51f.pagination({total:(opts.pageNumber*opts.pageSize),pageNumber:opts.pageNumber,pageSize:opts.pageSize,pageList:opts.pageList,onSelectPage:function(_520,_521){ +opts.pageNumber=_520; +opts.pageSize=_521; +_51f.pagination("refresh",{pageNumber:_520,pageSize:_521}); +_60a(_518); +}}); +opts.pageSize=_51f.pagination("options").pageSize; +} +function _51d(_522,_523,_524){ +if(!_523){ +return; +} +$(_522).show(); +$(_522).empty(); +var _525=[]; +var _526=[]; +if(opts.sortName){ +_525=opts.sortName.split(","); +_526=opts.sortOrder.split(","); +} +var t=$("
                      ").appendTo(_522); +for(var i=0;i<_523.length;i++){ +var tr=$("").appendTo($("tbody",t)); +var cols=_523[i]; +for(var j=0;j").appendTo(tr); +if(col.checkbox){ +td.attr("field",col.field); +$("
                      ").html("").appendTo(td); +}else{ +if(col.field){ +td.attr("field",col.field); +td.append("
                      "); +$("span",td).html(col.title); +$("span.datagrid-sort-icon",td).html(" "); +var cell=td.find("div.datagrid-cell"); +var pos=_4d5(_525,col.field); +if(pos>=0){ +cell.addClass("datagrid-sort-"+_526[pos]); +} +if(col.resizable==false){ +cell.attr("resizable","false"); +} +if(col.width){ +cell._outerWidth(col.width); +col.boxWidth=parseInt(cell[0].style.width); +}else{ +col.auto=true; +} +cell.css("text-align",(col.halign||col.align||"")); +col.cellClass=_519.cellClassPrefix+"-"+col.field.replace(/[\.|\s]/g,"-"); +cell.addClass(col.cellClass).css("width",""); +}else{ +$("
                      ").html(col.title).appendTo(td); +} +} +if(col.hidden){ +td.hide(); +} +} +} +if(_524&&opts.rownumbers){ +var td=$("
                      "); +if($("tr",t).length==0){ +td.wrap("").parent().appendTo($("tbody",t)); +}else{ +td.prependTo($("tr:first",t)); +} +} +}; +function _51e(){ +var _527=[]; +var _528=_529(_518,true).concat(_529(_518)); +for(var i=0;i<_528.length;i++){ +var col=_52a(_518,_528[i]); +if(col&&!col.checkbox){ +_527.push(["."+col.cellClass,col.boxWidth?col.boxWidth+"px":"auto"]); +} +} +_519.ss.add(_527); +_519.ss.dirty(_519.cellSelectorPrefix); +_519.cellSelectorPrefix="."+_519.cellClassPrefix; +}; +}; +function _52b(_52c){ +var _52d=$.data(_52c,"datagrid"); +var _52e=_52d.panel; +var opts=_52d.options; +var dc=_52d.dc; +var _52f=dc.header1.add(dc.header2); +_52f.find("input[type=checkbox]").unbind(".datagrid").bind("click.datagrid",function(e){ +if(opts.singleSelect&&opts.selectOnCheck){ +return false; +} +if($(this).is(":checked")){ +_5a5(_52c); +}else{ +_5ab(_52c); +} +e.stopPropagation(); +}); +var _530=_52f.find("div.datagrid-cell"); +_530.closest("td").unbind(".datagrid").bind("mouseenter.datagrid",function(){ +if(_52d.resizing){ +return; +} +$(this).addClass("datagrid-header-over"); +}).bind("mouseleave.datagrid",function(){ +$(this).removeClass("datagrid-header-over"); +}).bind("contextmenu.datagrid",function(e){ +var _531=$(this).attr("field"); +opts.onHeaderContextMenu.call(_52c,e,_531); +}); +_530.unbind(".datagrid").bind("click.datagrid",function(e){ +var p1=$(this).offset().left+5; +var p2=$(this).offset().left+$(this)._outerWidth()-5; +if(e.pageXp1){ +var _532=$(this).parent().attr("field"); +var col=_52a(_52c,_532); +if(!col.sortable||_52d.resizing){ +return; +} +var _533=[]; +var _534=[]; +if(opts.sortName){ +_533=opts.sortName.split(","); +_534=opts.sortOrder.split(","); +} +var pos=_4d5(_533,_532); +var _535=col.order||"asc"; +if(pos>=0){ +$(this).removeClass("datagrid-sort-asc datagrid-sort-desc"); +var _536=_534[pos]=="asc"?"desc":"asc"; +if(opts.multiSort&&_536==_535){ +_533.splice(pos,1); +_534.splice(pos,1); +}else{ +_534[pos]=_536; +$(this).addClass("datagrid-sort-"+_536); +} +}else{ +if(opts.multiSort){ +_533.push(_532); +_534.push(_535); +}else{ +_533=[_532]; +_534=[_535]; +_530.removeClass("datagrid-sort-asc datagrid-sort-desc"); +} +$(this).addClass("datagrid-sort-"+_535); +} +opts.sortName=_533.join(","); +opts.sortOrder=_534.join(","); +if(opts.remoteSort){ +_60a(_52c); +}else{ +var data=$.data(_52c,"datagrid").data; +_572(_52c,data); +} +opts.onSortColumn.call(_52c,opts.sortName,opts.sortOrder); +} +}).bind("dblclick.datagrid",function(e){ +var p1=$(this).offset().left+5; +var p2=$(this).offset().left+$(this)._outerWidth()-5; +var cond=opts.resizeHandle=="right"?(e.pageX>p2):(opts.resizeHandle=="left"?(e.pageXp2)); +if(cond){ +var _537=$(this).parent().attr("field"); +var col=_52a(_52c,_537); +if(col.resizable==false){ +return; +} +$(_52c).datagrid("autoSizeColumn",_537); +col.auto=false; +} +}); +var _538=opts.resizeHandle=="right"?"e":(opts.resizeHandle=="left"?"w":"e,w"); +_530.each(function(){ +$(this).resizable({handles:_538,disabled:($(this).attr("resizable")?$(this).attr("resizable")=="false":false),minWidth:25,onStartResize:function(e){ +_52d.resizing=true; +_52f.css("cursor",$("body").css("cursor")); +if(!_52d.proxy){ +_52d.proxy=$("
                      ").appendTo(dc.view); +} +_52d.proxy.css({left:e.pageX-$(_52e).offset().left-1,display:"none"}); +setTimeout(function(){ +if(_52d.proxy){ +_52d.proxy.show(); +} +},500); +},onResize:function(e){ +_52d.proxy.css({left:e.pageX-$(_52e).offset().left-1,display:"block"}); +return false; +},onStopResize:function(e){ +_52f.css("cursor",""); +$(this).css("height",""); +$(this)._outerWidth($(this)._outerWidth()); +var _539=$(this).parent().attr("field"); +var col=_52a(_52c,_539); +col.width=$(this)._outerWidth(); +col.boxWidth=parseInt(this.style.width); +col.auto=undefined; +$(this).css("width",""); +_513(_52c,_539); +_52d.proxy.remove(); +_52d.proxy=null; +if($(this).parents("div:first.datagrid-header").parent().hasClass("datagrid-view1")){ +_4ea(_52c); +} +_543(_52c); +opts.onResizeColumn.call(_52c,_539,col.width); +setTimeout(function(){ +_52d.resizing=false; +},0); +}}); +}); +dc.body1.add(dc.body2).unbind().bind("mouseover",function(e){ +if(_52d.resizing){ +return; +} +var tr=$(e.target).closest("tr.datagrid-row"); +if(!_53a(tr)){ +return; +} +var _53b=_53c(tr); +_58d(_52c,_53b); +e.stopPropagation(); +}).bind("mouseout",function(e){ +var tr=$(e.target).closest("tr.datagrid-row"); +if(!_53a(tr)){ +return; +} +var _53d=_53c(tr); +opts.finder.getTr(_52c,_53d).removeClass("datagrid-row-over"); +e.stopPropagation(); +}).bind("click",function(e){ +var tt=$(e.target); +var tr=tt.closest("tr.datagrid-row"); +if(!_53a(tr)){ +return; +} +var _53e=_53c(tr); +if(tt.parent().hasClass("datagrid-cell-check")){ +if(opts.singleSelect&&opts.selectOnCheck){ +if(!opts.checkOnSelect){ +_5ab(_52c,true); +} +_598(_52c,_53e); +}else{ +if(tt.is(":checked")){ +_598(_52c,_53e); +}else{ +_59f(_52c,_53e); +} +} +}else{ +var row=opts.finder.getRow(_52c,_53e); +var td=tt.closest("td[field]",tr); +if(td.length){ +var _53f=td.attr("field"); +opts.onClickCell.call(_52c,_53e,_53f,row[_53f]); +} +if(opts.singleSelect==true){ +_591(_52c,_53e); +}else{ +if(tr.hasClass("datagrid-row-selected")){ +_599(_52c,_53e); +}else{ +_591(_52c,_53e); +} +} +opts.onClickRow.call(_52c,_53e,row); +} +e.stopPropagation(); +}).bind("dblclick",function(e){ +var tt=$(e.target); +var tr=tt.closest("tr.datagrid-row"); +if(!_53a(tr)){ +return; +} +var _540=_53c(tr); +var row=opts.finder.getRow(_52c,_540); +var td=tt.closest("td[field]",tr); +if(td.length){ +var _541=td.attr("field"); +opts.onDblClickCell.call(_52c,_540,_541,row[_541]); +} +opts.onDblClickRow.call(_52c,_540,row); +e.stopPropagation(); +}).bind("contextmenu",function(e){ +var tr=$(e.target).closest("tr.datagrid-row"); +if(!_53a(tr)){ +return; +} +var _542=_53c(tr); +var row=opts.finder.getRow(_52c,_542); +opts.onRowContextMenu.call(_52c,e,_542,row); +e.stopPropagation(); +}); +dc.body2.bind("scroll",function(){ +var b1=dc.view1.children("div.datagrid-body"); +b1.scrollTop($(this).scrollTop()); +var c1=dc.body1.children(":first"); +var c2=dc.body2.children(":first"); +if(c1.length&&c2.length){ +var top1=c1.offset().top; +var top2=c2.offset().top; +if(top1!=top2){ +b1.scrollTop(b1.scrollTop()+top1-top2); +} +} +dc.view2.children("div.datagrid-header,div.datagrid-footer")._scrollLeft($(this)._scrollLeft()); +dc.body2.children("table.datagrid-btable-frozen").css("left",-$(this)._scrollLeft()); +}); +function _53c(tr){ +if(tr.attr("datagrid-row-index")){ +return parseInt(tr.attr("datagrid-row-index")); +}else{ +return tr.attr("node-id"); +} +}; +function _53a(tr){ +return tr.length&&tr.parent().length; +}; +}; +function _543(_544){ +var _545=$.data(_544,"datagrid"); +var opts=_545.options; +var dc=_545.dc; +dc.body2.css("overflow-x",opts.fitColumns?"hidden":""); +if(!opts.fitColumns){ +return; +} +if(!_545.leftWidth){ +_545.leftWidth=0; +} +var _546=dc.view2.children("div.datagrid-header"); +var _547=0; +var _548; +var _549=_529(_544,false); +for(var i=0;i<_549.length;i++){ +var col=_52a(_544,_549[i]); +if(_54a(col)){ +_547+=col.width; +_548=col; +} +} +if(!_547){ +return; +} +if(_548){ +_54b(_548,-_545.leftWidth); +} +var _54c=_546.children("div.datagrid-header-inner").show(); +var _54d=_546.width()-_546.find("table").width()-opts.scrollbarSize+_545.leftWidth; +var rate=_54d/_547; +if(!opts.showHeader){ +_54c.hide(); +} +for(var i=0;i<_549.length;i++){ +var col=_52a(_544,_549[i]); +if(_54a(col)){ +var _54e=parseInt(col.width*rate); +_54b(col,_54e); +_54d-=_54e; +} +} +_545.leftWidth=_54d; +if(_548){ +_54b(_548,_545.leftWidth); +} +_513(_544); +function _54b(col,_54f){ +col.width+=_54f; +col.boxWidth+=_54f; +}; +function _54a(col){ +if(!col.hidden&&!col.checkbox&&!col.auto&&!col.fixed){ +return true; +} +}; +}; +function _550(_551,_552){ +var _553=$.data(_551,"datagrid"); +var opts=_553.options; +var dc=_553.dc; +var tmp=$("
                      ").appendTo("body"); +if(_552){ +_4e6(_552); +if(opts.fitColumns){ +_4ea(_551); +_543(_551); +} +}else{ +var _554=false; +var _555=_529(_551,true).concat(_529(_551,false)); +for(var i=0;i<_555.length;i++){ +var _552=_555[i]; +var col=_52a(_551,_552); +if(col.auto){ +_4e6(_552); +_554=true; +} +} +if(_554&&opts.fitColumns){ +_4ea(_551); +_543(_551); +} +} +tmp.remove(); +function _4e6(_556){ +var _557=dc.view.find("div.datagrid-header td[field=\""+_556+"\"] div.datagrid-cell"); +_557.css("width",""); +var col=$(_551).datagrid("getColumnOption",_556); +col.width=undefined; +col.boxWidth=undefined; +col.auto=true; +$(_551).datagrid("fixColumnSize",_556); +var _558=Math.max(_559("header"),_559("allbody"),_559("allfooter")); +_557._outerWidth(_558); +col.width=_558; +col.boxWidth=parseInt(_557[0].style.width); +_557.css("width",""); +$(_551).datagrid("fixColumnSize",_556); +opts.onResizeColumn.call(_551,_556,col.width); +function _559(type){ +var _55a=0; +if(type=="header"){ +_55a=_55b(_557); +}else{ +opts.finder.getTr(_551,0,type).find("td[field=\""+_556+"\"] div.datagrid-cell").each(function(){ +var w=_55b($(this)); +if(_55ab?1:-1); +}; +r=_577(r1[sn],r2[sn])*(so=="asc"?1:-1); +if(r!=0){ +return r; +} +} +return r; +}); +} +if(opts.view.onBeforeRender){ +opts.view.onBeforeRender.call(opts.view,_573,data.rows); +} +opts.view.render.call(opts.view,_573,dc.body2,false); +opts.view.render.call(opts.view,_573,dc.body1,true); +if(opts.showFooter){ +opts.view.renderFooter.call(opts.view,_573,dc.footer2,false); +opts.view.renderFooter.call(opts.view,_573,dc.footer1,true); +} +if(opts.view.onAfterRender){ +opts.view.onAfterRender.call(opts.view,_573); +} +_574.ss.clean(); +opts.onLoadSuccess.call(_573,data); +var _578=$(_573).datagrid("getPager"); +if(_578.length){ +var _579=_578.pagination("options"); +if(_579.total!=data.total){ +_578.pagination("refresh",{total:data.total}); +if(opts.pageNumber!=_579.pageNumber){ +opts.pageNumber=_579.pageNumber; +_60a(_573); +} +} +} +_4f7(_573); +dc.body2.triggerHandler("scroll"); +_57a(); +$(_573).datagrid("autoSizeColumn"); +function _57a(){ +if(opts.idField){ +for(var i=0;i_58b.height()-18){ +_58b.scrollTop(_58b.scrollTop()+top+tr._outerHeight()-_58b.height()+18); +} +} +} +}; +function _58d(_58e,_58f){ +var _590=$.data(_58e,"datagrid"); +var opts=_590.options; +opts.finder.getTr(_58e,_590.highlightIndex).removeClass("datagrid-row-over"); +opts.finder.getTr(_58e,_58f).addClass("datagrid-row-over"); +_590.highlightIndex=_58f; +}; +function _591(_592,_593,_594){ +var _595=$.data(_592,"datagrid"); +var dc=_595.dc; +var opts=_595.options; +var _596=_595.selectedRows; +if(opts.singleSelect){ +_597(_592); +_596.splice(0,_596.length); +} +if(!_594&&opts.checkOnSelect){ +_598(_592,_593,true); +} +var row=opts.finder.getRow(_592,_593); +if(opts.idField){ +_4d8(_596,opts.idField,row); +} +opts.finder.getTr(_592,_593).addClass("datagrid-row-selected"); +opts.onSelect.call(_592,_593,row); +_586(_592,_593); +}; +function _599(_59a,_59b,_59c){ +var _59d=$.data(_59a,"datagrid"); +var dc=_59d.dc; +var opts=_59d.options; +var _59e=$.data(_59a,"datagrid").selectedRows; +if(!_59c&&opts.checkOnSelect){ +_59f(_59a,_59b,true); +} +opts.finder.getTr(_59a,_59b).removeClass("datagrid-row-selected"); +var row=opts.finder.getRow(_59a,_59b); +if(opts.idField){ +_4d6(_59e,opts.idField,row[opts.idField]); +} +opts.onUnselect.call(_59a,_59b,row); +}; +function _5a0(_5a1,_5a2){ +var _5a3=$.data(_5a1,"datagrid"); +var opts=_5a3.options; +var rows=_5a3.data.rows; +var _5a4=$.data(_5a1,"datagrid").selectedRows; +if(!_5a2&&opts.checkOnSelect){ +_5a5(_5a1,true); +} +opts.finder.getTr(_5a1,"","allbody").addClass("datagrid-row-selected"); +if(opts.idField){ +for(var _5a6=0;_5a6"); +cell.children("table").bind("click dblclick contextmenu",function(e){ +e.stopPropagation(); +}); +$.data(cell[0],"datagrid.editor",{actions:_5db,target:_5db.init(cell.find("td"),_5da),field:_5d8,type:_5d9,oldHtml:_5dc}); +} +} +}); +_4f7(_5d6,_5d7,true); +}; +function _5cd(_5de,_5df){ +var opts=$.data(_5de,"datagrid").options; +var tr=opts.finder.getTr(_5de,_5df); +tr.children("td").each(function(){ +var cell=$(this).find("div.datagrid-editable"); +if(cell.length){ +var ed=$.data(cell[0],"datagrid.editor"); +if(ed.actions.destroy){ +ed.actions.destroy(ed.target); +} +cell.html(ed.oldHtml); +$.removeData(cell[0],"datagrid.editor"); +cell.removeClass("datagrid-editable"); +cell.css("width",""); +} +}); +}; +function _5c2(_5e0,_5e1){ +var tr=$.data(_5e0,"datagrid").options.finder.getTr(_5e0,_5e1); +if(!tr.hasClass("datagrid-row-editing")){ +return true; +} +var vbox=tr.find(".validatebox-text"); +vbox.validatebox("validate"); +vbox.trigger("mouseleave"); +var _5e2=tr.find(".validatebox-invalid"); +return _5e2.length==0; +}; +function _5e3(_5e4,_5e5){ +var _5e6=$.data(_5e4,"datagrid").insertedRows; +var _5e7=$.data(_5e4,"datagrid").deletedRows; +var _5e8=$.data(_5e4,"datagrid").updatedRows; +if(!_5e5){ +var rows=[]; +rows=rows.concat(_5e6); +rows=rows.concat(_5e7); +rows=rows.concat(_5e8); +return rows; +}else{ +if(_5e5=="inserted"){ +return _5e6; +}else{ +if(_5e5=="deleted"){ +return _5e7; +}else{ +if(_5e5=="updated"){ +return _5e8; +} +} +} +} +return []; +}; +function _5e9(_5ea,_5eb){ +var _5ec=$.data(_5ea,"datagrid"); +var opts=_5ec.options; +var data=_5ec.data; +var _5ed=_5ec.insertedRows; +var _5ee=_5ec.deletedRows; +$(_5ea).datagrid("cancelEdit",_5eb); +var row=data.rows[_5eb]; +if(_4d5(_5ed,row)>=0){ +_4d6(_5ed,row); +}else{ +_5ee.push(row); +} +_4d6(_5ec.selectedRows,opts.idField,data.rows[_5eb][opts.idField]); +_4d6(_5ec.checkedRows,opts.idField,data.rows[_5eb][opts.idField]); +opts.view.deleteRow.call(opts.view,_5ea,_5eb); +if(opts.height=="auto"){ +_4f7(_5ea); +} +$(_5ea).datagrid("getPager").pagination("refresh",{total:data.total}); +}; +function _5ef(_5f0,_5f1){ +var data=$.data(_5f0,"datagrid").data; +var view=$.data(_5f0,"datagrid").options.view; +var _5f2=$.data(_5f0,"datagrid").insertedRows; +view.insertRow.call(view,_5f0,_5f1.index,_5f1.row); +_5f2.push(_5f1.row); +$(_5f0).datagrid("getPager").pagination("refresh",{total:data.total}); +}; +function _5f3(_5f4,row){ +var data=$.data(_5f4,"datagrid").data; +var view=$.data(_5f4,"datagrid").options.view; +var _5f5=$.data(_5f4,"datagrid").insertedRows; +view.insertRow.call(view,_5f4,null,row); +_5f5.push(row); +$(_5f4).datagrid("getPager").pagination("refresh",{total:data.total}); +}; +function _5f6(_5f7){ +var _5f8=$.data(_5f7,"datagrid"); +var data=_5f8.data; +var rows=data.rows; +var _5f9=[]; +for(var i=0;i=0){ +(_606=="s"?_591:_598)(_5fd,_607,true); +} +} +}; +for(var i=0;i0){ +_572(this,data); +_5f6(this); +} +} +_4e6(this); +_60a(this); +_52b(this); +}); +}; +var _618={text:{init:function(_619,_61a){ +var _61b=$("").appendTo(_619); +return _61b; +},getValue:function(_61c){ +return $(_61c).val(); +},setValue:function(_61d,_61e){ +$(_61d).val(_61e); +},resize:function(_61f,_620){ +$(_61f)._outerWidth(_620)._outerHeight(22); +}},textarea:{init:function(_621,_622){ +var _623=$("").appendTo(_621); +return _623; +},getValue:function(_624){ +return $(_624).val(); +},setValue:function(_625,_626){ +$(_625).val(_626); +},resize:function(_627,_628){ +$(_627)._outerWidth(_628); +}},checkbox:{init:function(_629,_62a){ +var _62b=$("").appendTo(_629); +_62b.val(_62a.on); +_62b.attr("offval",_62a.off); +return _62b; +},getValue:function(_62c){ +if($(_62c).is(":checked")){ +return $(_62c).val(); +}else{ +return $(_62c).attr("offval"); +} +},setValue:function(_62d,_62e){ +var _62f=false; +if($(_62d).val()==_62e){ +_62f=true; +} +$(_62d)._propAttr("checked",_62f); +}},numberbox:{init:function(_630,_631){ +var _632=$("").appendTo(_630); +_632.numberbox(_631); +return _632; +},destroy:function(_633){ +$(_633).numberbox("destroy"); +},getValue:function(_634){ +$(_634).blur(); +return $(_634).numberbox("getValue"); +},setValue:function(_635,_636){ +$(_635).numberbox("setValue",_636); +},resize:function(_637,_638){ +$(_637)._outerWidth(_638)._outerHeight(22); +}},validatebox:{init:function(_639,_63a){ +var _63b=$("").appendTo(_639); +_63b.validatebox(_63a); +return _63b; +},destroy:function(_63c){ +$(_63c).validatebox("destroy"); +},getValue:function(_63d){ +return $(_63d).val(); +},setValue:function(_63e,_63f){ +$(_63e).val(_63f); +},resize:function(_640,_641){ +$(_640)._outerWidth(_641)._outerHeight(22); +}},datebox:{init:function(_642,_643){ +var _644=$("").appendTo(_642); +_644.datebox(_643); +return _644; +},destroy:function(_645){ +$(_645).datebox("destroy"); +},getValue:function(_646){ +return $(_646).datebox("getValue"); +},setValue:function(_647,_648){ +$(_647).datebox("setValue",_648); +},resize:function(_649,_64a){ +$(_649).datebox("resize",_64a); +}},combobox:{init:function(_64b,_64c){ +var _64d=$("").appendTo(_64b); +_64d.combobox(_64c||{}); +return _64d; +},destroy:function(_64e){ +$(_64e).combobox("destroy"); +},getValue:function(_64f){ +var opts=$(_64f).combobox("options"); +if(opts.multiple){ +return $(_64f).combobox("getValues").join(opts.separator); +}else{ +return $(_64f).combobox("getValue"); +} +},setValue:function(_650,_651){ +var opts=$(_650).combobox("options"); +if(opts.multiple){ +if(_651){ +$(_650).combobox("setValues",_651.split(opts.separator)); +}else{ +$(_650).combobox("clear"); +} +}else{ +$(_650).combobox("setValue",_651); +} +},resize:function(_652,_653){ +$(_652).combobox("resize",_653); +}},combotree:{init:function(_654,_655){ +var _656=$("").appendTo(_654); +_656.combotree(_655); +return _656; +},destroy:function(_657){ +$(_657).combotree("destroy"); +},getValue:function(_658){ +return $(_658).combotree("getValue"); +},setValue:function(_659,_65a){ +$(_659).combotree("setValue",_65a); +},resize:function(_65b,_65c){ +$(_65b).combotree("resize",_65c); +}}}; +$.fn.datagrid.methods={options:function(jq){ +var _65d=$.data(jq[0],"datagrid").options; +var _65e=$.data(jq[0],"datagrid").panel.panel("options"); +var opts=$.extend(_65d,{width:_65e.width,height:_65e.height,closed:_65e.closed,collapsed:_65e.collapsed,minimized:_65e.minimized,maximized:_65e.maximized}); +return opts; +},getPanel:function(jq){ +return $.data(jq[0],"datagrid").panel; +},getPager:function(jq){ +return $.data(jq[0],"datagrid").panel.children("div.datagrid-pager"); +},getColumnFields:function(jq,_65f){ +return _529(jq[0],_65f); +},getColumnOption:function(jq,_660){ +return _52a(jq[0],_660); +},resize:function(jq,_661){ +return jq.each(function(){ +_4e6(this,_661); +}); +},load:function(jq,_662){ +return jq.each(function(){ +var opts=$(this).datagrid("options"); +opts.pageNumber=1; +var _663=$(this).datagrid("getPager"); +_663.pagination("refresh",{pageNumber:1}); +_60a(this,_662); +}); +},reload:function(jq,_664){ +return jq.each(function(){ +_60a(this,_664); +}); +},reloadFooter:function(jq,_665){ +return jq.each(function(){ +var opts=$.data(this,"datagrid").options; +var dc=$.data(this,"datagrid").dc; +if(_665){ +$.data(this,"datagrid").footer=_665; +} +if(opts.showFooter){ +opts.view.renderFooter.call(opts.view,this,dc.footer2,false); +opts.view.renderFooter.call(opts.view,this,dc.footer1,true); +if(opts.view.onAfterRender){ +opts.view.onAfterRender.call(opts.view,this); +} +$(this).datagrid("fixRowHeight"); +} +}); +},loading:function(jq){ +return jq.each(function(){ +var opts=$.data(this,"datagrid").options; +$(this).datagrid("getPager").pagination("loading"); +if(opts.loadMsg){ +var _666=$(this).datagrid("getPanel"); +if(!_666.children("div.datagrid-mask").length){ +$("
                      ").appendTo(_666); +var msg=$("
                      ").html(opts.loadMsg).appendTo(_666); +msg._outerHeight(40); +msg.css({marginLeft:(-msg.outerWidth()/2),lineHeight:(msg.height()+"px")}); +} +} +}); +},loaded:function(jq){ +return jq.each(function(){ +$(this).datagrid("getPager").pagination("loaded"); +var _667=$(this).datagrid("getPanel"); +_667.children("div.datagrid-mask-msg").remove(); +_667.children("div.datagrid-mask").remove(); +}); +},fitColumns:function(jq){ +return jq.each(function(){ +_543(this); +}); +},fixColumnSize:function(jq,_668){ +return jq.each(function(){ +_513(this,_668); +}); +},fixRowHeight:function(jq,_669){ +return jq.each(function(){ +_4f7(this,_669); +}); +},freezeRow:function(jq,_66a){ +return jq.each(function(){ +_504(this,_66a); +}); +},autoSizeColumn:function(jq,_66b){ +return jq.each(function(){ +_550(this,_66b); +}); +},loadData:function(jq,data){ +return jq.each(function(){ +_572(this,data); +_5f6(this); +}); +},getData:function(jq){ +return $.data(jq[0],"datagrid").data; +},getRows:function(jq){ +return $.data(jq[0],"datagrid").data.rows; +},getFooterRows:function(jq){ +return $.data(jq[0],"datagrid").footer; +},getRowIndex:function(jq,id){ +return _57c(jq[0],id); +},getChecked:function(jq){ +return _583(jq[0]); +},getSelected:function(jq){ +var rows=_57f(jq[0]); +return rows.length>0?rows[0]:null; +},getSelections:function(jq){ +return _57f(jq[0]); +},clearSelections:function(jq){ +return jq.each(function(){ +var _66c=$.data(this,"datagrid").selectedRows; +_66c.splice(0,_66c.length); +_597(this); +}); +},clearChecked:function(jq){ +return jq.each(function(){ +var _66d=$.data(this,"datagrid").checkedRows; +_66d.splice(0,_66d.length); +_5ab(this); +}); +},scrollTo:function(jq,_66e){ +return jq.each(function(){ +_586(this,_66e); +}); +},highlightRow:function(jq,_66f){ +return jq.each(function(){ +_58d(this,_66f); +_586(this,_66f); +}); +},selectAll:function(jq){ +return jq.each(function(){ +_5a0(this); +}); +},unselectAll:function(jq){ +return jq.each(function(){ +_597(this); +}); +},selectRow:function(jq,_670){ +return jq.each(function(){ +_591(this,_670); +}); +},selectRecord:function(jq,id){ +return jq.each(function(){ +var opts=$.data(this,"datagrid").options; +if(opts.idField){ +var _671=_57c(this,id); +if(_671>=0){ +$(this).datagrid("selectRow",_671); +} +} +}); +},unselectRow:function(jq,_672){ +return jq.each(function(){ +_599(this,_672); +}); +},checkRow:function(jq,_673){ +return jq.each(function(){ +_598(this,_673); +}); +},uncheckRow:function(jq,_674){ +return jq.each(function(){ +_59f(this,_674); +}); +},checkAll:function(jq){ +return jq.each(function(){ +_5a5(this); +}); +},uncheckAll:function(jq){ +return jq.each(function(){ +_5ab(this); +}); +},beginEdit:function(jq,_675){ +return jq.each(function(){ +_5bd(this,_675); +}); +},endEdit:function(jq,_676){ +return jq.each(function(){ +_5c3(this,_676,false); +}); +},cancelEdit:function(jq,_677){ +return jq.each(function(){ +_5c3(this,_677,true); +}); +},getEditors:function(jq,_678){ +return _5ce(jq[0],_678); +},getEditor:function(jq,_679){ +return _5d2(jq[0],_679); +},refreshRow:function(jq,_67a){ +return jq.each(function(){ +var opts=$.data(this,"datagrid").options; +opts.view.refreshRow.call(opts.view,this,_67a); +}); +},validateRow:function(jq,_67b){ +return _5c2(jq[0],_67b); +},updateRow:function(jq,_67c){ +return jq.each(function(){ +var opts=$.data(this,"datagrid").options; +opts.view.updateRow.call(opts.view,this,_67c.index,_67c.row); +}); +},appendRow:function(jq,row){ +return jq.each(function(){ +_5f3(this,row); +}); +},insertRow:function(jq,_67d){ +return jq.each(function(){ +_5ef(this,_67d); +}); +},deleteRow:function(jq,_67e){ +return jq.each(function(){ +_5e9(this,_67e); +}); +},getChanges:function(jq,_67f){ +return _5e3(jq[0],_67f); +},acceptChanges:function(jq){ +return jq.each(function(){ +_5fa(this); +}); +},rejectChanges:function(jq){ +return jq.each(function(){ +_5fc(this); +}); +},mergeCells:function(jq,_680){ +return jq.each(function(){ +_610(this,_680); +}); +},showColumn:function(jq,_681){ +return jq.each(function(){ +var _682=$(this).datagrid("getPanel"); +_682.find("td[field=\""+_681+"\"]").show(); +$(this).datagrid("getColumnOption",_681).hidden=false; +$(this).datagrid("fitColumns"); +}); +},hideColumn:function(jq,_683){ +return jq.each(function(){ +var _684=$(this).datagrid("getPanel"); +_684.find("td[field=\""+_683+"\"]").hide(); +$(this).datagrid("getColumnOption",_683).hidden=true; +$(this).datagrid("fitColumns"); +}); +}}; +$.fn.datagrid.parseOptions=function(_685){ +var t=$(_685); +return $.extend({},$.fn.panel.parseOptions(_685),$.parser.parseOptions(_685,["url","toolbar","idField","sortName","sortOrder","pagePosition","resizeHandle",{fitColumns:"boolean",autoRowHeight:"boolean",striped:"boolean",nowrap:"boolean"},{rownumbers:"boolean",singleSelect:"boolean",checkOnSelect:"boolean",selectOnCheck:"boolean"},{pagination:"boolean",pageSize:"number",pageNumber:"number"},{multiSort:"boolean",remoteSort:"boolean",showHeader:"boolean",showFooter:"boolean"},{scrollbarSize:"number"}]),{pageList:(t.attr("pageList")?eval(t.attr("pageList")):undefined),loadMsg:(t.attr("loadMsg")!=undefined?t.attr("loadMsg"):undefined),rowStyler:(t.attr("rowStyler")?eval(t.attr("rowStyler")):undefined)}); +}; +$.fn.datagrid.parseData=function(_686){ +var t=$(_686); +var data={total:0,rows:[]}; +var _687=t.datagrid("getColumnFields",true).concat(t.datagrid("getColumnFields",false)); +t.find("tbody tr").each(function(){ +data.total++; +var row={}; +$.extend(row,$.parser.parseOptions(this,["iconCls","state"])); +for(var i=0;i<_687.length;i++){ +row[_687[i]]=$(this).find("td:eq("+i+")").html(); +} +data.rows.push(row); +}); +return data; +}; +var _688={render:function(_689,_68a,_68b){ +var _68c=$.data(_689,"datagrid"); +var opts=_68c.options; +var rows=_68c.data.rows; +var _68d=$(_689).datagrid("getColumnFields",_68b); +if(_68b){ +if(!(opts.rownumbers||(opts.frozenColumns&&opts.frozenColumns.length))){ +return; +} +} +var _68e=[""]; +for(var i=0;i"); +_68e.push(this.renderRow.call(this,_689,_68d,_68b,i,rows[i])); +_68e.push(""); +} +_68e.push("
                      "); +$(_68a).html(_68e.join("")); +},renderFooter:function(_693,_694,_695){ +var opts=$.data(_693,"datagrid").options; +var rows=$.data(_693,"datagrid").footer||[]; +var _696=$(_693).datagrid("getColumnFields",_695); +var _697=[""]; +for(var i=0;i"); +_697.push(this.renderRow.call(this,_693,_696,_695,i,rows[i])); +_697.push(""); +} +_697.push("
                      "); +$(_694).html(_697.join("")); +},renderRow:function(_698,_699,_69a,_69b,_69c){ +var opts=$.data(_698,"datagrid").options; +var cc=[]; +if(_69a&&opts.rownumbers){ +var _69d=_69b+1; +if(opts.pagination){ +_69d+=(opts.pageNumber-1)*opts.pageSize; +} +cc.push("
                      "+_69d+"
                      "); +} +for(var i=0;i<_699.length;i++){ +var _69e=_699[i]; +var col=$(_698).datagrid("getColumnOption",_69e); +if(col){ +var _69f=_69c[_69e]; +var css=col.styler?(col.styler(_69f,_69c,_69b)||""):""; +var _6a0=""; +var _6a1=""; +if(typeof css=="string"){ +_6a1=css; +}else{ +if(cc){ +_6a0=css["class"]||""; +_6a1=css["style"]||""; +} +} +var cls=_6a0?"class=\""+_6a0+"\"":""; +var _6a2=col.hidden?"style=\"display:none;"+_6a1+"\"":(_6a1?"style=\""+_6a1+"\"":""); +cc.push(""); +if(col.checkbox){ +var _6a2=""; +}else{ +var _6a2=_6a1; +if(col.align){ +_6a2+=";text-align:"+col.align+";"; +} +if(!opts.nowrap){ +_6a2+=";white-space:normal;height:auto;"; +}else{ +if(opts.autoRowHeight){ +_6a2+=";height:auto;"; +} +} +} +cc.push("
                      "); +if(col.checkbox){ +cc.push(""); +}else{ +if(col.formatter){ +cc.push(col.formatter(_69f,_69c,_69b)); +}else{ +cc.push(_69f); +} +} +cc.push("
                      "); +cc.push(""); +} +} +return cc.join(""); +},refreshRow:function(_6a3,_6a4){ +this.updateRow.call(this,_6a3,_6a4,{}); +},updateRow:function(_6a5,_6a6,row){ +var opts=$.data(_6a5,"datagrid").options; +var rows=$(_6a5).datagrid("getRows"); +$.extend(rows[_6a6],row); +var css=opts.rowStyler?opts.rowStyler.call(_6a5,_6a6,rows[_6a6]):""; +var _6a7=""; +var _6a8=""; +if(typeof css=="string"){ +_6a8=css; +}else{ +if(css){ +_6a7=css["class"]||""; +_6a8=css["style"]||""; +} +} +var _6a7="datagrid-row "+(_6a6%2&&opts.striped?"datagrid-row-alt ":" ")+_6a7; +function _6a9(_6aa){ +var _6ab=$(_6a5).datagrid("getColumnFields",_6aa); +var tr=opts.finder.getTr(_6a5,_6a6,"body",(_6aa?1:2)); +var _6ac=tr.find("div.datagrid-cell-check input[type=checkbox]").is(":checked"); +tr.html(this.renderRow.call(this,_6a5,_6ab,_6aa,_6a6,rows[_6a6])); +tr.attr("style",_6a8).attr("class",tr.hasClass("datagrid-row-selected")?_6a7+" datagrid-row-selected":_6a7); +if(_6ac){ +tr.find("div.datagrid-cell-check input[type=checkbox]")._propAttr("checked",true); +} +}; +_6a9.call(this,true); +_6a9.call(this,false); +$(_6a5).datagrid("fixRowHeight",_6a6); +},insertRow:function(_6ad,_6ae,row){ +var _6af=$.data(_6ad,"datagrid"); +var opts=_6af.options; +var dc=_6af.dc; +var data=_6af.data; +if(_6ae==undefined||_6ae==null){ +_6ae=data.rows.length; +} +if(_6ae>data.rows.length){ +_6ae=data.rows.length; +} +function _6b0(_6b1){ +var _6b2=_6b1?1:2; +for(var i=data.rows.length-1;i>=_6ae;i--){ +var tr=opts.finder.getTr(_6ad,i,"body",_6b2); +tr.attr("datagrid-row-index",i+1); +tr.attr("id",_6af.rowIdPrefix+"-"+_6b2+"-"+(i+1)); +if(_6b1&&opts.rownumbers){ +var _6b3=i+2; +if(opts.pagination){ +_6b3+=(opts.pageNumber-1)*opts.pageSize; +} +tr.find("div.datagrid-cell-rownumber").html(_6b3); +} +if(opts.striped){ +tr.removeClass("datagrid-row-alt").addClass((i+1)%2?"datagrid-row-alt":""); +} +} +}; +function _6b4(_6b5){ +var _6b6=_6b5?1:2; +var _6b7=$(_6ad).datagrid("getColumnFields",_6b5); +var _6b8=_6af.rowIdPrefix+"-"+_6b6+"-"+_6ae; +var tr=""; +if(_6ae>=data.rows.length){ +if(data.rows.length){ +opts.finder.getTr(_6ad,"","last",_6b6).after(tr); +}else{ +var cc=_6b5?dc.body1:dc.body2; +cc.html(""+tr+"
                      "); +} +}else{ +opts.finder.getTr(_6ad,_6ae+1,"body",_6b6).before(tr); +} +}; +_6b0.call(this,true); +_6b0.call(this,false); +_6b4.call(this,true); +_6b4.call(this,false); +data.total+=1; +data.rows.splice(_6ae,0,row); +this.refreshRow.call(this,_6ad,_6ae); +},deleteRow:function(_6b9,_6ba){ +var _6bb=$.data(_6b9,"datagrid"); +var opts=_6bb.options; +var data=_6bb.data; +function _6bc(_6bd){ +var _6be=_6bd?1:2; +for(var i=_6ba+1;itable>tbody>tr[datagrid-row-index="+_6c9+"]"); +} +return tr; +}else{ +if(type=="footer"){ +return (_6ca==1?dc.footer1:dc.footer2).find(">table>tbody>tr[datagrid-row-index="+_6c9+"]"); +}else{ +if(type=="selected"){ +return (_6ca==1?dc.body1:dc.body2).find(">table>tbody>tr.datagrid-row-selected"); +}else{ +if(type=="highlight"){ +return (_6ca==1?dc.body1:dc.body2).find(">table>tbody>tr.datagrid-row-over"); +}else{ +if(type=="checked"){ +return (_6ca==1?dc.body1:dc.body2).find(">table>tbody>tr.datagrid-row-checked"); +}else{ +if(type=="last"){ +return (_6ca==1?dc.body1:dc.body2).find(">table>tbody>tr[datagrid-row-index]:last"); +}else{ +if(type=="allbody"){ +return (_6ca==1?dc.body1:dc.body2).find(">table>tbody>tr[datagrid-row-index]"); +}else{ +if(type=="allfooter"){ +return (_6ca==1?dc.footer1:dc.footer2).find(">table>tbody>tr[datagrid-row-index]"); +} +} +} +} +} +} +} +} +} +},getRow:function(_6cc,p){ +var _6cd=(typeof p=="object")?p.attr("datagrid-row-index"):p; +return $.data(_6cc,"datagrid").data.rows[parseInt(_6cd)]; +}},view:_688,onBeforeLoad:function(_6ce){ +},onLoadSuccess:function(){ +},onLoadError:function(){ +},onClickRow:function(_6cf,_6d0){ +},onDblClickRow:function(_6d1,_6d2){ +},onClickCell:function(_6d3,_6d4,_6d5){ +},onDblClickCell:function(_6d6,_6d7,_6d8){ +},onSortColumn:function(sort,_6d9){ +},onResizeColumn:function(_6da,_6db){ +},onSelect:function(_6dc,_6dd){ +},onUnselect:function(_6de,_6df){ +},onSelectAll:function(rows){ +},onUnselectAll:function(rows){ +},onCheck:function(_6e0,_6e1){ +},onUncheck:function(_6e2,_6e3){ +},onCheckAll:function(rows){ +},onUncheckAll:function(rows){ +},onBeforeEdit:function(_6e4,_6e5){ +},onAfterEdit:function(_6e6,_6e7,_6e8){ +},onCancelEdit:function(_6e9,_6ea){ +},onHeaderContextMenu:function(e,_6eb){ +},onRowContextMenu:function(e,_6ec,_6ed){ +}}); +})(jQuery); +(function($){ +var _6ee; +function _6ef(_6f0){ +var _6f1=$.data(_6f0,"propertygrid"); +var opts=$.data(_6f0,"propertygrid").options; +$(_6f0).datagrid($.extend({},opts,{cls:"propertygrid",view:(opts.showGroup?opts.groupView:opts.view),onClickRow:function(_6f2,row){ +if(_6ee!=this){ +_6f3(_6ee); +_6ee=this; +} +if(opts.editIndex!=_6f2&&row.editor){ +var col=$(this).datagrid("getColumnOption","value"); +col.editor=row.editor; +_6f3(_6ee); +$(this).datagrid("beginEdit",_6f2); +$(this).datagrid("getEditors",_6f2)[0].target.focus(); +opts.editIndex=_6f2; +} +opts.onClickRow.call(_6f0,_6f2,row); +},loadFilter:function(data){ +_6f3(this); +return opts.loadFilter.call(this,data); +}})); +$(document).unbind(".propertygrid").bind("mousedown.propertygrid",function(e){ +var p=$(e.target).closest("div.datagrid-view,div.combo-panel"); +if(p.length){ +return; +} +_6f3(_6ee); +_6ee=undefined; +}); +}; +function _6f3(_6f4){ +var t=$(_6f4); +if(!t.length){ +return; +} +var opts=$.data(_6f4,"propertygrid").options; +var _6f5=opts.editIndex; +if(_6f5==undefined){ +return; +} +var ed=t.datagrid("getEditors",_6f5)[0]; +if(ed){ +ed.target.blur(); +if(t.datagrid("validateRow",_6f5)){ +t.datagrid("endEdit",_6f5); +}else{ +t.datagrid("cancelEdit",_6f5); +} +} +opts.editIndex=undefined; +}; +$.fn.propertygrid=function(_6f6,_6f7){ +if(typeof _6f6=="string"){ +var _6f8=$.fn.propertygrid.methods[_6f6]; +if(_6f8){ +return _6f8(this,_6f7); +}else{ +return this.datagrid(_6f6,_6f7); +} +} +_6f6=_6f6||{}; +return this.each(function(){ +var _6f9=$.data(this,"propertygrid"); +if(_6f9){ +$.extend(_6f9.options,_6f6); +}else{ +var opts=$.extend({},$.fn.propertygrid.defaults,$.fn.propertygrid.parseOptions(this),_6f6); +opts.frozenColumns=$.extend(true,[],opts.frozenColumns); +opts.columns=$.extend(true,[],opts.columns); +$.data(this,"propertygrid",{options:opts}); +} +_6ef(this); +}); +}; +$.fn.propertygrid.methods={options:function(jq){ +return $.data(jq[0],"propertygrid").options; +}}; +$.fn.propertygrid.parseOptions=function(_6fa){ +return $.extend({},$.fn.datagrid.parseOptions(_6fa),$.parser.parseOptions(_6fa,[{showGroup:"boolean"}])); +}; +var _6fb=$.extend({},$.fn.datagrid.defaults.view,{render:function(_6fc,_6fd,_6fe){ +var _6ff=[]; +var _700=this.groups; +for(var i=0;i<_700.length;i++){ +_6ff.push(this.renderGroup.call(this,_6fc,i,_700[i],_6fe)); +} +$(_6fd).html(_6ff.join("")); +},renderGroup:function(_701,_702,_703,_704){ +var _705=$.data(_701,"datagrid"); +var opts=_705.options; +var _706=$(_701).datagrid("getColumnFields",_704); +var _707=[]; +_707.push("
                      "); +_707.push(""); +_707.push(""); +if((_704&&(opts.rownumbers||opts.frozenColumns.length))||(!_704&&!(opts.rownumbers||opts.frozenColumns.length))){ +_707.push(""); +} +_707.push(""); +_707.push(""); +_707.push("
                       "); +if(!_704){ +_707.push(""); +_707.push(opts.groupFormatter.call(_701,_703.value,_703.rows)); +_707.push(""); +} +_707.push("
                      "); +_707.push("
                      "); +_707.push(""); +var _708=_703.startIndex; +for(var j=0;j<_703.rows.length;j++){ +var css=opts.rowStyler?opts.rowStyler.call(_701,_708,_703.rows[j]):""; +var _709=""; +var _70a=""; +if(typeof css=="string"){ +_70a=css; +}else{ +if(css){ +_709=css["class"]||""; +_70a=css["style"]||""; +} +} +var cls="class=\"datagrid-row "+(_708%2&&opts.striped?"datagrid-row-alt ":" ")+_709+"\""; +var _70b=_70a?"style=\""+_70a+"\"":""; +var _70c=_705.rowIdPrefix+"-"+(_704?1:2)+"-"+_708; +_707.push(""); +_707.push(this.renderRow.call(this,_701,_706,_704,_708,_703.rows[j])); +_707.push(""); +_708++; +} +_707.push("
                      "); +return _707.join(""); +},bindEvents:function(_70d){ +var _70e=$.data(_70d,"datagrid"); +var dc=_70e.dc; +var body=dc.body1.add(dc.body2); +var _70f=($.data(body[0],"events")||$._data(body[0],"events")).click[0].handler; +body.unbind("click").bind("click",function(e){ +var tt=$(e.target); +var _710=tt.closest("span.datagrid-row-expander"); +if(_710.length){ +var _711=_710.closest("div.datagrid-group").attr("group-index"); +if(_710.hasClass("datagrid-row-collapse")){ +$(_70d).datagrid("collapseGroup",_711); +}else{ +$(_70d).datagrid("expandGroup",_711); +} +}else{ +_70f(e); +} +e.stopPropagation(); +}); +},onBeforeRender:function(_712,rows){ +var _713=$.data(_712,"datagrid"); +var opts=_713.options; +_714(); +var _715=[]; +for(var i=0;i"+".datagrid-group{height:25px;overflow:hidden;font-weight:bold;border-bottom:1px solid #ccc;}"+""); +} +}; +}}); +$.extend($.fn.datagrid.methods,{expandGroup:function(jq,_71c){ +return jq.each(function(){ +var view=$.data(this,"datagrid").dc.view; +var _71d=view.find(_71c!=undefined?"div.datagrid-group[group-index=\""+_71c+"\"]":"div.datagrid-group"); +var _71e=_71d.find("span.datagrid-row-expander"); +if(_71e.hasClass("datagrid-row-expand")){ +_71e.removeClass("datagrid-row-expand").addClass("datagrid-row-collapse"); +_71d.next("table").show(); +} +$(this).datagrid("fixRowHeight"); +}); +},collapseGroup:function(jq,_71f){ +return jq.each(function(){ +var view=$.data(this,"datagrid").dc.view; +var _720=view.find(_71f!=undefined?"div.datagrid-group[group-index=\""+_71f+"\"]":"div.datagrid-group"); +var _721=_720.find("span.datagrid-row-expander"); +if(_721.hasClass("datagrid-row-collapse")){ +_721.removeClass("datagrid-row-collapse").addClass("datagrid-row-expand"); +_720.next("table").hide(); +} +$(this).datagrid("fixRowHeight"); +}); +}}); +$.fn.propertygrid.defaults=$.extend({},$.fn.datagrid.defaults,{singleSelect:true,remoteSort:false,fitColumns:true,loadMsg:"",frozenColumns:[[{field:"f",width:16,resizable:false}]],columns:[[{field:"name",title:"Name",width:100,sortable:true},{field:"value",title:"Value",width:100,resizable:false}]],showGroup:false,groupView:_6fb,groupField:"group",groupFormatter:function(_722,rows){ +return _722; +}}); +})(jQuery); +(function($){ +function _723(_724){ +var _725=$.data(_724,"treegrid"); +var opts=_725.options; +$(_724).datagrid($.extend({},opts,{url:null,data:null,loader:function(){ +return false; +},onBeforeLoad:function(){ +return false; +},onLoadSuccess:function(){ +},onResizeColumn:function(_726,_727){ +_73d(_724); +opts.onResizeColumn.call(_724,_726,_727); +},onSortColumn:function(sort,_728){ +opts.sortName=sort; +opts.sortOrder=_728; +if(opts.remoteSort){ +_73c(_724); +}else{ +var data=$(_724).treegrid("getData"); +_752(_724,0,data); +} +opts.onSortColumn.call(_724,sort,_728); +},onBeforeEdit:function(_729,row){ +if(opts.onBeforeEdit.call(_724,row)==false){ +return false; +} +},onAfterEdit:function(_72a,row,_72b){ +opts.onAfterEdit.call(_724,row,_72b); +},onCancelEdit:function(_72c,row){ +opts.onCancelEdit.call(_724,row); +},onSelect:function(_72d){ +opts.onSelect.call(_724,find(_724,_72d)); +},onUnselect:function(_72e){ +opts.onUnselect.call(_724,find(_724,_72e)); +},onSelectAll:function(){ +opts.onSelectAll.call(_724,$.data(_724,"treegrid").data); +},onUnselectAll:function(){ +opts.onUnselectAll.call(_724,$.data(_724,"treegrid").data); +},onCheck:function(_72f){ +opts.onCheck.call(_724,find(_724,_72f)); +},onUncheck:function(_730){ +opts.onUncheck.call(_724,find(_724,_730)); +},onCheckAll:function(){ +opts.onCheckAll.call(_724,$.data(_724,"treegrid").data); +},onUncheckAll:function(){ +opts.onUncheckAll.call(_724,$.data(_724,"treegrid").data); +},onClickRow:function(_731){ +opts.onClickRow.call(_724,find(_724,_731)); +},onDblClickRow:function(_732){ +opts.onDblClickRow.call(_724,find(_724,_732)); +},onClickCell:function(_733,_734){ +opts.onClickCell.call(_724,_734,find(_724,_733)); +},onDblClickCell:function(_735,_736){ +opts.onDblClickCell.call(_724,_736,find(_724,_735)); +},onRowContextMenu:function(e,_737){ +opts.onContextMenu.call(_724,e,find(_724,_737)); +}})); +if(!opts.columns){ +var _738=$.data(_724,"datagrid").options; +opts.columns=_738.columns; +opts.frozenColumns=_738.frozenColumns; +} +_725.dc=$.data(_724,"datagrid").dc; +if(opts.pagination){ +var _739=$(_724).datagrid("getPager"); +_739.pagination({pageNumber:opts.pageNumber,pageSize:opts.pageSize,pageList:opts.pageList,onSelectPage:function(_73a,_73b){ +opts.pageNumber=_73a; +opts.pageSize=_73b; +_73c(_724); +}}); +opts.pageSize=_739.pagination("options").pageSize; +} +}; +function _73d(_73e,_73f){ +var opts=$.data(_73e,"datagrid").options; +var dc=$.data(_73e,"datagrid").dc; +if(!dc.body1.is(":empty")&&(!opts.nowrap||opts.autoRowHeight)){ +if(_73f!=undefined){ +var _740=_741(_73e,_73f); +for(var i=0;i<_740.length;i++){ +_742(_740[i][opts.idField]); +} +} +} +$(_73e).datagrid("fixRowHeight",_73f); +function _742(_743){ +var tr1=opts.finder.getTr(_73e,_743,"body",1); +var tr2=opts.finder.getTr(_73e,_743,"body",2); +tr1.css("height",""); +tr2.css("height",""); +var _744=Math.max(tr1.height(),tr2.height()); +tr1.css("height",_744); +tr2.css("height",_744); +}; +}; +function _745(_746){ +var dc=$.data(_746,"datagrid").dc; +var opts=$.data(_746,"treegrid").options; +if(!opts.rownumbers){ +return; +} +dc.body1.find("div.datagrid-cell-rownumber").each(function(i){ +$(this).html(i+1); +}); +}; +function _747(_748){ +var dc=$.data(_748,"datagrid").dc; +var body=dc.body1.add(dc.body2); +var _749=($.data(body[0],"events")||$._data(body[0],"events")).click[0].handler; +dc.body1.add(dc.body2).bind("mouseover",function(e){ +var tt=$(e.target); +var tr=tt.closest("tr.datagrid-row"); +if(!tr.length){ +return; +} +if(tt.hasClass("tree-hit")){ +tt.hasClass("tree-expanded")?tt.addClass("tree-expanded-hover"):tt.addClass("tree-collapsed-hover"); +} +e.stopPropagation(); +}).bind("mouseout",function(e){ +var tt=$(e.target); +var tr=tt.closest("tr.datagrid-row"); +if(!tr.length){ +return; +} +if(tt.hasClass("tree-hit")){ +tt.hasClass("tree-expanded")?tt.removeClass("tree-expanded-hover"):tt.removeClass("tree-collapsed-hover"); +} +e.stopPropagation(); +}).unbind("click").bind("click",function(e){ +var tt=$(e.target); +var tr=tt.closest("tr.datagrid-row"); +if(!tr.length){ +return; +} +if(tt.hasClass("tree-hit")){ +_74a(_748,tr.attr("node-id")); +}else{ +_749(e); +} +e.stopPropagation(); +}); +}; +function _74b(_74c,_74d){ +var opts=$.data(_74c,"treegrid").options; +var tr1=opts.finder.getTr(_74c,_74d,"body",1); +var tr2=opts.finder.getTr(_74c,_74d,"body",2); +var _74e=$(_74c).datagrid("getColumnFields",true).length+(opts.rownumbers?1:0); +var _74f=$(_74c).datagrid("getColumnFields",false).length; +_750(tr1,_74e); +_750(tr2,_74f); +function _750(tr,_751){ +$(""+""+"
                      "+""+"").insertAfter(tr); +}; +}; +function _752(_753,_754,data,_755){ +var _756=$.data(_753,"treegrid"); +var opts=_756.options; +var dc=_756.dc; +data=opts.loadFilter.call(_753,data,_754); +var node=find(_753,_754); +if(node){ +var _757=opts.finder.getTr(_753,_754,"body",1); +var _758=opts.finder.getTr(_753,_754,"body",2); +var cc1=_757.next("tr.treegrid-tr-tree").children("td").children("div"); +var cc2=_758.next("tr.treegrid-tr-tree").children("td").children("div"); +if(!_755){ +node.children=[]; +} +}else{ +var cc1=dc.body1; +var cc2=dc.body2; +if(!_755){ +_756.data=[]; +} +} +if(!_755){ +cc1.empty(); +cc2.empty(); +} +if(opts.view.onBeforeRender){ +opts.view.onBeforeRender.call(opts.view,_753,_754,data); +} +opts.view.render.call(opts.view,_753,cc1,true); +opts.view.render.call(opts.view,_753,cc2,false); +if(opts.showFooter){ +opts.view.renderFooter.call(opts.view,_753,dc.footer1,true); +opts.view.renderFooter.call(opts.view,_753,dc.footer2,false); +} +if(opts.view.onAfterRender){ +opts.view.onAfterRender.call(opts.view,_753); +} +opts.onLoadSuccess.call(_753,node,data); +if(!_754&&opts.pagination){ +var _759=$.data(_753,"treegrid").total; +var _75a=$(_753).datagrid("getPager"); +if(_75a.pagination("options").total!=_759){ +_75a.pagination({total:_759}); +} +} +_73d(_753); +_745(_753); +$(_753).treegrid("autoSizeColumn"); +}; +function _73c(_75b,_75c,_75d,_75e,_75f){ +var opts=$.data(_75b,"treegrid").options; +var body=$(_75b).datagrid("getPanel").find("div.datagrid-body"); +if(_75d){ +opts.queryParams=_75d; +} +var _760=$.extend({},opts.queryParams); +if(opts.pagination){ +$.extend(_760,{page:opts.pageNumber,rows:opts.pageSize}); +} +if(opts.sortName){ +$.extend(_760,{sort:opts.sortName,order:opts.sortOrder}); +} +var row=find(_75b,_75c); +if(opts.onBeforeLoad.call(_75b,row,_760)==false){ +return; +} +var _761=body.find("tr[node-id=\""+_75c+"\"] span.tree-folder"); +_761.addClass("tree-loading"); +$(_75b).treegrid("loading"); +var _762=opts.loader.call(_75b,_760,function(data){ +_761.removeClass("tree-loading"); +$(_75b).treegrid("loaded"); +_752(_75b,_75c,data,_75e); +if(_75f){ +_75f(); +} +},function(){ +_761.removeClass("tree-loading"); +$(_75b).treegrid("loaded"); +opts.onLoadError.apply(_75b,arguments); +if(_75f){ +_75f(); +} +}); +if(_762==false){ +_761.removeClass("tree-loading"); +$(_75b).treegrid("loaded"); +} +}; +function _763(_764){ +var rows=_765(_764); +if(rows.length){ +return rows[0]; +}else{ +return null; +} +}; +function _765(_766){ +return $.data(_766,"treegrid").data; +}; +function _767(_768,_769){ +var row=find(_768,_769); +if(row._parentId){ +return find(_768,row._parentId); +}else{ +return null; +} +}; +function _741(_76a,_76b){ +var opts=$.data(_76a,"treegrid").options; +var body=$(_76a).datagrid("getPanel").find("div.datagrid-view2 div.datagrid-body"); +var _76c=[]; +if(_76b){ +_76d(_76b); +}else{ +var _76e=_765(_76a); +for(var i=0;i<_76e.length;i++){ +_76c.push(_76e[i]); +_76d(_76e[i][opts.idField]); +} +} +function _76d(_76f){ +var _770=find(_76a,_76f); +if(_770&&_770.children){ +for(var i=0,len=_770.children.length;i").insertBefore(_795); +if(hit.prev().length){ +hit.prev().remove(); +} +} +} +_752(_793,_794.parent,_794.data,true); +}; +function _796(_797,_798){ +var ref=_798.before||_798.after; +var opts=$.data(_797,"treegrid").options; +var _799=_767(_797,ref); +_792(_797,{parent:(_799?_799[opts.idField]:null),data:[_798.data]}); +_79a(true); +_79a(false); +_745(_797); +function _79a(_79b){ +var _79c=_79b?1:2; +var tr=opts.finder.getTr(_797,_798.data[opts.idField],"body",_79c); +var _79d=tr.closest("table.datagrid-btable"); +tr=tr.parent().children(); +var dest=opts.finder.getTr(_797,ref,"body",_79c); +if(_798.before){ +tr.insertBefore(dest); +}else{ +var sub=dest.next("tr.treegrid-tr-tree"); +tr.insertAfter(sub.length?sub:dest); +} +_79d.remove(); +}; +}; +function _79e(_79f,_7a0){ +var opts=$.data(_79f,"treegrid").options; +var tr=opts.finder.getTr(_79f,_7a0); +tr.next("tr.treegrid-tr-tree").remove(); +tr.remove(); +var _7a1=del(_7a0); +if(_7a1){ +if(_7a1.children.length==0){ +tr=opts.finder.getTr(_79f,_7a1[opts.idField]); +tr.next("tr.treegrid-tr-tree").remove(); +var cell=tr.children("td[field=\""+opts.treeField+"\"]").children("div.datagrid-cell"); +cell.find(".tree-icon").removeClass("tree-folder").addClass("tree-file"); +cell.find(".tree-hit").remove(); +$("").prependTo(cell); +} +} +_745(_79f); +function del(id){ +var cc; +var _7a2=_767(_79f,_7a0); +if(_7a2){ +cc=_7a2.children; +}else{ +cc=$(_79f).treegrid("getData"); +} +for(var i=0;i"]; +for(var i=0;i<_7bb.length;i++){ +var row=_7bb[i]; +if(row.state!="open"&&row.state!="closed"){ +row.state="open"; +} +var css=opts.rowStyler?opts.rowStyler.call(_7b1,row):""; +var _7bd=""; +var _7be=""; +if(typeof css=="string"){ +_7be=css; +}else{ +if(css){ +_7bd=css["class"]||""; +_7be=css["style"]||""; +} +} +var cls="class=\"datagrid-row "+(_7b6++%2&&opts.striped?"datagrid-row-alt ":" ")+_7bd+"\""; +var _7bf=_7be?"style=\""+_7be+"\"":""; +var _7c0=_7b5+"-"+(_7b9?1:2)+"-"+row[opts.idField]; +_7bc.push(""); +_7bc=_7bc.concat(view.renderRow.call(view,_7b1,_7b4,_7b9,_7ba,row)); +_7bc.push(""); +if(row.children&&row.children.length){ +var tt=_7b8(_7b9,_7ba+1,row.children); +var v=row.state=="closed"?"none":"block"; +_7bc.push("
                      "); +_7bc=_7bc.concat(tt); +_7bc.push("
                      "); +} +} +_7bc.push(""); +return _7bc; +}; +},renderFooter:function(_7c1,_7c2,_7c3){ +var opts=$.data(_7c1,"treegrid").options; +var rows=$.data(_7c1,"treegrid").footer||[]; +var _7c4=$(_7c1).datagrid("getColumnFields",_7c3); +var _7c5=[""]; +for(var i=0;i"); +_7c5.push(this.renderRow.call(this,_7c1,_7c4,_7c3,0,row)); +_7c5.push(""); +} +_7c5.push("
                      "); +$(_7c2).html(_7c5.join("")); +},renderRow:function(_7c6,_7c7,_7c8,_7c9,row){ +var opts=$.data(_7c6,"treegrid").options; +var cc=[]; +if(_7c8&&opts.rownumbers){ +cc.push("
                      0
                      "); +} +for(var i=0;i<_7c7.length;i++){ +var _7ca=_7c7[i]; +var col=$(_7c6).datagrid("getColumnOption",_7ca); +if(col){ +var css=col.styler?(col.styler(row[_7ca],row)||""):""; +var _7cb=""; +var _7cc=""; +if(typeof css=="string"){ +_7cc=css; +}else{ +if(cc){ +_7cb=css["class"]||""; +_7cc=css["style"]||""; +} +} +var cls=_7cb?"class=\""+_7cb+"\"":""; +var _7cd=col.hidden?"style=\"display:none;"+_7cc+"\"":(_7cc?"style=\""+_7cc+"\"":""); +cc.push(""); +if(col.checkbox){ +var _7cd=""; +}else{ +var _7cd=_7cc; +if(col.align){ +_7cd+=";text-align:"+col.align+";"; +} +if(!opts.nowrap){ +_7cd+=";white-space:normal;height:auto;"; +}else{ +if(opts.autoRowHeight){ +_7cd+=";height:auto;"; +} +} +} +cc.push("
                      "); +if(col.checkbox){ +if(row.checked){ +cc.push(""); +}else{ +var val=null; +if(col.formatter){ +val=col.formatter(row[_7ca],row); +}else{ +val=row[_7ca]; +} +if(_7ca==opts.treeField){ +for(var j=0;j<_7c9;j++){ +cc.push(""); +} +if(row.state=="closed"){ +cc.push(""); +cc.push(""); +}else{ +if(row.children&&row.children.length){ +cc.push(""); +cc.push(""); +}else{ +cc.push(""); +cc.push(""); +} +} +cc.push(""+val+""); +}else{ +cc.push(val); +} +} +cc.push("
                      "); +cc.push(""); +} +} +return cc.join(""); +},refreshRow:function(_7ce,id){ +this.updateRow.call(this,_7ce,id,{}); +},updateRow:function(_7cf,id,row){ +var opts=$.data(_7cf,"treegrid").options; +var _7d0=$(_7cf).treegrid("find",id); +$.extend(_7d0,row); +var _7d1=$(_7cf).treegrid("getLevel",id)-1; +var _7d2=opts.rowStyler?opts.rowStyler.call(_7cf,_7d0):""; +function _7d3(_7d4){ +var _7d5=$(_7cf).treegrid("getColumnFields",_7d4); +var tr=opts.finder.getTr(_7cf,id,"body",(_7d4?1:2)); +var _7d6=tr.find("div.datagrid-cell-rownumber").html(); +var _7d7=tr.find("div.datagrid-cell-check input[type=checkbox]").is(":checked"); +tr.html(this.renderRow(_7cf,_7d5,_7d4,_7d1,_7d0)); +tr.attr("style",_7d2||""); +tr.find("div.datagrid-cell-rownumber").html(_7d6); +if(_7d7){ +tr.find("div.datagrid-cell-check input[type=checkbox]")._propAttr("checked",true); +} +}; +_7d3.call(this,true); +_7d3.call(this,false); +$(_7cf).treegrid("fixRowHeight",id); +},onBeforeRender:function(_7d8,_7d9,data){ +if($.isArray(_7d9)){ +data={total:_7d9.length,rows:_7d9}; +_7d9=null; +} +if(!data){ +return false; +} +var _7da=$.data(_7d8,"treegrid"); +var opts=_7da.options; +if(data.length==undefined){ +if(data.footer){ +_7da.footer=data.footer; +} +if(data.total){ +_7da.total=data.total; +} +data=this.transfer(_7d8,_7d9,data.rows); +}else{ +function _7db(_7dc,_7dd){ +for(var i=0;i<_7dc.length;i++){ +var row=_7dc[i]; +row._parentId=_7dd; +if(row.children&&row.children.length){ +_7db(row.children,row[opts.idField]); +} +} +}; +_7db(data,_7d9); +} +var node=find(_7d8,_7d9); +if(node){ +if(node.children){ +node.children=node.children.concat(data); +}else{ +node.children=data; +} +}else{ +_7da.data=_7da.data.concat(data); +} +this.sort(_7d8,data); +this.treeNodes=data; +this.treeLevel=$(_7d8).treegrid("getLevel",_7d9); +},sort:function(_7de,data){ +var opts=$.data(_7de,"treegrid").options; +if(!opts.remoteSort&&opts.sortName){ +var _7df=opts.sortName.split(","); +var _7e0=opts.sortOrder.split(","); +_7e1(data); +} +function _7e1(rows){ +rows.sort(function(r1,r2){ +var r=0; +for(var i=0;i<_7df.length;i++){ +var sn=_7df[i]; +var so=_7e0[i]; +var col=$(_7de).treegrid("getColumnOption",sn); +var _7e2=col.sorter||function(a,b){ +return a==b?0:(a>b?1:-1); +}; +r=_7e2(r1[sn],r2[sn])*(so=="asc"?1:-1); +if(r!=0){ +return r; +} +} +return r; +}); +for(var i=0;i"+""+""+""+"").insertAfter(_7fb); +var _7fc=$("
                      ").appendTo("body"); +_7fc.panel({doSize:false,closed:true,cls:"combo-p",style:{position:"absolute",zIndex:10},onOpen:function(){ +$(this).panel("resize"); +},onClose:function(){ +var _7fd=$.data(_7fb,"combo"); +if(_7fd){ +_7fd.options.onHidePanel.call(_7fb); +} +}}); +var name=$(_7fb).attr("name"); +if(name){ +span.find("input.combo-value").attr("name",name); +$(_7fb).removeAttr("name").attr("comboName",name); +} +return {combo:span,panel:_7fc}; +}; +function _7fe(_7ff){ +var _800=$.data(_7ff,"combo"); +var opts=_800.options; +var _801=_800.combo; +if(opts.hasDownArrow){ +_801.find(".combo-arrow").show(); +}else{ +_801.find(".combo-arrow").hide(); +} +_802(_7ff,opts.disabled); +_803(_7ff,opts.readonly); +}; +function _804(_805){ +var _806=$.data(_805,"combo"); +var _807=_806.combo.find("input.combo-text"); +_807.validatebox("destroy"); +_806.panel.panel("destroy"); +_806.combo.remove(); +$(_805).remove(); +}; +function _808(_809){ +$(_809).find(".combo-f").each(function(){ +var p=$(this).combo("panel"); +if(p.is(":visible")){ +p.panel("close"); +} +}); +}; +function _80a(_80b){ +var _80c=$.data(_80b,"combo"); +var opts=_80c.options; +var _80d=_80c.panel; +var _80e=_80c.combo; +var _80f=_80e.find(".combo-text"); +var _810=_80e.find(".combo-arrow"); +$(document).unbind(".combo").bind("mousedown.combo",function(e){ +var p=$(e.target).closest("span.combo,div.combo-p"); +if(p.length){ +_808(p); +return; +} +$("body>div.combo-p>div.combo-panel:visible").panel("close"); +}); +_80f.unbind(".combo"); +_810.unbind(".combo"); +if(!opts.disabled&&!opts.readonly){ +_80f.bind("click.combo",function(e){ +if(!opts.editable){ +_811.call(this); +}else{ +var p=$(this).closest("div.combo-panel"); +$("div.combo-panel:visible").not(_80d).not(p).panel("close"); +} +}).bind("keydown.combo",function(e){ +switch(e.keyCode){ +case 38: +opts.keyHandler.up.call(_80b,e); +break; +case 40: +opts.keyHandler.down.call(_80b,e); +break; +case 37: +opts.keyHandler.left.call(_80b,e); +break; +case 39: +opts.keyHandler.right.call(_80b,e); +break; +case 13: +e.preventDefault(); +opts.keyHandler.enter.call(_80b,e); +return false; +case 9: +case 27: +_812(_80b); +break; +default: +if(opts.editable){ +if(_80c.timer){ +clearTimeout(_80c.timer); +} +_80c.timer=setTimeout(function(){ +var q=_80f.val(); +if(_80c.previousValue!=q){ +_80c.previousValue=q; +$(_80b).combo("showPanel"); +opts.keyHandler.query.call(_80b,_80f.val(),e); +$(_80b).combo("validate"); +} +},opts.delay); +} +} +}); +_810.bind("click.combo",function(){ +_811.call(this); +}).bind("mouseenter.combo",function(){ +$(this).addClass("combo-arrow-hover"); +}).bind("mouseleave.combo",function(){ +$(this).removeClass("combo-arrow-hover"); +}); +} +function _811(){ +if(_80d.is(":visible")){ +_808(_80d); +_812(_80b); +}else{ +var p=$(this).closest("div.combo-panel"); +$("div.combo-panel:visible").not(_80d).not(p).panel("close"); +$(_80b).combo("showPanel"); +} +_80f.focus(); +}; +}; +function _813(_814){ +var opts=$.data(_814,"combo").options; +var _815=$.data(_814,"combo").combo; +var _816=$.data(_814,"combo").panel; +if($.fn.window){ +_816.panel("panel").css("z-index",$.fn.window.defaults.zIndex++); +} +_816.panel("move",{left:_815.offset().left,top:_817()}); +if(_816.panel("options").closed){ +_816.panel("open"); +opts.onShowPanel.call(_814); +} +(function(){ +if(_816.is(":visible")){ +_816.panel("move",{left:_818(),top:_817()}); +setTimeout(arguments.callee,200); +} +})(); +function _818(){ +var left=_815.offset().left; +if(left+_816._outerWidth()>$(window)._outerWidth()+$(document).scrollLeft()){ +left=$(window)._outerWidth()+$(document).scrollLeft()-_816._outerWidth(); +} +if(left<0){ +left=0; +} +return left; +}; +function _817(){ +var top=_815.offset().top+_815._outerHeight(); +if(top+_816._outerHeight()>$(window)._outerHeight()+$(document).scrollTop()){ +top=_815.offset().top-_816._outerHeight(); +} +if(top<$(document).scrollTop()){ +top=_815.offset().top+_815._outerHeight(); +} +return top; +}; +}; +function _812(_819){ +var _81a=$.data(_819,"combo").panel; +_81a.panel("close"); +}; +function _81b(_81c){ +var opts=$.data(_81c,"combo").options; +var _81d=$(_81c).combo("textbox"); +_81d.validatebox($.extend({},opts,{deltaX:(opts.hasDownArrow?opts.deltaX:(opts.deltaX>0?1:-1))})); +}; +function _802(_81e,_81f){ +var _820=$.data(_81e,"combo"); +var opts=_820.options; +var _821=_820.combo; +if(_81f){ +opts.disabled=true; +$(_81e).attr("disabled",true); +_821.find(".combo-value").attr("disabled",true); +_821.find(".combo-text").attr("disabled",true); +}else{ +opts.disabled=false; +$(_81e).removeAttr("disabled"); +_821.find(".combo-value").removeAttr("disabled"); +_821.find(".combo-text").removeAttr("disabled"); +} +}; +function _803(_822,mode){ +var _823=$.data(_822,"combo"); +var opts=_823.options; +opts.readonly=mode==undefined?true:mode; +var _824=opts.readonly?true:(!opts.editable); +_823.combo.find(".combo-text").attr("readonly",_824).css("cursor",_824?"pointer":""); +}; +function _825(_826){ +var _827=$.data(_826,"combo"); +var opts=_827.options; +var _828=_827.combo; +if(opts.multiple){ +_828.find("input.combo-value").remove(); +}else{ +_828.find("input.combo-value").val(""); +} +_828.find("input.combo-text").val(""); +}; +function _829(_82a){ +var _82b=$.data(_82a,"combo").combo; +return _82b.find("input.combo-text").val(); +}; +function _82c(_82d,text){ +var _82e=$.data(_82d,"combo"); +var _82f=_82e.combo.find("input.combo-text"); +if(_82f.val()!=text){ +_82f.val(text); +$(_82d).combo("validate"); +_82e.previousValue=text; +} +}; +function _830(_831){ +var _832=[]; +var _833=$.data(_831,"combo").combo; +_833.find("input.combo-value").each(function(){ +_832.push($(this).val()); +}); +return _832; +}; +function _834(_835,_836){ +var opts=$.data(_835,"combo").options; +var _837=_830(_835); +var _838=$.data(_835,"combo").combo; +_838.find("input.combo-value").remove(); +var name=$(_835).attr("comboName"); +for(var i=0;i<_836.length;i++){ +var _839=$("").appendTo(_838); +if(name){ +_839.attr("name",name); +} +_839.val(_836[i]); +} +var tmp=[]; +for(var i=0;i<_837.length;i++){ +tmp[i]=_837[i]; +} +var aa=[]; +for(var i=0;i<_836.length;i++){ +for(var j=0;j_859.height()){ +var h=_859.scrollTop()+item.position().top+item.outerHeight()-_859.height(); +_859.scrollTop(h); +} +} +} +}; +function nav(_85a,dir){ +var opts=$.data(_85a,"combobox").options; +var _85b=$(_85a).combobox("panel"); +var item=_85b.children("div.combobox-item-hover"); +if(!item.length){ +item=_85b.children("div.combobox-item-selected"); +} +item.removeClass("combobox-item-hover"); +var _85c="div.combobox-item:visible:not(.combobox-item-disabled):first"; +var _85d="div.combobox-item:visible:not(.combobox-item-disabled):last"; +if(!item.length){ +item=_85b.children(dir=="next"?_85c:_85d); +}else{ +if(dir=="next"){ +item=item.nextAll(_85c); +if(!item.length){ +item=_85b.children(_85c); +} +}else{ +item=item.prevAll(_85c); +if(!item.length){ +item=_85b.children(_85d); +} +} +} +if(item.length){ +item.addClass("combobox-item-hover"); +var row=_84e(_85a,item.attr("id"),"domId"); +if(row){ +_856(_85a,row[opts.valueField]); +if(opts.selectOnNavigation){ +_85e(_85a,row[opts.valueField]); +} +} +} +}; +function _85e(_85f,_860){ +var opts=$.data(_85f,"combobox").options; +var _861=$(_85f).combo("getValues"); +if($.inArray(_860+"",_861)==-1){ +if(opts.multiple){ +_861.push(_860); +}else{ +_861=[_860]; +} +_862(_85f,_861); +opts.onSelect.call(_85f,_84e(_85f,_860)); +} +}; +function _863(_864,_865){ +var opts=$.data(_864,"combobox").options; +var _866=$(_864).combo("getValues"); +var _867=$.inArray(_865+"",_866); +if(_867>=0){ +_866.splice(_867,1); +_862(_864,_866); +opts.onUnselect.call(_864,_84e(_864,_865)); +} +}; +function _862(_868,_869,_86a){ +var opts=$.data(_868,"combobox").options; +var _86b=$(_868).combo("panel"); +_86b.find("div.combobox-item-selected").removeClass("combobox-item-selected"); +var vv=[],ss=[]; +for(var i=0;i<_869.length;i++){ +var v=_869[i]; +var s=v; +var row=_84e(_868,v); +if(row){ +s=row[opts.textField]; +$("#"+row.domId).addClass("combobox-item-selected"); +} +vv.push(v); +ss.push(s); +} +$(_868).combo("setValues",vv); +if(!_86a){ +$(_868).combo("setText",ss.join(opts.separator)); +} +}; +var _86c=1; +function _86d(_86e,data,_86f){ +var _870=$.data(_86e,"combobox"); +var opts=_870.options; +_870.data=opts.loadFilter.call(_86e,data); +_870.groups=[]; +data=_870.data; +var _871=$(_86e).combobox("getValues"); +var dd=[]; +var _872=undefined; +for(var i=0;i"); +dd.push(opts.groupFormatter?opts.groupFormatter.call(_86e,g):g); +dd.push("
                      "); +} +}else{ +_872=undefined; +} +var cls="combobox-item"+(row.disabled?" combobox-item-disabled":"")+(g?" combobox-gitem":""); +row.domId="_easyui_combobox_"+_86c++; +dd.push("
                      "); +dd.push(opts.formatter?opts.formatter.call(_86e,row):s); +dd.push("
                      "); +if(row["selected"]&&$.inArray(v,_871)==-1){ +_871.push(v); +} +} +$(_86e).combo("panel").html(dd.join("")); +if(opts.multiple){ +_862(_86e,_871,_86f); +}else{ +_862(_86e,_871.length?[_871[_871.length-1]]:[],_86f); +} +opts.onLoadSuccess.call(_86e,data); +}; +function _873(_874,url,_875,_876){ +var opts=$.data(_874,"combobox").options; +if(url){ +opts.url=url; +} +_875=_875||{}; +if(opts.onBeforeLoad.call(_874,_875)==false){ +return; +} +opts.loader.call(_874,_875,function(data){ +_86d(_874,data,_876); +},function(){ +opts.onLoadError.apply(this,arguments); +}); +}; +function _877(_878,q){ +var _879=$.data(_878,"combobox"); +var opts=_879.options; +if(opts.multiple&&!q){ +_862(_878,[],true); +}else{ +_862(_878,[q],true); +} +if(opts.mode=="remote"){ +_873(_878,null,{q:q},true); +}else{ +var _87a=$(_878).combo("panel"); +_87a.find("div.combobox-item,div.combobox-group").hide(); +var data=_879.data; +var _87b=undefined; +for(var i=0;i").appendTo(_89c); +$.data(_89b,"combotree").tree=tree; +} +tree.tree($.extend({},opts,{checkbox:opts.multiple,onLoadSuccess:function(node,data){ +var _89d=$(_89b).combotree("getValues"); +if(opts.multiple){ +var _89e=tree.tree("getChecked"); +for(var i=0;i<_89e.length;i++){ +var id=_89e[i].id; +(function(){ +for(var i=0;i<_89d.length;i++){ +if(id==_89d[i]){ +return; +} +} +_89d.push(id); +})(); +} +} +$(_89b).combotree("setValues",_89d); +opts.onLoadSuccess.call(this,node,data); +},onClick:function(node){ +_8a0(_89b); +$(_89b).combo("hidePanel"); +opts.onClick.call(this,node); +},onCheck:function(node,_89f){ +_8a0(_89b); +opts.onCheck.call(this,node,_89f); +}})); +}; +function _8a0(_8a1){ +var opts=$.data(_8a1,"combotree").options; +var tree=$.data(_8a1,"combotree").tree; +var vv=[],ss=[]; +if(opts.multiple){ +var _8a2=tree.tree("getChecked"); +for(var i=0;i<_8a2.length;i++){ +vv.push(_8a2[i].id); +ss.push(_8a2[i].text); +} +}else{ +var node=tree.tree("getSelected"); +if(node){ +vv.push(node.id); +ss.push(node.text); +} +} +$(_8a1).combo("setValues",vv).combo("setText",ss.join(opts.separator)); +}; +function _8a3(_8a4,_8a5){ +var opts=$.data(_8a4,"combotree").options; +var tree=$.data(_8a4,"combotree").tree; +tree.find("span.tree-checkbox").addClass("tree-checkbox0").removeClass("tree-checkbox1 tree-checkbox2"); +var vv=[],ss=[]; +for(var i=0;i<_8a5.length;i++){ +var v=_8a5[i]; +var s=v; +var node=tree.tree("find",v); +if(node){ +s=node.text; +tree.tree("check",node.target); +tree.tree("select",node.target); +} +vv.push(v); +ss.push(s); +} +$(_8a4).combo("setValues",vv).combo("setText",ss.join(opts.separator)); +}; +$.fn.combotree=function(_8a6,_8a7){ +if(typeof _8a6=="string"){ +var _8a8=$.fn.combotree.methods[_8a6]; +if(_8a8){ +return _8a8(this,_8a7); +}else{ +return this.combo(_8a6,_8a7); +} +} +_8a6=_8a6||{}; +return this.each(function(){ +var _8a9=$.data(this,"combotree"); +if(_8a9){ +$.extend(_8a9.options,_8a6); +}else{ +$.data(this,"combotree",{options:$.extend({},$.fn.combotree.defaults,$.fn.combotree.parseOptions(this),_8a6)}); +} +_89a(this); +}); +}; +$.fn.combotree.methods={options:function(jq){ +var _8aa=jq.combo("options"); +return $.extend($.data(jq[0],"combotree").options,{originalValue:_8aa.originalValue,disabled:_8aa.disabled,readonly:_8aa.readonly}); +},tree:function(jq){ +return $.data(jq[0],"combotree").tree; +},loadData:function(jq,data){ +return jq.each(function(){ +var opts=$.data(this,"combotree").options; +opts.data=data; +var tree=$.data(this,"combotree").tree; +tree.tree("loadData",data); +}); +},reload:function(jq,url){ +return jq.each(function(){ +var opts=$.data(this,"combotree").options; +var tree=$.data(this,"combotree").tree; +if(url){ +opts.url=url; +} +tree.tree({url:opts.url}); +}); +},setValues:function(jq,_8ab){ +return jq.each(function(){ +_8a3(this,_8ab); +}); +},setValue:function(jq,_8ac){ +return jq.each(function(){ +_8a3(this,[_8ac]); +}); +},clear:function(jq){ +return jq.each(function(){ +var tree=$.data(this,"combotree").tree; +tree.find("div.tree-node-selected").removeClass("tree-node-selected"); +var cc=tree.tree("getChecked"); +for(var i=0;i").appendTo(_8b1); +_8b0.grid=grid; +} +grid.datagrid($.extend({},opts,{border:false,fit:true,singleSelect:(!opts.multiple),onLoadSuccess:function(data){ +var _8b2=$(_8af).combo("getValues"); +var _8b3=opts.onSelect; +opts.onSelect=function(){ +}; +_8bd(_8af,_8b2,_8b0.remainText); +opts.onSelect=_8b3; +opts.onLoadSuccess.apply(_8af,arguments); +},onClickRow:_8b4,onSelect:function(_8b5,row){ +_8b6(); +opts.onSelect.call(this,_8b5,row); +},onUnselect:function(_8b7,row){ +_8b6(); +opts.onUnselect.call(this,_8b7,row); +},onSelectAll:function(rows){ +_8b6(); +opts.onSelectAll.call(this,rows); +},onUnselectAll:function(rows){ +if(opts.multiple){ +_8b6(); +} +opts.onUnselectAll.call(this,rows); +}})); +function _8b4(_8b8,row){ +_8b0.remainText=false; +_8b6(); +if(!opts.multiple){ +$(_8af).combo("hidePanel"); +} +opts.onClickRow.call(this,_8b8,row); +}; +function _8b6(){ +var rows=grid.datagrid("getSelections"); +var vv=[],ss=[]; +for(var i=0;i=_8bb){ +_8bc=0; +} +} +grid.datagrid("highlightRow",_8bc); +if(opts.selectOnNavigation){ +_8ba.remainText=false; +grid.datagrid("selectRow",_8bc); +} +}; +function _8bd(_8be,_8bf,_8c0){ +var _8c1=$.data(_8be,"combogrid"); +var opts=_8c1.options; +var grid=_8c1.grid; +var rows=grid.datagrid("getRows"); +var ss=[]; +var _8c2=$(_8be).combo("getValues"); +var _8c3=$(_8be).combo("options"); +var _8c4=_8c3.onChange; +_8c3.onChange=function(){ +}; +grid.datagrid("clearSelections"); +for(var i=0;i<_8bf.length;i++){ +var _8c5=grid.datagrid("getRowIndex",_8bf[i]); +if(_8c5>=0){ +grid.datagrid("selectRow",_8c5); +ss.push(rows[_8c5][opts.textField]); +}else{ +ss.push(_8bf[i]); +} +} +$(_8be).combo("setValues",_8c2); +_8c3.onChange=_8c4; +$(_8be).combo("setValues",_8bf); +if(!_8c0){ +var s=ss.join(opts.separator); +if($(_8be).combo("getText")!=s){ +$(_8be).combo("setText",s); +} +} +}; +function _8c6(_8c7,q){ +var _8c8=$.data(_8c7,"combogrid"); +var opts=_8c8.options; +var grid=_8c8.grid; +_8c8.remainText=true; +if(opts.multiple&&!q){ +_8bd(_8c7,[],true); +}else{ +_8bd(_8c7,[q],true); +} +if(opts.mode=="remote"){ +grid.datagrid("clearSelections"); +grid.datagrid("load",$.extend({},opts.queryParams,{q:q})); +}else{ +if(!q){ +return; +} +var rows=grid.datagrid("getRows"); +for(var i=0;i
                      ").appendTo(_8da); +if(opts.sharedCalendar){ +_8d7.calendar=$(opts.sharedCalendar).appendTo(cc); +if(!_8d7.calendar.hasClass("calendar")){ +_8d7.calendar.calendar(); +} +}else{ +_8d7.calendar=$("
                      ").appendTo(cc).calendar(); +} +$.extend(_8d7.calendar.calendar("options"),{fit:true,border:false,onSelect:function(date){ +var opts=$(this.target).datebox("options"); +_8e0(this.target,opts.formatter(date)); +$(this.target).combo("hidePanel"); +opts.onSelect.call(_8d6,date); +}}); +_8e0(_8d6,opts.value); +var _8db=$("
                      ").appendTo(_8da); +var tr=_8db.find("tr"); +for(var i=0;i").appendTo(tr); +var btn=opts.buttons[i]; +var t=$("").html($.isFunction(btn.text)?btn.text(_8d6):btn.text).appendTo(td); +t.bind("click",{target:_8d6,handler:btn.handler},function(e){ +e.data.handler.call(this,e.data.target); +}); +} +tr.find("td").css("width",(100/opts.buttons.length)+"%"); +}; +function _8d8(){ +var _8dc=$(_8d6).combo("panel"); +var cc=_8dc.children("div.datebox-calendar-inner"); +_8dc.children()._outerWidth(_8dc.width()); +_8d7.calendar.appendTo(cc); +_8d7.calendar[0].target=_8d6; +if(opts.panelHeight!="auto"){ +var _8dd=_8dc.height(); +_8dc.children().not(cc).each(function(){ +_8dd-=$(this).outerHeight(); +}); +cc._outerHeight(_8dd); +} +_8d7.calendar.calendar("resize"); +}; +}; +function _8de(_8df,q){ +_8e0(_8df,q); +}; +function _8e1(_8e2){ +var _8e3=$.data(_8e2,"datebox"); +var opts=_8e3.options; +var _8e4=opts.formatter(_8e3.calendar.calendar("options").current); +_8e0(_8e2,_8e4); +$(_8e2).combo("hidePanel"); +}; +function _8e0(_8e5,_8e6){ +var _8e7=$.data(_8e5,"datebox"); +var opts=_8e7.options; +$(_8e5).combo("setValue",_8e6).combo("setText",_8e6); +_8e7.calendar.calendar("moveTo",opts.parser(_8e6)); +}; +$.fn.datebox=function(_8e8,_8e9){ +if(typeof _8e8=="string"){ +var _8ea=$.fn.datebox.methods[_8e8]; +if(_8ea){ +return _8ea(this,_8e9); +}else{ +return this.combo(_8e8,_8e9); +} +} +_8e8=_8e8||{}; +return this.each(function(){ +var _8eb=$.data(this,"datebox"); +if(_8eb){ +$.extend(_8eb.options,_8e8); +}else{ +$.data(this,"datebox",{options:$.extend({},$.fn.datebox.defaults,$.fn.datebox.parseOptions(this),_8e8)}); +} +_8d5(this); +}); +}; +$.fn.datebox.methods={options:function(jq){ +var _8ec=jq.combo("options"); +return $.extend($.data(jq[0],"datebox").options,{originalValue:_8ec.originalValue,disabled:_8ec.disabled,readonly:_8ec.readonly}); +},calendar:function(jq){ +return $.data(jq[0],"datebox").calendar; +},setValue:function(jq,_8ed){ +return jq.each(function(){ +_8e0(this,_8ed); +}); +},reset:function(jq){ +return jq.each(function(){ +var opts=$(this).datebox("options"); +$(this).datebox("setValue",opts.originalValue); +}); +}}; +$.fn.datebox.parseOptions=function(_8ee){ +return $.extend({},$.fn.combo.parseOptions(_8ee),$.parser.parseOptions(_8ee,["sharedCalendar"])); +}; +$.fn.datebox.defaults=$.extend({},$.fn.combo.defaults,{panelWidth:180,panelHeight:"auto",sharedCalendar:null,keyHandler:{up:function(e){ +},down:function(e){ +},left:function(e){ +},right:function(e){ +},enter:function(e){ +_8e1(this); +},query:function(q,e){ +_8de(this,q); +}},currentText:"Today",closeText:"Close",okText:"Ok",buttons:[{text:function(_8ef){ +return $(_8ef).datebox("options").currentText; +},handler:function(_8f0){ +$(_8f0).datebox("calendar").calendar({year:new Date().getFullYear(),month:new Date().getMonth()+1,current:new Date()}); +_8e1(_8f0); +}},{text:function(_8f1){ +return $(_8f1).datebox("options").closeText; +},handler:function(_8f2){ +$(this).closest("div.combo-panel").panel("close"); +}}],formatter:function(date){ +var y=date.getFullYear(); +var m=date.getMonth()+1; +var d=date.getDate(); +return m+"/"+d+"/"+y; +},parser:function(s){ +var t=Date.parse(s); +if(!isNaN(t)){ +return new Date(t); +}else{ +return new Date(); +} +},onSelect:function(date){ +}}); +})(jQuery); +(function($){ +function _8f3(_8f4){ +var _8f5=$.data(_8f4,"datetimebox"); +var opts=_8f5.options; +$(_8f4).datebox($.extend({},opts,{onShowPanel:function(){ +var _8f6=$(_8f4).datetimebox("getValue"); +_8f8(_8f4,_8f6,true); +opts.onShowPanel.call(_8f4); +},formatter:$.fn.datebox.defaults.formatter,parser:$.fn.datebox.defaults.parser})); +$(_8f4).removeClass("datebox-f").addClass("datetimebox-f"); +$(_8f4).datebox("calendar").calendar({onSelect:function(date){ +opts.onSelect.call(_8f4,date); +}}); +var _8f7=$(_8f4).datebox("panel"); +if(!_8f5.spinner){ +var p=$("
                      ").insertAfter(_8f7.children("div.datebox-calendar-inner")); +_8f5.spinner=p.children("input"); +} +_8f5.spinner.timespinner({showSeconds:opts.showSeconds,separator:opts.timeSeparator}).unbind(".datetimebox").bind("mousedown.datetimebox",function(e){ +e.stopPropagation(); +}); +_8f8(_8f4,opts.value); +}; +function _8f9(_8fa){ +var c=$(_8fa).datetimebox("calendar"); +var t=$(_8fa).datetimebox("spinner"); +var date=c.calendar("options").current; +return new Date(date.getFullYear(),date.getMonth(),date.getDate(),t.timespinner("getHours"),t.timespinner("getMinutes"),t.timespinner("getSeconds")); +}; +function _8fb(_8fc,q){ +_8f8(_8fc,q,true); +}; +function _8fd(_8fe){ +var opts=$.data(_8fe,"datetimebox").options; +var date=_8f9(_8fe); +_8f8(_8fe,opts.formatter.call(_8fe,date)); +$(_8fe).combo("hidePanel"); +}; +function _8f8(_8ff,_900,_901){ +var opts=$.data(_8ff,"datetimebox").options; +$(_8ff).combo("setValue",_900); +if(!_901){ +if(_900){ +var date=opts.parser.call(_8ff,_900); +$(_8ff).combo("setValue",opts.formatter.call(_8ff,date)); +$(_8ff).combo("setText",opts.formatter.call(_8ff,date)); +}else{ +$(_8ff).combo("setText",_900); +} +} +var date=opts.parser.call(_8ff,_900); +$(_8ff).datetimebox("calendar").calendar("moveTo",date); +$(_8ff).datetimebox("spinner").timespinner("setValue",_902(date)); +function _902(date){ +function _903(_904){ +return (_904<10?"0":"")+_904; +}; +var tt=[_903(date.getHours()),_903(date.getMinutes())]; +if(opts.showSeconds){ +tt.push(_903(date.getSeconds())); +} +return tt.join($(_8ff).datetimebox("spinner").timespinner("options").separator); +}; +}; +$.fn.datetimebox=function(_905,_906){ +if(typeof _905=="string"){ +var _907=$.fn.datetimebox.methods[_905]; +if(_907){ +return _907(this,_906); +}else{ +return this.datebox(_905,_906); +} +} +_905=_905||{}; +return this.each(function(){ +var _908=$.data(this,"datetimebox"); +if(_908){ +$.extend(_908.options,_905); +}else{ +$.data(this,"datetimebox",{options:$.extend({},$.fn.datetimebox.defaults,$.fn.datetimebox.parseOptions(this),_905)}); +} +_8f3(this); +}); +}; +$.fn.datetimebox.methods={options:function(jq){ +var _909=jq.datebox("options"); +return $.extend($.data(jq[0],"datetimebox").options,{originalValue:_909.originalValue,disabled:_909.disabled,readonly:_909.readonly}); +},spinner:function(jq){ +return $.data(jq[0],"datetimebox").spinner; +},setValue:function(jq,_90a){ +return jq.each(function(){ +_8f8(this,_90a); +}); +},reset:function(jq){ +return jq.each(function(){ +var opts=$(this).datetimebox("options"); +$(this).datetimebox("setValue",opts.originalValue); +}); +}}; +$.fn.datetimebox.parseOptions=function(_90b){ +var t=$(_90b); +return $.extend({},$.fn.datebox.parseOptions(_90b),$.parser.parseOptions(_90b,["timeSeparator",{showSeconds:"boolean"}])); +}; +$.fn.datetimebox.defaults=$.extend({},$.fn.datebox.defaults,{showSeconds:true,timeSeparator:":",keyHandler:{up:function(e){ +},down:function(e){ +},left:function(e){ +},right:function(e){ +},enter:function(e){ +_8fd(this); +},query:function(q,e){ +_8fb(this,q); +}},buttons:[{text:function(_90c){ +return $(_90c).datetimebox("options").currentText; +},handler:function(_90d){ +$(_90d).datetimebox("calendar").calendar({year:new Date().getFullYear(),month:new Date().getMonth()+1,current:new Date()}); +_8fd(_90d); +}},{text:function(_90e){ +return $(_90e).datetimebox("options").okText; +},handler:function(_90f){ +_8fd(_90f); +}},{text:function(_910){ +return $(_910).datetimebox("options").closeText; +},handler:function(_911){ +$(this).closest("div.combo-panel").panel("close"); +}}],formatter:function(date){ +var h=date.getHours(); +var M=date.getMinutes(); +var s=date.getSeconds(); +function _912(_913){ +return (_913<10?"0":"")+_913; +}; +var _914=$(this).datetimebox("spinner").timespinner("options").separator; +var r=$.fn.datebox.defaults.formatter(date)+" "+_912(h)+_914+_912(M); +if($(this).datetimebox("options").showSeconds){ +r+=_914+_912(s); +} +return r; +},parser:function(s){ +if($.trim(s)==""){ +return new Date(); +} +var dt=s.split(" "); +var d=$.fn.datebox.defaults.parser(dt[0]); +if(dt.length<2){ +return d; +} +var _915=$(this).datetimebox("spinner").timespinner("options").separator; +var tt=dt[1].split(_915); +var hour=parseInt(tt[0],10)||0; +var _916=parseInt(tt[1],10)||0; +var _917=parseInt(tt[2],10)||0; +return new Date(d.getFullYear(),d.getMonth(),d.getDate(),hour,_916,_917); +}}); +})(jQuery); +(function($){ +function init(_918){ +var _919=$("
                      "+"
                      "+""+""+"
                      "+"
                      "+"
                      "+"
                      "+""+"
                      ").insertAfter(_918); +var t=$(_918); +t.addClass("slider-f").hide(); +var name=t.attr("name"); +if(name){ +_919.find("input.slider-value").attr("name",name); +t.removeAttr("name").attr("sliderName",name); +} +return _919; +}; +function _91a(_91b,_91c){ +var _91d=$.data(_91b,"slider"); +var opts=_91d.options; +var _91e=_91d.slider; +if(_91c){ +if(_91c.width){ +opts.width=_91c.width; +} +if(_91c.height){ +opts.height=_91c.height; +} +} +if(opts.mode=="h"){ +_91e.css("height",""); +_91e.children("div").css("height",""); +if(!isNaN(opts.width)){ +_91e.width(opts.width); +} +}else{ +_91e.css("width",""); +_91e.children("div").css("width",""); +if(!isNaN(opts.height)){ +_91e.height(opts.height); +_91e.find("div.slider-rule").height(opts.height); +_91e.find("div.slider-rulelabel").height(opts.height); +_91e.find("div.slider-inner")._outerHeight(opts.height); +} +} +_91f(_91b); +}; +function _920(_921){ +var _922=$.data(_921,"slider"); +var opts=_922.options; +var _923=_922.slider; +var aa=opts.mode=="h"?opts.rule:opts.rule.slice(0).reverse(); +if(opts.reversed){ +aa=aa.slice(0).reverse(); +} +_924(aa); +function _924(aa){ +var rule=_923.find("div.slider-rule"); +var _925=_923.find("div.slider-rulelabel"); +rule.empty(); +_925.empty(); +for(var i=0;i").appendTo(rule); +span.css((opts.mode=="h"?"left":"top"),_926); +if(aa[i]!="|"){ +span=$("").appendTo(_925); +span.html(aa[i]); +if(opts.mode=="h"){ +span.css({left:_926,marginLeft:-Math.round(span.outerWidth()/2)}); +}else{ +span.css({top:_926,marginTop:-Math.round(span.outerHeight()/2)}); +} +} +} +}; +}; +function _927(_928){ +var _929=$.data(_928,"slider"); +var opts=_929.options; +var _92a=_929.slider; +_92a.removeClass("slider-h slider-v slider-disabled"); +_92a.addClass(opts.mode=="h"?"slider-h":"slider-v"); +_92a.addClass(opts.disabled?"slider-disabled":""); +_92a.find("a.slider-handle").draggable({axis:opts.mode,cursor:"pointer",disabled:opts.disabled,onDrag:function(e){ +var left=e.data.left; +var _92b=_92a.width(); +if(opts.mode!="h"){ +left=e.data.top; +_92b=_92a.height(); +} +if(left<0||left>_92b){ +return false; +}else{ +var _92c=_93e(_928,left); +_92d(_92c); +return false; +} +},onBeforeDrag:function(){ +_929.isDragging=true; +},onStartDrag:function(){ +opts.onSlideStart.call(_928,opts.value); +},onStopDrag:function(e){ +var _92e=_93e(_928,(opts.mode=="h"?e.data.left:e.data.top)); +_92d(_92e); +opts.onSlideEnd.call(_928,opts.value); +opts.onComplete.call(_928,opts.value); +_929.isDragging=false; +}}); +_92a.find("div.slider-inner").unbind(".slider").bind("mousedown.slider",function(e){ +if(_929.isDragging){ +return; +} +var pos=$(this).offset(); +var _92f=_93e(_928,(opts.mode=="h"?(e.pageX-pos.left):(e.pageY-pos.top))); +_92d(_92f); +opts.onComplete.call(_928,opts.value); +}); +function _92d(_930){ +var s=Math.abs(_930%opts.step); +if(sopts.max){ +_933=opts.max; +} +opts.value=_933; +$(_932).val(_933); +_935.find("input.slider-value").val(_933); +var pos=_937(_932,_933); +var tip=_935.find(".slider-tip"); +if(opts.showTip){ +tip.show(); +tip.html(opts.tipFormatter.call(_932,opts.value)); +}else{ +tip.hide(); +} +if(opts.mode=="h"){ +var _938="left:"+pos+"px;"; +_935.find(".slider-handle").attr("style",_938); +tip.attr("style",_938+"margin-left:"+(-Math.round(tip.outerWidth()/2))+"px"); +}else{ +var _938="top:"+pos+"px;"; +_935.find(".slider-handle").attr("style",_938); +tip.attr("style",_938+"margin-left:"+(-Math.round(tip.outerWidth()))+"px"); +} +if(_936!=_933){ +opts.onChange.call(_932,_933,_936); +} +}; +function _91f(_939){ +var opts=$.data(_939,"slider").options; +var fn=opts.onChange; +opts.onChange=function(){ +}; +_931(_939,opts.value); +opts.onChange=fn; +}; +function _937(_93a,_93b){ +var _93c=$.data(_93a,"slider"); +var opts=_93c.options; +var _93d=_93c.slider; +if(opts.mode=="h"){ +var pos=(_93b-opts.min)/(opts.max-opts.min)*_93d.width(); +if(opts.reversed){ +pos=_93d.width()-pos; +} +}else{ +var pos=_93d.height()-(_93b-opts.min)/(opts.max-opts.min)*_93d.height(); +if(opts.reversed){ +pos=_93d.height()-pos; +} +} +return pos.toFixed(0); +}; +function _93e(_93f,pos){ +var _940=$.data(_93f,"slider"); +var opts=_940.options; +var _941=_940.slider; +if(opts.mode=="h"){ +var _942=opts.min+(opts.max-opts.min)*(pos/_941.width()); +}else{ +var _942=opts.min+(opts.max-opts.min)*((_941.height()-pos)/_941.height()); +} +return opts.reversed?opts.max-_942.toFixed(0):_942.toFixed(0); +}; +$.fn.slider=function(_943,_944){ +if(typeof _943=="string"){ +return $.fn.slider.methods[_943](this,_944); +} +_943=_943||{}; +return this.each(function(){ +var _945=$.data(this,"slider"); +if(_945){ +$.extend(_945.options,_943); +}else{ +_945=$.data(this,"slider",{options:$.extend({},$.fn.slider.defaults,$.fn.slider.parseOptions(this),_943),slider:init(this)}); +$(this).removeAttr("disabled"); +} +var opts=_945.options; +opts.min=parseFloat(opts.min); +opts.max=parseFloat(opts.max); +opts.value=parseFloat(opts.value); +opts.step=parseFloat(opts.step); +opts.originalValue=opts.value; +_927(this); +_920(this); +_91a(this); +}); +}; +$.fn.slider.methods={options:function(jq){ +return $.data(jq[0],"slider").options; +},destroy:function(jq){ +return jq.each(function(){ +$.data(this,"slider").slider.remove(); +$(this).remove(); +}); +},resize:function(jq,_946){ +return jq.each(function(){ +_91a(this,_946); +}); +},getValue:function(jq){ +return jq.slider("options").value; +},setValue:function(jq,_947){ +return jq.each(function(){ +_931(this,_947); +}); +},clear:function(jq){ +return jq.each(function(){ +var opts=$(this).slider("options"); +_931(this,opts.min); +}); +},reset:function(jq){ +return jq.each(function(){ +var opts=$(this).slider("options"); +_931(this,opts.originalValue); +}); +},enable:function(jq){ +return jq.each(function(){ +$.data(this,"slider").options.disabled=false; +_927(this); +}); +},disable:function(jq){ +return jq.each(function(){ +$.data(this,"slider").options.disabled=true; +_927(this); +}); +}}; +$.fn.slider.parseOptions=function(_948){ +var t=$(_948); +return $.extend({},$.parser.parseOptions(_948,["width","height","mode",{reversed:"boolean",showTip:"boolean",min:"number",max:"number",step:"number"}]),{value:(t.val()||undefined),disabled:(t.attr("disabled")?true:undefined),rule:(t.attr("rule")?eval(t.attr("rule")):undefined)}); +}; +$.fn.slider.defaults={width:"auto",height:"auto",mode:"h",reversed:false,showTip:false,disabled:false,value:0,min:0,max:100,step:1,rule:[],tipFormatter:function(_949){ +return _949; +},onChange:function(_94a,_94b){ +},onSlideStart:function(_94c){ +},onSlideEnd:function(_94d){ +},onComplete:function(_94e){ +}}; +})(jQuery); + +$.extend($.fn.validatebox.defaults.rules, { + equals: { + validator: function(value,param) + { + return value == $(param[0]).val(); + }, + message: '确认密码与输入密码不一致' + } +}); diff --git a/src/main/webapp/js/easyui-1.3.5/jquery.min.js b/src/main/webapp/js/easyui-1.3.5/jquery.min.js new file mode 100644 index 00000000..f121291c --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/jquery.min.js @@ -0,0 +1,2 @@ +/*! jQuery v@1.8.0 jquery.com | jquery.org/license */ +(function(a,b){function G(a){var b=F[a]={};return p.each(a.split(s),function(a,c){b[c]=!0}),b}function J(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(I,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:+d+""===d?+d:H.test(d)?p.parseJSON(d):d}catch(f){}p.data(a,c,d)}else d=b}return d}function K(a){var b;for(b in a){if(b==="data"&&p.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function ba(){return!1}function bb(){return!0}function bh(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function bi(a,b){do a=a[b];while(a&&a.nodeType!==1);return a}function bj(a,b,c){b=b||0;if(p.isFunction(b))return p.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return p.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=p.grep(a,function(a){return a.nodeType===1});if(be.test(b))return p.filter(b,d,!c);b=p.filter(b,d)}return p.grep(a,function(a,d){return p.inArray(a,b)>=0===c})}function bk(a){var b=bl.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}function bC(a,b){return a.getElementsByTagName(b)[0]||a.appendChild(a.ownerDocument.createElement(b))}function bD(a,b){if(b.nodeType!==1||!p.hasData(a))return;var c,d,e,f=p._data(a),g=p._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;d").appendTo(e.body),c=b.css("display");b.remove();if(c==="none"||c===""){bI=e.body.appendChild(bI||p.extend(e.createElement("iframe"),{frameBorder:0,width:0,height:0}));if(!bJ||!bI.createElement)bJ=(bI.contentWindow||bI.contentDocument).document,bJ.write(""),bJ.close();b=bJ.body.appendChild(bJ.createElement(a)),c=bH(b,"display"),e.body.removeChild(bI)}return bR[a]=c,c}function ch(a,b,c,d){var e;if(p.isArray(b))p.each(b,function(b,e){c||cd.test(a)?d(a,e):ch(a+"["+(typeof e=="object"?b:"")+"]",e,c,d)});else if(!c&&p.type(b)==="object")for(e in b)ch(a+"["+e+"]",b[e],c,d);else d(a,b)}function cy(a){return function(b,c){typeof b!="string"&&(c=b,b="*");var d,e,f,g=b.toLowerCase().split(s),h=0,i=g.length;if(p.isFunction(c))for(;h)[^>]*$|#([\w\-]*)$)/,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^[\],:{}\s]*$/,x=/(?:^|:|,)(?:\s*\[)+/g,y=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,z=/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,A=/^-ms-/,B=/-([\da-z])/gi,C=function(a,b){return(b+"").toUpperCase()},D=function(){e.addEventListener?(e.removeEventListener("DOMContentLoaded",D,!1),p.ready()):e.readyState==="complete"&&(e.detachEvent("onreadystatechange",D),p.ready())},E={};p.fn=p.prototype={constructor:p,init:function(a,c,d){var f,g,h,i;if(!a)return this;if(a.nodeType)return this.context=this[0]=a,this.length=1,this;if(typeof a=="string"){a.charAt(0)==="<"&&a.charAt(a.length-1)===">"&&a.length>=3?f=[null,a,null]:f=u.exec(a);if(f&&(f[1]||!c)){if(f[1])return c=c instanceof p?c[0]:c,i=c&&c.nodeType?c.ownerDocument||c:e,a=p.parseHTML(f[1],i,!0),v.test(f[1])&&p.isPlainObject(c)&&this.attr.call(a,c,!0),p.merge(this,a);g=e.getElementById(f[2]);if(g&&g.parentNode){if(g.id!==f[2])return d.find(a);this.length=1,this[0]=g}return this.context=e,this.selector=a,this}return!c||c.jquery?(c||d).find(a):this.constructor(c).find(a)}return p.isFunction(a)?d.ready(a):(a.selector!==b&&(this.selector=a.selector,this.context=a.context),p.makeArray(a,this))},selector:"",jquery:"1.8.0",length:0,size:function(){return this.length},toArray:function(){return k.call(this)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=p.merge(this.constructor(),a);return d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")"),d},each:function(a,b){return p.each(this,a,b)},ready:function(a){return p.ready.promise().done(a),this},eq:function(a){return a=+a,a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(k.apply(this,arguments),"slice",k.call(arguments).join(","))},map:function(a){return this.pushStack(p.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:j,sort:[].sort,splice:[].splice},p.fn.init.prototype=p.fn,p.extend=p.fn.extend=function(){var a,c,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;typeof h=="boolean"&&(k=h,h=arguments[1]||{},i=2),typeof h!="object"&&!p.isFunction(h)&&(h={}),j===i&&(h=this,--i);for(;i0)return;d.resolveWith(e,[p]),p.fn.trigger&&p(e).trigger("ready").off("ready")},isFunction:function(a){return p.type(a)==="function"},isArray:Array.isArray||function(a){return p.type(a)==="array"},isWindow:function(a){return a!=null&&a==a.window},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):E[m.call(a)]||"object"},isPlainObject:function(a){if(!a||p.type(a)!=="object"||a.nodeType||p.isWindow(a))return!1;try{if(a.constructor&&!n.call(a,"constructor")&&!n.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||n.call(a,d)},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},error:function(a){throw new Error(a)},parseHTML:function(a,b,c){var d;return!a||typeof a!="string"?null:(typeof b=="boolean"&&(c=b,b=0),b=b||e,(d=v.exec(a))?[b.createElement(d[1])]:(d=p.buildFragment([a],b,c?null:[]),p.merge([],(d.cacheable?p.clone(d.fragment):d.fragment).childNodes)))},parseJSON:function(b){if(!b||typeof b!="string")return null;b=p.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(w.test(b.replace(y,"@").replace(z,"]").replace(x,"")))return(new Function("return "+b))();p.error("Invalid JSON: "+b)},parseXML:function(c){var d,e;if(!c||typeof c!="string")return null;try{a.DOMParser?(e=new DOMParser,d=e.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(f){d=b}return(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&p.error("Invalid XML: "+c),d},noop:function(){},globalEval:function(b){b&&r.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(A,"ms-").replace(B,C)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var e,f=0,g=a.length,h=g===b||p.isFunction(a);if(d){if(h){for(e in a)if(c.apply(a[e],d)===!1)break}else for(;f0&&a[0]&&a[i-1]||i===0||p.isArray(a));if(j)for(;h-1)i.splice(c,1),e&&(c<=g&&g--,c<=h&&h--)}),this},has:function(a){return p.inArray(a,i)>-1},empty:function(){return i=[],this},disable:function(){return i=j=c=b,this},disabled:function(){return!i},lock:function(){return j=b,c||l.disable(),this},locked:function(){return!j},fireWith:function(a,b){return b=b||[],b=[a,b.slice?b.slice():b],i&&(!d||j)&&(e?j.push(b):k(b)),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!d}};return l},p.extend({Deferred:function(a){var b=[["resolve","done",p.Callbacks("once memory"),"resolved"],["reject","fail",p.Callbacks("once memory"),"rejected"],["notify","progress",p.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return p.Deferred(function(c){p.each(b,function(b,d){var f=d[0],g=a[b];e[d[1]](p.isFunction(g)?function(){var a=g.apply(this,arguments);a&&p.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f+"With"](this===e?c:this,[a])}:c[f])}),a=null}).promise()},promise:function(a){return typeof a=="object"?p.extend(a,d):d}},e={};return d.pipe=d.then,p.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[a^1][2].disable,b[2][2].lock),e[f[0]]=g.fire,e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=k.call(arguments),d=c.length,e=d!==1||a&&p.isFunction(a.promise)?d:0,f=e===1?a:p.Deferred(),g=function(a,b,c){return function(d){b[a]=this,c[a]=arguments.length>1?k.call(arguments):d,c===h?f.notifyWith(b,c):--e||f.resolveWith(b,c)}},h,i,j;if(d>1){h=new Array(d),i=new Array(d),j=new Array(d);for(;b
                      a",c=n.getElementsByTagName("*"),d=n.getElementsByTagName("a")[0],d.style.cssText="top:1px;float:left;opacity:.5";if(!c||!c.length||!d)return{};f=e.createElement("select"),g=f.appendChild(e.createElement("option")),h=n.getElementsByTagName("input")[0],b={leadingWhitespace:n.firstChild.nodeType===3,tbody:!n.getElementsByTagName("tbody").length,htmlSerialize:!!n.getElementsByTagName("link").length,style:/top/.test(d.getAttribute("style")),hrefNormalized:d.getAttribute("href")==="/a",opacity:/^0.5/.test(d.style.opacity),cssFloat:!!d.style.cssFloat,checkOn:h.value==="on",optSelected:g.selected,getSetAttribute:n.className!=="t",enctype:!!e.createElement("form").enctype,html5Clone:e.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",boxModel:e.compatMode==="CSS1Compat",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},h.checked=!0,b.noCloneChecked=h.cloneNode(!0).checked,f.disabled=!0,b.optDisabled=!g.disabled;try{delete n.test}catch(o){b.deleteExpando=!1}!n.addEventListener&&n.attachEvent&&n.fireEvent&&(n.attachEvent("onclick",m=function(){b.noCloneEvent=!1}),n.cloneNode(!0).fireEvent("onclick"),n.detachEvent("onclick",m)),h=e.createElement("input"),h.value="t",h.setAttribute("type","radio"),b.radioValue=h.value==="t",h.setAttribute("checked","checked"),h.setAttribute("name","t"),n.appendChild(h),i=e.createDocumentFragment(),i.appendChild(n.lastChild),b.checkClone=i.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=h.checked,i.removeChild(h),i.appendChild(n);if(n.attachEvent)for(k in{submit:!0,change:!0,focusin:!0})j="on"+k,l=j in n,l||(n.setAttribute(j,"return;"),l=typeof n[j]=="function"),b[k+"Bubbles"]=l;return p(function(){var c,d,f,g,h="padding:0;margin:0;border:0;display:block;overflow:hidden;",i=e.getElementsByTagName("body")[0];if(!i)return;c=e.createElement("div"),c.style.cssText="visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px",i.insertBefore(c,i.firstChild),d=e.createElement("div"),c.appendChild(d),d.innerHTML="
                      t
                      ",f=d.getElementsByTagName("td"),f[0].style.cssText="padding:0;margin:0;border:0;display:none",l=f[0].offsetHeight===0,f[0].style.display="",f[1].style.display="none",b.reliableHiddenOffsets=l&&f[0].offsetHeight===0,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",b.boxSizing=d.offsetWidth===4,b.doesNotIncludeMarginInBodyOffset=i.offsetTop!==1,a.getComputedStyle&&(b.pixelPosition=(a.getComputedStyle(d,null)||{}).top!=="1%",b.boxSizingReliable=(a.getComputedStyle(d,null)||{width:"4px"}).width==="4px",g=e.createElement("div"),g.style.cssText=d.style.cssText=h,g.style.marginRight=g.style.width="0",d.style.width="1px",d.appendChild(g),b.reliableMarginRight=!parseFloat((a.getComputedStyle(g,null)||{}).marginRight)),typeof d.style.zoom!="undefined"&&(d.innerHTML="",d.style.cssText=h+"width:1px;padding:1px;display:inline;zoom:1",b.inlineBlockNeedsLayout=d.offsetWidth===3,d.style.display="block",d.style.overflow="visible",d.innerHTML="
                      ",d.firstChild.style.width="5px",b.shrinkWrapBlocks=d.offsetWidth!==3,c.style.zoom=1),i.removeChild(c),c=d=f=g=null}),i.removeChild(n),c=d=f=g=h=i=n=null,b}();var H=/^(?:\{.*\}|\[.*\])$/,I=/([A-Z])/g;p.extend({cache:{},deletedIds:[],uuid:0,expando:"jQuery"+(p.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){return a=a.nodeType?p.cache[a[p.expando]]:a[p.expando],!!a&&!K(a)},data:function(a,c,d,e){if(!p.acceptData(a))return;var f,g,h=p.expando,i=typeof c=="string",j=a.nodeType,k=j?p.cache:a,l=j?a[h]:a[h]&&h;if((!l||!k[l]||!e&&!k[l].data)&&i&&d===b)return;l||(j?a[h]=l=p.deletedIds.pop()||++p.uuid:l=h),k[l]||(k[l]={},j||(k[l].toJSON=p.noop));if(typeof c=="object"||typeof c=="function")e?k[l]=p.extend(k[l],c):k[l].data=p.extend(k[l].data,c);return f=k[l],e||(f.data||(f.data={}),f=f.data),d!==b&&(f[p.camelCase(c)]=d),i?(g=f[c],g==null&&(g=f[p.camelCase(c)])):g=f,g},removeData:function(a,b,c){if(!p.acceptData(a))return;var d,e,f,g=a.nodeType,h=g?p.cache:a,i=g?a[p.expando]:p.expando;if(!h[i])return;if(b){d=c?h[i]:h[i].data;if(d){p.isArray(b)||(b in d?b=[b]:(b=p.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,f=b.length;e1,null,!1))},removeData:function(a){return this.each(function(){p.removeData(this,a)})}}),p.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=p._data(a,b),c&&(!d||p.isArray(c)?d=p._data(a,b,p.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=p.queue(a,b),d=c.shift(),e=p._queueHooks(a,b),f=function(){p.dequeue(a,b)};d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),delete e.stop,d.call(a,f,e)),!c.length&&e&&e.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return p._data(a,c)||p._data(a,c,{empty:p.Callbacks("once memory").add(function(){p.removeData(a,b+"queue",!0),p.removeData(a,c,!0)})})}}),p.fn.extend({queue:function(a,c){var d=2;return typeof a!="string"&&(c=a,a="fx",d--),arguments.length1)},removeAttr:function(a){return this.each(function(){p.removeAttr(this,a)})},prop:function(a,b){return p.access(this,p.prop,a,b,arguments.length>1)},removeProp:function(a){return a=p.propFix[a]||a,this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,f,g,h;if(p.isFunction(a))return this.each(function(b){p(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(s);for(c=0,d=this.length;c-1)d=d.replace(" "+c[f]+" "," ");e.className=a?p.trim(d):""}}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";return p.isFunction(a)?this.each(function(c){p(this).toggleClass(a.call(this,c,this.className,b),b)}):this.each(function(){if(c==="string"){var e,f=0,g=p(this),h=b,i=a.split(s);while(e=i[f++])h=d?h:!g.hasClass(e),g[h?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&p._data(this,"__className__",this.className),this.className=this.className||a===!1?"":p._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ",c=0,d=this.length;for(;c-1)return!0;return!1},val:function(a){var c,d,e,f=this[0];if(!arguments.length){if(f)return c=p.valHooks[f.type]||p.valHooks[f.nodeName.toLowerCase()],c&&"get"in c&&(d=c.get(f,"value"))!==b?d:(d=f.value,typeof d=="string"?d.replace(P,""):d==null?"":d);return}return e=p.isFunction(a),this.each(function(d){var f,g=p(this);if(this.nodeType!==1)return;e?f=a.call(this,d,g.val()):f=a,f==null?f="":typeof f=="number"?f+="":p.isArray(f)&&(f=p.map(f,function(a){return a==null?"":a+""})),c=p.valHooks[this.type]||p.valHooks[this.nodeName.toLowerCase()];if(!c||!("set"in c)||c.set(this,f,"value")===b)this.value=f})}}),p.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,f=a.selectedIndex,g=[],h=a.options,i=a.type==="select-one";if(f<0)return null;c=i?f:0,d=i?f+1:h.length;for(;c=0}),c.length||(a.selectedIndex=-1),c}}},attrFn:{},attr:function(a,c,d,e){var f,g,h,i=a.nodeType;if(!a||i===3||i===8||i===2)return;if(e&&p.isFunction(p.fn[c]))return p(a)[c](d);if(typeof a.getAttribute=="undefined")return p.prop(a,c,d);h=i!==1||!p.isXMLDoc(a),h&&(c=c.toLowerCase(),g=p.attrHooks[c]||(T.test(c)?M:L));if(d!==b){if(d===null){p.removeAttr(a,c);return}return g&&"set"in g&&h&&(f=g.set(a,d,c))!==b?f:(a.setAttribute(c,""+d),d)}return g&&"get"in g&&h&&(f=g.get(a,c))!==null?f:(f=a.getAttribute(c),f===null?b:f)},removeAttr:function(a,b){var c,d,e,f,g=0;if(b&&a.nodeType===1){d=b.split(s);for(;g=0}})});var V=/^(?:textarea|input|select)$/i,W=/^([^\.]*|)(?:\.(.+)|)$/,X=/(?:^|\s)hover(\.\S+|)\b/,Y=/^key/,Z=/^(?:mouse|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=function(a){return p.event.special.hover?a:a.replace(X,"mouseenter$1 mouseleave$1")};p.event={add:function(a,c,d,e,f){var g,h,i,j,k,l,m,n,o,q,r;if(a.nodeType===3||a.nodeType===8||!c||!d||!(g=p._data(a)))return;d.handler&&(o=d,d=o.handler,f=o.selector),d.guid||(d.guid=p.guid++),i=g.events,i||(g.events=i={}),h=g.handle,h||(g.handle=h=function(a){return typeof p!="undefined"&&(!a||p.event.triggered!==a.type)?p.event.dispatch.apply(h.elem,arguments):b},h.elem=a),c=p.trim(_(c)).split(" ");for(j=0;j=0&&(s=s.slice(0,-1),i=!0),s.indexOf(".")>=0&&(t=s.split("."),s=t.shift(),t.sort());if((!f||p.event.customEvent[s])&&!p.event.global[s])return;c=typeof c=="object"?c[p.expando]?c:new p.Event(s,c):new p.Event(s),c.type=s,c.isTrigger=!0,c.exclusive=i,c.namespace=t.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+t.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,m=s.indexOf(":")<0?"on"+s:"";if(!f){h=p.cache;for(j in h)h[j].events&&h[j].events[s]&&p.event.trigger(c,d,h[j].handle.elem,!0);return}c.result=b,c.target||(c.target=f),d=d!=null?p.makeArray(d):[],d.unshift(c),n=p.event.special[s]||{};if(n.trigger&&n.trigger.apply(f,d)===!1)return;q=[[f,n.bindType||s]];if(!g&&!n.noBubble&&!p.isWindow(f)){r=n.delegateType||s,k=$.test(r+s)?f:f.parentNode;for(l=f;k;k=k.parentNode)q.push([k,r]),l=k;l===(f.ownerDocument||e)&&q.push([l.defaultView||l.parentWindow||a,r])}for(j=0;jq&&u.push({elem:this,matches:o.slice(q)});for(d=0;d0?this.on(b,null,a,c):this.trigger(b)},Y.test(b)&&(p.event.fixHooks[b]=p.event.keyHooks),Z.test(b)&&(p.event.fixHooks[b]=p.event.mouseHooks)}),function(a,b){function bd(a,b,c,d){var e=0,f=b.length;for(;e0?h(g,c,f):[]}function bf(a,c,d,e,f){var g,h,i,j,k,l,m,n,p=0,q=f.length,s=L.POS,t=new RegExp("^"+s.source+"(?!"+r+")","i"),u=function(){var a=1,c=arguments.length-2;for(;ai){m=a.slice(i,g.index),i=n,l=[c],B.test(m)&&(k&&(l=k),k=e);if(h=H.test(m))m=m.slice(0,-5).replace(B,"$&*");g.length>1&&g[0].replace(t,u),k=be(m,g[1],g[2],l,k,h)}}k?(j=j.concat(k),(m=a.slice(i))&&m!==")"?B.test(m)?bd(m,j,d,e):Z(m,c,d,e?e.concat(k):k):o.apply(d,j)):Z(a,c,d,e)}return q===1?d:Z.uniqueSort(d)}function bg(a,b,c){var d,e,f,g=[],i=0,j=D.exec(a),k=!j.pop()&&!j.pop(),l=k&&a.match(C)||[""],m=$.preFilter,n=$.filter,o=!c&&b!==h;for(;(e=l[i])!=null&&k;i++){g.push(d=[]),o&&(e=" "+e);while(e){k=!1;if(j=B.exec(e))e=e.slice(j[0].length),k=d.push({part:j.pop().replace(A," "),captures:j});for(f in n)(j=L[f].exec(e))&&(!m[f]||(j=m[f](j,b,c)))&&(e=e.slice(j.shift().length),k=d.push({part:f,captures:j}));if(!k)break}}return k||Z.error(a),g}function bh(a,b,e){var f=b.dir,g=m++;return a||(a=function(a){return a===e}),b.first?function(b,c){while(b=b[f])if(b.nodeType===1)return a(b,c)&&b}:function(b,e){var h,i=g+"."+d,j=i+"."+c;while(b=b[f])if(b.nodeType===1){if((h=b[q])===j)return b.sizset;if(typeof h=="string"&&h.indexOf(i)===0){if(b.sizset)return b}else{b[q]=j;if(a(b,e))return b.sizset=!0,b;b.sizset=!1}}}}function bi(a,b){return a?function(c,d){var e=b(c,d);return e&&a(e===!0?c:e,d)}:b}function bj(a,b,c){var d,e,f=0;for(;d=a[f];f++)$.relative[d.part]?e=bh(e,$.relative[d.part],b):(d.captures.push(b,c),e=bi(e,$.filter[d.part].apply(null,d.captures)));return e}function bk(a){return function(b,c){var d,e=0;for(;d=a[e];e++)if(d(b,c))return!0;return!1}}var c,d,e,f,g,h=a.document,i=h.documentElement,j="undefined",k=!1,l=!0,m=0,n=[].slice,o=[].push,q=("sizcache"+Math.random()).replace(".",""),r="[\\x20\\t\\r\\n\\f]",s="(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",t=s.replace("w","w#"),u="([*^$|!~]?=)",v="\\["+r+"*("+s+")"+r+"*(?:"+u+r+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+t+")|)|)"+r+"*\\]",w=":("+s+")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|((?:[^,]|\\\\,|(?:,(?=[^\\[]*\\]))|(?:,(?=[^\\(]*\\))))*))\\)|)",x=":(nth|eq|gt|lt|first|last|even|odd)(?:\\((\\d*)\\)|)(?=[^-]|$)",y=r+"*([\\x20\\t\\r\\n\\f>+~])"+r+"*",z="(?=[^\\x20\\t\\r\\n\\f])(?:\\\\.|"+v+"|"+w.replace(2,7)+"|[^\\\\(),])+",A=new RegExp("^"+r+"+|((?:^|[^\\\\])(?:\\\\.)*)"+r+"+$","g"),B=new RegExp("^"+y),C=new RegExp(z+"?(?="+r+"*,|$)","g"),D=new RegExp("^(?:(?!,)(?:(?:^|,)"+r+"*"+z+")*?|"+r+"*(.*?))(\\)|$)"),E=new RegExp(z.slice(19,-6)+"\\x20\\t\\r\\n\\f>+~])+|"+y,"g"),F=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,G=/[\x20\t\r\n\f]*[+~]/,H=/:not\($/,I=/h\d/i,J=/input|select|textarea|button/i,K=/\\(?!\\)/g,L={ID:new RegExp("^#("+s+")"),CLASS:new RegExp("^\\.("+s+")"),NAME:new RegExp("^\\[name=['\"]?("+s+")['\"]?\\]"),TAG:new RegExp("^("+s.replace("[-","[-\\*")+")"),ATTR:new RegExp("^"+v),PSEUDO:new RegExp("^"+w),CHILD:new RegExp("^:(only|nth|last|first)-child(?:\\("+r+"*(even|odd|(([+-]|)(\\d*)n|)"+r+"*(?:([+-]|)"+r+"*(\\d+)|))"+r+"*\\)|)","i"),POS:new RegExp(x,"ig"),needsContext:new RegExp("^"+r+"*[>+~]|"+x,"i")},M={},N=[],O={},P=[],Q=function(a){return a.sizzleFilter=!0,a},R=function(a){return function(b){return b.nodeName.toLowerCase()==="input"&&b.type===a}},S=function(a){return function(b){var c=b.nodeName.toLowerCase();return(c==="input"||c==="button")&&b.type===a}},T=function(a){var b=!1,c=h.createElement("div");try{b=a(c)}catch(d){}return c=null,b},U=T(function(a){a.innerHTML="";var b=typeof a.lastChild.getAttribute("multiple");return b!=="boolean"&&b!=="string"}),V=T(function(a){a.id=q+0,a.innerHTML="
                      ",i.insertBefore(a,i.firstChild);var b=h.getElementsByName&&h.getElementsByName(q).length===2+h.getElementsByName(q+0).length;return g=!h.getElementById(q),i.removeChild(a),b}),W=T(function(a){return a.appendChild(h.createComment("")),a.getElementsByTagName("*").length===0}),X=T(function(a){return a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!==j&&a.firstChild.getAttribute("href")==="#"}),Y=T(function(a){return a.innerHTML="",!a.getElementsByClassName||a.getElementsByClassName("e").length===0?!1:(a.lastChild.className="e",a.getElementsByClassName("e").length!==1)}),Z=function(a,b,c,d){c=c||[],b=b||h;var e,f,g,i,j=b.nodeType;if(j!==1&&j!==9)return[];if(!a||typeof a!="string")return c;g=ba(b);if(!g&&!d)if(e=F.exec(a))if(i=e[1]){if(j===9){f=b.getElementById(i);if(!f||!f.parentNode)return c;if(f.id===i)return c.push(f),c}else if(b.ownerDocument&&(f=b.ownerDocument.getElementById(i))&&bb(b,f)&&f.id===i)return c.push(f),c}else{if(e[2])return o.apply(c,n.call(b.getElementsByTagName(a),0)),c;if((i=e[3])&&Y&&b.getElementsByClassName)return o.apply(c,n.call(b.getElementsByClassName(i),0)),c}return bm(a,b,c,d,g)},$=Z.selectors={cacheLength:50,match:L,order:["ID","TAG"],attrHandle:{},createPseudo:Q,find:{ID:g?function(a,b,c){if(typeof b.getElementById!==j&&!c){var d=b.getElementById(a);return d&&d.parentNode?[d]:[]}}:function(a,c,d){if(typeof c.getElementById!==j&&!d){var e=c.getElementById(a);return e?e.id===a||typeof e.getAttributeNode!==j&&e.getAttributeNode("id").value===a?[e]:b:[]}},TAG:W?function(a,b){if(typeof b.getElementsByTagName!==j)return b.getElementsByTagName(a)}:function(a,b){var c=b.getElementsByTagName(a);if(a==="*"){var d,e=[],f=0;for(;d=c[f];f++)d.nodeType===1&&e.push(d);return e}return c}},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(K,""),a[3]=(a[4]||a[5]||"").replace(K,""),a[2]==="~="&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),a[1]==="nth"?(a[2]||Z.error(a[0]),a[3]=+(a[3]?a[4]+(a[5]||1):2*(a[2]==="even"||a[2]==="odd")),a[4]=+(a[6]+a[7]||a[2]==="odd")):a[2]&&Z.error(a[0]),a},PSEUDO:function(a){var b,c=a[4];return L.CHILD.test(a[0])?null:(c&&(b=D.exec(c))&&b.pop()&&(a[0]=a[0].slice(0,b[0].length-c.length-1),c=b[0].slice(0,-1)),a.splice(2,3,c||a[3]),a)}},filter:{ID:g?function(a){return a=a.replace(K,""),function(b){return b.getAttribute("id")===a}}:function(a){return a=a.replace(K,""),function(b){var c=typeof b.getAttributeNode!==j&&b.getAttributeNode("id");return c&&c.value===a}},TAG:function(a){return a==="*"?function(){return!0}:(a=a.replace(K,"").toLowerCase(),function(b){return b.nodeName&&b.nodeName.toLowerCase()===a})},CLASS:function(a){var b=M[a];return b||(b=M[a]=new RegExp("(^|"+r+")"+a+"("+r+"|$)"),N.push(a),N.length>$.cacheLength&&delete M[N.shift()]),function(a){return b.test(a.className||typeof a.getAttribute!==j&&a.getAttribute("class")||"")}},ATTR:function(a,b,c){return b?function(d){var e=Z.attr(d,a),f=e+"";if(e==null)return b==="!=";switch(b){case"=":return f===c;case"!=":return f!==c;case"^=":return c&&f.indexOf(c)===0;case"*=":return c&&f.indexOf(c)>-1;case"$=":return c&&f.substr(f.length-c.length)===c;case"~=":return(" "+f+" ").indexOf(c)>-1;case"|=":return f===c||f.substr(0,c.length+1)===c+"-"}}:function(b){return Z.attr(b,a)!=null}},CHILD:function(a,b,c,d){if(a==="nth"){var e=m++;return function(a){var b,f,g=0,h=a;if(c===1&&d===0)return!0;b=a.parentNode;if(b&&(b[q]!==e||!a.sizset)){for(h=b.firstChild;h;h=h.nextSibling)if(h.nodeType===1){h.sizset=++g;if(h===a)break}b[q]=e}return f=a.sizset-d,c===0?f===0:f%c===0&&f/c>=0}}return function(b){var c=b;switch(a){case"only":case"first":while(c=c.previousSibling)if(c.nodeType===1)return!1;if(a==="first")return!0;c=b;case"last":while(c=c.nextSibling)if(c.nodeType===1)return!1;return!0}}},PSEUDO:function(a,b,c,d){var e=$.pseudos[a]||$.pseudos[a.toLowerCase()];return e||Z.error("unsupported pseudo: "+a),e.sizzleFilter?e(b,c,d):e}},pseudos:{not:Q(function(a,b,c){var d=bl(a.replace(A,"$1"),b,c);return function(a){return!d(a)}}),enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&!!a.checked||b==="option"&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},parent:function(a){return!$.pseudos.empty(a)},empty:function(a){var b;a=a.firstChild;while(a){if(a.nodeName>"@"||(b=a.nodeType)===3||b===4)return!1;a=a.nextSibling}return!0},contains:Q(function(a){return function(b){return(b.textContent||b.innerText||bc(b)).indexOf(a)>-1}}),has:Q(function(a){return function(b){return Z(a,b).length>0}}),header:function(a){return I.test(a.nodeName)},text:function(a){var b,c;return a.nodeName.toLowerCase()==="input"&&(b=a.type)==="text"&&((c=a.getAttribute("type"))==null||c.toLowerCase()===b)},radio:R("radio"),checkbox:R("checkbox"),file:R("file"),password:R("password"),image:R("image"),submit:S("submit"),reset:S("reset"),button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&a.type==="button"||b==="button"},input:function(a){return J.test(a.nodeName)},focus:function(a){var b=a.ownerDocument;return a===b.activeElement&&(!b.hasFocus||b.hasFocus())&&(!!a.type||!!a.href)},active:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b,c){return c?a.slice(1):[a[0]]},last:function(a,b,c){var d=a.pop();return c?a:[d]},even:function(a,b,c){var d=[],e=c?1:0,f=a.length;for(;e$.cacheLength&&delete O[P.shift()],g};Z.matches=function(a,b){return Z(a,null,null,b)},Z.matchesSelector=function(a,b){return Z(b,null,null,[a]).length>0};var bm=function(a,b,e,f,g){a=a.replace(A,"$1");var h,i,j,k,l,m,p,q,r,s=a.match(C),t=a.match(E),u=b.nodeType;if(L.POS.test(a))return bf(a,b,e,f,s);if(f)h=n.call(f,0);else if(s&&s.length===1){if(t.length>1&&u===9&&!g&&(s=L.ID.exec(t[0]))){b=$.find.ID(s[1],b,g)[0];if(!b)return e;a=a.slice(t.shift().length)}q=(s=G.exec(t[0]))&&!s.index&&b.parentNode||b,r=t.pop(),m=r.split(":not")[0];for(j=0,k=$.order.length;j",a.querySelectorAll("[selected]").length||e.push("\\["+r+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),a.querySelectorAll(":checked").length||e.push(":checked")}),T(function(a){a.innerHTML="

                      ",a.querySelectorAll("[test^='']").length&&e.push("[*^$]="+r+"*(?:\"\"|'')"),a.innerHTML="",a.querySelectorAll(":enabled").length||e.push(":enabled",":disabled")}),e=e.length&&new RegExp(e.join("|")),bm=function(a,d,f,g,h){if(!g&&!h&&(!e||!e.test(a)))if(d.nodeType===9)try{return o.apply(f,n.call(d.querySelectorAll(a),0)),f}catch(i){}else if(d.nodeType===1&&d.nodeName.toLowerCase()!=="object"){var j=d.getAttribute("id"),k=j||q,l=G.test(a)&&d.parentNode||d;j?k=k.replace(c,"\\$&"):d.setAttribute("id",k);try{return o.apply(f,n.call(l.querySelectorAll(a.replace(C,"[id='"+k+"'] $&")),0)),f}catch(i){}finally{j||d.removeAttribute("id")}}return b(a,d,f,g,h)},g&&(T(function(b){a=g.call(b,"div");try{g.call(b,"[test!='']:sizzle"),f.push($.match.PSEUDO)}catch(c){}}),f=new RegExp(f.join("|")),Z.matchesSelector=function(b,c){c=c.replace(d,"='$1']");if(!ba(b)&&!f.test(c)&&(!e||!e.test(c)))try{var h=g.call(b,c);if(h||a||b.document&&b.document.nodeType!==11)return h}catch(i){}return Z(c,null,null,[b]).length>0})}(),Z.attr=p.attr,p.find=Z,p.expr=Z.selectors,p.expr[":"]=p.expr.pseudos,p.unique=Z.uniqueSort,p.text=Z.getText,p.isXMLDoc=Z.isXML,p.contains=Z.contains}(a);var bc=/Until$/,bd=/^(?:parents|prev(?:Until|All))/,be=/^.[^:#\[\.,]*$/,bf=p.expr.match.needsContext,bg={children:!0,contents:!0,next:!0,prev:!0};p.fn.extend({find:function(a){var b,c,d,e,f,g,h=this;if(typeof a!="string")return p(a).filter(function(){for(b=0,c=h.length;b0)for(e=d;e=0:p.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c,d=0,e=this.length,f=[],g=bf.test(a)||typeof a!="string"?p(a,b||this.context):0;for(;d-1:p.find.matchesSelector(c,a)){f.push(c);break}c=c.parentNode}}return f=f.length>1?p.unique(f):f,this.pushStack(f,"closest",a)},index:function(a){return a?typeof a=="string"?p.inArray(this[0],p(a)):p.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(a,b){var c=typeof a=="string"?p(a,b):p.makeArray(a&&a.nodeType?[a]:a),d=p.merge(this.get(),c);return this.pushStack(bh(c[0])||bh(d[0])?d:p.unique(d))},addBack:function(a){return this.add(a==null?this.prevObject:this.prevObject.filter(a))}}),p.fn.andSelf=p.fn.addBack,p.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return p.dir(a,"parentNode")},parentsUntil:function(a,b,c){return p.dir(a,"parentNode",c)},next:function(a){return bi(a,"nextSibling")},prev:function(a){return bi(a,"previousSibling")},nextAll:function(a){return p.dir(a,"nextSibling")},prevAll:function(a){return p.dir(a,"previousSibling")},nextUntil:function(a,b,c){return p.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return p.dir(a,"previousSibling",c)},siblings:function(a){return p.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return p.sibling(a.firstChild)},contents:function(a){return p.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:p.merge([],a.childNodes)}},function(a,b){p.fn[a]=function(c,d){var e=p.map(this,b,c);return bc.test(a)||(d=c),d&&typeof d=="string"&&(e=p.filter(d,e)),e=this.length>1&&!bg[a]?p.unique(e):e,this.length>1&&bd.test(a)&&(e=e.reverse()),this.pushStack(e,a,k.call(arguments).join(","))}}),p.extend({filter:function(a,b,c){return c&&(a=":not("+a+")"),b.length===1?p.find.matchesSelector(b[0],a)?[b[0]]:[]:p.find.matches(a,b)},dir:function(a,c,d){var e=[],f=a[c];while(f&&f.nodeType!==9&&(d===b||f.nodeType!==1||!p(f).is(d)))f.nodeType===1&&e.push(f),f=f[c];return e},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var bl="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",bm=/ jQuery\d+="(?:null|\d+)"/g,bn=/^\s+/,bo=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bp=/<([\w:]+)/,bq=/]","i"),bv=/^(?:checkbox|radio)$/,bw=/checked\s*(?:[^=]|=\s*.checked.)/i,bx=/\/(java|ecma)script/i,by=/^\s*\s*$/g,bz={option:[1,""],legend:[1,"
                      ","
                      "],thead:[1,"","
                      "],tr:[2,"","
                      "],td:[3,"","
                      "],col:[2,"","
                      "],area:[1,"",""],_default:[0,"",""]},bA=bk(e),bB=bA.appendChild(e.createElement("div"));bz.optgroup=bz.option,bz.tbody=bz.tfoot=bz.colgroup=bz.caption=bz.thead,bz.th=bz.td,p.support.htmlSerialize||(bz._default=[1,"X
                      ","
                      "]),p.fn.extend({text:function(a){return p.access(this,function(a){return a===b?p.text(this):this.empty().append((this[0]&&this[0].ownerDocument||e).createTextNode(a))},null,a,arguments.length)},wrapAll:function(a){if(p.isFunction(a))return this.each(function(b){p(this).wrapAll(a.call(this,b))});if(this[0]){var b=p(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return p.isFunction(a)?this.each(function(b){p(this).wrapInner(a.call(this,b))}):this.each(function(){var b=p(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=p.isFunction(a);return this.each(function(c){p(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){p.nodeName(this,"body")||p(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){(this.nodeType===1||this.nodeType===11)&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){(this.nodeType===1||this.nodeType===11)&&this.insertBefore(a,this.firstChild)})},before:function(){if(!bh(this[0]))return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=p.clean(arguments);return this.pushStack(p.merge(a,this),"before",this.selector)}},after:function(){if(!bh(this[0]))return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=p.clean(arguments);return this.pushStack(p.merge(this,a),"after",this.selector)}},remove:function(a,b){var c,d=0;for(;(c=this[d])!=null;d++)if(!a||p.filter(a,[c]).length)!b&&c.nodeType===1&&(p.cleanData(c.getElementsByTagName("*")),p.cleanData([c])),c.parentNode&&c.parentNode.removeChild(c);return this},empty:function(){var a,b=0;for(;(a=this[b])!=null;b++){a.nodeType===1&&p.cleanData(a.getElementsByTagName("*"));while(a.firstChild)a.removeChild(a.firstChild)}return this},clone:function(a,b){return a=a==null?!1:a,b=b==null?a:b,this.map(function(){return p.clone(this,a,b)})},html:function(a){return p.access(this,function(a){var c=this[0]||{},d=0,e=this.length;if(a===b)return c.nodeType===1?c.innerHTML.replace(bm,""):b;if(typeof a=="string"&&!bs.test(a)&&(p.support.htmlSerialize||!bu.test(a))&&(p.support.leadingWhitespace||!bn.test(a))&&!bz[(bp.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(bo,"<$1>");try{for(;d1&&typeof j=="string"&&bw.test(j))return this.each(function(){p(this).domManip(a,c,d)});if(p.isFunction(j))return this.each(function(e){var f=p(this);a[0]=j.call(this,e,c?f.html():b),f.domManip(a,c,d)});if(this[0]){e=p.buildFragment(a,this,k),g=e.fragment,f=g.firstChild,g.childNodes.length===1&&(g=f);if(f){c=c&&p.nodeName(f,"tr");for(h=e.cacheable||l-1;i0?this.clone(!0):this).get(),p(g[e])[b](d),f=f.concat(d);return this.pushStack(f,a,g.selector)}}),p.extend({clone:function(a,b,c){var d,e,f,g;p.support.html5Clone||p.isXMLDoc(a)||!bu.test("<"+a.nodeName+">")?g=a.cloneNode(!0):(bB.innerHTML=a.outerHTML,bB.removeChild(g=bB.firstChild));if((!p.support.noCloneEvent||!p.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!p.isXMLDoc(a)){bE(a,g),d=bF(a),e=bF(g);for(f=0;d[f];++f)e[f]&&bE(d[f],e[f])}if(b){bD(a,g);if(c){d=bF(a),e=bF(g);for(f=0;d[f];++f)bD(d[f],e[f])}}return d=e=null,g},clean:function(a,b,c,d){var f,g,h,i,j,k,l,m,n,o,q,r,s=0,t=[];if(!b||typeof b.createDocumentFragment=="undefined")b=e;for(g=b===e&&bA;(h=a[s])!=null;s++){typeof h=="number"&&(h+="");if(!h)continue;if(typeof h=="string")if(!br.test(h))h=b.createTextNode(h);else{g=g||bk(b),l=l||g.appendChild(b.createElement("div")),h=h.replace(bo,"<$1>"),i=(bp.exec(h)||["",""])[1].toLowerCase(),j=bz[i]||bz._default,k=j[0],l.innerHTML=j[1]+h+j[2];while(k--)l=l.lastChild;if(!p.support.tbody){m=bq.test(h),n=i==="table"&&!m?l.firstChild&&l.firstChild.childNodes:j[1]===""&&!m?l.childNodes:[];for(f=n.length-1;f>=0;--f)p.nodeName(n[f],"tbody")&&!n[f].childNodes.length&&n[f].parentNode.removeChild(n[f])}!p.support.leadingWhitespace&&bn.test(h)&&l.insertBefore(b.createTextNode(bn.exec(h)[0]),l.firstChild),h=l.childNodes,l=g.lastChild}h.nodeType?t.push(h):t=p.merge(t,h)}l&&(g.removeChild(l),h=l=g=null);if(!p.support.appendChecked)for(s=0;(h=t[s])!=null;s++)p.nodeName(h,"input")?bG(h):typeof h.getElementsByTagName!="undefined"&&p.grep(h.getElementsByTagName("input"),bG);if(c){q=function(a){if(!a.type||bx.test(a.type))return d?d.push(a.parentNode?a.parentNode.removeChild(a):a):c.appendChild(a)};for(s=0;(h=t[s])!=null;s++)if(!p.nodeName(h,"script")||!q(h))c.appendChild(h),typeof h.getElementsByTagName!="undefined"&&(r=p.grep(p.merge([],h.getElementsByTagName("script")),q),t.splice.apply(t,[s+1,0].concat(r)),s+=r.length)}return t},cleanData:function(a,b){var c,d,e,f,g=0,h=p.expando,i=p.cache,j=p.support.deleteExpando,k=p.event.special;for(;(e=a[g])!=null;g++)if(b||p.acceptData(e)){d=e[h],c=d&&i[d];if(c){if(c.events)for(f in c.events)k[f]?p.event.remove(e,f):p.removeEvent(e,f,c.handle);i[d]&&(delete i[d],j?delete e[h]:e.removeAttribute?e.removeAttribute(h):e[h]=null,p.deletedIds.push(d))}}}}),function(){var a,b;p.uaMatch=function(a){a=a.toLowerCase();var b=/(chrome)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||a.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},a=p.uaMatch(g.userAgent),b={},a.browser&&(b[a.browser]=!0,b.version=a.version),b.webkit&&(b.safari=!0),p.browser=b,p.sub=function(){function a(b,c){return new a.fn.init(b,c)}p.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function c(c,d){return d&&d instanceof p&&!(d instanceof a)&&(d=a(d)),p.fn.init.call(this,c,d,b)},a.fn.init.prototype=a.fn;var b=a(e);return a}}();var bH,bI,bJ,bK=/alpha\([^)]*\)/i,bL=/opacity=([^)]*)/,bM=/^(top|right|bottom|left)$/,bN=/^margin/,bO=new RegExp("^("+q+")(.*)$","i"),bP=new RegExp("^("+q+")(?!px)[a-z%]+$","i"),bQ=new RegExp("^([-+])=("+q+")","i"),bR={},bS={position:"absolute",visibility:"hidden",display:"block"},bT={letterSpacing:0,fontWeight:400,lineHeight:1},bU=["Top","Right","Bottom","Left"],bV=["Webkit","O","Moz","ms"],bW=p.fn.toggle;p.fn.extend({css:function(a,c){return p.access(this,function(a,c,d){return d!==b?p.style(a,c,d):p.css(a,c)},a,c,arguments.length>1)},show:function(){return bZ(this,!0)},hide:function(){return bZ(this)},toggle:function(a,b){var c=typeof a=="boolean";return p.isFunction(a)&&p.isFunction(b)?bW.apply(this,arguments):this.each(function(){(c?a:bY(this))?p(this).show():p(this).hide()})}}),p.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bH(a,"opacity");return c===""?"1":c}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":p.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!a||a.nodeType===3||a.nodeType===8||!a.style)return;var f,g,h,i=p.camelCase(c),j=a.style;c=p.cssProps[i]||(p.cssProps[i]=bX(j,i)),h=p.cssHooks[c]||p.cssHooks[i];if(d===b)return h&&"get"in h&&(f=h.get(a,!1,e))!==b?f:j[c];g=typeof d,g==="string"&&(f=bQ.exec(d))&&(d=(f[1]+1)*f[2]+parseFloat(p.css(a,c)),g="number");if(d==null||g==="number"&&isNaN(d))return;g==="number"&&!p.cssNumber[i]&&(d+="px");if(!h||!("set"in h)||(d=h.set(a,d,e))!==b)try{j[c]=d}catch(k){}},css:function(a,c,d,e){var f,g,h,i=p.camelCase(c);return c=p.cssProps[i]||(p.cssProps[i]=bX(a.style,i)),h=p.cssHooks[c]||p.cssHooks[i],h&&"get"in h&&(f=h.get(a,!0,e)),f===b&&(f=bH(a,c)),f==="normal"&&c in bT&&(f=bT[c]),d||e!==b?(g=parseFloat(f),d||p.isNumeric(g)?g||0:f):f},swap:function(a,b,c){var d,e,f={};for(e in b)f[e]=a.style[e],a.style[e]=b[e];d=c.call(a);for(e in b)a.style[e]=f[e];return d}}),a.getComputedStyle?bH=function(a,b){var c,d,e,f,g=getComputedStyle(a,null),h=a.style;return g&&(c=g[b],c===""&&!p.contains(a.ownerDocument.documentElement,a)&&(c=p.style(a,b)),bP.test(c)&&bN.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=c,c=g.width,h.width=d,h.minWidth=e,h.maxWidth=f)),c}:e.documentElement.currentStyle&&(bH=function(a,b){var c,d,e=a.currentStyle&&a.currentStyle[b],f=a.style;return e==null&&f&&f[b]&&(e=f[b]),bP.test(e)&&!bM.test(b)&&(c=f.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":e,e=f.pixelLeft+"px",f.left=c,d&&(a.runtimeStyle.left=d)),e===""?"auto":e}),p.each(["height","width"],function(a,b){p.cssHooks[b]={get:function(a,c,d){if(c)return a.offsetWidth!==0||bH(a,"display")!=="none"?ca(a,b,d):p.swap(a,bS,function(){return ca(a,b,d)})},set:function(a,c,d){return b$(a,c,d?b_(a,b,d,p.support.boxSizing&&p.css(a,"boxSizing")==="border-box"):0)}}}),p.support.opacity||(p.cssHooks.opacity={get:function(a,b){return bL.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=p.isNumeric(b)?"alpha(opacity="+b*100+")":"",f=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&p.trim(f.replace(bK,""))===""&&c.removeAttribute){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bK.test(f)?f.replace(bK,e):f+" "+e}}),p(function(){p.support.reliableMarginRight||(p.cssHooks.marginRight={get:function(a,b){return p.swap(a,{display:"inline-block"},function(){if(b)return bH(a,"marginRight")})}}),!p.support.pixelPosition&&p.fn.position&&p.each(["top","left"],function(a,b){p.cssHooks[b]={get:function(a,c){if(c){var d=bH(a,b);return bP.test(d)?p(a).position()[b]+"px":d}}}})}),p.expr&&p.expr.filters&&(p.expr.filters.hidden=function(a){return a.offsetWidth===0&&a.offsetHeight===0||!p.support.reliableHiddenOffsets&&(a.style&&a.style.display||bH(a,"display"))==="none"},p.expr.filters.visible=function(a){return!p.expr.filters.hidden(a)}),p.each({margin:"",padding:"",border:"Width"},function(a,b){p.cssHooks[a+b]={expand:function(c){var d,e=typeof c=="string"?c.split(" "):[c],f={};for(d=0;d<4;d++)f[a+bU[d]+b]=e[d]||e[d-2]||e[0];return f}},bN.test(a)||(p.cssHooks[a+b].set=b$)});var cc=/%20/g,cd=/\[\]$/,ce=/\r?\n/g,cf=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,cg=/^(?:select|textarea)/i;p.fn.extend({serialize:function(){return p.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?p.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||cg.test(this.nodeName)||cf.test(this.type))}).map(function(a,b){var c=p(this).val();return c==null?null:p.isArray(c)?p.map(c,function(a,c){return{name:b.name,value:a.replace(ce,"\r\n")}}):{name:b.name,value:c.replace(ce,"\r\n")}}).get()}}),p.param=function(a,c){var d,e=[],f=function(a,b){b=p.isFunction(b)?b():b==null?"":b,e[e.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=p.ajaxSettings&&p.ajaxSettings.traditional);if(p.isArray(a)||a.jquery&&!p.isPlainObject(a))p.each(a,function(){f(this.name,this.value)});else for(d in a)ch(d,a[d],c,f);return e.join("&").replace(cc,"+")};var ci,cj,ck=/#.*$/,cl=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,cm=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,cn=/^(?:GET|HEAD)$/,co=/^\/\//,cp=/\?/,cq=/)<[^<]*)*<\/script>/gi,cr=/([?&])_=[^&]*/,cs=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,ct=p.fn.load,cu={},cv={},cw=["*/"]+["*"];try{ci=f.href}catch(cx){ci=e.createElement("a"),ci.href="",ci=ci.href}cj=cs.exec(ci.toLowerCase())||[],p.fn.load=function(a,c,d){if(typeof a!="string"&&ct)return ct.apply(this,arguments);if(!this.length)return this;var e,f,g,h=this,i=a.indexOf(" ");return i>=0&&(e=a.slice(i,a.length),a=a.slice(0,i)),p.isFunction(c)?(d=c,c=b):typeof c=="object"&&(f="POST"),p.ajax({url:a,type:f,dataType:"html",data:c,complete:function(a,b){d&&h.each(d,g||[a.responseText,b,a])}}).done(function(a){g=arguments,h.html(e?p("
                      ").append(a.replace(cq,"")).find(e):a)}),this},p.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){p.fn[b]=function(a){return this.on(b,a)}}),p.each(["get","post"],function(a,c){p[c]=function(a,d,e,f){return p.isFunction(d)&&(f=f||e,e=d,d=b),p.ajax({type:c,url:a,data:d,success:e,dataType:f})}}),p.extend({getScript:function(a,c){return p.get(a,b,c,"script")},getJSON:function(a,b,c){return p.get(a,b,c,"json")},ajaxSetup:function(a,b){return b?cA(a,p.ajaxSettings):(b=a,a=p.ajaxSettings),cA(a,b),a},ajaxSettings:{url:ci,isLocal:cm.test(cj[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":cw},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":p.parseJSON,"text xml":p.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:cy(cu),ajaxTransport:cy(cv),ajax:function(a,c){function y(a,c,f,i){var k,s,t,u,w,y=c;if(v===2)return;v=2,h&&clearTimeout(h),g=b,e=i||"",x.readyState=a>0?4:0,f&&(u=cB(l,x,f));if(a>=200&&a<300||a===304)l.ifModified&&(w=x.getResponseHeader("Last-Modified"),w&&(p.lastModified[d]=w),w=x.getResponseHeader("Etag"),w&&(p.etag[d]=w)),a===304?(y="notmodified",k=!0):(k=cC(l,u),y=k.state,s=k.data,t=k.error,k=!t);else{t=y;if(!y||a)y="error",a<0&&(a=0)}x.status=a,x.statusText=""+(c||y),k?o.resolveWith(m,[s,y,x]):o.rejectWith(m,[x,y,t]),x.statusCode(r),r=b,j&&n.trigger("ajax"+(k?"Success":"Error"),[x,l,k?s:t]),q.fireWith(m,[x,y]),j&&(n.trigger("ajaxComplete",[x,l]),--p.active||p.event.trigger("ajaxStop"))}typeof a=="object"&&(c=a,a=b),c=c||{};var d,e,f,g,h,i,j,k,l=p.ajaxSetup({},c),m=l.context||l,n=m!==l&&(m.nodeType||m instanceof p)?p(m):p.event,o=p.Deferred(),q=p.Callbacks("once memory"),r=l.statusCode||{},t={},u={},v=0,w="canceled",x={readyState:0,setRequestHeader:function(a,b){if(!v){var c=a.toLowerCase();a=u[c]=u[c]||a,t[a]=b}return this},getAllResponseHeaders:function(){return v===2?e:null},getResponseHeader:function(a){var c;if(v===2){if(!f){f={};while(c=cl.exec(e))f[c[1].toLowerCase()]=c[2]}c=f[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){return v||(l.mimeType=a),this},abort:function(a){return a=a||w,g&&g.abort(a),y(0,a),this}};o.promise(x),x.success=x.done,x.error=x.fail,x.complete=q.add,x.statusCode=function(a){if(a){var b;if(v<2)for(b in a)r[b]=[r[b],a[b]];else b=a[x.status],x.always(b)}return this},l.url=((a||l.url)+"").replace(ck,"").replace(co,cj[1]+"//"),l.dataTypes=p.trim(l.dataType||"*").toLowerCase().split(s),l.crossDomain==null&&(i=cs.exec(l.url.toLowerCase()),l.crossDomain=!(!i||i[1]==cj[1]&&i[2]==cj[2]&&(i[3]||(i[1]==="http:"?80:443))==(cj[3]||(cj[1]==="http:"?80:443)))),l.data&&l.processData&&typeof l.data!="string"&&(l.data=p.param(l.data,l.traditional)),cz(cu,l,c,x);if(v===2)return x;j=l.global,l.type=l.type.toUpperCase(),l.hasContent=!cn.test(l.type),j&&p.active++===0&&p.event.trigger("ajaxStart");if(!l.hasContent){l.data&&(l.url+=(cp.test(l.url)?"&":"?")+l.data,delete l.data),d=l.url;if(l.cache===!1){var z=p.now(),A=l.url.replace(cr,"$1_="+z);l.url=A+(A===l.url?(cp.test(l.url)?"&":"?")+"_="+z:"")}}(l.data&&l.hasContent&&l.contentType!==!1||c.contentType)&&x.setRequestHeader("Content-Type",l.contentType),l.ifModified&&(d=d||l.url,p.lastModified[d]&&x.setRequestHeader("If-Modified-Since",p.lastModified[d]),p.etag[d]&&x.setRequestHeader("If-None-Match",p.etag[d])),x.setRequestHeader("Accept",l.dataTypes[0]&&l.accepts[l.dataTypes[0]]?l.accepts[l.dataTypes[0]]+(l.dataTypes[0]!=="*"?", "+cw+"; q=0.01":""):l.accepts["*"]);for(k in l.headers)x.setRequestHeader(k,l.headers[k]);if(!l.beforeSend||l.beforeSend.call(m,x,l)!==!1&&v!==2){w="abort";for(k in{success:1,error:1,complete:1})x[k](l[k]);g=cz(cv,l,c,x);if(!g)y(-1,"No Transport");else{x.readyState=1,j&&n.trigger("ajaxSend",[x,l]),l.async&&l.timeout>0&&(h=setTimeout(function(){x.abort("timeout")},l.timeout));try{v=1,g.send(t,y)}catch(B){if(v<2)y(-1,B);else throw B}}return x}return x.abort()},active:0,lastModified:{},etag:{}});var cD=[],cE=/\?/,cF=/(=)\?(?=&|$)|\?\?/,cG=p.now();p.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=cD.pop()||p.expando+"_"+cG++;return this[a]=!0,a}}),p.ajaxPrefilter("json jsonp",function(c,d,e){var f,g,h,i=c.data,j=c.url,k=c.jsonp!==!1,l=k&&cF.test(j),m=k&&!l&&typeof i=="string"&&!(c.contentType||"").indexOf("application/x-www-form-urlencoded")&&cF.test(i);if(c.dataTypes[0]==="jsonp"||l||m)return f=c.jsonpCallback=p.isFunction(c.jsonpCallback)?c.jsonpCallback():c.jsonpCallback,g=a[f],l?c.url=j.replace(cF,"$1"+f):m?c.data=i.replace(cF,"$1"+f):k&&(c.url+=(cE.test(j)?"&":"?")+c.jsonp+"="+f),c.converters["script json"]=function(){return h||p.error(f+" was not called"),h[0]},c.dataTypes[0]="json",a[f]=function(){h=arguments},e.always(function(){a[f]=g,c[f]&&(c.jsonpCallback=d.jsonpCallback,cD.push(f)),h&&p.isFunction(g)&&g(h[0]),h=g=b}),"script"}),p.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){return p.globalEval(a),a}}}),p.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),p.ajaxTransport("script",function(a){if(a.crossDomain){var c,d=e.head||e.getElementsByTagName("head")[0]||e.documentElement;return{send:function(f,g){c=e.createElement("script"),c.async="async",a.scriptCharset&&(c.charset=a.scriptCharset),c.src=a.url,c.onload=c.onreadystatechange=function(a,e){if(e||!c.readyState||/loaded|complete/.test(c.readyState))c.onload=c.onreadystatechange=null,d&&c.parentNode&&d.removeChild(c),c=b,e||g(200,"success")},d.insertBefore(c,d.firstChild)},abort:function(){c&&c.onload(0,1)}}}});var cH,cI=a.ActiveXObject?function(){for(var a in cH)cH[a](0,1)}:!1,cJ=0;p.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&cK()||cL()}:cK,function(a){p.extend(p.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(p.ajaxSettings.xhr()),p.support.ajax&&p.ajaxTransport(function(c){if(!c.crossDomain||p.support.cors){var d;return{send:function(e,f){var g,h,i=c.xhr();c.username?i.open(c.type,c.url,c.async,c.username,c.password):i.open(c.type,c.url,c.async);if(c.xhrFields)for(h in c.xhrFields)i[h]=c.xhrFields[h];c.mimeType&&i.overrideMimeType&&i.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(h in e)i.setRequestHeader(h,e[h])}catch(j){}i.send(c.hasContent&&c.data||null),d=function(a,e){var h,j,k,l,m;try{if(d&&(e||i.readyState===4)){d=b,g&&(i.onreadystatechange=p.noop,cI&&delete cH[g]);if(e)i.readyState!==4&&i.abort();else{h=i.status,k=i.getAllResponseHeaders(),l={},m=i.responseXML,m&&m.documentElement&&(l.xml=m);try{l.text=i.responseText}catch(a){}try{j=i.statusText}catch(n){j=""}!h&&c.isLocal&&!c.crossDomain?h=l.text?200:404:h===1223&&(h=204)}}}catch(o){e||f(-1,o)}l&&f(h,j,l,k)},c.async?i.readyState===4?setTimeout(d,0):(g=++cJ,cI&&(cH||(cH={},p(a).unload(cI)),cH[g]=d),i.onreadystatechange=d):d()},abort:function(){d&&d(0,1)}}}});var cM,cN,cO=/^(?:toggle|show|hide)$/,cP=new RegExp("^(?:([-+])=|)("+q+")([a-z%]*)$","i"),cQ=/queueHooks$/,cR=[cX],cS={"*":[function(a,b){var c,d,e,f=this.createTween(a,b),g=cP.exec(b),h=f.cur(),i=+h||0,j=1;if(g){c=+g[2],d=g[3]||(p.cssNumber[a]?"":"px");if(d!=="px"&&i){i=p.css(f.elem,a,!0)||c||1;do e=j=j||".5",i=i/j,p.style(f.elem,a,i+d),j=f.cur()/h;while(j!==1&&j!==e)}f.unit=d,f.start=i,f.end=g[1]?i+(g[1]+1)*c:c}return f}]};p.Animation=p.extend(cV,{tweener:function(a,b){p.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");var c,d=0,e=a.length;for(;d-1,j={},k={},l,m;i?(k=e.position(),l=k.top,m=k.left):(l=parseFloat(g)||0,m=parseFloat(h)||0),p.isFunction(b)&&(b=b.call(a,c,f)),b.top!=null&&(j.top=b.top-f.top+l),b.left!=null&&(j.left=b.left-f.left+m),"using"in b?b.using.call(a,j):e.css(j)}},p.fn.extend({position:function(){if(!this[0])return;var a=this[0],b=this.offsetParent(),c=this.offset(),d=c$.test(b[0].nodeName)?{top:0,left:0}:b.offset();return c.top-=parseFloat(p.css(a,"marginTop"))||0,c.left-=parseFloat(p.css(a,"marginLeft"))||0,d.top+=parseFloat(p.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(p.css(b[0],"borderLeftWidth"))||0,{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||e.body;while(a&&!c$.test(a.nodeName)&&p.css(a,"position")==="static")a=a.offsetParent;return a||e.body})}}),p.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,c){var d=/Y/.test(c);p.fn[a]=function(e){return p.access(this,function(a,e,f){var g=c_(a);if(f===b)return g?c in g?g[c]:g.document.documentElement[e]:a[e];g?g.scrollTo(d?p(g).scrollLeft():f,d?f:p(g).scrollTop()):a[e]=f},a,e,arguments.length,null)}}),p.each({Height:"height",Width:"width"},function(a,c){p.each({padding:"inner"+a,content:c,"":"outer"+a},function(d,e){p.fn[e]=function(e,f){var g=arguments.length&&(d||typeof e!="boolean"),h=d||(e===!0||f===!0?"margin":"border");return p.access(this,function(c,d,e){var f;return p.isWindow(c)?c.document.documentElement["client"+a]:c.nodeType===9?(f=c.documentElement,Math.max(c.body["scroll"+a],f["scroll"+a],c.body["offset"+a],f["offset"+a],f["client"+a])):e===b?p.css(c,d,e,h):p.style(c,d,e,h)},c,g?e:b,g)}})}),a.jQuery=a.$=p,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return p})})(window); \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/locale/easyui-lang-af.js b/src/main/webapp/js/easyui-1.3.5/locale/easyui-lang-af.js new file mode 100644 index 00000000..b8a7cce6 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/locale/easyui-lang-af.js @@ -0,0 +1,51 @@ +if ($.fn.pagination){ + $.fn.pagination.defaults.beforePageText = 'Bladsy'; + $.fn.pagination.defaults.afterPageText = 'Van {pages}'; + $.fn.pagination.defaults.displayMsg = 'Wys (from) tot (to) van (total) items'; +} +if ($.fn.datagrid){ + $.fn.datagrid.defaults.loadMsg = 'Verwerking, wag asseblief ...'; +} +if ($.fn.treegrid && $.fn.datagrid){ + $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; +} +if ($.messager){ + $.messager.defaults.ok = 'Ok'; + $.messager.defaults.cancel = 'Die styl'; +} +if ($.fn.validatebox){ + $.fn.validatebox.defaults.missingMessage = "Die veld is verpligtend."; + $.fn.validatebox.defaults.rules.email.message = "Gee 'n geldige e-pos adres."; + $.fn.validatebox.defaults.rules.url.message = "Gee 'n geldige URL nie."; + $.fn.validatebox.defaults.rules.length.message = "Voer 'n waarde tussen {0} en {1}."; +} +if ($.fn.numberbox){ + $.fn.numberbox.defaults.missingMessage = 'Die veld is verpligtend.'; +} +if ($.fn.combobox){ + $.fn.combobox.defaults.missingMessage = 'Die veld is verpligtend.'; +} +if ($.fn.combotree){ + $.fn.combotree.defaults.missingMessage = 'Die veld is verpligtend.'; +} +if ($.fn.combogrid){ + $.fn.combogrid.defaults.missingMessage = 'Die veld is verpligtend.'; +} +if ($.fn.calendar){ + $.fn.calendar.defaults.weeks = ['S','M','T','W','T','F','S']; + $.fn.calendar.defaults.months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; +} +if ($.fn.datebox){ + $.fn.datebox.defaults.currentText = 'Vandag'; + $.fn.datebox.defaults.closeText = 'Sluit'; + $.fn.datebox.defaults.okText = 'Ok'; + $.fn.datebox.defaults.missingMessage = 'Die veld is verpligtend.'; +} +if ($.fn.datetimebox && $.fn.datebox){ + $.extend($.fn.datetimebox.defaults,{ + currentText: $.fn.datebox.defaults.currentText, + closeText: $.fn.datebox.defaults.closeText, + okText: $.fn.datebox.defaults.okText, + missingMessage: $.fn.datebox.defaults.missingMessage + }); +} diff --git a/src/main/webapp/js/easyui-1.3.5/locale/easyui-lang-ar.js b/src/main/webapp/js/easyui-1.3.5/locale/easyui-lang-ar.js new file mode 100644 index 00000000..5abd14ad --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/locale/easyui-lang-ar.js @@ -0,0 +1,52 @@ +if ($.fn.pagination){ + $.fn.pagination.defaults.beforePageText = 'صفحة'; + $.fn.pagination.defaults.afterPageText = 'من {pages}'; + $.fn.pagination.defaults.displayMsg = 'عرض {from} إلى {to} من {total} عنصر'; +} +if ($.fn.datagrid){ + $.fn.datagrid.defaults.loadMsg = 'معالجة, الرجاء الإنتظار ...'; +} +if ($.fn.treegrid && $.fn.datagrid){ + $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; +} +if ($.messager){ + $.messager.defaults.ok = 'موافق'; + $.messager.defaults.cancel = 'إلغاء'; +} +if ($.fn.validatebox){ + $.fn.validatebox.defaults.missingMessage = 'هذا الحقل مطلوب.'; + $.fn.validatebox.defaults.rules.email.message = 'الرجاء إدخال بريد إلكتروني صحيح.'; + $.fn.validatebox.defaults.rules.url.message = 'الرجاء إدخال رابط صحيح.'; + $.fn.validatebox.defaults.rules.length.message = 'الرجاء إدخال قيمة بين {0} و {1}.'; + $.fn.validatebox.defaults.rules.remote.message = 'الرجاء التأكد من الحقل.'; +} +if ($.fn.numberbox){ + $.fn.numberbox.defaults.missingMessage = 'هذا الحقل مطلوب.'; +} +if ($.fn.combobox){ + $.fn.combobox.defaults.missingMessage = 'هذا الحقل مطلوب.'; +} +if ($.fn.combotree){ + $.fn.combotree.defaults.missingMessage = 'هذا الحقل مطلوب.'; +} +if ($.fn.combogrid){ + $.fn.combogrid.defaults.missingMessage = 'هذا الحقل مطلوب.'; +} +if ($.fn.calendar){ + $.fn.calendar.defaults.weeks = ['S','M','T','W','T','F','S']; + $.fn.calendar.defaults.months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; +} +if ($.fn.datebox){ + $.fn.datebox.defaults.currentText = 'اليوم'; + $.fn.datebox.defaults.closeText = 'إغلاق'; + $.fn.datebox.defaults.okText = 'موافق'; + $.fn.datebox.defaults.missingMessage = 'هذا الحقل مطلوب.'; +} +if ($.fn.datetimebox && $.fn.datebox){ + $.extend($.fn.datetimebox.defaults,{ + currentText: $.fn.datebox.defaults.currentText, + closeText: $.fn.datebox.defaults.closeText, + okText: $.fn.datebox.defaults.okText, + missingMessage: $.fn.datebox.defaults.missingMessage + }); +} diff --git a/src/main/webapp/js/easyui-1.3.5/locale/easyui-lang-bg.js b/src/main/webapp/js/easyui-1.3.5/locale/easyui-lang-bg.js new file mode 100644 index 00000000..6b877375 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/locale/easyui-lang-bg.js @@ -0,0 +1,51 @@ +if ($.fn.pagination){ + $.fn.pagination.defaults.beforePageText = 'Страница'; + $.fn.pagination.defaults.afterPageText = 'от {pages}'; + $.fn.pagination.defaults.displayMsg = 'Показани {from} за {to} от {total} продукти'; +} +if ($.fn.datagrid){ + $.fn.datagrid.defaults.loadMsg = 'Обработка, моля изчакайте ...'; +} +if ($.fn.treegrid && $.fn.datagrid){ + $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; +} +if ($.messager){ + $.messager.defaults.ok = 'Добре'; + $.messager.defaults.cancel = 'Задрасквам'; +} +if ($.fn.validatebox){ + $.fn.validatebox.defaults.missingMessage = 'Това поле е задължително.'; + $.fn.validatebox.defaults.rules.email.message = 'Моля, въведете валиден имейл адрес.'; + $.fn.validatebox.defaults.rules.url.message = 'Моля въведете валиден URL.'; + $.fn.validatebox.defaults.rules.length.message = 'Моля, въведете стойност между {0} и {1}.'; +} +if ($.fn.numberbox){ + $.fn.numberbox.defaults.missingMessage = 'Това поле е задължително.'; +} +if ($.fn.combobox){ + $.fn.combobox.defaults.missingMessage = 'Това поле е задължително.'; +} +if ($.fn.combotree){ + $.fn.combotree.defaults.missingMessage = 'Това поле е задължително.'; +} +if ($.fn.combogrid){ + $.fn.combogrid.defaults.missingMessage = 'Това поле е задължително.'; +} +if ($.fn.calendar){ + $.fn.calendar.defaults.weeks = ['S','M','T','W','T','F','S']; + $.fn.calendar.defaults.months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; +} +if ($.fn.datebox){ + $.fn.datebox.defaults.currentText = 'Днес'; + $.fn.datebox.defaults.closeText = 'Близо'; + $.fn.datebox.defaults.okText = 'Добре'; + $.fn.datebox.defaults.missingMessage = 'Това поле е задължително.'; +} +if ($.fn.datetimebox && $.fn.datebox){ + $.extend($.fn.datetimebox.defaults,{ + currentText: $.fn.datebox.defaults.currentText, + closeText: $.fn.datebox.defaults.closeText, + okText: $.fn.datebox.defaults.okText, + missingMessage: $.fn.datebox.defaults.missingMessage + }); +} diff --git a/src/main/webapp/js/easyui-1.3.5/locale/easyui-lang-ca.js b/src/main/webapp/js/easyui-1.3.5/locale/easyui-lang-ca.js new file mode 100644 index 00000000..d37a579f --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/locale/easyui-lang-ca.js @@ -0,0 +1,51 @@ +if ($.fn.pagination){ + $.fn.pagination.defaults.beforePageText = 'Pàgina'; + $.fn.pagination.defaults.afterPageText = 'de {pages}'; + $.fn.pagination.defaults.displayMsg = "Veient {from} a {to} de {total} d'articles"; +} +if ($.fn.datagrid){ + $.fn.datagrid.defaults.loadMsg = 'Elaboració, si us plau esperi ...'; +} +if ($.fn.treegrid && $.fn.datagrid){ + $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; +} +if ($.messager){ + $.messager.defaults.ok = 'Ok'; + $.messager.defaults.cancel = 'Cancel'; +} +if ($.fn.validatebox){ + $.fn.validatebox.defaults.missingMessage = 'Aquest camp és obligatori.'; + $.fn.validatebox.defaults.rules.email.message = 'Introduïu una adreça de correu electrònic vàlida.'; + $.fn.validatebox.defaults.rules.url.message = 'Si us plau, introduïu un URL vàlida.'; + $.fn.validatebox.defaults.rules.length.message = 'Si us plau, introduïu un valor entre {0} i {1}.'; +} +if ($.fn.numberbox){ + $.fn.numberbox.defaults.missingMessage = 'Aquest camp és obligatori.'; +} +if ($.fn.combobox){ + $.fn.combobox.defaults.missingMessage = 'Aquest camp és obligatori.'; +} +if ($.fn.combotree){ + $.fn.combotree.defaults.missingMessage = 'Aquest camp és obligatori.'; +} +if ($.fn.combogrid){ + $.fn.combogrid.defaults.missingMessage = 'Aquest camp és obligatori.'; +} +if ($.fn.calendar){ + $.fn.calendar.defaults.weeks = ['S','M','T','W','T','F','S']; + $.fn.calendar.defaults.months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; +} +if ($.fn.datebox){ + $.fn.datebox.defaults.currentText = 'Avui'; + $.fn.datebox.defaults.closeText = 'Tancar'; + $.fn.datebox.defaults.okText = 'Ok'; + $.fn.datebox.defaults.missingMessage = 'Aquest camp és obligatori.'; +} +if ($.fn.datetimebox && $.fn.datebox){ + $.extend($.fn.datetimebox.defaults,{ + currentText: $.fn.datebox.defaults.currentText, + closeText: $.fn.datebox.defaults.closeText, + okText: $.fn.datebox.defaults.okText, + missingMessage: $.fn.datebox.defaults.missingMessage + }); +} diff --git a/src/main/webapp/js/easyui-1.3.5/locale/easyui-lang-cs.js b/src/main/webapp/js/easyui-1.3.5/locale/easyui-lang-cs.js new file mode 100644 index 00000000..c0408ec2 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/locale/easyui-lang-cs.js @@ -0,0 +1,51 @@ +if ($.fn.pagination){ + $.fn.pagination.defaults.beforePageText = 'Strana'; + $.fn.pagination.defaults.afterPageText = 'z {pages}'; + $.fn.pagination.defaults.displayMsg = 'Zobrazuji {from} do {to} z {total} položky'; +} +if ($.fn.datagrid){ + $.fn.datagrid.defaults.loadMsg = 'Zpracování, čekejte prosím ...'; +} +if ($.fn.treegrid && $.fn.datagrid){ + $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; +} +if ($.messager){ + $.messager.defaults.ok = 'Ok'; + $.messager.defaults.cancel = 'Zrušit'; +} +if ($.fn.validatebox){ + $.fn.validatebox.defaults.missingMessage = 'Toto pole je vyžadováno.'; + $.fn.validatebox.defaults.rules.email.message = 'Zadejte prosím platnou e-mailovou adresu.'; + $.fn.validatebox.defaults.rules.url.message = 'Zadejte prosím platnou adresu URL.'; + $.fn.validatebox.defaults.rules.length.message = 'Prosím, zadejte hodnotu mezi {0} a {1}.'; +} +if ($.fn.numberbox){ + $.fn.numberbox.defaults.missingMessage = 'Toto pole je vyžadováno.'; +} +if ($.fn.combobox){ + $.fn.combobox.defaults.missingMessage = 'Toto pole je vyžadováno.'; +} +if ($.fn.combotree){ + $.fn.combotree.defaults.missingMessage = 'Toto pole je vyžadováno.'; +} +if ($.fn.combogrid){ + $.fn.combogrid.defaults.missingMessage = 'Toto pole je vyžadováno.'; +} +if ($.fn.calendar){ + $.fn.calendar.defaults.weeks = ['S','M','T','W','T','F','S']; + $.fn.calendar.defaults.months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; +} +if ($.fn.datebox){ + $.fn.datebox.defaults.currentText = 'Dnes'; + $.fn.datebox.defaults.closeText = 'Zavřít'; + $.fn.datebox.defaults.okText = 'Ok'; + $.fn.datebox.defaults.missingMessage = 'Toto pole je vyžadováno.'; +} +if ($.fn.datetimebox && $.fn.datebox){ + $.extend($.fn.datetimebox.defaults,{ + currentText: $.fn.datebox.defaults.currentText, + closeText: $.fn.datebox.defaults.closeText, + okText: $.fn.datebox.defaults.okText, + missingMessage: $.fn.datebox.defaults.missingMessage + }); +} diff --git a/src/main/webapp/js/easyui-1.3.5/locale/easyui-lang-cz.js b/src/main/webapp/js/easyui-1.3.5/locale/easyui-lang-cz.js new file mode 100644 index 00000000..ef23d6b0 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/locale/easyui-lang-cz.js @@ -0,0 +1,51 @@ +if ($.fn.pagination){ + $.fn.pagination.defaults.beforePageText = 'Strana'; + $.fn.pagination.defaults.afterPageText = 'z {pages}'; + $.fn.pagination.defaults.displayMsg = 'Zobrazuji záznam {from} až {to} z {total}.'; +} +if ($.fn.datagrid){ + $.fn.datagrid.defaults.loadMsg = 'Pracuji, čekejte prosím…'; +} +if ($.fn.treegrid && $.fn.datagrid){ + $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; +} +if ($.messager){ + $.messager.defaults.ok = 'Ok'; + $.messager.defaults.cancel = 'Zrušit'; +} +if ($.fn.validatebox){ + $.fn.validatebox.defaults.missingMessage = 'Toto pole je vyžadováno.'; + $.fn.validatebox.defaults.rules.email.message = 'Zadejte, prosím, platnou e-mailovou adresu.'; + $.fn.validatebox.defaults.rules.url.message = 'Zadejte, prosím, platnou adresu URL.'; + $.fn.validatebox.defaults.rules.length.message = 'Zadejte, prosím, hodnotu mezi {0} a {1}.'; +} +if ($.fn.numberbox){ + $.fn.numberbox.defaults.missingMessage = 'Toto pole je vyžadováno.'; +} +if ($.fn.combobox){ + $.fn.combobox.defaults.missingMessage = 'Toto pole je vyžadováno.'; +} +if ($.fn.combotree){ + $.fn.combotree.defaults.missingMessage = 'Toto pole je vyžadováno.'; +} +if ($.fn.combogrid){ + $.fn.combogrid.defaults.missingMessage = 'Toto pole je vyžadováno.'; +} +if ($.fn.calendar){ + $.fn.calendar.defaults.weeks = ['N','P','Ú','S','Č','P','S']; //neděle pondělí úterý středa čtvrtek pátek sobota + $.fn.calendar.defaults.months = ['led', 'únr', 'bře', 'dub', 'kvě', 'čvn', 'čvc', 'srp', 'zář', 'říj', 'lis', 'pro']; //leden únor březen duben květen červen červenec srpen září říjen listopad prosinec +} +if ($.fn.datebox){ + $.fn.datebox.defaults.currentText = 'Dnes'; + $.fn.datebox.defaults.closeText = 'Zavřít'; + $.fn.datebox.defaults.okText = 'Ok'; + $.fn.datebox.defaults.missingMessage = 'Toto pole je vyžadováno.'; +} +if ($.fn.datetimebox && $.fn.datebox){ + $.extend($.fn.datetimebox.defaults,{ + currentText: $.fn.datebox.defaults.currentText, + closeText: $.fn.datebox.defaults.closeText, + okText: $.fn.datebox.defaults.okText, + missingMessage: $.fn.datebox.defaults.missingMessage + }); +} diff --git a/src/main/webapp/js/easyui-1.3.5/locale/easyui-lang-da.js b/src/main/webapp/js/easyui-1.3.5/locale/easyui-lang-da.js new file mode 100644 index 00000000..1ee1a7ba --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/locale/easyui-lang-da.js @@ -0,0 +1,51 @@ +if ($.fn.pagination){ + $.fn.pagination.defaults.beforePageText = 'Page'; + $.fn.pagination.defaults.afterPageText = 'af {pages}'; + $.fn.pagination.defaults.displayMsg = 'Viser {from} til {to} af {total} poster'; +} +if ($.fn.datagrid){ + $.fn.datagrid.defaults.loadMsg = 'Behandling, vent venligst ...'; +} +if ($.fn.treegrid && $.fn.datagrid){ + $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; +} +if ($.messager){ + $.messager.defaults.ok = 'Ok'; + $.messager.defaults.cancel = 'Annuller'; +} +if ($.fn.validatebox){ + $.fn.validatebox.defaults.missingMessage = 'Dette felt er påkrævet.'; + $.fn.validatebox.defaults.rules.email.message = 'Angiv en gyldig e-mail-adresse.'; + $.fn.validatebox.defaults.rules.url.message = 'Angiv en gyldig webadresse.'; + $.fn.validatebox.defaults.rules.length.message = 'Angiv en værdi mellem {0} og {1}.'; +} +if ($.fn.numberbox){ + $.fn.numberbox.defaults.missingMessage = 'Dette felt er påkrævet.'; +} +if ($.fn.combobox){ + $.fn.combobox.defaults.missingMessage = 'Dette felt er påkrævet.'; +} +if ($.fn.combotree){ + $.fn.combotree.defaults.missingMessage = 'Dette felt er påkrævet.'; +} +if ($.fn.combogrid){ + $.fn.combogrid.defaults.missingMessage = 'Dette felt er påkrævet.'; +} +if ($.fn.calendar){ + $.fn.calendar.defaults.weeks = ['S','M','T','W','T','F','S']; + $.fn.calendar.defaults.months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; +} +if ($.fn.datebox){ + $.fn.datebox.defaults.currentText = 'I dag'; + $.fn.datebox.defaults.closeText = 'Luk'; + $.fn.datebox.defaults.okText = 'Ok'; + $.fn.datebox.defaults.missingMessage = 'Dette felt er påkrævet.'; +} +if ($.fn.datetimebox && $.fn.datebox){ + $.extend($.fn.datetimebox.defaults,{ + currentText: $.fn.datebox.defaults.currentText, + closeText: $.fn.datebox.defaults.closeText, + okText: $.fn.datebox.defaults.okText, + missingMessage: $.fn.datebox.defaults.missingMessage + }); +} diff --git a/src/main/webapp/js/easyui-1.3.5/locale/easyui-lang-de.js b/src/main/webapp/js/easyui-1.3.5/locale/easyui-lang-de.js new file mode 100644 index 00000000..2d0e9a4c --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/locale/easyui-lang-de.js @@ -0,0 +1,70 @@ +if ($.fn.pagination){ + $.fn.pagination.defaults.beforePageText = 'Seite'; + $.fn.pagination.defaults.afterPageText = 'von {pages}'; + $.fn.pagination.defaults.displayMsg = '{from} bis {to} von {total} Datensätzen'; +} +if ($.fn.datagrid){ + $.fn.datagrid.defaults.loadMsg = 'Verarbeitung läuft, bitte warten ...'; +} +if ($.fn.treegrid && $.fn.datagrid){ + $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; +} +if ($.messager){ + $.messager.defaults.ok = 'OK'; + $.messager.defaults.cancel = 'Abbruch'; +} +if ($.fn.validatebox){ + $.fn.validatebox.defaults.missingMessage = 'Dieses Feld wird benötigt.'; + $.fn.validatebox.defaults.rules.email.message = 'Bitte geben Sie eine gültige E-Mail-Adresse ein.'; + $.fn.validatebox.defaults.rules.url.message = 'Bitte geben Sie eine gültige URL ein.'; + $.fn.validatebox.defaults.rules.length.message = 'Bitte geben Sie einen Wert zwischen {0} und {1} ein.'; +} +if ($.fn.numberbox){ + $.fn.numberbox.defaults.missingMessage = 'Dieses Feld wird benötigt.'; +} +if ($.fn.combobox){ + $.fn.combobox.defaults.missingMessage = 'Dieses Feld wird benötigt.'; +} +if ($.fn.combotree){ + $.fn.combotree.defaults.missingMessage = 'Dieses Feld wird benötigt.'; +} +if ($.fn.combogrid){ + $.fn.combogrid.defaults.missingMessage = 'Dieses Feld wird benötigt.'; +} +if ($.fn.calendar){ + $.fn.calendar.defaults.firstDay = 1; + $.fn.calendar.defaults.weeks = ['S','M','D','M','D','F','S']; + $.fn.calendar.defaults.months = ['Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez']; +} +if ($.fn.datebox){ + $.fn.datebox.defaults.currentText = 'Heute'; + $.fn.datebox.defaults.closeText = 'Schließen'; + $.fn.datebox.defaults.okText = 'OK'; + $.fn.datebox.defaults.missingMessage = 'Dieses Feld wird benötigt.'; + $.fn.datebox.defaults.formatter = function(date){ + var y = date.getFullYear(); + var m = date.getMonth()+1; + var d = date.getDate(); + return (d<10?('0'+d):d)+'.'+(m<10?('0'+m):m)+'.'+y; + }; + $.fn.datebox.defaults.parser = function(s){ + if (!s) return new Date(); + var ss = s.split('.'); + var m = parseInt(ss[1],10); + var d = parseInt(ss[0],10); + var y = parseInt(ss[2],10); + if (!isNaN(y) && !isNaN(m) && !isNaN(d)){ + return new Date(y,m-1,d); + } else { + return new Date(); + } + }; +} +if ($.fn.datetimebox && $.fn.datebox){ + $.extend($.fn.datetimebox.defaults,{ + currentText: $.fn.datebox.defaults.currentText, + closeText: $.fn.datebox.defaults.closeText, + okText: $.fn.datebox.defaults.okText, + missingMessage: $.fn.datebox.defaults.missingMessage + }); +} diff --git a/src/main/webapp/js/easyui-1.3.5/locale/easyui-lang-el.js b/src/main/webapp/js/easyui-1.3.5/locale/easyui-lang-el.js new file mode 100644 index 00000000..f2545719 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/locale/easyui-lang-el.js @@ -0,0 +1,52 @@ +if ($.fn.pagination){ + $.fn.pagination.defaults.beforePageText = 'Σελίδα'; + $.fn.pagination.defaults.afterPageText = 'από {pages}'; + $.fn.pagination.defaults.displayMsg = 'Εμφάνιση {from} εώς {to} από {total} αντικείμενα'; +} +if ($.fn.datagrid){ + $.fn.datagrid.defaults.loadMsg = 'Γίνεται Επεξεργασία, Παρακαλώ Περιμένετε ...'; +} +if ($.fn.treegrid && $.fn.datagrid){ + $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; +} +if ($.messager){ + $.messager.defaults.ok = 'Εντάξει'; + $.messager.defaults.cancel = 'Άκυρο'; +} +if ($.fn.validatebox){ + $.fn.validatebox.defaults.missingMessage = 'Το πεδίο είναι υποχρεωτικό.'; + $.fn.validatebox.defaults.rules.email.message = 'Παρακαλώ εισάγετε σωστή Ηλ.Διεύθυνση.'; + $.fn.validatebox.defaults.rules.url.message = 'Παρακαλώ εισάγετε σωστό σύνδεσμο.'; + $.fn.validatebox.defaults.rules.length.message = 'Παρακαλώ εισάγετε τιμή μεταξύ {0} και {1}.'; + $.fn.validatebox.defaults.rules.remote.message = 'Παρακαλώ διορθώστε αυτό το πεδίο.'; +} +if ($.fn.numberbox){ + $.fn.numberbox.defaults.missingMessage = 'Το πεδίο είναι υποχρεωτικό.'; +} +if ($.fn.combobox){ + $.fn.combobox.defaults.missingMessage = 'Το πεδίο είναι υποχρεωτικό.'; +} +if ($.fn.combotree){ + $.fn.combotree.defaults.missingMessage = 'Το πεδίο είναι υποχρεωτικό.'; +} +if ($.fn.combogrid){ + $.fn.combogrid.defaults.missingMessage = 'Το πεδίο είναι υποχρεωτικό.'; +} +if ($.fn.calendar){ + $.fn.calendar.defaults.weeks = ['Κυρ','Δευ','Τρι','Τετ','Πεμ','Παρ','Σαβ']; + $.fn.calendar.defaults.months = ['Ιαν', 'Φεβ', 'Μαρ', 'Απρ', 'Μαϊ', 'Ιου', 'Ιου', 'Αυγ', 'Σεπ', 'Οκτ', 'Νοε', 'Δεκ']; +} +if ($.fn.datebox){ + $.fn.datebox.defaults.currentText = 'Σήμερα'; + $.fn.datebox.defaults.closeText = 'Κλείσιμο'; + $.fn.datebox.defaults.okText = 'Εντάξει'; + $.fn.datebox.defaults.missingMessage = 'Το πεδίο είναι υποχρεωτικό.'; +} +if ($.fn.datetimebox && $.fn.datebox){ + $.extend($.fn.datetimebox.defaults,{ + currentText: $.fn.datebox.defaults.currentText, + closeText: $.fn.datebox.defaults.closeText, + okText: $.fn.datebox.defaults.okText, + missingMessage: $.fn.datebox.defaults.missingMessage + }); +} diff --git a/src/main/webapp/js/easyui-1.3.5/locale/easyui-lang-en.js b/src/main/webapp/js/easyui-1.3.5/locale/easyui-lang-en.js new file mode 100644 index 00000000..6528efa2 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/locale/easyui-lang-en.js @@ -0,0 +1,52 @@ +if ($.fn.pagination){ + $.fn.pagination.defaults.beforePageText = 'Page'; + $.fn.pagination.defaults.afterPageText = 'of {pages}'; + $.fn.pagination.defaults.displayMsg = 'Displaying {from} to {to} of {total} items'; +} +if ($.fn.datagrid){ + $.fn.datagrid.defaults.loadMsg = 'Processing, please wait ...'; +} +if ($.fn.treegrid && $.fn.datagrid){ + $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; +} +if ($.messager){ + $.messager.defaults.ok = 'Ok'; + $.messager.defaults.cancel = 'Cancel'; +} +if ($.fn.validatebox){ + $.fn.validatebox.defaults.missingMessage = 'This field is required.'; + $.fn.validatebox.defaults.rules.email.message = 'Please enter a valid email address.'; + $.fn.validatebox.defaults.rules.url.message = 'Please enter a valid URL.'; + $.fn.validatebox.defaults.rules.length.message = 'Please enter a value between {0} and {1}.'; + $.fn.validatebox.defaults.rules.remote.message = 'Please fix this field.'; +} +if ($.fn.numberbox){ + $.fn.numberbox.defaults.missingMessage = 'This field is required.'; +} +if ($.fn.combobox){ + $.fn.combobox.defaults.missingMessage = 'This field is required.'; +} +if ($.fn.combotree){ + $.fn.combotree.defaults.missingMessage = 'This field is required.'; +} +if ($.fn.combogrid){ + $.fn.combogrid.defaults.missingMessage = 'This field is required.'; +} +if ($.fn.calendar){ + $.fn.calendar.defaults.weeks = ['S','M','T','W','T','F','S']; + $.fn.calendar.defaults.months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; +} +if ($.fn.datebox){ + $.fn.datebox.defaults.currentText = 'Today'; + $.fn.datebox.defaults.closeText = 'Close'; + $.fn.datebox.defaults.okText = 'Ok'; + $.fn.datebox.defaults.missingMessage = 'This field is required.'; +} +if ($.fn.datetimebox && $.fn.datebox){ + $.extend($.fn.datetimebox.defaults,{ + currentText: $.fn.datebox.defaults.currentText, + closeText: $.fn.datebox.defaults.closeText, + okText: $.fn.datebox.defaults.okText, + missingMessage: $.fn.datebox.defaults.missingMessage + }); +} diff --git a/src/main/webapp/js/easyui-1.3.5/locale/easyui-lang-es.js b/src/main/webapp/js/easyui-1.3.5/locale/easyui-lang-es.js new file mode 100644 index 00000000..d6582e81 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/locale/easyui-lang-es.js @@ -0,0 +1,52 @@ +if ($.fn.pagination){ + $.fn.pagination.defaults.beforePageText = 'Página'; + $.fn.pagination.defaults.afterPageText = 'de {pages}'; + $.fn.pagination.defaults.displayMsg = 'Mostrando {from} a {to} de {total} elementos'; +} +if ($.fn.datagrid){ + $.fn.datagrid.defaults.loadMsg = 'Procesando, por favor espere ...'; +} +if ($.fn.treegrid && $.fn.datagrid){ + $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; +} +if ($.messager){ + $.messager.defaults.ok = 'Aceptar'; + $.messager.defaults.cancel = 'Cancelar'; +} +if ($.fn.validatebox){ + $.fn.validatebox.defaults.missingMessage = 'Este campo es obligatorio.'; + $.fn.validatebox.defaults.rules.email.message = 'Por favor ingrese una dirección de correo válida.'; + $.fn.validatebox.defaults.rules.url.message = 'Por favor ingrese una URL válida.'; + $.fn.validatebox.defaults.rules.length.message = 'Por favor ingrese un valor entre {0} y {1}.'; + $.fn.validatebox.defaults.rules.remote.message = 'Por favor corrija este campo.'; +} +if ($.fn.numberbox){ + $.fn.numberbox.defaults.missingMessage = 'Este campo es obligatorio.'; +} +if ($.fn.combobox){ + $.fn.combobox.defaults.missingMessage = 'Este campo es obligatorio.'; +} +if ($.fn.combotree){ + $.fn.combotree.defaults.missingMessage = 'Este campo es obligatorio.'; +} +if ($.fn.combogrid){ + $.fn.combogrid.defaults.missingMessage = 'Este campo es obligatorio.'; +} +if ($.fn.calendar){ + $.fn.calendar.defaults.weeks = ['Do','Lu','Ma','Mi','Ju','Vi','Sá']; + $.fn.calendar.defaults.months = ['Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago', 'Sep', 'Oct', 'Nov', 'Dic']; +} +if ($.fn.datebox){ + $.fn.datebox.defaults.currentText = 'Hoy'; + $.fn.datebox.defaults.closeText = 'Cerrar'; + $.fn.datebox.defaults.okText = 'Aceptar'; + $.fn.datebox.defaults.missingMessage = 'Este campo es obligatorio.'; +} +if ($.fn.datetimebox && $.fn.datebox){ + $.extend($.fn.datetimebox.defaults,{ + currentText: $.fn.datebox.defaults.currentText, + closeText: $.fn.datebox.defaults.closeText, + okText: $.fn.datebox.defaults.okText, + missingMessage: $.fn.datebox.defaults.missingMessage + }); +} diff --git a/src/main/webapp/js/easyui-1.3.5/locale/easyui-lang-fr.js b/src/main/webapp/js/easyui-1.3.5/locale/easyui-lang-fr.js new file mode 100644 index 00000000..cac005ce --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/locale/easyui-lang-fr.js @@ -0,0 +1,51 @@ +if ($.fn.pagination){ + $.fn.pagination.defaults.beforePageText = 'Page'; + $.fn.pagination.defaults.afterPageText = 'de {pages}'; + $.fn.pagination.defaults.displayMsg = 'Affichage de {from} et {to} au {total} des articles'; +} +if ($.fn.datagrid){ + $.fn.datagrid.defaults.loadMsg = "Traitement, s'il vous plaît patienter ..."; +} +if ($.fn.treegrid && $.fn.datagrid){ + $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; +} +if ($.messager){ + $.messager.defaults.ok = 'Ok'; + $.messager.defaults.cancel = 'Annuler'; +} +if ($.fn.validatebox){ + $.fn.validatebox.defaults.missingMessage = 'Ce champ est obligatoire.'; + $.fn.validatebox.defaults.rules.email.message = "S'il vous plaît entrer une adresse email valide."; + $.fn.validatebox.defaults.rules.url.message = "S'il vous plaît entrer une URL valide."; + $.fn.validatebox.defaults.rules.length.message = "S'il vous plaît entrez une valeur comprise entre {0} et {1}."; +} +if ($.fn.numberbox){ + $.fn.numberbox.defaults.missingMessage = 'Ce champ est obligatoire.'; +} +if ($.fn.combobox){ + $.fn.combobox.defaults.missingMessage = 'Ce champ est obligatoire.'; +} +if ($.fn.combotree){ + $.fn.combotree.defaults.missingMessage = 'Ce champ est obligatoire.'; +} +if ($.fn.combogrid){ + $.fn.combogrid.defaults.missingMessage = 'Ce champ est obligatoire.'; +} +if ($.fn.calendar){ + $.fn.calendar.defaults.weeks = ['S','M','T','W','T','F','S']; + $.fn.calendar.defaults.months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; +} +if ($.fn.datebox){ + $.fn.datebox.defaults.currentText = "Aujourd'hui"; + $.fn.datebox.defaults.closeText = 'Fermer'; + $.fn.datebox.defaults.okText = 'Ok'; + $.fn.datebox.defaults.missingMessage = 'Ce champ est obligatoire.'; +} +if ($.fn.datetimebox && $.fn.datebox){ + $.extend($.fn.datetimebox.defaults,{ + currentText: $.fn.datebox.defaults.currentText, + closeText: $.fn.datebox.defaults.closeText, + okText: $.fn.datebox.defaults.okText, + missingMessage: $.fn.datebox.defaults.missingMessage + }); +} diff --git a/src/main/webapp/js/easyui-1.3.5/locale/easyui-lang-it.js b/src/main/webapp/js/easyui-1.3.5/locale/easyui-lang-it.js new file mode 100644 index 00000000..b0ca33cf --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/locale/easyui-lang-it.js @@ -0,0 +1,52 @@ +if ($.fn.pagination){ + $.fn.pagination.defaults.beforePageText = 'Pagina'; + $.fn.pagination.defaults.afterPageText = 'di {pages}'; + $.fn.pagination.defaults.displayMsg = 'Visualizzazione {from} a {to} di {total} elementi'; +} +if ($.fn.datagrid){ + $.fn.datagrid.defaults.loadMsg = 'In lavorazione, attendere ...'; +} +if ($.fn.treegrid && $.fn.datagrid){ + $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; +} +if ($.messager){ + $.messager.defaults.ok = 'Ok'; + $.messager.defaults.cancel = 'Annulla'; +} +if ($.fn.validatebox){ + $.fn.validatebox.defaults.missingMessage = 'Questo campo è richiesto.'; + $.fn.validatebox.defaults.rules.email.message = 'Inserisci un indirizzo email valido.'; + $.fn.validatebox.defaults.rules.url.message = 'Inserisci un URL valido.'; + $.fn.validatebox.defaults.rules.length.message = 'Inserisci un valore tra {0} e {1}.'; + $.fn.validatebox.defaults.rules.remote.message = 'Aggiusta questo campo.'; +} +if ($.fn.numberbox){ + $.fn.numberbox.defaults.missingMessage = 'Questo campo è richiesto.'; +} +if ($.fn.combobox){ + $.fn.combobox.defaults.missingMessage = 'Questo campo è richiesto.'; +} +if ($.fn.combotree){ + $.fn.combotree.defaults.missingMessage = 'Questo campo è richiesto.'; +} +if ($.fn.combogrid){ + $.fn.combogrid.defaults.missingMessage = 'Questo campo è richiesto.'; +} +if ($.fn.calendar){ + $.fn.calendar.defaults.weeks = ['S','M','T','W','T','F','S']; + $.fn.calendar.defaults.months = ['Gen', 'Feb', 'Mar', 'Apr', 'Mag', 'Giu', 'Lug', 'Ago', 'Set', 'Ott', 'Nov', 'Dic']; +} +if ($.fn.datebox){ + $.fn.datebox.defaults.currentText = 'Oggi'; + $.fn.datebox.defaults.closeText = 'Chiudi'; + $.fn.datebox.defaults.okText = 'Ok'; + $.fn.datebox.defaults.missingMessage = 'Questo campo è richiesto.'; +} +if ($.fn.datetimebox && $.fn.datebox){ + $.extend($.fn.datetimebox.defaults,{ + currentText: $.fn.datebox.defaults.currentText, + closeText: $.fn.datebox.defaults.closeText, + okText: $.fn.datebox.defaults.okText, + missingMessage: $.fn.datebox.defaults.missingMessage + }); +} diff --git a/src/main/webapp/js/easyui-1.3.5/locale/easyui-lang-jp.js b/src/main/webapp/js/easyui-1.3.5/locale/easyui-lang-jp.js new file mode 100644 index 00000000..2c155f51 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/locale/easyui-lang-jp.js @@ -0,0 +1,52 @@ +if ($.fn.pagination){ + $.fn.pagination.defaults.beforePageText = 'ページ'; + $.fn.pagination.defaults.afterPageText = '{pages} 中'; + $.fn.pagination.defaults.displayMsg = '全 {total} アイテム中 {from} から {to} を表示中'; +} +if ($.fn.datagrid){ + $.fn.datagrid.defaults.loadMsg = '処理中です。少々お待ちください...'; +} +if ($.fn.treegrid && $.fn.datagrid){ + $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; +} +if ($.messager){ + $.messager.defaults.ok = 'OK'; + $.messager.defaults.cancel = 'キャンセル'; +} +if ($.fn.validatebox){ + $.fn.validatebox.defaults.missingMessage = '入力は必須です。'; + $.fn.validatebox.defaults.rules.email.message = '正しいメールアドレスを入力してください。'; + $.fn.validatebox.defaults.rules.url.message = '正しいURLを入力してください。'; + $.fn.validatebox.defaults.rules.length.message = '{0} から {1} の範囲の正しい値を入力してください。'; + $.fn.validatebox.defaults.rules.remote.message = 'このフィールドを修正してください。'; +} +if ($.fn.numberbox){ + $.fn.numberbox.defaults.missingMessage = '入力は必須です。'; +} +if ($.fn.combobox){ + $.fn.combobox.defaults.missingMessage = '入力は必須です。'; +} +if ($.fn.combotree){ + $.fn.combotree.defaults.missingMessage = '入力は必須です。'; +} +if ($.fn.combogrid){ + $.fn.combogrid.defaults.missingMessage = '入力は必須です。'; +} +if ($.fn.calendar){ + $.fn.calendar.defaults.weeks = ['日','月','火','水','木','金','土']; + $.fn.calendar.defaults.months = ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月']; +} +if ($.fn.datebox){ + $.fn.datebox.defaults.currentText = '今日'; + $.fn.datebox.defaults.closeText = '閉じる'; + $.fn.datebox.defaults.okText = 'OK'; + $.fn.datebox.defaults.missingMessage = '入力は必須です。'; +} +if ($.fn.datetimebox && $.fn.datebox){ + $.extend($.fn.datetimebox.defaults,{ + currentText: $.fn.datebox.defaults.currentText, + closeText: $.fn.datebox.defaults.closeText, + okText: $.fn.datebox.defaults.okText, + missingMessage: $.fn.datebox.defaults.missingMessage + }); +} diff --git a/src/main/webapp/js/easyui-1.3.5/locale/easyui-lang-nl.js b/src/main/webapp/js/easyui-1.3.5/locale/easyui-lang-nl.js new file mode 100644 index 00000000..3bc5f9ec --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/locale/easyui-lang-nl.js @@ -0,0 +1,51 @@ +if ($.fn.pagination){ + $.fn.pagination.defaults.beforePageText = 'Pagina'; + $.fn.pagination.defaults.afterPageText = 'van {pages}'; + $.fn.pagination.defaults.displayMsg = 'Tonen van {from} tot {to} van de {total} items'; +} +if ($.fn.datagrid){ + $.fn.datagrid.defaults.loadMsg = 'Verwerking, even geduld ...'; +} +if ($.fn.treegrid && $.fn.datagrid){ + $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; +} +if ($.messager){ + $.messager.defaults.ok = 'Ok'; + $.messager.defaults.cancel = 'Annuleren'; +} +if ($.fn.validatebox){ + $.fn.validatebox.defaults.missingMessage = 'Dit veld is verplicht.'; + $.fn.validatebox.defaults.rules.email.message = 'Geef een geldig e-mailadres.'; + $.fn.validatebox.defaults.rules.url.message = 'Vul een geldige URL.'; + $.fn.validatebox.defaults.rules.length.message = 'Voer een waarde tussen {0} en {1}.'; +} +if ($.fn.numberbox){ + $.fn.numberbox.defaults.missingMessage = 'Dit veld is verplicht.'; +} +if ($.fn.combobox){ + $.fn.combobox.defaults.missingMessage = 'Dit veld is verplicht.'; +} +if ($.fn.combotree){ + $.fn.combotree.defaults.missingMessage = 'Dit veld is verplicht.'; +} +if ($.fn.combogrid){ + $.fn.combogrid.defaults.missingMessage = 'Dit veld is verplicht.'; +} +if ($.fn.calendar){ + $.fn.calendar.defaults.weeks = ['S','M','T','W','T','F','S']; + $.fn.calendar.defaults.months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; +} +if ($.fn.datebox){ + $.fn.datebox.defaults.currentText = 'Vandaag'; + $.fn.datebox.defaults.closeText = 'Dicht'; + $.fn.datebox.defaults.okText = 'Ok'; + $.fn.datebox.defaults.missingMessage = 'Dit veld is verplicht.'; +} +if ($.fn.datetimebox && $.fn.datebox){ + $.extend($.fn.datetimebox.defaults,{ + currentText: $.fn.datebox.defaults.currentText, + closeText: $.fn.datebox.defaults.closeText, + okText: $.fn.datebox.defaults.okText, + missingMessage: $.fn.datebox.defaults.missingMessage + }); +} diff --git a/src/main/webapp/js/easyui-1.3.5/locale/easyui-lang-pl.js b/src/main/webapp/js/easyui-1.3.5/locale/easyui-lang-pl.js new file mode 100644 index 00000000..6957f528 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/locale/easyui-lang-pl.js @@ -0,0 +1,52 @@ +if ($.fn.pagination){ + $.fn.pagination.defaults.beforePageText = 'Strona'; + $.fn.pagination.defaults.afterPageText = 'z {pages}'; + $.fn.pagination.defaults.displayMsg = 'Wyświetlono elementy od {from} do {to} z {total}'; +} +if ($.fn.datagrid){ + $.fn.datagrid.defaults.loadMsg = 'Przetwarzanie, proszę czekać ...'; +} +if ($.fn.treegrid && $.fn.datagrid){ + $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; +} +if ($.messager){ + $.messager.defaults.ok = 'Ok'; + $.messager.defaults.cancel = 'Cancel'; +} +if ($.fn.validatebox){ + $.fn.validatebox.defaults.missingMessage = 'To pole jest wymagane.'; + $.fn.validatebox.defaults.rules.email.message = 'Wprowadź poprawny adres email.'; + $.fn.validatebox.defaults.rules.url.message = 'Wprowadź poprawny adres URL.'; + $.fn.validatebox.defaults.rules.length.message = 'Wprowadź wartość z zakresu od {0} do {1}.'; + $.fn.validatebox.defaults.rules.remote.message = 'Proszę poprawić to pole.'; +} +if ($.fn.numberbox){ + $.fn.numberbox.defaults.missingMessage = 'To pole jest wymagane.'; +} +if ($.fn.combobox){ + $.fn.combobox.defaults.missingMessage = 'To pole jest wymagane.'; +} +if ($.fn.combotree){ + $.fn.combotree.defaults.missingMessage = 'To pole jest wymagane.'; +} +if ($.fn.combogrid){ + $.fn.combogrid.defaults.missingMessage = 'To pole jest wymagane.'; +} +if ($.fn.calendar){ + $.fn.calendar.defaults.weeks = ['N','P','W','Ś','C','P','S']; + $.fn.calendar.defaults.months = ['Sty', 'Lut', 'Mar', 'Kwi', 'Maj', 'Cze', 'Lip', 'Sie', 'Wrz', 'Paź', 'Lis', 'Gru']; +} +if ($.fn.datebox){ + $.fn.datebox.defaults.currentText = 'Dzisiaj'; + $.fn.datebox.defaults.closeText = 'Zamknij'; + $.fn.datebox.defaults.okText = 'Ok'; + $.fn.datebox.defaults.missingMessage = 'To pole jest wymagane.'; +} +if ($.fn.datetimebox && $.fn.datebox){ + $.extend($.fn.datetimebox.defaults,{ + currentText: $.fn.datebox.defaults.currentText, + closeText: $.fn.datebox.defaults.closeText, + okText: $.fn.datebox.defaults.okText, + missingMessage: $.fn.datebox.defaults.missingMessage + }); +} diff --git a/src/main/webapp/js/easyui-1.3.5/locale/easyui-lang-pt_BR.js b/src/main/webapp/js/easyui-1.3.5/locale/easyui-lang-pt_BR.js new file mode 100644 index 00000000..9cd4985d --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/locale/easyui-lang-pt_BR.js @@ -0,0 +1,52 @@ +if ($.fn.pagination){ + $.fn.pagination.defaults.beforePageText = 'Página'; + $.fn.pagination.defaults.afterPageText = 'de {pages}'; + $.fn.pagination.defaults.displayMsg = 'Mostrando {from} a {to} de {total} itens'; +} +if ($.fn.datagrid){ + $.fn.datagrid.defaults.loadMsg = 'Processando, aguarde ...'; +} +if ($.fn.treegrid && $.fn.datagrid){ + $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; +} +if ($.messager){ + $.messager.defaults.ok = 'Ok'; + $.messager.defaults.cancel = 'Cancelar'; +} +if ($.fn.validatebox){ + $.fn.validatebox.defaults.missingMessage = 'Esse campo é requerido.'; + $.fn.validatebox.defaults.rules.email.message = 'Insira um endereço de email válido.'; + $.fn.validatebox.defaults.rules.url.message = 'Insira uma URL válida.'; + $.fn.validatebox.defaults.rules.length.message = 'Insira uma valor entre {0} e {1}.'; + $.fn.validatebox.defaults.rules.remote.message = 'Corrija esse campo.'; +} +if ($.fn.numberbox){ + $.fn.numberbox.defaults.missingMessage = 'Esse campo é requerido.'; +} +if ($.fn.combobox){ + $.fn.combobox.defaults.missingMessage = 'Esse campo é requerido.'; +} +if ($.fn.combotree){ + $.fn.combotree.defaults.missingMessage = 'Esse campo é requerido.'; +} +if ($.fn.combogrid){ + $.fn.combogrid.defaults.missingMessage = 'Esse campo é requerido.'; +} +if ($.fn.calendar){ + $.fn.calendar.defaults.weeks = ['D','S','T','Q','Q','S','S']; + $.fn.calendar.defaults.months = ['Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun', 'Jul', 'Ago', 'Set', 'Out', 'Nov', 'Dez']; +} +if ($.fn.datebox){ + $.fn.datebox.defaults.currentText = 'Hoje'; + $.fn.datebox.defaults.closeText = 'Fechar'; + $.fn.datebox.defaults.okText = 'Ok'; + $.fn.datebox.defaults.missingMessage = 'Esse campo é requerido.'; +} +if ($.fn.datetimebox && $.fn.datebox){ + $.extend($.fn.datetimebox.defaults,{ + currentText: $.fn.datebox.defaults.currentText, + closeText: $.fn.datebox.defaults.closeText, + okText: $.fn.datebox.defaults.okText, + missingMessage: $.fn.datebox.defaults.missingMessage + }); +} diff --git a/src/main/webapp/js/easyui-1.3.5/locale/easyui-lang-ru.js b/src/main/webapp/js/easyui-1.3.5/locale/easyui-lang-ru.js new file mode 100644 index 00000000..492964e4 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/locale/easyui-lang-ru.js @@ -0,0 +1,53 @@ +if ($.fn.pagination){ + $.fn.pagination.defaults.beforePageText = 'Страница'; + $.fn.pagination.defaults.afterPageText = 'из {pages}'; + $.fn.pagination.defaults.displayMsg = 'Просмотр {from} до {to} из {total} записей'; +} +if ($.fn.datagrid){ + $.fn.datagrid.defaults.loadMsg = 'Обрабатывается, пожалуйста ждите ...'; +} +if ($.fn.treegrid && $.fn.datagrid){ + $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; +} +if ($.messager){ + $.messager.defaults.ok = 'Ок'; + $.messager.defaults.cancel = 'Закрыть'; +} +if ($.fn.validatebox){ + $.fn.validatebox.defaults.missingMessage = 'Это поле необходимо.'; + $.fn.validatebox.defaults.rules.email.message = 'Пожалуйста введите корректный e-mail адрес.'; + $.fn.validatebox.defaults.rules.url.message = 'Пожалуйста введите корректный URL.'; + $.fn.validatebox.defaults.rules.length.message = 'Пожалуйста введите зачение между {0} и {1}.'; + $.fn.validatebox.defaults.rules.remote.message = 'Пожалуйста исправте это поле.'; +} +if ($.fn.numberbox){ + $.fn.numberbox.defaults.missingMessage = 'Это поле необходимо.'; +} +if ($.fn.combobox){ + $.fn.combobox.defaults.missingMessage = 'Это поле необходимо.'; +} +if ($.fn.combotree){ + $.fn.combotree.defaults.missingMessage = 'Это поле необходимо.'; +} +if ($.fn.combogrid){ + $.fn.combogrid.defaults.missingMessage = 'Это поле необходимо.'; +} +if ($.fn.calendar){ + $.fn.calendar.defaults.firstDay = 1; + $.fn.calendar.defaults.weeks = ['В','П','В','С','Ч','П','С']; + $.fn.calendar.defaults.months = ['Янв', 'Фев', 'Мар', 'Апр', 'Май', 'Июн', 'Июл', 'Авг', 'Сен', 'Окт', 'Ноя', 'Дек']; +} +if ($.fn.datebox){ + $.fn.datebox.defaults.currentText = 'Сегодня'; + $.fn.datebox.defaults.closeText = 'Закрыть'; + $.fn.datebox.defaults.okText = 'Ок'; + $.fn.datebox.defaults.missingMessage = 'Это поле необходимо.'; +} +if ($.fn.datetimebox && $.fn.datebox){ + $.extend($.fn.datetimebox.defaults,{ + currentText: $.fn.datebox.defaults.currentText, + closeText: $.fn.datebox.defaults.closeText, + okText: $.fn.datebox.defaults.okText, + missingMessage: $.fn.datebox.defaults.missingMessage + }); +} diff --git a/src/main/webapp/js/easyui-1.3.5/locale/easyui-lang-sv_SE.js b/src/main/webapp/js/easyui-1.3.5/locale/easyui-lang-sv_SE.js new file mode 100644 index 00000000..feb03211 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/locale/easyui-lang-sv_SE.js @@ -0,0 +1,52 @@ +if ($.fn.pagination) { + $.fn.pagination.defaults.beforePageText = 'Sida'; + $.fn.pagination.defaults.afterPageText = 'av {pages}'; + $.fn.pagination.defaults.displayMsg = 'Visar {from} till {to} av {total} poster'; +} +if ($.fn.datagrid) { + $.fn.datagrid.defaults.loadMsg = 'Bearbetar, vänligen vänta ...'; +} +if ($.fn.treegrid && $.fn.datagrid) { + $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; +} +if ($.messager) { + $.messager.defaults.ok = 'Ok'; + $.messager.defaults.cancel = 'Avbryt'; +} +if ($.fn.validatebox) { + $.fn.validatebox.defaults.missingMessage = 'Detta fält är obligatoriskt.'; + $.fn.validatebox.defaults.rules.email.message = 'Vänligen ange en korrekt e-post adress.'; + $.fn.validatebox.defaults.rules.url.message = 'Vänligen ange en korrekt URL.'; + $.fn.validatebox.defaults.rules.length.message = 'Vänligen ange ett nummer mellan {0} och {1}.'; + $.fn.validatebox.defaults.rules.remote.message = 'Vänligen åtgärda detta fält.'; +} +if ($.fn.numberbox) { + $.fn.numberbox.defaults.missingMessage = 'Detta fält är obligatoriskt.'; +} +if ($.fn.combobox) { + $.fn.combobox.defaults.missingMessage = 'Detta fält är obligatoriskt.'; +} +if ($.fn.combotree) { + $.fn.combotree.defaults.missingMessage = 'Detta fält är obligatoriskt.'; +} +if ($.fn.combogrid) { + $.fn.combogrid.defaults.missingMessage = 'Detta fält är obligatoriskt.'; +} +if ($.fn.calendar) { + $.fn.calendar.defaults.weeks = ['Sön', 'Mån', 'Tis', 'Ons', 'Tors', 'Fre', 'Lör']; + $.fn.calendar.defaults.months = ['Jan', 'Feb', 'Mar', 'Apr', 'Maj', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dec']; +} +if ($.fn.datebox) { + $.fn.datebox.defaults.currentText = 'I dag'; + $.fn.datebox.defaults.closeText = 'Stäng'; + $.fn.datebox.defaults.okText = 'Ok'; + $.fn.datebox.defaults.missingMessage = 'Detta fält är obligatoriskt.'; +} +if ($.fn.datetimebox && $.fn.datebox) { + $.extend($.fn.datetimebox.defaults, { + currentText: $.fn.datebox.defaults.currentText, + closeText: $.fn.datebox.defaults.closeText, + okText: $.fn.datebox.defaults.okText, + missingMessage: $.fn.datebox.defaults.missingMessage + }); +} diff --git a/src/main/webapp/js/easyui-1.3.5/locale/easyui-lang-tr.js b/src/main/webapp/js/easyui-1.3.5/locale/easyui-lang-tr.js new file mode 100644 index 00000000..d3aa7066 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/locale/easyui-lang-tr.js @@ -0,0 +1,66 @@ +if ($.fn.pagination){ + $.fn.pagination.defaults.beforePageText = 'Sayfa'; + $.fn.pagination.defaults.afterPageText = ' / {pages}'; + $.fn.pagination.defaults.displayMsg = '{from} ile {to} arası gösteriliyor, toplam {total} kayıt'; +} +if ($.fn.datagrid){ + $.fn.panel.defaults.loadingMessage = "Yükleniyor..."; +} + +if ($.fn.datagrid){ + $.fn.datagrid.defaults.loadingMessage = "Yükleniyor..."; + $.fn.datagrid.defaults.loadMsg = 'İşleminiz Yapılıyor, lütfen bekleyin ...'; +} +if ($.fn.treegrid && $.fn.datagrid){ + $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; +} +if ($.messager){ + $.messager.defaults.ok = 'Tamam'; + $.messager.defaults.cancel = 'İptal'; +} +if ($.fn.validatebox){ + $.fn.validatebox.defaults.missingMessage = 'Bu alan zorunludur.'; + $.fn.validatebox.defaults.rules.email.message = 'Lütfen geçerli bir email adresi giriniz.'; + $.fn.validatebox.defaults.rules.url.message = 'Lütfen geçerli bir URL giriniz.'; + $.fn.validatebox.defaults.rules.length.message = 'Lütfen {0} ile {1} arasında bir değer giriniz.'; + $.fn.validatebox.defaults.rules.remote.message = 'Lütfen bu alanı düzeltiniz.'; +} +if ($.fn.numberbox){ + $.fn.numberbox.defaults.missingMessage = 'Bu alan zorunludur.'; +} +if ($.fn.combobox){ + $.fn.combobox.defaults.missingMessage = 'Bu alan zorunludur.'; +} +if ($.fn.combotree){ + $.fn.combotree.defaults.missingMessage = 'Bu alan zorunludur.'; +} +if ($.fn.combogrid){ + $.fn.combogrid.defaults.missingMessage = 'Bu alan zorunludur.'; +} +if ($.fn.calendar){ + $.fn.calendar.defaults.weeks = ['Pz','Pt','Sa','Ça','Pe','Cu','Ct']; + $.fn.calendar.defaults.months = ['Oca', 'Şub', 'Mar', 'Nis', 'May', 'Haz', 'Tem', 'Ağu', 'Eyl', 'Eki', 'Kas', 'Ara']; +} +if ($.fn.datebox){ + $.fn.datebox.defaults.currentText = 'Bugün'; + $.fn.datebox.defaults.closeText = 'Kapat'; + $.fn.datebox.defaults.okText = 'Tamam'; + $.fn.datebox.defaults.missingMessage = 'Bu alan zorunludur.'; +} +if ($.fn.datetimebox && $.fn.datebox){ + $.extend($.fn.datetimebox.defaults,{ + currentText: $.fn.datebox.defaults.currentText, + closeText: $.fn.datebox.defaults.closeText, + okText: $.fn.datebox.defaults.okText, + missingMessage: $.fn.datebox.defaults.missingMessage + }); + + $.fn.datebox.defaults.formatter=function(date){ + var y=date.getFullYear(); + var m=date.getMonth()+1; + var d=date.getDate(); + if(m<10){m="0"+m;} + if(d<10){d="0"+d;} + return d+"."+m+"."+y; + }; +} diff --git a/src/main/webapp/js/easyui-1.3.5/locale/easyui-lang-zh_CN.js b/src/main/webapp/js/easyui-1.3.5/locale/easyui-lang-zh_CN.js new file mode 100644 index 00000000..24a3a18a --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/locale/easyui-lang-zh_CN.js @@ -0,0 +1,70 @@ +if ($.fn.pagination){ + $.fn.pagination.defaults.beforePageText = '第'; + $.fn.pagination.defaults.afterPageText = '共{pages}页'; + $.fn.pagination.defaults.displayMsg = '显示{from}到{to},共{total}记录'; +} +if ($.fn.datagrid){ + $.fn.datagrid.defaults.loadMsg = '正在处理,请稍待。。。'; +} +if ($.fn.treegrid && $.fn.datagrid){ + $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; +} +if ($.messager){ + $.messager.defaults.ok = '确定'; + $.messager.defaults.cancel = '取消'; +} +if ($.fn.validatebox){ + $.fn.validatebox.defaults.missingMessage = '必填'; + $.fn.validatebox.defaults.rules.email.message = '请输入有效的电子邮件地址'; + $.fn.validatebox.defaults.rules.url.message = '请输入有效的URL地址'; + $.fn.validatebox.defaults.rules.length.message = '输入内容长度必须介于{0}和{1}之间'; + $.fn.validatebox.defaults.rules.remote.message = '请修正该字段'; +} +if ($.fn.numberbox){ + $.fn.numberbox.defaults.missingMessage = '必填'; +} +if ($.fn.combobox){ + $.fn.combobox.defaults.missingMessage = '必填'; +} +if ($.fn.combotree){ + $.fn.combotree.defaults.missingMessage = '必填'; +} +if ($.fn.combogrid){ + $.fn.combogrid.defaults.missingMessage = '必填'; +} +if ($.fn.calendar){ + $.fn.calendar.defaults.weeks = ['日','一','二','三','四','五','六']; + $.fn.calendar.defaults.months = ['一月','二月','三月','四月','五月','六月','七月','八月','九月','十月','十一月','十二月']; +} +if ($.fn.datebox){ + $.fn.datebox.defaults.currentText = '今天'; + $.fn.datebox.defaults.closeText = '关闭'; + $.fn.datebox.defaults.okText = '确定'; + $.fn.datebox.defaults.missingMessage = '必填'; + $.fn.datebox.defaults.formatter = function(date){ + var y = date.getFullYear(); + var m = date.getMonth()+1; + var d = date.getDate(); + return y+'-'+(m<10?('0'+m):m)+'-'+(d<10?('0'+d):d); + }; + $.fn.datebox.defaults.parser = function(s){ + if (!s) return new Date(); + var ss = s.split('-'); + var y = parseInt(ss[0],10); + var m = parseInt(ss[1],10); + var d = parseInt(ss[2],10); + if (!isNaN(y) && !isNaN(m) && !isNaN(d)){ + return new Date(y,m-1,d); + } else { + return new Date(); + } + }; +} +if ($.fn.datetimebox && $.fn.datebox){ + $.extend($.fn.datetimebox.defaults,{ + currentText: $.fn.datebox.defaults.currentText, + closeText: $.fn.datebox.defaults.closeText, + okText: $.fn.datebox.defaults.okText, + missingMessage: $.fn.datebox.defaults.missingMessage + }); +} diff --git a/src/main/webapp/js/easyui-1.3.5/locale/easyui-lang-zh_TW.js b/src/main/webapp/js/easyui-1.3.5/locale/easyui-lang-zh_TW.js new file mode 100644 index 00000000..70ffa76a --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/locale/easyui-lang-zh_TW.js @@ -0,0 +1,52 @@ +if ($.fn.pagination){ + $.fn.pagination.defaults.beforePageText = '第'; + $.fn.pagination.defaults.afterPageText = '共{pages}頁'; + $.fn.pagination.defaults.displayMsg = '顯示{from}到{to},共{total}記錄'; +} +if ($.fn.datagrid){ + $.fn.datagrid.defaults.loadMsg = '正在處理,請稍待。。。'; +} +if ($.fn.treegrid && $.fn.datagrid){ + $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg; +} +if ($.messager){ + $.messager.defaults.ok = '確定'; + $.messager.defaults.cancel = '取消'; +} +if ($.fn.validatebox){ + $.fn.validatebox.defaults.missingMessage = '該輸入項為必輸項'; + $.fn.validatebox.defaults.rules.email.message = '請輸入有效的電子郵件地址'; + $.fn.validatebox.defaults.rules.url.message = '請輸入有效的URL地址'; + $.fn.validatebox.defaults.rules.length.message = '輸入內容長度必須介於{0}和{1}之間'; + $.fn.validatebox.defaults.rules.remote.message = '請修正此欄位'; +} +if ($.fn.numberbox){ + $.fn.numberbox.defaults.missingMessage = '該輸入項為必輸項'; +} +if ($.fn.combobox){ + $.fn.combobox.defaults.missingMessage = '該輸入項為必輸項'; +} +if ($.fn.combotree){ + $.fn.combotree.defaults.missingMessage = '該輸入項為必輸項'; +} +if ($.fn.combogrid){ + $.fn.combogrid.defaults.missingMessage = '該輸入項為必輸項'; +} +if ($.fn.calendar){ + $.fn.calendar.defaults.weeks = ['日','一','二','三','四','五','六']; + $.fn.calendar.defaults.months = ['一月','二月','三月','四月','五月','六月','七月','八月','九月','十月','十一月','十二月']; +} +if ($.fn.datebox){ + $.fn.datebox.defaults.currentText = '今天'; + $.fn.datebox.defaults.closeText = '關閉'; + $.fn.datebox.defaults.okText = '確定'; + $.fn.datebox.defaults.missingMessage = '該輸入項為必輸項'; +} +if ($.fn.datetimebox && $.fn.datebox){ + $.extend($.fn.datetimebox.defaults,{ + currentText: $.fn.datebox.defaults.currentText, + closeText: $.fn.datebox.defaults.closeText, + okText: $.fn.datebox.defaults.okText, + missingMessage: $.fn.datebox.defaults.missingMessage + }); +} diff --git a/src/main/webapp/js/easyui-1.3.5/outlook.js b/src/main/webapp/js/easyui-1.3.5/outlook.js new file mode 100644 index 00000000..cb0e8d69 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/outlook.js @@ -0,0 +1,183 @@ +$(function () { + // InitLeftMenu(); + tabClose(); + tabCloseEven(); + + + // $('#tabs').tabs('add',{ + // title:'title', + // content:createFrame('http://www.xjz365.com') + // }).tabs({ + // onSelect: function (title) { + // var currTab = $('#tabs').tabs('getTab', title); + // var iframe = $(currTab.panel('options').content); + + // var src = iframe.attr('src'); + // if(src) + // $('#tabs').tabs('update', { tab: currTab, options: { content: createFrame(src)} }); + + // } + // }); +}) + +//初始化左侧 +function InitLeftMenu() { + $("#nav").accordion({ animate: false }); + + $.each(_menus.menus, function (i, n) { + var menulist = ''; + menulist += ''; + + $('#nav').accordion('add', { + title: n.menuname, + content: menulist, + iconCls: 'icon ' + n.icon + }); + + }); + + $('.easyui-accordion li a').click(function () { + var tabTitle = $(this).children('.nav').text(); + + var url = $(this).attr("rel"); + var menuid = $(this).attr("ref"); + var icon = getIcon(menuid, icon); + + addTab(tabTitle, url, icon); + $('.easyui-accordion li div').removeClass("selected"); + $(this).parent().addClass("selected"); + }).hover(function () { + $(this).parent().addClass("hover"); + }, function () { + $(this).parent().removeClass("hover"); + }); + + //选中第一个 + var panels = $('#nav').accordion('panels'); + var t = panels[0].panel('options').title; + $('#nav').accordion('select', t); +} +//获取左侧导航的图标 +function getIcon(menuid) { + var icon = 'icon '; + $.each(_menus.menus, function (i, n) { + $.each(n.menus, function (j, o) { + if (o.menuid == menuid) { + icon += o.icon; + } + }) + }) + + return icon; +} + +function addTab(subtitle, url, icon) { + if (!$('#tabs').tabs('exists', subtitle)) { + $('#tabs').tabs('add', { + title: subtitle, + content: createFrame(url), + closable: true, + icon: icon + }); + } else { + $('#tabs').tabs('select', subtitle); + $('#mm-tabupdate').click(); + } + tabClose(); +} +function createFrame(url) { + var s = ''; + return s; +} +function tabClose() { + /*双击关闭TAB选项卡*/ + $(".tabs-inner").dblclick(function () { + var subtitle = $(this).children(".tabs-closable").text(); + $('#tabs').tabs('close', subtitle); + }) + /*为选项卡绑定右键*/ + $(".tabs-inner").bind('contextmenu', function (e) { + $('#mm').menu('show', { + left: e.pageX, + top: e.pageY + }); + + var subtitle = $(this).children(".tabs-closable").text(); + + $('#mm').data("currtab", subtitle); + $('#tabs').tabs('select', subtitle); + return false; + }); +} +//绑定右键菜单事件 +function tabCloseEven() { + //刷新 + $('#mm-tabupdate').click(function () { + var currTab = $('#tabs').tabs('getSelected'); + var url = $(currTab.panel('options').content).attr('src'); + $('#tabs').tabs('update', { + tab: currTab, + options: { + content: createFrame(url) + } + }) + }) + //关闭当前 + $('#mm-tabclose').click(function () { + var currtab_title = $('#mm').data("currtab"); + $('#tabs').tabs('close', currtab_title); + }) + //全部关闭 + $('#mm-tabcloseall').click(function () { + $('.tabs-inner span').each(function (i, n) { + var t = $(n).text(); + $('#tabs').tabs('close', t); + }); + }); + //关闭除当前之外的TAB + $('#mm-tabcloseother').click(function () { + $('#mm-tabcloseright').click(); + $('#mm-tabcloseleft').click(); + }); + //关闭当前右侧的TAB + $('#mm-tabcloseright').click(function () { + var nextall = $('.tabs-selected').nextAll(); + if (nextall.length == 0) { + //msgShow('系统提示','后边没有啦~~','error'); + //alert('后边没有啦~~'); + return false; + } + nextall.each(function (i, n) { + var t = $('a:eq(0) span', $(n)).text(); + $('#tabs').tabs('close', t); + }); + return false; + }); + //关闭当前左侧的TAB + $('#mm-tabcloseleft').click(function () { + var prevall = $('.tabs-selected').prevAll(); + if (prevall.length == 0) { + //alert('到头了,前边没有啦~~'); + return false; + } + prevall.each(function (i, n) { + var t = $('a:eq(0) span', $(n)).text(); + $('#tabs').tabs('close', t); + }); + return false; + }); + + //退出 + $("#mm-exit").click(function () { + $('#mm').menu('hide'); + }) +} + +//弹出信息窗口 title:标题 msgString:提示信息 msgType:信息类型 [error,info,question,warning] +function msgShow(title, msgString, msgType) { + $.messager.alert(title, msgString, msgType); +} diff --git a/src/main/webapp/js/easyui-1.3.5/plugins/jquery.accordion.js b/src/main/webapp/js/easyui-1.3.5/plugins/jquery.accordion.js new file mode 100644 index 00000000..15b316f2 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/plugins/jquery.accordion.js @@ -0,0 +1,322 @@ +/** + * jQuery EasyUI 1.3.5 + * + * Copyright (c) 2009-2013 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL or commercial licenses + * To use it on other terms please contact us: info@jeasyui.com + * http://www.gnu.org/licenses/gpl.txt + * http://www.jeasyui.com/license_commercial.php + * + */ +(function($){ +function _1(_2){ +var _3=$.data(_2,"accordion"); +var _4=_3.options; +var _5=_3.panels; +var cc=$(_2); +_4.fit?$.extend(_4,cc._fit()):cc._fit(false); +if(!isNaN(_4.width)){ +cc._outerWidth(_4.width); +}else{ +cc.css("width",""); +} +var _6=0; +var _7="auto"; +var _8=cc.find(">div.panel>div.accordion-header"); +if(_8.length){ +_6=$(_8[0]).css("height","")._outerHeight(); +} +if(!isNaN(_4.height)){ +cc._outerHeight(_4.height); +_7=cc.height()-_6*_8.length; +}else{ +cc.css("height",""); +} +_9(true,_7-_9(false)+1); +function _9(_a,_b){ +var _c=0; +for(var i=0;i<_5.length;i++){ +var p=_5[i]; +var h=p.panel("header")._outerHeight(_6); +if(p.panel("options").collapsible==_a){ +var _d=isNaN(_b)?undefined:(_b+_6*h.length); +p.panel("resize",{width:cc.width(),height:(_a?_d:undefined)}); +_c+=p.panel("panel").outerHeight()-_6; +} +} +return _c; +}; +}; +function _e(_f,_10,_11,all){ +var _12=$.data(_f,"accordion").panels; +var pp=[]; +for(var i=0;i<_12.length;i++){ +var p=_12[i]; +if(_10){ +if(p.panel("options")[_10]==_11){ +pp.push(p); +} +}else{ +if(p[0]==$(_11)[0]){ +return i; +} +} +} +if(_10){ +return all?pp:(pp.length?pp[0]:null); +}else{ +return -1; +} +}; +function _13(_14){ +return _e(_14,"collapsed",false,true); +}; +function _15(_16){ +var pp=_13(_16); +return pp.length?pp[0]:null; +}; +function _17(_18,_19){ +return _e(_18,null,_19); +}; +function _1a(_1b,_1c){ +var _1d=$.data(_1b,"accordion").panels; +if(typeof _1c=="number"){ +if(_1c<0||_1c>=_1d.length){ +return null; +}else{ +return _1d[_1c]; +} +} +return _e(_1b,"title",_1c); +}; +function _1e(_1f){ +var _20=$.data(_1f,"accordion").options; +var cc=$(_1f); +if(_20.border){ +cc.removeClass("accordion-noborder"); +}else{ +cc.addClass("accordion-noborder"); +} +}; +function _21(_22){ +var _23=$.data(_22,"accordion"); +var cc=$(_22); +cc.addClass("accordion"); +_23.panels=[]; +cc.children("div").each(function(){ +var _24=$.extend({},$.parser.parseOptions(this),{selected:($(this).attr("selected")?true:undefined)}); +var pp=$(this); +_23.panels.push(pp); +_27(_22,pp,_24); +}); +cc.bind("_resize",function(e,_25){ +var _26=$.data(_22,"accordion").options; +if(_26.fit==true||_25){ +_1(_22); +} +return false; +}); +}; +function _27(_28,pp,_29){ +var _2a=$.data(_28,"accordion").options; +pp.panel($.extend({},{collapsible:true,minimizable:false,maximizable:false,closable:false,doSize:false,collapsed:true,headerCls:"accordion-header",bodyCls:"accordion-body"},_29,{onBeforeExpand:function(){ +if(_29.onBeforeExpand){ +if(_29.onBeforeExpand.call(this)==false){ +return false; +} +} +if(!_2a.multiple){ +var all=$.grep(_13(_28),function(p){ +return p.panel("options").collapsible; +}); +for(var i=0;i").addClass("accordion-collapse accordion-expand").appendTo(_2e); +t.bind("click",function(){ +var _2f=_17(_28,pp); +if(pp.panel("options").collapsed){ +_30(_28,_2f); +}else{ +_35(_28,_2f); +} +return false; +}); +pp.panel("options").collapsible?t.show():t.hide(); +_2d.click(function(){ +$(this).find("a.accordion-collapse:visible").triggerHandler("click"); +return false; +}); +}; +function _30(_31,_32){ +var p=_1a(_31,_32); +if(!p){ +return; +} +_33(_31); +var _34=$.data(_31,"accordion").options; +p.panel("expand",_34.animate); +}; +function _35(_36,_37){ +var p=_1a(_36,_37); +if(!p){ +return; +} +_33(_36); +var _38=$.data(_36,"accordion").options; +p.panel("collapse",_38.animate); +}; +function _39(_3a){ +var _3b=$.data(_3a,"accordion").options; +var p=_e(_3a,"selected",true); +if(p){ +_3c(_17(_3a,p)); +}else{ +_3c(_3b.selected); +} +function _3c(_3d){ +var _3e=_3b.animate; +_3b.animate=false; +_30(_3a,_3d); +_3b.animate=_3e; +}; +}; +function _33(_3f){ +var _40=$.data(_3f,"accordion").panels; +for(var i=0;i<_40.length;i++){ +_40[i].stop(true,true); +} +}; +function add(_41,_42){ +var _43=$.data(_41,"accordion"); +var _44=_43.options; +var _45=_43.panels; +if(_42.selected==undefined){ +_42.selected=true; +} +_33(_41); +var pp=$("
                      ").appendTo(_41); +_45.push(pp); +_27(_41,pp,_42); +_1(_41); +_44.onAdd.call(_41,_42.title,_45.length-1); +if(_42.selected){ +_30(_41,_45.length-1); +} +}; +function _46(_47,_48){ +var _49=$.data(_47,"accordion"); +var _4a=_49.options; +var _4b=_49.panels; +_33(_47); +var _4c=_1a(_47,_48); +var _4d=_4c.panel("options").title; +var _4e=_17(_47,_4c); +if(!_4c){ +return; +} +if(_4a.onBeforeRemove.call(_47,_4d,_4e)==false){ +return; +} +_4b.splice(_4e,1); +_4c.panel("destroy"); +if(_4b.length){ +_1(_47); +var _4f=_15(_47); +if(!_4f){ +_30(_47,0); +} +} +_4a.onRemove.call(_47,_4d,_4e); +}; +$.fn.accordion=function(_50,_51){ +if(typeof _50=="string"){ +return $.fn.accordion.methods[_50](this,_51); +} +_50=_50||{}; +return this.each(function(){ +var _52=$.data(this,"accordion"); +if(_52){ +$.extend(_52.options,_50); +}else{ +$.data(this,"accordion",{options:$.extend({},$.fn.accordion.defaults,$.fn.accordion.parseOptions(this),_50),accordion:$(this).addClass("accordion"),panels:[]}); +_21(this); +} +_1e(this); +_1(this); +_39(this); +}); +}; +$.fn.accordion.methods={options:function(jq){ +return $.data(jq[0],"accordion").options; +},panels:function(jq){ +return $.data(jq[0],"accordion").panels; +},resize:function(jq){ +return jq.each(function(){ +_1(this); +}); +},getSelections:function(jq){ +return _13(jq[0]); +},getSelected:function(jq){ +return _15(jq[0]); +},getPanel:function(jq,_53){ +return _1a(jq[0],_53); +},getPanelIndex:function(jq,_54){ +return _17(jq[0],_54); +},select:function(jq,_55){ +return jq.each(function(){ +_30(this,_55); +}); +},unselect:function(jq,_56){ +return jq.each(function(){ +_35(this,_56); +}); +},add:function(jq,_57){ +return jq.each(function(){ +add(this,_57); +}); +},remove:function(jq,_58){ +return jq.each(function(){ +_46(this,_58); +}); +}}; +$.fn.accordion.parseOptions=function(_59){ +var t=$(_59); +return $.extend({},$.parser.parseOptions(_59,["width","height",{fit:"boolean",border:"boolean",animate:"boolean",multiple:"boolean",selected:"number"}])); +}; +$.fn.accordion.defaults={width:"auto",height:"auto",fit:false,border:true,animate:true,multiple:false,selected:0,onSelect:function(_5a,_5b){ +},onUnselect:function(_5c,_5d){ +},onAdd:function(_5e,_5f){ +},onBeforeRemove:function(_60,_61){ +},onRemove:function(_62,_63){ +}}; +})(jQuery); + diff --git a/src/main/webapp/js/easyui-1.3.5/plugins/jquery.calendar.js b/src/main/webapp/js/easyui-1.3.5/plugins/jquery.calendar.js new file mode 100644 index 00000000..1f71fe6e --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/plugins/jquery.calendar.js @@ -0,0 +1,304 @@ +/** + * jQuery EasyUI 1.3.5 + * + * Copyright (c) 2009-2013 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL or commercial licenses + * To use it on other terms please contact us: info@jeasyui.com + * http://www.gnu.org/licenses/gpl.txt + * http://www.jeasyui.com/license_commercial.php + * + */ +(function($){ +function _1(_2){ +var _3=$.data(_2,"calendar").options; +var t=$(_2); +_3.fit?$.extend(_3,t._fit()):t._fit(false); +var _4=t.find(".calendar-header"); +t._outerWidth(_3.width); +t._outerHeight(_3.height); +t.find(".calendar-body")._outerHeight(t.height()-_4._outerHeight()); +}; +function _5(_6){ +$(_6).addClass("calendar").html("
                      "+"
                      "+"
                      "+"
                      "+"
                      "+"
                      "+"Aprial 2010"+"
                      "+"
                      "+"
                      "+"
                      "+"
                      "+""+""+""+"
                      "+"
                      "+"
                      "+"
                      "+"
                      "); +$(_6).find(".calendar-title span").hover(function(){ +$(this).addClass("calendar-menu-hover"); +},function(){ +$(this).removeClass("calendar-menu-hover"); +}).click(function(){ +var _7=$(_6).find(".calendar-menu"); +if(_7.is(":visible")){ +_7.hide(); +}else{ +_14(_6); +} +}); +$(".calendar-prevmonth,.calendar-nextmonth,.calendar-prevyear,.calendar-nextyear",_6).hover(function(){ +$(this).addClass("calendar-nav-hover"); +},function(){ +$(this).removeClass("calendar-nav-hover"); +}); +$(_6).find(".calendar-nextmonth").click(function(){ +_9(_6,1); +}); +$(_6).find(".calendar-prevmonth").click(function(){ +_9(_6,-1); +}); +$(_6).find(".calendar-nextyear").click(function(){ +_f(_6,1); +}); +$(_6).find(".calendar-prevyear").click(function(){ +_f(_6,-1); +}); +$(_6).bind("_resize",function(){ +var _8=$.data(_6,"calendar").options; +if(_8.fit==true){ +_1(_6); +} +return false; +}); +}; +function _9(_a,_b){ +var _c=$.data(_a,"calendar").options; +_c.month+=_b; +if(_c.month>12){ +_c.year++; +_c.month=1; +}else{ +if(_c.month<1){ +_c.year--; +_c.month=12; +} +} +_d(_a); +var _e=$(_a).find(".calendar-menu-month-inner"); +_e.find("td.calendar-selected").removeClass("calendar-selected"); +_e.find("td:eq("+(_c.month-1)+")").addClass("calendar-selected"); +}; +function _f(_10,_11){ +var _12=$.data(_10,"calendar").options; +_12.year+=_11; +_d(_10); +var _13=$(_10).find(".calendar-menu-year"); +_13.val(_12.year); +}; +function _14(_15){ +var _16=$.data(_15,"calendar").options; +$(_15).find(".calendar-menu").show(); +if($(_15).find(".calendar-menu-month-inner").is(":empty")){ +$(_15).find(".calendar-menu-month-inner").empty(); +var t=$("
                      ").appendTo($(_15).find(".calendar-menu-month-inner")); +var idx=0; +for(var i=0;i<3;i++){ +var tr=$("").appendTo(t); +for(var j=0;j<4;j++){ +$("").html(_16.months[idx++]).attr("abbr",idx).appendTo(tr); +} +} +$(_15).find(".calendar-menu-prev,.calendar-menu-next").hover(function(){ +$(this).addClass("calendar-menu-hover"); +},function(){ +$(this).removeClass("calendar-menu-hover"); +}); +$(_15).find(".calendar-menu-next").click(function(){ +var y=$(_15).find(".calendar-menu-year"); +if(!isNaN(y.val())){ +y.val(parseInt(y.val())+1); +} +}); +$(_15).find(".calendar-menu-prev").click(function(){ +var y=$(_15).find(".calendar-menu-year"); +if(!isNaN(y.val())){ +y.val(parseInt(y.val()-1)); +} +}); +$(_15).find(".calendar-menu-year").keypress(function(e){ +if(e.keyCode==13){ +_17(); +} +}); +$(_15).find(".calendar-menu-month").hover(function(){ +$(this).addClass("calendar-menu-hover"); +},function(){ +$(this).removeClass("calendar-menu-hover"); +}).click(function(){ +var _18=$(_15).find(".calendar-menu"); +_18.find(".calendar-selected").removeClass("calendar-selected"); +$(this).addClass("calendar-selected"); +_17(); +}); +} +function _17(){ +var _19=$(_15).find(".calendar-menu"); +var _1a=_19.find(".calendar-menu-year").val(); +var _1b=_19.find(".calendar-selected").attr("abbr"); +if(!isNaN(_1a)){ +_16.year=parseInt(_1a); +_16.month=parseInt(_1b); +_d(_15); +} +_19.hide(); +}; +var _1c=$(_15).find(".calendar-body"); +var _1d=$(_15).find(".calendar-menu"); +var _1e=_1d.find(".calendar-menu-year-inner"); +var _1f=_1d.find(".calendar-menu-month-inner"); +_1e.find("input").val(_16.year).focus(); +_1f.find("td.calendar-selected").removeClass("calendar-selected"); +_1f.find("td:eq("+(_16.month-1)+")").addClass("calendar-selected"); +_1d._outerWidth(_1c._outerWidth()); +_1d._outerHeight(_1c._outerHeight()); +_1f._outerHeight(_1d.height()-_1e._outerHeight()); +}; +function _20(_21,_22,_23){ +var _24=$.data(_21,"calendar").options; +var _25=[]; +var _26=new Date(_22,_23,0).getDate(); +for(var i=1;i<=_26;i++){ +_25.push([_22,_23,i]); +} +var _27=[],_28=[]; +var _29=-1; +while(_25.length>0){ +var _2a=_25.shift(); +_28.push(_2a); +var day=new Date(_2a[0],_2a[1]-1,_2a[2]).getDay(); +if(_29==day){ +day=0; +}else{ +if(day==(_24.firstDay==0?7:_24.firstDay)-1){ +_27.push(_28); +_28=[]; +} +} +_29=day; +} +if(_28.length){ +_27.push(_28); +} +var _2b=_27[0]; +if(_2b.length<7){ +while(_2b.length<7){ +var _2c=_2b[0]; +var _2a=new Date(_2c[0],_2c[1]-1,_2c[2]-1); +_2b.unshift([_2a.getFullYear(),_2a.getMonth()+1,_2a.getDate()]); +} +}else{ +var _2c=_2b[0]; +var _28=[]; +for(var i=1;i<=7;i++){ +var _2a=new Date(_2c[0],_2c[1]-1,_2c[2]-i); +_28.unshift([_2a.getFullYear(),_2a.getMonth()+1,_2a.getDate()]); +} +_27.unshift(_28); +} +var _2d=_27[_27.length-1]; +while(_2d.length<7){ +var _2e=_2d[_2d.length-1]; +var _2a=new Date(_2e[0],_2e[1]-1,_2e[2]+1); +_2d.push([_2a.getFullYear(),_2a.getMonth()+1,_2a.getDate()]); +} +if(_27.length<6){ +var _2e=_2d[_2d.length-1]; +var _28=[]; +for(var i=1;i<=7;i++){ +var _2a=new Date(_2e[0],_2e[1]-1,_2e[2]+i); +_28.push([_2a.getFullYear(),_2a.getMonth()+1,_2a.getDate()]); +} +_27.push(_28); +} +return _27; +}; +function _d(_2f){ +var _30=$.data(_2f,"calendar").options; +$(_2f).find(".calendar-title span").html(_30.months[_30.month-1]+" "+_30.year); +var _31=$(_2f).find("div.calendar-body"); +_31.find(">table").remove(); +var t=$("
                      ").prependTo(_31); +var tr=$("").appendTo(t.find("thead")); +for(var i=_30.firstDay;i<_30.weeks.length;i++){ +tr.append(""+_30.weeks[i]+""); +} +for(var i=0;i<_30.firstDay;i++){ +tr.append(""+_30.weeks[i]+""); +} +var _32=_20(_2f,_30.year,_30.month); +for(var i=0;i<_32.length;i++){ +var _33=_32[i]; +var tr=$("").appendTo(t.find("tbody")); +for(var j=0;j<_33.length;j++){ +var day=_33[j]; +$("").attr("abbr",day[0]+","+day[1]+","+day[2]).html(day[2]).appendTo(tr); +} +} +t.find("td[abbr^=\""+_30.year+","+_30.month+"\"]").removeClass("calendar-other-month"); +var now=new Date(); +var _34=now.getFullYear()+","+(now.getMonth()+1)+","+now.getDate(); +t.find("td[abbr=\""+_34+"\"]").addClass("calendar-today"); +if(_30.current){ +t.find(".calendar-selected").removeClass("calendar-selected"); +var _35=_30.current.getFullYear()+","+(_30.current.getMonth()+1)+","+_30.current.getDate(); +t.find("td[abbr=\""+_35+"\"]").addClass("calendar-selected"); +} +var _36=6-_30.firstDay; +var _37=_36+1; +if(_36>=7){ +_36-=7; +} +if(_37>=7){ +_37-=7; +} +t.find("tr").find("td:eq("+_36+")").addClass("calendar-saturday"); +t.find("tr").find("td:eq("+_37+")").addClass("calendar-sunday"); +t.find("td").hover(function(){ +$(this).addClass("calendar-hover"); +},function(){ +$(this).removeClass("calendar-hover"); +}).click(function(){ +t.find(".calendar-selected").removeClass("calendar-selected"); +$(this).addClass("calendar-selected"); +var _38=$(this).attr("abbr").split(","); +_30.current=new Date(_38[0],parseInt(_38[1])-1,_38[2]); +_30.onSelect.call(_2f,_30.current); +}); +}; +$.fn.calendar=function(_39,_3a){ +if(typeof _39=="string"){ +return $.fn.calendar.methods[_39](this,_3a); +} +_39=_39||{}; +return this.each(function(){ +var _3b=$.data(this,"calendar"); +if(_3b){ +$.extend(_3b.options,_39); +}else{ +_3b=$.data(this,"calendar",{options:$.extend({},$.fn.calendar.defaults,$.fn.calendar.parseOptions(this),_39)}); +_5(this); +} +if(_3b.options.border==false){ +$(this).addClass("calendar-noborder"); +} +_1(this); +_d(this); +$(this).find("div.calendar-menu").hide(); +}); +}; +$.fn.calendar.methods={options:function(jq){ +return $.data(jq[0],"calendar").options; +},resize:function(jq){ +return jq.each(function(){ +_1(this); +}); +},moveTo:function(jq,_3c){ +return jq.each(function(){ +$(this).calendar({year:_3c.getFullYear(),month:_3c.getMonth()+1,current:_3c}); +}); +}}; +$.fn.calendar.parseOptions=function(_3d){ +var t=$(_3d); +return $.extend({},$.parser.parseOptions(_3d,["width","height",{firstDay:"number",fit:"boolean",border:"boolean"}])); +}; +$.fn.calendar.defaults={width:180,height:180,fit:false,border:true,firstDay:0,weeks:["S","M","T","W","T","F","S"],months:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],year:new Date().getFullYear(),month:new Date().getMonth()+1,current:new Date(),onSelect:function(_3e){ +}}; +})(jQuery); + diff --git a/src/main/webapp/js/easyui-1.3.5/plugins/jquery.combo.js b/src/main/webapp/js/easyui-1.3.5/plugins/jquery.combo.js new file mode 100644 index 00000000..50cd8780 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/plugins/jquery.combo.js @@ -0,0 +1,453 @@ +/** + * jQuery EasyUI 1.3.5 + * + * Copyright (c) 2009-2013 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL or commercial licenses + * To use it on other terms please contact us: info@jeasyui.com + * http://www.gnu.org/licenses/gpl.txt + * http://www.jeasyui.com/license_commercial.php + * + */ +(function($){ +function _1(_2,_3){ +var _4=$.data(_2,"combo"); +var _5=_4.options; +var _6=_4.combo; +var _7=_4.panel; +if(_3){ +_5.width=_3; +} +if(isNaN(_5.width)){ +var c=$(_2).clone(); +c.css("visibility","hidden"); +c.appendTo("body"); +_5.width=c.outerWidth(); +c.remove(); +} +_6.appendTo("body"); +var _8=_6.find("input.combo-text"); +var _9=_6.find(".combo-arrow"); +var _a=_5.hasDownArrow?_9._outerWidth():0; +_6._outerWidth(_5.width)._outerHeight(_5.height); +_8._outerWidth(_6.width()-_a); +_8.css({height:_6.height()+"px",lineHeight:_6.height()+"px"}); +_9._outerHeight(_6.height()); +_7.panel("resize",{width:(_5.panelWidth?_5.panelWidth:_6.outerWidth()),height:_5.panelHeight}); +_6.insertAfter(_2); +}; +function _b(_c){ +$(_c).addClass("combo-f").hide(); +var _d=$(""+""+""+""+"").insertAfter(_c); +var _e=$("
                      ").appendTo("body"); +_e.panel({doSize:false,closed:true,cls:"combo-p",style:{position:"absolute",zIndex:10},onOpen:function(){ +$(this).panel("resize"); +},onClose:function(){ +var _f=$.data(_c,"combo"); +if(_f){ +_f.options.onHidePanel.call(_c); +} +}}); +var _10=$(_c).attr("name"); +if(_10){ +_d.find("input.combo-value").attr("name",_10); +$(_c).removeAttr("name").attr("comboName",_10); +} +return {combo:_d,panel:_e}; +}; +function _11(_12){ +var _13=$.data(_12,"combo"); +var _14=_13.options; +var _15=_13.combo; +if(_14.hasDownArrow){ +_15.find(".combo-arrow").show(); +}else{ +_15.find(".combo-arrow").hide(); +} +_16(_12,_14.disabled); +_17(_12,_14.readonly); +}; +function _18(_19){ +var _1a=$.data(_19,"combo"); +var _1b=_1a.combo.find("input.combo-text"); +_1b.validatebox("destroy"); +_1a.panel.panel("destroy"); +_1a.combo.remove(); +$(_19).remove(); +}; +function _1c(_1d){ +$(_1d).find(".combo-f").each(function(){ +var p=$(this).combo("panel"); +if(p.is(":visible")){ +p.panel("close"); +} +}); +}; +function _1e(_1f){ +var _20=$.data(_1f,"combo"); +var _21=_20.options; +var _22=_20.panel; +var _23=_20.combo; +var _24=_23.find(".combo-text"); +var _25=_23.find(".combo-arrow"); +$(document).unbind(".combo").bind("mousedown.combo",function(e){ +var p=$(e.target).closest("span.combo,div.combo-p"); +if(p.length){ +_1c(p); +return; +} +$("body>div.combo-p>div.combo-panel:visible").panel("close"); +}); +_24.unbind(".combo"); +_25.unbind(".combo"); +if(!_21.disabled&&!_21.readonly){ +_24.bind("click.combo",function(e){ +if(!_21.editable){ +_26.call(this); +}else{ +var p=$(this).closest("div.combo-panel"); +$("div.combo-panel:visible").not(_22).not(p).panel("close"); +} +}).bind("keydown.combo",function(e){ +switch(e.keyCode){ +case 38: +_21.keyHandler.up.call(_1f,e); +break; +case 40: +_21.keyHandler.down.call(_1f,e); +break; +case 37: +_21.keyHandler.left.call(_1f,e); +break; +case 39: +_21.keyHandler.right.call(_1f,e); +break; +case 13: +e.preventDefault(); +_21.keyHandler.enter.call(_1f,e); +return false; +case 9: +case 27: +_27(_1f); +break; +default: +if(_21.editable){ +if(_20.timer){ +clearTimeout(_20.timer); +} +_20.timer=setTimeout(function(){ +var q=_24.val(); +if(_20.previousValue!=q){ +_20.previousValue=q; +$(_1f).combo("showPanel"); +_21.keyHandler.query.call(_1f,_24.val(),e); +$(_1f).combo("validate"); +} +},_21.delay); +} +} +}); +_25.bind("click.combo",function(){ +_26.call(this); +}).bind("mouseenter.combo",function(){ +$(this).addClass("combo-arrow-hover"); +}).bind("mouseleave.combo",function(){ +$(this).removeClass("combo-arrow-hover"); +}); +} +function _26(){ +if(_22.is(":visible")){ +_1c(_22); +_27(_1f); +}else{ +var p=$(this).closest("div.combo-panel"); +$("div.combo-panel:visible").not(_22).not(p).panel("close"); +$(_1f).combo("showPanel"); +} +_24.focus(); +}; +}; +function _28(_29){ +var _2a=$.data(_29,"combo").options; +var _2b=$.data(_29,"combo").combo; +var _2c=$.data(_29,"combo").panel; +if($.fn.window){ +_2c.panel("panel").css("z-index",$.fn.window.defaults.zIndex++); +} +_2c.panel("move",{left:_2b.offset().left,top:_2d()}); +if(_2c.panel("options").closed){ +_2c.panel("open"); +_2a.onShowPanel.call(_29); +} +(function(){ +if(_2c.is(":visible")){ +_2c.panel("move",{left:_2e(),top:_2d()}); +setTimeout(arguments.callee,200); +} +})(); +function _2e(){ +var _2f=_2b.offset().left; +if(_2f+_2c._outerWidth()>$(window)._outerWidth()+$(document).scrollLeft()){ +_2f=$(window)._outerWidth()+$(document).scrollLeft()-_2c._outerWidth(); +} +if(_2f<0){ +_2f=0; +} +return _2f; +}; +function _2d(){ +var top=_2b.offset().top+_2b._outerHeight(); +if(top+_2c._outerHeight()>$(window)._outerHeight()+$(document).scrollTop()){ +top=_2b.offset().top-_2c._outerHeight(); +} +if(top<$(document).scrollTop()){ +top=_2b.offset().top+_2b._outerHeight(); +} +return top; +}; +}; +function _27(_30){ +var _31=$.data(_30,"combo").panel; +_31.panel("close"); +}; +function _32(_33){ +var _34=$.data(_33,"combo").options; +var _35=$(_33).combo("textbox"); +_35.validatebox($.extend({},_34,{deltaX:(_34.hasDownArrow?_34.deltaX:(_34.deltaX>0?1:-1))})); +}; +function _16(_36,_37){ +var _38=$.data(_36,"combo"); +var _39=_38.options; +var _3a=_38.combo; +if(_37){ +_39.disabled=true; +$(_36).attr("disabled",true); +_3a.find(".combo-value").attr("disabled",true); +_3a.find(".combo-text").attr("disabled",true); +}else{ +_39.disabled=false; +$(_36).removeAttr("disabled"); +_3a.find(".combo-value").removeAttr("disabled"); +_3a.find(".combo-text").removeAttr("disabled"); +} +}; +function _17(_3b,_3c){ +var _3d=$.data(_3b,"combo"); +var _3e=_3d.options; +_3e.readonly=_3c==undefined?true:_3c; +var _3f=_3e.readonly?true:(!_3e.editable); +_3d.combo.find(".combo-text").attr("readonly",_3f).css("cursor",_3f?"pointer":""); +}; +function _40(_41){ +var _42=$.data(_41,"combo"); +var _43=_42.options; +var _44=_42.combo; +if(_43.multiple){ +_44.find("input.combo-value").remove(); +}else{ +_44.find("input.combo-value").val(""); +} +_44.find("input.combo-text").val(""); +}; +function _45(_46){ +var _47=$.data(_46,"combo").combo; +return _47.find("input.combo-text").val(); +}; +function _48(_49,_4a){ +var _4b=$.data(_49,"combo"); +var _4c=_4b.combo.find("input.combo-text"); +if(_4c.val()!=_4a){ +_4c.val(_4a); +$(_49).combo("validate"); +_4b.previousValue=_4a; +} +}; +function _4d(_4e){ +var _4f=[]; +var _50=$.data(_4e,"combo").combo; +_50.find("input.combo-value").each(function(){ +_4f.push($(this).val()); +}); +return _4f; +}; +function _51(_52,_53){ +var _54=$.data(_52,"combo").options; +var _55=_4d(_52); +var _56=$.data(_52,"combo").combo; +_56.find("input.combo-value").remove(); +var _57=$(_52).attr("comboName"); +for(var i=0;i<_53.length;i++){ +var _58=$("").appendTo(_56); +if(_57){ +_58.attr("name",_57); +} +_58.val(_53[i]); +} +var tmp=[]; +for(var i=0;i<_55.length;i++){ +tmp[i]=_55[i]; +} +var aa=[]; +for(var i=0;i<_53.length;i++){ +for(var j=0;j_10.height()){ +var h=_10.scrollTop()+_11.position().top+_11.outerHeight()-_10.height(); +_10.scrollTop(h); +} +} +} +}; +function nav(_12,dir){ +var _13=$.data(_12,"combobox").options; +var _14=$(_12).combobox("panel"); +var _15=_14.children("div.combobox-item-hover"); +if(!_15.length){ +_15=_14.children("div.combobox-item-selected"); +} +_15.removeClass("combobox-item-hover"); +var _16="div.combobox-item:visible:not(.combobox-item-disabled):first"; +var _17="div.combobox-item:visible:not(.combobox-item-disabled):last"; +if(!_15.length){ +_15=_14.children(dir=="next"?_16:_17); +}else{ +if(dir=="next"){ +_15=_15.nextAll(_16); +if(!_15.length){ +_15=_14.children(_16); +} +}else{ +_15=_15.prevAll(_16); +if(!_15.length){ +_15=_14.children(_17); +} +} +} +if(_15.length){ +_15.addClass("combobox-item-hover"); +var row=_1(_12,_15.attr("id"),"domId"); +if(row){ +_d(_12,row[_13.valueField]); +if(_13.selectOnNavigation){ +_18(_12,row[_13.valueField]); +} +} +} +}; +function _18(_19,_1a){ +var _1b=$.data(_19,"combobox").options; +var _1c=$(_19).combo("getValues"); +if($.inArray(_1a+"",_1c)==-1){ +if(_1b.multiple){ +_1c.push(_1a); +}else{ +_1c=[_1a]; +} +_1d(_19,_1c); +_1b.onSelect.call(_19,_1(_19,_1a)); +} +}; +function _1e(_1f,_20){ +var _21=$.data(_1f,"combobox").options; +var _22=$(_1f).combo("getValues"); +var _23=$.inArray(_20+"",_22); +if(_23>=0){ +_22.splice(_23,1); +_1d(_1f,_22); +_21.onUnselect.call(_1f,_1(_1f,_20)); +} +}; +function _1d(_24,_25,_26){ +var _27=$.data(_24,"combobox").options; +var _28=$(_24).combo("panel"); +_28.find("div.combobox-item-selected").removeClass("combobox-item-selected"); +var vv=[],ss=[]; +for(var i=0;i<_25.length;i++){ +var v=_25[i]; +var s=v; +var row=_1(_24,v); +if(row){ +s=row[_27.textField]; +$("#"+row.domId).addClass("combobox-item-selected"); +} +vv.push(v); +ss.push(s); +} +$(_24).combo("setValues",vv); +if(!_26){ +$(_24).combo("setText",ss.join(_27.separator)); +} +}; +var _29=1; +function _2a(_2b,_2c,_2d){ +var _2e=$.data(_2b,"combobox"); +var _2f=_2e.options; +_2e.data=_2f.loadFilter.call(_2b,_2c); +_2e.groups=[]; +_2c=_2e.data; +var _30=$(_2b).combobox("getValues"); +var dd=[]; +var _31=undefined; +for(var i=0;i<_2c.length;i++){ +var row=_2c[i]; +var v=row[_2f.valueField]+""; +var s=row[_2f.textField]; +var g=row[_2f.groupField]; +if(g){ +if(_31!=g){ +_31=g; +var _32={value:g,domId:("_easyui_combobox_"+_29++)}; +_2e.groups.push(_32); +dd.push("
                      "); +dd.push(_2f.groupFormatter?_2f.groupFormatter.call(_2b,g):g); +dd.push("
                      "); +} +}else{ +_31=undefined; +} +var cls="combobox-item"+(row.disabled?" combobox-item-disabled":"")+(g?" combobox-gitem":""); +row.domId="_easyui_combobox_"+_29++; +dd.push("
                      "); +dd.push(_2f.formatter?_2f.formatter.call(_2b,row):s); +dd.push("
                      "); +if(row["selected"]&&$.inArray(v,_30)==-1){ +_30.push(v); +} +} +$(_2b).combo("panel").html(dd.join("")); +if(_2f.multiple){ +_1d(_2b,_30,_2d); +}else{ +_1d(_2b,_30.length?[_30[_30.length-1]]:[],_2d); +} +_2f.onLoadSuccess.call(_2b,_2c); +}; +function _33(_34,url,_35,_36){ +var _37=$.data(_34,"combobox").options; +if(url){ +_37.url=url; +} +_35=_35||{}; +if(_37.onBeforeLoad.call(_34,_35)==false){ +return; +} +_37.loader.call(_34,_35,function(_38){ +_2a(_34,_38,_36); +},function(){ +_37.onLoadError.apply(this,arguments); +}); +}; +function _39(_3a,q){ +var _3b=$.data(_3a,"combobox"); +var _3c=_3b.options; +if(_3c.multiple&&!q){ +_1d(_3a,[],true); +}else{ +_1d(_3a,[q],true); +} +if(_3c.mode=="remote"){ +_33(_3a,null,{q:q},true); +}else{ +var _3d=$(_3a).combo("panel"); +_3d.find("div.combobox-item,div.combobox-group").hide(); +var _3e=_3b.data; +var _3f=undefined; +for(var i=0;i<_3e.length;i++){ +var row=_3e[i]; +if(_3c.filter.call(_3a,q,row)){ +var v=row[_3c.valueField]; +var s=row[_3c.textField]; +var g=row[_3c.groupField]; +var _40=$("#"+row.domId).show(); +if(s.toLowerCase()==q.toLowerCase()){ +_1d(_3a,[v]); +_40.addClass("combobox-item-selected"); +} +if(_3c.groupField&&_3f!=g){ +var _41=_1(_3a,g,"value",true); +if(_41){ +$("#"+_41.domId).show(); +} +_3f=g; +} +} +} +} +}; +function _42(_43){ +var t=$(_43); +var _44=t.combobox("options"); +var _45=t.combobox("panel"); +var _46=_45.children("div.combobox-item-hover"); +if(!_46.length){ +_46=_45.children("div.combobox-item-selected"); +} +if(!_46.length){ +return; +} +var row=_1(_43,_46.attr("id"),"domId"); +if(!row){ +return; +} +var _47=row[_44.valueField]; +if(_44.multiple){ +if(_46.hasClass("combobox-item-selected")){ +t.combobox("unselect",_47); +}else{ +t.combobox("select",_47); +} +}else{ +t.combobox("select",_47); +t.combobox("hidePanel"); +} +var vv=[]; +var _48=t.combobox("getValues"); +for(var i=0;i<_48.length;i++){ +if(_1(_43,_48[i])){ +vv.push(_48[i]); +} +} +t.combobox("setValues",vv); +}; +function _49(_4a){ +var _4b=$.data(_4a,"combobox").options; +$(_4a).addClass("combobox-f"); +$(_4a).combo($.extend({},_4b,{onShowPanel:function(){ +$(_4a).combo("panel").find("div.combobox-item,div.combobox-group").show(); +_d(_4a,$(_4a).combobox("getValue")); +_4b.onShowPanel.call(_4a); +}})); +$(_4a).combo("panel").unbind().bind("mouseover",function(e){ +$(this).children("div.combobox-item-hover").removeClass("combobox-item-hover"); +var _4c=$(e.target).closest("div.combobox-item"); +if(!_4c.hasClass("combobox-item-disabled")){ +_4c.addClass("combobox-item-hover"); +} +e.stopPropagation(); +}).bind("mouseout",function(e){ +$(e.target).closest("div.combobox-item").removeClass("combobox-item-hover"); +e.stopPropagation(); +}).bind("click",function(e){ +var _4d=$(e.target).closest("div.combobox-item"); +if(!_4d.length||_4d.hasClass("combobox-item-disabled")){ +return; +} +var row=_1(_4a,_4d.attr("id"),"domId"); +if(!row){ +return; +} +var _4e=row[_4b.valueField]; +if(_4b.multiple){ +if(_4d.hasClass("combobox-item-selected")){ +_1e(_4a,_4e); +}else{ +_18(_4a,_4e); +} +}else{ +_18(_4a,_4e); +$(_4a).combo("hidePanel"); +} +e.stopPropagation(); +}); +}; +$.fn.combobox=function(_4f,_50){ +if(typeof _4f=="string"){ +var _51=$.fn.combobox.methods[_4f]; +if(_51){ +return _51(this,_50); +}else{ +return this.combo(_4f,_50); +} +} +_4f=_4f||{}; +return this.each(function(){ +var _52=$.data(this,"combobox"); +if(_52){ +$.extend(_52.options,_4f); +_49(this); +}else{ +_52=$.data(this,"combobox",{options:$.extend({},$.fn.combobox.defaults,$.fn.combobox.parseOptions(this),_4f),data:[]}); +_49(this); +var _53=$.fn.combobox.parseData(this); +if(_53.length){ +_2a(this,_53); +} +} +if(_52.options.data){ +_2a(this,_52.options.data); +} +_33(this); +}); +}; +$.fn.combobox.methods={options:function(jq){ +var _54=jq.combo("options"); +return $.extend($.data(jq[0],"combobox").options,{originalValue:_54.originalValue,disabled:_54.disabled,readonly:_54.readonly}); +},getData:function(jq){ +return $.data(jq[0],"combobox").data; +},setValues:function(jq,_55){ +return jq.each(function(){ +_1d(this,_55); +}); +},setValue:function(jq,_56){ +return jq.each(function(){ +_1d(this,[_56]); +}); +},clear:function(jq){ +return jq.each(function(){ +$(this).combo("clear"); +var _57=$(this).combo("panel"); +_57.find("div.combobox-item-selected").removeClass("combobox-item-selected"); +}); +},reset:function(jq){ +return jq.each(function(){ +var _58=$(this).combobox("options"); +if(_58.multiple){ +$(this).combobox("setValues",_58.originalValue); +}else{ +$(this).combobox("setValue",_58.originalValue); +} +}); +},loadData:function(jq,_59){ +return jq.each(function(){ +_2a(this,_59); +}); +},reload:function(jq,url){ +return jq.each(function(){ +_33(this,url); +}); +},select:function(jq,_5a){ +return jq.each(function(){ +_18(this,_5a); +}); +},unselect:function(jq,_5b){ +return jq.each(function(){ +_1e(this,_5b); +}); +}}; +$.fn.combobox.parseOptions=function(_5c){ +var t=$(_5c); +return $.extend({},$.fn.combo.parseOptions(_5c),$.parser.parseOptions(_5c,["valueField","textField","groupField","mode","method","url"])); +}; +$.fn.combobox.parseData=function(_5d){ +var _5e=[]; +var _5f=$(_5d).combobox("options"); +$(_5d).children().each(function(){ +if(this.tagName.toLowerCase()=="optgroup"){ +var _60=$(this).attr("label"); +$(this).children().each(function(){ +_61(this,_60); +}); +}else{ +_61(this); +} +}); +return _5e; +function _61(el,_62){ +var t=$(el); +var row={}; +row[_5f.valueField]=t.attr("value")!=undefined?t.attr("value"):t.html(); +row[_5f.textField]=t.html(); +row["selected"]=t.is(":selected"); +row["disabled"]=t.is(":disabled"); +if(_62){ +_5f.groupField=_5f.groupField||"group"; +row[_5f.groupField]=_62; +} +_5e.push(row); +}; +}; +$.fn.combobox.defaults=$.extend({},$.fn.combo.defaults,{valueField:"value",textField:"text",groupField:null,groupFormatter:function(_63){ +return _63; +},mode:"local",method:"post",url:null,data:null,keyHandler:{up:function(e){ +nav(this,"prev"); +e.preventDefault(); +},down:function(e){ +nav(this,"next"); +e.preventDefault(); +},left:function(e){ +},right:function(e){ +},enter:function(e){ +_42(this); +},query:function(q,e){ +_39(this,q); +}},filter:function(q,row){ +var _64=$(this).combobox("options"); +return row[_64.textField].toLowerCase().indexOf(q.toLowerCase())==0; +},formatter:function(row){ +var _65=$(this).combobox("options"); +return row[_65.textField]; +},loader:function(_66,_67,_68){ +var _69=$(this).combobox("options"); +if(!_69.url){ +return false; +} +$.ajax({type:_69.method,url:_69.url,data:_66,dataType:"json",success:function(_6a){ +_67(_6a); +},error:function(){ +_68.apply(this,arguments); +}}); +},loadFilter:function(_6b){ +return _6b; +},onBeforeLoad:function(_6c){ +},onLoadSuccess:function(){ +},onLoadError:function(){ +},onSelect:function(_6d){ +},onUnselect:function(_6e){ +}}); +})(jQuery); + diff --git a/src/main/webapp/js/easyui-1.3.5/plugins/jquery.combogrid.js b/src/main/webapp/js/easyui-1.3.5/plugins/jquery.combogrid.js new file mode 100644 index 00000000..21290774 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/plugins/jquery.combogrid.js @@ -0,0 +1,253 @@ +/** + * jQuery EasyUI 1.3.5 + * + * Copyright (c) 2009-2013 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL or commercial licenses + * To use it on other terms please contact us: info@jeasyui.com + * http://www.gnu.org/licenses/gpl.txt + * http://www.jeasyui.com/license_commercial.php + * + */ +(function($){ +function _1(_2){ +var _3=$.data(_2,"combogrid"); +var _4=_3.options; +var _5=_3.grid; +$(_2).addClass("combogrid-f").combo(_4); +var _6=$(_2).combo("panel"); +if(!_5){ +_5=$("
                      ").appendTo(_6); +_3.grid=_5; +} +_5.datagrid($.extend({},_4,{border:false,fit:true,singleSelect:(!_4.multiple),onLoadSuccess:function(_7){ +var _8=$(_2).combo("getValues"); +var _9=_4.onSelect; +_4.onSelect=function(){ +}; +_1a(_2,_8,_3.remainText); +_4.onSelect=_9; +_4.onLoadSuccess.apply(_2,arguments); +},onClickRow:_a,onSelect:function(_b,_c){ +_d(); +_4.onSelect.call(this,_b,_c); +},onUnselect:function(_e,_f){ +_d(); +_4.onUnselect.call(this,_e,_f); +},onSelectAll:function(_10){ +_d(); +_4.onSelectAll.call(this,_10); +},onUnselectAll:function(_11){ +if(_4.multiple){ +_d(); +} +_4.onUnselectAll.call(this,_11); +}})); +function _a(_12,row){ +_3.remainText=false; +_d(); +if(!_4.multiple){ +$(_2).combo("hidePanel"); +} +_4.onClickRow.call(this,_12,row); +}; +function _d(){ +var _13=_5.datagrid("getSelections"); +var vv=[],ss=[]; +for(var i=0;i<_13.length;i++){ +vv.push(_13[i][_4.idField]); +ss.push(_13[i][_4.textField]); +} +if(!_4.multiple){ +$(_2).combo("setValues",(vv.length?vv:[""])); +}else{ +$(_2).combo("setValues",vv); +} +if(!_3.remainText){ +$(_2).combo("setText",ss.join(_4.separator)); +} +}; +}; +function nav(_14,dir){ +var _15=$.data(_14,"combogrid"); +var _16=_15.options; +var _17=_15.grid; +var _18=_17.datagrid("getRows").length; +if(!_18){ +return; +} +var tr=_16.finder.getTr(_17[0],null,"highlight"); +if(!tr.length){ +tr=_16.finder.getTr(_17[0],null,"selected"); +} +var _19; +if(!tr.length){ +_19=(dir=="next"?0:_18-1); +}else{ +var _19=parseInt(tr.attr("datagrid-row-index")); +_19+=(dir=="next"?1:-1); +if(_19<0){ +_19=_18-1; +} +if(_19>=_18){ +_19=0; +} +} +_17.datagrid("highlightRow",_19); +if(_16.selectOnNavigation){ +_15.remainText=false; +_17.datagrid("selectRow",_19); +} +}; +function _1a(_1b,_1c,_1d){ +var _1e=$.data(_1b,"combogrid"); +var _1f=_1e.options; +var _20=_1e.grid; +var _21=_20.datagrid("getRows"); +var ss=[]; +var _22=$(_1b).combo("getValues"); +var _23=$(_1b).combo("options"); +var _24=_23.onChange; +_23.onChange=function(){ +}; +_20.datagrid("clearSelections"); +for(var i=0;i<_1c.length;i++){ +var _25=_20.datagrid("getRowIndex",_1c[i]); +if(_25>=0){ +_20.datagrid("selectRow",_25); +ss.push(_21[_25][_1f.textField]); +}else{ +ss.push(_1c[i]); +} +} +$(_1b).combo("setValues",_22); +_23.onChange=_24; +$(_1b).combo("setValues",_1c); +if(!_1d){ +var s=ss.join(_1f.separator); +if($(_1b).combo("getText")!=s){ +$(_1b).combo("setText",s); +} +} +}; +function _26(_27,q){ +var _28=$.data(_27,"combogrid"); +var _29=_28.options; +var _2a=_28.grid; +_28.remainText=true; +if(_29.multiple&&!q){ +_1a(_27,[],true); +}else{ +_1a(_27,[q],true); +} +if(_29.mode=="remote"){ +_2a.datagrid("clearSelections"); +_2a.datagrid("load",$.extend({},_29.queryParams,{q:q})); +}else{ +if(!q){ +return; +} +var _2b=_2a.datagrid("getRows"); +for(var i=0;i<_2b.length;i++){ +if(_29.filter.call(_27,q,_2b[i])){ +_2a.datagrid("clearSelections"); +_2a.datagrid("selectRow",i); +return; +} +} +} +}; +function _2c(_2d){ +var _2e=$.data(_2d,"combogrid"); +var _2f=_2e.options; +var _30=_2e.grid; +var tr=_2f.finder.getTr(_30[0],null,"highlight"); +if(!tr.length){ +tr=_2f.finder.getTr(_30[0],null,"selected"); +} +if(!tr.length){ +return; +} +_2e.remainText=false; +var _31=parseInt(tr.attr("datagrid-row-index")); +if(_2f.multiple){ +if(tr.hasClass("datagrid-row-selected")){ +_30.datagrid("unselectRow",_31); +}else{ +_30.datagrid("selectRow",_31); +} +}else{ +_30.datagrid("selectRow",_31); +$(_2d).combogrid("hidePanel"); +} +}; +$.fn.combogrid=function(_32,_33){ +if(typeof _32=="string"){ +var _34=$.fn.combogrid.methods[_32]; +if(_34){ +return _34(this,_33); +}else{ +return this.combo(_32,_33); +} +} +_32=_32||{}; +return this.each(function(){ +var _35=$.data(this,"combogrid"); +if(_35){ +$.extend(_35.options,_32); +}else{ +_35=$.data(this,"combogrid",{options:$.extend({},$.fn.combogrid.defaults,$.fn.combogrid.parseOptions(this),_32)}); +} +_1(this); +}); +}; +$.fn.combogrid.methods={options:function(jq){ +var _36=jq.combo("options"); +return $.extend($.data(jq[0],"combogrid").options,{originalValue:_36.originalValue,disabled:_36.disabled,readonly:_36.readonly}); +},grid:function(jq){ +return $.data(jq[0],"combogrid").grid; +},setValues:function(jq,_37){ +return jq.each(function(){ +_1a(this,_37); +}); +},setValue:function(jq,_38){ +return jq.each(function(){ +_1a(this,[_38]); +}); +},clear:function(jq){ +return jq.each(function(){ +$(this).combogrid("grid").datagrid("clearSelections"); +$(this).combo("clear"); +}); +},reset:function(jq){ +return jq.each(function(){ +var _39=$(this).combogrid("options"); +if(_39.multiple){ +$(this).combogrid("setValues",_39.originalValue); +}else{ +$(this).combogrid("setValue",_39.originalValue); +} +}); +}}; +$.fn.combogrid.parseOptions=function(_3a){ +var t=$(_3a); +return $.extend({},$.fn.combo.parseOptions(_3a),$.fn.datagrid.parseOptions(_3a),$.parser.parseOptions(_3a,["idField","textField","mode"])); +}; +$.fn.combogrid.defaults=$.extend({},$.fn.combo.defaults,$.fn.datagrid.defaults,{loadMsg:null,idField:null,textField:null,mode:"local",keyHandler:{up:function(e){ +nav(this,"prev"); +e.preventDefault(); +},down:function(e){ +nav(this,"next"); +e.preventDefault(); +},left:function(e){ +},right:function(e){ +},enter:function(e){ +_2c(this); +},query:function(q,e){ +_26(this,q); +}},filter:function(q,row){ +var _3b=$(this).combogrid("options"); +return row[_3b.textField].indexOf(q)==0; +}}); +})(jQuery); + diff --git a/src/main/webapp/js/easyui-1.3.5/plugins/jquery.combotree.js b/src/main/webapp/js/easyui-1.3.5/plugins/jquery.combotree.js new file mode 100644 index 00000000..c31225ad --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/plugins/jquery.combotree.js @@ -0,0 +1,162 @@ +/** + * jQuery EasyUI 1.3.5 + * + * Copyright (c) 2009-2013 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL or commercial licenses + * To use it on other terms please contact us: info@jeasyui.com + * http://www.gnu.org/licenses/gpl.txt + * http://www.jeasyui.com/license_commercial.php + * + */ +(function($){ +function _1(_2){ +var _3=$.data(_2,"combotree").options; +var _4=$.data(_2,"combotree").tree; +$(_2).addClass("combotree-f"); +$(_2).combo(_3); +var _5=$(_2).combo("panel"); +if(!_4){ +_4=$("
                        ").appendTo(_5); +$.data(_2,"combotree").tree=_4; +} +_4.tree($.extend({},_3,{checkbox:_3.multiple,onLoadSuccess:function(_6,_7){ +var _8=$(_2).combotree("getValues"); +if(_3.multiple){ +var _9=_4.tree("getChecked"); +for(var i=0;i<_9.length;i++){ +var id=_9[i].id; +(function(){ +for(var i=0;i<_8.length;i++){ +if(id==_8[i]){ +return; +} +} +_8.push(id); +})(); +} +} +$(_2).combotree("setValues",_8); +_3.onLoadSuccess.call(this,_6,_7); +},onClick:function(_a){ +_d(_2); +$(_2).combo("hidePanel"); +_3.onClick.call(this,_a); +},onCheck:function(_b,_c){ +_d(_2); +_3.onCheck.call(this,_b,_c); +}})); +}; +function _d(_e){ +var _f=$.data(_e,"combotree").options; +var _10=$.data(_e,"combotree").tree; +var vv=[],ss=[]; +if(_f.multiple){ +var _11=_10.tree("getChecked"); +for(var i=0;i<_11.length;i++){ +vv.push(_11[i].id); +ss.push(_11[i].text); +} +}else{ +var _12=_10.tree("getSelected"); +if(_12){ +vv.push(_12.id); +ss.push(_12.text); +} +} +$(_e).combo("setValues",vv).combo("setText",ss.join(_f.separator)); +}; +function _13(_14,_15){ +var _16=$.data(_14,"combotree").options; +var _17=$.data(_14,"combotree").tree; +_17.find("span.tree-checkbox").addClass("tree-checkbox0").removeClass("tree-checkbox1 tree-checkbox2"); +var vv=[],ss=[]; +for(var i=0;i<_15.length;i++){ +var v=_15[i]; +var s=v; +var _18=_17.tree("find",v); +if(_18){ +s=_18.text; +_17.tree("check",_18.target); +_17.tree("select",_18.target); +} +vv.push(v); +ss.push(s); +} +$(_14).combo("setValues",vv).combo("setText",ss.join(_16.separator)); +}; +$.fn.combotree=function(_19,_1a){ +if(typeof _19=="string"){ +var _1b=$.fn.combotree.methods[_19]; +if(_1b){ +return _1b(this,_1a); +}else{ +return this.combo(_19,_1a); +} +} +_19=_19||{}; +return this.each(function(){ +var _1c=$.data(this,"combotree"); +if(_1c){ +$.extend(_1c.options,_19); +}else{ +$.data(this,"combotree",{options:$.extend({},$.fn.combotree.defaults,$.fn.combotree.parseOptions(this),_19)}); +} +_1(this); +}); +}; +$.fn.combotree.methods={options:function(jq){ +var _1d=jq.combo("options"); +return $.extend($.data(jq[0],"combotree").options,{originalValue:_1d.originalValue,disabled:_1d.disabled,readonly:_1d.readonly}); +},tree:function(jq){ +return $.data(jq[0],"combotree").tree; +},loadData:function(jq,_1e){ +return jq.each(function(){ +var _1f=$.data(this,"combotree").options; +_1f.data=_1e; +var _20=$.data(this,"combotree").tree; +_20.tree("loadData",_1e); +}); +},reload:function(jq,url){ +return jq.each(function(){ +var _21=$.data(this,"combotree").options; +var _22=$.data(this,"combotree").tree; +if(url){ +_21.url=url; +} +_22.tree({url:_21.url}); +}); +},setValues:function(jq,_23){ +return jq.each(function(){ +_13(this,_23); +}); +},setValue:function(jq,_24){ +return jq.each(function(){ +_13(this,[_24]); +}); +},clear:function(jq){ +return jq.each(function(){ +var _25=$.data(this,"combotree").tree; +_25.find("div.tree-node-selected").removeClass("tree-node-selected"); +var cc=_25.tree("getChecked"); +for(var i=0;i"]; +for(var i=0;i<_c.length;i++){ +_b.cache[_c[i][0]]={width:_c[i][1]}; +} +var _d=0; +for(var s in _b.cache){ +var _e=_b.cache[s]; +_e.index=_d++; +ss.push(s+"{width:"+_e.width+"}"); +} +ss.push(""); +$(ss.join("\n")).appendTo(cc); +setTimeout(function(){ +cc.children("style:not(:last)").remove(); +},0); +},getRule:function(_f){ +var _10=cc.children("style:last")[0]; +var _11=_10.styleSheet?_10.styleSheet:(_10.sheet||document.styleSheets[document.styleSheets.length-1]); +var _12=_11.cssRules||_11.rules; +return _12[_f]; +},set:function(_13,_14){ +var _15=_b.cache[_13]; +if(_15){ +_15.width=_14; +var _16=this.getRule(_15.index); +if(_16){ +_16.style["width"]=_14; +} +} +},remove:function(_17){ +var tmp=[]; +for(var s in _b.cache){ +if(s.indexOf(_17)==-1){ +tmp.push([s,_b.cache[s].width]); +} +} +_b.cache={}; +this.add(tmp); +},dirty:function(_18){ +if(_18){ +_b.dirty.push(_18); +} +},clean:function(){ +for(var i=0;i<_b.dirty.length;i++){ +this.remove(_b.dirty[i]); +} +_b.dirty=[]; +}}; +}; +function _19(_1a,_1b){ +var _1c=$.data(_1a,"datagrid").options; +var _1d=$.data(_1a,"datagrid").panel; +if(_1b){ +if(_1b.width){ +_1c.width=_1b.width; +} +if(_1b.height){ +_1c.height=_1b.height; +} +} +if(_1c.fit==true){ +var p=_1d.panel("panel").parent(); +_1c.width=p.width(); +_1c.height=p.height(); +} +_1d.panel("resize",{width:_1c.width,height:_1c.height}); +}; +function _1e(_1f){ +var _20=$.data(_1f,"datagrid").options; +var dc=$.data(_1f,"datagrid").dc; +var _21=$.data(_1f,"datagrid").panel; +var _22=_21.width(); +var _23=_21.height(); +var _24=dc.view; +var _25=dc.view1; +var _26=dc.view2; +var _27=_25.children("div.datagrid-header"); +var _28=_26.children("div.datagrid-header"); +var _29=_27.find("table"); +var _2a=_28.find("table"); +_24.width(_22); +var _2b=_27.children("div.datagrid-header-inner").show(); +_25.width(_2b.find("table").width()); +if(!_20.showHeader){ +_2b.hide(); +} +_26.width(_22-_25._outerWidth()); +_25.children("div.datagrid-header,div.datagrid-body,div.datagrid-footer").width(_25.width()); +_26.children("div.datagrid-header,div.datagrid-body,div.datagrid-footer").width(_26.width()); +var hh; +_27.css("height",""); +_28.css("height",""); +_29.css("height",""); +_2a.css("height",""); +hh=Math.max(_29.height(),_2a.height()); +_29.height(hh); +_2a.height(hh); +_27.add(_28)._outerHeight(hh); +if(_20.height!="auto"){ +var _2c=_23-_26.children("div.datagrid-header")._outerHeight()-_26.children("div.datagrid-footer")._outerHeight()-_21.children("div.datagrid-toolbar")._outerHeight(); +_21.children("div.datagrid-pager").each(function(){ +_2c-=$(this)._outerHeight(); +}); +dc.body1.add(dc.body2).children("table.datagrid-btable-frozen").css({position:"absolute",top:dc.header2._outerHeight()}); +var _2d=dc.body2.children("table.datagrid-btable-frozen")._outerHeight(); +_25.add(_26).children("div.datagrid-body").css({marginTop:_2d,height:(_2c-_2d)}); +} +_24.height(_26.height()); +}; +function _2e(_2f,_30,_31){ +var _32=$.data(_2f,"datagrid").data.rows; +var _33=$.data(_2f,"datagrid").options; +var dc=$.data(_2f,"datagrid").dc; +if(!dc.body1.is(":empty")&&(!_33.nowrap||_33.autoRowHeight||_31)){ +if(_30!=undefined){ +var tr1=_33.finder.getTr(_2f,_30,"body",1); +var tr2=_33.finder.getTr(_2f,_30,"body",2); +_34(tr1,tr2); +}else{ +var tr1=_33.finder.getTr(_2f,0,"allbody",1); +var tr2=_33.finder.getTr(_2f,0,"allbody",2); +_34(tr1,tr2); +if(_33.showFooter){ +var tr1=_33.finder.getTr(_2f,0,"allfooter",1); +var tr2=_33.finder.getTr(_2f,0,"allfooter",2); +_34(tr1,tr2); +} +} +} +_1e(_2f); +if(_33.height=="auto"){ +var _35=dc.body1.parent(); +var _36=dc.body2; +var _37=_38(_36); +var _39=_37.height; +if(_37.width>_36.width()){ +_39+=18; +} +_35.height(_39); +_36.height(_39); +dc.view.height(dc.view2.height()); +} +dc.body2.triggerHandler("scroll"); +function _34(_3a,_3b){ +for(var i=0;i<_3b.length;i++){ +var tr1=$(_3a[i]); +var tr2=$(_3b[i]); +tr1.css("height",""); +tr2.css("height",""); +var _3c=Math.max(tr1.height(),tr2.height()); +tr1.css("height",_3c); +tr2.css("height",_3c); +} +}; +function _38(cc){ +var _3d=0; +var _3e=0; +$(cc).children().each(function(){ +var c=$(this); +if(c.is(":visible")){ +_3e+=c._outerHeight(); +if(_3d"); +} +_44(true); +_44(false); +_1e(_40); +function _44(_45){ +var _46=_45?1:2; +var tr=_43.finder.getTr(_40,_41,"body",_46); +(_45?dc.body1:dc.body2).children("table.datagrid-btable-frozen").append(tr); +}; +}; +function _47(_48,_49){ +function _4a(){ +var _4b=[]; +var _4c=[]; +$(_48).children("thead").each(function(){ +var opt=$.parser.parseOptions(this,[{frozen:"boolean"}]); +$(this).find("tr").each(function(){ +var _4d=[]; +$(this).find("th").each(function(){ +var th=$(this); +var col=$.extend({},$.parser.parseOptions(this,["field","align","halign","order",{sortable:"boolean",checkbox:"boolean",resizable:"boolean",fixed:"boolean"},{rowspan:"number",colspan:"number",width:"number"}]),{title:(th.html()||undefined),hidden:(th.attr("hidden")?true:undefined),formatter:(th.attr("formatter")?eval(th.attr("formatter")):undefined),styler:(th.attr("styler")?eval(th.attr("styler")):undefined),sorter:(th.attr("sorter")?eval(th.attr("sorter")):undefined)}); +if(th.attr("editor")){ +var s=$.trim(th.attr("editor")); +if(s.substr(0,1)=="{"){ +col.editor=eval("("+s+")"); +}else{ +col.editor=s; +} +} +_4d.push(col); +}); +opt.frozen?_4b.push(_4d):_4c.push(_4d); +}); +}); +return [_4b,_4c]; +}; +var _4e=$("
                        "+"
                        "+"
                        "+"
                        "+"
                        "+"
                        "+"
                        "+"
                        "+"
                        "+"
                        "+""+"
                        "+"
                        "+"
                        "+"
                        "+"
                        "+"
                        "+"
                        "+"
                        "+""+"
                        "+"
                        "+"
                        "+"
                        ").insertAfter(_48); +_4e.panel({doSize:false}); +_4e.panel("panel").addClass("datagrid").bind("_resize",function(e,_4f){ +var _50=$.data(_48,"datagrid").options; +if(_50.fit==true||_4f){ +_19(_48); +setTimeout(function(){ +if($.data(_48,"datagrid")){ +_51(_48); +} +},0); +} +return false; +}); +$(_48).hide().appendTo(_4e.children("div.datagrid-view")); +var cc=_4a(); +var _52=_4e.children("div.datagrid-view"); +var _53=_52.children("div.datagrid-view1"); +var _54=_52.children("div.datagrid-view2"); +var _55=_4e.closest("div.datagrid-view"); +if(!_55.length){ +_55=_52; +} +var ss=_9(_55); +return {panel:_4e,frozenColumns:cc[0],columns:cc[1],dc:{view:_52,view1:_53,view2:_54,header1:_53.children("div.datagrid-header").children("div.datagrid-header-inner"),header2:_54.children("div.datagrid-header").children("div.datagrid-header-inner"),body1:_53.children("div.datagrid-body").children("div.datagrid-body-inner"),body2:_54.children("div.datagrid-body"),footer1:_53.children("div.datagrid-footer").children("div.datagrid-footer-inner"),footer2:_54.children("div.datagrid-footer").children("div.datagrid-footer-inner")},ss:ss}; +}; +function _56(_57){ +var _58=$.data(_57,"datagrid"); +var _59=_58.options; +var dc=_58.dc; +var _5a=_58.panel; +_5a.panel($.extend({},_59,{id:null,doSize:false,onResize:function(_5b,_5c){ +setTimeout(function(){ +if($.data(_57,"datagrid")){ +_1e(_57); +_8d(_57); +_59.onResize.call(_5a,_5b,_5c); +} +},0); +},onExpand:function(){ +_2e(_57); +_59.onExpand.call(_5a); +}})); +_58.rowIdPrefix="datagrid-row-r"+(++_1); +_58.cellClassPrefix="datagrid-cell-c"+_1; +_5d(dc.header1,_59.frozenColumns,true); +_5d(dc.header2,_59.columns,false); +_5e(); +dc.header1.add(dc.header2).css("display",_59.showHeader?"block":"none"); +dc.footer1.add(dc.footer2).css("display",_59.showFooter?"block":"none"); +if(_59.toolbar){ +if($.isArray(_59.toolbar)){ +$("div.datagrid-toolbar",_5a).remove(); +var tb=$("
                        ").prependTo(_5a); +var tr=tb.find("tr"); +for(var i=0;i<_59.toolbar.length;i++){ +var btn=_59.toolbar[i]; +if(btn=="-"){ +$("
                        ").appendTo(tr); +}else{ +var td=$("").appendTo(tr); +var _5f=$("").appendTo(td); +_5f[0].onclick=eval(btn.handler||function(){ +}); +_5f.linkbutton($.extend({},btn,{plain:true})); +} +} +}else{ +$(_59.toolbar).addClass("datagrid-toolbar").prependTo(_5a); +$(_59.toolbar).show(); +} +}else{ +$("div.datagrid-toolbar",_5a).remove(); +} +$("div.datagrid-pager",_5a).remove(); +if(_59.pagination){ +var _60=$("
                        "); +if(_59.pagePosition=="bottom"){ +_60.appendTo(_5a); +}else{ +if(_59.pagePosition=="top"){ +_60.addClass("datagrid-pager-top").prependTo(_5a); +}else{ +var _61=$("
                        ").prependTo(_5a); +_60.appendTo(_5a); +_60=_60.add(_61); +} +} +_60.pagination({total:(_59.pageNumber*_59.pageSize),pageNumber:_59.pageNumber,pageSize:_59.pageSize,pageList:_59.pageList,onSelectPage:function(_62,_63){ +_59.pageNumber=_62; +_59.pageSize=_63; +_60.pagination("refresh",{pageNumber:_62,pageSize:_63}); +_16b(_57); +}}); +_59.pageSize=_60.pagination("options").pageSize; +} +function _5d(_64,_65,_66){ +if(!_65){ +return; +} +$(_64).show(); +$(_64).empty(); +var _67=[]; +var _68=[]; +if(_59.sortName){ +_67=_59.sortName.split(","); +_68=_59.sortOrder.split(","); +} +var t=$("
                        ").appendTo(_64); +for(var i=0;i<_65.length;i++){ +var tr=$("").appendTo($("tbody",t)); +var _69=_65[i]; +for(var j=0;j<_69.length;j++){ +var col=_69[j]; +var _6a=""; +if(col.rowspan){ +_6a+="rowspan=\""+col.rowspan+"\" "; +} +if(col.colspan){ +_6a+="colspan=\""+col.colspan+"\" "; +} +var td=$("").appendTo(tr); +if(col.checkbox){ +td.attr("field",col.field); +$("
                        ").html("").appendTo(td); +}else{ +if(col.field){ +td.attr("field",col.field); +td.append("
                        "); +$("span",td).html(col.title); +$("span.datagrid-sort-icon",td).html(" "); +var _6b=td.find("div.datagrid-cell"); +var pos=_2(_67,col.field); +if(pos>=0){ +_6b.addClass("datagrid-sort-"+_68[pos]); +} +if(col.resizable==false){ +_6b.attr("resizable","false"); +} +if(col.width){ +_6b._outerWidth(col.width); +col.boxWidth=parseInt(_6b[0].style.width); +}else{ +col.auto=true; +} +_6b.css("text-align",(col.halign||col.align||"")); +col.cellClass=_58.cellClassPrefix+"-"+col.field.replace(/[\.|\s]/g,"-"); +_6b.addClass(col.cellClass).css("width",""); +}else{ +$("
                        ").html(col.title).appendTo(td); +} +} +if(col.hidden){ +td.hide(); +} +} +} +if(_66&&_59.rownumbers){ +var td=$("
                        "); +if($("tr",t).length==0){ +td.wrap("").parent().appendTo($("tbody",t)); +}else{ +td.prependTo($("tr:first",t)); +} +} +}; +function _5e(){ +var _6c=[]; +var _6d=_6e(_57,true).concat(_6e(_57)); +for(var i=0;i<_6d.length;i++){ +var col=_6f(_57,_6d[i]); +if(col&&!col.checkbox){ +_6c.push(["."+col.cellClass,col.boxWidth?col.boxWidth+"px":"auto"]); +} +} +_58.ss.add(_6c); +_58.ss.dirty(_58.cellSelectorPrefix); +_58.cellSelectorPrefix="."+_58.cellClassPrefix; +}; +}; +function _70(_71){ +var _72=$.data(_71,"datagrid"); +var _73=_72.panel; +var _74=_72.options; +var dc=_72.dc; +var _75=dc.header1.add(dc.header2); +_75.find("input[type=checkbox]").unbind(".datagrid").bind("click.datagrid",function(e){ +if(_74.singleSelect&&_74.selectOnCheck){ +return false; +} +if($(this).is(":checked")){ +_106(_71); +}else{ +_10c(_71); +} +e.stopPropagation(); +}); +var _76=_75.find("div.datagrid-cell"); +_76.closest("td").unbind(".datagrid").bind("mouseenter.datagrid",function(){ +if(_72.resizing){ +return; +} +$(this).addClass("datagrid-header-over"); +}).bind("mouseleave.datagrid",function(){ +$(this).removeClass("datagrid-header-over"); +}).bind("contextmenu.datagrid",function(e){ +var _77=$(this).attr("field"); +_74.onHeaderContextMenu.call(_71,e,_77); +}); +_76.unbind(".datagrid").bind("click.datagrid",function(e){ +var p1=$(this).offset().left+5; +var p2=$(this).offset().left+$(this)._outerWidth()-5; +if(e.pageXp1){ +var _78=$(this).parent().attr("field"); +var col=_6f(_71,_78); +if(!col.sortable||_72.resizing){ +return; +} +var _79=[]; +var _7a=[]; +if(_74.sortName){ +_79=_74.sortName.split(","); +_7a=_74.sortOrder.split(","); +} +var pos=_2(_79,_78); +var _7b=col.order||"asc"; +if(pos>=0){ +$(this).removeClass("datagrid-sort-asc datagrid-sort-desc"); +var _7c=_7a[pos]=="asc"?"desc":"asc"; +if(_74.multiSort&&_7c==_7b){ +_79.splice(pos,1); +_7a.splice(pos,1); +}else{ +_7a[pos]=_7c; +$(this).addClass("datagrid-sort-"+_7c); +} +}else{ +if(_74.multiSort){ +_79.push(_78); +_7a.push(_7b); +}else{ +_79=[_78]; +_7a=[_7b]; +_76.removeClass("datagrid-sort-asc datagrid-sort-desc"); +} +$(this).addClass("datagrid-sort-"+_7b); +} +_74.sortName=_79.join(","); +_74.sortOrder=_7a.join(","); +if(_74.remoteSort){ +_16b(_71); +}else{ +var _7d=$.data(_71,"datagrid").data; +_c6(_71,_7d); +} +_74.onSortColumn.call(_71,_74.sortName,_74.sortOrder); +} +}).bind("dblclick.datagrid",function(e){ +var p1=$(this).offset().left+5; +var p2=$(this).offset().left+$(this)._outerWidth()-5; +var _7e=_74.resizeHandle=="right"?(e.pageX>p2):(_74.resizeHandle=="left"?(e.pageXp2)); +if(_7e){ +var _7f=$(this).parent().attr("field"); +var col=_6f(_71,_7f); +if(col.resizable==false){ +return; +} +$(_71).datagrid("autoSizeColumn",_7f); +col.auto=false; +} +}); +var _80=_74.resizeHandle=="right"?"e":(_74.resizeHandle=="left"?"w":"e,w"); +_76.each(function(){ +$(this).resizable({handles:_80,disabled:($(this).attr("resizable")?$(this).attr("resizable")=="false":false),minWidth:25,onStartResize:function(e){ +_72.resizing=true; +_75.css("cursor",$("body").css("cursor")); +if(!_72.proxy){ +_72.proxy=$("
                        ").appendTo(dc.view); +} +_72.proxy.css({left:e.pageX-$(_73).offset().left-1,display:"none"}); +setTimeout(function(){ +if(_72.proxy){ +_72.proxy.show(); +} +},500); +},onResize:function(e){ +_72.proxy.css({left:e.pageX-$(_73).offset().left-1,display:"block"}); +return false; +},onStopResize:function(e){ +_75.css("cursor",""); +$(this).css("height",""); +$(this)._outerWidth($(this)._outerWidth()); +var _81=$(this).parent().attr("field"); +var col=_6f(_71,_81); +col.width=$(this)._outerWidth(); +col.boxWidth=parseInt(this.style.width); +col.auto=undefined; +$(this).css("width",""); +_51(_71,_81); +_72.proxy.remove(); +_72.proxy=null; +if($(this).parents("div:first.datagrid-header").parent().hasClass("datagrid-view1")){ +_1e(_71); +} +_8d(_71); +_74.onResizeColumn.call(_71,_81,col.width); +setTimeout(function(){ +_72.resizing=false; +},0); +}}); +}); +dc.body1.add(dc.body2).unbind().bind("mouseover",function(e){ +if(_72.resizing){ +return; +} +var tr=$(e.target).closest("tr.datagrid-row"); +if(!_82(tr)){ +return; +} +var _83=_84(tr); +_eb(_71,_83); +e.stopPropagation(); +}).bind("mouseout",function(e){ +var tr=$(e.target).closest("tr.datagrid-row"); +if(!_82(tr)){ +return; +} +var _85=_84(tr); +_74.finder.getTr(_71,_85).removeClass("datagrid-row-over"); +e.stopPropagation(); +}).bind("click",function(e){ +var tt=$(e.target); +var tr=tt.closest("tr.datagrid-row"); +if(!_82(tr)){ +return; +} +var _86=_84(tr); +if(tt.parent().hasClass("datagrid-cell-check")){ +if(_74.singleSelect&&_74.selectOnCheck){ +if(!_74.checkOnSelect){ +_10c(_71,true); +} +_f8(_71,_86); +}else{ +if(tt.is(":checked")){ +_f8(_71,_86); +}else{ +_100(_71,_86); +} +} +}else{ +var row=_74.finder.getRow(_71,_86); +var td=tt.closest("td[field]",tr); +if(td.length){ +var _87=td.attr("field"); +_74.onClickCell.call(_71,_86,_87,row[_87]); +} +if(_74.singleSelect==true){ +_f0(_71,_86); +}else{ +if(tr.hasClass("datagrid-row-selected")){ +_f9(_71,_86); +}else{ +_f0(_71,_86); +} +} +_74.onClickRow.call(_71,_86,row); +} +e.stopPropagation(); +}).bind("dblclick",function(e){ +var tt=$(e.target); +var tr=tt.closest("tr.datagrid-row"); +if(!_82(tr)){ +return; +} +var _88=_84(tr); +var row=_74.finder.getRow(_71,_88); +var td=tt.closest("td[field]",tr); +if(td.length){ +var _89=td.attr("field"); +_74.onDblClickCell.call(_71,_88,_89,row[_89]); +} +_74.onDblClickRow.call(_71,_88,row); +e.stopPropagation(); +}).bind("contextmenu",function(e){ +var tr=$(e.target).closest("tr.datagrid-row"); +if(!_82(tr)){ +return; +} +var _8a=_84(tr); +var row=_74.finder.getRow(_71,_8a); +_74.onRowContextMenu.call(_71,e,_8a,row); +e.stopPropagation(); +}); +dc.body2.bind("scroll",function(){ +var b1=dc.view1.children("div.datagrid-body"); +b1.scrollTop($(this).scrollTop()); +var c1=dc.body1.children(":first"); +var c2=dc.body2.children(":first"); +if(c1.length&&c2.length){ +var _8b=c1.offset().top; +var _8c=c2.offset().top; +if(_8b!=_8c){ +b1.scrollTop(b1.scrollTop()+_8b-_8c); +} +} +dc.view2.children("div.datagrid-header,div.datagrid-footer")._scrollLeft($(this)._scrollLeft()); +dc.body2.children("table.datagrid-btable-frozen").css("left",-$(this)._scrollLeft()); +}); +function _84(tr){ +if(tr.attr("datagrid-row-index")){ +return parseInt(tr.attr("datagrid-row-index")); +}else{ +return tr.attr("node-id"); +} +}; +function _82(tr){ +return tr.length&&tr.parent().length; +}; +}; +function _8d(_8e){ +var _8f=$.data(_8e,"datagrid"); +var _90=_8f.options; +var dc=_8f.dc; +dc.body2.css("overflow-x",_90.fitColumns?"hidden":""); +if(!_90.fitColumns){ +return; +} +if(!_8f.leftWidth){ +_8f.leftWidth=0; +} +var _91=dc.view2.children("div.datagrid-header"); +var _92=0; +var _93; +var _94=_6e(_8e,false); +for(var i=0;i<_94.length;i++){ +var col=_6f(_8e,_94[i]); +if(_95(col)){ +_92+=col.width; +_93=col; +} +} +if(!_92){ +return; +} +if(_93){ +_96(_93,-_8f.leftWidth); +} +var _97=_91.children("div.datagrid-header-inner").show(); +var _98=_91.width()-_91.find("table").width()-_90.scrollbarSize+_8f.leftWidth; +var _99=_98/_92; +if(!_90.showHeader){ +_97.hide(); +} +for(var i=0;i<_94.length;i++){ +var col=_6f(_8e,_94[i]); +if(_95(col)){ +var _9a=parseInt(col.width*_99); +_96(col,_9a); +_98-=_9a; +} +} +_8f.leftWidth=_98; +if(_93){ +_96(_93,_8f.leftWidth); +} +_51(_8e); +function _96(col,_9b){ +col.width+=_9b; +col.boxWidth+=_9b; +}; +function _95(col){ +if(!col.hidden&&!col.checkbox&&!col.auto&&!col.fixed){ +return true; +} +}; +}; +function _9c(_9d,_9e){ +var _9f=$.data(_9d,"datagrid"); +var _a0=_9f.options; +var dc=_9f.dc; +var tmp=$("
                        ").appendTo("body"); +if(_9e){ +_19(_9e); +if(_a0.fitColumns){ +_1e(_9d); +_8d(_9d); +} +}else{ +var _a1=false; +var _a2=_6e(_9d,true).concat(_6e(_9d,false)); +for(var i=0;i<_a2.length;i++){ +var _9e=_a2[i]; +var col=_6f(_9d,_9e); +if(col.auto){ +_19(_9e); +_a1=true; +} +} +if(_a1&&_a0.fitColumns){ +_1e(_9d); +_8d(_9d); +} +} +tmp.remove(); +function _19(_a3){ +var _a4=dc.view.find("div.datagrid-header td[field=\""+_a3+"\"] div.datagrid-cell"); +_a4.css("width",""); +var col=$(_9d).datagrid("getColumnOption",_a3); +col.width=undefined; +col.boxWidth=undefined; +col.auto=true; +$(_9d).datagrid("fixColumnSize",_a3); +var _a5=Math.max(_a6("header"),_a6("allbody"),_a6("allfooter")); +_a4._outerWidth(_a5); +col.width=_a5; +col.boxWidth=parseInt(_a4[0].style.width); +_a4.css("width",""); +$(_9d).datagrid("fixColumnSize",_a3); +_a0.onResizeColumn.call(_9d,_a3,col.width); +function _a6(_a7){ +var _a8=0; +if(_a7=="header"){ +_a8=_a9(_a4); +}else{ +_a0.finder.getTr(_9d,0,_a7).find("td[field=\""+_a3+"\"] div.datagrid-cell").each(function(){ +var w=_a9($(this)); +if(_a8b?1:-1); +}; +r=_cd(r1[sn],r2[sn])*(so=="asc"?1:-1); +if(r!=0){ +return r; +} +} +return r; +}); +} +if(_ca.view.onBeforeRender){ +_ca.view.onBeforeRender.call(_ca.view,_c7,_c8.rows); +} +_ca.view.render.call(_ca.view,_c7,dc.body2,false); +_ca.view.render.call(_ca.view,_c7,dc.body1,true); +if(_ca.showFooter){ +_ca.view.renderFooter.call(_ca.view,_c7,dc.footer2,false); +_ca.view.renderFooter.call(_ca.view,_c7,dc.footer1,true); +} +if(_ca.view.onAfterRender){ +_ca.view.onAfterRender.call(_ca.view,_c7); +} +_c9.ss.clean(); +_ca.onLoadSuccess.call(_c7,_c8); +var _ce=$(_c7).datagrid("getPager"); +if(_ce.length){ +var _cf=_ce.pagination("options"); +if(_cf.total!=_c8.total){ +_ce.pagination("refresh",{total:_c8.total}); +if(_ca.pageNumber!=_cf.pageNumber){ +_ca.pageNumber=_cf.pageNumber; +_16b(_c7); +} +} +} +_2e(_c7); +dc.body2.triggerHandler("scroll"); +_d0(); +$(_c7).datagrid("autoSizeColumn"); +function _d0(){ +if(_ca.idField){ +for(var i=0;i<_c8.rows.length;i++){ +var row=_c8.rows[i]; +if(_d1(_c9.selectedRows,row)){ +_ca.finder.getTr(_c7,i).addClass("datagrid-row-selected"); +} +if(_d1(_c9.checkedRows,row)){ +_ca.finder.getTr(_c7,i).find("div.datagrid-cell-check input[type=checkbox]")._propAttr("checked",true); +} +} +} +function _d1(a,r){ +for(var i=0;i_e9.height()-18){ +_e9.scrollTop(_e9.scrollTop()+top+tr._outerHeight()-_e9.height()+18); +} +} +} +}; +function _eb(_ec,_ed){ +var _ee=$.data(_ec,"datagrid"); +var _ef=_ee.options; +_ef.finder.getTr(_ec,_ee.highlightIndex).removeClass("datagrid-row-over"); +_ef.finder.getTr(_ec,_ed).addClass("datagrid-row-over"); +_ee.highlightIndex=_ed; +}; +function _f0(_f1,_f2,_f3){ +var _f4=$.data(_f1,"datagrid"); +var dc=_f4.dc; +var _f5=_f4.options; +var _f6=_f4.selectedRows; +if(_f5.singleSelect){ +_f7(_f1); +_f6.splice(0,_f6.length); +} +if(!_f3&&_f5.checkOnSelect){ +_f8(_f1,_f2,true); +} +var row=_f5.finder.getRow(_f1,_f2); +if(_f5.idField){ +_7(_f6,_f5.idField,row); +} +_f5.finder.getTr(_f1,_f2).addClass("datagrid-row-selected"); +_f5.onSelect.call(_f1,_f2,row); +_e3(_f1,_f2); +}; +function _f9(_fa,_fb,_fc){ +var _fd=$.data(_fa,"datagrid"); +var dc=_fd.dc; +var _fe=_fd.options; +var _ff=$.data(_fa,"datagrid").selectedRows; +if(!_fc&&_fe.checkOnSelect){ +_100(_fa,_fb,true); +} +_fe.finder.getTr(_fa,_fb).removeClass("datagrid-row-selected"); +var row=_fe.finder.getRow(_fa,_fb); +if(_fe.idField){ +_4(_ff,_fe.idField,row[_fe.idField]); +} +_fe.onUnselect.call(_fa,_fb,row); +}; +function _101(_102,_103){ +var _104=$.data(_102,"datagrid"); +var opts=_104.options; +var rows=_104.data.rows; +var _105=$.data(_102,"datagrid").selectedRows; +if(!_103&&opts.checkOnSelect){ +_106(_102,true); +} +opts.finder.getTr(_102,"","allbody").addClass("datagrid-row-selected"); +if(opts.idField){ +for(var _107=0;_107"); +cell.children("table").bind("click dblclick contextmenu",function(e){ +e.stopPropagation(); +}); +$.data(cell[0],"datagrid.editor",{actions:_13c,target:_13c.init(cell.find("td"),_13b),field:_139,type:_13a,oldHtml:_13d}); +} +} +}); +_2e(_137,_138,true); +}; +function _12e(_13f,_140){ +var opts=$.data(_13f,"datagrid").options; +var tr=opts.finder.getTr(_13f,_140); +tr.children("td").each(function(){ +var cell=$(this).find("div.datagrid-editable"); +if(cell.length){ +var ed=$.data(cell[0],"datagrid.editor"); +if(ed.actions.destroy){ +ed.actions.destroy(ed.target); +} +cell.html(ed.oldHtml); +$.removeData(cell[0],"datagrid.editor"); +cell.removeClass("datagrid-editable"); +cell.css("width",""); +} +}); +}; +function _123(_141,_142){ +var tr=$.data(_141,"datagrid").options.finder.getTr(_141,_142); +if(!tr.hasClass("datagrid-row-editing")){ +return true; +} +var vbox=tr.find(".validatebox-text"); +vbox.validatebox("validate"); +vbox.trigger("mouseleave"); +var _143=tr.find(".validatebox-invalid"); +return _143.length==0; +}; +function _144(_145,_146){ +var _147=$.data(_145,"datagrid").insertedRows; +var _148=$.data(_145,"datagrid").deletedRows; +var _149=$.data(_145,"datagrid").updatedRows; +if(!_146){ +var rows=[]; +rows=rows.concat(_147); +rows=rows.concat(_148); +rows=rows.concat(_149); +return rows; +}else{ +if(_146=="inserted"){ +return _147; +}else{ +if(_146=="deleted"){ +return _148; +}else{ +if(_146=="updated"){ +return _149; +} +} +} +} +return []; +}; +function _14a(_14b,_14c){ +var _14d=$.data(_14b,"datagrid"); +var opts=_14d.options; +var data=_14d.data; +var _14e=_14d.insertedRows; +var _14f=_14d.deletedRows; +$(_14b).datagrid("cancelEdit",_14c); +var row=data.rows[_14c]; +if(_2(_14e,row)>=0){ +_4(_14e,row); +}else{ +_14f.push(row); +} +_4(_14d.selectedRows,opts.idField,data.rows[_14c][opts.idField]); +_4(_14d.checkedRows,opts.idField,data.rows[_14c][opts.idField]); +opts.view.deleteRow.call(opts.view,_14b,_14c); +if(opts.height=="auto"){ +_2e(_14b); +} +$(_14b).datagrid("getPager").pagination("refresh",{total:data.total}); +}; +function _150(_151,_152){ +var data=$.data(_151,"datagrid").data; +var view=$.data(_151,"datagrid").options.view; +var _153=$.data(_151,"datagrid").insertedRows; +view.insertRow.call(view,_151,_152.index,_152.row); +_153.push(_152.row); +$(_151).datagrid("getPager").pagination("refresh",{total:data.total}); +}; +function _154(_155,row){ +var data=$.data(_155,"datagrid").data; +var view=$.data(_155,"datagrid").options.view; +var _156=$.data(_155,"datagrid").insertedRows; +view.insertRow.call(view,_155,null,row); +_156.push(row); +$(_155).datagrid("getPager").pagination("refresh",{total:data.total}); +}; +function _157(_158){ +var _159=$.data(_158,"datagrid"); +var data=_159.data; +var rows=data.rows; +var _15a=[]; +for(var i=0;i=0){ +(_167=="s"?_f0:_f8)(_15e,_168,true); +} +} +}; +for(var i=0;i0){ +_c6(this,data); +_157(this); +} +} +_19(this); +_16b(this); +_70(this); +}); +}; +var _179={text:{init:function(_17a,_17b){ +var _17c=$("").appendTo(_17a); +return _17c; +},getValue:function(_17d){ +return $(_17d).val(); +},setValue:function(_17e,_17f){ +$(_17e).val(_17f); +},resize:function(_180,_181){ +$(_180)._outerWidth(_181)._outerHeight(22); +}},textarea:{init:function(_182,_183){ +var _184=$("").appendTo(_182); +return _184; +},getValue:function(_185){ +return $(_185).val(); +},setValue:function(_186,_187){ +$(_186).val(_187); +},resize:function(_188,_189){ +$(_188)._outerWidth(_189); +}},checkbox:{init:function(_18a,_18b){ +var _18c=$("").appendTo(_18a); +_18c.val(_18b.on); +_18c.attr("offval",_18b.off); +return _18c; +},getValue:function(_18d){ +if($(_18d).is(":checked")){ +return $(_18d).val(); +}else{ +return $(_18d).attr("offval"); +} +},setValue:function(_18e,_18f){ +var _190=false; +if($(_18e).val()==_18f){ +_190=true; +} +$(_18e)._propAttr("checked",_190); +}},numberbox:{init:function(_191,_192){ +var _193=$("").appendTo(_191); +_193.numberbox(_192); +return _193; +},destroy:function(_194){ +$(_194).numberbox("destroy"); +},getValue:function(_195){ +$(_195).blur(); +return $(_195).numberbox("getValue"); +},setValue:function(_196,_197){ +$(_196).numberbox("setValue",_197); +},resize:function(_198,_199){ +$(_198)._outerWidth(_199)._outerHeight(22); +}},validatebox:{init:function(_19a,_19b){ +var _19c=$("").appendTo(_19a); +_19c.validatebox(_19b); +return _19c; +},destroy:function(_19d){ +$(_19d).validatebox("destroy"); +},getValue:function(_19e){ +return $(_19e).val(); +},setValue:function(_19f,_1a0){ +$(_19f).val(_1a0); +},resize:function(_1a1,_1a2){ +$(_1a1)._outerWidth(_1a2)._outerHeight(22); +}},datebox:{init:function(_1a3,_1a4){ +var _1a5=$("").appendTo(_1a3); +_1a5.datebox(_1a4); +return _1a5; +},destroy:function(_1a6){ +$(_1a6).datebox("destroy"); +},getValue:function(_1a7){ +return $(_1a7).datebox("getValue"); +},setValue:function(_1a8,_1a9){ +$(_1a8).datebox("setValue",_1a9); +},resize:function(_1aa,_1ab){ +$(_1aa).datebox("resize",_1ab); +}},combobox:{init:function(_1ac,_1ad){ +var _1ae=$("").appendTo(_1ac); +_1ae.combobox(_1ad||{}); +return _1ae; +},destroy:function(_1af){ +$(_1af).combobox("destroy"); +},getValue:function(_1b0){ +var opts=$(_1b0).combobox("options"); +if(opts.multiple){ +return $(_1b0).combobox("getValues").join(opts.separator); +}else{ +return $(_1b0).combobox("getValue"); +} +},setValue:function(_1b1,_1b2){ +var opts=$(_1b1).combobox("options"); +if(opts.multiple){ +if(_1b2){ +$(_1b1).combobox("setValues",_1b2.split(opts.separator)); +}else{ +$(_1b1).combobox("clear"); +} +}else{ +$(_1b1).combobox("setValue",_1b2); +} +},resize:function(_1b3,_1b4){ +$(_1b3).combobox("resize",_1b4); +}},combotree:{init:function(_1b5,_1b6){ +var _1b7=$("").appendTo(_1b5); +_1b7.combotree(_1b6); +return _1b7; +},destroy:function(_1b8){ +$(_1b8).combotree("destroy"); +},getValue:function(_1b9){ +return $(_1b9).combotree("getValue"); +},setValue:function(_1ba,_1bb){ +$(_1ba).combotree("setValue",_1bb); +},resize:function(_1bc,_1bd){ +$(_1bc).combotree("resize",_1bd); +}}}; +$.fn.datagrid.methods={options:function(jq){ +var _1be=$.data(jq[0],"datagrid").options; +var _1bf=$.data(jq[0],"datagrid").panel.panel("options"); +var opts=$.extend(_1be,{width:_1bf.width,height:_1bf.height,closed:_1bf.closed,collapsed:_1bf.collapsed,minimized:_1bf.minimized,maximized:_1bf.maximized}); +return opts; +},getPanel:function(jq){ +return $.data(jq[0],"datagrid").panel; +},getPager:function(jq){ +return $.data(jq[0],"datagrid").panel.children("div.datagrid-pager"); +},getColumnFields:function(jq,_1c0){ +return _6e(jq[0],_1c0); +},getColumnOption:function(jq,_1c1){ +return _6f(jq[0],_1c1); +},resize:function(jq,_1c2){ +return jq.each(function(){ +_19(this,_1c2); +}); +},load:function(jq,_1c3){ +return jq.each(function(){ +var opts=$(this).datagrid("options"); +opts.pageNumber=1; +var _1c4=$(this).datagrid("getPager"); +_1c4.pagination("refresh",{pageNumber:1}); +_16b(this,_1c3); +}); +},reload:function(jq,_1c5){ +return jq.each(function(){ +_16b(this,_1c5); +}); +},reloadFooter:function(jq,_1c6){ +return jq.each(function(){ +var opts=$.data(this,"datagrid").options; +var dc=$.data(this,"datagrid").dc; +if(_1c6){ +$.data(this,"datagrid").footer=_1c6; +} +if(opts.showFooter){ +opts.view.renderFooter.call(opts.view,this,dc.footer2,false); +opts.view.renderFooter.call(opts.view,this,dc.footer1,true); +if(opts.view.onAfterRender){ +opts.view.onAfterRender.call(opts.view,this); +} +$(this).datagrid("fixRowHeight"); +} +}); +},loading:function(jq){ +return jq.each(function(){ +var opts=$.data(this,"datagrid").options; +$(this).datagrid("getPager").pagination("loading"); +if(opts.loadMsg){ +var _1c7=$(this).datagrid("getPanel"); +if(!_1c7.children("div.datagrid-mask").length){ +$("
                        ").appendTo(_1c7); +var msg=$("
                        ").html(opts.loadMsg).appendTo(_1c7); +msg._outerHeight(40); +msg.css({marginLeft:(-msg.outerWidth()/2),lineHeight:(msg.height()+"px")}); +} +} +}); +},loaded:function(jq){ +return jq.each(function(){ +$(this).datagrid("getPager").pagination("loaded"); +var _1c8=$(this).datagrid("getPanel"); +_1c8.children("div.datagrid-mask-msg").remove(); +_1c8.children("div.datagrid-mask").remove(); +}); +},fitColumns:function(jq){ +return jq.each(function(){ +_8d(this); +}); +},fixColumnSize:function(jq,_1c9){ +return jq.each(function(){ +_51(this,_1c9); +}); +},fixRowHeight:function(jq,_1ca){ +return jq.each(function(){ +_2e(this,_1ca); +}); +},freezeRow:function(jq,_1cb){ +return jq.each(function(){ +_3f(this,_1cb); +}); +},autoSizeColumn:function(jq,_1cc){ +return jq.each(function(){ +_9c(this,_1cc); +}); +},loadData:function(jq,data){ +return jq.each(function(){ +_c6(this,data); +_157(this); +}); +},getData:function(jq){ +return $.data(jq[0],"datagrid").data; +},getRows:function(jq){ +return $.data(jq[0],"datagrid").data.rows; +},getFooterRows:function(jq){ +return $.data(jq[0],"datagrid").footer; +},getRowIndex:function(jq,id){ +return _d2(jq[0],id); +},getChecked:function(jq){ +return _de(jq[0]); +},getSelected:function(jq){ +var rows=_d7(jq[0]); +return rows.length>0?rows[0]:null; +},getSelections:function(jq){ +return _d7(jq[0]); +},clearSelections:function(jq){ +return jq.each(function(){ +var _1cd=$.data(this,"datagrid").selectedRows; +_1cd.splice(0,_1cd.length); +_f7(this); +}); +},clearChecked:function(jq){ +return jq.each(function(){ +var _1ce=$.data(this,"datagrid").checkedRows; +_1ce.splice(0,_1ce.length); +_10c(this); +}); +},scrollTo:function(jq,_1cf){ +return jq.each(function(){ +_e3(this,_1cf); +}); +},highlightRow:function(jq,_1d0){ +return jq.each(function(){ +_eb(this,_1d0); +_e3(this,_1d0); +}); +},selectAll:function(jq){ +return jq.each(function(){ +_101(this); +}); +},unselectAll:function(jq){ +return jq.each(function(){ +_f7(this); +}); +},selectRow:function(jq,_1d1){ +return jq.each(function(){ +_f0(this,_1d1); +}); +},selectRecord:function(jq,id){ +return jq.each(function(){ +var opts=$.data(this,"datagrid").options; +if(opts.idField){ +var _1d2=_d2(this,id); +if(_1d2>=0){ +$(this).datagrid("selectRow",_1d2); +} +} +}); +},unselectRow:function(jq,_1d3){ +return jq.each(function(){ +_f9(this,_1d3); +}); +},checkRow:function(jq,_1d4){ +return jq.each(function(){ +_f8(this,_1d4); +}); +},uncheckRow:function(jq,_1d5){ +return jq.each(function(){ +_100(this,_1d5); +}); +},checkAll:function(jq){ +return jq.each(function(){ +_106(this); +}); +},uncheckAll:function(jq){ +return jq.each(function(){ +_10c(this); +}); +},beginEdit:function(jq,_1d6){ +return jq.each(function(){ +_11e(this,_1d6); +}); +},endEdit:function(jq,_1d7){ +return jq.each(function(){ +_124(this,_1d7,false); +}); +},cancelEdit:function(jq,_1d8){ +return jq.each(function(){ +_124(this,_1d8,true); +}); +},getEditors:function(jq,_1d9){ +return _12f(jq[0],_1d9); +},getEditor:function(jq,_1da){ +return _133(jq[0],_1da); +},refreshRow:function(jq,_1db){ +return jq.each(function(){ +var opts=$.data(this,"datagrid").options; +opts.view.refreshRow.call(opts.view,this,_1db); +}); +},validateRow:function(jq,_1dc){ +return _123(jq[0],_1dc); +},updateRow:function(jq,_1dd){ +return jq.each(function(){ +var opts=$.data(this,"datagrid").options; +opts.view.updateRow.call(opts.view,this,_1dd.index,_1dd.row); +}); +},appendRow:function(jq,row){ +return jq.each(function(){ +_154(this,row); +}); +},insertRow:function(jq,_1de){ +return jq.each(function(){ +_150(this,_1de); +}); +},deleteRow:function(jq,_1df){ +return jq.each(function(){ +_14a(this,_1df); +}); +},getChanges:function(jq,_1e0){ +return _144(jq[0],_1e0); +},acceptChanges:function(jq){ +return jq.each(function(){ +_15b(this); +}); +},rejectChanges:function(jq){ +return jq.each(function(){ +_15d(this); +}); +},mergeCells:function(jq,_1e1){ +return jq.each(function(){ +_171(this,_1e1); +}); +},showColumn:function(jq,_1e2){ +return jq.each(function(){ +var _1e3=$(this).datagrid("getPanel"); +_1e3.find("td[field=\""+_1e2+"\"]").show(); +$(this).datagrid("getColumnOption",_1e2).hidden=false; +$(this).datagrid("fitColumns"); +}); +},hideColumn:function(jq,_1e4){ +return jq.each(function(){ +var _1e5=$(this).datagrid("getPanel"); +_1e5.find("td[field=\""+_1e4+"\"]").hide(); +$(this).datagrid("getColumnOption",_1e4).hidden=true; +$(this).datagrid("fitColumns"); +}); +}}; +$.fn.datagrid.parseOptions=function(_1e6){ +var t=$(_1e6); +return $.extend({},$.fn.panel.parseOptions(_1e6),$.parser.parseOptions(_1e6,["url","toolbar","idField","sortName","sortOrder","pagePosition","resizeHandle",{fitColumns:"boolean",autoRowHeight:"boolean",striped:"boolean",nowrap:"boolean"},{rownumbers:"boolean",singleSelect:"boolean",checkOnSelect:"boolean",selectOnCheck:"boolean"},{pagination:"boolean",pageSize:"number",pageNumber:"number"},{multiSort:"boolean",remoteSort:"boolean",showHeader:"boolean",showFooter:"boolean"},{scrollbarSize:"number"}]),{pageList:(t.attr("pageList")?eval(t.attr("pageList")):undefined),loadMsg:(t.attr("loadMsg")!=undefined?t.attr("loadMsg"):undefined),rowStyler:(t.attr("rowStyler")?eval(t.attr("rowStyler")):undefined)}); +}; +$.fn.datagrid.parseData=function(_1e7){ +var t=$(_1e7); +var data={total:0,rows:[]}; +var _1e8=t.datagrid("getColumnFields",true).concat(t.datagrid("getColumnFields",false)); +t.find("tbody tr").each(function(){ +data.total++; +var row={}; +$.extend(row,$.parser.parseOptions(this,["iconCls","state"])); +for(var i=0;i<_1e8.length;i++){ +row[_1e8[i]]=$(this).find("td:eq("+i+")").html(); +} +data.rows.push(row); +}); +return data; +}; +var _1e9={render:function(_1ea,_1eb,_1ec){ +var _1ed=$.data(_1ea,"datagrid"); +var opts=_1ed.options; +var rows=_1ed.data.rows; +var _1ee=$(_1ea).datagrid("getColumnFields",_1ec); +if(_1ec){ +if(!(opts.rownumbers||(opts.frozenColumns&&opts.frozenColumns.length))){ +return; +} +} +var _1ef=[""]; +for(var i=0;i"); +_1ef.push(this.renderRow.call(this,_1ea,_1ee,_1ec,i,rows[i])); +_1ef.push(""); +} +_1ef.push("
                        "); +$(_1eb).html(_1ef.join("")); +},renderFooter:function(_1f4,_1f5,_1f6){ +var opts=$.data(_1f4,"datagrid").options; +var rows=$.data(_1f4,"datagrid").footer||[]; +var _1f7=$(_1f4).datagrid("getColumnFields",_1f6); +var _1f8=[""]; +for(var i=0;i"); +_1f8.push(this.renderRow.call(this,_1f4,_1f7,_1f6,i,rows[i])); +_1f8.push(""); +} +_1f8.push("
                        "); +$(_1f5).html(_1f8.join("")); +},renderRow:function(_1f9,_1fa,_1fb,_1fc,_1fd){ +var opts=$.data(_1f9,"datagrid").options; +var cc=[]; +if(_1fb&&opts.rownumbers){ +var _1fe=_1fc+1; +if(opts.pagination){ +_1fe+=(opts.pageNumber-1)*opts.pageSize; +} +cc.push("
                        "+_1fe+"
                        "); +} +for(var i=0;i<_1fa.length;i++){ +var _1ff=_1fa[i]; +var col=$(_1f9).datagrid("getColumnOption",_1ff); +if(col){ +var _200=_1fd[_1ff]; +var css=col.styler?(col.styler(_200,_1fd,_1fc)||""):""; +var _201=""; +var _202=""; +if(typeof css=="string"){ +_202=css; +}else{ +if(cc){ +_201=css["class"]||""; +_202=css["style"]||""; +} +} +var cls=_201?"class=\""+_201+"\"":""; +var _203=col.hidden?"style=\"display:none;"+_202+"\"":(_202?"style=\""+_202+"\"":""); +cc.push(""); +if(col.checkbox){ +var _203=""; +}else{ +var _203=_202; +if(col.align){ +_203+=";text-align:"+col.align+";"; +} +if(!opts.nowrap){ +_203+=";white-space:normal;height:auto;"; +}else{ +if(opts.autoRowHeight){ +_203+=";height:auto;"; +} +} +} +cc.push("
                        "); +if(col.checkbox){ +cc.push(""); +}else{ +if(col.formatter){ +cc.push(col.formatter(_200,_1fd,_1fc)); +}else{ +cc.push(_200); +} +} +cc.push("
                        "); +cc.push(""); +} +} +return cc.join(""); +},refreshRow:function(_204,_205){ +this.updateRow.call(this,_204,_205,{}); +},updateRow:function(_206,_207,row){ +var opts=$.data(_206,"datagrid").options; +var rows=$(_206).datagrid("getRows"); +$.extend(rows[_207],row); +var css=opts.rowStyler?opts.rowStyler.call(_206,_207,rows[_207]):""; +var _208=""; +var _209=""; +if(typeof css=="string"){ +_209=css; +}else{ +if(css){ +_208=css["class"]||""; +_209=css["style"]||""; +} +} +var _208="datagrid-row "+(_207%2&&opts.striped?"datagrid-row-alt ":" ")+_208; +function _20a(_20b){ +var _20c=$(_206).datagrid("getColumnFields",_20b); +var tr=opts.finder.getTr(_206,_207,"body",(_20b?1:2)); +var _20d=tr.find("div.datagrid-cell-check input[type=checkbox]").is(":checked"); +tr.html(this.renderRow.call(this,_206,_20c,_20b,_207,rows[_207])); +tr.attr("style",_209).attr("class",tr.hasClass("datagrid-row-selected")?_208+" datagrid-row-selected":_208); +if(_20d){ +tr.find("div.datagrid-cell-check input[type=checkbox]")._propAttr("checked",true); +} +}; +_20a.call(this,true); +_20a.call(this,false); +$(_206).datagrid("fixRowHeight",_207); +},insertRow:function(_20e,_20f,row){ +var _210=$.data(_20e,"datagrid"); +var opts=_210.options; +var dc=_210.dc; +var data=_210.data; +if(_20f==undefined||_20f==null){ +_20f=data.rows.length; +} +if(_20f>data.rows.length){ +_20f=data.rows.length; +} +function _211(_212){ +var _213=_212?1:2; +for(var i=data.rows.length-1;i>=_20f;i--){ +var tr=opts.finder.getTr(_20e,i,"body",_213); +tr.attr("datagrid-row-index",i+1); +tr.attr("id",_210.rowIdPrefix+"-"+_213+"-"+(i+1)); +if(_212&&opts.rownumbers){ +var _214=i+2; +if(opts.pagination){ +_214+=(opts.pageNumber-1)*opts.pageSize; +} +tr.find("div.datagrid-cell-rownumber").html(_214); +} +if(opts.striped){ +tr.removeClass("datagrid-row-alt").addClass((i+1)%2?"datagrid-row-alt":""); +} +} +}; +function _215(_216){ +var _217=_216?1:2; +var _218=$(_20e).datagrid("getColumnFields",_216); +var _219=_210.rowIdPrefix+"-"+_217+"-"+_20f; +var tr=""; +if(_20f>=data.rows.length){ +if(data.rows.length){ +opts.finder.getTr(_20e,"","last",_217).after(tr); +}else{ +var cc=_216?dc.body1:dc.body2; +cc.html(""+tr+"
                        "); +} +}else{ +opts.finder.getTr(_20e,_20f+1,"body",_217).before(tr); +} +}; +_211.call(this,true); +_211.call(this,false); +_215.call(this,true); +_215.call(this,false); +data.total+=1; +data.rows.splice(_20f,0,row); +this.refreshRow.call(this,_20e,_20f); +},deleteRow:function(_21a,_21b){ +var _21c=$.data(_21a,"datagrid"); +var opts=_21c.options; +var data=_21c.data; +function _21d(_21e){ +var _21f=_21e?1:2; +for(var i=_21b+1;itable>tbody>tr[datagrid-row-index="+_22a+"]"); +} +return tr; +}else{ +if(type=="footer"){ +return (_22b==1?dc.footer1:dc.footer2).find(">table>tbody>tr[datagrid-row-index="+_22a+"]"); +}else{ +if(type=="selected"){ +return (_22b==1?dc.body1:dc.body2).find(">table>tbody>tr.datagrid-row-selected"); +}else{ +if(type=="highlight"){ +return (_22b==1?dc.body1:dc.body2).find(">table>tbody>tr.datagrid-row-over"); +}else{ +if(type=="checked"){ +return (_22b==1?dc.body1:dc.body2).find(">table>tbody>tr.datagrid-row-checked"); +}else{ +if(type=="last"){ +return (_22b==1?dc.body1:dc.body2).find(">table>tbody>tr[datagrid-row-index]:last"); +}else{ +if(type=="allbody"){ +return (_22b==1?dc.body1:dc.body2).find(">table>tbody>tr[datagrid-row-index]"); +}else{ +if(type=="allfooter"){ +return (_22b==1?dc.footer1:dc.footer2).find(">table>tbody>tr[datagrid-row-index]"); +} +} +} +} +} +} +} +} +} +},getRow:function(_22d,p){ +var _22e=(typeof p=="object")?p.attr("datagrid-row-index"):p; +return $.data(_22d,"datagrid").data.rows[parseInt(_22e)]; +}},view:_1e9,onBeforeLoad:function(_22f){ +},onLoadSuccess:function(){ +},onLoadError:function(){ +},onClickRow:function(_230,_231){ +},onDblClickRow:function(_232,_233){ +},onClickCell:function(_234,_235,_236){ +},onDblClickCell:function(_237,_238,_239){ +},onSortColumn:function(sort,_23a){ +},onResizeColumn:function(_23b,_23c){ +},onSelect:function(_23d,_23e){ +},onUnselect:function(_23f,_240){ +},onSelectAll:function(rows){ +},onUnselectAll:function(rows){ +},onCheck:function(_241,_242){ +},onUncheck:function(_243,_244){ +},onCheckAll:function(rows){ +},onUncheckAll:function(rows){ +},onBeforeEdit:function(_245,_246){ +},onAfterEdit:function(_247,_248,_249){ +},onCancelEdit:function(_24a,_24b){ +},onHeaderContextMenu:function(e,_24c){ +},onRowContextMenu:function(e,_24d,_24e){ +}}); +})(jQuery); + diff --git a/src/main/webapp/js/easyui-1.3.5/plugins/jquery.datebox.js b/src/main/webapp/js/easyui-1.3.5/plugins/jquery.datebox.js new file mode 100644 index 00000000..9112d206 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/plugins/jquery.datebox.js @@ -0,0 +1,157 @@ +/** + * jQuery EasyUI 1.3.5 + * + * Copyright (c) 2009-2013 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL or commercial licenses + * To use it on other terms please contact us: info@jeasyui.com + * http://www.gnu.org/licenses/gpl.txt + * http://www.jeasyui.com/license_commercial.php + * + */ +(function($){ +function _1(_2){ +var _3=$.data(_2,"datebox"); +var _4=_3.options; +$(_2).addClass("datebox-f").combo($.extend({},_4,{onShowPanel:function(){ +_5(); +_10(_2,$(_2).datebox("getText")); +_4.onShowPanel.call(_2); +}})); +$(_2).combo("textbox").parent().addClass("datebox"); +if(!_3.calendar){ +_6(); +} +function _6(){ +var _7=$(_2).combo("panel").css("overflow","hidden"); +var cc=$("
                        ").appendTo(_7); +if(_4.sharedCalendar){ +_3.calendar=$(_4.sharedCalendar).appendTo(cc); +if(!_3.calendar.hasClass("calendar")){ +_3.calendar.calendar(); +} +}else{ +_3.calendar=$("
                        ").appendTo(cc).calendar(); +} +$.extend(_3.calendar.calendar("options"),{fit:true,border:false,onSelect:function(_8){ +var _9=$(this.target).datebox("options"); +_10(this.target,_9.formatter(_8)); +$(this.target).combo("hidePanel"); +_9.onSelect.call(_2,_8); +}}); +_10(_2,_4.value); +var _a=$("
                        ").appendTo(_7); +var tr=_a.find("tr"); +for(var i=0;i<_4.buttons.length;i++){ +var td=$("").appendTo(tr); +var _b=_4.buttons[i]; +var t=$("").html($.isFunction(_b.text)?_b.text(_2):_b.text).appendTo(td); +t.bind("click",{target:_2,handler:_b.handler},function(e){ +e.data.handler.call(this,e.data.target); +}); +} +tr.find("td").css("width",(100/_4.buttons.length)+"%"); +}; +function _5(){ +var _c=$(_2).combo("panel"); +var cc=_c.children("div.datebox-calendar-inner"); +_c.children()._outerWidth(_c.width()); +_3.calendar.appendTo(cc); +_3.calendar[0].target=_2; +if(_4.panelHeight!="auto"){ +var _d=_c.height(); +_c.children().not(cc).each(function(){ +_d-=$(this).outerHeight(); +}); +cc._outerHeight(_d); +} +_3.calendar.calendar("resize"); +}; +}; +function _e(_f,q){ +_10(_f,q); +}; +function _11(_12){ +var _13=$.data(_12,"datebox"); +var _14=_13.options; +var _15=_14.formatter(_13.calendar.calendar("options").current); +_10(_12,_15); +$(_12).combo("hidePanel"); +}; +function _10(_16,_17){ +var _18=$.data(_16,"datebox"); +var _19=_18.options; +$(_16).combo("setValue",_17).combo("setText",_17); +_18.calendar.calendar("moveTo",_19.parser(_17)); +}; +$.fn.datebox=function(_1a,_1b){ +if(typeof _1a=="string"){ +var _1c=$.fn.datebox.methods[_1a]; +if(_1c){ +return _1c(this,_1b); +}else{ +return this.combo(_1a,_1b); +} +} +_1a=_1a||{}; +return this.each(function(){ +var _1d=$.data(this,"datebox"); +if(_1d){ +$.extend(_1d.options,_1a); +}else{ +$.data(this,"datebox",{options:$.extend({},$.fn.datebox.defaults,$.fn.datebox.parseOptions(this),_1a)}); +} +_1(this); +}); +}; +$.fn.datebox.methods={options:function(jq){ +var _1e=jq.combo("options"); +return $.extend($.data(jq[0],"datebox").options,{originalValue:_1e.originalValue,disabled:_1e.disabled,readonly:_1e.readonly}); +},calendar:function(jq){ +return $.data(jq[0],"datebox").calendar; +},setValue:function(jq,_1f){ +return jq.each(function(){ +_10(this,_1f); +}); +},reset:function(jq){ +return jq.each(function(){ +var _20=$(this).datebox("options"); +$(this).datebox("setValue",_20.originalValue); +}); +}}; +$.fn.datebox.parseOptions=function(_21){ +return $.extend({},$.fn.combo.parseOptions(_21),$.parser.parseOptions(_21,["sharedCalendar"])); +}; +$.fn.datebox.defaults=$.extend({},$.fn.combo.defaults,{panelWidth:180,panelHeight:"auto",sharedCalendar:null,keyHandler:{up:function(e){ +},down:function(e){ +},left:function(e){ +},right:function(e){ +},enter:function(e){ +_11(this); +},query:function(q,e){ +_e(this,q); +}},currentText:"Today",closeText:"Close",okText:"Ok",buttons:[{text:function(_22){ +return $(_22).datebox("options").currentText; +},handler:function(_23){ +$(_23).datebox("calendar").calendar({year:new Date().getFullYear(),month:new Date().getMonth()+1,current:new Date()}); +_11(_23); +}},{text:function(_24){ +return $(_24).datebox("options").closeText; +},handler:function(_25){ +$(this).closest("div.combo-panel").panel("close"); +}}],formatter:function(_26){ +var y=_26.getFullYear(); +var m=_26.getMonth()+1; +var d=_26.getDate(); +return m+"/"+d+"/"+y; +},parser:function(s){ +var t=Date.parse(s); +if(!isNaN(t)){ +return new Date(t); +}else{ +return new Date(); +} +},onSelect:function(_27){ +}}); +})(jQuery); + diff --git a/src/main/webapp/js/easyui-1.3.5/plugins/jquery.datetimebox.js b/src/main/webapp/js/easyui-1.3.5/plugins/jquery.datetimebox.js new file mode 100644 index 00000000..6b232edb --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/plugins/jquery.datetimebox.js @@ -0,0 +1,166 @@ +/** + * jQuery EasyUI 1.3.5 + * + * Copyright (c) 2009-2013 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL or commercial licenses + * To use it on other terms please contact us: info@jeasyui.com + * http://www.gnu.org/licenses/gpl.txt + * http://www.jeasyui.com/license_commercial.php + * + */ +(function($){ +function _1(_2){ +var _3=$.data(_2,"datetimebox"); +var _4=_3.options; +$(_2).datebox($.extend({},_4,{onShowPanel:function(){ +var _5=$(_2).datetimebox("getValue"); +_8(_2,_5,true); +_4.onShowPanel.call(_2); +},formatter:$.fn.datebox.defaults.formatter,parser:$.fn.datebox.defaults.parser})); +$(_2).removeClass("datebox-f").addClass("datetimebox-f"); +$(_2).datebox("calendar").calendar({onSelect:function(_6){ +_4.onSelect.call(_2,_6); +}}); +var _7=$(_2).datebox("panel"); +if(!_3.spinner){ +var p=$("
                        ").insertAfter(_7.children("div.datebox-calendar-inner")); +_3.spinner=p.children("input"); +} +_3.spinner.timespinner({showSeconds:_4.showSeconds,separator:_4.timeSeparator}).unbind(".datetimebox").bind("mousedown.datetimebox",function(e){ +e.stopPropagation(); +}); +_8(_2,_4.value); +}; +function _9(_a){ +var c=$(_a).datetimebox("calendar"); +var t=$(_a).datetimebox("spinner"); +var _b=c.calendar("options").current; +return new Date(_b.getFullYear(),_b.getMonth(),_b.getDate(),t.timespinner("getHours"),t.timespinner("getMinutes"),t.timespinner("getSeconds")); +}; +function _c(_d,q){ +_8(_d,q,true); +}; +function _e(_f){ +var _10=$.data(_f,"datetimebox").options; +var _11=_9(_f); +_8(_f,_10.formatter.call(_f,_11)); +$(_f).combo("hidePanel"); +}; +function _8(_12,_13,_14){ +var _15=$.data(_12,"datetimebox").options; +$(_12).combo("setValue",_13); +if(!_14){ +if(_13){ +var _16=_15.parser.call(_12,_13); +$(_12).combo("setValue",_15.formatter.call(_12,_16)); +$(_12).combo("setText",_15.formatter.call(_12,_16)); +}else{ +$(_12).combo("setText",_13); +} +} +var _16=_15.parser.call(_12,_13); +$(_12).datetimebox("calendar").calendar("moveTo",_16); +$(_12).datetimebox("spinner").timespinner("setValue",_17(_16)); +function _17(_18){ +function _19(_1a){ +return (_1a<10?"0":"")+_1a; +}; +var tt=[_19(_18.getHours()),_19(_18.getMinutes())]; +if(_15.showSeconds){ +tt.push(_19(_18.getSeconds())); +} +return tt.join($(_12).datetimebox("spinner").timespinner("options").separator); +}; +}; +$.fn.datetimebox=function(_1b,_1c){ +if(typeof _1b=="string"){ +var _1d=$.fn.datetimebox.methods[_1b]; +if(_1d){ +return _1d(this,_1c); +}else{ +return this.datebox(_1b,_1c); +} +} +_1b=_1b||{}; +return this.each(function(){ +var _1e=$.data(this,"datetimebox"); +if(_1e){ +$.extend(_1e.options,_1b); +}else{ +$.data(this,"datetimebox",{options:$.extend({},$.fn.datetimebox.defaults,$.fn.datetimebox.parseOptions(this),_1b)}); +} +_1(this); +}); +}; +$.fn.datetimebox.methods={options:function(jq){ +var _1f=jq.datebox("options"); +return $.extend($.data(jq[0],"datetimebox").options,{originalValue:_1f.originalValue,disabled:_1f.disabled,readonly:_1f.readonly}); +},spinner:function(jq){ +return $.data(jq[0],"datetimebox").spinner; +},setValue:function(jq,_20){ +return jq.each(function(){ +_8(this,_20); +}); +},reset:function(jq){ +return jq.each(function(){ +var _21=$(this).datetimebox("options"); +$(this).datetimebox("setValue",_21.originalValue); +}); +}}; +$.fn.datetimebox.parseOptions=function(_22){ +var t=$(_22); +return $.extend({},$.fn.datebox.parseOptions(_22),$.parser.parseOptions(_22,["timeSeparator",{showSeconds:"boolean"}])); +}; +$.fn.datetimebox.defaults=$.extend({},$.fn.datebox.defaults,{showSeconds:true,timeSeparator:":",keyHandler:{up:function(e){ +},down:function(e){ +},left:function(e){ +},right:function(e){ +},enter:function(e){ +_e(this); +},query:function(q,e){ +_c(this,q); +}},buttons:[{text:function(_23){ +return $(_23).datetimebox("options").currentText; +},handler:function(_24){ +$(_24).datetimebox("calendar").calendar({year:new Date().getFullYear(),month:new Date().getMonth()+1,current:new Date()}); +_e(_24); +}},{text:function(_25){ +return $(_25).datetimebox("options").okText; +},handler:function(_26){ +_e(_26); +}},{text:function(_27){ +return $(_27).datetimebox("options").closeText; +},handler:function(_28){ +$(this).closest("div.combo-panel").panel("close"); +}}],formatter:function(_29){ +var h=_29.getHours(); +var M=_29.getMinutes(); +var s=_29.getSeconds(); +function _2a(_2b){ +return (_2b<10?"0":"")+_2b; +}; +var _2c=$(this).datetimebox("spinner").timespinner("options").separator; +var r=$.fn.datebox.defaults.formatter(_29)+" "+_2a(h)+_2c+_2a(M); +if($(this).datetimebox("options").showSeconds){ +r+=_2c+_2a(s); +} +return r; +},parser:function(s){ +if($.trim(s)==""){ +return new Date(); +} +var dt=s.split(" "); +var d=$.fn.datebox.defaults.parser(dt[0]); +if(dt.length<2){ +return d; +} +var _2d=$(this).datetimebox("spinner").timespinner("options").separator; +var tt=dt[1].split(_2d); +var _2e=parseInt(tt[0],10)||0; +var _2f=parseInt(tt[1],10)||0; +var _30=parseInt(tt[2],10)||0; +return new Date(d.getFullYear(),d.getMonth(),d.getDate(),_2e,_2f,_30); +}}); +})(jQuery); + diff --git a/src/main/webapp/js/easyui-1.3.5/plugins/jquery.dialog.js b/src/main/webapp/js/easyui-1.3.5/plugins/jquery.dialog.js new file mode 100644 index 00000000..b88dec41 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/plugins/jquery.dialog.js @@ -0,0 +1,141 @@ +/** + * jQuery EasyUI 1.3.5 + * + * Copyright (c) 2009-2013 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL or commercial licenses + * To use it on other terms please contact us: info@jeasyui.com + * http://www.gnu.org/licenses/gpl.txt + * http://www.jeasyui.com/license_commercial.php + * + */ +(function($){ +function _1(_2){ +var cp=document.createElement("div"); +while(_2.firstChild){ +cp.appendChild(_2.firstChild); +} +_2.appendChild(cp); +var _3=$(cp); +_3.attr("style",$(_2).attr("style")); +$(_2).removeAttr("style").css("overflow","hidden"); +_3.panel({border:false,doSize:false,bodyCls:"dialog-content"}); +return _3; +}; +function _4(_5){ +var _6=$.data(_5,"dialog").options; +var _7=$.data(_5,"dialog").contentPanel; +if(_6.toolbar){ +if($.isArray(_6.toolbar)){ +$(_5).find("div.dialog-toolbar").remove(); +var _8=$("
                        ").prependTo(_5); +var tr=_8.find("tr"); +for(var i=0;i<_6.toolbar.length;i++){ +var _9=_6.toolbar[i]; +if(_9=="-"){ +$("
                        ").appendTo(tr); +}else{ +var td=$("").appendTo(tr); +var _a=$("").appendTo(td); +_a[0].onclick=eval(_9.handler||function(){ +}); +_a.linkbutton($.extend({},_9,{plain:true})); +} +} +}else{ +$(_6.toolbar).addClass("dialog-toolbar").prependTo(_5); +$(_6.toolbar).show(); +} +}else{ +$(_5).find("div.dialog-toolbar").remove(); +} +if(_6.buttons){ +if($.isArray(_6.buttons)){ +$(_5).find("div.dialog-button").remove(); +var _b=$("
                        ").appendTo(_5); +for(var i=0;i<_6.buttons.length;i++){ +var p=_6.buttons[i]; +var _c=$("").appendTo(_b); +if(p.handler){ +_c[0].onclick=p.handler; +} +_c.linkbutton(p); +} +}else{ +$(_6.buttons).addClass("dialog-button").appendTo(_5); +$(_6.buttons).show(); +} +}else{ +$(_5).find("div.dialog-button").remove(); +} +var _d=_6.href; +var _e=_6.content; +_6.href=null; +_6.content=null; +_7.panel({closed:_6.closed,cache:_6.cache,href:_d,content:_e,onLoad:function(){ +if(_6.height=="auto"){ +$(_5).window("resize"); +} +_6.onLoad.apply(_5,arguments); +}}); +$(_5).window($.extend({},_6,{onOpen:function(){ +if(_7.panel("options").closed){ +_7.panel("open"); +} +if(_6.onOpen){ +_6.onOpen.call(_5); +} +},onResize:function(_f,_10){ +var _11=$(_5); +_7.panel("panel").show(); +_7.panel("resize",{width:_11.width(),height:(_10=="auto")?"auto":_11.height()-_11.children("div.dialog-toolbar")._outerHeight()-_11.children("div.dialog-button")._outerHeight()}); +if(_6.onResize){ +_6.onResize.call(_5,_f,_10); +} +}})); +_6.href=_d; +_6.content=_e; +}; +function _12(_13,_14){ +var _15=$.data(_13,"dialog").contentPanel; +_15.panel("refresh",_14); +}; +$.fn.dialog=function(_16,_17){ +if(typeof _16=="string"){ +var _18=$.fn.dialog.methods[_16]; +if(_18){ +return _18(this,_17); +}else{ +return this.window(_16,_17); +} +} +_16=_16||{}; +return this.each(function(){ +var _19=$.data(this,"dialog"); +if(_19){ +$.extend(_19.options,_16); +}else{ +$.data(this,"dialog",{options:$.extend({},$.fn.dialog.defaults,$.fn.dialog.parseOptions(this),_16),contentPanel:_1(this)}); +} +_4(this); +}); +}; +$.fn.dialog.methods={options:function(jq){ +var _1a=$.data(jq[0],"dialog").options; +var _1b=jq.panel("options"); +$.extend(_1a,{closed:_1b.closed,collapsed:_1b.collapsed,minimized:_1b.minimized,maximized:_1b.maximized}); +var _1c=$.data(jq[0],"dialog").contentPanel; +return _1a; +},dialog:function(jq){ +return jq.window("window"); +},refresh:function(jq,_1d){ +return jq.each(function(){ +_12(this,_1d); +}); +}}; +$.fn.dialog.parseOptions=function(_1e){ +return $.extend({},$.fn.window.parseOptions(_1e),$.parser.parseOptions(_1e,["toolbar","buttons"])); +}; +$.fn.dialog.defaults=$.extend({},$.fn.window.defaults,{title:"New Dialog",collapsible:false,minimizable:false,maximizable:false,resizable:false,toolbar:null,buttons:null}); +})(jQuery); + diff --git a/src/main/webapp/js/easyui-1.3.5/plugins/jquery.draggable.js b/src/main/webapp/js/easyui-1.3.5/plugins/jquery.draggable.js new file mode 100644 index 00000000..b5b094cb --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/plugins/jquery.draggable.js @@ -0,0 +1,285 @@ +/** + * jQuery EasyUI 1.3.5 + * + * Copyright (c) 2009-2013 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL or commercial licenses + * To use it on other terms please contact us: info@jeasyui.com + * http://www.gnu.org/licenses/gpl.txt + * http://www.jeasyui.com/license_commercial.php + * + */ +(function($){ +function _1(e){ +var _2=$.data(e.data.target,"draggable"); +var _3=_2.options; +var _4=_2.proxy; +var _5=e.data; +var _6=_5.startLeft+e.pageX-_5.startX; +var _7=_5.startTop+e.pageY-_5.startY; +if(_4){ +if(_4.parent()[0]==document.body){ +if(_3.deltaX!=null&&_3.deltaX!=undefined){ +_6=e.pageX+_3.deltaX; +}else{ +_6=e.pageX-e.data.offsetWidth; +} +if(_3.deltaY!=null&&_3.deltaY!=undefined){ +_7=e.pageY+_3.deltaY; +}else{ +_7=e.pageY-e.data.offsetHeight; +} +}else{ +if(_3.deltaX!=null&&_3.deltaX!=undefined){ +_6+=e.data.offsetWidth+_3.deltaX; +} +if(_3.deltaY!=null&&_3.deltaY!=undefined){ +_7+=e.data.offsetHeight+_3.deltaY; +} +} +} +if(e.data.parent!=document.body){ +_6+=$(e.data.parent).scrollLeft(); +_7+=$(e.data.parent).scrollTop(); +} +if(_3.axis=="h"){ +_5.left=_6; +}else{ +if(_3.axis=="v"){ +_5.top=_7; +}else{ +_5.left=_6; +_5.top=_7; +} +} +}; +function _8(e){ +var _9=$.data(e.data.target,"draggable"); +var _a=_9.options; +var _b=_9.proxy; +if(!_b){ +_b=$(e.data.target); +} +_b.css({left:e.data.left,top:e.data.top}); +$("body").css("cursor",_a.cursor); +}; +function _c(e){ +$.fn.draggable.isDragging=true; +var _d=$.data(e.data.target,"draggable"); +var _e=_d.options; +var _f=$(".droppable").filter(function(){ +return e.data.target!=this; +}).filter(function(){ +var _10=$.data(this,"droppable").options.accept; +if(_10){ +return $(_10).filter(function(){ +return this==e.data.target; +}).length>0; +}else{ +return true; +} +}); +_d.droppables=_f; +var _11=_d.proxy; +if(!_11){ +if(_e.proxy){ +if(_e.proxy=="clone"){ +_11=$(e.data.target).clone().insertAfter(e.data.target); +}else{ +_11=_e.proxy.call(e.data.target,e.data.target); +} +_d.proxy=_11; +}else{ +_11=$(e.data.target); +} +} +_11.css("position","absolute"); +_1(e); +_8(e); +_e.onStartDrag.call(e.data.target,e); +return false; +}; +function _12(e){ +var _13=$.data(e.data.target,"draggable"); +_1(e); +if(_13.options.onDrag.call(e.data.target,e)!=false){ +_8(e); +} +var _14=e.data.target; +_13.droppables.each(function(){ +var _15=$(this); +if(_15.droppable("options").disabled){ +return; +} +var p2=_15.offset(); +if(e.pageX>p2.left&&e.pageXp2.top&&e.pageYp2.left&&e.pageXp2.top&&e.pageY_2a.options.edge; +}; +}); +}; +$.fn.draggable.methods={options:function(jq){ +return $.data(jq[0],"draggable").options; +},proxy:function(jq){ +return $.data(jq[0],"draggable").proxy; +},enable:function(jq){ +return jq.each(function(){ +$(this).draggable({disabled:false}); +}); +},disable:function(jq){ +return jq.each(function(){ +$(this).draggable({disabled:true}); +}); +}}; +$.fn.draggable.parseOptions=function(_2f){ +var t=$(_2f); +return $.extend({},$.parser.parseOptions(_2f,["cursor","handle","axis",{"revert":"boolean","deltaX":"number","deltaY":"number","edge":"number"}]),{disabled:(t.attr("disabled")?true:undefined)}); +}; +$.fn.draggable.defaults={proxy:null,revert:false,cursor:"move",deltaX:null,deltaY:null,handle:null,disabled:false,edge:0,axis:null,onBeforeDrag:function(e){ +},onStartDrag:function(e){ +},onDrag:function(e){ +},onStopDrag:function(e){ +}}; +$.fn.draggable.isDragging=false; +})(jQuery); + diff --git a/src/main/webapp/js/easyui-1.3.5/plugins/jquery.droppable.js b/src/main/webapp/js/easyui-1.3.5/plugins/jquery.droppable.js new file mode 100644 index 00000000..77438d69 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/plugins/jquery.droppable.js @@ -0,0 +1,64 @@ +/** + * jQuery EasyUI 1.3.5 + * + * Copyright (c) 2009-2013 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL or commercial licenses + * To use it on other terms please contact us: info@jeasyui.com + * http://www.gnu.org/licenses/gpl.txt + * http://www.jeasyui.com/license_commercial.php + * + */ +(function($){ +function _1(_2){ +$(_2).addClass("droppable"); +$(_2).bind("_dragenter",function(e,_3){ +$.data(_2,"droppable").options.onDragEnter.apply(_2,[e,_3]); +}); +$(_2).bind("_dragleave",function(e,_4){ +$.data(_2,"droppable").options.onDragLeave.apply(_2,[e,_4]); +}); +$(_2).bind("_dragover",function(e,_5){ +$.data(_2,"droppable").options.onDragOver.apply(_2,[e,_5]); +}); +$(_2).bind("_drop",function(e,_6){ +$.data(_2,"droppable").options.onDrop.apply(_2,[e,_6]); +}); +}; +$.fn.droppable=function(_7,_8){ +if(typeof _7=="string"){ +return $.fn.droppable.methods[_7](this,_8); +} +_7=_7||{}; +return this.each(function(){ +var _9=$.data(this,"droppable"); +if(_9){ +$.extend(_9.options,_7); +}else{ +_1(this); +$.data(this,"droppable",{options:$.extend({},$.fn.droppable.defaults,$.fn.droppable.parseOptions(this),_7)}); +} +}); +}; +$.fn.droppable.methods={options:function(jq){ +return $.data(jq[0],"droppable").options; +},enable:function(jq){ +return jq.each(function(){ +$(this).droppable({disabled:false}); +}); +},disable:function(jq){ +return jq.each(function(){ +$(this).droppable({disabled:true}); +}); +}}; +$.fn.droppable.parseOptions=function(_a){ +var t=$(_a); +return $.extend({},$.parser.parseOptions(_a,["accept"]),{disabled:(t.attr("disabled")?true:undefined)}); +}; +$.fn.droppable.defaults={accept:null,disabled:false,onDragEnter:function(e,_b){ +},onDragOver:function(e,_c){ +},onDragLeave:function(e,_d){ +},onDrop:function(e,_e){ +}}; +})(jQuery); + diff --git a/src/main/webapp/js/easyui-1.3.5/plugins/jquery.form.js b/src/main/webapp/js/easyui-1.3.5/plugins/jquery.form.js new file mode 100644 index 00000000..65957645 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/plugins/jquery.form.js @@ -0,0 +1,292 @@ +/** + * jQuery EasyUI 1.3.5 + * + * Copyright (c) 2009-2013 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL or commercial licenses + * To use it on other terms please contact us: info@jeasyui.com + * http://www.gnu.org/licenses/gpl.txt + * http://www.jeasyui.com/license_commercial.php + * + */ +(function($){ +function _1(_2,_3){ +_3=_3||{}; +var _4={}; +if(_3.onSubmit){ +if(_3.onSubmit.call(_2,_4)==false){ +return; +} +} +var _5=$(_2); +if(_3.url){ +_5.attr("action",_3.url); +} +var _6="easyui_frame_"+(new Date().getTime()); +var _7=$("").attr("src",window.ActiveXObject?"javascript:false":"about:blank").css({position:"absolute",top:-1000,left:-1000}); +var t=_5.attr("target"),a=_5.attr("action"); +_5.attr("target",_6); +var _8=$(); +try{ +_7.appendTo("body"); +_7.bind("load",cb); +for(var n in _4){ +var f=$("").val(_4[n]).appendTo(_5); +_8=_8.add(f); +} +_9(); +_5[0].submit(); +} +finally{ +_5.attr("action",a); +t?_5.attr("target",t):_5.removeAttr("target"); +_8.remove(); +} +function _9(){ +var f=$("#"+_6); +if(!f.length){ +return; +} +try{ +var s=f.contents()[0].readyState; +if(s&&s.toLowerCase()=="uninitialized"){ +setTimeout(_9,100); +} +} +catch(e){ +cb(); +} +}; +var _a=10; +function cb(){ +var _b=$("#"+_6); +if(!_b.length){ +return; +} +_b.unbind(); +var _c=""; +try{ +var _d=_b.contents().find("body"); +_c=_d.html(); +if(_c==""){ +if(--_a){ +setTimeout(cb,100); +return; +} +} +var ta=_d.find(">textarea"); +if(ta.length){ +_c=ta.val(); +}else{ +var _e=_d.find(">pre"); +if(_e.length){ +_c=_e.html(); +} +} +} +catch(e){ +} +if(_3.success){ +_3.success(_c); +} +setTimeout(function(){ +_b.unbind(); +_b.remove(); +},100); +}; +}; +function _f(_10,_11){ +if(!$.data(_10,"form")){ +$.data(_10,"form",{options:$.extend({},$.fn.form.defaults)}); +} +var _12=$.data(_10,"form").options; +if(typeof _11=="string"){ +var _13={}; +if(_12.onBeforeLoad.call(_10,_13)==false){ +return; +} +$.ajax({url:_11,data:_13,dataType:"json",success:function(_14){ +_15(_14); +},error:function(){ +_12.onLoadError.apply(_10,arguments); +}}); +}else{ +_15(_11); +} +function _15(_16){ +var _17=$(_10); +for(var _18 in _16){ +var val=_16[_18]; +var rr=_19(_18,val); +if(!rr.length){ +var _1a=_1b(_18,val); +if(!_1a){ +$("input[name=\""+_18+"\"]",_17).val(val); +$("textarea[name=\""+_18+"\"]",_17).val(val); +$("select[name=\""+_18+"\"]",_17).val(val); +} +} +_1c(_18,val); +} +_12.onLoadSuccess.call(_10,_16); +_28(_10); +}; +function _19(_1d,val){ +var rr=$(_10).find("input[name=\""+_1d+"\"][type=radio], input[name=\""+_1d+"\"][type=checkbox]"); +rr._propAttr("checked",false); +rr.each(function(){ +var f=$(this); +if(f.val()==String(val)||$.inArray(f.val(),$.isArray(val)?val:[val])>=0){ +f._propAttr("checked",true); +} +}); +return rr; +}; +function _1b(_1e,val){ +var _1f=0; +var pp=["numberbox","slider"]; +for(var i=0;i=0){ +_1b(_16,_18,this); +} +}); +}; +cc.children("form").length?_17(cc.children("form")):_17(cc); +cc.append("
                        "); +cc.bind("_resize",function(e,_19){ +var _1a=$.data(_16,"layout").options; +if(_1a.fit==true||_19){ +_2(_16); +} +return false; +}); +}; +function _1b(_1c,_1d,el){ +_1d.region=_1d.region||"center"; +var _1e=$.data(_1c,"layout").panels; +var cc=$(_1c); +var dir=_1d.region; +if(_1e[dir].length){ +return; +} +var pp=$(el); +if(!pp.length){ +pp=$("
                        ").appendTo(cc); +} +var _1f=$.extend({},$.fn.layout.paneldefaults,{width:(pp.length?parseInt(pp[0].style.width)||pp.outerWidth():"auto"),height:(pp.length?parseInt(pp[0].style.height)||pp.outerHeight():"auto"),doSize:false,collapsible:true,cls:("layout-panel layout-panel-"+dir),bodyCls:"layout-body",onOpen:function(){ +var _20=$(this).panel("header").children("div.panel-tool"); +_20.children("a.panel-tool-collapse").hide(); +var _21={north:"up",south:"down",east:"right",west:"left"}; +if(!_21[dir]){ +return; +} +var _22="layout-button-"+_21[dir]; +var t=_20.children("a."+_22); +if(!t.length){ +t=$("").addClass(_22).appendTo(_20); +t.bind("click",{dir:dir},function(e){ +_2f(_1c,e.data.dir); +return false; +}); +} +$(this).panel("options").collapsible?t.show():t.hide(); +}},_1d); +pp.panel(_1f); +_1e[dir]=pp; +if(pp.panel("options").split){ +var _23=pp.panel("panel"); +_23.addClass("layout-split-"+dir); +var _24=""; +if(dir=="north"){ +_24="s"; +} +if(dir=="south"){ +_24="n"; +} +if(dir=="east"){ +_24="w"; +} +if(dir=="west"){ +_24="e"; +} +_23.resizable($.extend({},{handles:_24,onStartResize:function(e){ +_1=true; +if(dir=="north"||dir=="south"){ +var _25=$(">div.layout-split-proxy-v",_1c); +}else{ +var _25=$(">div.layout-split-proxy-h",_1c); +} +var top=0,_26=0,_27=0,_28=0; +var pos={display:"block"}; +if(dir=="north"){ +pos.top=parseInt(_23.css("top"))+_23.outerHeight()-_25.height(); +pos.left=parseInt(_23.css("left")); +pos.width=_23.outerWidth(); +pos.height=_25.height(); +}else{ +if(dir=="south"){ +pos.top=parseInt(_23.css("top")); +pos.left=parseInt(_23.css("left")); +pos.width=_23.outerWidth(); +pos.height=_25.height(); +}else{ +if(dir=="east"){ +pos.top=parseInt(_23.css("top"))||0; +pos.left=parseInt(_23.css("left"))||0; +pos.width=_25.width(); +pos.height=_23.outerHeight(); +}else{ +if(dir=="west"){ +pos.top=parseInt(_23.css("top"))||0; +pos.left=_23.outerWidth()-_25.width(); +pos.width=_25.width(); +pos.height=_23.outerHeight(); +} +} +} +} +_25.css(pos); +$("
                        ").css({left:0,top:0,width:cc.width(),height:cc.height()}).appendTo(cc); +},onResize:function(e){ +if(dir=="north"||dir=="south"){ +var _29=$(">div.layout-split-proxy-v",_1c); +_29.css("top",e.pageY-$(_1c).offset().top-_29.height()/2); +}else{ +var _29=$(">div.layout-split-proxy-h",_1c); +_29.css("left",e.pageX-$(_1c).offset().left-_29.width()/2); +} +return false; +},onStopResize:function(e){ +cc.children("div.layout-split-proxy-v,div.layout-split-proxy-h").hide(); +pp.panel("resize",e.data); +_2(_1c); +_1=false; +cc.find(">div.layout-mask").remove(); +}},_1d)); +} +}; +function _2a(_2b,_2c){ +var _2d=$.data(_2b,"layout").panels; +if(_2d[_2c].length){ +_2d[_2c].panel("destroy"); +_2d[_2c]=$(); +var _2e="expand"+_2c.substring(0,1).toUpperCase()+_2c.substring(1); +if(_2d[_2e]){ +_2d[_2e].panel("destroy"); +_2d[_2e]=undefined; +} +} +}; +function _2f(_30,_31,_32){ +if(_32==undefined){ +_32="normal"; +} +var _33=$.data(_30,"layout").panels; +var p=_33[_31]; +var _34=p.panel("options"); +if(_34.onBeforeCollapse.call(p)==false){ +return; +} +var _35="expand"+_31.substring(0,1).toUpperCase()+_31.substring(1); +if(!_33[_35]){ +_33[_35]=_36(_31); +_33[_35].panel("panel").bind("click",function(){ +var _37=_38(); +p.panel("expand",false).panel("open").panel("resize",_37.collapse); +p.panel("panel").animate(_37.expand,function(){ +$(this).unbind(".layout").bind("mouseleave.layout",{region:_31},function(e){ +if(_1==true){ +return; +} +_2f(_30,e.data.region); +}); +}); +return false; +}); +} +var _39=_38(); +if(!_9(_33[_35])){ +_33.center.panel("resize",_39.resizeC); +} +p.panel("panel").animate(_39.collapse,_32,function(){ +p.panel("collapse",false).panel("close"); +_33[_35].panel("open").panel("resize",_39.expandP); +$(this).unbind(".layout"); +}); +function _36(dir){ +var _3a; +if(dir=="east"){ +_3a="layout-button-left"; +}else{ +if(dir=="west"){ +_3a="layout-button-right"; +}else{ +if(dir=="north"){ +_3a="layout-button-down"; +}else{ +if(dir=="south"){ +_3a="layout-button-up"; +} +} +} +} +var p=$("
                        ").appendTo(_30); +p.panel($.extend({},$.fn.layout.paneldefaults,{cls:("layout-expand layout-expand-"+dir),title:" ",closed:true,doSize:false,tools:[{iconCls:_3a,handler:function(){ +_3c(_30,_31); +return false; +}}]})); +p.panel("panel").hover(function(){ +$(this).addClass("layout-expand-over"); +},function(){ +$(this).removeClass("layout-expand-over"); +}); +return p; +}; +function _38(){ +var cc=$(_30); +var _3b=_33.center.panel("options"); +if(_31=="east"){ +var ww=_3b.width+_34.width-28; +if(_34.split||!_34.border){ +ww++; +} +return {resizeC:{width:ww},expand:{left:cc.width()-_34.width},expandP:{top:_3b.top,left:cc.width()-28,width:28,height:_3b.height},collapse:{left:cc.width(),top:_3b.top,height:_3b.height}}; +}else{ +if(_31=="west"){ +var ww=_3b.width+_34.width-28; +if(_34.split||!_34.border){ +ww++; +} +return {resizeC:{width:ww,left:28-1},expand:{left:0},expandP:{left:0,top:_3b.top,width:28,height:_3b.height},collapse:{left:-_34.width,top:_3b.top,height:_3b.height}}; +}else{ +if(_31=="north"){ +var hh=_3b.height; +if(!_9(_33.expandNorth)){ +hh+=_34.height-28+((_34.split||!_34.border)?1:0); +} +_33.east.add(_33.west).add(_33.expandEast).add(_33.expandWest).panel("resize",{top:28-1,height:hh}); +return {resizeC:{top:28-1,height:hh},expand:{top:0},expandP:{top:0,left:0,width:cc.width(),height:28},collapse:{top:-_34.height,width:cc.width()}}; +}else{ +if(_31=="south"){ +var hh=_3b.height; +if(!_9(_33.expandSouth)){ +hh+=_34.height-28+((_34.split||!_34.border)?1:0); +} +_33.east.add(_33.west).add(_33.expandEast).add(_33.expandWest).panel("resize",{height:hh}); +return {resizeC:{height:hh},expand:{top:cc.height()-_34.height},expandP:{top:cc.height()-28,left:0,width:cc.width(),height:28},collapse:{top:cc.height(),width:cc.width()}}; +} +} +} +} +}; +}; +function _3c(_3d,_3e){ +var _3f=$.data(_3d,"layout").panels; +var p=_3f[_3e]; +var _40=p.panel("options"); +if(_40.onBeforeExpand.call(p)==false){ +return; +} +var _41=_42(); +var _43="expand"+_3e.substring(0,1).toUpperCase()+_3e.substring(1); +if(_3f[_43]){ +_3f[_43].panel("close"); +p.panel("panel").stop(true,true); +p.panel("expand",false).panel("open").panel("resize",_41.collapse); +p.panel("panel").animate(_41.expand,function(){ +_2(_3d); +}); +} +function _42(){ +var cc=$(_3d); +var _44=_3f.center.panel("options"); +if(_3e=="east"&&_3f.expandEast){ +return {collapse:{left:cc.width(),top:_44.top,height:_44.height},expand:{left:cc.width()-_3f["east"].panel("options").width}}; +}else{ +if(_3e=="west"&&_3f.expandWest){ +return {collapse:{left:-_3f["west"].panel("options").width,top:_44.top,height:_44.height},expand:{left:0}}; +}else{ +if(_3e=="north"&&_3f.expandNorth){ +return {collapse:{top:-_3f["north"].panel("options").height,width:cc.width()},expand:{top:0}}; +}else{ +if(_3e=="south"&&_3f.expandSouth){ +return {collapse:{top:cc.height(),width:cc.width()},expand:{top:cc.height()-_3f["south"].panel("options").height}}; +} +} +} +} +}; +}; +function _9(pp){ +if(!pp){ +return false; +} +if(pp.length){ +return pp.panel("panel").is(":visible"); +}else{ +return false; +} +}; +function _45(_46){ +var _47=$.data(_46,"layout").panels; +if(_47.east.length&&_47.east.panel("options").collapsed){ +_2f(_46,"east",0); +} +if(_47.west.length&&_47.west.panel("options").collapsed){ +_2f(_46,"west",0); +} +if(_47.north.length&&_47.north.panel("options").collapsed){ +_2f(_46,"north",0); +} +if(_47.south.length&&_47.south.panel("options").collapsed){ +_2f(_46,"south",0); +} +}; +$.fn.layout=function(_48,_49){ +if(typeof _48=="string"){ +return $.fn.layout.methods[_48](this,_49); +} +_48=_48||{}; +return this.each(function(){ +var _4a=$.data(this,"layout"); +if(_4a){ +$.extend(_4a.options,_48); +}else{ +var _4b=$.extend({},$.fn.layout.defaults,$.fn.layout.parseOptions(this),_48); +$.data(this,"layout",{options:_4b,panels:{center:$(),north:$(),south:$(),east:$(),west:$()}}); +_15(this); +} +_2(this); +_45(this); +}); +}; +$.fn.layout.methods={resize:function(jq){ +return jq.each(function(){ +_2(this); +}); +},panel:function(jq,_4c){ +return $.data(jq[0],"layout").panels[_4c]; +},collapse:function(jq,_4d){ +return jq.each(function(){ +_2f(this,_4d); +}); +},expand:function(jq,_4e){ +return jq.each(function(){ +_3c(this,_4e); +}); +},add:function(jq,_4f){ +return jq.each(function(){ +_1b(this,_4f); +_2(this); +if($(this).layout("panel",_4f.region).panel("options").collapsed){ +_2f(this,_4f.region,0); +} +}); +},remove:function(jq,_50){ +return jq.each(function(){ +_2a(this,_50); +_2(this); +}); +}}; +$.fn.layout.parseOptions=function(_51){ +return $.extend({},$.parser.parseOptions(_51,[{fit:"boolean"}])); +}; +$.fn.layout.defaults={fit:false}; +$.fn.layout.parsePanelOptions=function(_52){ +var t=$(_52); +return $.extend({},$.fn.panel.parseOptions(_52),$.parser.parseOptions(_52,["region",{split:"boolean",minWidth:"number",minHeight:"number",maxWidth:"number",maxHeight:"number"}])); +}; +$.fn.layout.paneldefaults=$.extend({},$.fn.panel.defaults,{region:null,split:false,minWidth:10,minHeight:10,maxWidth:10000,maxHeight:10000}); +})(jQuery); + diff --git a/src/main/webapp/js/easyui-1.3.5/plugins/jquery.linkbutton.js b/src/main/webapp/js/easyui-1.3.5/plugins/jquery.linkbutton.js new file mode 100644 index 00000000..eb43f949 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/plugins/jquery.linkbutton.js @@ -0,0 +1,144 @@ +/** + * jQuery EasyUI 1.3.5 + * + * Copyright (c) 2009-2013 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL or commercial licenses + * To use it on other terms please contact us: info@jeasyui.com + * http://www.gnu.org/licenses/gpl.txt + * http://www.jeasyui.com/license_commercial.php + * + */ +(function($){ +function _1(_2){ +var _3=$.data(_2,"linkbutton").options; +var t=$(_2); +t.addClass("l-btn").removeClass("l-btn-plain l-btn-selected l-btn-plain-selected"); +if(_3.plain){ +t.addClass("l-btn-plain"); +} +if(_3.selected){ +t.addClass(_3.plain?"l-btn-selected l-btn-plain-selected":"l-btn-selected"); +} +t.attr("group",_3.group||""); +t.attr("id",_3.id||""); +t.html(""+""+""); +if(_3.text){ +t.find(".l-btn-text").html(_3.text); +if(_3.iconCls){ +t.find(".l-btn-text").addClass(_3.iconCls).addClass(_3.iconAlign=="left"?"l-btn-icon-left":"l-btn-icon-right"); +} +}else{ +t.find(".l-btn-text").html(" "); +if(_3.iconCls){ +t.find(".l-btn-empty").addClass(_3.iconCls); +} +} +t.unbind(".linkbutton").bind("focus.linkbutton",function(){ +if(!_3.disabled){ +$(this).find(".l-btn-text").addClass("l-btn-focus"); +} +}).bind("blur.linkbutton",function(){ +$(this).find(".l-btn-text").removeClass("l-btn-focus"); +}); +if(_3.toggle&&!_3.disabled){ +t.bind("click.linkbutton",function(){ +if(_3.selected){ +$(this).linkbutton("unselect"); +}else{ +$(this).linkbutton("select"); +} +}); +} +_4(_2,_3.selected); +_5(_2,_3.disabled); +}; +function _4(_6,_7){ +var _8=$.data(_6,"linkbutton").options; +if(_7){ +if(_8.group){ +$("a.l-btn[group=\""+_8.group+"\"]").each(function(){ +var o=$(this).linkbutton("options"); +if(o.toggle){ +$(this).removeClass("l-btn-selected l-btn-plain-selected"); +o.selected=false; +} +}); +} +$(_6).addClass(_8.plain?"l-btn-selected l-btn-plain-selected":"l-btn-selected"); +_8.selected=true; +}else{ +if(!_8.group){ +$(_6).removeClass("l-btn-selected l-btn-plain-selected"); +_8.selected=false; +} +} +}; +function _5(_9,_a){ +var _b=$.data(_9,"linkbutton"); +var _c=_b.options; +$(_9).removeClass("l-btn-disabled l-btn-plain-disabled"); +if(_a){ +_c.disabled=true; +var _d=$(_9).attr("href"); +if(_d){ +_b.href=_d; +$(_9).attr("href","javascript:void(0)"); +} +if(_9.onclick){ +_b.onclick=_9.onclick; +_9.onclick=null; +} +_c.plain?$(_9).addClass("l-btn-disabled l-btn-plain-disabled"):$(_9).addClass("l-btn-disabled"); +}else{ +_c.disabled=false; +if(_b.href){ +$(_9).attr("href",_b.href); +} +if(_b.onclick){ +_9.onclick=_b.onclick; +} +} +}; +$.fn.linkbutton=function(_e,_f){ +if(typeof _e=="string"){ +return $.fn.linkbutton.methods[_e](this,_f); +} +_e=_e||{}; +return this.each(function(){ +var _10=$.data(this,"linkbutton"); +if(_10){ +$.extend(_10.options,_e); +}else{ +$.data(this,"linkbutton",{options:$.extend({},$.fn.linkbutton.defaults,$.fn.linkbutton.parseOptions(this),_e)}); +$(this).removeAttr("disabled"); +} +_1(this); +}); +}; +$.fn.linkbutton.methods={options:function(jq){ +return $.data(jq[0],"linkbutton").options; +},enable:function(jq){ +return jq.each(function(){ +_5(this,false); +}); +},disable:function(jq){ +return jq.each(function(){ +_5(this,true); +}); +},select:function(jq){ +return jq.each(function(){ +_4(this,true); +}); +},unselect:function(jq){ +return jq.each(function(){ +_4(this,false); +}); +}}; +$.fn.linkbutton.parseOptions=function(_11){ +var t=$(_11); +return $.extend({},$.parser.parseOptions(_11,["id","iconCls","iconAlign","group",{plain:"boolean",toggle:"boolean",selected:"boolean"}]),{disabled:(t.attr("disabled")?true:undefined),text:$.trim(t.html()),iconCls:(t.attr("icon")||t.attr("iconCls"))}); +}; +$.fn.linkbutton.defaults={id:null,disabled:false,toggle:false,selected:false,group:null,plain:false,text:"",iconCls:null,iconAlign:"left"}; +})(jQuery); + diff --git a/src/main/webapp/js/easyui-1.3.5/plugins/jquery.menu.js b/src/main/webapp/js/easyui-1.3.5/plugins/jquery.menu.js new file mode 100644 index 00000000..6b337f9b --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/plugins/jquery.menu.js @@ -0,0 +1,427 @@ +/** + * jQuery EasyUI 1.3.5 + * + * Copyright (c) 2009-2013 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL or commercial licenses + * To use it on other terms please contact us: info@jeasyui.com + * http://www.gnu.org/licenses/gpl.txt + * http://www.jeasyui.com/license_commercial.php + * + */ +(function($){ +function _1(_2){ +$(_2).appendTo("body"); +$(_2).addClass("menu-top"); +$(document).unbind(".menu").bind("mousedown.menu",function(e){ +var _3=$("body>div.menu:visible"); +var m=$(e.target).closest("div.menu",_3); +if(m.length){ +return; +} +$("body>div.menu-top:visible").menu("hide"); +}); +var _4=_5($(_2)); +for(var i=0;i<_4.length;i++){ +_6(_4[i]); +} +function _5(_7){ +var _8=[]; +_7.addClass("menu"); +_8.push(_7); +if(!_7.hasClass("menu-content")){ +_7.children("div").each(function(){ +var _9=$(this).children("div"); +if(_9.length){ +_9.insertAfter(_2); +this.submenu=_9; +var mm=_5(_9); +_8=_8.concat(mm); +} +}); +} +return _8; +}; +function _6(_a){ +var _b=$.parser.parseOptions(_a[0],["width"]).width; +if(_a.hasClass("menu-content")){ +_a[0].originalWidth=_b||_a._outerWidth(); +}else{ +_a[0].originalWidth=_b||0; +_a.children("div").each(function(){ +var _c=$(this); +var _d=$.extend({},$.parser.parseOptions(this,["name","iconCls","href",{separator:"boolean"}]),{disabled:(_c.attr("disabled")?true:undefined)}); +if(_d.separator){ +_c.addClass("menu-sep"); +} +if(!_c.hasClass("menu-sep")){ +_c[0].itemName=_d.name||""; +_c[0].itemHref=_d.href||""; +var _e=_c.addClass("menu-item").html(); +_c.empty().append($("
                        ").html(_e)); +if(_d.iconCls){ +$("
                        ").addClass(_d.iconCls).appendTo(_c); +} +if(_d.disabled){ +_f(_2,_c[0],true); +} +if(_c[0].submenu){ +$("
                        ").appendTo(_c); +} +_10(_2,_c); +} +}); +$("
                        ").prependTo(_a); +} +_11(_2,_a); +_a.hide(); +_12(_2,_a); +}; +}; +function _11(_13,_14){ +var _15=$.data(_13,"menu").options; +var _16=_14.attr("style"); +_14.css({display:"block",left:-10000,height:"auto",overflow:"hidden"}); +var _17=0; +_14.find("div.menu-text").each(function(){ +if(_17<$(this)._outerWidth()){ +_17=$(this)._outerWidth(); +} +$(this).closest("div.menu-item")._outerHeight($(this)._outerHeight()+2); +}); +_17+=65; +_14._outerWidth(Math.max((_14[0].originalWidth||0),_17,_15.minWidth)); +_14.children("div.menu-line")._outerHeight(_14.outerHeight()); +_14.attr("style",_16); +}; +function _12(_18,_19){ +var _1a=$.data(_18,"menu"); +_19.unbind(".menu").bind("mouseenter.menu",function(){ +if(_1a.timer){ +clearTimeout(_1a.timer); +_1a.timer=null; +} +}).bind("mouseleave.menu",function(){ +if(_1a.options.hideOnUnhover){ +_1a.timer=setTimeout(function(){ +_1b(_18); +},100); +} +}); +}; +function _10(_1c,_1d){ +if(!_1d.hasClass("menu-item")){ +return; +} +_1d.unbind(".menu"); +_1d.bind("click.menu",function(){ +if($(this).hasClass("menu-item-disabled")){ +return; +} +if(!this.submenu){ +_1b(_1c); +var _1e=$(this).attr("href"); +if(_1e){ +location.href=_1e; +} +} +var _1f=$(_1c).menu("getItem",this); +$.data(_1c,"menu").options.onClick.call(_1c,_1f); +}).bind("mouseenter.menu",function(e){ +_1d.siblings().each(function(){ +if(this.submenu){ +_22(this.submenu); +} +$(this).removeClass("menu-active"); +}); +_1d.addClass("menu-active"); +if($(this).hasClass("menu-item-disabled")){ +_1d.addClass("menu-active-disabled"); +return; +} +var _20=_1d[0].submenu; +if(_20){ +$(_1c).menu("show",{menu:_20,parent:_1d}); +} +}).bind("mouseleave.menu",function(e){ +_1d.removeClass("menu-active menu-active-disabled"); +var _21=_1d[0].submenu; +if(_21){ +if(e.pageX>=parseInt(_21.css("left"))){ +_1d.addClass("menu-active"); +}else{ +_22(_21); +} +}else{ +_1d.removeClass("menu-active"); +} +}); +}; +function _1b(_23){ +var _24=$.data(_23,"menu"); +if(_24){ +if($(_23).is(":visible")){ +_22($(_23)); +_24.options.onHide.call(_23); +} +} +return false; +}; +function _25(_26,_27){ +var _28,top; +_27=_27||{}; +var _29=$(_27.menu||_26); +if(_29.hasClass("menu-top")){ +var _2a=$.data(_26,"menu").options; +$.extend(_2a,_27); +_28=_2a.left; +top=_2a.top; +if(_2a.alignTo){ +var at=$(_2a.alignTo); +_28=at.offset().left; +top=at.offset().top+at._outerHeight(); +} +if(_28+_29.outerWidth()>$(window)._outerWidth()+$(document)._scrollLeft()){ +_28=$(window)._outerWidth()+$(document).scrollLeft()-_29.outerWidth()-5; +} +if(top+_29.outerHeight()>$(window)._outerHeight()+$(document).scrollTop()){ +top=$(window)._outerHeight()+$(document).scrollTop()-_29.outerHeight()-5; +} +}else{ +var _2b=_27.parent; +_28=_2b.offset().left+_2b.outerWidth()-2; +if(_28+_29.outerWidth()+5>$(window)._outerWidth()+$(document).scrollLeft()){ +_28=_2b.offset().left-_29.outerWidth()+2; +} +var top=_2b.offset().top-3; +if(top+_29.outerHeight()>$(window)._outerHeight()+$(document).scrollTop()){ +top=$(window)._outerHeight()+$(document).scrollTop()-_29.outerHeight()-5; +} +} +_29.css({left:_28,top:top}); +_29.show(0,function(){ +if(!_29[0].shadow){ +_29[0].shadow=$("
                        ").insertAfter(_29); +} +_29[0].shadow.css({display:"block",zIndex:$.fn.menu.defaults.zIndex++,left:_29.css("left"),top:_29.css("top"),width:_29.outerWidth(),height:_29.outerHeight()}); +_29.css("z-index",$.fn.menu.defaults.zIndex++); +if(_29.hasClass("menu-top")){ +$.data(_29[0],"menu").options.onShow.call(_29[0]); +} +}); +}; +function _22(_2c){ +if(!_2c){ +return; +} +_2d(_2c); +_2c.find("div.menu-item").each(function(){ +if(this.submenu){ +_22(this.submenu); +} +$(this).removeClass("menu-active"); +}); +function _2d(m){ +m.stop(true,true); +if(m[0].shadow){ +m[0].shadow.hide(); +} +m.hide(); +}; +}; +function _2e(_2f,_30){ +var _31=null; +var tmp=$("
                        "); +function _32(_33){ +_33.children("div.menu-item").each(function(){ +var _34=$(_2f).menu("getItem",this); +var s=tmp.empty().html(_34.text).text(); +if(_30==$.trim(s)){ +_31=_34; +}else{ +if(this.submenu&&!_31){ +_32(this.submenu); +} +} +}); +}; +_32($(_2f)); +tmp.remove(); +return _31; +}; +function _f(_35,_36,_37){ +var t=$(_36); +if(!t.hasClass("menu-item")){ +return; +} +if(_37){ +t.addClass("menu-item-disabled"); +if(_36.onclick){ +_36.onclick1=_36.onclick; +_36.onclick=null; +} +}else{ +t.removeClass("menu-item-disabled"); +if(_36.onclick1){ +_36.onclick=_36.onclick1; +_36.onclick1=null; +} +} +}; +function _38(_39,_3a){ +var _3b=$(_39); +if(_3a.parent){ +if(!_3a.parent.submenu){ +var _3c=$("
                        ").appendTo("body"); +_3c.hide(); +_3a.parent.submenu=_3c; +$("
                        ").appendTo(_3a.parent); +} +_3b=_3a.parent.submenu; +} +if(_3a.separator){ +var _3d=$("
                        ").appendTo(_3b); +}else{ +var _3d=$("
                        ").appendTo(_3b); +$("
                        ").html(_3a.text).appendTo(_3d); +} +if(_3a.iconCls){ +$("
                        ").addClass(_3a.iconCls).appendTo(_3d); +} +if(_3a.id){ +_3d.attr("id",_3a.id); +} +if(_3a.name){ +_3d[0].itemName=_3a.name; +} +if(_3a.href){ +_3d[0].itemHref=_3a.href; +} +if(_3a.onclick){ +if(typeof _3a.onclick=="string"){ +_3d.attr("onclick",_3a.onclick); +}else{ +_3d[0].onclick=eval(_3a.onclick); +} +} +if(_3a.handler){ +_3d[0].onclick=eval(_3a.handler); +} +if(_3a.disabled){ +_f(_39,_3d[0],true); +} +_10(_39,_3d); +_12(_39,_3b); +_11(_39,_3b); +}; +function _3e(_3f,_40){ +function _41(el){ +if(el.submenu){ +el.submenu.children("div.menu-item").each(function(){ +_41(this); +}); +var _42=el.submenu[0].shadow; +if(_42){ +_42.remove(); +} +el.submenu.remove(); +} +$(el).remove(); +}; +_41(_40); +}; +function _43(_44){ +$(_44).children("div.menu-item").each(function(){ +_3e(_44,this); +}); +if(_44.shadow){ +_44.shadow.remove(); +} +$(_44).remove(); +}; +$.fn.menu=function(_45,_46){ +if(typeof _45=="string"){ +return $.fn.menu.methods[_45](this,_46); +} +_45=_45||{}; +return this.each(function(){ +var _47=$.data(this,"menu"); +if(_47){ +$.extend(_47.options,_45); +}else{ +_47=$.data(this,"menu",{options:$.extend({},$.fn.menu.defaults,$.fn.menu.parseOptions(this),_45)}); +_1(this); +} +$(this).css({left:_47.options.left,top:_47.options.top}); +}); +}; +$.fn.menu.methods={options:function(jq){ +return $.data(jq[0],"menu").options; +},show:function(jq,pos){ +return jq.each(function(){ +_25(this,pos); +}); +},hide:function(jq){ +return jq.each(function(){ +_1b(this); +}); +},destroy:function(jq){ +return jq.each(function(){ +_43(this); +}); +},setText:function(jq,_48){ +return jq.each(function(){ +$(_48.target).children("div.menu-text").html(_48.text); +}); +},setIcon:function(jq,_49){ +return jq.each(function(){ +var _4a=$(this).menu("getItem",_49.target); +if(_4a.iconCls){ +$(_4a.target).children("div.menu-icon").removeClass(_4a.iconCls).addClass(_49.iconCls); +}else{ +$("
                        ").addClass(_49.iconCls).appendTo(_49.target); +} +}); +},getItem:function(jq,_4b){ +var t=$(_4b); +var _4c={target:_4b,id:t.attr("id"),text:$.trim(t.children("div.menu-text").html()),disabled:t.hasClass("menu-item-disabled"),name:_4b.itemName,href:_4b.itemHref,onclick:_4b.onclick}; +var _4d=t.children("div.menu-icon"); +if(_4d.length){ +var cc=[]; +var aa=_4d.attr("class").split(" "); +for(var i=0;i "})); +if(_3.menu){ +$(_3.menu).menu(); +var _5=$(_3.menu).menu("options"); +var _6=_5.onShow; +var _7=_5.onHide; +$.extend(_5,{onShow:function(){ +var _8=$(this).menu("options"); +var _9=$(_8.alignTo); +var _a=_9.menubutton("options"); +_9.addClass((_a.plain==true)?_a.cls.btn2:_a.cls.btn1); +_6.call(this); +},onHide:function(){ +var _b=$(this).menu("options"); +var _c=$(_b.alignTo); +var _d=_c.menubutton("options"); +_c.removeClass((_d.plain==true)?_d.cls.btn2:_d.cls.btn1); +_7.call(this); +}}); +} +_e(_2,_3.disabled); +}; +function _e(_f,_10){ +var _11=$.data(_f,"menubutton").options; +_11.disabled=_10; +var btn=$(_f); +var t=btn.find("."+_11.cls.trigger); +if(!t.length){ +t=btn; +} +t.unbind(".menubutton"); +if(_10){ +btn.linkbutton("disable"); +}else{ +btn.linkbutton("enable"); +var _12=null; +t.bind("click.menubutton",function(){ +_13(_f); +return false; +}).bind("mouseenter.menubutton",function(){ +_12=setTimeout(function(){ +_13(_f); +},_11.duration); +return false; +}).bind("mouseleave.menubutton",function(){ +if(_12){ +clearTimeout(_12); +} +}); +} +}; +function _13(_14){ +var _15=$.data(_14,"menubutton").options; +if(_15.disabled||!_15.menu){ +return; +} +$("body>div.menu-top").menu("hide"); +var btn=$(_14); +var mm=$(_15.menu); +if(mm.length){ +mm.menu("options").alignTo=btn; +mm.menu("show",{alignTo:btn}); +} +btn.blur(); +}; +$.fn.menubutton=function(_16,_17){ +if(typeof _16=="string"){ +var _18=$.fn.menubutton.methods[_16]; +if(_18){ +return _18(this,_17); +}else{ +return this.linkbutton(_16,_17); +} +} +_16=_16||{}; +return this.each(function(){ +var _19=$.data(this,"menubutton"); +if(_19){ +$.extend(_19.options,_16); +}else{ +$.data(this,"menubutton",{options:$.extend({},$.fn.menubutton.defaults,$.fn.menubutton.parseOptions(this),_16)}); +$(this).removeAttr("disabled"); +} +_1(this); +}); +}; +$.fn.menubutton.methods={options:function(jq){ +var _1a=jq.linkbutton("options"); +var _1b=$.data(jq[0],"menubutton").options; +_1b.toggle=_1a.toggle; +_1b.selected=_1a.selected; +return _1b; +},enable:function(jq){ +return jq.each(function(){ +_e(this,false); +}); +},disable:function(jq){ +return jq.each(function(){ +_e(this,true); +}); +},destroy:function(jq){ +return jq.each(function(){ +var _1c=$(this).menubutton("options"); +if(_1c.menu){ +$(_1c.menu).menu("destroy"); +} +$(this).remove(); +}); +}}; +$.fn.menubutton.parseOptions=function(_1d){ +var t=$(_1d); +return $.extend({},$.fn.linkbutton.parseOptions(_1d),$.parser.parseOptions(_1d,["menu",{plain:"boolean",duration:"number"}])); +}; +$.fn.menubutton.defaults=$.extend({},$.fn.linkbutton.defaults,{plain:true,menu:null,duration:100,cls:{btn1:"m-btn-active",btn2:"m-btn-plain-active",arrow:"m-btn-downarrow",trigger:"m-btn"}}); +})(jQuery); + diff --git a/src/main/webapp/js/easyui-1.3.5/plugins/jquery.messager.js b/src/main/webapp/js/easyui-1.3.5/plugins/jquery.messager.js new file mode 100644 index 00000000..cac65812 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/plugins/jquery.messager.js @@ -0,0 +1,217 @@ +/** + * jQuery EasyUI 1.3.5 + * + * Copyright (c) 2009-2013 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL or commercial licenses + * To use it on other terms please contact us: info@jeasyui.com + * http://www.gnu.org/licenses/gpl.txt + * http://www.jeasyui.com/license_commercial.php + * + */ +(function($){ +function _1(el,_2,_3,_4){ +var _5=$(el).window("window"); +if(!_5){ +return; +} +switch(_2){ +case null: +_5.show(); +break; +case "slide": +_5.slideDown(_3); +break; +case "fade": +_5.fadeIn(_3); +break; +case "show": +_5.show(_3); +break; +} +var _6=null; +if(_4>0){ +_6=setTimeout(function(){ +_7(el,_2,_3); +},_4); +} +_5.hover(function(){ +if(_6){ +clearTimeout(_6); +} +},function(){ +if(_4>0){ +_6=setTimeout(function(){ +_7(el,_2,_3); +},_4); +} +}); +}; +function _7(el,_8,_9){ +if(el.locked==true){ +return; +} +el.locked=true; +var _a=$(el).window("window"); +if(!_a){ +return; +} +switch(_8){ +case null: +_a.hide(); +break; +case "slide": +_a.slideUp(_9); +break; +case "fade": +_a.fadeOut(_9); +break; +case "show": +_a.hide(_9); +break; +} +setTimeout(function(){ +$(el).window("destroy"); +},_9); +}; +function _b(_c){ +var _d=$.extend({},$.fn.window.defaults,{collapsible:false,minimizable:false,maximizable:false,shadow:false,draggable:false,resizable:false,closed:true,style:{left:"",top:"",right:0,zIndex:$.fn.window.defaults.zIndex++,bottom:-document.body.scrollTop-document.documentElement.scrollTop},onBeforeOpen:function(){ +_1(this,_d.showType,_d.showSpeed,_d.timeout); +return false; +},onBeforeClose:function(){ +_7(this,_d.showType,_d.showSpeed); +return false; +}},{title:"",width:250,height:100,showType:"slide",showSpeed:600,msg:"",timeout:4000},_c); +_d.style.zIndex=$.fn.window.defaults.zIndex++; +var _e=$("
                        ").html(_d.msg).appendTo("body"); +_e.window(_d); +_e.window("window").css(_d.style); +_e.window("open"); +return _e; +}; +function _f(_10,_11,_12){ +var win=$("
                        ").appendTo("body"); +win.append(_11); +if(_12){ +var tb=$("
                        ").appendTo(win); +for(var _13 in _12){ +$("").attr("href","javascript:void(0)").text(_13).css("margin-left",10).bind("click",eval(_12[_13])).appendTo(tb).linkbutton(); +} +} +win.window({title:_10,noheader:(_10?false:true),width:300,height:"auto",modal:true,collapsible:false,minimizable:false,maximizable:false,resizable:false,onClose:function(){ +setTimeout(function(){ +win.window("destroy"); +},100); +}}); +win.window("window").addClass("messager-window"); +win.children("div.messager-button").children("a:first").focus(); +return win; +}; +$.messager={show:function(_14){ +return _b(_14); +},alert:function(_15,msg,_16,fn){ +var _17="
                        "+msg+"
                        "; +switch(_16){ +case "error": +_17="
                        "+_17; +break; +case "info": +_17="
                        "+_17; +break; +case "question": +_17="
                        "+_17; +break; +case "warning": +_17="
                        "+_17; +break; +} +_17+="
                        "; +var _18={}; +_18[$.messager.defaults.ok]=function(){ +win.window("close"); +if(fn){ +fn(); +return false; +} +}; +var win=_f(_15,_17,_18); +return win; +},confirm:function(_19,msg,fn){ +var _1a="
                        "+"
                        "+msg+"
                        "+"
                        "; +var _1b={}; +_1b[$.messager.defaults.ok]=function(){ +win.window("close"); +if(fn){ +fn(true); +return false; +} +}; +_1b[$.messager.defaults.cancel]=function(){ +win.window("close"); +if(fn){ +fn(false); +return false; +} +}; +var win=_f(_19,_1a,_1b); +return win; +},prompt:function(_1c,msg,fn){ +var _1d="
                        "+"
                        "+msg+"
                        "+"
                        "+"
                        "+"
                        "; +var _1e={}; +_1e[$.messager.defaults.ok]=function(){ +win.window("close"); +if(fn){ +fn($(".messager-input",win).val()); +return false; +} +}; +_1e[$.messager.defaults.cancel]=function(){ +win.window("close"); +if(fn){ +fn(); +return false; +} +}; +var win=_f(_1c,_1d,_1e); +win.children("input.messager-input").focus(); +return win; +},progress:function(_1f){ +var _20={bar:function(){ +return $("body>div.messager-window").find("div.messager-p-bar"); +},close:function(){ +var win=$("body>div.messager-window>div.messager-body:has(div.messager-progress)"); +if(win.length){ +win.window("close"); +} +}}; +if(typeof _1f=="string"){ +var _21=_20[_1f]; +return _21(); +} +var _22=$.extend({title:"",msg:"",text:undefined,interval:300},_1f||{}); +var _23="
                        "; +var win=_f(_22.title,_23,null); +win.find("div.messager-p-msg").html(_22.msg); +var bar=win.find("div.messager-p-bar"); +bar.progressbar({text:_22.text}); +win.window({closable:false,onClose:function(){ +if(this.timer){ +clearInterval(this.timer); +} +$(this).window("destroy"); +}}); +if(_22.interval){ +win[0].timer=setInterval(function(){ +var v=bar.progressbar("getValue"); +v+=10; +if(v>100){ +v=0; +} +bar.progressbar("setValue",v); +},_22.interval); +} +return win; +}}; +$.messager.defaults={ok:"Ok",cancel:"Cancel"}; +})(jQuery); + diff --git a/src/main/webapp/js/easyui-1.3.5/plugins/jquery.numberbox.js b/src/main/webapp/js/easyui-1.3.5/plugins/jquery.numberbox.js new file mode 100644 index 00000000..edc30385 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/plugins/jquery.numberbox.js @@ -0,0 +1,224 @@ +/** + * jQuery EasyUI 1.3.5 + * + * Copyright (c) 2009-2013 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL or commercial licenses + * To use it on other terms please contact us: info@jeasyui.com + * http://www.gnu.org/licenses/gpl.txt + * http://www.jeasyui.com/license_commercial.php + * + */ +(function($){ +function _1(_2){ +$(_2).addClass("numberbox-f"); +var v=$("").insertAfter(_2); +var _3=$(_2).attr("name"); +if(_3){ +v.attr("name",_3); +$(_2).removeAttr("name").attr("numberboxName",_3); +} +return v; +}; +function _4(_5){ +var _6=$.data(_5,"numberbox").options; +var fn=_6.onChange; +_6.onChange=function(){ +}; +_7(_5,_6.parser.call(_5,_6.value)); +_6.onChange=fn; +_6.originalValue=_8(_5); +}; +function _8(_9){ +return $.data(_9,"numberbox").field.val(); +}; +function _7(_a,_b){ +var _c=$.data(_a,"numberbox"); +var _d=_c.options; +var _e=_8(_a); +_b=_d.parser.call(_a,_b); +_d.value=_b; +_c.field.val(_b); +$(_a).val(_d.formatter.call(_a,_b)); +if(_e!=_b){ +_d.onChange.call(_a,_b,_e); +} +}; +function _f(_10){ +var _11=$.data(_10,"numberbox").options; +$(_10).unbind(".numberbox").bind("keypress.numberbox",function(e){ +return _11.filter.call(_10,e); +}).bind("blur.numberbox",function(){ +_7(_10,$(this).val()); +$(this).val(_11.formatter.call(_10,_8(_10))); +}).bind("focus.numberbox",function(){ +var vv=_8(_10); +if(vv!=_11.parser.call(_10,$(this).val())){ +$(this).val(_11.formatter.call(_10,vv)); +} +}); +}; +function _12(_13){ +if($.fn.validatebox){ +var _14=$.data(_13,"numberbox").options; +$(_13).validatebox(_14); +} +}; +function _15(_16,_17){ +var _18=$.data(_16,"numberbox").options; +if(_17){ +_18.disabled=true; +$(_16).attr("disabled",true); +}else{ +_18.disabled=false; +$(_16).removeAttr("disabled"); +} +}; +$.fn.numberbox=function(_19,_1a){ +if(typeof _19=="string"){ +var _1b=$.fn.numberbox.methods[_19]; +if(_1b){ +return _1b(this,_1a); +}else{ +return this.validatebox(_19,_1a); +} +} +_19=_19||{}; +return this.each(function(){ +var _1c=$.data(this,"numberbox"); +if(_1c){ +$.extend(_1c.options,_19); +}else{ +_1c=$.data(this,"numberbox",{options:$.extend({},$.fn.numberbox.defaults,$.fn.numberbox.parseOptions(this),_19),field:_1(this)}); +$(this).removeAttr("disabled"); +$(this).css({imeMode:"disabled"}); +} +_15(this,_1c.options.disabled); +_f(this); +_12(this); +_4(this); +}); +}; +$.fn.numberbox.methods={options:function(jq){ +return $.data(jq[0],"numberbox").options; +},destroy:function(jq){ +return jq.each(function(){ +$.data(this,"numberbox").field.remove(); +$(this).validatebox("destroy"); +$(this).remove(); +}); +},disable:function(jq){ +return jq.each(function(){ +_15(this,true); +}); +},enable:function(jq){ +return jq.each(function(){ +_15(this,false); +}); +},fix:function(jq){ +return jq.each(function(){ +_7(this,$(this).val()); +}); +},setValue:function(jq,_1d){ +return jq.each(function(){ +_7(this,_1d); +}); +},getValue:function(jq){ +return _8(jq[0]); +},clear:function(jq){ +return jq.each(function(){ +var _1e=$.data(this,"numberbox"); +_1e.field.val(""); +$(this).val(""); +}); +},reset:function(jq){ +return jq.each(function(){ +var _1f=$(this).numberbox("options"); +$(this).numberbox("setValue",_1f.originalValue); +}); +}}; +$.fn.numberbox.parseOptions=function(_20){ +var t=$(_20); +return $.extend({},$.fn.validatebox.parseOptions(_20),$.parser.parseOptions(_20,["decimalSeparator","groupSeparator","suffix",{min:"number",max:"number",precision:"number"}]),{prefix:(t.attr("prefix")?t.attr("prefix"):undefined),disabled:(t.attr("disabled")?true:undefined),value:(t.val()||undefined)}); +}; +$.fn.numberbox.defaults=$.extend({},$.fn.validatebox.defaults,{disabled:false,value:"",min:null,max:null,precision:0,decimalSeparator:".",groupSeparator:"",prefix:"",suffix:"",filter:function(e){ +var _21=$(this).numberbox("options"); +if(e.which==45){ +return ($(this).val().indexOf("-")==-1?true:false); +} +var c=String.fromCharCode(e.which); +if(c==_21.decimalSeparator){ +return ($(this).val().indexOf(c)==-1?true:false); +}else{ +if(c==_21.groupSeparator){ +return true; +}else{ +if((e.which>=48&&e.which<=57&&e.ctrlKey==false&&e.shiftKey==false)||e.which==0||e.which==8){ +return true; +}else{ +if(e.ctrlKey==true&&(e.which==99||e.which==118)){ +return true; +}else{ +return false; +} +} +} +} +},formatter:function(_22){ +if(!_22){ +return _22; +} +_22=_22+""; +var _23=$(this).numberbox("options"); +var s1=_22,s2=""; +var _24=_22.indexOf("."); +if(_24>=0){ +s1=_22.substring(0,_24); +s2=_22.substring(_24+1,_22.length); +} +if(_23.groupSeparator){ +var p=/(\d+)(\d{3})/; +while(p.test(s1)){ +s1=s1.replace(p,"$1"+_23.groupSeparator+"$2"); +} +} +if(s2){ +return _23.prefix+s1+_23.decimalSeparator+s2+_23.suffix; +}else{ +return _23.prefix+s1+_23.suffix; +} +},parser:function(s){ +s=s+""; +var _25=$(this).numberbox("options"); +if(parseFloat(s)!=s){ +if(_25.prefix){ +s=$.trim(s.replace(new RegExp("\\"+$.trim(_25.prefix),"g"),"")); +} +if(_25.suffix){ +s=$.trim(s.replace(new RegExp("\\"+$.trim(_25.suffix),"g"),"")); +} +if(_25.groupSeparator){ +s=$.trim(s.replace(new RegExp("\\"+_25.groupSeparator,"g"),"")); +} +if(_25.decimalSeparator){ +s=$.trim(s.replace(new RegExp("\\"+_25.decimalSeparator,"g"),".")); +} +s=s.replace(/\s/g,""); +} +var val=parseFloat(s).toFixed(_25.precision); +if(isNaN(val)){ +val=""; +}else{ +if(typeof (_25.min)=="number"&&val<_25.min){ +val=_25.min.toFixed(_25.precision); +}else{ +if(typeof (_25.max)=="number"&&val>_25.max){ +val=_25.max.toFixed(_25.precision); +} +} +} +return val; +},onChange:function(_26,_27){ +}}); +})(jQuery); + diff --git a/src/main/webapp/js/easyui-1.3.5/plugins/jquery.numberspinner.js b/src/main/webapp/js/easyui-1.3.5/plugins/jquery.numberspinner.js new file mode 100644 index 00000000..5856610f --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/plugins/jquery.numberspinner.js @@ -0,0 +1,75 @@ +/** + * jQuery EasyUI 1.3.5 + * + * Copyright (c) 2009-2013 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL or commercial licenses + * To use it on other terms please contact us: info@jeasyui.com + * http://www.gnu.org/licenses/gpl.txt + * http://www.jeasyui.com/license_commercial.php + * + */ +(function($){ +function _1(_2){ +$(_2).addClass("numberspinner-f"); +var _3=$.data(_2,"numberspinner").options; +$(_2).spinner(_3).numberbox(_3); +}; +function _4(_5,_6){ +var _7=$.data(_5,"numberspinner").options; +var v=parseFloat($(_5).numberbox("getValue")||_7.value)||0; +if(_6==true){ +v-=_7.increment; +}else{ +v+=_7.increment; +} +$(_5).numberbox("setValue",v); +}; +$.fn.numberspinner=function(_8,_9){ +if(typeof _8=="string"){ +var _a=$.fn.numberspinner.methods[_8]; +if(_a){ +return _a(this,_9); +}else{ +return this.spinner(_8,_9); +} +} +_8=_8||{}; +return this.each(function(){ +var _b=$.data(this,"numberspinner"); +if(_b){ +$.extend(_b.options,_8); +}else{ +$.data(this,"numberspinner",{options:$.extend({},$.fn.numberspinner.defaults,$.fn.numberspinner.parseOptions(this),_8)}); +} +_1(this); +}); +}; +$.fn.numberspinner.methods={options:function(jq){ +var _c=$.data(jq[0],"numberspinner").options; +return $.extend(_c,{value:jq.numberbox("getValue"),originalValue:jq.numberbox("options").originalValue}); +},setValue:function(jq,_d){ +return jq.each(function(){ +$(this).numberbox("setValue",_d); +}); +},getValue:function(jq){ +return jq.numberbox("getValue"); +},clear:function(jq){ +return jq.each(function(){ +$(this).spinner("clear"); +$(this).numberbox("clear"); +}); +},reset:function(jq){ +return jq.each(function(){ +var _e=$(this).numberspinner("options"); +$(this).numberspinner("setValue",_e.originalValue); +}); +}}; +$.fn.numberspinner.parseOptions=function(_f){ +return $.extend({},$.fn.spinner.parseOptions(_f),$.fn.numberbox.parseOptions(_f),{}); +}; +$.fn.numberspinner.defaults=$.extend({},$.fn.spinner.defaults,$.fn.numberbox.defaults,{spin:function(_10){ +_4(this,_10); +}}); +})(jQuery); + diff --git a/src/main/webapp/js/easyui-1.3.5/plugins/jquery.pagination.js b/src/main/webapp/js/easyui-1.3.5/plugins/jquery.pagination.js new file mode 100644 index 00000000..fa20f58a --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/plugins/jquery.pagination.js @@ -0,0 +1,284 @@ +/** + * jQuery EasyUI 1.3.5 + * + * Copyright (c) 2009-2013 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL or commercial licenses + * To use it on other terms please contact us: info@jeasyui.com + * http://www.gnu.org/licenses/gpl.txt + * http://www.jeasyui.com/license_commercial.php + * + */ +(function($){ +function _1(_2){ +var _3=$.data(_2,"pagination"); +var _4=_3.options; +var bb=_3.bb={}; +var _5=$(_2).addClass("pagination").html("
                        "); +var tr=_5.find("tr"); +var aa=$.extend([],_4.layout); +if(!_4.showPageList){ +_6(aa,"list"); +} +if(!_4.showRefresh){ +_6(aa,"refresh"); +} +if(aa[0]=="sep"){ +aa.shift(); +} +if(aa[aa.length-1]=="sep"){ +aa.pop(); +} +for(var _7=0;_7"); +ps.bind("change",function(){ +_4.pageSize=parseInt($(this).val()); +_4.onChangePageSize.call(_2,_4.pageSize); +_10(_2,_4.pageNumber); +}); +for(var i=0;i<_4.pageList.length;i++){ +$("").text(_4.pageList[i]).appendTo(ps); +} +$("").append(ps).appendTo(tr); +}else{ +if(_8=="sep"){ +$("
                        ").appendTo(tr); +}else{ +if(_8=="first"){ +bb.first=_9("first"); +}else{ +if(_8=="prev"){ +bb.prev=_9("prev"); +}else{ +if(_8=="next"){ +bb.next=_9("next"); +}else{ +if(_8=="last"){ +bb.last=_9("last"); +}else{ +if(_8=="manual"){ +$("").html(_4.beforePageText).appendTo(tr).wrap(""); +bb.num=$("").appendTo(tr).wrap(""); +bb.num.unbind(".pagination").bind("keydown.pagination",function(e){ +if(e.keyCode==13){ +var _a=parseInt($(this).val())||1; +_10(_2,_a); +return false; +} +}); +bb.after=$("").appendTo(tr).wrap(""); +}else{ +if(_8=="refresh"){ +bb.refresh=_9("refresh"); +}else{ +if(_8=="links"){ +$("").appendTo(tr); +} +} +} +} +} +} +} +} +} +} +if(_4.buttons){ +$("
                        ").appendTo(tr); +if($.isArray(_4.buttons)){ +for(var i=0;i<_4.buttons.length;i++){ +var _b=_4.buttons[i]; +if(_b=="-"){ +$("
                        ").appendTo(tr); +}else{ +var td=$("").appendTo(tr); +var a=$("").appendTo(td); +a[0].onclick=eval(_b.handler||function(){ +}); +a.linkbutton($.extend({},_b,{plain:true})); +} +} +}else{ +var td=$("").appendTo(tr); +$(_4.buttons).appendTo(td).show(); +} +} +$("
                        ").appendTo(_5); +$("
                        ").appendTo(_5); +function _9(_c){ +var _d=_4.nav[_c]; +var a=$("").appendTo(tr); +a.wrap(""); +a.linkbutton({iconCls:_d.iconCls,plain:true}).unbind(".pagination").bind("click.pagination",function(){ +_d.handler.call(_2); +}); +return a; +}; +function _6(aa,_e){ +var _f=$.inArray(_e,aa); +if(_f>=0){ +aa.splice(_f,1); +} +return aa; +}; +}; +function _10(_11,_12){ +var _13=$.data(_11,"pagination").options; +_14(_11,{pageNumber:_12}); +_13.onSelectPage.call(_11,_13.pageNumber,_13.pageSize); +}; +function _14(_15,_16){ +var _17=$.data(_15,"pagination"); +var _18=_17.options; +var bb=_17.bb; +$.extend(_18,_16||{}); +var ps=$(_15).find("select.pagination-page-list"); +if(ps.length){ +ps.val(_18.pageSize+""); +_18.pageSize=parseInt(ps.val()); +} +var _19=Math.ceil(_18.total/_18.pageSize)||1; +if(_18.pageNumber<1){ +_18.pageNumber=1; +} +if(_18.pageNumber>_19){ +_18.pageNumber=_19; +} +if(bb.num){ +bb.num.val(_18.pageNumber); +} +if(bb.after){ +bb.after.html(_18.afterPageText.replace(/{pages}/,_19)); +} +var td=$(_15).find("td.pagination-links"); +if(td.length){ +td.empty(); +var _1a=_18.pageNumber-Math.floor(_18.links/2); +if(_1a<1){ +_1a=1; +} +var _1b=_1a+_18.links-1; +if(_1b>_19){ +_1b=_19; +} +_1a=_1b-_18.links+1; +if(_1a<1){ +_1a=1; +} +for(var i=_1a;i<=_1b;i++){ +var a=$("").appendTo(td); +a.linkbutton({plain:true,text:i}); +if(i==_18.pageNumber){ +a.linkbutton("select"); +}else{ +a.unbind(".pagination").bind("click.pagination",{pageNumber:i},function(e){ +_10(_15,e.data.pageNumber); +}); +} +} +} +var _1c=_18.displayMsg; +_1c=_1c.replace(/{from}/,_18.total==0?0:_18.pageSize*(_18.pageNumber-1)+1); +_1c=_1c.replace(/{to}/,Math.min(_18.pageSize*(_18.pageNumber),_18.total)); +_1c=_1c.replace(/{total}/,_18.total); +$(_15).find("div.pagination-info").html(_1c); +if(bb.first){ +bb.first.linkbutton({disabled:(_18.pageNumber==1)}); +} +if(bb.prev){ +bb.prev.linkbutton({disabled:(_18.pageNumber==1)}); +} +if(bb.next){ +bb.next.linkbutton({disabled:(_18.pageNumber==_19)}); +} +if(bb.last){ +bb.last.linkbutton({disabled:(_18.pageNumber==_19)}); +} +_1d(_15,_18.loading); +}; +function _1d(_1e,_1f){ +var _20=$.data(_1e,"pagination"); +var _21=_20.options; +_21.loading=_1f; +if(_21.showRefresh&&_20.bb.refresh){ +_20.bb.refresh.linkbutton({iconCls:(_21.loading?"pagination-loading":"pagination-load")}); +} +}; +$.fn.pagination=function(_22,_23){ +if(typeof _22=="string"){ +return $.fn.pagination.methods[_22](this,_23); +} +_22=_22||{}; +return this.each(function(){ +var _24; +var _25=$.data(this,"pagination"); +if(_25){ +_24=$.extend(_25.options,_22); +}else{ +_24=$.extend({},$.fn.pagination.defaults,$.fn.pagination.parseOptions(this),_22); +$.data(this,"pagination",{options:_24}); +} +_1(this); +_14(this); +}); +}; +$.fn.pagination.methods={options:function(jq){ +return $.data(jq[0],"pagination").options; +},loading:function(jq){ +return jq.each(function(){ +_1d(this,true); +}); +},loaded:function(jq){ +return jq.each(function(){ +_1d(this,false); +}); +},refresh:function(jq,_26){ +return jq.each(function(){ +_14(this,_26); +}); +},select:function(jq,_27){ +return jq.each(function(){ +_10(this,_27); +}); +}}; +$.fn.pagination.parseOptions=function(_28){ +var t=$(_28); +return $.extend({},$.parser.parseOptions(_28,[{total:"number",pageSize:"number",pageNumber:"number",links:"number"},{loading:"boolean",showPageList:"boolean",showRefresh:"boolean"}]),{pageList:(t.attr("pageList")?eval(t.attr("pageList")):undefined)}); +}; +$.fn.pagination.defaults={total:1,pageSize:10,pageNumber:1,pageList:[10,20,30,50],loading:false,buttons:null,showPageList:true,showRefresh:true,links:10,layout:["list","sep","first","prev","sep","manual","sep","next","last","sep","refresh"],onSelectPage:function(_29,_2a){ +},onBeforeRefresh:function(_2b,_2c){ +},onRefresh:function(_2d,_2e){ +},onChangePageSize:function(_2f){ +},beforePageText:"Page",afterPageText:"of {pages}",displayMsg:"Displaying {from} to {to} of {total} items",nav:{first:{iconCls:"pagination-first",handler:function(){ +var _30=$(this).pagination("options"); +if(_30.pageNumber>1){ +$(this).pagination("select",1); +} +}},prev:{iconCls:"pagination-prev",handler:function(){ +var _31=$(this).pagination("options"); +if(_31.pageNumber>1){ +$(this).pagination("select",_31.pageNumber-1); +} +}},next:{iconCls:"pagination-next",handler:function(){ +var _32=$(this).pagination("options"); +var _33=Math.ceil(_32.total/_32.pageSize); +if(_32.pageNumber<_33){ +$(this).pagination("select",_32.pageNumber+1); +} +}},last:{iconCls:"pagination-last",handler:function(){ +var _34=$(this).pagination("options"); +var _35=Math.ceil(_34.total/_34.pageSize); +if(_34.pageNumber<_35){ +$(this).pagination("select",_35); +} +}},refresh:{iconCls:"pagination-refresh",handler:function(){ +var _36=$(this).pagination("options"); +if(_36.onBeforeRefresh.call(this,_36.pageNumber,_36.pageSize)!=false){ +$(this).pagination("select",_36.pageNumber); +_36.onRefresh.call(this,_36.pageNumber,_36.pageSize); +} +}}}}; +})(jQuery); + diff --git a/src/main/webapp/js/easyui-1.3.5/plugins/jquery.panel.js b/src/main/webapp/js/easyui-1.3.5/plugins/jquery.panel.js new file mode 100644 index 00000000..0956a0bb --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/plugins/jquery.panel.js @@ -0,0 +1,520 @@ +/** + * jQuery EasyUI 1.3.5 + * + * Copyright (c) 2009-2013 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL or commercial licenses + * To use it on other terms please contact us: info@jeasyui.com + * http://www.gnu.org/licenses/gpl.txt + * http://www.jeasyui.com/license_commercial.php + * + */ +(function($){ +$.fn._remove=function(){ +return this.each(function(){ +$(this).remove(); +try{ +this.outerHTML=""; +} +catch(err){ +} +}); +}; +function _1(_2){ +_2._remove(); +}; +function _3(_4,_5){ +var _6=$.data(_4,"panel").options; +var _7=$.data(_4,"panel").panel; +var _8=_7.children("div.panel-header"); +var _9=_7.children("div.panel-body"); +if(_5){ +$.extend(_6,{width:_5.width,height:_5.height,left:_5.left,top:_5.top}); +} +_6.fit?$.extend(_6,_7._fit()):_7._fit(false); +_7.css({left:_6.left,top:_6.top}); +if(!isNaN(_6.width)){ +_7._outerWidth(_6.width); +}else{ +_7.width("auto"); +} +_8.add(_9)._outerWidth(_7.width()); +if(!isNaN(_6.height)){ +_7._outerHeight(_6.height); +_9._outerHeight(_7.height()-_8._outerHeight()); +}else{ +_9.height("auto"); +} +_7.css("height",""); +_6.onResize.apply(_4,[_6.width,_6.height]); +$(_4).find(">div,>form>div").triggerHandler("_resize"); +}; +function _a(_b,_c){ +var _d=$.data(_b,"panel").options; +var _e=$.data(_b,"panel").panel; +if(_c){ +if(_c.left!=null){ +_d.left=_c.left; +} +if(_c.top!=null){ +_d.top=_c.top; +} +} +_e.css({left:_d.left,top:_d.top}); +_d.onMove.apply(_b,[_d.left,_d.top]); +}; +function _f(_10){ +$(_10).addClass("panel-body"); +var _11=$("
                        ").insertBefore(_10); +_11[0].appendChild(_10); +_11.bind("_resize",function(){ +var _12=$.data(_10,"panel").options; +if(_12.fit==true){ +_3(_10); +} +return false; +}); +return _11; +}; +function _13(_14){ +var _15=$.data(_14,"panel").options; +var _16=$.data(_14,"panel").panel; +if(_15.tools&&typeof _15.tools=="string"){ +_16.find(">div.panel-header>div.panel-tool .panel-tool-a").appendTo(_15.tools); +} +_1(_16.children("div.panel-header")); +if(_15.title&&!_15.noheader){ +var _17=$("
                        "+_15.title+"
                        ").prependTo(_16); +if(_15.iconCls){ +_17.find(".panel-title").addClass("panel-with-icon"); +$("
                        ").addClass(_15.iconCls).appendTo(_17); +} +var _18=$("
                        ").appendTo(_17); +_18.bind("click",function(e){ +e.stopPropagation(); +}); +if(_15.tools){ +if($.isArray(_15.tools)){ +for(var i=0;i<_15.tools.length;i++){ +var t=$("").addClass(_15.tools[i].iconCls).appendTo(_18); +if(_15.tools[i].handler){ +t.bind("click",eval(_15.tools[i].handler)); +} +} +}else{ +$(_15.tools).children().each(function(){ +$(this).addClass($(this).attr("iconCls")).addClass("panel-tool-a").appendTo(_18); +}); +} +} +if(_15.collapsible){ +$("").appendTo(_18).bind("click",function(){ +if(_15.collapsed==true){ +_3c(_14,true); +}else{ +_2c(_14,true); +} +return false; +}); +} +if(_15.minimizable){ +$("").appendTo(_18).bind("click",function(){ +_47(_14); +return false; +}); +} +if(_15.maximizable){ +$("").appendTo(_18).bind("click",function(){ +if(_15.maximized==true){ +_4b(_14); +}else{ +_2b(_14); +} +return false; +}); +} +if(_15.closable){ +$("").appendTo(_18).bind("click",function(){ +_19(_14); +return false; +}); +} +_16.children("div.panel-body").removeClass("panel-body-noheader"); +}else{ +_16.children("div.panel-body").addClass("panel-body-noheader"); +} +}; +function _1a(_1b){ +var _1c=$.data(_1b,"panel"); +var _1d=_1c.options; +if(_1d.href){ +if(!_1c.isLoaded||!_1d.cache){ +if(_1d.onBeforeLoad.call(_1b)==false){ +return; +} +_1c.isLoaded=false; +_1e(_1b); +if(_1d.loadingMessage){ +$(_1b).html($("
                        ").html(_1d.loadingMessage)); +} +$.ajax({url:_1d.href,cache:false,dataType:"html",success:function(_1f){ +_20(_1d.extractor.call(_1b,_1f)); +_1d.onLoad.apply(_1b,arguments); +_1c.isLoaded=true; +}}); +} +}else{ +if(_1d.content){ +if(!_1c.isLoaded){ +_1e(_1b); +_20(_1d.content); +_1c.isLoaded=true; +} +} +} +function _20(_21){ +$(_1b).html(_21); +if($.parser){ +$.parser.parse($(_1b)); +} +}; +}; +function _1e(_22){ +var t=$(_22); +t.find(".combo-f").each(function(){ +$(this).combo("destroy"); +}); +t.find(".m-btn").each(function(){ +$(this).menubutton("destroy"); +}); +t.find(".s-btn").each(function(){ +$(this).splitbutton("destroy"); +}); +t.find(".tooltip-f").each(function(){ +$(this).tooltip("destroy"); +}); +}; +function _23(_24){ +$(_24).find("div.panel:visible,div.accordion:visible,div.tabs-container:visible,div.layout:visible").each(function(){ +$(this).triggerHandler("_resize",[true]); +}); +}; +function _25(_26,_27){ +var _28=$.data(_26,"panel").options; +var _29=$.data(_26,"panel").panel; +if(_27!=true){ +if(_28.onBeforeOpen.call(_26)==false){ +return; +} +} +_29.show(); +_28.closed=false; +_28.minimized=false; +var _2a=_29.children("div.panel-header").find("a.panel-tool-restore"); +if(_2a.length){ +_28.maximized=true; +} +_28.onOpen.call(_26); +if(_28.maximized==true){ +_28.maximized=false; +_2b(_26); +} +if(_28.collapsed==true){ +_28.collapsed=false; +_2c(_26); +} +if(!_28.collapsed){ +_1a(_26); +_23(_26); +} +}; +function _19(_2d,_2e){ +var _2f=$.data(_2d,"panel").options; +var _30=$.data(_2d,"panel").panel; +if(_2e!=true){ +if(_2f.onBeforeClose.call(_2d)==false){ +return; +} +} +_30._fit(false); +_30.hide(); +_2f.closed=true; +_2f.onClose.call(_2d); +}; +function _31(_32,_33){ +var _34=$.data(_32,"panel").options; +var _35=$.data(_32,"panel").panel; +if(_33!=true){ +if(_34.onBeforeDestroy.call(_32)==false){ +return; +} +} +_1e(_32); +_1(_35); +_34.onDestroy.call(_32); +}; +function _2c(_36,_37){ +var _38=$.data(_36,"panel").options; +var _39=$.data(_36,"panel").panel; +var _3a=_39.children("div.panel-body"); +var _3b=_39.children("div.panel-header").find("a.panel-tool-collapse"); +if(_38.collapsed==true){ +return; +} +_3a.stop(true,true); +if(_38.onBeforeCollapse.call(_36)==false){ +return; +} +_3b.addClass("panel-tool-expand"); +if(_37==true){ +_3a.slideUp("normal",function(){ +_38.collapsed=true; +_38.onCollapse.call(_36); +}); +}else{ +_3a.hide(); +_38.collapsed=true; +_38.onCollapse.call(_36); +} +}; +function _3c(_3d,_3e){ +var _3f=$.data(_3d,"panel").options; +var _40=$.data(_3d,"panel").panel; +var _41=_40.children("div.panel-body"); +var _42=_40.children("div.panel-header").find("a.panel-tool-collapse"); +if(_3f.collapsed==false){ +return; +} +_41.stop(true,true); +if(_3f.onBeforeExpand.call(_3d)==false){ +return; +} +_42.removeClass("panel-tool-expand"); +if(_3e==true){ +_41.slideDown("normal",function(){ +_3f.collapsed=false; +_3f.onExpand.call(_3d); +_1a(_3d); +_23(_3d); +}); +}else{ +_41.show(); +_3f.collapsed=false; +_3f.onExpand.call(_3d); +_1a(_3d); +_23(_3d); +} +}; +function _2b(_43){ +var _44=$.data(_43,"panel").options; +var _45=$.data(_43,"panel").panel; +var _46=_45.children("div.panel-header").find("a.panel-tool-max"); +if(_44.maximized==true){ +return; +} +_46.addClass("panel-tool-restore"); +if(!$.data(_43,"panel").original){ +$.data(_43,"panel").original={width:_44.width,height:_44.height,left:_44.left,top:_44.top,fit:_44.fit}; +} +_44.left=0; +_44.top=0; +_44.fit=true; +_3(_43); +_44.minimized=false; +_44.maximized=true; +_44.onMaximize.call(_43); +}; +function _47(_48){ +var _49=$.data(_48,"panel").options; +var _4a=$.data(_48,"panel").panel; +_4a._fit(false); +_4a.hide(); +_49.minimized=true; +_49.maximized=false; +_49.onMinimize.call(_48); +}; +function _4b(_4c){ +var _4d=$.data(_4c,"panel").options; +var _4e=$.data(_4c,"panel").panel; +var _4f=_4e.children("div.panel-header").find("a.panel-tool-max"); +if(_4d.maximized==false){ +return; +} +_4e.show(); +_4f.removeClass("panel-tool-restore"); +$.extend(_4d,$.data(_4c,"panel").original); +_3(_4c); +_4d.minimized=false; +_4d.maximized=false; +$.data(_4c,"panel").original=null; +_4d.onRestore.call(_4c); +}; +function _50(_51){ +var _52=$.data(_51,"panel").options; +var _53=$.data(_51,"panel").panel; +var _54=$(_51).panel("header"); +var _55=$(_51).panel("body"); +_53.css(_52.style); +_53.addClass(_52.cls); +if(_52.border){ +_54.removeClass("panel-header-noborder"); +_55.removeClass("panel-body-noborder"); +}else{ +_54.addClass("panel-header-noborder"); +_55.addClass("panel-body-noborder"); +} +_54.addClass(_52.headerCls); +_55.addClass(_52.bodyCls); +if(_52.id){ +$(_51).attr("id",_52.id); +}else{ +$(_51).attr("id",""); +} +}; +function _56(_57,_58){ +$.data(_57,"panel").options.title=_58; +$(_57).panel("header").find("div.panel-title").html(_58); +}; +var TO=false; +var _59=true; +$(window).unbind(".panel").bind("resize.panel",function(){ +if(!_59){ +return; +} +if(TO!==false){ +clearTimeout(TO); +} +TO=setTimeout(function(){ +_59=false; +var _5a=$("body.layout"); +if(_5a.length){ +_5a.layout("resize"); +}else{ +$("body").children("div.panel,div.accordion,div.tabs-container,div.layout").triggerHandler("_resize"); +} +_59=true; +TO=false; +},200); +}); +$.fn.panel=function(_5b,_5c){ +if(typeof _5b=="string"){ +return $.fn.panel.methods[_5b](this,_5c); +} +_5b=_5b||{}; +return this.each(function(){ +var _5d=$.data(this,"panel"); +var _5e; +if(_5d){ +_5e=$.extend(_5d.options,_5b); +_5d.isLoaded=false; +}else{ +_5e=$.extend({},$.fn.panel.defaults,$.fn.panel.parseOptions(this),_5b); +$(this).attr("title",""); +_5d=$.data(this,"panel",{options:_5e,panel:_f(this),isLoaded:false}); +} +_13(this); +_50(this); +if(_5e.doSize==true){ +_5d.panel.css("display","block"); +_3(this); +} +if(_5e.closed==true||_5e.minimized==true){ +_5d.panel.hide(); +}else{ +_25(this); +} +}); +}; +$.fn.panel.methods={options:function(jq){ +return $.data(jq[0],"panel").options; +},panel:function(jq){ +return $.data(jq[0],"panel").panel; +},header:function(jq){ +return $.data(jq[0],"panel").panel.find(">div.panel-header"); +},body:function(jq){ +return $.data(jq[0],"panel").panel.find(">div.panel-body"); +},setTitle:function(jq,_5f){ +return jq.each(function(){ +_56(this,_5f); +}); +},open:function(jq,_60){ +return jq.each(function(){ +_25(this,_60); +}); +},close:function(jq,_61){ +return jq.each(function(){ +_19(this,_61); +}); +},destroy:function(jq,_62){ +return jq.each(function(){ +_31(this,_62); +}); +},refresh:function(jq,_63){ +return jq.each(function(){ +$.data(this,"panel").isLoaded=false; +if(_63){ +$.data(this,"panel").options.href=_63; +} +_1a(this); +}); +},resize:function(jq,_64){ +return jq.each(function(){ +_3(this,_64); +}); +},move:function(jq,_65){ +return jq.each(function(){ +_a(this,_65); +}); +},maximize:function(jq){ +return jq.each(function(){ +_2b(this); +}); +},minimize:function(jq){ +return jq.each(function(){ +_47(this); +}); +},restore:function(jq){ +return jq.each(function(){ +_4b(this); +}); +},collapse:function(jq,_66){ +return jq.each(function(){ +_2c(this,_66); +}); +},expand:function(jq,_67){ +return jq.each(function(){ +_3c(this,_67); +}); +}}; +$.fn.panel.parseOptions=function(_68){ +var t=$(_68); +return $.extend({},$.parser.parseOptions(_68,["id","width","height","left","top","title","iconCls","cls","headerCls","bodyCls","tools","href",{cache:"boolean",fit:"boolean",border:"boolean",noheader:"boolean"},{collapsible:"boolean",minimizable:"boolean",maximizable:"boolean"},{closable:"boolean",collapsed:"boolean",minimized:"boolean",maximized:"boolean",closed:"boolean"}]),{loadingMessage:(t.attr("loadingMessage")!=undefined?t.attr("loadingMessage"):undefined)}); +}; +$.fn.panel.defaults={id:null,title:null,iconCls:null,width:"auto",height:"auto",left:null,top:null,cls:null,headerCls:null,bodyCls:null,style:{},href:null,cache:true,fit:false,border:true,doSize:true,noheader:false,content:null,collapsible:false,minimizable:false,maximizable:false,closable:false,collapsed:false,minimized:false,maximized:false,closed:false,tools:null,href:null,loadingMessage:"Loading...",extractor:function(_69){ +var _6a=/]*>((.|[\n\r])*)<\/body>/im; +var _6b=_6a.exec(_69); +if(_6b){ +return _6b[1]; +}else{ +return _69; +} +},onBeforeLoad:function(){ +},onLoad:function(){ +},onBeforeOpen:function(){ +},onOpen:function(){ +},onBeforeClose:function(){ +},onClose:function(){ +},onBeforeDestroy:function(){ +},onDestroy:function(){ +},onResize:function(_6c,_6d){ +},onMove:function(_6e,top){ +},onMaximize:function(){ +},onRestore:function(){ +},onMinimize:function(){ +},onBeforeCollapse:function(){ +},onBeforeExpand:function(){ +},onCollapse:function(){ +},onExpand:function(){ +}}; +})(jQuery); + diff --git a/src/main/webapp/js/easyui-1.3.5/plugins/jquery.parser.js b/src/main/webapp/js/easyui-1.3.5/plugins/jquery.parser.js new file mode 100644 index 00000000..298a0fff --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/plugins/jquery.parser.js @@ -0,0 +1,218 @@ +/** + * jQuery EasyUI 1.3.5 + * + * Copyright (c) 2009-2013 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL or commercial licenses + * To use it on other terms please contact us: info@jeasyui.com + * http://www.gnu.org/licenses/gpl.txt + * http://www.jeasyui.com/license_commercial.php + * + */ +(function($){ +$.parser={auto:true,onComplete:function(_1){ +},plugins:["draggable","droppable","resizable","pagination","tooltip","linkbutton","menu","menubutton","splitbutton","progressbar","tree","combobox","combotree","combogrid","numberbox","validatebox","searchbox","numberspinner","timespinner","calendar","datebox","datetimebox","slider","layout","panel","datagrid","propertygrid","treegrid","tabs","accordion","window","dialog"],parse:function(_2){ +var aa=[]; +for(var i=0;i<$.parser.plugins.length;i++){ +var _3=$.parser.plugins[i]; +var r=$(".easyui-"+_3,_2); +if(r.length){ +if(r[_3]){ +r[_3](); +}else{ +aa.push({name:_3,jq:r}); +} +} +} +if(aa.length&&window.easyloader){ +var _4=[]; +for(var i=0;i
                        ").appendTo("body"); +d.width(100); +$._boxModel=parseInt(d.width())==100; +d.remove(); +if(!window.easyloader&&$.parser.auto){ +$.parser.parse(); +} +}); +$.fn._outerWidth=function(_c){ +if(_c==undefined){ +if(this[0]==window){ +return this.width()||document.body.clientWidth; +} +return this.outerWidth()||0; +} +return this.each(function(){ +if($._boxModel){ +$(this).width(_c-($(this).outerWidth()-$(this).width())); +}else{ +$(this).width(_c); +} +}); +}; +$.fn._outerHeight=function(_d){ +if(_d==undefined){ +if(this[0]==window){ +return this.height()||document.body.clientHeight; +} +return this.outerHeight()||0; +} +return this.each(function(){ +if($._boxModel){ +$(this).height(_d-($(this).outerHeight()-$(this).height())); +}else{ +$(this).height(_d); +} +}); +}; +$.fn._scrollLeft=function(_e){ +if(_e==undefined){ +return this.scrollLeft(); +}else{ +return this.each(function(){ +$(this).scrollLeft(_e); +}); +} +}; +$.fn._propAttr=$.fn.prop||$.fn.attr; +$.fn._fit=function(_f){ +_f=_f==undefined?true:_f; +var t=this[0]; +var p=(t.tagName=="BODY"?t:this.parent()[0]); +var _10=p.fcount||0; +if(_f){ +if(!t.fitted){ +t.fitted=true; +p.fcount=_10+1; +$(p).addClass("panel-noscroll"); +if(p.tagName=="BODY"){ +$("html").addClass("panel-fit"); +} +} +}else{ +if(t.fitted){ +t.fitted=false; +p.fcount=_10-1; +if(p.fcount==0){ +$(p).removeClass("panel-noscroll"); +if(p.tagName=="BODY"){ +$("html").removeClass("panel-fit"); +} +} +} +} +return {width:$(p).width(),height:$(p).height()}; +}; +})(jQuery); +(function($){ +var _11=null; +var _12=null; +var _13=false; +function _14(e){ +if(e.touches.length!=1){ +return; +} +if(!_13){ +_13=true; +dblClickTimer=setTimeout(function(){ +_13=false; +},500); +}else{ +clearTimeout(dblClickTimer); +_13=false; +_15(e,"dblclick"); +} +_11=setTimeout(function(){ +_15(e,"contextmenu",3); +},1000); +_15(e,"mousedown"); +if($.fn.draggable.isDragging||$.fn.resizable.isResizing){ +e.preventDefault(); +} +}; +function _16(e){ +if(e.touches.length!=1){ +return; +} +if(_11){ +clearTimeout(_11); +} +_15(e,"mousemove"); +if($.fn.draggable.isDragging||$.fn.resizable.isResizing){ +e.preventDefault(); +} +}; +function _17(e){ +if(_11){ +clearTimeout(_11); +} +_15(e,"mouseup"); +if($.fn.draggable.isDragging||$.fn.resizable.isResizing){ +e.preventDefault(); +} +}; +function _15(e,_18,_19){ +var _1a=new $.Event(_18); +_1a.pageX=e.changedTouches[0].pageX; +_1a.pageY=e.changedTouches[0].pageY; +_1a.which=_19||1; +$(e.target).trigger(_1a); +}; +if(document.addEventListener){ +document.addEventListener("touchstart",_14,true); +document.addEventListener("touchmove",_16,true); +document.addEventListener("touchend",_17,true); +} +})(jQuery); + diff --git a/src/main/webapp/js/easyui-1.3.5/plugins/jquery.progressbar.js b/src/main/webapp/js/easyui-1.3.5/plugins/jquery.progressbar.js new file mode 100644 index 00000000..68f25b91 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/plugins/jquery.progressbar.js @@ -0,0 +1,80 @@ +/** + * jQuery EasyUI 1.3.5 + * + * Copyright (c) 2009-2013 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL or commercial licenses + * To use it on other terms please contact us: info@jeasyui.com + * http://www.gnu.org/licenses/gpl.txt + * http://www.jeasyui.com/license_commercial.php + * + */ +(function($){ +function _1(_2){ +$(_2).addClass("progressbar"); +$(_2).html("
                        "); +return $(_2); +}; +function _3(_4,_5){ +var _6=$.data(_4,"progressbar").options; +var _7=$.data(_4,"progressbar").bar; +if(_5){ +_6.width=_5; +} +_7._outerWidth(_6.width)._outerHeight(_6.height); +_7.find("div.progressbar-text").width(_7.width()); +_7.find("div.progressbar-text,div.progressbar-value").css({height:_7.height()+"px",lineHeight:_7.height()+"px"}); +}; +$.fn.progressbar=function(_8,_9){ +if(typeof _8=="string"){ +var _a=$.fn.progressbar.methods[_8]; +if(_a){ +return _a(this,_9); +} +} +_8=_8||{}; +return this.each(function(){ +var _b=$.data(this,"progressbar"); +if(_b){ +$.extend(_b.options,_8); +}else{ +_b=$.data(this,"progressbar",{options:$.extend({},$.fn.progressbar.defaults,$.fn.progressbar.parseOptions(this),_8),bar:_1(this)}); +} +$(this).progressbar("setValue",_b.options.value); +_3(this); +}); +}; +$.fn.progressbar.methods={options:function(jq){ +return $.data(jq[0],"progressbar").options; +},resize:function(jq,_c){ +return jq.each(function(){ +_3(this,_c); +}); +},getValue:function(jq){ +return $.data(jq[0],"progressbar").options.value; +},setValue:function(jq,_d){ +if(_d<0){ +_d=0; +} +if(_d>100){ +_d=100; +} +return jq.each(function(){ +var _e=$.data(this,"progressbar").options; +var _f=_e.text.replace(/{value}/,_d); +var _10=_e.value; +_e.value=_d; +$(this).find("div.progressbar-value").width(_d+"%"); +$(this).find("div.progressbar-text").html(_f); +if(_10!=_d){ +_e.onChange.call(this,_d,_10); +} +}); +}}; +$.fn.progressbar.parseOptions=function(_11){ +return $.extend({},$.parser.parseOptions(_11,["width","height","text",{value:"number"}])); +}; +$.fn.progressbar.defaults={width:"auto",height:22,value:0,text:"{value}%",onChange:function(_12,_13){ +}}; +})(jQuery); + diff --git a/src/main/webapp/js/easyui-1.3.5/plugins/jquery.propertygrid.js b/src/main/webapp/js/easyui-1.3.5/plugins/jquery.propertygrid.js new file mode 100644 index 00000000..3f700374 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/plugins/jquery.propertygrid.js @@ -0,0 +1,237 @@ +/** + * jQuery EasyUI 1.3.5 + * + * Copyright (c) 2009-2013 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL or commercial licenses + * To use it on other terms please contact us: info@jeasyui.com + * http://www.gnu.org/licenses/gpl.txt + * http://www.jeasyui.com/license_commercial.php + * + */ +(function($){ +var _1; +function _2(_3){ +var _4=$.data(_3,"propertygrid"); +var _5=$.data(_3,"propertygrid").options; +$(_3).datagrid($.extend({},_5,{cls:"propertygrid",view:(_5.showGroup?_5.groupView:_5.view),onClickRow:function(_6,_7){ +if(_1!=this){ +_a(_1); +_1=this; +} +if(_5.editIndex!=_6&&_7.editor){ +var _8=$(this).datagrid("getColumnOption","value"); +_8.editor=_7.editor; +_a(_1); +$(this).datagrid("beginEdit",_6); +$(this).datagrid("getEditors",_6)[0].target.focus(); +_5.editIndex=_6; +} +_5.onClickRow.call(_3,_6,_7); +},loadFilter:function(_9){ +_a(this); +return _5.loadFilter.call(this,_9); +}})); +$(document).unbind(".propertygrid").bind("mousedown.propertygrid",function(e){ +var p=$(e.target).closest("div.datagrid-view,div.combo-panel"); +if(p.length){ +return; +} +_a(_1); +_1=undefined; +}); +}; +function _a(_b){ +var t=$(_b); +if(!t.length){ +return; +} +var _c=$.data(_b,"propertygrid").options; +var _d=_c.editIndex; +if(_d==undefined){ +return; +} +var ed=t.datagrid("getEditors",_d)[0]; +if(ed){ +ed.target.blur(); +if(t.datagrid("validateRow",_d)){ +t.datagrid("endEdit",_d); +}else{ +t.datagrid("cancelEdit",_d); +} +} +_c.editIndex=undefined; +}; +$.fn.propertygrid=function(_e,_f){ +if(typeof _e=="string"){ +var _10=$.fn.propertygrid.methods[_e]; +if(_10){ +return _10(this,_f); +}else{ +return this.datagrid(_e,_f); +} +} +_e=_e||{}; +return this.each(function(){ +var _11=$.data(this,"propertygrid"); +if(_11){ +$.extend(_11.options,_e); +}else{ +var _12=$.extend({},$.fn.propertygrid.defaults,$.fn.propertygrid.parseOptions(this),_e); +_12.frozenColumns=$.extend(true,[],_12.frozenColumns); +_12.columns=$.extend(true,[],_12.columns); +$.data(this,"propertygrid",{options:_12}); +} +_2(this); +}); +}; +$.fn.propertygrid.methods={options:function(jq){ +return $.data(jq[0],"propertygrid").options; +}}; +$.fn.propertygrid.parseOptions=function(_13){ +return $.extend({},$.fn.datagrid.parseOptions(_13),$.parser.parseOptions(_13,[{showGroup:"boolean"}])); +}; +var _14=$.extend({},$.fn.datagrid.defaults.view,{render:function(_15,_16,_17){ +var _18=[]; +var _19=this.groups; +for(var i=0;i<_19.length;i++){ +_18.push(this.renderGroup.call(this,_15,i,_19[i],_17)); +} +$(_16).html(_18.join("")); +},renderGroup:function(_1a,_1b,_1c,_1d){ +var _1e=$.data(_1a,"datagrid"); +var _1f=_1e.options; +var _20=$(_1a).datagrid("getColumnFields",_1d); +var _21=[]; +_21.push("
                        "); +_21.push(""); +_21.push(""); +if((_1d&&(_1f.rownumbers||_1f.frozenColumns.length))||(!_1d&&!(_1f.rownumbers||_1f.frozenColumns.length))){ +_21.push(""); +} +_21.push(""); +_21.push(""); +_21.push("
                         "); +if(!_1d){ +_21.push(""); +_21.push(_1f.groupFormatter.call(_1a,_1c.value,_1c.rows)); +_21.push(""); +} +_21.push("
                        "); +_21.push("
                        "); +_21.push(""); +var _22=_1c.startIndex; +for(var j=0;j<_1c.rows.length;j++){ +var css=_1f.rowStyler?_1f.rowStyler.call(_1a,_22,_1c.rows[j]):""; +var _23=""; +var _24=""; +if(typeof css=="string"){ +_24=css; +}else{ +if(css){ +_23=css["class"]||""; +_24=css["style"]||""; +} +} +var cls="class=\"datagrid-row "+(_22%2&&_1f.striped?"datagrid-row-alt ":" ")+_23+"\""; +var _25=_24?"style=\""+_24+"\"":""; +var _26=_1e.rowIdPrefix+"-"+(_1d?1:2)+"-"+_22; +_21.push(""); +_21.push(this.renderRow.call(this,_1a,_20,_1d,_22,_1c.rows[j])); +_21.push(""); +_22++; +} +_21.push("
                        "); +return _21.join(""); +},bindEvents:function(_27){ +var _28=$.data(_27,"datagrid"); +var dc=_28.dc; +var _29=dc.body1.add(dc.body2); +var _2a=($.data(_29[0],"events")||$._data(_29[0],"events")).click[0].handler; +_29.unbind("click").bind("click",function(e){ +var tt=$(e.target); +var _2b=tt.closest("span.datagrid-row-expander"); +if(_2b.length){ +var _2c=_2b.closest("div.datagrid-group").attr("group-index"); +if(_2b.hasClass("datagrid-row-collapse")){ +$(_27).datagrid("collapseGroup",_2c); +}else{ +$(_27).datagrid("expandGroup",_2c); +} +}else{ +_2a(e); +} +e.stopPropagation(); +}); +},onBeforeRender:function(_2d,_2e){ +var _2f=$.data(_2d,"datagrid"); +var _30=_2f.options; +_31(); +var _32=[]; +for(var i=0;i<_2e.length;i++){ +var row=_2e[i]; +var _33=_34(row[_30.groupField]); +if(!_33){ +_33={value:row[_30.groupField],rows:[row]}; +_32.push(_33); +}else{ +_33.rows.push(row); +} +} +var _35=0; +var _36=[]; +for(var i=0;i<_32.length;i++){ +var _33=_32[i]; +_33.startIndex=_35; +_35+=_33.rows.length; +_36=_36.concat(_33.rows); +} +_2f.data.rows=_36; +this.groups=_32; +var _37=this; +setTimeout(function(){ +_37.bindEvents(_2d); +},0); +function _34(_38){ +for(var i=0;i<_32.length;i++){ +var _39=_32[i]; +if(_39.value==_38){ +return _39; +} +} +return null; +}; +function _31(){ +if(!$("#datagrid-group-style").length){ +$("head").append(""); +} +}; +}}); +$.extend($.fn.datagrid.methods,{expandGroup:function(jq,_3a){ +return jq.each(function(){ +var _3b=$.data(this,"datagrid").dc.view; +var _3c=_3b.find(_3a!=undefined?"div.datagrid-group[group-index=\""+_3a+"\"]":"div.datagrid-group"); +var _3d=_3c.find("span.datagrid-row-expander"); +if(_3d.hasClass("datagrid-row-expand")){ +_3d.removeClass("datagrid-row-expand").addClass("datagrid-row-collapse"); +_3c.next("table").show(); +} +$(this).datagrid("fixRowHeight"); +}); +},collapseGroup:function(jq,_3e){ +return jq.each(function(){ +var _3f=$.data(this,"datagrid").dc.view; +var _40=_3f.find(_3e!=undefined?"div.datagrid-group[group-index=\""+_3e+"\"]":"div.datagrid-group"); +var _41=_40.find("span.datagrid-row-expander"); +if(_41.hasClass("datagrid-row-collapse")){ +_41.removeClass("datagrid-row-collapse").addClass("datagrid-row-expand"); +_40.next("table").hide(); +} +$(this).datagrid("fixRowHeight"); +}); +}}); +$.fn.propertygrid.defaults=$.extend({},$.fn.datagrid.defaults,{singleSelect:true,remoteSort:false,fitColumns:true,loadMsg:"",frozenColumns:[[{field:"f",width:16,resizable:false}]],columns:[[{field:"name",title:"Name",width:100,sortable:true},{field:"value",title:"Value",width:100,resizable:false}]],showGroup:false,groupView:_14,groupField:"group",groupFormatter:function(_42,_43){ +return _42; +}}); +})(jQuery); + diff --git a/src/main/webapp/js/easyui-1.3.5/plugins/jquery.resizable.js b/src/main/webapp/js/easyui-1.3.5/plugins/jquery.resizable.js new file mode 100644 index 00000000..2b4634e3 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/plugins/jquery.resizable.js @@ -0,0 +1,172 @@ +/** + * jQuery EasyUI 1.3.5 + * + * Copyright (c) 2009-2013 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL or commercial licenses + * To use it on other terms please contact us: info@jeasyui.com + * http://www.gnu.org/licenses/gpl.txt + * http://www.jeasyui.com/license_commercial.php + * + */ +(function($){ +$.fn.resizable=function(_1,_2){ +if(typeof _1=="string"){ +return $.fn.resizable.methods[_1](this,_2); +} +function _3(e){ +var _4=e.data; +var _5=$.data(_4.target,"resizable").options; +if(_4.dir.indexOf("e")!=-1){ +var _6=_4.startWidth+e.pageX-_4.startX; +_6=Math.min(Math.max(_6,_5.minWidth),_5.maxWidth); +_4.width=_6; +} +if(_4.dir.indexOf("s")!=-1){ +var _7=_4.startHeight+e.pageY-_4.startY; +_7=Math.min(Math.max(_7,_5.minHeight),_5.maxHeight); +_4.height=_7; +} +if(_4.dir.indexOf("w")!=-1){ +var _6=_4.startWidth-e.pageX+_4.startX; +_6=Math.min(Math.max(_6,_5.minWidth),_5.maxWidth); +_4.width=_6; +_4.left=_4.startLeft+_4.startWidth-_4.width; +} +if(_4.dir.indexOf("n")!=-1){ +var _7=_4.startHeight-e.pageY+_4.startY; +_7=Math.min(Math.max(_7,_5.minHeight),_5.maxHeight); +_4.height=_7; +_4.top=_4.startTop+_4.startHeight-_4.height; +} +}; +function _8(e){ +var _9=e.data; +var t=$(_9.target); +t.css({left:_9.left,top:_9.top}); +if(t.outerWidth()!=_9.width){ +t._outerWidth(_9.width); +} +if(t.outerHeight()!=_9.height){ +t._outerHeight(_9.height); +} +}; +function _a(e){ +$.fn.resizable.isResizing=true; +$.data(e.data.target,"resizable").options.onStartResize.call(e.data.target,e); +return false; +}; +function _b(e){ +_3(e); +if($.data(e.data.target,"resizable").options.onResize.call(e.data.target,e)!=false){ +_8(e); +} +return false; +}; +function _c(e){ +$.fn.resizable.isResizing=false; +_3(e,true); +_8(e); +$.data(e.data.target,"resizable").options.onStopResize.call(e.data.target,e); +$(document).unbind(".resizable"); +$("body").css("cursor",""); +return false; +}; +return this.each(function(){ +var _d=null; +var _e=$.data(this,"resizable"); +if(_e){ +$(this).unbind(".resizable"); +_d=$.extend(_e.options,_1||{}); +}else{ +_d=$.extend({},$.fn.resizable.defaults,$.fn.resizable.parseOptions(this),_1||{}); +$.data(this,"resizable",{options:_d}); +} +if(_d.disabled==true){ +return; +} +$(this).bind("mousemove.resizable",{target:this},function(e){ +if($.fn.resizable.isResizing){ +return; +} +var _f=_10(e); +if(_f==""){ +$(e.data.target).css("cursor",""); +}else{ +$(e.data.target).css("cursor",_f+"-resize"); +} +}).bind("mouseleave.resizable",{target:this},function(e){ +$(e.data.target).css("cursor",""); +}).bind("mousedown.resizable",{target:this},function(e){ +var dir=_10(e); +if(dir==""){ +return; +} +function _11(css){ +var val=parseInt($(e.data.target).css(css)); +if(isNaN(val)){ +return 0; +}else{ +return val; +} +}; +var _12={target:e.data.target,dir:dir,startLeft:_11("left"),startTop:_11("top"),left:_11("left"),top:_11("top"),startX:e.pageX,startY:e.pageY,startWidth:$(e.data.target).outerWidth(),startHeight:$(e.data.target).outerHeight(),width:$(e.data.target).outerWidth(),height:$(e.data.target).outerHeight(),deltaWidth:$(e.data.target).outerWidth()-$(e.data.target).width(),deltaHeight:$(e.data.target).outerHeight()-$(e.data.target).height()}; +$(document).bind("mousedown.resizable",_12,_a); +$(document).bind("mousemove.resizable",_12,_b); +$(document).bind("mouseup.resizable",_12,_c); +$("body").css("cursor",dir+"-resize"); +}); +function _10(e){ +var tt=$(e.data.target); +var dir=""; +var _13=tt.offset(); +var _14=tt.outerWidth(); +var _15=tt.outerHeight(); +var _16=_d.edge; +if(e.pageY>_13.top&&e.pageY<_13.top+_16){ +dir+="n"; +}else{ +if(e.pageY<_13.top+_15&&e.pageY>_13.top+_15-_16){ +dir+="s"; +} +} +if(e.pageX>_13.left&&e.pageX<_13.left+_16){ +dir+="w"; +}else{ +if(e.pageX<_13.left+_14&&e.pageX>_13.left+_14-_16){ +dir+="e"; +} +} +var _17=_d.handles.split(","); +for(var i=0;i<_17.length;i++){ +var _18=_17[i].replace(/(^\s*)|(\s*$)/g,""); +if(_18=="all"||_18==dir){ +return dir; +} +} +return ""; +}; +}); +}; +$.fn.resizable.methods={options:function(jq){ +return $.data(jq[0],"resizable").options; +},enable:function(jq){ +return jq.each(function(){ +$(this).resizable({disabled:false}); +}); +},disable:function(jq){ +return jq.each(function(){ +$(this).resizable({disabled:true}); +}); +}}; +$.fn.resizable.parseOptions=function(_19){ +var t=$(_19); +return $.extend({},$.parser.parseOptions(_19,["handles",{minWidth:"number",minHeight:"number",maxWidth:"number",maxHeight:"number",edge:"number"}]),{disabled:(t.attr("disabled")?true:undefined)}); +}; +$.fn.resizable.defaults={disabled:false,handles:"n, e, s, w, ne, se, sw, nw, all",minWidth:10,minHeight:10,maxWidth:10000,maxHeight:10000,edge:5,onStartResize:function(e){ +},onResize:function(e){ +},onStopResize:function(e){ +}}; +$.fn.resizable.isResizing=false; +})(jQuery); + diff --git a/src/main/webapp/js/easyui-1.3.5/plugins/jquery.searchbox.js b/src/main/webapp/js/easyui-1.3.5/plugins/jquery.searchbox.js new file mode 100644 index 00000000..92bd8df4 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/plugins/jquery.searchbox.js @@ -0,0 +1,184 @@ +/** + * jQuery EasyUI 1.3.5 + * + * Copyright (c) 2009-2013 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL or commercial licenses + * To use it on other terms please contact us: info@jeasyui.com + * http://www.gnu.org/licenses/gpl.txt + * http://www.jeasyui.com/license_commercial.php + * + */ +(function($){ +function _1(_2){ +$(_2).addClass("searchbox-f").hide(); +var _3=$("").insertAfter(_2); +var _4=$("").appendTo(_3); +$("").appendTo(_3); +var _5=$(_2).attr("name"); +if(_5){ +_4.attr("name",_5); +$(_2).removeAttr("name").attr("searchboxName",_5); +} +return _3; +}; +function _6(_7,_8){ +var _9=$.data(_7,"searchbox").options; +var sb=$.data(_7,"searchbox").searchbox; +if(_8){ +_9.width=_8; +} +sb.appendTo("body"); +if(isNaN(_9.width)){ +_9.width=sb._outerWidth(); +} +var _a=sb.find("span.searchbox-button"); +var _b=sb.find("a.searchbox-menu"); +var _c=sb.find("input.searchbox-text"); +sb._outerWidth(_9.width)._outerHeight(_9.height); +_c._outerWidth(sb.width()-_b._outerWidth()-_a._outerWidth()); +_c.css({height:sb.height()+"px",lineHeight:sb.height()+"px"}); +_b._outerHeight(sb.height()); +_a._outerHeight(sb.height()); +var _d=_b.find("span.l-btn-left"); +_d._outerHeight(sb.height()); +_d.find("span.l-btn-text,span.m-btn-downarrow").css({height:_d.height()+"px",lineHeight:_d.height()+"px"}); +sb.insertAfter(_7); +}; +function _e(_f){ +var _10=$.data(_f,"searchbox"); +var _11=_10.options; +if(_11.menu){ +_10.menu=$(_11.menu).menu({onClick:function(_12){ +_13(_12); +}}); +var _14=_10.menu.children("div.menu-item:first"); +_10.menu.children("div.menu-item").each(function(){ +var _15=$.extend({},$.parser.parseOptions(this),{selected:($(this).attr("selected")?true:undefined)}); +if(_15.selected){ +_14=$(this); +return false; +} +}); +_14.triggerHandler("click"); +}else{ +_10.searchbox.find("a.searchbox-menu").remove(); +_10.menu=null; +} +function _13(_16){ +_10.searchbox.find("a.searchbox-menu").remove(); +var mb=$("").html(_16.text); +mb.prependTo(_10.searchbox).menubutton({menu:_10.menu,iconCls:_16.iconCls}); +_10.searchbox.find("input.searchbox-text").attr("name",_16.name||_16.text); +_6(_f); +}; +}; +function _17(_18){ +var _19=$.data(_18,"searchbox"); +var _1a=_19.options; +var _1b=_19.searchbox.find("input.searchbox-text"); +var _1c=_19.searchbox.find(".searchbox-button"); +_1b.unbind(".searchbox").bind("blur.searchbox",function(e){ +_1a.value=$(this).val(); +if(_1a.value==""){ +$(this).val(_1a.prompt); +$(this).addClass("searchbox-prompt"); +}else{ +$(this).removeClass("searchbox-prompt"); +} +}).bind("focus.searchbox",function(e){ +if($(this).val()!=_1a.value){ +$(this).val(_1a.value); +} +$(this).removeClass("searchbox-prompt"); +}).bind("keydown.searchbox",function(e){ +if(e.keyCode==13){ +e.preventDefault(); +_1a.value=$(this).val(); +_1a.searcher.call(_18,_1a.value,_1b._propAttr("name")); +return false; +} +}); +_1c.unbind(".searchbox").bind("click.searchbox",function(){ +_1a.searcher.call(_18,_1a.value,_1b._propAttr("name")); +}).bind("mouseenter.searchbox",function(){ +$(this).addClass("searchbox-button-hover"); +}).bind("mouseleave.searchbox",function(){ +$(this).removeClass("searchbox-button-hover"); +}); +}; +function _1d(_1e){ +var _1f=$.data(_1e,"searchbox"); +var _20=_1f.options; +var _21=_1f.searchbox.find("input.searchbox-text"); +if(_20.value==""){ +_21.val(_20.prompt); +_21.addClass("searchbox-prompt"); +}else{ +_21.val(_20.value); +_21.removeClass("searchbox-prompt"); +} +}; +$.fn.searchbox=function(_22,_23){ +if(typeof _22=="string"){ +return $.fn.searchbox.methods[_22](this,_23); +} +_22=_22||{}; +return this.each(function(){ +var _24=$.data(this,"searchbox"); +if(_24){ +$.extend(_24.options,_22); +}else{ +_24=$.data(this,"searchbox",{options:$.extend({},$.fn.searchbox.defaults,$.fn.searchbox.parseOptions(this),_22),searchbox:_1(this)}); +} +_e(this); +_1d(this); +_17(this); +_6(this); +}); +}; +$.fn.searchbox.methods={options:function(jq){ +return $.data(jq[0],"searchbox").options; +},menu:function(jq){ +return $.data(jq[0],"searchbox").menu; +},textbox:function(jq){ +return $.data(jq[0],"searchbox").searchbox.find("input.searchbox-text"); +},getValue:function(jq){ +return $.data(jq[0],"searchbox").options.value; +},setValue:function(jq,_25){ +return jq.each(function(){ +$(this).searchbox("options").value=_25; +$(this).searchbox("textbox").val(_25); +$(this).searchbox("textbox").blur(); +}); +},getName:function(jq){ +return $.data(jq[0],"searchbox").searchbox.find("input.searchbox-text").attr("name"); +},selectName:function(jq,_26){ +return jq.each(function(){ +var _27=$.data(this,"searchbox").menu; +if(_27){ +_27.children("div.menu-item[name=\""+_26+"\"]").triggerHandler("click"); +} +}); +},destroy:function(jq){ +return jq.each(function(){ +var _28=$(this).searchbox("menu"); +if(_28){ +_28.menu("destroy"); +} +$.data(this,"searchbox").searchbox.remove(); +$(this).remove(); +}); +},resize:function(jq,_29){ +return jq.each(function(){ +_6(this,_29); +}); +}}; +$.fn.searchbox.parseOptions=function(_2a){ +var t=$(_2a); +return $.extend({},$.parser.parseOptions(_2a,["width","height","prompt","menu"]),{value:t.val(),searcher:(t.attr("searcher")?eval(t.attr("searcher")):undefined)}); +}; +$.fn.searchbox.defaults={width:"auto",height:22,prompt:"",value:"",menu:null,searcher:function(_2b,_2c){ +}}; +})(jQuery); + diff --git a/src/main/webapp/js/easyui-1.3.5/plugins/jquery.slider.js b/src/main/webapp/js/easyui-1.3.5/plugins/jquery.slider.js new file mode 100644 index 00000000..1959bdb8 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/plugins/jquery.slider.js @@ -0,0 +1,280 @@ +/** + * jQuery EasyUI 1.3.5 + * + * Copyright (c) 2009-2013 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL or commercial licenses + * To use it on other terms please contact us: info@jeasyui.com + * http://www.gnu.org/licenses/gpl.txt + * http://www.jeasyui.com/license_commercial.php + * + */ +(function($){ +function _1(_2){ +var _3=$("
                        "+"
                        "+""+""+"
                        "+"
                        "+"
                        "+"
                        "+""+"
                        ").insertAfter(_2); +var t=$(_2); +t.addClass("slider-f").hide(); +var _4=t.attr("name"); +if(_4){ +_3.find("input.slider-value").attr("name",_4); +t.removeAttr("name").attr("sliderName",_4); +} +return _3; +}; +function _5(_6,_7){ +var _8=$.data(_6,"slider"); +var _9=_8.options; +var _a=_8.slider; +if(_7){ +if(_7.width){ +_9.width=_7.width; +} +if(_7.height){ +_9.height=_7.height; +} +} +if(_9.mode=="h"){ +_a.css("height",""); +_a.children("div").css("height",""); +if(!isNaN(_9.width)){ +_a.width(_9.width); +} +}else{ +_a.css("width",""); +_a.children("div").css("width",""); +if(!isNaN(_9.height)){ +_a.height(_9.height); +_a.find("div.slider-rule").height(_9.height); +_a.find("div.slider-rulelabel").height(_9.height); +_a.find("div.slider-inner")._outerHeight(_9.height); +} +} +_b(_6); +}; +function _c(_d){ +var _e=$.data(_d,"slider"); +var _f=_e.options; +var _10=_e.slider; +var aa=_f.mode=="h"?_f.rule:_f.rule.slice(0).reverse(); +if(_f.reversed){ +aa=aa.slice(0).reverse(); +} +_11(aa); +function _11(aa){ +var _12=_10.find("div.slider-rule"); +var _13=_10.find("div.slider-rulelabel"); +_12.empty(); +_13.empty(); +for(var i=0;i").appendTo(_12); +_15.css((_f.mode=="h"?"left":"top"),_14); +if(aa[i]!="|"){ +_15=$("").appendTo(_13); +_15.html(aa[i]); +if(_f.mode=="h"){ +_15.css({left:_14,marginLeft:-Math.round(_15.outerWidth()/2)}); +}else{ +_15.css({top:_14,marginTop:-Math.round(_15.outerHeight()/2)}); +} +} +} +}; +}; +function _16(_17){ +var _18=$.data(_17,"slider"); +var _19=_18.options; +var _1a=_18.slider; +_1a.removeClass("slider-h slider-v slider-disabled"); +_1a.addClass(_19.mode=="h"?"slider-h":"slider-v"); +_1a.addClass(_19.disabled?"slider-disabled":""); +_1a.find("a.slider-handle").draggable({axis:_19.mode,cursor:"pointer",disabled:_19.disabled,onDrag:function(e){ +var _1b=e.data.left; +var _1c=_1a.width(); +if(_19.mode!="h"){ +_1b=e.data.top; +_1c=_1a.height(); +} +if(_1b<0||_1b>_1c){ +return false; +}else{ +var _1d=_32(_17,_1b); +_1e(_1d); +return false; +} +},onBeforeDrag:function(){ +_18.isDragging=true; +},onStartDrag:function(){ +_19.onSlideStart.call(_17,_19.value); +},onStopDrag:function(e){ +var _1f=_32(_17,(_19.mode=="h"?e.data.left:e.data.top)); +_1e(_1f); +_19.onSlideEnd.call(_17,_19.value); +_19.onComplete.call(_17,_19.value); +_18.isDragging=false; +}}); +_1a.find("div.slider-inner").unbind(".slider").bind("mousedown.slider",function(e){ +if(_18.isDragging){ +return; +} +var pos=$(this).offset(); +var _20=_32(_17,(_19.mode=="h"?(e.pageX-pos.left):(e.pageY-pos.top))); +_1e(_20); +_19.onComplete.call(_17,_19.value); +}); +function _1e(_21){ +var s=Math.abs(_21%_19.step); +if(s<_19.step/2){ +_21-=s; +}else{ +_21=_21-s+_19.step; +} +_22(_17,_21); +}; +}; +function _22(_23,_24){ +var _25=$.data(_23,"slider"); +var _26=_25.options; +var _27=_25.slider; +var _28=_26.value; +if(_24<_26.min){ +_24=_26.min; +} +if(_24>_26.max){ +_24=_26.max; +} +_26.value=_24; +$(_23).val(_24); +_27.find("input.slider-value").val(_24); +var pos=_29(_23,_24); +var tip=_27.find(".slider-tip"); +if(_26.showTip){ +tip.show(); +tip.html(_26.tipFormatter.call(_23,_26.value)); +}else{ +tip.hide(); +} +if(_26.mode=="h"){ +var _2a="left:"+pos+"px;"; +_27.find(".slider-handle").attr("style",_2a); +tip.attr("style",_2a+"margin-left:"+(-Math.round(tip.outerWidth()/2))+"px"); +}else{ +var _2a="top:"+pos+"px;"; +_27.find(".slider-handle").attr("style",_2a); +tip.attr("style",_2a+"margin-left:"+(-Math.round(tip.outerWidth()))+"px"); +} +if(_28!=_24){ +_26.onChange.call(_23,_24,_28); +} +}; +function _b(_2b){ +var _2c=$.data(_2b,"slider").options; +var fn=_2c.onChange; +_2c.onChange=function(){ +}; +_22(_2b,_2c.value); +_2c.onChange=fn; +}; +function _29(_2d,_2e){ +var _2f=$.data(_2d,"slider"); +var _30=_2f.options; +var _31=_2f.slider; +if(_30.mode=="h"){ +var pos=(_2e-_30.min)/(_30.max-_30.min)*_31.width(); +if(_30.reversed){ +pos=_31.width()-pos; +} +}else{ +var pos=_31.height()-(_2e-_30.min)/(_30.max-_30.min)*_31.height(); +if(_30.reversed){ +pos=_31.height()-pos; +} +} +return pos.toFixed(0); +}; +function _32(_33,pos){ +var _34=$.data(_33,"slider"); +var _35=_34.options; +var _36=_34.slider; +if(_35.mode=="h"){ +var _37=_35.min+(_35.max-_35.min)*(pos/_36.width()); +}else{ +var _37=_35.min+(_35.max-_35.min)*((_36.height()-pos)/_36.height()); +} +return _35.reversed?_35.max-_37.toFixed(0):_37.toFixed(0); +}; +$.fn.slider=function(_38,_39){ +if(typeof _38=="string"){ +return $.fn.slider.methods[_38](this,_39); +} +_38=_38||{}; +return this.each(function(){ +var _3a=$.data(this,"slider"); +if(_3a){ +$.extend(_3a.options,_38); +}else{ +_3a=$.data(this,"slider",{options:$.extend({},$.fn.slider.defaults,$.fn.slider.parseOptions(this),_38),slider:_1(this)}); +$(this).removeAttr("disabled"); +} +var _3b=_3a.options; +_3b.min=parseFloat(_3b.min); +_3b.max=parseFloat(_3b.max); +_3b.value=parseFloat(_3b.value); +_3b.step=parseFloat(_3b.step); +_3b.originalValue=_3b.value; +_16(this); +_c(this); +_5(this); +}); +}; +$.fn.slider.methods={options:function(jq){ +return $.data(jq[0],"slider").options; +},destroy:function(jq){ +return jq.each(function(){ +$.data(this,"slider").slider.remove(); +$(this).remove(); +}); +},resize:function(jq,_3c){ +return jq.each(function(){ +_5(this,_3c); +}); +},getValue:function(jq){ +return jq.slider("options").value; +},setValue:function(jq,_3d){ +return jq.each(function(){ +_22(this,_3d); +}); +},clear:function(jq){ +return jq.each(function(){ +var _3e=$(this).slider("options"); +_22(this,_3e.min); +}); +},reset:function(jq){ +return jq.each(function(){ +var _3f=$(this).slider("options"); +_22(this,_3f.originalValue); +}); +},enable:function(jq){ +return jq.each(function(){ +$.data(this,"slider").options.disabled=false; +_16(this); +}); +},disable:function(jq){ +return jq.each(function(){ +$.data(this,"slider").options.disabled=true; +_16(this); +}); +}}; +$.fn.slider.parseOptions=function(_40){ +var t=$(_40); +return $.extend({},$.parser.parseOptions(_40,["width","height","mode",{reversed:"boolean",showTip:"boolean",min:"number",max:"number",step:"number"}]),{value:(t.val()||undefined),disabled:(t.attr("disabled")?true:undefined),rule:(t.attr("rule")?eval(t.attr("rule")):undefined)}); +}; +$.fn.slider.defaults={width:"auto",height:"auto",mode:"h",reversed:false,showTip:false,disabled:false,value:0,min:0,max:100,step:1,rule:[],tipFormatter:function(_41){ +return _41; +},onChange:function(_42,_43){ +},onSlideStart:function(_44){ +},onSlideEnd:function(_45){ +},onComplete:function(_46){ +}}; +})(jQuery); + diff --git a/src/main/webapp/js/easyui-1.3.5/plugins/jquery.spinner.js b/src/main/webapp/js/easyui-1.3.5/plugins/jquery.spinner.js new file mode 100644 index 00000000..47839f54 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/plugins/jquery.spinner.js @@ -0,0 +1,152 @@ +/** + * jQuery EasyUI 1.3.5 + * + * Copyright (c) 2009-2013 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL or commercial licenses + * To use it on other terms please contact us: info@jeasyui.com + * http://www.gnu.org/licenses/gpl.txt + * http://www.jeasyui.com/license_commercial.php + * + */ +(function($){ +function _1(_2){ +var _3=$(""+""+""+""+""+"").insertAfter(_2); +$(_2).addClass("spinner-text spinner-f").prependTo(_3); +return _3; +}; +function _4(_5,_6){ +var _7=$.data(_5,"spinner").options; +var _8=$.data(_5,"spinner").spinner; +if(_6){ +_7.width=_6; +} +var _9=$("
                        ").insertBefore(_8); +_8.appendTo("body"); +if(isNaN(_7.width)){ +_7.width=$(_5).outerWidth(); +} +var _a=_8.find(".spinner-arrow"); +_8._outerWidth(_7.width)._outerHeight(_7.height); +$(_5)._outerWidth(_8.width()-_a.outerWidth()); +$(_5).css({height:_8.height()+"px",lineHeight:_8.height()+"px"}); +_a._outerHeight(_8.height()); +_a.find("span")._outerHeight(_a.height()/2); +_8.insertAfter(_9); +_9.remove(); +}; +function _b(_c){ +var _d=$.data(_c,"spinner").options; +var _e=$.data(_c,"spinner").spinner; +_e.find(".spinner-arrow-up,.spinner-arrow-down").unbind(".spinner"); +if(!_d.disabled){ +_e.find(".spinner-arrow-up").bind("mouseenter.spinner",function(){ +$(this).addClass("spinner-arrow-hover"); +}).bind("mouseleave.spinner",function(){ +$(this).removeClass("spinner-arrow-hover"); +}).bind("click.spinner",function(){ +_d.spin.call(_c,false); +_d.onSpinUp.call(_c); +$(_c).validatebox("validate"); +}); +_e.find(".spinner-arrow-down").bind("mouseenter.spinner",function(){ +$(this).addClass("spinner-arrow-hover"); +}).bind("mouseleave.spinner",function(){ +$(this).removeClass("spinner-arrow-hover"); +}).bind("click.spinner",function(){ +_d.spin.call(_c,true); +_d.onSpinDown.call(_c); +$(_c).validatebox("validate"); +}); +} +}; +function _f(_10,_11){ +var _12=$.data(_10,"spinner").options; +if(_11){ +_12.disabled=true; +$(_10).attr("disabled",true); +}else{ +_12.disabled=false; +$(_10).removeAttr("disabled"); +} +}; +$.fn.spinner=function(_13,_14){ +if(typeof _13=="string"){ +var _15=$.fn.spinner.methods[_13]; +if(_15){ +return _15(this,_14); +}else{ +return this.validatebox(_13,_14); +} +} +_13=_13||{}; +return this.each(function(){ +var _16=$.data(this,"spinner"); +if(_16){ +$.extend(_16.options,_13); +}else{ +_16=$.data(this,"spinner",{options:$.extend({},$.fn.spinner.defaults,$.fn.spinner.parseOptions(this),_13),spinner:_1(this)}); +$(this).removeAttr("disabled"); +} +_16.options.originalValue=_16.options.value; +$(this).val(_16.options.value); +$(this).attr("readonly",!_16.options.editable); +_f(this,_16.options.disabled); +_4(this); +$(this).validatebox(_16.options); +_b(this); +}); +}; +$.fn.spinner.methods={options:function(jq){ +var _17=$.data(jq[0],"spinner").options; +return $.extend(_17,{value:jq.val()}); +},destroy:function(jq){ +return jq.each(function(){ +var _18=$.data(this,"spinner").spinner; +$(this).validatebox("destroy"); +_18.remove(); +}); +},resize:function(jq,_19){ +return jq.each(function(){ +_4(this,_19); +}); +},enable:function(jq){ +return jq.each(function(){ +_f(this,false); +_b(this); +}); +},disable:function(jq){ +return jq.each(function(){ +_f(this,true); +_b(this); +}); +},getValue:function(jq){ +return jq.val(); +},setValue:function(jq,_1a){ +return jq.each(function(){ +var _1b=$.data(this,"spinner").options; +_1b.value=_1a; +$(this).val(_1a); +}); +},clear:function(jq){ +return jq.each(function(){ +var _1c=$.data(this,"spinner").options; +_1c.value=""; +$(this).val(""); +}); +},reset:function(jq){ +return jq.each(function(){ +var _1d=$(this).spinner("options"); +$(this).spinner("setValue",_1d.originalValue); +}); +}}; +$.fn.spinner.parseOptions=function(_1e){ +var t=$(_1e); +return $.extend({},$.fn.validatebox.parseOptions(_1e),$.parser.parseOptions(_1e,["width","height","min","max",{increment:"number",editable:"boolean"}]),{value:(t.val()||undefined),disabled:(t.attr("disabled")?true:undefined)}); +}; +$.fn.spinner.defaults=$.extend({},$.fn.validatebox.defaults,{width:"auto",height:22,deltaX:19,value:"",min:null,max:null,increment:1,editable:true,disabled:false,spin:function(_1f){ +},onSpinUp:function(){ +},onSpinDown:function(){ +}}); +})(jQuery); + diff --git a/src/main/webapp/js/easyui-1.3.5/plugins/jquery.splitbutton.js b/src/main/webapp/js/easyui-1.3.5/plugins/jquery.splitbutton.js new file mode 100644 index 00000000..8138b1a4 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/plugins/jquery.splitbutton.js @@ -0,0 +1,50 @@ +/** + * jQuery EasyUI 1.3.5 + * + * Copyright (c) 2009-2013 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL or commercial licenses + * To use it on other terms please contact us: info@jeasyui.com + * http://www.gnu.org/licenses/gpl.txt + * http://www.jeasyui.com/license_commercial.php + * + */ +(function($){ +function _1(_2){ +var _3=$.data(_2,"splitbutton").options; +$(_2).menubutton(_3); +}; +$.fn.splitbutton=function(_4,_5){ +if(typeof _4=="string"){ +var _6=$.fn.splitbutton.methods[_4]; +if(_6){ +return _6(this,_5); +}else{ +return this.menubutton(_4,_5); +} +} +_4=_4||{}; +return this.each(function(){ +var _7=$.data(this,"splitbutton"); +if(_7){ +$.extend(_7.options,_4); +}else{ +$.data(this,"splitbutton",{options:$.extend({},$.fn.splitbutton.defaults,$.fn.splitbutton.parseOptions(this),_4)}); +$(this).removeAttr("disabled"); +} +_1(this); +}); +}; +$.fn.splitbutton.methods={options:function(jq){ +var _8=jq.menubutton("options"); +var _9=$.data(jq[0],"splitbutton").options; +$.extend(_9,{disabled:_8.disabled,toggle:_8.toggle,selected:_8.selected}); +return _9; +}}; +$.fn.splitbutton.parseOptions=function(_a){ +var t=$(_a); +return $.extend({},$.fn.linkbutton.parseOptions(_a),$.parser.parseOptions(_a,["menu",{plain:"boolean",duration:"number"}])); +}; +$.fn.splitbutton.defaults=$.extend({},$.fn.linkbutton.defaults,{plain:true,menu:null,duration:100,cls:{btn1:"s-btn-active",btn2:"s-btn-plain-active",arrow:"s-btn-downarrow",trigger:"s-btn-downarrow"}}); +})(jQuery); + diff --git a/src/main/webapp/js/easyui-1.3.5/plugins/jquery.tabs.js b/src/main/webapp/js/easyui-1.3.5/plugins/jquery.tabs.js new file mode 100644 index 00000000..87b742b6 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/plugins/jquery.tabs.js @@ -0,0 +1,609 @@ +/** + * jQuery EasyUI 1.3.5 + * + * Copyright (c) 2009-2013 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL or commercial licenses + * To use it on other terms please contact us: info@jeasyui.com + * http://www.gnu.org/licenses/gpl.txt + * http://www.jeasyui.com/license_commercial.php + * + */ +(function($){ +function _1(_2){ +var _3=$.data(_2,"tabs").options; +if(_3.tabPosition=="left"||_3.tabPosition=="right"||!_3.showHeader){ +return; +} +var _4=$(_2).children("div.tabs-header"); +var _5=_4.children("div.tabs-tool"); +var _6=_4.children("div.tabs-scroller-left"); +var _7=_4.children("div.tabs-scroller-right"); +var _8=_4.children("div.tabs-wrap"); +var _9=_4.outerHeight(); +if(_3.plain){ +_9-=_9-_4.height(); +} +_5._outerHeight(_9); +var _a=0; +$("ul.tabs li",_4).each(function(){ +_a+=$(this).outerWidth(true); +}); +var _b=_4.width()-_5._outerWidth(); +if(_a>_b){ +_6.add(_7).show()._outerHeight(_9); +if(_3.toolPosition=="left"){ +_5.css({left:_6.outerWidth(),right:""}); +_8.css({marginLeft:_6.outerWidth()+_5._outerWidth(),marginRight:_7._outerWidth(),width:_b-_6.outerWidth()-_7.outerWidth()}); +}else{ +_5.css({left:"",right:_7.outerWidth()}); +_8.css({marginLeft:_6.outerWidth(),marginRight:_7.outerWidth()+_5._outerWidth(),width:_b-_6.outerWidth()-_7.outerWidth()}); +} +}else{ +_6.add(_7).hide(); +if(_3.toolPosition=="left"){ +_5.css({left:0,right:""}); +_8.css({marginLeft:_5._outerWidth(),marginRight:0,width:_b}); +}else{ +_5.css({left:"",right:0}); +_8.css({marginLeft:0,marginRight:_5._outerWidth(),width:_b}); +} +} +}; +function _c(_d){ +var _e=$.data(_d,"tabs").options; +var _f=$(_d).children("div.tabs-header"); +if(_e.tools){ +if(typeof _e.tools=="string"){ +$(_e.tools).addClass("tabs-tool").appendTo(_f); +$(_e.tools).show(); +}else{ +_f.children("div.tabs-tool").remove(); +var _10=$("
                        ").appendTo(_f); +var tr=_10.find("tr"); +for(var i=0;i<_e.tools.length;i++){ +var td=$("").appendTo(tr); +var _11=$("").appendTo(td); +_11[0].onclick=eval(_e.tools[i].handler||function(){ +}); +_11.linkbutton($.extend({},_e.tools[i],{plain:true})); +} +} +}else{ +_f.children("div.tabs-tool").remove(); +} +}; +function _12(_13){ +var _14=$.data(_13,"tabs"); +var _15=_14.options; +var cc=$(_13); +_15.fit?$.extend(_15,cc._fit()):cc._fit(false); +cc.width(_15.width).height(_15.height); +var _16=$(_13).children("div.tabs-header"); +var _17=$(_13).children("div.tabs-panels"); +var _18=_16.find("div.tabs-wrap"); +var ul=_18.find(".tabs"); +for(var i=0;i<_14.tabs.length;i++){ +var _19=_14.tabs[i].panel("options"); +var p_t=_19.tab.find("a.tabs-inner"); +var _1a=parseInt(_19.tabWidth||_15.tabWidth)||undefined; +if(_1a){ +p_t._outerWidth(_1a); +}else{ +p_t.css("width",""); +} +p_t._outerHeight(_15.tabHeight); +p_t.css("lineHeight",p_t.height()+"px"); +} +if(_15.tabPosition=="left"||_15.tabPosition=="right"){ +_16._outerWidth(_15.showHeader?_15.headerWidth:0); +_17._outerWidth(cc.width()-_16.outerWidth()); +_16.add(_17)._outerHeight(_15.height); +_18._outerWidth(_16.width()); +ul._outerWidth(_18.width()).css("height",""); +}else{ +var lrt=_16.children("div.tabs-scroller-left,div.tabs-scroller-right,div.tabs-tool"); +_16._outerWidth(_15.width).css("height",""); +if(_15.showHeader){ +_16.css("background-color",""); +_18.css("height",""); +lrt.show(); +}else{ +_16.css("background-color","transparent"); +_16._outerHeight(0); +_18._outerHeight(0); +lrt.hide(); +} +ul._outerHeight(_15.tabHeight).css("width",""); +_1(_13); +var _1b=_15.height; +if(!isNaN(_1b)){ +_17._outerHeight(_1b-_16.outerHeight()); +}else{ +_17.height("auto"); +} +var _1a=_15.width; +if(!isNaN(_1a)){ +_17._outerWidth(_1a); +}else{ +_17.width("auto"); +} +} +}; +function _1c(_1d){ +var _1e=$.data(_1d,"tabs").options; +var tab=_1f(_1d); +if(tab){ +var _20=$(_1d).children("div.tabs-panels"); +var _21=_1e.width=="auto"?"auto":_20.width(); +var _22=_1e.height=="auto"?"auto":_20.height(); +tab.panel("resize",{width:_21,height:_22}); +} +}; +function _23(_24){ +var _25=$.data(_24,"tabs").tabs; +var cc=$(_24); +cc.addClass("tabs-container"); +var pp=$("
                        ").insertBefore(cc); +cc.children("div").each(function(){ +pp[0].appendChild(this); +}); +cc[0].appendChild(pp[0]); +$("
                        "+"
                        "+"
                        "+"
                        "+"
                          "+"
                          "+"
                          ").prependTo(_24); +cc.children("div.tabs-panels").children("div").each(function(i){ +var _26=$.extend({},$.parser.parseOptions(this),{selected:($(this).attr("selected")?true:undefined)}); +var pp=$(this); +_25.push(pp); +_36(_24,pp,_26); +}); +cc.children("div.tabs-header").find(".tabs-scroller-left, .tabs-scroller-right").hover(function(){ +$(this).addClass("tabs-scroller-over"); +},function(){ +$(this).removeClass("tabs-scroller-over"); +}); +cc.bind("_resize",function(e,_27){ +var _28=$.data(_24,"tabs").options; +if(_28.fit==true||_27){ +_12(_24); +_1c(_24); +} +return false; +}); +}; +function _29(_2a){ +var _2b=$.data(_2a,"tabs"); +var _2c=_2b.options; +$(_2a).children("div.tabs-header").unbind().bind("click",function(e){ +if($(e.target).hasClass("tabs-scroller-left")){ +$(_2a).tabs("scrollBy",-_2c.scrollIncrement); +}else{ +if($(e.target).hasClass("tabs-scroller-right")){ +$(_2a).tabs("scrollBy",_2c.scrollIncrement); +}else{ +var li=$(e.target).closest("li"); +if(li.hasClass("tabs-disabled")){ +return; +} +var a=$(e.target).closest("a.tabs-close"); +if(a.length){ +_4c(_2a,_2d(li)); +}else{ +if(li.length){ +var _2e=_2d(li); +var _2f=_2b.tabs[_2e].panel("options"); +if(_2f.collapsible){ +_2f.closed?_41(_2a,_2e):_6b(_2a,_2e); +}else{ +_41(_2a,_2e); +} +} +} +} +} +}).bind("contextmenu",function(e){ +var li=$(e.target).closest("li"); +if(li.hasClass("tabs-disabled")){ +return; +} +if(li.length){ +_2c.onContextMenu.call(_2a,e,li.find("span.tabs-title").html(),_2d(li)); +} +}); +function _2d(li){ +var _30=0; +li.parent().children("li").each(function(i){ +if(li[0]==this){ +_30=i; +return false; +} +}); +return _30; +}; +}; +function _31(_32){ +var _33=$.data(_32,"tabs").options; +var _34=$(_32).children("div.tabs-header"); +var _35=$(_32).children("div.tabs-panels"); +_34.removeClass("tabs-header-top tabs-header-bottom tabs-header-left tabs-header-right"); +_35.removeClass("tabs-panels-top tabs-panels-bottom tabs-panels-left tabs-panels-right"); +if(_33.tabPosition=="top"){ +_34.insertBefore(_35); +}else{ +if(_33.tabPosition=="bottom"){ +_34.insertAfter(_35); +_34.addClass("tabs-header-bottom"); +_35.addClass("tabs-panels-top"); +}else{ +if(_33.tabPosition=="left"){ +_34.addClass("tabs-header-left"); +_35.addClass("tabs-panels-right"); +}else{ +if(_33.tabPosition=="right"){ +_34.addClass("tabs-header-right"); +_35.addClass("tabs-panels-left"); +} +} +} +} +if(_33.plain==true){ +_34.addClass("tabs-header-plain"); +}else{ +_34.removeClass("tabs-header-plain"); +} +if(_33.border==true){ +_34.removeClass("tabs-header-noborder"); +_35.removeClass("tabs-panels-noborder"); +}else{ +_34.addClass("tabs-header-noborder"); +_35.addClass("tabs-panels-noborder"); +} +}; +function _36(_37,pp,_38){ +var _39=$.data(_37,"tabs"); +_38=_38||{}; +pp.panel($.extend({},_38,{border:false,noheader:true,closed:true,doSize:false,iconCls:(_38.icon?_38.icon:undefined),onLoad:function(){ +if(_38.onLoad){ +_38.onLoad.call(this,arguments); +} +_39.options.onLoad.call(_37,$(this)); +}})); +var _3a=pp.panel("options"); +var _3b=$(_37).children("div.tabs-header").find("ul.tabs"); +_3a.tab=$("
                        • ").appendTo(_3b); +_3a.tab.append(""+""+""+""); +$(_37).tabs("update",{tab:pp,options:_3a}); +}; +function _3c(_3d,_3e){ +var _3f=$.data(_3d,"tabs").options; +var _40=$.data(_3d,"tabs").tabs; +if(_3e.selected==undefined){ +_3e.selected=true; +} +var pp=$("
                          ").appendTo($(_3d).children("div.tabs-panels")); +_40.push(pp); +_36(_3d,pp,_3e); +_3f.onAdd.call(_3d,_3e.title,_40.length-1); +_12(_3d); +if(_3e.selected){ +_41(_3d,_40.length-1); +} +}; +function _42(_43,_44){ +var _45=$.data(_43,"tabs").selectHis; +var pp=_44.tab; +var _46=pp.panel("options").title; +pp.panel($.extend({},_44.options,{iconCls:(_44.options.icon?_44.options.icon:undefined)})); +var _47=pp.panel("options"); +var tab=_47.tab; +var _48=tab.find("span.tabs-title"); +var _49=tab.find("span.tabs-icon"); +_48.html(_47.title); +_49.attr("class","tabs-icon"); +tab.find("a.tabs-close").remove(); +if(_47.closable){ +_48.addClass("tabs-closable"); +$("").appendTo(tab); +}else{ +_48.removeClass("tabs-closable"); +} +if(_47.iconCls){ +_48.addClass("tabs-with-icon"); +_49.addClass(_47.iconCls); +}else{ +_48.removeClass("tabs-with-icon"); +} +if(_46!=_47.title){ +for(var i=0;i<_45.length;i++){ +if(_45[i]==_46){ +_45[i]=_47.title; +} +} +} +tab.find("span.tabs-p-tool").remove(); +if(_47.tools){ +var _4a=$("").insertAfter(tab.find("a.tabs-inner")); +if($.isArray(_47.tools)){ +for(var i=0;i<_47.tools.length;i++){ +var t=$("").appendTo(_4a); +t.addClass(_47.tools[i].iconCls); +if(_47.tools[i].handler){ +t.bind("click",{handler:_47.tools[i].handler},function(e){ +if($(this).parents("li").hasClass("tabs-disabled")){ +return; +} +e.data.handler.call(this); +}); +} +} +}else{ +$(_47.tools).children().appendTo(_4a); +} +var pr=_4a.children().length*12; +if(_47.closable){ +pr+=8; +}else{ +pr-=3; +_4a.css("right","5px"); +} +_48.css("padding-right",pr+"px"); +} +_12(_43); +$.data(_43,"tabs").options.onUpdate.call(_43,_47.title,_4b(_43,pp)); +}; +function _4c(_4d,_4e){ +var _4f=$.data(_4d,"tabs").options; +var _50=$.data(_4d,"tabs").tabs; +var _51=$.data(_4d,"tabs").selectHis; +if(!_52(_4d,_4e)){ +return; +} +var tab=_53(_4d,_4e); +var _54=tab.panel("options").title; +var _55=_4b(_4d,tab); +if(_4f.onBeforeClose.call(_4d,_54,_55)==false){ +return; +} +var tab=_53(_4d,_4e,true); +tab.panel("options").tab.remove(); +tab.panel("destroy"); +_4f.onClose.call(_4d,_54,_55); +_12(_4d); +for(var i=0;i<_51.length;i++){ +if(_51[i]==_54){ +_51.splice(i,1); +i--; +} +} +var _56=_51.pop(); +if(_56){ +_41(_4d,_56); +}else{ +if(_50.length){ +_41(_4d,0); +} +} +}; +function _53(_57,_58,_59){ +var _5a=$.data(_57,"tabs").tabs; +if(typeof _58=="number"){ +if(_58<0||_58>=_5a.length){ +return null; +}else{ +var tab=_5a[_58]; +if(_59){ +_5a.splice(_58,1); +} +return tab; +} +} +for(var i=0;i<_5a.length;i++){ +var tab=_5a[i]; +if(tab.panel("options").title==_58){ +if(_59){ +_5a.splice(i,1); +} +return tab; +} +} +return null; +}; +function _4b(_5b,tab){ +var _5c=$.data(_5b,"tabs").tabs; +for(var i=0;i<_5c.length;i++){ +if(_5c[i][0]==$(tab)[0]){ +return i; +} +} +return -1; +}; +function _1f(_5d){ +var _5e=$.data(_5d,"tabs").tabs; +for(var i=0;i<_5e.length;i++){ +var tab=_5e[i]; +if(tab.panel("options").closed==false){ +return tab; +} +} +return null; +}; +function _5f(_60){ +var _61=$.data(_60,"tabs"); +var _62=_61.tabs; +for(var i=0;i<_62.length;i++){ +if(_62[i].panel("options").selected){ +_41(_60,i); +return; +} +} +_41(_60,_61.options.selected); +}; +function _41(_63,_64){ +var _65=$.data(_63,"tabs"); +var _66=_65.options; +var _67=_65.tabs; +var _68=_65.selectHis; +if(_67.length==0){ +return; +} +var _69=_53(_63,_64); +if(!_69){ +return; +} +var _6a=_1f(_63); +if(_6a){ +if(_69[0]==_6a[0]){ +return; +} +_6b(_63,_4b(_63,_6a)); +if(!_6a.panel("options").closed){ +return; +} +} +_69.panel("open"); +var _6c=_69.panel("options").title; +_68.push(_6c); +var tab=_69.panel("options").tab; +tab.addClass("tabs-selected"); +var _6d=$(_63).find(">div.tabs-header>div.tabs-wrap"); +var _6e=tab.position().left; +var _6f=_6e+tab.outerWidth(); +if(_6e<0||_6f>_6d.width()){ +var _70=_6e-(_6d.width()-tab.width())/2; +$(_63).tabs("scrollBy",_70); +}else{ +$(_63).tabs("scrollBy",0); +} +_1c(_63); +_66.onSelect.call(_63,_6c,_4b(_63,_69)); +}; +function _6b(_71,_72){ +var _73=$.data(_71,"tabs"); +var p=_53(_71,_72); +if(p){ +var _74=p.panel("options"); +if(!_74.closed){ +p.panel("close"); +if(_74.closed){ +_74.tab.removeClass("tabs-selected"); +_73.options.onUnselect.call(_71,_74.title,_4b(_71,p)); +} +} +} +}; +function _52(_75,_76){ +return _53(_75,_76)!=null; +}; +function _77(_78,_79){ +var _7a=$.data(_78,"tabs").options; +_7a.showHeader=_79; +$(_78).tabs("resize"); +}; +$.fn.tabs=function(_7b,_7c){ +if(typeof _7b=="string"){ +return $.fn.tabs.methods[_7b](this,_7c); +} +_7b=_7b||{}; +return this.each(function(){ +var _7d=$.data(this,"tabs"); +var _7e; +if(_7d){ +_7e=$.extend(_7d.options,_7b); +_7d.options=_7e; +}else{ +$.data(this,"tabs",{options:$.extend({},$.fn.tabs.defaults,$.fn.tabs.parseOptions(this),_7b),tabs:[],selectHis:[]}); +_23(this); +} +_c(this); +_31(this); +_12(this); +_29(this); +_5f(this); +}); +}; +$.fn.tabs.methods={options:function(jq){ +var cc=jq[0]; +var _7f=$.data(cc,"tabs").options; +var s=_1f(cc); +_7f.selected=s?_4b(cc,s):-1; +return _7f; +},tabs:function(jq){ +return $.data(jq[0],"tabs").tabs; +},resize:function(jq){ +return jq.each(function(){ +_12(this); +_1c(this); +}); +},add:function(jq,_80){ +return jq.each(function(){ +_3c(this,_80); +}); +},close:function(jq,_81){ +return jq.each(function(){ +_4c(this,_81); +}); +},getTab:function(jq,_82){ +return _53(jq[0],_82); +},getTabIndex:function(jq,tab){ +return _4b(jq[0],tab); +},getSelected:function(jq){ +return _1f(jq[0]); +},select:function(jq,_83){ +return jq.each(function(){ +_41(this,_83); +}); +},unselect:function(jq,_84){ +return jq.each(function(){ +_6b(this,_84); +}); +},exists:function(jq,_85){ +return _52(jq[0],_85); +},update:function(jq,_86){ +return jq.each(function(){ +_42(this,_86); +}); +},enableTab:function(jq,_87){ +return jq.each(function(){ +$(this).tabs("getTab",_87).panel("options").tab.removeClass("tabs-disabled"); +}); +},disableTab:function(jq,_88){ +return jq.each(function(){ +$(this).tabs("getTab",_88).panel("options").tab.addClass("tabs-disabled"); +}); +},showHeader:function(jq){ +return jq.each(function(){ +_77(this,true); +}); +},hideHeader:function(jq){ +return jq.each(function(){ +_77(this,false); +}); +},scrollBy:function(jq,_89){ +return jq.each(function(){ +var _8a=$(this).tabs("options"); +var _8b=$(this).find(">div.tabs-header>div.tabs-wrap"); +var pos=Math.min(_8b._scrollLeft()+_89,_8c()); +_8b.animate({scrollLeft:pos},_8a.scrollDuration); +function _8c(){ +var w=0; +var ul=_8b.children("ul"); +ul.children("li").each(function(){ +w+=$(this).outerWidth(true); +}); +return w-_8b.width()+(ul.outerWidth()-ul.width()); +}; +}); +}}; +$.fn.tabs.parseOptions=function(_8d){ +return $.extend({},$.parser.parseOptions(_8d,["width","height","tools","toolPosition","tabPosition",{fit:"boolean",border:"boolean",plain:"boolean",headerWidth:"number",tabWidth:"number",tabHeight:"number",selected:"number",showHeader:"boolean"}])); +}; +$.fn.tabs.defaults={width:"auto",height:"auto",headerWidth:150,tabWidth:"auto",tabHeight:27,selected:0,showHeader:true,plain:false,fit:false,border:true,tools:null,toolPosition:"right",tabPosition:"top",scrollIncrement:100,scrollDuration:400,onLoad:function(_8e){ +},onSelect:function(_8f,_90){ +},onUnselect:function(_91,_92){ +},onBeforeClose:function(_93,_94){ +},onClose:function(_95,_96){ +},onAdd:function(_97,_98){ +},onUpdate:function(_99,_9a){ +},onContextMenu:function(e,_9b,_9c){ +}}; +})(jQuery); + diff --git a/src/main/webapp/js/easyui-1.3.5/plugins/jquery.timespinner.js b/src/main/webapp/js/easyui-1.3.5/plugins/jquery.timespinner.js new file mode 100644 index 00000000..bcc79156 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/plugins/jquery.timespinner.js @@ -0,0 +1,187 @@ +/** + * jQuery EasyUI 1.3.5 + * + * Copyright (c) 2009-2013 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL or commercial licenses + * To use it on other terms please contact us: info@jeasyui.com + * http://www.gnu.org/licenses/gpl.txt + * http://www.jeasyui.com/license_commercial.php + * + */ +(function($){ +function _1(_2){ +var _3=$.data(_2,"timespinner").options; +$(_2).addClass("timespinner-f"); +$(_2).spinner(_3); +$(_2).unbind(".timespinner"); +$(_2).bind("click.timespinner",function(){ +var _4=0; +if(this.selectionStart!=null){ +_4=this.selectionStart; +}else{ +if(this.createTextRange){ +var _5=_2.createTextRange(); +var s=document.selection.createRange(); +s.setEndPoint("StartToStart",_5); +_4=s.text.length; +} +} +if(_4>=0&&_4<=2){ +_3.highlight=0; +}else{ +if(_4>=3&&_4<=5){ +_3.highlight=1; +}else{ +if(_4>=6&&_4<=8){ +_3.highlight=2; +} +} +} +_7(_2); +}).bind("blur.timespinner",function(){ +_6(_2); +}); +}; +function _7(_8){ +var _9=$.data(_8,"timespinner").options; +var _a=0,_b=0; +if(_9.highlight==0){ +_a=0; +_b=2; +}else{ +if(_9.highlight==1){ +_a=3; +_b=5; +}else{ +if(_9.highlight==2){ +_a=6; +_b=8; +} +} +} +if(_8.selectionStart!=null){ +_8.setSelectionRange(_a,_b); +}else{ +if(_8.createTextRange){ +var _c=_8.createTextRange(); +_c.collapse(); +_c.moveEnd("character",_b); +_c.moveStart("character",_a); +_c.select(); +} +} +$(_8).focus(); +}; +function _d(_e,_f){ +var _10=$.data(_e,"timespinner").options; +if(!_f){ +return null; +} +var vv=_f.split(_10.separator); +for(var i=0;i_14){ +_14=_15; +} +if(_16&&_16<_14){ +_14=_16; +} +var tt=[_17(_14.getHours()),_17(_14.getMinutes())]; +if(_12.showSeconds){ +tt.push(_17(_14.getSeconds())); +} +var val=tt.join(_12.separator); +_12.value=val; +$(_11).val(val); +function _17(_18){ +return (_18<10?"0":"")+_18; +}; +}; +function _19(_1a,_1b){ +var _1c=$.data(_1a,"timespinner").options; +var val=$(_1a).val(); +if(val==""){ +val=[0,0,0].join(_1c.separator); +} +var vv=val.split(_1c.separator); +for(var i=0;i"+"
                          "+"
                          "+"
                          "+"
                          ").appendTo("body"); +_12.tip=tip; +_14(_11); +} +tip.removeClass("tooltip-top tooltip-bottom tooltip-left tooltip-right").addClass("tooltip-"+_13.position); +_7(_11); +_12.showTimer=setTimeout(function(){ +_6(_11); +tip.show(); +_13.onShow.call(_11,e); +var _15=tip.children(".tooltip-arrow-outer"); +var _16=tip.children(".tooltip-arrow"); +var bc="border-"+_13.position+"-color"; +_15.add(_16).css({borderTopColor:"",borderBottomColor:"",borderLeftColor:"",borderRightColor:""}); +_15.css(bc,tip.css(bc)); +_16.css(bc,tip.css("backgroundColor")); +},_13.showDelay); +}; +function _17(_18,e){ +var _19=$.data(_18,"tooltip"); +if(_19&&_19.tip){ +_7(_18); +_19.hideTimer=setTimeout(function(){ +_19.tip.hide(); +_19.options.onHide.call(_18,e); +},_19.options.hideDelay); +} +}; +function _14(_1a,_1b){ +var _1c=$.data(_1a,"tooltip"); +var _1d=_1c.options; +if(_1b){ +_1d.content=_1b; +} +if(!_1c.tip){ +return; +} +var cc=typeof _1d.content=="function"?_1d.content.call(_1a):_1d.content; +_1c.tip.children(".tooltip-content").html(cc); +_1d.onUpdate.call(_1a,cc); +}; +function _1e(_1f){ +var _20=$.data(_1f,"tooltip"); +if(_20){ +_7(_1f); +var _21=_20.options; +if(_20.tip){ +_20.tip.remove(); +} +if(_21._title){ +$(_1f).attr("title",_21._title); +} +$.removeData(_1f,"tooltip"); +$(_1f).unbind(".tooltip").removeClass("tooltip-f"); +_21.onDestroy.call(_1f); +} +}; +$.fn.tooltip=function(_22,_23){ +if(typeof _22=="string"){ +return $.fn.tooltip.methods[_22](this,_23); +} +_22=_22||{}; +return this.each(function(){ +var _24=$.data(this,"tooltip"); +if(_24){ +$.extend(_24.options,_22); +}else{ +$.data(this,"tooltip",{options:$.extend({},$.fn.tooltip.defaults,$.fn.tooltip.parseOptions(this),_22)}); +_1(this); +} +_3(this); +_14(this); +}); +}; +$.fn.tooltip.methods={options:function(jq){ +return $.data(jq[0],"tooltip").options; +},tip:function(jq){ +return $.data(jq[0],"tooltip").tip; +},arrow:function(jq){ +return jq.tooltip("tip").children(".tooltip-arrow-outer,.tooltip-arrow"); +},show:function(jq,e){ +return jq.each(function(){ +_10(this,e); +}); +},hide:function(jq,e){ +return jq.each(function(){ +_17(this,e); +}); +},update:function(jq,_25){ +return jq.each(function(){ +_14(this,_25); +}); +},reposition:function(jq){ +return jq.each(function(){ +_6(this); +}); +},destroy:function(jq){ +return jq.each(function(){ +_1e(this); +}); +}}; +$.fn.tooltip.parseOptions=function(_26){ +var t=$(_26); +var _27=$.extend({},$.parser.parseOptions(_26,["position","showEvent","hideEvent","content",{deltaX:"number",deltaY:"number",showDelay:"number",hideDelay:"number"}]),{_title:t.attr("title")}); +t.attr("title",""); +if(!_27.content){ +_27.content=_27._title; +} +return _27; +}; +$.fn.tooltip.defaults={position:"bottom",content:null,trackMouse:false,deltaX:0,deltaY:0,showEvent:"mouseenter",hideEvent:"mouseleave",showDelay:200,hideDelay:100,onShow:function(e){ +},onHide:function(e){ +},onUpdate:function(_28){ +},onPosition:function(_29,top){ +},onDestroy:function(){ +}}; +})(jQuery); + diff --git a/src/main/webapp/js/easyui-1.3.5/plugins/jquery.tree.js b/src/main/webapp/js/easyui-1.3.5/plugins/jquery.tree.js new file mode 100644 index 00000000..be50c7d5 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/plugins/jquery.tree.js @@ -0,0 +1,1155 @@ +/** + * jQuery EasyUI 1.3.5 + * + * Copyright (c) 2009-2013 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL or commercial licenses + * To use it on other terms please contact us: info@jeasyui.com + * http://www.gnu.org/licenses/gpl.txt + * http://www.jeasyui.com/license_commercial.php + * + */ +(function($){ +function _1(_2){ +var _3=$(_2); +_3.addClass("tree"); +return _3; +}; +function _4(_5){ +var _6=$.data(_5,"tree").options; +$(_5).unbind().bind("mouseover",function(e){ +var tt=$(e.target); +var _7=tt.closest("div.tree-node"); +if(!_7.length){ +return; +} +_7.addClass("tree-node-hover"); +if(tt.hasClass("tree-hit")){ +if(tt.hasClass("tree-expanded")){ +tt.addClass("tree-expanded-hover"); +}else{ +tt.addClass("tree-collapsed-hover"); +} +} +e.stopPropagation(); +}).bind("mouseout",function(e){ +var tt=$(e.target); +var _8=tt.closest("div.tree-node"); +if(!_8.length){ +return; +} +_8.removeClass("tree-node-hover"); +if(tt.hasClass("tree-hit")){ +if(tt.hasClass("tree-expanded")){ +tt.removeClass("tree-expanded-hover"); +}else{ +tt.removeClass("tree-collapsed-hover"); +} +} +e.stopPropagation(); +}).bind("click",function(e){ +var tt=$(e.target); +var _9=tt.closest("div.tree-node"); +if(!_9.length){ +return; +} +if(tt.hasClass("tree-hit")){ +_7e(_5,_9[0]); +return false; +}else{ +if(tt.hasClass("tree-checkbox")){ +_32(_5,_9[0],!tt.hasClass("tree-checkbox1")); +return false; +}else{ +_d6(_5,_9[0]); +_6.onClick.call(_5,_c(_5,_9[0])); +} +} +e.stopPropagation(); +}).bind("dblclick",function(e){ +var _a=$(e.target).closest("div.tree-node"); +if(!_a.length){ +return; +} +_d6(_5,_a[0]); +_6.onDblClick.call(_5,_c(_5,_a[0])); +e.stopPropagation(); +}).bind("contextmenu",function(e){ +var _b=$(e.target).closest("div.tree-node"); +if(!_b.length){ +return; +} +_6.onContextMenu.call(_5,e,_c(_5,_b[0])); +e.stopPropagation(); +}); +}; +function _d(_e){ +var _f=$.data(_e,"tree").options; +_f.dnd=false; +var _10=$(_e).find("div.tree-node"); +_10.draggable("disable"); +_10.css("cursor","pointer"); +}; +function _11(_12){ +var _13=$.data(_12,"tree"); +var _14=_13.options; +var _15=_13.tree; +_13.disabledNodes=[]; +_14.dnd=true; +_15.find("div.tree-node").draggable({disabled:false,revert:true,cursor:"pointer",proxy:function(_16){ +var p=$("
                          ").appendTo("body"); +p.html(" "+$(_16).find(".tree-title").html()); +p.hide(); +return p; +},deltaX:15,deltaY:15,onBeforeDrag:function(e){ +if(_14.onBeforeDrag.call(_12,_c(_12,this))==false){ +return false; +} +if($(e.target).hasClass("tree-hit")||$(e.target).hasClass("tree-checkbox")){ +return false; +} +if(e.which!=1){ +return false; +} +$(this).next("ul").find("div.tree-node").droppable({accept:"no-accept"}); +var _17=$(this).find("span.tree-indent"); +if(_17.length){ +e.data.offsetWidth-=_17.length*_17.width(); +} +},onStartDrag:function(){ +$(this).draggable("proxy").css({left:-10000,top:-10000}); +_14.onStartDrag.call(_12,_c(_12,this)); +var _18=_c(_12,this); +if(_18.id==undefined){ +_18.id="easyui_tree_node_id_temp"; +_54(_12,_18); +} +_13.draggingNodeId=_18.id; +},onDrag:function(e){ +var x1=e.pageX,y1=e.pageY,x2=e.data.startX,y2=e.data.startY; +var d=Math.sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)); +if(d>3){ +$(this).draggable("proxy").show(); +} +this.pageY=e.pageY; +},onStopDrag:function(){ +$(this).next("ul").find("div.tree-node").droppable({accept:"div.tree-node"}); +for(var i=0;i<_13.disabledNodes.length;i++){ +$(_13.disabledNodes[i]).droppable("enable"); +} +_13.disabledNodes=[]; +var _19=_c9(_12,_13.draggingNodeId); +if(_19&&_19.id=="easyui_tree_node_id_temp"){ +_19.id=""; +_54(_12,_19); +} +_14.onStopDrag.call(_12,_19); +}}).droppable({accept:"div.tree-node",onDragEnter:function(e,_1a){ +if(_14.onDragEnter.call(_12,this,_c(_12,_1a))==false){ +_1b(_1a,false); +$(this).removeClass("tree-node-append tree-node-top tree-node-bottom"); +$(this).droppable("disable"); +_13.disabledNodes.push(this); +} +},onDragOver:function(e,_1c){ +if($(this).droppable("options").disabled){ +return; +} +var _1d=_1c.pageY; +var top=$(this).offset().top; +var _1e=top+$(this).outerHeight(); +_1b(_1c,true); +$(this).removeClass("tree-node-append tree-node-top tree-node-bottom"); +if(_1d>top+(_1e-top)/2){ +if(_1e-_1d<5){ +$(this).addClass("tree-node-bottom"); +}else{ +$(this).addClass("tree-node-append"); +} +}else{ +if(_1d-top<5){ +$(this).addClass("tree-node-top"); +}else{ +$(this).addClass("tree-node-append"); +} +} +if(_14.onDragOver.call(_12,this,_c(_12,_1c))==false){ +_1b(_1c,false); +$(this).removeClass("tree-node-append tree-node-top tree-node-bottom"); +$(this).droppable("disable"); +_13.disabledNodes.push(this); +} +},onDragLeave:function(e,_1f){ +_1b(_1f,false); +$(this).removeClass("tree-node-append tree-node-top tree-node-bottom"); +_14.onDragLeave.call(_12,this,_c(_12,_1f)); +},onDrop:function(e,_20){ +var _21=this; +var _22,_23; +if($(this).hasClass("tree-node-append")){ +_22=_24; +_23="append"; +}else{ +_22=_25; +_23=$(this).hasClass("tree-node-top")?"top":"bottom"; +} +if(_14.onBeforeDrop.call(_12,_21,_c2(_12,_20),_23)==false){ +$(this).removeClass("tree-node-append tree-node-top tree-node-bottom"); +return; +} +_22(_20,_21,_23); +$(this).removeClass("tree-node-append tree-node-top tree-node-bottom"); +}}); +function _1b(_26,_27){ +var _28=$(_26).draggable("proxy").find("span.tree-dnd-icon"); +_28.removeClass("tree-dnd-yes tree-dnd-no").addClass(_27?"tree-dnd-yes":"tree-dnd-no"); +}; +function _24(_29,_2a){ +if(_c(_12,_2a).state=="closed"){ +_72(_12,_2a,function(){ +_2b(); +}); +}else{ +_2b(); +} +function _2b(){ +var _2c=$(_12).tree("pop",_29); +$(_12).tree("append",{parent:_2a,data:[_2c]}); +_14.onDrop.call(_12,_2a,_2c,"append"); +}; +}; +function _25(_2d,_2e,_2f){ +var _30={}; +if(_2f=="top"){ +_30.before=_2e; +}else{ +_30.after=_2e; +} +var _31=$(_12).tree("pop",_2d); +_30.data=_31; +$(_12).tree("insert",_30); +_14.onDrop.call(_12,_2e,_31,_2f); +}; +}; +function _32(_33,_34,_35){ +var _36=$.data(_33,"tree").options; +if(!_36.checkbox){ +return; +} +var _37=_c(_33,_34); +if(_36.onBeforeCheck.call(_33,_37,_35)==false){ +return; +} +var _38=$(_34); +var ck=_38.find(".tree-checkbox"); +ck.removeClass("tree-checkbox0 tree-checkbox1 tree-checkbox2"); +if(_35){ +ck.addClass("tree-checkbox1"); +}else{ +ck.addClass("tree-checkbox0"); +} +if(_36.cascadeCheck){ +_39(_38); +_3a(_38); +} +_36.onCheck.call(_33,_37,_35); +function _3a(_3b){ +var _3c=_3b.next().find(".tree-checkbox"); +_3c.removeClass("tree-checkbox0 tree-checkbox1 tree-checkbox2"); +if(_3b.find(".tree-checkbox").hasClass("tree-checkbox1")){ +_3c.addClass("tree-checkbox1"); +}else{ +_3c.addClass("tree-checkbox0"); +} +}; +function _39(_3d){ +var _3e=_89(_33,_3d[0]); +if(_3e){ +var ck=$(_3e.target).find(".tree-checkbox"); +ck.removeClass("tree-checkbox0 tree-checkbox1 tree-checkbox2"); +if(_3f(_3d)){ +ck.addClass("tree-checkbox1"); +}else{ +if(_40(_3d)){ +ck.addClass("tree-checkbox0"); +}else{ +ck.addClass("tree-checkbox2"); +} +} +_39($(_3e.target)); +} +function _3f(n){ +var ck=n.find(".tree-checkbox"); +if(ck.hasClass("tree-checkbox0")||ck.hasClass("tree-checkbox2")){ +return false; +} +var b=true; +n.parent().siblings().each(function(){ +if(!$(this).children("div.tree-node").children(".tree-checkbox").hasClass("tree-checkbox1")){ +b=false; +} +}); +return b; +}; +function _40(n){ +var ck=n.find(".tree-checkbox"); +if(ck.hasClass("tree-checkbox1")||ck.hasClass("tree-checkbox2")){ +return false; +} +var b=true; +n.parent().siblings().each(function(){ +if(!$(this).children("div.tree-node").children(".tree-checkbox").hasClass("tree-checkbox0")){ +b=false; +} +}); +return b; +}; +}; +}; +function _41(_42,_43){ +var _44=$.data(_42,"tree").options; +if(!_44.checkbox){ +return; +} +var _45=$(_43); +if(_46(_42,_43)){ +var ck=_45.find(".tree-checkbox"); +if(ck.length){ +if(ck.hasClass("tree-checkbox1")){ +_32(_42,_43,true); +}else{ +_32(_42,_43,false); +} +}else{ +if(_44.onlyLeafCheck){ +$("").insertBefore(_45.find(".tree-title")); +} +} +}else{ +var ck=_45.find(".tree-checkbox"); +if(_44.onlyLeafCheck){ +ck.remove(); +}else{ +if(ck.hasClass("tree-checkbox1")){ +_32(_42,_43,true); +}else{ +if(ck.hasClass("tree-checkbox2")){ +var _47=true; +var _48=true; +var _49=_4a(_42,_43); +for(var i=0;i<_49.length;i++){ +if(_49[i].checked){ +_48=false; +}else{ +_47=false; +} +} +if(_47){ +_32(_42,_43,true); +} +if(_48){ +_32(_42,_43,false); +} +} +} +} +} +}; +function _4b(_4c,ul,_4d,_4e){ +var _4f=$.data(_4c,"tree"); +var _50=_4f.options; +var _51=$(ul).prevAll("div.tree-node:first"); +_4d=_50.loadFilter.call(_4c,_4d,_51[0]); +var _52=_53(_4c,"domId",_51.attr("id")); +if(!_4e){ +_52?_52.children=_4d:_4f.data=_4d; +$(ul).empty(); +}else{ +if(_52){ +_52.children?_52.children=_52.children.concat(_4d):_52.children=_4d; +}else{ +_4f.data=_4f.data.concat(_4d); +} +} +_50.view.render.call(_50.view,_4c,ul,_4d); +if(_50.dnd){ +_11(_4c); +} +if(_52){ +_54(_4c,_52); +} +var _55=[]; +var _56=[]; +for(var i=0;i<_4d.length;i++){ +var _57=_4d[i]; +if(!_57.checked){ +_55.push(_57); +} +} +_58(_4d,function(_59){ +if(_59.checked){ +_56.push(_59); +} +}); +if(_55.length){ +_32(_4c,$("#"+_55[0].domId)[0],false); +} +for(var i=0;i<_56.length;i++){ +_32(_4c,$("#"+_56[i].domId)[0],true); +} +setTimeout(function(){ +_5a(_4c,_4c); +},0); +_50.onLoadSuccess.call(_4c,_52,_4d); +}; +function _5a(_5b,ul,_5c){ +var _5d=$.data(_5b,"tree").options; +if(_5d.lines){ +$(_5b).addClass("tree-lines"); +}else{ +$(_5b).removeClass("tree-lines"); +return; +} +if(!_5c){ +_5c=true; +$(_5b).find("span.tree-indent").removeClass("tree-line tree-join tree-joinbottom"); +$(_5b).find("div.tree-node").removeClass("tree-node-last tree-root-first tree-root-one"); +var _5e=$(_5b).tree("getRoots"); +if(_5e.length>1){ +$(_5e[0].target).addClass("tree-root-first"); +}else{ +if(_5e.length==1){ +$(_5e[0].target).addClass("tree-root-one"); +} +} +} +$(ul).children("li").each(function(){ +var _5f=$(this).children("div.tree-node"); +var ul=_5f.next("ul"); +if(ul.length){ +if($(this).next().length){ +_60(_5f); +} +_5a(_5b,ul,_5c); +}else{ +_61(_5f); +} +}); +var _62=$(ul).children("li:last").children("div.tree-node").addClass("tree-node-last"); +_62.children("span.tree-join").removeClass("tree-join").addClass("tree-joinbottom"); +function _61(_63,_64){ +var _65=_63.find("span.tree-icon"); +_65.prev("span.tree-indent").addClass("tree-join"); +}; +function _60(_66){ +var _67=_66.find("span.tree-indent, span.tree-hit").length; +_66.next().find("div.tree-node").each(function(){ +$(this).children("span:eq("+(_67-1)+")").addClass("tree-line"); +}); +}; +}; +function _68(_69,ul,_6a,_6b){ +var _6c=$.data(_69,"tree").options; +_6a=_6a||{}; +var _6d=null; +if(_69!=ul){ +var _6e=$(ul).prev(); +_6d=_c(_69,_6e[0]); +} +if(_6c.onBeforeLoad.call(_69,_6d,_6a)==false){ +return; +} +var _6f=$(ul).prev().children("span.tree-folder"); +_6f.addClass("tree-loading"); +var _70=_6c.loader.call(_69,_6a,function(_71){ +_6f.removeClass("tree-loading"); +_4b(_69,ul,_71); +if(_6b){ +_6b(); +} +},function(){ +_6f.removeClass("tree-loading"); +_6c.onLoadError.apply(_69,arguments); +if(_6b){ +_6b(); +} +}); +if(_70==false){ +_6f.removeClass("tree-loading"); +} +}; +function _72(_73,_74,_75){ +var _76=$.data(_73,"tree").options; +var hit=$(_74).children("span.tree-hit"); +if(hit.length==0){ +return; +} +if(hit.hasClass("tree-expanded")){ +return; +} +var _77=_c(_73,_74); +if(_76.onBeforeExpand.call(_73,_77)==false){ +return; +} +hit.removeClass("tree-collapsed tree-collapsed-hover").addClass("tree-expanded"); +hit.next().addClass("tree-folder-open"); +var ul=$(_74).next(); +if(ul.length){ +if(_76.animate){ +ul.slideDown("normal",function(){ +_77.state="open"; +_76.onExpand.call(_73,_77); +if(_75){ +_75(); +} +}); +}else{ +ul.css("display","block"); +_77.state="open"; +_76.onExpand.call(_73,_77); +if(_75){ +_75(); +} +} +}else{ +var _78=$("
                            ").insertAfter(_74); +_68(_73,_78[0],{id:_77.id},function(){ +if(_78.is(":empty")){ +_78.remove(); +} +if(_76.animate){ +_78.slideDown("normal",function(){ +_77.state="open"; +_76.onExpand.call(_73,_77); +if(_75){ +_75(); +} +}); +}else{ +_78.css("display","block"); +_77.state="open"; +_76.onExpand.call(_73,_77); +if(_75){ +_75(); +} +} +}); +} +}; +function _79(_7a,_7b){ +var _7c=$.data(_7a,"tree").options; +var hit=$(_7b).children("span.tree-hit"); +if(hit.length==0){ +return; +} +if(hit.hasClass("tree-collapsed")){ +return; +} +var _7d=_c(_7a,_7b); +if(_7c.onBeforeCollapse.call(_7a,_7d)==false){ +return; +} +hit.removeClass("tree-expanded tree-expanded-hover").addClass("tree-collapsed"); +hit.next().removeClass("tree-folder-open"); +var ul=$(_7b).next(); +if(_7c.animate){ +ul.slideUp("normal",function(){ +_7d.state="closed"; +_7c.onCollapse.call(_7a,_7d); +}); +}else{ +ul.css("display","none"); +_7d.state="closed"; +_7c.onCollapse.call(_7a,_7d); +} +}; +function _7e(_7f,_80){ +var hit=$(_80).children("span.tree-hit"); +if(hit.length==0){ +return; +} +if(hit.hasClass("tree-expanded")){ +_79(_7f,_80); +}else{ +_72(_7f,_80); +} +}; +function _81(_82,_83){ +var _84=_4a(_82,_83); +if(_83){ +_84.unshift(_c(_82,_83)); +} +for(var i=0;i<_84.length;i++){ +_72(_82,_84[i].target); +} +}; +function _85(_86,_87){ +var _88=[]; +var p=_89(_86,_87); +while(p){ +_88.unshift(p); +p=_89(_86,p.target); +} +for(var i=0;i<_88.length;i++){ +_72(_86,_88[i].target); +} +}; +function _8a(_8b,_8c){ +var c=$(_8b).parent(); +while(c[0].tagName!="BODY"&&c.css("overflow-y")!="auto"){ +c=c.parent(); +} +var n=$(_8c); +var _8d=n.offset().top; +if(c[0].tagName!="BODY"){ +var _8e=c.offset().top; +if(_8d<_8e){ +c.scrollTop(c.scrollTop()+_8d-_8e); +}else{ +if(_8d+n.outerHeight()>_8e+c.outerHeight()-18){ +c.scrollTop(c.scrollTop()+_8d+n.outerHeight()-_8e-c.outerHeight()+18); +} +} +}else{ +c.scrollTop(_8d); +} +}; +function _8f(_90,_91){ +var _92=_4a(_90,_91); +if(_91){ +_92.unshift(_c(_90,_91)); +} +for(var i=0;i<_92.length;i++){ +_79(_90,_92[i].target); +} +}; +function _93(_94,_95){ +var _96=$(_95.parent); +var _97=_95.data; +if(!_97){ +return; +} +_97=$.isArray(_97)?_97:[_97]; +if(!_97.length){ +return; +} +var ul; +if(_96.length==0){ +ul=$(_94); +}else{ +if(_46(_94,_96[0])){ +var _98=_96.find("span.tree-icon"); +_98.removeClass("tree-file").addClass("tree-folder tree-folder-open"); +var hit=$("").insertBefore(_98); +if(hit.prev().length){ +hit.prev().remove(); +} +} +ul=_96.next(); +if(!ul.length){ +ul=$("
                              ").insertAfter(_96); +} +} +_4b(_94,ul[0],_97,true); +_41(_94,ul.prev()); +}; +function _99(_9a,_9b){ +var ref=_9b.before||_9b.after; +var _9c=_89(_9a,ref); +var _9d=_9b.data; +if(!_9d){ +return; +} +_9d=$.isArray(_9d)?_9d:[_9d]; +if(!_9d.length){ +return; +} +_93(_9a,{parent:(_9c?_9c.target:null),data:_9d}); +var li=$(); +for(var i=0;i<_9d.length;i++){ +li=li.add($("#"+_9d[i].domId).parent()); +} +if(_9b.before){ +li.insertBefore($(ref).parent()); +}else{ +li.insertAfter($(ref).parent()); +} +}; +function _9e(_9f,_a0){ +var _a1=del(_a0); +$(_a0).parent().remove(); +if(_a1){ +if(!_a1.children||!_a1.children.length){ +var _a2=$(_a1.target); +_a2.find(".tree-icon").removeClass("tree-folder").addClass("tree-file"); +_a2.find(".tree-hit").remove(); +$("").prependTo(_a2); +_a2.next().remove(); +} +_54(_9f,_a1); +_41(_9f,_a1.target); +} +_5a(_9f,_9f); +function del(_a3){ +var id=$(_a3).attr("id"); +var _a4=_89(_9f,_a3); +var cc=_a4?_a4.children:$.data(_9f,"tree").data; +for(var i=0;i=0;i--){ +_d4.unshift(_d5.children[i]); +} +} +} +}; +function _d6(_d7,_d8){ +var _d9=$.data(_d7,"tree").options; +var _da=_c(_d7,_d8); +if(_d9.onBeforeSelect.call(_d7,_da)==false){ +return; +} +$(_d7).find("div.tree-node-selected").removeClass("tree-node-selected"); +$(_d8).addClass("tree-node-selected"); +_d9.onSelect.call(_d7,_da); +}; +function _46(_db,_dc){ +return $(_dc).children("span.tree-hit").length==0; +}; +function _dd(_de,_df){ +var _e0=$.data(_de,"tree").options; +var _e1=_c(_de,_df); +if(_e0.onBeforeEdit.call(_de,_e1)==false){ +return; +} +$(_df).css("position","relative"); +var nt=$(_df).find(".tree-title"); +var _e2=nt.outerWidth(); +nt.empty(); +var _e3=$("").appendTo(nt); +_e3.val(_e1.text).focus(); +_e3.width(_e2+20); +_e3.height(document.compatMode=="CSS1Compat"?(18-(_e3.outerHeight()-_e3.height())):18); +_e3.bind("click",function(e){ +return false; +}).bind("mousedown",function(e){ +e.stopPropagation(); +}).bind("mousemove",function(e){ +e.stopPropagation(); +}).bind("keydown",function(e){ +if(e.keyCode==13){ +_e4(_de,_df); +return false; +}else{ +if(e.keyCode==27){ +_ea(_de,_df); +return false; +} +} +}).bind("blur",function(e){ +e.stopPropagation(); +_e4(_de,_df); +}); +}; +function _e4(_e5,_e6){ +var _e7=$.data(_e5,"tree").options; +$(_e6).css("position",""); +var _e8=$(_e6).find("input.tree-editor"); +var val=_e8.val(); +_e8.remove(); +var _e9=_c(_e5,_e6); +_e9.text=val; +_54(_e5,_e9); +_e7.onAfterEdit.call(_e5,_e9); +}; +function _ea(_eb,_ec){ +var _ed=$.data(_eb,"tree").options; +$(_ec).css("position",""); +$(_ec).find("input.tree-editor").remove(); +var _ee=_c(_eb,_ec); +_54(_eb,_ee); +_ed.onCancelEdit.call(_eb,_ee); +}; +$.fn.tree=function(_ef,_f0){ +if(typeof _ef=="string"){ +return $.fn.tree.methods[_ef](this,_f0); +} +var _ef=_ef||{}; +return this.each(function(){ +var _f1=$.data(this,"tree"); +var _f2; +if(_f1){ +_f2=$.extend(_f1.options,_ef); +_f1.options=_f2; +}else{ +_f2=$.extend({},$.fn.tree.defaults,$.fn.tree.parseOptions(this),_ef); +$.data(this,"tree",{options:_f2,tree:_1(this),data:[]}); +var _f3=$.fn.tree.parseData(this); +if(_f3.length){ +_4b(this,this,_f3); +} +} +_4(this); +if(_f2.data){ +_4b(this,this,_f2.data); +} +_68(this,this); +}); +}; +$.fn.tree.methods={options:function(jq){ +return $.data(jq[0],"tree").options; +},loadData:function(jq,_f4){ +return jq.each(function(){ +_4b(this,this,_f4); +}); +},getNode:function(jq,_f5){ +return _c(jq[0],_f5); +},getData:function(jq,_f6){ +return _c2(jq[0],_f6); +},reload:function(jq,_f7){ +return jq.each(function(){ +if(_f7){ +var _f8=$(_f7); +var hit=_f8.children("span.tree-hit"); +hit.removeClass("tree-expanded tree-expanded-hover").addClass("tree-collapsed"); +_f8.next().remove(); +_72(this,_f7); +}else{ +$(this).empty(); +_68(this,this); +} +}); +},getRoot:function(jq){ +return _ab(jq[0]); +},getRoots:function(jq){ +return _ae(jq[0]); +},getParent:function(jq,_f9){ +return _89(jq[0],_f9); +},getChildren:function(jq,_fa){ +return _4a(jq[0],_fa); +},getChecked:function(jq,_fb){ +return _b9(jq[0],_fb); +},getSelected:function(jq){ +return _bf(jq[0]); +},isLeaf:function(jq,_fc){ +return _46(jq[0],_fc); +},find:function(jq,id){ +return _c9(jq[0],id); +},select:function(jq,_fd){ +return jq.each(function(){ +_d6(this,_fd); +}); +},check:function(jq,_fe){ +return jq.each(function(){ +_32(this,_fe,true); +}); +},uncheck:function(jq,_ff){ +return jq.each(function(){ +_32(this,_ff,false); +}); +},collapse:function(jq,_100){ +return jq.each(function(){ +_79(this,_100); +}); +},expand:function(jq,_101){ +return jq.each(function(){ +_72(this,_101); +}); +},collapseAll:function(jq,_102){ +return jq.each(function(){ +_8f(this,_102); +}); +},expandAll:function(jq,_103){ +return jq.each(function(){ +_81(this,_103); +}); +},expandTo:function(jq,_104){ +return jq.each(function(){ +_85(this,_104); +}); +},scrollTo:function(jq,_105){ +return jq.each(function(){ +_8a(this,_105); +}); +},toggle:function(jq,_106){ +return jq.each(function(){ +_7e(this,_106); +}); +},append:function(jq,_107){ +return jq.each(function(){ +_93(this,_107); +}); +},insert:function(jq,_108){ +return jq.each(function(){ +_99(this,_108); +}); +},remove:function(jq,_109){ +return jq.each(function(){ +_9e(this,_109); +}); +},pop:function(jq,_10a){ +var node=jq.tree("getData",_10a); +jq.tree("remove",_10a); +return node; +},update:function(jq,_10b){ +return jq.each(function(){ +_54(this,_10b); +}); +},enableDnd:function(jq){ +return jq.each(function(){ +_11(this); +}); +},disableDnd:function(jq){ +return jq.each(function(){ +_d(this); +}); +},beginEdit:function(jq,_10c){ +return jq.each(function(){ +_dd(this,_10c); +}); +},endEdit:function(jq,_10d){ +return jq.each(function(){ +_e4(this,_10d); +}); +},cancelEdit:function(jq,_10e){ +return jq.each(function(){ +_ea(this,_10e); +}); +}}; +$.fn.tree.parseOptions=function(_10f){ +var t=$(_10f); +return $.extend({},$.parser.parseOptions(_10f,["url","method",{checkbox:"boolean",cascadeCheck:"boolean",onlyLeafCheck:"boolean"},{animate:"boolean",lines:"boolean",dnd:"boolean"}])); +}; +$.fn.tree.parseData=function(_110){ +var data=[]; +_111(data,$(_110)); +return data; +function _111(aa,tree){ +tree.children("li").each(function(){ +var node=$(this); +var item=$.extend({},$.parser.parseOptions(this,["id","iconCls","state"]),{checked:(node.attr("checked")?true:undefined)}); +item.text=node.children("span").html(); +if(!item.text){ +item.text=node.html(); +} +var _112=node.children("ul"); +if(_112.length){ +item.children=[]; +_111(item.children,_112); +} +aa.push(item); +}); +}; +}; +var _113=1; +var _114={render:function(_115,ul,data){ +var opts=$.data(_115,"tree").options; +var _116=$(ul).prev("div.tree-node").find("span.tree-indent, span.tree-hit").length; +var cc=_117(_116,data); +$(ul).append(cc.join("")); +function _117(_118,_119){ +var cc=[]; +for(var i=0;i<_119.length;i++){ +var item=_119[i]; +if(item.state!="open"&&item.state!="closed"){ +item.state="open"; +} +item.domId="_easyui_tree_"+_113++; +cc.push("
                            • "); +cc.push("
                              "); +for(var j=0;j<_118;j++){ +cc.push(""); +} +if(item.state=="closed"){ +cc.push(""); +cc.push(""); +}else{ +if(item.children&&item.children.length){ +cc.push(""); +cc.push(""); +}else{ +cc.push(""); +cc.push(""); +} +} +if(opts.checkbox){ +if((!opts.onlyLeafCheck)||(opts.onlyLeafCheck&&(!item.children||!item.children.length))){ +cc.push(""); +} +} +cc.push(""+opts.formatter.call(_115,item)+""); +cc.push("
                              "); +if(item.children&&item.children.length){ +var tmp=_117(_118+1,item.children); +cc.push("
                                "); +cc=cc.concat(tmp); +cc.push("
                              "); +} +cc.push("
                            • "); +} +return cc; +}; +}}; +$.fn.tree.defaults={url:null,method:"post",animate:false,checkbox:false,cascadeCheck:true,onlyLeafCheck:false,lines:false,dnd:false,data:null,formatter:function(node){ +return node.text; +},loader:function(_11a,_11b,_11c){ +var opts=$(this).tree("options"); +if(!opts.url){ +return false; +} +$.ajax({type:opts.method,url:opts.url,data:_11a,dataType:"json",success:function(data){ +_11b(data); +},error:function(){ +_11c.apply(this,arguments); +}}); +},loadFilter:function(data,_11d){ +return data; +},view:_114,onBeforeLoad:function(node,_11e){ +},onLoadSuccess:function(node,data){ +},onLoadError:function(){ +},onClick:function(node){ +},onDblClick:function(node){ +},onBeforeExpand:function(node){ +},onExpand:function(node){ +},onBeforeCollapse:function(node){ +},onCollapse:function(node){ +},onBeforeCheck:function(node,_11f){ +},onCheck:function(node,_120){ +},onBeforeSelect:function(node){ +},onSelect:function(node){ +},onContextMenu:function(e,node){ +},onBeforeDrag:function(node){ +},onStartDrag:function(node){ +},onStopDrag:function(node){ +},onDragEnter:function(_121,_122){ +},onDragOver:function(_123,_124){ +},onDragLeave:function(_125,_126){ +},onBeforeDrop:function(_127,_128,_129){ +},onDrop:function(_12a,_12b,_12c){ +},onBeforeEdit:function(node){ +},onAfterEdit:function(node){ +},onCancelEdit:function(node){ +}}; +})(jQuery); + diff --git a/src/main/webapp/js/easyui-1.3.5/plugins/jquery.treegrid.js b/src/main/webapp/js/easyui-1.3.5/plugins/jquery.treegrid.js new file mode 100644 index 00000000..541e54c3 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/plugins/jquery.treegrid.js @@ -0,0 +1,1100 @@ +/** + * jQuery EasyUI 1.3.5 + * + * Copyright (c) 2009-2013 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL or commercial licenses + * To use it on other terms please contact us: info@jeasyui.com + * http://www.gnu.org/licenses/gpl.txt + * http://www.jeasyui.com/license_commercial.php + * + */ +(function($){ +function _1(_2){ +var _3=$.data(_2,"treegrid"); +var _4=_3.options; +$(_2).datagrid($.extend({},_4,{url:null,data:null,loader:function(){ +return false; +},onBeforeLoad:function(){ +return false; +},onLoadSuccess:function(){ +},onResizeColumn:function(_5,_6){ +_20(_2); +_4.onResizeColumn.call(_2,_5,_6); +},onSortColumn:function(_7,_8){ +_4.sortName=_7; +_4.sortOrder=_8; +if(_4.remoteSort){ +_1f(_2); +}else{ +var _9=$(_2).treegrid("getData"); +_39(_2,0,_9); +} +_4.onSortColumn.call(_2,_7,_8); +},onBeforeEdit:function(_a,_b){ +if(_4.onBeforeEdit.call(_2,_b)==false){ +return false; +} +},onAfterEdit:function(_c,_d,_e){ +_4.onAfterEdit.call(_2,_d,_e); +},onCancelEdit:function(_f,row){ +_4.onCancelEdit.call(_2,row); +},onSelect:function(_10){ +_4.onSelect.call(_2,_41(_2,_10)); +},onUnselect:function(_11){ +_4.onUnselect.call(_2,_41(_2,_11)); +},onSelectAll:function(){ +_4.onSelectAll.call(_2,$.data(_2,"treegrid").data); +},onUnselectAll:function(){ +_4.onUnselectAll.call(_2,$.data(_2,"treegrid").data); +},onCheck:function(_12){ +_4.onCheck.call(_2,_41(_2,_12)); +},onUncheck:function(_13){ +_4.onUncheck.call(_2,_41(_2,_13)); +},onCheckAll:function(){ +_4.onCheckAll.call(_2,$.data(_2,"treegrid").data); +},onUncheckAll:function(){ +_4.onUncheckAll.call(_2,$.data(_2,"treegrid").data); +},onClickRow:function(_14){ +_4.onClickRow.call(_2,_41(_2,_14)); +},onDblClickRow:function(_15){ +_4.onDblClickRow.call(_2,_41(_2,_15)); +},onClickCell:function(_16,_17){ +_4.onClickCell.call(_2,_17,_41(_2,_16)); +},onDblClickCell:function(_18,_19){ +_4.onDblClickCell.call(_2,_19,_41(_2,_18)); +},onRowContextMenu:function(e,_1a){ +_4.onContextMenu.call(_2,e,_41(_2,_1a)); +}})); +if(!_4.columns){ +var _1b=$.data(_2,"datagrid").options; +_4.columns=_1b.columns; +_4.frozenColumns=_1b.frozenColumns; +} +_3.dc=$.data(_2,"datagrid").dc; +if(_4.pagination){ +var _1c=$(_2).datagrid("getPager"); +_1c.pagination({pageNumber:_4.pageNumber,pageSize:_4.pageSize,pageList:_4.pageList,onSelectPage:function(_1d,_1e){ +_4.pageNumber=_1d; +_4.pageSize=_1e; +_1f(_2); +}}); +_4.pageSize=_1c.pagination("options").pageSize; +} +}; +function _20(_21,_22){ +var _23=$.data(_21,"datagrid").options; +var dc=$.data(_21,"datagrid").dc; +if(!dc.body1.is(":empty")&&(!_23.nowrap||_23.autoRowHeight)){ +if(_22!=undefined){ +var _24=_25(_21,_22); +for(var i=0;i<_24.length;i++){ +_26(_24[i][_23.idField]); +} +} +} +$(_21).datagrid("fixRowHeight",_22); +function _26(_27){ +var tr1=_23.finder.getTr(_21,_27,"body",1); +var tr2=_23.finder.getTr(_21,_27,"body",2); +tr1.css("height",""); +tr2.css("height",""); +var _28=Math.max(tr1.height(),tr2.height()); +tr1.css("height",_28); +tr2.css("height",_28); +}; +}; +function _29(_2a){ +var dc=$.data(_2a,"datagrid").dc; +var _2b=$.data(_2a,"treegrid").options; +if(!_2b.rownumbers){ +return; +} +dc.body1.find("div.datagrid-cell-rownumber").each(function(i){ +$(this).html(i+1); +}); +}; +function _2c(_2d){ +var dc=$.data(_2d,"datagrid").dc; +var _2e=dc.body1.add(dc.body2); +var _2f=($.data(_2e[0],"events")||$._data(_2e[0],"events")).click[0].handler; +dc.body1.add(dc.body2).bind("mouseover",function(e){ +var tt=$(e.target); +var tr=tt.closest("tr.datagrid-row"); +if(!tr.length){ +return; +} +if(tt.hasClass("tree-hit")){ +tt.hasClass("tree-expanded")?tt.addClass("tree-expanded-hover"):tt.addClass("tree-collapsed-hover"); +} +e.stopPropagation(); +}).bind("mouseout",function(e){ +var tt=$(e.target); +var tr=tt.closest("tr.datagrid-row"); +if(!tr.length){ +return; +} +if(tt.hasClass("tree-hit")){ +tt.hasClass("tree-expanded")?tt.removeClass("tree-expanded-hover"):tt.removeClass("tree-collapsed-hover"); +} +e.stopPropagation(); +}).unbind("click").bind("click",function(e){ +var tt=$(e.target); +var tr=tt.closest("tr.datagrid-row"); +if(!tr.length){ +return; +} +if(tt.hasClass("tree-hit")){ +_30(_2d,tr.attr("node-id")); +}else{ +_2f(e); +} +e.stopPropagation(); +}); +}; +function _31(_32,_33){ +var _34=$.data(_32,"treegrid").options; +var tr1=_34.finder.getTr(_32,_33,"body",1); +var tr2=_34.finder.getTr(_32,_33,"body",2); +var _35=$(_32).datagrid("getColumnFields",true).length+(_34.rownumbers?1:0); +var _36=$(_32).datagrid("getColumnFields",false).length; +_37(tr1,_35); +_37(tr2,_36); +function _37(tr,_38){ +$(""+""+"
                              "+""+"").insertAfter(tr); +}; +}; +function _39(_3a,_3b,_3c,_3d){ +var _3e=$.data(_3a,"treegrid"); +var _3f=_3e.options; +var dc=_3e.dc; +_3c=_3f.loadFilter.call(_3a,_3c,_3b); +var _40=_41(_3a,_3b); +if(_40){ +var _42=_3f.finder.getTr(_3a,_3b,"body",1); +var _43=_3f.finder.getTr(_3a,_3b,"body",2); +var cc1=_42.next("tr.treegrid-tr-tree").children("td").children("div"); +var cc2=_43.next("tr.treegrid-tr-tree").children("td").children("div"); +if(!_3d){ +_40.children=[]; +} +}else{ +var cc1=dc.body1; +var cc2=dc.body2; +if(!_3d){ +_3e.data=[]; +} +} +if(!_3d){ +cc1.empty(); +cc2.empty(); +} +if(_3f.view.onBeforeRender){ +_3f.view.onBeforeRender.call(_3f.view,_3a,_3b,_3c); +} +_3f.view.render.call(_3f.view,_3a,cc1,true); +_3f.view.render.call(_3f.view,_3a,cc2,false); +if(_3f.showFooter){ +_3f.view.renderFooter.call(_3f.view,_3a,dc.footer1,true); +_3f.view.renderFooter.call(_3f.view,_3a,dc.footer2,false); +} +if(_3f.view.onAfterRender){ +_3f.view.onAfterRender.call(_3f.view,_3a); +} +_3f.onLoadSuccess.call(_3a,_40,_3c); +if(!_3b&&_3f.pagination){ +var _44=$.data(_3a,"treegrid").total; +var _45=$(_3a).datagrid("getPager"); +if(_45.pagination("options").total!=_44){ +_45.pagination({total:_44}); +} +} +_20(_3a); +_29(_3a); +$(_3a).treegrid("autoSizeColumn"); +}; +function _1f(_46,_47,_48,_49,_4a){ +var _4b=$.data(_46,"treegrid").options; +var _4c=$(_46).datagrid("getPanel").find("div.datagrid-body"); +if(_48){ +_4b.queryParams=_48; +} +var _4d=$.extend({},_4b.queryParams); +if(_4b.pagination){ +$.extend(_4d,{page:_4b.pageNumber,rows:_4b.pageSize}); +} +if(_4b.sortName){ +$.extend(_4d,{sort:_4b.sortName,order:_4b.sortOrder}); +} +var row=_41(_46,_47); +if(_4b.onBeforeLoad.call(_46,row,_4d)==false){ +return; +} +var _4e=_4c.find("tr[node-id=\""+_47+"\"] span.tree-folder"); +_4e.addClass("tree-loading"); +$(_46).treegrid("loading"); +var _4f=_4b.loader.call(_46,_4d,function(_50){ +_4e.removeClass("tree-loading"); +$(_46).treegrid("loaded"); +_39(_46,_47,_50,_49); +if(_4a){ +_4a(); +} +},function(){ +_4e.removeClass("tree-loading"); +$(_46).treegrid("loaded"); +_4b.onLoadError.apply(_46,arguments); +if(_4a){ +_4a(); +} +}); +if(_4f==false){ +_4e.removeClass("tree-loading"); +$(_46).treegrid("loaded"); +} +}; +function _51(_52){ +var _53=_54(_52); +if(_53.length){ +return _53[0]; +}else{ +return null; +} +}; +function _54(_55){ +return $.data(_55,"treegrid").data; +}; +function _56(_57,_58){ +var row=_41(_57,_58); +if(row._parentId){ +return _41(_57,row._parentId); +}else{ +return null; +} +}; +function _25(_59,_5a){ +var _5b=$.data(_59,"treegrid").options; +var _5c=$(_59).datagrid("getPanel").find("div.datagrid-view2 div.datagrid-body"); +var _5d=[]; +if(_5a){ +_5e(_5a); +}else{ +var _5f=_54(_59); +for(var i=0;i<_5f.length;i++){ +_5d.push(_5f[i]); +_5e(_5f[i][_5b.idField]); +} +} +function _5e(_60){ +var _61=_41(_59,_60); +if(_61&&_61.children){ +for(var i=0,len=_61.children.length;i").insertBefore(_96); +if(hit.prev().length){ +hit.prev().remove(); +} +} +} +_39(_92,_93.parent,_93.data,true); +}; +function _97(_98,_99){ +var ref=_99.before||_99.after; +var _9a=$.data(_98,"treegrid").options; +var _9b=_56(_98,ref); +_91(_98,{parent:(_9b?_9b[_9a.idField]:null),data:[_99.data]}); +_9c(true); +_9c(false); +_29(_98); +function _9c(_9d){ +var _9e=_9d?1:2; +var tr=_9a.finder.getTr(_98,_99.data[_9a.idField],"body",_9e); +var _9f=tr.closest("table.datagrid-btable"); +tr=tr.parent().children(); +var _a0=_9a.finder.getTr(_98,ref,"body",_9e); +if(_99.before){ +tr.insertBefore(_a0); +}else{ +var sub=_a0.next("tr.treegrid-tr-tree"); +tr.insertAfter(sub.length?sub:_a0); +} +_9f.remove(); +}; +}; +function _a1(_a2,_a3){ +var _a4=$.data(_a2,"treegrid").options; +var tr=_a4.finder.getTr(_a2,_a3); +tr.next("tr.treegrid-tr-tree").remove(); +tr.remove(); +var _a5=del(_a3); +if(_a5){ +if(_a5.children.length==0){ +tr=_a4.finder.getTr(_a2,_a5[_a4.idField]); +tr.next("tr.treegrid-tr-tree").remove(); +var _a6=tr.children("td[field=\""+_a4.treeField+"\"]").children("div.datagrid-cell"); +_a6.find(".tree-icon").removeClass("tree-folder").addClass("tree-file"); +_a6.find(".tree-hit").remove(); +$("").prependTo(_a6); +} +} +_29(_a2); +function del(id){ +var cc; +var _a7=_56(_a2,_a3); +if(_a7){ +cc=_a7.children; +}else{ +cc=$(_a2).treegrid("getData"); +} +for(var i=0;i"]; +for(var i=0;i<_c9.length;i++){ +var row=_c9[i]; +if(row.state!="open"&&row.state!="closed"){ +row.state="open"; +} +var css=_c0.rowStyler?_c0.rowStyler.call(_bd,row):""; +var _cb=""; +var _cc=""; +if(typeof css=="string"){ +_cc=css; +}else{ +if(css){ +_cb=css["class"]||""; +_cc=css["style"]||""; +} +} +var cls="class=\"datagrid-row "+(_c3++%2&&_c0.striped?"datagrid-row-alt ":" ")+_cb+"\""; +var _cd=_cc?"style=\""+_cc+"\"":""; +var _ce=_c2+"-"+(_c7?1:2)+"-"+row[_c0.idField]; +_ca.push(""); +_ca=_ca.concat(_c4.renderRow.call(_c4,_bd,_c1,_c7,_c8,row)); +_ca.push(""); +if(row.children&&row.children.length){ +var tt=_c6(_c7,_c8+1,row.children); +var v=row.state=="closed"?"none":"block"; +_ca.push("
                              "); +_ca=_ca.concat(tt); +_ca.push("
                              "); +} +} +_ca.push(""); +return _ca; +}; +},renderFooter:function(_cf,_d0,_d1){ +var _d2=$.data(_cf,"treegrid").options; +var _d3=$.data(_cf,"treegrid").footer||[]; +var _d4=$(_cf).datagrid("getColumnFields",_d1); +var _d5=[""]; +for(var i=0;i<_d3.length;i++){ +var row=_d3[i]; +row[_d2.idField]=row[_d2.idField]||("foot-row-id"+i); +_d5.push(""); +_d5.push(this.renderRow.call(this,_cf,_d4,_d1,0,row)); +_d5.push(""); +} +_d5.push("
                              "); +$(_d0).html(_d5.join("")); +},renderRow:function(_d6,_d7,_d8,_d9,row){ +var _da=$.data(_d6,"treegrid").options; +var cc=[]; +if(_d8&&_da.rownumbers){ +cc.push("
                              0
                              "); +} +for(var i=0;i<_d7.length;i++){ +var _db=_d7[i]; +var col=$(_d6).datagrid("getColumnOption",_db); +if(col){ +var css=col.styler?(col.styler(row[_db],row)||""):""; +var _dc=""; +var _dd=""; +if(typeof css=="string"){ +_dd=css; +}else{ +if(cc){ +_dc=css["class"]||""; +_dd=css["style"]||""; +} +} +var cls=_dc?"class=\""+_dc+"\"":""; +var _de=col.hidden?"style=\"display:none;"+_dd+"\"":(_dd?"style=\""+_dd+"\"":""); +cc.push(""); +if(col.checkbox){ +var _de=""; +}else{ +var _de=_dd; +if(col.align){ +_de+=";text-align:"+col.align+";"; +} +if(!_da.nowrap){ +_de+=";white-space:normal;height:auto;"; +}else{ +if(_da.autoRowHeight){ +_de+=";height:auto;"; +} +} +} +cc.push("
                              "); +if(col.checkbox){ +if(row.checked){ +cc.push(""); +}else{ +var val=null; +if(col.formatter){ +val=col.formatter(row[_db],row); +}else{ +val=row[_db]; +} +if(_db==_da.treeField){ +for(var j=0;j<_d9;j++){ +cc.push(""); +} +if(row.state=="closed"){ +cc.push(""); +cc.push(""); +}else{ +if(row.children&&row.children.length){ +cc.push(""); +cc.push(""); +}else{ +cc.push(""); +cc.push(""); +} +} +cc.push(""+val+""); +}else{ +cc.push(val); +} +} +cc.push("
                              "); +cc.push(""); +} +} +return cc.join(""); +},refreshRow:function(_df,id){ +this.updateRow.call(this,_df,id,{}); +},updateRow:function(_e0,id,row){ +var _e1=$.data(_e0,"treegrid").options; +var _e2=$(_e0).treegrid("find",id); +$.extend(_e2,row); +var _e3=$(_e0).treegrid("getLevel",id)-1; +var _e4=_e1.rowStyler?_e1.rowStyler.call(_e0,_e2):""; +function _e5(_e6){ +var _e7=$(_e0).treegrid("getColumnFields",_e6); +var tr=_e1.finder.getTr(_e0,id,"body",(_e6?1:2)); +var _e8=tr.find("div.datagrid-cell-rownumber").html(); +var _e9=tr.find("div.datagrid-cell-check input[type=checkbox]").is(":checked"); +tr.html(this.renderRow(_e0,_e7,_e6,_e3,_e2)); +tr.attr("style",_e4||""); +tr.find("div.datagrid-cell-rownumber").html(_e8); +if(_e9){ +tr.find("div.datagrid-cell-check input[type=checkbox]")._propAttr("checked",true); +} +}; +_e5.call(this,true); +_e5.call(this,false); +$(_e0).treegrid("fixRowHeight",id); +},onBeforeRender:function(_ea,_eb,_ec){ +if($.isArray(_eb)){ +_ec={total:_eb.length,rows:_eb}; +_eb=null; +} +if(!_ec){ +return false; +} +var _ed=$.data(_ea,"treegrid"); +var _ee=_ed.options; +if(_ec.length==undefined){ +if(_ec.footer){ +_ed.footer=_ec.footer; +} +if(_ec.total){ +_ed.total=_ec.total; +} +_ec=this.transfer(_ea,_eb,_ec.rows); +}else{ +function _ef(_f0,_f1){ +for(var i=0;i<_f0.length;i++){ +var row=_f0[i]; +row._parentId=_f1; +if(row.children&&row.children.length){ +_ef(row.children,row[_ee.idField]); +} +} +}; +_ef(_ec,_eb); +} +var _f2=_41(_ea,_eb); +if(_f2){ +if(_f2.children){ +_f2.children=_f2.children.concat(_ec); +}else{ +_f2.children=_ec; +} +}else{ +_ed.data=_ed.data.concat(_ec); +} +this.sort(_ea,_ec); +this.treeNodes=_ec; +this.treeLevel=$(_ea).treegrid("getLevel",_eb); +},sort:function(_f3,_f4){ +var _f5=$.data(_f3,"treegrid").options; +if(!_f5.remoteSort&&_f5.sortName){ +var _f6=_f5.sortName.split(","); +var _f7=_f5.sortOrder.split(","); +_f8(_f4); +} +function _f8(_f9){ +_f9.sort(function(r1,r2){ +var r=0; +for(var i=0;i<_f6.length;i++){ +var sn=_f6[i]; +var so=_f7[i]; +var col=$(_f3).treegrid("getColumnOption",sn); +var _fa=col.sorter||function(a,b){ +return a==b?0:(a>b?1:-1); +}; +r=_fa(r1[sn],r2[sn])*(so=="asc"?1:-1); +if(r!=0){ +return r; +} +} +return r; +}); +for(var i=0;i<_f9.length;i++){ +var _fb=_f9[i].children; +if(_fb&&_fb.length){ +_f8(_fb); +} +} +}; +},transfer:function(_fc,_fd,_fe){ +var _ff=$.data(_fc,"treegrid").options; +var rows=[]; +for(var i=0;i<_fe.length;i++){ +rows.push(_fe[i]); +} +var _100=[]; +for(var i=0;i=_2b[0]&&len<=_2b[1]; +},message:"Please enter a value between {0} and {1}."},remote:{validator:function(_2c,_2d){ +var _2e={}; +_2e[_2d[1]]=_2c; +var _2f=$.ajax({url:_2d[0],dataType:"json",data:_2e,async:false,cache:false,type:"post"}).responseText; +return _2f=="true"; +},message:"Please fix this field."}}}; +})(jQuery); + diff --git a/src/main/webapp/js/easyui-1.3.5/plugins/jquery.window.js b/src/main/webapp/js/easyui-1.3.5/plugins/jquery.window.js new file mode 100644 index 00000000..e3db1e16 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/plugins/jquery.window.js @@ -0,0 +1,277 @@ +/** + * jQuery EasyUI 1.3.5 + * + * Copyright (c) 2009-2013 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL or commercial licenses + * To use it on other terms please contact us: info@jeasyui.com + * http://www.gnu.org/licenses/gpl.txt + * http://www.jeasyui.com/license_commercial.php + * + */ +(function($){ +function _1(_2,_3){ +var _4=$.data(_2,"window").options; +if(_3){ +$.extend(_4,_3); +} +$(_2).panel("resize",_4); +}; +function _5(_6,_7){ +var _8=$.data(_6,"window"); +if(_7){ +if(_7.left!=null){ +_8.options.left=_7.left; +} +if(_7.top!=null){ +_8.options.top=_7.top; +} +} +$(_6).panel("move",_8.options); +if(_8.shadow){ +_8.shadow.css({left:_8.options.left,top:_8.options.top}); +} +}; +function _9(_a,_b){ +var _c=$.data(_a,"window"); +var _d=_c.options; +var _e=_d.width; +if(isNaN(_e)){ +_e=_c.window._outerWidth(); +} +if(_d.inline){ +var _f=_c.window.parent(); +_d.left=(_f.width()-_e)/2+_f.scrollLeft(); +}else{ +_d.left=($(window)._outerWidth()-_e)/2+$(document).scrollLeft(); +} +if(_b){ +_5(_a); +} +}; +function _10(_11,_12){ +var _13=$.data(_11,"window"); +var _14=_13.options; +var _15=_14.height; +if(isNaN(_15)){ +_15=_13.window._outerHeight(); +} +if(_14.inline){ +var _16=_13.window.parent(); +_14.top=(_16.height()-_15)/2+_16.scrollTop(); +}else{ +_14.top=($(window)._outerHeight()-_15)/2+$(document).scrollTop(); +} +if(_12){ +_5(_11); +} +}; +function _17(_18){ +var _19=$.data(_18,"window"); +var win=$(_18).panel($.extend({},_19.options,{border:false,doSize:true,closed:true,cls:"window",headerCls:"window-header",bodyCls:"window-body "+(_19.options.noheader?"window-body-noheader":""),onBeforeDestroy:function(){ +if(_19.options.onBeforeDestroy.call(_18)==false){ +return false; +} +if(_19.shadow){ +_19.shadow.remove(); +} +if(_19.mask){ +_19.mask.remove(); +} +},onClose:function(){ +if(_19.shadow){ +_19.shadow.hide(); +} +if(_19.mask){ +_19.mask.hide(); +} +_19.options.onClose.call(_18); +},onOpen:function(){ +if(_19.mask){ +_19.mask.css({display:"block",zIndex:$.fn.window.defaults.zIndex++}); +} +if(_19.shadow){ +_19.shadow.css({display:"block",zIndex:$.fn.window.defaults.zIndex++,left:_19.options.left,top:_19.options.top,width:_19.window._outerWidth(),height:_19.window._outerHeight()}); +} +_19.window.css("z-index",$.fn.window.defaults.zIndex++); +_19.options.onOpen.call(_18); +},onResize:function(_1a,_1b){ +var _1c=$(this).panel("options"); +$.extend(_19.options,{width:_1c.width,height:_1c.height,left:_1c.left,top:_1c.top}); +if(_19.shadow){ +_19.shadow.css({left:_19.options.left,top:_19.options.top,width:_19.window._outerWidth(),height:_19.window._outerHeight()}); +} +_19.options.onResize.call(_18,_1a,_1b); +},onMinimize:function(){ +if(_19.shadow){ +_19.shadow.hide(); +} +if(_19.mask){ +_19.mask.hide(); +} +_19.options.onMinimize.call(_18); +},onBeforeCollapse:function(){ +if(_19.options.onBeforeCollapse.call(_18)==false){ +return false; +} +if(_19.shadow){ +_19.shadow.hide(); +} +},onExpand:function(){ +if(_19.shadow){ +_19.shadow.show(); +} +_19.options.onExpand.call(_18); +}})); +_19.window=win.panel("panel"); +if(_19.mask){ +_19.mask.remove(); +} +if(_19.options.modal==true){ +_19.mask=$("
                              ").insertAfter(_19.window); +_19.mask.css({width:(_19.options.inline?_19.mask.parent().width():_1d().width),height:(_19.options.inline?_19.mask.parent().height():_1d().height),display:"none"}); +} +if(_19.shadow){ +_19.shadow.remove(); +} +if(_19.options.shadow==true){ +_19.shadow=$("
                              ").insertAfter(_19.window); +_19.shadow.css({display:"none"}); +} +if(_19.options.left==null){ +_9(_18); +} +if(_19.options.top==null){ +_10(_18); +} +_5(_18); +if(_19.options.closed==false){ +win.window("open"); +} +}; +function _1e(_1f){ +var _20=$.data(_1f,"window"); +_20.window.draggable({handle:">div.panel-header>div.panel-title",disabled:_20.options.draggable==false,onStartDrag:function(e){ +if(_20.mask){ +_20.mask.css("z-index",$.fn.window.defaults.zIndex++); +} +if(_20.shadow){ +_20.shadow.css("z-index",$.fn.window.defaults.zIndex++); +} +_20.window.css("z-index",$.fn.window.defaults.zIndex++); +if(!_20.proxy){ +_20.proxy=$("
                              ").insertAfter(_20.window); +} +_20.proxy.css({display:"none",zIndex:$.fn.window.defaults.zIndex++,left:e.data.left,top:e.data.top}); +_20.proxy._outerWidth(_20.window._outerWidth()); +_20.proxy._outerHeight(_20.window._outerHeight()); +setTimeout(function(){ +if(_20.proxy){ +_20.proxy.show(); +} +},500); +},onDrag:function(e){ +_20.proxy.css({display:"block",left:e.data.left,top:e.data.top}); +return false; +},onStopDrag:function(e){ +_20.options.left=e.data.left; +_20.options.top=e.data.top; +$(_1f).window("move"); +_20.proxy.remove(); +_20.proxy=null; +}}); +_20.window.resizable({disabled:_20.options.resizable==false,onStartResize:function(e){ +_20.pmask=$("
                              ").insertAfter(_20.window); +_20.pmask.css({zIndex:$.fn.window.defaults.zIndex++,left:e.data.left,top:e.data.top,width:_20.window._outerWidth(),height:_20.window._outerHeight()}); +if(!_20.proxy){ +_20.proxy=$("
                              ").insertAfter(_20.window); +} +_20.proxy.css({zIndex:$.fn.window.defaults.zIndex++,left:e.data.left,top:e.data.top}); +_20.proxy._outerWidth(e.data.width); +_20.proxy._outerHeight(e.data.height); +},onResize:function(e){ +_20.proxy.css({left:e.data.left,top:e.data.top}); +_20.proxy._outerWidth(e.data.width); +_20.proxy._outerHeight(e.data.height); +return false; +},onStopResize:function(e){ +$.extend(_20.options,{left:e.data.left,top:e.data.top,width:e.data.width,height:e.data.height}); +_1(_1f); +_20.pmask.remove(); +_20.pmask=null; +_20.proxy.remove(); +_20.proxy=null; +}}); +}; +function _1d(){ +if(document.compatMode=="BackCompat"){ +return {width:Math.max(document.body.scrollWidth,document.body.clientWidth),height:Math.max(document.body.scrollHeight,document.body.clientHeight)}; +}else{ +return {width:Math.max(document.documentElement.scrollWidth,document.documentElement.clientWidth),height:Math.max(document.documentElement.scrollHeight,document.documentElement.clientHeight)}; +} +}; +$(window).resize(function(){ +$("body>div.window-mask").css({width:$(window)._outerWidth(),height:$(window)._outerHeight()}); +setTimeout(function(){ +$("body>div.window-mask").css({width:_1d().width,height:_1d().height}); +},50); +}); +$.fn.window=function(_21,_22){ +if(typeof _21=="string"){ +var _23=$.fn.window.methods[_21]; +if(_23){ +return _23(this,_22); +}else{ +return this.panel(_21,_22); +} +} +_21=_21||{}; +return this.each(function(){ +var _24=$.data(this,"window"); +if(_24){ +$.extend(_24.options,_21); +}else{ +_24=$.data(this,"window",{options:$.extend({},$.fn.window.defaults,$.fn.window.parseOptions(this),_21)}); +if(!_24.options.inline){ +document.body.appendChild(this); +} +} +_17(this); +_1e(this); +}); +}; +$.fn.window.methods={options:function(jq){ +var _25=jq.panel("options"); +var _26=$.data(jq[0],"window").options; +return $.extend(_26,{closed:_25.closed,collapsed:_25.collapsed,minimized:_25.minimized,maximized:_25.maximized}); +},window:function(jq){ +return $.data(jq[0],"window").window; +},resize:function(jq,_27){ +return jq.each(function(){ +_1(this,_27); +}); +},move:function(jq,_28){ +return jq.each(function(){ +_5(this,_28); +}); +},hcenter:function(jq){ +return jq.each(function(){ +_9(this,true); +}); +},vcenter:function(jq){ +return jq.each(function(){ +_10(this,true); +}); +},center:function(jq){ +return jq.each(function(){ +_9(this); +_10(this); +_5(this); +}); +}}; +$.fn.window.parseOptions=function(_29){ +return $.extend({},$.fn.panel.parseOptions(_29),$.parser.parseOptions(_29,[{draggable:"boolean",resizable:"boolean",shadow:"boolean",modal:"boolean",inline:"boolean"}])); +}; +$.fn.window.defaults=$.extend({},$.fn.panel.defaults,{zIndex:9000,draggable:true,resizable:true,shadow:true,modal:false,inline:false,title:"New Window",collapsible:true,minimizable:true,maximizable:true,closable:true,closed:false}); +})(jQuery); + diff --git a/src/main/webapp/js/easyui-1.3.5/src/easyloader.js b/src/main/webapp/js/easyui-1.3.5/src/easyloader.js new file mode 100644 index 00000000..2d589796 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/src/easyloader.js @@ -0,0 +1,405 @@ +/** + * easyloader - jQuery EasyUI + * + * Copyright (c) 2009-2013 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL or commercial licenses + * To use it on other terms please contact us: info@jeasyui.com + * http://www.gnu.org/licenses/gpl.txt + * http://www.jeasyui.com/license_commercial.php + * + */ +(function(){ + var modules = { + draggable:{ + js:'jquery.draggable.js' + }, + droppable:{ + js:'jquery.droppable.js' + }, + resizable:{ + js:'jquery.resizable.js' + }, + linkbutton:{ + js:'jquery.linkbutton.js', + css:'linkbutton.css' + }, + progressbar:{ + js:'jquery.progressbar.js', + css:'progressbar.css' + }, + tooltip:{ + js:'jquery.tooltip.js', + css:'tooltip.css' + }, + pagination:{ + js:'jquery.pagination.js', + css:'pagination.css', + dependencies:['linkbutton'] + }, + datagrid:{ + js:'jquery.datagrid.js', + css:'datagrid.css', + dependencies:['panel','resizable','linkbutton','pagination'] + }, + treegrid:{ + js:'jquery.treegrid.js', + css:'tree.css', + dependencies:['datagrid'] + }, + propertygrid:{ + js:'jquery.propertygrid.js', + css:'propertygrid.css', + dependencies:['datagrid'] + }, + panel: { + js:'jquery.panel.js', + css:'panel.css' + }, + window:{ + js:'jquery.window.js', + css:'window.css', + dependencies:['resizable','draggable','panel'] + }, + dialog:{ + js:'jquery.dialog.js', + css:'dialog.css', + dependencies:['linkbutton','window'] + }, + messager:{ + js:'jquery.messager.js', + css:'messager.css', + dependencies:['linkbutton','window','progressbar'] + }, + layout:{ + js:'jquery.layout.js', + css:'layout.css', + dependencies:['resizable','panel'] + }, + form:{ + js:'jquery.form.js' + }, + menu:{ + js:'jquery.menu.js', + css:'menu.css' + }, + tabs:{ + js:'jquery.tabs.js', + css:'tabs.css', + dependencies:['panel','linkbutton'] + }, + menubutton:{ + js:'jquery.menubutton.js', + css:'menubutton.css', + dependencies:['linkbutton','menu'] + }, + splitbutton:{ + js:'jquery.splitbutton.js', + css:'splitbutton.css', + dependencies:['menubutton'] + }, + accordion:{ + js:'jquery.accordion.js', + css:'accordion.css', + dependencies:['panel'] + }, + calendar:{ + js:'jquery.calendar.js', + css:'calendar.css' + }, + combo:{ + js:'jquery.combo.js', + css:'combo.css', + dependencies:['panel','validatebox'] + }, + combobox:{ + js:'jquery.combobox.js', + css:'combobox.css', + dependencies:['combo'] + }, + combotree:{ + js:'jquery.combotree.js', + dependencies:['combo','tree'] + }, + combogrid:{ + js:'jquery.combogrid.js', + dependencies:['combo','datagrid'] + }, + validatebox:{ + js:'jquery.validatebox.js', + css:'validatebox.css', + dependencies:['tooltip'] + }, + numberbox:{ + js:'jquery.numberbox.js', + dependencies:['validatebox'] + }, + searchbox:{ + js:'jquery.searchbox.js', + css:'searchbox.css', + dependencies:['menubutton'] + }, + spinner:{ + js:'jquery.spinner.js', + css:'spinner.css', + dependencies:['validatebox'] + }, + numberspinner:{ + js:'jquery.numberspinner.js', + dependencies:['spinner','numberbox'] + }, + timespinner:{ + js:'jquery.timespinner.js', + dependencies:['spinner'] + }, + tree:{ + js:'jquery.tree.js', + css:'tree.css', + dependencies:['draggable','droppable'] + }, + datebox:{ + js:'jquery.datebox.js', + css:'datebox.css', + dependencies:['calendar','combo'] + }, + datetimebox:{ + js:'jquery.datetimebox.js', + dependencies:['datebox','timespinner'] + }, + slider:{ + js:'jquery.slider.js', + dependencies:['draggable'] + }, + tooltip:{ + js:'jquery.tooltip.js' + }, + parser:{ + js:'jquery.parser.js' + } + }; + + var locales = { + 'af':'easyui-lang-af.js', + 'ar':'easyui-lang-ar.js', + 'bg':'easyui-lang-bg.js', + 'ca':'easyui-lang-ca.js', + 'cs':'easyui-lang-cs.js', + 'cz':'easyui-lang-cz.js', + 'da':'easyui-lang-da.js', + 'de':'easyui-lang-de.js', + 'el':'easyui-lang-el.js', + 'en':'easyui-lang-en.js', + 'es':'easyui-lang-es.js', + 'fr':'easyui-lang-fr.js', + 'it':'easyui-lang-it.js', + 'jp':'easyui-lang-jp.js', + 'nl':'easyui-lang-nl.js', + 'pl':'easyui-lang-pl.js', + 'pt_BR':'easyui-lang-pt_BR.js', + 'ru':'easyui-lang-ru.js', + 'sv_SE':'easyui-lang-sv_SE.js', + 'tr':'easyui-lang-tr.js', + 'zh_CN':'easyui-lang-zh_CN.js', + 'zh_TW':'easyui-lang-zh_TW.js' + }; + + var queues = {}; + + function loadJs(url, callback){ + var done = false; + var script = document.createElement('script'); + script.type = 'text/javascript'; + script.language = 'javascript'; + script.src = url; + script.onload = script.onreadystatechange = function(){ + if (!done && (!script.readyState || script.readyState == 'loaded' || script.readyState == 'complete')){ + done = true; + script.onload = script.onreadystatechange = null; + if (callback){ + callback.call(script); + } + } + } + document.getElementsByTagName("head")[0].appendChild(script); + } + + function runJs(url, callback){ + loadJs(url, function(){ + document.getElementsByTagName("head")[0].removeChild(this); + if (callback){ + callback(); + } + }); + } + + function loadCss(url, callback){ + var link = document.createElement('link'); + link.rel = 'stylesheet'; + link.type = 'text/css'; + link.media = 'screen'; + link.href = url; + document.getElementsByTagName('head')[0].appendChild(link); + if (callback){ + callback.call(link); + } + } + + function loadSingle(name, callback){ + queues[name] = 'loading'; + + var module = modules[name]; + var jsStatus = 'loading'; + var cssStatus = (easyloader.css && module['css']) ? 'loading' : 'loaded'; + + if (easyloader.css && module['css']){ + if (/^http/i.test(module['css'])){ + var url = module['css']; + } else { + var url = easyloader.base + 'themes/' + easyloader.theme + '/' + module['css']; + } + loadCss(url, function(){ + cssStatus = 'loaded'; + if (jsStatus == 'loaded' && cssStatus == 'loaded'){ + finish(); + } + }); + } + + if (/^http/i.test(module['js'])){ + var url = module['js']; + } else { + var url = easyloader.base + 'plugins/' + module['js']; + } + loadJs(url, function(){ + jsStatus = 'loaded'; + if (jsStatus == 'loaded' && cssStatus == 'loaded'){ + finish(); + } + }); + + function finish(){ + queues[name] = 'loaded'; + easyloader.onProgress(name); + if (callback){ + callback(); + } + } + } + + function loadModule(name, callback){ + var mm = []; + var doLoad = false; + + if (typeof name == 'string'){ + add(name); + } else { + for(var i=0; idiv.panel>div.accordion-header'); + if (headers.length){ + headerHeight = $(headers[0]).css('height', '')._outerHeight(); + } + if (!isNaN(opts.height)){ + cc._outerHeight(opts.height); + bodyHeight = cc.height() - headerHeight*headers.length; + } else { + cc.css('height', ''); + } + + _resize(true, bodyHeight - _resize(false) + 1); + + function _resize(collapsible, height){ + var totalHeight = 0; + for(var i=0; i= panels.length){ + return null; + } else { + return panels[which]; + } + } + return findBy(container, 'title', which); + } + + function setProperties(container){ + var opts = $.data(container, 'accordion').options; + var cc = $(container); + if (opts.border){ + cc.removeClass('accordion-noborder'); + } else { + cc.addClass('accordion-noborder'); + } + } + + function init(container){ + var state = $.data(container, 'accordion'); + var cc = $(container); + cc.addClass('accordion'); + + state.panels = []; + cc.children('div').each(function(){ + var opts = $.extend({}, $.parser.parseOptions(this), { + selected: ($(this).attr('selected') ? true : undefined) + }); + var pp = $(this); + state.panels.push(pp); + createPanel(container, pp, opts); + }); + + cc.bind('_resize', function(e,force){ + var opts = $.data(container, 'accordion').options; + if (opts.fit == true || force){ + setSize(container); + } + return false; + }); + } + + function createPanel(container, pp, options){ + var opts = $.data(container, 'accordion').options; + pp.panel($.extend({}, { + collapsible: true, + minimizable: false, + maximizable: false, + closable: false, + doSize: false, + collapsed: true, + headerCls: 'accordion-header', + bodyCls: 'accordion-body' + }, options, { + onBeforeExpand: function(){ + if (options.onBeforeExpand){ + if (options.onBeforeExpand.call(this) == false){return false} + } + if (!opts.multiple){ + // get all selected panel + var all = $.grep(getSelections(container), function(p){ + return p.panel('options').collapsible; + }); + for(var i=0; i').addClass('accordion-collapse accordion-expand').appendTo(tool); + t.bind('click', function(){ + var index = getPanelIndex(container, pp); + if (pp.panel('options').collapsed){ + select(container, index); + } else { + unselect(container, index); + } + return false; + }); + pp.panel('options').collapsible ? t.show() : t.hide(); + + header.click(function(){ + $(this).find('a.accordion-collapse:visible').triggerHandler('click'); + return false; + }); + } + + /** + * select and set the specified panel active + */ + function select(container, which){ + var p = getPanel(container, which); + if (!p){return} + stopAnimate(container); + var opts = $.data(container, 'accordion').options; + p.panel('expand', opts.animate); + } + + function unselect(container, which){ + var p = getPanel(container, which); + if (!p){return} + stopAnimate(container); + var opts = $.data(container, 'accordion').options; + p.panel('collapse', opts.animate); + } + + function doFirstSelect(container){ + var opts = $.data(container, 'accordion').options; + var p = findBy(container, 'selected', true); + if (p){ + _select(getPanelIndex(container, p)); + } else { + _select(opts.selected); + } + + function _select(index){ + var animate = opts.animate; + opts.animate = false; + select(container, index); + opts.animate = animate; + } + } + + /** + * stop the animation of all panels + */ + function stopAnimate(container){ + var panels = $.data(container, 'accordion').panels; + for(var i=0; i
                              ').appendTo(container); + panels.push(pp); + createPanel(container, pp, options); + setSize(container); + + opts.onAdd.call(container, options.title, panels.length-1); + + if (options.selected){ + select(container, panels.length-1); + } + } + + function remove(container, which){ + var state = $.data(container, 'accordion'); + var opts = state.options; + var panels = state.panels; + + stopAnimate(container); + + var panel = getPanel(container, which); + var title = panel.panel('options').title; + var index = getPanelIndex(container, panel); + + if (!panel){return} + if (opts.onBeforeRemove.call(container, title, index) == false){return} + + panels.splice(index, 1); + panel.panel('destroy'); + if (panels.length){ + setSize(container); + var curr = getSelected(container); + if (!curr){ + select(container, 0); + } + } + + opts.onRemove.call(container, title, index); + } + + $.fn.accordion = function(options, param){ + if (typeof options == 'string'){ + return $.fn.accordion.methods[options](this, param); + } + + options = options || {}; + + return this.each(function(){ + var state = $.data(this, 'accordion'); + if (state){ + $.extend(state.options, options); + } else { + $.data(this, 'accordion', { + options: $.extend({}, $.fn.accordion.defaults, $.fn.accordion.parseOptions(this), options), + accordion: $(this).addClass('accordion'), + panels: [] + }); + init(this); + } + + setProperties(this); + setSize(this); + doFirstSelect(this); + }); + }; + + $.fn.accordion.methods = { + options: function(jq){ + return $.data(jq[0], 'accordion').options; + }, + panels: function(jq){ + return $.data(jq[0], 'accordion').panels; + }, + resize: function(jq){ + return jq.each(function(){ + setSize(this); + }); + }, + getSelections: function(jq){ + return getSelections(jq[0]); + }, + getSelected: function(jq){ + return getSelected(jq[0]); + }, + getPanel: function(jq, which){ + return getPanel(jq[0], which); + }, + getPanelIndex: function(jq, panel){ + return getPanelIndex(jq[0], panel); + }, + select: function(jq, which){ + return jq.each(function(){ + select(this, which); + }); + }, + unselect: function(jq, which){ + return jq.each(function(){ + unselect(this, which); + }); + }, + add: function(jq, options){ + return jq.each(function(){ + add(this, options); + }); + }, + remove: function(jq, which){ + return jq.each(function(){ + remove(this, which); + }); + } + }; + + $.fn.accordion.parseOptions = function(target){ + var t = $(target); + return $.extend({}, $.parser.parseOptions(target, [ + 'width','height', + {fit:'boolean',border:'boolean',animate:'boolean',multiple:'boolean',selected:'number'} + ])); + }; + + $.fn.accordion.defaults = { + width: 'auto', + height: 'auto', + fit: false, + border: true, + animate: true, + multiple: false, + selected: 0, + + onSelect: function(title, index){}, + onUnselect: function(title, index){}, + onAdd: function(title, index){}, + onBeforeRemove: function(title, index){}, + onRemove: function(title, index){} + }; +})(jQuery); diff --git a/src/main/webapp/js/easyui-1.3.5/src/jquery.calendar.js b/src/main/webapp/js/easyui-1.3.5/src/jquery.calendar.js new file mode 100644 index 00000000..095b50c8 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/src/jquery.calendar.js @@ -0,0 +1,392 @@ +/** + * calendar - jQuery EasyUI + * + * Copyright (c) 2009-2013 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL or commercial licenses + * To use it on other terms please contact us: info@jeasyui.com + * http://www.gnu.org/licenses/gpl.txt + * http://www.jeasyui.com/license_commercial.php + * + */ +(function($){ + + function setSize(target){ + var opts = $.data(target, 'calendar').options; + var t = $(target); +// if (opts.fit == true){ +// var p = t.parent(); +// opts.width = p.width(); +// opts.height = p.height(); +// } + opts.fit ? $.extend(opts, t._fit()) : t._fit(false); + var header = t.find('.calendar-header'); + t._outerWidth(opts.width); + t._outerHeight(opts.height); + t.find('.calendar-body')._outerHeight(t.height() - header._outerHeight()); + } + + function init(target){ + $(target).addClass('calendar').html( + '
                              ' + + '
                              ' + + '
                              ' + + '
                              ' + + '
                              ' + + '
                              ' + + 'Aprial 2010' + + '
                              ' + + '
                              ' + + '
                              ' + + '
                              ' + + '
                              ' + + '' + + '' + + '' + + '
                              ' + + '
                              ' + + '
                              ' + + '
                              ' + + '
                              ' + ); + + $(target).find('.calendar-title span').hover( + function(){$(this).addClass('calendar-menu-hover');}, + function(){$(this).removeClass('calendar-menu-hover');} + ).click(function(){ + var menu = $(target).find('.calendar-menu'); + if (menu.is(':visible')){ + menu.hide(); + } else { + showSelectMenus(target); + } + }); + + $('.calendar-prevmonth,.calendar-nextmonth,.calendar-prevyear,.calendar-nextyear', target).hover( + function(){$(this).addClass('calendar-nav-hover');}, + function(){$(this).removeClass('calendar-nav-hover');} + ); + $(target).find('.calendar-nextmonth').click(function(){ + showMonth(target, 1); + }); + $(target).find('.calendar-prevmonth').click(function(){ + showMonth(target, -1); + }); + $(target).find('.calendar-nextyear').click(function(){ + showYear(target, 1); + }); + $(target).find('.calendar-prevyear').click(function(){ + showYear(target, -1); + }); + + $(target).bind('_resize', function(){ + var opts = $.data(target, 'calendar').options; + if (opts.fit == true){ + setSize(target); + } + return false; + }); + } + + /** + * show the calendar corresponding to the current month. + */ + function showMonth(target, delta){ + var opts = $.data(target, 'calendar').options; + opts.month += delta; + if (opts.month > 12){ + opts.year++; + opts.month = 1; + } else if (opts.month < 1){ + opts.year--; + opts.month = 12; + } + show(target); + + var menu = $(target).find('.calendar-menu-month-inner'); + menu.find('td.calendar-selected').removeClass('calendar-selected'); + menu.find('td:eq(' + (opts.month-1) + ')').addClass('calendar-selected'); + } + + /** + * show the calendar corresponding to the current year. + */ + function showYear(target, delta){ + var opts = $.data(target, 'calendar').options; + opts.year += delta; + show(target); + + var menu = $(target).find('.calendar-menu-year'); + menu.val(opts.year); + } + + /** + * show the select menu that can change year or month, if the menu is not be created then create it. + */ + function showSelectMenus(target){ + var opts = $.data(target, 'calendar').options; + $(target).find('.calendar-menu').show(); + + if ($(target).find('.calendar-menu-month-inner').is(':empty')){ + $(target).find('.calendar-menu-month-inner').empty(); + var t = $('
                              ').appendTo($(target).find('.calendar-menu-month-inner')); + var idx = 0; + for(var i=0; i<3; i++){ + var tr = $('').appendTo(t); + for(var j=0; j<4; j++){ + $('').html(opts.months[idx++]).attr('abbr',idx).appendTo(tr); + } + } + + $(target).find('.calendar-menu-prev,.calendar-menu-next').hover( + function(){$(this).addClass('calendar-menu-hover');}, + function(){$(this).removeClass('calendar-menu-hover');} + ); + $(target).find('.calendar-menu-next').click(function(){ + var y = $(target).find('.calendar-menu-year'); + if (!isNaN(y.val())){ + y.val(parseInt(y.val()) + 1); + } + }); + $(target).find('.calendar-menu-prev').click(function(){ + var y = $(target).find('.calendar-menu-year'); + if (!isNaN(y.val())){ + y.val(parseInt(y.val() - 1)); + } + }); + + $(target).find('.calendar-menu-year').keypress(function(e){ + if (e.keyCode == 13){ + setDate(); + } + }); + + $(target).find('.calendar-menu-month').hover( + function(){$(this).addClass('calendar-menu-hover');}, + function(){$(this).removeClass('calendar-menu-hover');} + ).click(function(){ + var menu = $(target).find('.calendar-menu'); + menu.find('.calendar-selected').removeClass('calendar-selected'); + $(this).addClass('calendar-selected'); + setDate(); + }); + } + + function setDate(){ + var menu = $(target).find('.calendar-menu'); + var year = menu.find('.calendar-menu-year').val(); + var month = menu.find('.calendar-selected').attr('abbr'); + if (!isNaN(year)){ + opts.year = parseInt(year); + opts.month = parseInt(month); + show(target); + } + menu.hide(); + } + + var body = $(target).find('.calendar-body'); + var sele = $(target).find('.calendar-menu'); + var seleYear = sele.find('.calendar-menu-year-inner'); + var seleMonth = sele.find('.calendar-menu-month-inner'); + + seleYear.find('input').val(opts.year).focus(); + seleMonth.find('td.calendar-selected').removeClass('calendar-selected'); + seleMonth.find('td:eq('+(opts.month-1)+')').addClass('calendar-selected'); + + sele._outerWidth(body._outerWidth()); + sele._outerHeight(body._outerHeight()); + seleMonth._outerHeight(sele.height() - seleYear._outerHeight()); + } + + /** + * get weeks data. + */ + function getWeeks(target, year, month){ + var opts = $.data(target, 'calendar').options; + var dates = []; + var lastDay = new Date(year, month, 0).getDate(); + for(var i=1; i<=lastDay; i++) dates.push([year,month,i]); + + // group date by week + var weeks = [], week = []; +// var memoDay = 0; + var memoDay = -1; + while(dates.length > 0){ + var date = dates.shift(); + week.push(date); + var day = new Date(date[0],date[1]-1,date[2]).getDay(); + if (memoDay == day){ + day = 0; + } else if (day == (opts.firstDay==0 ? 7 : opts.firstDay) - 1){ + weeks.push(week); + week = []; + } + memoDay = day; + } + if (week.length){ + weeks.push(week); + } + + var firstWeek = weeks[0]; + if (firstWeek.length < 7){ + while(firstWeek.length < 7){ + var firstDate = firstWeek[0]; + var date = new Date(firstDate[0],firstDate[1]-1,firstDate[2]-1) + firstWeek.unshift([date.getFullYear(), date.getMonth()+1, date.getDate()]); + } + } else { + var firstDate = firstWeek[0]; + var week = []; + for(var i=1; i<=7; i++){ + var date = new Date(firstDate[0], firstDate[1]-1, firstDate[2]-i); + week.unshift([date.getFullYear(), date.getMonth()+1, date.getDate()]); + } + weeks.unshift(week); + } + + var lastWeek = weeks[weeks.length-1]; + while(lastWeek.length < 7){ + var lastDate = lastWeek[lastWeek.length-1]; + var date = new Date(lastDate[0], lastDate[1]-1, lastDate[2]+1); + lastWeek.push([date.getFullYear(), date.getMonth()+1, date.getDate()]); + } + if (weeks.length < 6){ + var lastDate = lastWeek[lastWeek.length-1]; + var week = []; + for(var i=1; i<=7; i++){ + var date = new Date(lastDate[0], lastDate[1]-1, lastDate[2]+i); + week.push([date.getFullYear(), date.getMonth()+1, date.getDate()]); + } + weeks.push(week); + } + + return weeks; + } + + /** + * show the calendar day. + */ + function show(target){ + var opts = $.data(target, 'calendar').options; + $(target).find('.calendar-title span').html(opts.months[opts.month-1] + ' ' + opts.year); + + var body = $(target).find('div.calendar-body'); + body.find('>table').remove(); + + var t = $('
                              ').prependTo(body); + var tr = $('').appendTo(t.find('thead')); + for(var i=opts.firstDay; i'+opts.weeks[i]+''); + } + for(var i=0; i'+opts.weeks[i]+''); + } + + var weeks = getWeeks(target, opts.year, opts.month); + for(var i=0; i').appendTo(t.find('tbody')); + for(var j=0; j').attr('abbr',day[0]+','+day[1]+','+day[2]).html(day[2]).appendTo(tr); + } + } + t.find('td[abbr^="'+opts.year+','+opts.month+'"]').removeClass('calendar-other-month'); + + var now = new Date(); + var today = now.getFullYear()+','+(now.getMonth()+1)+','+now.getDate(); + t.find('td[abbr="'+today+'"]').addClass('calendar-today'); + + if (opts.current){ + t.find('.calendar-selected').removeClass('calendar-selected'); + var current = opts.current.getFullYear()+','+(opts.current.getMonth()+1)+','+opts.current.getDate(); + t.find('td[abbr="'+current+'"]').addClass('calendar-selected'); + } + + // calulate the saturday and sunday index + var saIndex = 6 - opts.firstDay; + var suIndex = saIndex + 1; + if (saIndex >= 7) saIndex -= 7; + if (suIndex >= 7) suIndex -= 7; + t.find('tr').find('td:eq('+saIndex+')').addClass('calendar-saturday'); + t.find('tr').find('td:eq('+suIndex+')').addClass('calendar-sunday'); + + t.find('td').hover( + function(){$(this).addClass('calendar-hover');}, + function(){$(this).removeClass('calendar-hover');} + ).click(function(){ + t.find('.calendar-selected').removeClass('calendar-selected'); + $(this).addClass('calendar-selected'); + var parts = $(this).attr('abbr').split(','); + opts.current = new Date(parts[0], parseInt(parts[1])-1, parts[2]); + opts.onSelect.call(target, opts.current); + }); + } + + $.fn.calendar = function(options, param){ + if (typeof options == 'string'){ + return $.fn.calendar.methods[options](this, param); + } + + options = options || {}; + return this.each(function(){ + var state = $.data(this, 'calendar'); + if (state){ + $.extend(state.options, options); + } else { + state = $.data(this, 'calendar', { + options:$.extend({}, $.fn.calendar.defaults, $.fn.calendar.parseOptions(this), options) + }); + init(this); + } + if (state.options.border == false){ + $(this).addClass('calendar-noborder'); + } + setSize(this); + show(this); + $(this).find('div.calendar-menu').hide(); // hide the calendar menu + }); + }; + + $.fn.calendar.methods = { + options: function(jq){ + return $.data(jq[0], 'calendar').options; + }, + resize: function(jq){ + return jq.each(function(){ + setSize(this); + }); + }, + moveTo: function(jq, date){ + return jq.each(function(){ + $(this).calendar({ + year: date.getFullYear(), + month: date.getMonth()+1, + current: date + }); + }); + } + }; + + $.fn.calendar.parseOptions = function(target){ + var t = $(target); + return $.extend({}, $.parser.parseOptions(target, [ + 'width','height',{firstDay:'number',fit:'boolean',border:'boolean'} + ])); + }; + + $.fn.calendar.defaults = { + width:180, + height:180, + fit:false, + border:true, + firstDay:0, + weeks:['S','M','T','W','T','F','S'], + months:['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + year:new Date().getFullYear(), + month:new Date().getMonth()+1, + current:new Date(), + + onSelect: function(date){} + }; +})(jQuery); diff --git a/src/main/webapp/js/easyui-1.3.5/src/jquery.combobox.js b/src/main/webapp/js/easyui-1.3.5/src/jquery.combobox.js new file mode 100644 index 00000000..b63dc3d1 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/src/jquery.combobox.js @@ -0,0 +1,539 @@ +/** + * combobox - jQuery EasyUI + * + * Copyright (c) 2009-2013 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL or commercial licenses + * To use it on other terms please contact us: info@jeasyui.com + * http://www.gnu.org/licenses/gpl.txt + * http://www.jeasyui.com/license_commercial.php + * + * Dependencies: + * combo + * + */ +(function($){ + function findRowBy(target, value, param, isGroup){ + var state = $.data(target, 'combobox'); + var opts = state.options; + if (isGroup){ + return _findRow(state.groups, param, value); + } else { + return _findRow(state.data, (param ? param : state.options.valueField), value); + } + + function _findRow(data,key,value){ + for(var i=0; i panel.height()){ + var h = panel.scrollTop() + item.position().top + item.outerHeight() - panel.height(); + panel.scrollTop(h); + } + } + } + + function nav(target, dir){ + var opts = $.data(target, 'combobox').options; + var panel = $(target).combobox('panel'); + var item = panel.children('div.combobox-item-hover'); + if (!item.length){ + item = panel.children('div.combobox-item-selected'); + } + item.removeClass('combobox-item-hover'); + var firstSelector = 'div.combobox-item:visible:not(.combobox-item-disabled):first'; + var lastSelector = 'div.combobox-item:visible:not(.combobox-item-disabled):last'; + if (!item.length){ + item = panel.children(dir=='next' ? firstSelector : lastSelector); +// item = panel.children('div.combobox-item:visible:' + (dir=='next'?'first':'last')); + } else { + if (dir == 'next'){ + item = item.nextAll(firstSelector); +// item = item.nextAll('div.combobox-item:visible:first'); + if (!item.length){ + item = panel.children(firstSelector); +// item = panel.children('div.combobox-item:visible:first'); + } + } else { + item = item.prevAll(firstSelector); +// item = item.prevAll('div.combobox-item:visible:first'); + if (!item.length){ + item = panel.children(lastSelector); +// item = panel.children('div.combobox-item:visible:last'); + } + } + } + if (item.length){ + item.addClass('combobox-item-hover'); + var row = findRowBy(target, item.attr('id'), 'domId'); + if (row){ + scrollTo(target, row[opts.valueField]); + if (opts.selectOnNavigation){ + select(target, row[opts.valueField]); + } + } + } + } + + /** + * select the specified value + */ + function select(target, value){ + var opts = $.data(target, 'combobox').options; + var values = $(target).combo('getValues'); + if ($.inArray(value+'', values) == -1){ + if (opts.multiple){ + values.push(value); + } else { + values = [value]; + } + setValues(target, values); + opts.onSelect.call(target, findRowBy(target, value)); + } + } + + /** + * unselect the specified value + */ + function unselect(target, value){ + var opts = $.data(target, 'combobox').options; + var values = $(target).combo('getValues'); + var index = $.inArray(value+'', values); + if (index >= 0){ + values.splice(index, 1); + setValues(target, values); + opts.onUnselect.call(target, findRowBy(target, value)); + } + } + + /** + * set values + */ + function setValues(target, values, remainText){ + var opts = $.data(target, 'combobox').options; + var panel = $(target).combo('panel'); + + panel.find('div.combobox-item-selected').removeClass('combobox-item-selected'); + var vv = [], ss = []; + for(var i=0; i'); + dd.push(opts.groupFormatter ? opts.groupFormatter.call(target, g) : g); + dd.push('
                              '); + } + } else { + group = undefined; + } + + var cls = 'combobox-item' + (row.disabled ? ' combobox-item-disabled' : '') + (g ? ' combobox-gitem' : ''); + row.domId = '_easyui_combobox_' + itemIndex++; + dd.push('
                              '); + dd.push(opts.formatter ? opts.formatter.call(target, row) : s); + dd.push('
                              '); + +// if (item['selected']){ +// (function(){ +// for(var i=0; i').appendTo(panel); + if (opts.sharedCalendar){ + state.calendar = $(opts.sharedCalendar).appendTo(cc); + if (!state.calendar.hasClass('calendar')){ + state.calendar.calendar(); + } + } else { + state.calendar = $('
                              ').appendTo(cc).calendar(); + } + $.extend(state.calendar.calendar('options'), { + fit:true, + border:false, + onSelect:function(date){ + var opts = $(this.target).datebox('options'); + setValue(this.target, opts.formatter(date)); + $(this.target).combo('hidePanel'); + opts.onSelect.call(target, date); + } + }); + setValue(target, opts.value); + + var button = $('
                              ').appendTo(panel); + var tr = button.find('tr'); + for(var i=0; i').appendTo(tr); + var btn = opts.buttons[i]; + var t = $('').html($.isFunction(btn.text) ? btn.text(target) : btn.text).appendTo(td); + t.bind('click', {target: target, handler: btn.handler}, function(e){ + e.data.handler.call(this, e.data.target); + }); + } + tr.find('td').css('width', (100/opts.buttons.length)+'%'); + } + + function setCalendar(){ + var panel = $(target).combo('panel'); + var cc = panel.children('div.datebox-calendar-inner'); + panel.children()._outerWidth(panel.width()); + state.calendar.appendTo(cc); + state.calendar[0].target = target; + if (opts.panelHeight != 'auto'){ + var height = panel.height(); + panel.children().not(cc).each(function(){ + height -= $(this).outerHeight(); + }); + cc._outerHeight(height); + } + state.calendar.calendar('resize'); + } + } + + /** + * called when user inputs some value in text box + */ + function doQuery(target, q){ + setValue(target, q); + } + + /** + * called when user press enter key + */ + function doEnter(target){ + var state = $.data(target, 'datebox'); + var opts = state.options; + var value = opts.formatter(state.calendar.calendar('options').current); + setValue(target, value); + $(target).combo('hidePanel'); + } + + function setValue(target, value){ + var state = $.data(target, 'datebox'); + var opts = state.options; + $(target).combo('setValue', value).combo('setText', value); + state.calendar.calendar('moveTo', opts.parser(value)); + } + + $.fn.datebox = function(options, param){ + if (typeof options == 'string'){ + var method = $.fn.datebox.methods[options]; + if (method){ + return method(this, param); + } else { + return this.combo(options, param); + } + } + + options = options || {}; + return this.each(function(){ + var state = $.data(this, 'datebox'); + if (state){ + $.extend(state.options, options); + } else { + $.data(this, 'datebox', { + options: $.extend({}, $.fn.datebox.defaults, $.fn.datebox.parseOptions(this), options) + }); + } + createBox(this); + }); + }; + + $.fn.datebox.methods = { + options: function(jq){ + var copts = jq.combo('options'); + return $.extend($.data(jq[0], 'datebox').options, { + originalValue: copts.originalValue, + disabled: copts.disabled, + readonly: copts.readonly + }); + }, + calendar: function(jq){ // get the calendar object + return $.data(jq[0], 'datebox').calendar; + }, + setValue: function(jq, value){ + return jq.each(function(){ + setValue(this, value); + }); + }, + reset: function(jq){ + return jq.each(function(){ + var opts = $(this).datebox('options'); + $(this).datebox('setValue', opts.originalValue); + }); + } + }; + + $.fn.datebox.parseOptions = function(target){ + return $.extend({}, $.fn.combo.parseOptions(target), $.parser.parseOptions(target, ['sharedCalendar'])); + }; + + $.fn.datebox.defaults = $.extend({}, $.fn.combo.defaults, { + panelWidth:180, + panelHeight:'auto', + sharedCalendar:null, + + keyHandler: { + up:function(e){}, + down:function(e){}, + left: function(e){}, + right: function(e){}, + enter:function(e){doEnter(this)}, + query:function(q,e){doQuery(this, q)} + }, + + currentText:'Today', + closeText:'Close', + okText:'Ok', + + buttons:[{ + text: function(target){return $(target).datebox('options').currentText;}, + handler: function(target){ + $(target).datebox('calendar').calendar({ + year:new Date().getFullYear(), + month:new Date().getMonth()+1, + current:new Date() + }); + doEnter(target); + } + },{ + text: function(target){return $(target).datebox('options').closeText;}, + handler: function(target){ + $(this).closest('div.combo-panel').panel('close'); + } + }], + + formatter:function(date){ + var y = date.getFullYear(); + var m = date.getMonth()+1; + var d = date.getDate(); + return m+'/'+d+'/'+y; + }, + parser:function(s){ + var t = Date.parse(s); + if (!isNaN(t)){ + return new Date(t); + } else { + return new Date(); + } + }, + + onSelect:function(date){} + }); +})(jQuery); diff --git a/src/main/webapp/js/easyui-1.3.5/src/jquery.draggable.js b/src/main/webapp/js/easyui-1.3.5/src/jquery.draggable.js new file mode 100644 index 00000000..e4642e41 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/src/jquery.draggable.js @@ -0,0 +1,417 @@ +/** + * draggable - jQuery EasyUI + * + * Copyright (c) 2009-2013 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL or commercial licenses + * To use it on other terms please contact us: info@jeasyui.com + * http://www.gnu.org/licenses/gpl.txt + * http://www.jeasyui.com/license_commercial.php + */ +(function($){ +// var isDragging = false; + function drag(e){ + var state = $.data(e.data.target, 'draggable'); + var opts = state.options; + var proxy = state.proxy; + + var dragData = e.data; + var left = dragData.startLeft + e.pageX - dragData.startX; + var top = dragData.startTop + e.pageY - dragData.startY; + + if (proxy){ + if (proxy.parent()[0] == document.body){ + if (opts.deltaX != null && opts.deltaX != undefined){ + left = e.pageX + opts.deltaX; + } else { + left = e.pageX - e.data.offsetWidth; + } + if (opts.deltaY != null && opts.deltaY != undefined){ + top = e.pageY + opts.deltaY; + } else { + top = e.pageY - e.data.offsetHeight; + } + } else { + if (opts.deltaX != null && opts.deltaX != undefined){ + left += e.data.offsetWidth + opts.deltaX; + } + if (opts.deltaY != null && opts.deltaY != undefined){ + top += e.data.offsetHeight + opts.deltaY; + } + } + } + +// if (opts.deltaX != null && opts.deltaX != undefined){ +// left = e.pageX + opts.deltaX; +// } +// if (opts.deltaY != null && opts.deltaY != undefined){ +// top = e.pageY + opts.deltaY; +// } + + if (e.data.parent != document.body) { + left += $(e.data.parent).scrollLeft(); + top += $(e.data.parent).scrollTop(); + } + + if (opts.axis == 'h') { + dragData.left = left; + } else if (opts.axis == 'v') { + dragData.top = top; + } else { + dragData.left = left; + dragData.top = top; + } + } + + function applyDrag(e){ + var state = $.data(e.data.target, 'draggable'); + var opts = state.options; + var proxy = state.proxy; + if (!proxy){ + proxy = $(e.data.target); + } +// if (proxy){ +// proxy.css('cursor', opts.cursor); +// } else { +// proxy = $(e.data.target); +// $.data(e.data.target, 'draggable').handle.css('cursor', opts.cursor); +// } + proxy.css({ + left:e.data.left, + top:e.data.top + }); + $('body').css('cursor', opts.cursor); + } + + function doDown(e){ +// isDragging = true; + $.fn.draggable.isDragging = true; + var state = $.data(e.data.target, 'draggable'); + var opts = state.options; + + var droppables = $('.droppable').filter(function(){ + return e.data.target != this; + }).filter(function(){ + var accept = $.data(this, 'droppable').options.accept; + if (accept){ + return $(accept).filter(function(){ + return this == e.data.target; + }).length > 0; + } else { + return true; + } + }); + state.droppables = droppables; + + var proxy = state.proxy; + if (!proxy){ + if (opts.proxy){ + if (opts.proxy == 'clone'){ + proxy = $(e.data.target).clone().insertAfter(e.data.target); + } else { + proxy = opts.proxy.call(e.data.target, e.data.target); + } + state.proxy = proxy; + } else { + proxy = $(e.data.target); + } + } + + proxy.css('position', 'absolute'); + drag(e); + applyDrag(e); + + opts.onStartDrag.call(e.data.target, e); + return false; + } + + function doMove(e){ + var state = $.data(e.data.target, 'draggable'); + drag(e); + if (state.options.onDrag.call(e.data.target, e) != false){ + applyDrag(e); + } + + var source = e.data.target; + state.droppables.each(function(){ + var dropObj = $(this); + if (dropObj.droppable('options').disabled){return;} + + var p2 = dropObj.offset(); + if (e.pageX > p2.left && e.pageX < p2.left + dropObj.outerWidth() + && e.pageY > p2.top && e.pageY < p2.top + dropObj.outerHeight()){ + if (!this.entered){ + $(this).trigger('_dragenter', [source]); + this.entered = true; + } + $(this).trigger('_dragover', [source]); + } else { + if (this.entered){ + $(this).trigger('_dragleave', [source]); + this.entered = false; + } + } + }); + + return false; + } + + function doUp(e){ +// isDragging = false; + $.fn.draggable.isDragging = false; +// drag(e); + doMove(e); + + var state = $.data(e.data.target, 'draggable'); + var proxy = state.proxy; + var opts = state.options; + if (opts.revert){ + if (checkDrop() == true){ + $(e.data.target).css({ + position:e.data.startPosition, + left:e.data.startLeft, + top:e.data.startTop + }); + } else { + if (proxy){ + var left, top; + if (proxy.parent()[0] == document.body){ + left = e.data.startX - e.data.offsetWidth; + top = e.data.startY - e.data.offsetHeight; + } else { + left = e.data.startLeft; + top = e.data.startTop; + } + proxy.animate({ + left: left, + top: top + }, function(){ + removeProxy(); + }); + } else { + $(e.data.target).animate({ + left:e.data.startLeft, + top:e.data.startTop + }, function(){ + $(e.data.target).css('position', e.data.startPosition); + }); + } + } + } else { + $(e.data.target).css({ + position:'absolute', + left:e.data.left, + top:e.data.top + }); + checkDrop(); + } + + opts.onStopDrag.call(e.data.target, e); + + $(document).unbind('.draggable'); + setTimeout(function(){ + $('body').css('cursor',''); + },100); + + function removeProxy(){ + if (proxy){ + proxy.remove(); + } + state.proxy = null; + } + + function checkDrop(){ + var dropped = false; + state.droppables.each(function(){ + var dropObj = $(this); + if (dropObj.droppable('options').disabled){return;} + + var p2 = dropObj.offset(); + if (e.pageX > p2.left && e.pageX < p2.left + dropObj.outerWidth() + && e.pageY > p2.top && e.pageY < p2.top + dropObj.outerHeight()){ + if (opts.revert){ + $(e.data.target).css({ + position:e.data.startPosition, + left:e.data.startLeft, + top:e.data.startTop + }); + } + $(this).trigger('_drop', [e.data.target]); + removeProxy(); + dropped = true; + this.entered = false; + return false; + } + }); + if (!dropped && !opts.revert){ + removeProxy(); + } + return dropped; + } + + return false; + } + + $.fn.draggable = function(options, param){ + if (typeof options == 'string'){ + return $.fn.draggable.methods[options](this, param); + } + + return this.each(function(){ + var opts; + var state = $.data(this, 'draggable'); + if (state) { + state.handle.unbind('.draggable'); + opts = $.extend(state.options, options); + } else { + opts = $.extend({}, $.fn.draggable.defaults, $.fn.draggable.parseOptions(this), options || {}); + } + var handle = opts.handle ? (typeof opts.handle=='string' ? $(opts.handle, this) : opts.handle) : $(this); + + $.data(this, 'draggable', { + options: opts, + handle: handle + }); + + if (opts.disabled) { + $(this).css('cursor', ''); + return; + } + + handle.unbind('.draggable').bind('mousemove.draggable', {target:this}, function(e){ +// if (isDragging) return; + if ($.fn.draggable.isDragging){return} + var opts = $.data(e.data.target, 'draggable').options; + if (checkArea(e)){ + $(this).css('cursor', opts.cursor); + } else { + $(this).css('cursor', ''); + } + }).bind('mouseleave.draggable', {target:this}, function(e){ + $(this).css('cursor', ''); + }).bind('mousedown.draggable', {target:this}, function(e){ + if (checkArea(e) == false) return; + $(this).css('cursor', ''); + + var position = $(e.data.target).position(); + var offset = $(e.data.target).offset(); + var data = { + startPosition: $(e.data.target).css('position'), + startLeft: position.left, + startTop: position.top, + left: position.left, + top: position.top, + startX: e.pageX, + startY: e.pageY, + offsetWidth: (e.pageX - offset.left), + offsetHeight: (e.pageY - offset.top), + target: e.data.target, + parent: $(e.data.target).parent()[0] + }; + + $.extend(e.data, data); + var opts = $.data(e.data.target, 'draggable').options; + if (opts.onBeforeDrag.call(e.data.target, e) == false) return; + + $(document).bind('mousedown.draggable', e.data, doDown); + $(document).bind('mousemove.draggable', e.data, doMove); + $(document).bind('mouseup.draggable', e.data, doUp); +// $('body').css('cursor', opts.cursor); + }); + + // check if the handle can be dragged + function checkArea(e) { + var state = $.data(e.data.target, 'draggable'); + var handle = state.handle; + var offset = $(handle).offset(); + var width = $(handle).outerWidth(); + var height = $(handle).outerHeight(); + var t = e.pageY - offset.top; + var r = offset.left + width - e.pageX; + var b = offset.top + height - e.pageY; + var l = e.pageX - offset.left; + + return Math.min(t,r,b,l) > state.options.edge; + } + + }); + }; + + $.fn.draggable.methods = { + options: function(jq){ + return $.data(jq[0], 'draggable').options; + }, + proxy: function(jq){ + return $.data(jq[0], 'draggable').proxy; + }, + enable: function(jq){ + return jq.each(function(){ + $(this).draggable({disabled:false}); + }); + }, + disable: function(jq){ + return jq.each(function(){ + $(this).draggable({disabled:true}); + }); + } + }; + + $.fn.draggable.parseOptions = function(target){ + var t = $(target); + return $.extend({}, + $.parser.parseOptions(target, ['cursor','handle','axis', + {'revert':'boolean','deltaX':'number','deltaY':'number','edge':'number'}]), { + disabled: (t.attr('disabled') ? true : undefined) + }); + }; + + $.fn.draggable.defaults = { + proxy:null, // 'clone' or a function that will create the proxy object, + // the function has the source parameter that indicate the source object dragged. + revert:false, + cursor:'move', + deltaX:null, + deltaY:null, + handle: null, + disabled: false, + edge:0, + axis:null, // v or h + + onBeforeDrag: function(e){}, + onStartDrag: function(e){}, + onDrag: function(e){}, + onStopDrag: function(e){} + }; + + $.fn.draggable.isDragging = false; + +// $(function(){ +// function touchHandler(e) { +// var touches = e.changedTouches, first = touches[0], type = ""; +// +// switch(e.type) { +// case "touchstart": type = "mousedown"; break; +// case "touchmove": type = "mousemove"; break; +// case "touchend": type = "mouseup"; break; +// default: return; +// } +// var simulatedEvent = document.createEvent("MouseEvent"); +// simulatedEvent.initMouseEvent(type, true, true, window, 1, +// first.screenX, first.screenY, +// first.clientX, first.clientY, false, +// false, false, false, 0/*left*/, null); +// +// first.target.dispatchEvent(simulatedEvent); +// if (isDragging){ +// e.preventDefault(); +// } +// } +// +// if (document.addEventListener){ +// document.addEventListener("touchstart", touchHandler, true); +// document.addEventListener("touchmove", touchHandler, true); +// document.addEventListener("touchend", touchHandler, true); +// document.addEventListener("touchcancel", touchHandler, true); +// } +// }); +})(jQuery); diff --git a/src/main/webapp/js/easyui-1.3.5/src/jquery.droppable.js b/src/main/webapp/js/easyui-1.3.5/src/jquery.droppable.js new file mode 100644 index 00000000..2092a3d8 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/src/jquery.droppable.js @@ -0,0 +1,78 @@ +/** + * droppable - jQuery EasyUI + * + * Copyright (c) 2009-2013 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL or commercial licenses + * To use it on other terms please contact us: info@jeasyui.com + * http://www.gnu.org/licenses/gpl.txt + * http://www.jeasyui.com/license_commercial.php + */ +(function($){ + function init(target){ + $(target).addClass('droppable'); + $(target).bind('_dragenter', function(e, source){ + $.data(target, 'droppable').options.onDragEnter.apply(target, [e, source]); + }); + $(target).bind('_dragleave', function(e, source){ + $.data(target, 'droppable').options.onDragLeave.apply(target, [e, source]); + }); + $(target).bind('_dragover', function(e, source){ + $.data(target, 'droppable').options.onDragOver.apply(target, [e, source]); + }); + $(target).bind('_drop', function(e, source){ + $.data(target, 'droppable').options.onDrop.apply(target, [e, source]); + }); + } + + $.fn.droppable = function(options, param){ + if (typeof options == 'string'){ + return $.fn.droppable.methods[options](this, param); + } + + options = options || {}; + return this.each(function(){ + var state = $.data(this, 'droppable'); + if (state){ + $.extend(state.options, options); + } else { + init(this); + $.data(this, 'droppable', { + options: $.extend({}, $.fn.droppable.defaults, $.fn.droppable.parseOptions(this), options) + }); + } + }); + }; + + $.fn.droppable.methods = { + options: function(jq){ + return $.data(jq[0], 'droppable').options; + }, + enable: function(jq){ + return jq.each(function(){ + $(this).droppable({disabled:false}); + }); + }, + disable: function(jq){ + return jq.each(function(){ + $(this).droppable({disabled:true}); + }); + } + }; + + $.fn.droppable.parseOptions = function(target){ + var t = $(target); + return $.extend({}, $.parser.parseOptions(target, ['accept']), { + disabled: (t.attr('disabled') ? true : undefined) + }); + }; + + $.fn.droppable.defaults = { + accept:null, + disabled:false, + onDragEnter:function(e, source){}, + onDragOver:function(e, source){}, + onDragLeave:function(e, source){}, + onDrop:function(e, source){} + }; +})(jQuery); diff --git a/src/main/webapp/js/easyui-1.3.5/src/jquery.form.js b/src/main/webapp/js/easyui-1.3.5/src/jquery.form.js new file mode 100644 index 00000000..2a85dd71 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/src/jquery.form.js @@ -0,0 +1,378 @@ +/** + * form - jQuery EasyUI + * + * Copyright (c) 2009-2013 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL or commercial licenses + * To use it on other terms please contact us: info@jeasyui.com + * http://www.gnu.org/licenses/gpl.txt + * http://www.jeasyui.com/license_commercial.php + */ +(function($){ + /** + * submit the form + */ + function ajaxSubmit(target, options){ + options = options || {}; + + var param = {}; + if (options.onSubmit){ + if (options.onSubmit.call(target, param) == false) { + return; + } + } + + var form = $(target); + if (options.url){ + form.attr('action', options.url); + } + var frameId = 'easyui_frame_' + (new Date().getTime()); + var frame = $('') + .attr('src', window.ActiveXObject ? 'javascript:false' : 'about:blank') + .css({ + position:'absolute', + top:-1000, + left:-1000 + }); + var t = form.attr('target'), a = form.attr('action'); + form.attr('target', frameId); + + var paramFields = $(); + try { + frame.appendTo('body'); + frame.bind('load', cb); + for(var n in param){ + var f = $('').val(param[n]).appendTo(form); + paramFields = paramFields.add(f); + } + checkState(); + form[0].submit(); + } finally { + form.attr('action', a); + t ? form.attr('target', t) : form.removeAttr('target'); + paramFields.remove(); + } + + function checkState(){ + var f = $('#'+frameId); + if (!f.length){return} + try{ + var s = f.contents()[0].readyState; + if (s && s.toLowerCase() == 'uninitialized'){ + setTimeout(checkState, 100); + } + } catch(e){ + cb(); + } + } + + var checkCount = 10; + function cb(){ + var frame = $('#'+frameId); + if (!frame.length){return} + frame.unbind(); + var data = ''; + try{ + var body = frame.contents().find('body'); + data = body.html(); + if (data == ''){ + if (--checkCount){ + setTimeout(cb, 100); + return; + } +// return; + } + var ta = body.find('>textarea'); + if (ta.length){ + data = ta.val(); + } else { + var pre = body.find('>pre'); + if (pre.length){ + data = pre.html(); + } + } + } catch(e){ + + } + if (options.success){ + options.success(data); + } + setTimeout(function(){ + frame.unbind(); + frame.remove(); + }, 100); + } + } + + /** + * load form data + * if data is a URL string type load from remote site, + * otherwise load from local data object. + */ + function load(target, data){ + if (!$.data(target, 'form')){ + $.data(target, 'form', { + options: $.extend({}, $.fn.form.defaults) + }); + } + var opts = $.data(target, 'form').options; + + if (typeof data == 'string'){ + var param = {}; + if (opts.onBeforeLoad.call(target, param) == false) return; + + $.ajax({ + url: data, + data: param, + dataType: 'json', + success: function(data){ + _load(data); + }, + error: function(){ + opts.onLoadError.apply(target, arguments); + } + }); + } else { + _load(data); + } + + function _load(data){ + var form = $(target); + for(var name in data){ + var val = data[name]; + var rr = _checkField(name, val); + if (!rr.length){ +// var f = form.find('input[numberboxName="'+name+'"]'); +// if (f.length){ +// f.numberbox('setValue', val); // set numberbox value +// } else { +// $('input[name="'+name+'"]', form).val(val); +// $('textarea[name="'+name+'"]', form).val(val); +// $('select[name="'+name+'"]', form).val(val); +// } + var count = _loadOther(name, val); + if (!count){ + $('input[name="'+name+'"]', form).val(val); + $('textarea[name="'+name+'"]', form).val(val); + $('select[name="'+name+'"]', form).val(val); + } + } + _loadCombo(name, val); + } + opts.onLoadSuccess.call(target, data); + validate(target); + } + + /** + * check the checkbox and radio fields + */ + function _checkField(name, val){ + var rr = $(target).find('input[name="'+name+'"][type=radio], input[name="'+name+'"][type=checkbox]'); + rr._propAttr('checked', false); + rr.each(function(){ + var f = $(this); + if (f.val() == String(val) || $.inArray(f.val(), $.isArray(val)?val:[val]) >= 0){ + f._propAttr('checked', true); + } + }); + return rr; + } + + function _loadOther(name, val){ + var count = 0; + var pp = ['numberbox','slider']; + for(var i=0; i' + + '' + + '' + ); + if (opts.text){ + t.find('.l-btn-text').html(opts.text); + if (opts.iconCls){ + t.find('.l-btn-text').addClass(opts.iconCls).addClass(opts.iconAlign=='left' ? 'l-btn-icon-left' : 'l-btn-icon-right'); + } + } else { + t.find('.l-btn-text').html(' '); + if (opts.iconCls){ + t.find('.l-btn-empty').addClass(opts.iconCls); + } + } + + t.unbind('.linkbutton').bind('focus.linkbutton',function(){ + if (!opts.disabled){ + $(this).find('.l-btn-text').addClass('l-btn-focus'); + } + }).bind('blur.linkbutton',function(){ + $(this).find('.l-btn-text').removeClass('l-btn-focus'); + }); + if (opts.toggle && !opts.disabled){ + t.bind('click.linkbutton', function(){ + if (opts.selected){ + $(this).linkbutton('unselect'); + } else { + $(this).linkbutton('select'); + } + }); + } + + setSelected(target, opts.selected) + setDisabled(target, opts.disabled); + } + + function setSelected(target, selected){ + var opts = $.data(target, 'linkbutton').options; + if (selected){ + if (opts.group){ + $('a.l-btn[group="'+opts.group+'"]').each(function(){ + var o = $(this).linkbutton('options'); + if (o.toggle){ + $(this).removeClass('l-btn-selected l-btn-plain-selected'); + o.selected = false; + } + }); + } + $(target).addClass(opts.plain ? 'l-btn-selected l-btn-plain-selected' : 'l-btn-selected'); + opts.selected = true; + } else { + if (!opts.group){ + $(target).removeClass('l-btn-selected l-btn-plain-selected'); + opts.selected = false; + } + } + } + + function setDisabled(target, disabled){ + var state = $.data(target, 'linkbutton'); + var opts = state.options; + $(target).removeClass('l-btn-disabled l-btn-plain-disabled'); + if (disabled){ + opts.disabled = true; + var href = $(target).attr('href'); + if (href){ + state.href = href; + $(target).attr('href', 'javascript:void(0)'); + } + if (target.onclick){ + state.onclick = target.onclick; + target.onclick = null; + } + opts.plain ? $(target).addClass('l-btn-disabled l-btn-plain-disabled') : $(target).addClass('l-btn-disabled'); + } else { + opts.disabled = false; + if (state.href) { + $(target).attr('href', state.href); + } + if (state.onclick) { + target.onclick = state.onclick; + } + } + } + + $.fn.linkbutton = function(options, param){ + if (typeof options == 'string'){ + return $.fn.linkbutton.methods[options](this, param); + } + + options = options || {}; + return this.each(function(){ + var state = $.data(this, 'linkbutton'); + if (state){ + $.extend(state.options, options); + } else { + $.data(this, 'linkbutton', { + options: $.extend({}, $.fn.linkbutton.defaults, $.fn.linkbutton.parseOptions(this), options) + }); + $(this).removeAttr('disabled'); + } + + createButton(this); + }); + }; + + $.fn.linkbutton.methods = { + options: function(jq){ + return $.data(jq[0], 'linkbutton').options; + }, + enable: function(jq){ + return jq.each(function(){ + setDisabled(this, false); + }); + }, + disable: function(jq){ + return jq.each(function(){ + setDisabled(this, true); + }); + }, + select: function(jq){ + return jq.each(function(){ + setSelected(this, true); + }); + }, + unselect: function(jq){ + return jq.each(function(){ + setSelected(this, false); + }); + } + }; + + $.fn.linkbutton.parseOptions = function(target){ + var t = $(target); + return $.extend({}, $.parser.parseOptions(target, + ['id','iconCls','iconAlign','group',{plain:'boolean',toggle:'boolean',selected:'boolean'}] + ), { + disabled: (t.attr('disabled') ? true : undefined), + text: $.trim(t.html()), + iconCls: (t.attr('icon') || t.attr('iconCls')) + }); + }; + + $.fn.linkbutton.defaults = { + id: null, + disabled: false, + toggle: false, + selected: false, + group: null, + plain: false, + text: '', + iconCls: null, + iconAlign: 'left' + }; + +})(jQuery); diff --git a/src/main/webapp/js/easyui-1.3.5/src/jquery.menu.js b/src/main/webapp/js/easyui-1.3.5/src/jquery.menu.js new file mode 100644 index 00000000..b03b7468 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/src/jquery.menu.js @@ -0,0 +1,543 @@ +/** + * menu - jQuery EasyUI + * + * Copyright (c) 2009-2013 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL or commercial licenses + * To use it on other terms please contact us: info@jeasyui.com + * http://www.gnu.org/licenses/gpl.txt + * http://www.jeasyui.com/license_commercial.php + */ +(function($){ + + /** + * initialize the target menu, the function can be invoked only once + */ + function init(target){ + $(target).appendTo('body'); + $(target).addClass('menu-top'); // the top menu + + $(document).unbind('.menu').bind('mousedown.menu', function(e){ + var allMenu = $('body>div.menu:visible'); + var m = $(e.target).closest('div.menu', allMenu); + if (m.length){return} + $('body>div.menu-top:visible').menu('hide'); + }); + + var menus = splitMenu($(target)); + for(var i=0; i').html(text)); + if (itemOpts.iconCls){ + $('').addClass(itemOpts.iconCls).appendTo(item); + } + if (itemOpts.disabled){ + setDisabled(target, item[0], true); + } + if (item[0].submenu){ + $('').appendTo(item); // has sub menu + } + + bindMenuItemEvent(target, item); + } + }); + $('').prependTo(menu); + } + setMenuWidth(target, menu); + menu.hide(); + + bindMenuEvent(target, menu); + } + } + + function setMenuWidth(target, menu){ + var opts = $.data(target, 'menu').options; +// var d = menu.css('display'); + var style = menu.attr('style'); + menu.css({ + display: 'block', + left:-10000, + height: 'auto', + overflow: 'hidden' + }); + +// menu.find('div.menu-item')._outerHeight(22); + var width = 0; + menu.find('div.menu-text').each(function(){ + if (width < $(this)._outerWidth()){ + width = $(this)._outerWidth(); + } + $(this).closest('div.menu-item')._outerHeight($(this)._outerHeight()+2); + }); + width += 65; + menu._outerWidth(Math.max((menu[0].originalWidth || 0), width, opts.minWidth)); + + menu.children('div.menu-line')._outerHeight(menu.outerHeight()); + +// menu.css('display', d); + menu.attr('style', style); + } + + /** + * bind menu event + */ + function bindMenuEvent(target, menu){ + var state = $.data(target, 'menu'); + menu.unbind('.menu').bind('mouseenter.menu', function(){ + if (state.timer){ + clearTimeout(state.timer); + state.timer = null; + } + }).bind('mouseleave.menu', function(){ + if (state.options.hideOnUnhover){ + state.timer = setTimeout(function(){ + hideAll(target); + }, 100); + } + }); + } + + /** + * bind menu item event + */ + function bindMenuItemEvent(target, item){ + if (!item.hasClass('menu-item')){return} + item.unbind('.menu'); + item.bind('click.menu', function(){ + if ($(this).hasClass('menu-item-disabled')){ + return; + } + // only the sub menu clicked can hide all menus + if (!this.submenu){ + hideAll(target); + var href = $(this).attr('href'); + if (href){ + location.href = href; + } + } + var item = $(target).menu('getItem', this); + $.data(target, 'menu').options.onClick.call(target, item); + }).bind('mouseenter.menu', function(e){ + // hide other menu + item.siblings().each(function(){ + if (this.submenu){ + hideMenu(this.submenu); + } + $(this).removeClass('menu-active'); + }); + // show this menu + item.addClass('menu-active'); + + if ($(this).hasClass('menu-item-disabled')){ + item.addClass('menu-active-disabled'); + return; + } + + var submenu = item[0].submenu; + if (submenu){ + $(target).menu('show', { + menu: submenu, + parent: item + }); + } + }).bind('mouseleave.menu', function(e){ + item.removeClass('menu-active menu-active-disabled'); + var submenu = item[0].submenu; + if (submenu){ + if (e.pageX>=parseInt(submenu.css('left'))){ + item.addClass('menu-active'); + } else { + hideMenu(submenu); + } + + } else { + item.removeClass('menu-active'); + } + }); + } + + /** + * hide top menu and it's all sub menus + */ + function hideAll(target){ + var state = $.data(target, 'menu'); + if (state){ + if ($(target).is(':visible')){ + hideMenu($(target)); + state.options.onHide.call(target); + } + } + return false; + } + + /** + * show the menu, the 'param' object has one or more properties: + * left: the left position to display + * top: the top position to display + * menu: the menu to display, if not defined, the 'target menu' is used + * parent: the parent menu item to align to + * alignTo: the element object to align to + */ + function showMenu(target, param){ + var left,top; + param = param || {}; + var menu = $(param.menu || target); + if (menu.hasClass('menu-top')){ + var opts = $.data(target, 'menu').options; + $.extend(opts, param); + left = opts.left; + top = opts.top; + if (opts.alignTo){ + var at = $(opts.alignTo); + left = at.offset().left; + top = at.offset().top + at._outerHeight(); + } +// if (param.left != undefined){left = param.left} +// if (param.top != undefined){top = param.top} + if (left + menu.outerWidth() > $(window)._outerWidth() + $(document)._scrollLeft()){ + left = $(window)._outerWidth() + $(document).scrollLeft() - menu.outerWidth() - 5; + } + if (top + menu.outerHeight() > $(window)._outerHeight() + $(document).scrollTop()){ +// top -= menu.outerHeight(); + top = $(window)._outerHeight() + $(document).scrollTop() - menu.outerHeight() - 5; + } + } else { + var parent = param.parent; // the parent menu item + left = parent.offset().left + parent.outerWidth() - 2; + if (left + menu.outerWidth() + 5 > $(window)._outerWidth() + $(document).scrollLeft()){ + left = parent.offset().left - menu.outerWidth() + 2; + } + var top = parent.offset().top - 3; + if (top + menu.outerHeight() > $(window)._outerHeight() + $(document).scrollTop()){ + top = $(window)._outerHeight() + $(document).scrollTop() - menu.outerHeight() - 5; + } + } + menu.css({left:left,top:top}); + menu.show(0, function(){ + if (!menu[0].shadow){ + menu[0].shadow = $('').insertAfter(menu); + } + menu[0].shadow.css({ + display:'block', + zIndex:$.fn.menu.defaults.zIndex++, + left:menu.css('left'), + top:menu.css('top'), + width:menu.outerWidth(), + height:menu.outerHeight() + }); + menu.css('z-index', $.fn.menu.defaults.zIndex++); + if (menu.hasClass('menu-top')){ + $.data(menu[0], 'menu').options.onShow.call(menu[0]); + } + }); + } + + function hideMenu(menu){ + if (!menu) return; + + hideit(menu); + menu.find('div.menu-item').each(function(){ + if (this.submenu){ + hideMenu(this.submenu); + } + $(this).removeClass('menu-active'); + }); + + function hideit(m){ + m.stop(true,true); + if (m[0].shadow){ + m[0].shadow.hide(); + } + m.hide(); + } + } + + function findItem(target, text){ + var result = null; + var tmp = $('
                              '); + function find(menu){ + menu.children('div.menu-item').each(function(){ + var item = $(target).menu('getItem', this); + var s = tmp.empty().html(item.text).text(); + if (text == $.trim(s)) { + result = item; + } else if (this.submenu && !result){ + find(this.submenu); + } + }); + } + find($(target)); + tmp.remove(); + return result; + } + + function setDisabled(target, itemEl, disabled){ + var t = $(itemEl); + if (!t.hasClass('menu-item')){return} + + if (disabled){ + t.addClass('menu-item-disabled'); + if (itemEl.onclick){ + itemEl.onclick1 = itemEl.onclick; + itemEl.onclick = null; + } + } else { + t.removeClass('menu-item-disabled'); + if (itemEl.onclick1){ + itemEl.onclick = itemEl.onclick1; + itemEl.onclick1 = null; + } + } + } + + function appendItem(target, param){ + var menu = $(target); + if (param.parent){ + if (!param.parent.submenu){ + var submenu = $('').appendTo('body'); + submenu.hide(); + param.parent.submenu = submenu; + $('').appendTo(param.parent); + } + menu = param.parent.submenu; + } + if (param.separator){ + var item = $('').appendTo(menu); + } else { + var item = $('').appendTo(menu); + $('').html(param.text).appendTo(item); + } + if (param.iconCls) $('').addClass(param.iconCls).appendTo(item); + if (param.id) item.attr('id', param.id); + if (param.name){item[0].itemName = param.name} + if (param.href){item[0].itemHref = param.href} + if (param.onclick){ + if (typeof param.onclick == 'string'){ + item.attr('onclick', param.onclick); + } else { + item[0].onclick = eval(param.onclick); + } + } + if (param.handler){item[0].onclick = eval(param.handler)} + if (param.disabled){setDisabled(target, item[0], true)} + + bindMenuItemEvent(target, item); + bindMenuEvent(target, menu); + setMenuWidth(target, menu); + } + + function removeItem(target, itemEl){ + function removeit(el){ + if (el.submenu){ + el.submenu.children('div.menu-item').each(function(){ + removeit(this); + }); + var shadow = el.submenu[0].shadow; + if (shadow) shadow.remove(); + el.submenu.remove(); + } + $(el).remove(); + } + removeit(itemEl); + } + + function destroyMenu(target){ + $(target).children('div.menu-item').each(function(){ + removeItem(target, this); + }); + if (target.shadow) target.shadow.remove(); + $(target).remove(); + } + + $.fn.menu = function(options, param){ + if (typeof options == 'string'){ + return $.fn.menu.methods[options](this, param); + } + + options = options || {}; + return this.each(function(){ + var state = $.data(this, 'menu'); + if (state){ + $.extend(state.options, options); + } else { + state = $.data(this, 'menu', { + options: $.extend({}, $.fn.menu.defaults, $.fn.menu.parseOptions(this), options) + }); + init(this); + } + $(this).css({ + left: state.options.left, + top: state.options.top + }); + }); + }; + + $.fn.menu.methods = { + options: function(jq){ + return $.data(jq[0], 'menu').options; + }, + show: function(jq, pos){ + return jq.each(function(){ + showMenu(this, pos); + }); + }, + hide: function(jq){ + return jq.each(function(){ + hideAll(this); + }); + }, + destroy: function(jq){ + return jq.each(function(){ + destroyMenu(this); + }); + }, + /** + * set the menu item text + * param: { + * target: DOM object, indicate the menu item + * text: string, the new text + * } + */ + setText: function(jq, param){ + return jq.each(function(){ + $(param.target).children('div.menu-text').html(param.text); + }); + }, + /** + * set the menu icon class + * param: { + * target: DOM object, indicate the menu item + * iconCls: the menu item icon class + * } + */ + setIcon: function(jq, param){ + return jq.each(function(){ + var item = $(this).menu('getItem', param.target); + if (item.iconCls){ + $(item.target).children('div.menu-icon').removeClass(item.iconCls).addClass(param.iconCls); + } else { + $('').addClass(param.iconCls).appendTo(param.target); + } + }); + }, + /** + * get the menu item data that contains the following property: + * { + * target: DOM object, the menu item + * id: the menu id + * text: the menu item text + * iconCls: the icon class + * href: a remote address to redirect to + * onclick: a function to be called when the item is clicked + * } + */ + getItem: function(jq, itemEl){ + var t = $(itemEl); + var item = { + target: itemEl, + id: t.attr('id'), + text: $.trim(t.children('div.menu-text').html()), + disabled: t.hasClass('menu-item-disabled'), +// href: t.attr('href'), +// name: t.attr('name'), + name: itemEl.itemName, + href: itemEl.itemHref, + onclick: itemEl.onclick + } + var icon = t.children('div.menu-icon'); + if (icon.length){ + var cc = []; + var aa = icon.attr('class').split(' '); + for(var i=0; i').appendTo('body'); + d.width(100); + $._boxModel = parseInt(d.width()) == 100; + d.remove(); + + if (!window.easyloader && $.parser.auto){ + $.parser.parse(); + } + }); + + /** + * extend plugin to set box model width + */ + $.fn._outerWidth = function(width){ + if (width == undefined){ + if (this[0] == window){ + return this.width() || document.body.clientWidth; + } + return this.outerWidth()||0; + } + return this.each(function(){ + if ($._boxModel){ + $(this).width(width - ($(this).outerWidth() - $(this).width())); + } else { + $(this).width(width); + } + }); + }; + + /** + * extend plugin to set box model height + */ + $.fn._outerHeight = function(height){ + if (height == undefined){ + if (this[0] == window){ + return this.height() || document.body.clientHeight; + } + return this.outerHeight()||0; + } + return this.each(function(){ + if ($._boxModel){ + $(this).height(height - ($(this).outerHeight() - $(this).height())); + } else { + $(this).height(height); + } + }); + }; + + $.fn._scrollLeft = function(left){ + if (left == undefined){ + return this.scrollLeft(); + } else { + return this.each(function(){$(this).scrollLeft(left)}); + } + } + + $.fn._propAttr = $.fn.prop || $.fn.attr; + + /** + * set or unset the fit property of parent container, return the width and height of parent container + */ + $.fn._fit = function(fit){ + fit = fit == undefined ? true : fit; + var t = this[0]; + var p = (t.tagName == 'BODY' ? t : this.parent()[0]); + var fcount = p.fcount || 0; + if (fit){ + if (!t.fitted){ + t.fitted = true; + p.fcount = fcount + 1; + $(p).addClass('panel-noscroll'); + if (p.tagName == 'BODY'){ + $('html').addClass('panel-fit'); + } + } + } else { + if (t.fitted){ + t.fitted = false; + p.fcount = fcount - 1; + if (p.fcount == 0){ + $(p).removeClass('panel-noscroll'); + if (p.tagName == 'BODY'){ + $('html').removeClass('panel-fit'); + } + } + } + } + return { + width: $(p).width(), + height: $(p).height() + } + } + +})(jQuery); + +/** + * support for mobile devices + */ +(function($){ + var longTouchTimer = null; + var dblTouchTimer = null; + var isDblClick = false; + + function onTouchStart(e){ + if (e.touches.length != 1){return} + if (!isDblClick){ + isDblClick = true; + dblClickTimer = setTimeout(function(){ + isDblClick = false; + }, 500); + } else { + clearTimeout(dblClickTimer); + isDblClick = false; + fire(e, 'dblclick'); +// e.preventDefault(); + } + longTouchTimer = setTimeout(function(){ + fire(e, 'contextmenu', 3); + }, 1000); + fire(e, 'mousedown'); + if ($.fn.draggable.isDragging || $.fn.resizable.isResizing){ + e.preventDefault(); + } + } + function onTouchMove(e){ + if (e.touches.length != 1){return} + if (longTouchTimer){ + clearTimeout(longTouchTimer); + } + fire(e, 'mousemove'); + if ($.fn.draggable.isDragging || $.fn.resizable.isResizing){ + e.preventDefault(); + } + } + function onTouchEnd(e){ +// if (e.touches.length > 0){return} + if (longTouchTimer){ + clearTimeout(longTouchTimer); + } + fire(e, 'mouseup'); + if ($.fn.draggable.isDragging || $.fn.resizable.isResizing){ + e.preventDefault(); + } + } + + function fire(e, name, which){ + var event = new $.Event(name); + event.pageX = e.changedTouches[0].pageX; + event.pageY = e.changedTouches[0].pageY; + event.which = which || 1; + $(e.target).trigger(event); + } + + if (document.addEventListener){ + document.addEventListener("touchstart", onTouchStart, true); + document.addEventListener("touchmove", onTouchMove, true); + document.addEventListener("touchend", onTouchEnd, true); + } +})(jQuery); + diff --git a/src/main/webapp/js/easyui-1.3.5/src/jquery.progressbar.js b/src/main/webapp/js/easyui-1.3.5/src/jquery.progressbar.js new file mode 100644 index 00000000..b62cf61a --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/src/jquery.progressbar.js @@ -0,0 +1,99 @@ +/** + * progressbar - jQuery EasyUI + * + * Copyright (c) 2009-2013 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL or commercial licenses + * To use it on other terms please contact us: info@jeasyui.com + * http://www.gnu.org/licenses/gpl.txt + * http://www.jeasyui.com/license_commercial.php + * + * Dependencies: + * none + * + */ +(function($){ + function init(target){ + $(target).addClass('progressbar'); + $(target).html('
                              '); + return $(target); + } + + function setSize(target,width){ + var opts = $.data(target, 'progressbar').options; + var bar = $.data(target, 'progressbar').bar; + if (width) opts.width = width; + bar._outerWidth(opts.width)._outerHeight(opts.height); + + bar.find('div.progressbar-text').width(bar.width()); + bar.find('div.progressbar-text,div.progressbar-value').css({ + height: bar.height()+'px', + lineHeight: bar.height()+'px' + }); + } + + $.fn.progressbar = function(options, param){ + if (typeof options == 'string'){ + var method = $.fn.progressbar.methods[options]; + if (method){ + return method(this, param); + } + } + + options = options || {}; + return this.each(function(){ + var state = $.data(this, 'progressbar'); + if (state){ + $.extend(state.options, options); + } else { + state = $.data(this, 'progressbar', { + options: $.extend({}, $.fn.progressbar.defaults, $.fn.progressbar.parseOptions(this), options), + bar: init(this) + }); + } + $(this).progressbar('setValue', state.options.value); + setSize(this); + }); + }; + + $.fn.progressbar.methods = { + options: function(jq){ + return $.data(jq[0], 'progressbar').options; + }, + resize: function(jq, width){ + return jq.each(function(){ + setSize(this, width); + }); + }, + getValue: function(jq){ + return $.data(jq[0], 'progressbar').options.value; + }, + setValue: function(jq, value){ + if (value < 0) value = 0; + if (value > 100) value = 100; + return jq.each(function(){ + var opts = $.data(this, 'progressbar').options; + var text = opts.text.replace(/{value}/, value); + var oldValue = opts.value; + opts.value = value; + $(this).find('div.progressbar-value').width(value+'%'); + $(this).find('div.progressbar-text').html(text); + if (oldValue != value){ + opts.onChange.call(this, value, oldValue); + } + }); + } + }; + + $.fn.progressbar.parseOptions = function(target){ + return $.extend({}, $.parser.parseOptions(target, ['width','height','text',{value:'number'}])); + }; + + $.fn.progressbar.defaults = { + width: 'auto', + height: 22, + value: 0, // percentage value + text: '{value}%', + onChange:function(newValue,oldValue){} + }; +})(jQuery); diff --git a/src/main/webapp/js/easyui-1.3.5/src/jquery.propertygrid.js b/src/main/webapp/js/easyui-1.3.5/src/jquery.propertygrid.js new file mode 100644 index 00000000..e695ddf3 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/src/jquery.propertygrid.js @@ -0,0 +1,315 @@ +/** + * propertygrid - jQuery EasyUI + * + * Copyright (c) 2009-2013 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL or commercial licenses + * To use it on other terms please contact us: info@jeasyui.com + * http://www.gnu.org/licenses/gpl.txt + * http://www.jeasyui.com/license_commercial.php + * + * Dependencies: + * datagrid + * + */ +(function($){ + var currTarget; + + function buildGrid(target){ + var state = $.data(target, 'propertygrid'); + var opts = $.data(target, 'propertygrid').options; + $(target).datagrid($.extend({}, opts, { + cls:'propertygrid', + view:(opts.showGroup ? opts.groupView : opts.view), + onClickRow:function(index, row){ + if (currTarget != this){ +// leaveCurrRow(); + stopEditing(currTarget); + currTarget = this; + } + if (opts.editIndex != index && row.editor){ + var col = $(this).datagrid('getColumnOption', "value"); + col.editor = row.editor; +// leaveCurrRow(); + stopEditing(currTarget); + $(this).datagrid('beginEdit', index); + $(this).datagrid('getEditors', index)[0].target.focus(); + opts.editIndex = index; + } + opts.onClickRow.call(target, index, row); + }, + loadFilter:function(data){ + stopEditing(this); + return opts.loadFilter.call(this, data); + } + })); + $(document).unbind('.propertygrid').bind('mousedown.propertygrid', function(e){ + var p = $(e.target).closest('div.datagrid-view,div.combo-panel'); +// var p = $(e.target).closest('div.propertygrid,div.combo-panel'); + if (p.length){return;} + stopEditing(currTarget); + currTarget = undefined; + }); + +// function leaveCurrRow(){ +// var t = $(currTarget); +// if (!t.length){return;} +// var opts = $.data(currTarget, 'propertygrid').options; +// var index = opts.editIndex; +// if (index == undefined){return;} +// var ed = t.datagrid('getEditors', index)[0]; +// if (ed){ +// ed.target.blur(); +// if (t.datagrid('validateRow', index)){ +// t.datagrid('endEdit', index); +// } else { +// t.datagrid('cancelEdit', index); +// } +// } +// opts.editIndex = undefined; +// } + } + + function stopEditing(target){ + var t = $(target); + if (!t.length){return} + var opts = $.data(target, 'propertygrid').options; + var index = opts.editIndex; + if (index == undefined){return;} + var ed = t.datagrid('getEditors', index)[0]; + if (ed){ + ed.target.blur(); + if (t.datagrid('validateRow', index)){ + t.datagrid('endEdit', index); + } else { + t.datagrid('cancelEdit', index); + } + } + opts.editIndex = undefined; + } + + $.fn.propertygrid = function(options, param){ + if (typeof options == 'string'){ + var method = $.fn.propertygrid.methods[options]; + if (method){ + return method(this, param); + } else { + return this.datagrid(options, param); + } + } + + options = options || {}; + return this.each(function(){ + var state = $.data(this, 'propertygrid'); + if (state){ + $.extend(state.options, options); + } else { + var opts = $.extend({}, $.fn.propertygrid.defaults, $.fn.propertygrid.parseOptions(this), options); + opts.frozenColumns = $.extend(true, [], opts.frozenColumns); + opts.columns = $.extend(true, [], opts.columns); + $.data(this, 'propertygrid', { + options: opts + }); + } + buildGrid(this); + }); + } + + $.fn.propertygrid.methods = { + options: function(jq){ + return $.data(jq[0], 'propertygrid').options; + } + }; + + $.fn.propertygrid.parseOptions = function(target){ + return $.extend({}, $.fn.datagrid.parseOptions(target), $.parser.parseOptions(target,[{showGroup:'boolean'}])); + }; + + // the group view definition + var groupview = $.extend({}, $.fn.datagrid.defaults.view, { + render: function(target, container, frozen){ + var table = []; + var groups = this.groups; + for(var i=0; i'); + table.push(''); + table.push(''); + if ((frozen && (opts.rownumbers || opts.frozenColumns.length)) || + (!frozen && !(opts.rownumbers || opts.frozenColumns.length))){ + table.push(''); + } + table.push(''); + table.push(''); + table.push('
                               '); + if (!frozen){ + table.push(''); + table.push(opts.groupFormatter.call(target, group.value, group.rows)); + table.push(''); + } + table.push('
                              '); + table.push(''); + + table.push(''); + var index = group.startIndex; + for(var j=0; j'); + table.push(this.renderRow.call(this, target, fields, frozen, index, group.rows[j])); + table.push(''); + index++; + } + table.push('
                              '); + return table.join(''); + }, + + bindEvents: function(target){ + var state = $.data(target, 'datagrid'); + var dc = state.dc; + var body = dc.body1.add(dc.body2); + var clickHandler = ($.data(body[0],'events')||$._data(body[0],'events')).click[0].handler; + body.unbind('click').bind('click', function(e){ + var tt = $(e.target); + var expander = tt.closest('span.datagrid-row-expander'); + if (expander.length){ + var gindex = expander.closest('div.datagrid-group').attr('group-index'); + if (expander.hasClass('datagrid-row-collapse')){ + $(target).datagrid('collapseGroup', gindex); + } else { + $(target).datagrid('expandGroup', gindex); + } + } else { + clickHandler(e); + } + e.stopPropagation(); + }); + }, + + onBeforeRender: function(target, rows){ + var state = $.data(target, 'datagrid'); + var opts = state.options; + + initCss(); + + var groups = []; + for(var i=0; i' + + '.datagrid-group{height:25px;overflow:hidden;font-weight:bold;border-bottom:1px solid #ccc;}' + + '' + ); + } + } + } + }); + + $.extend($.fn.datagrid.methods, { + expandGroup:function(jq, groupIndex){ + return jq.each(function(){ + var view = $.data(this, 'datagrid').dc.view; + var group = view.find(groupIndex!=undefined ? 'div.datagrid-group[group-index="'+groupIndex+'"]' : 'div.datagrid-group'); + var expander = group.find('span.datagrid-row-expander'); + if (expander.hasClass('datagrid-row-expand')){ + expander.removeClass('datagrid-row-expand').addClass('datagrid-row-collapse'); + group.next('table').show(); + } + $(this).datagrid('fixRowHeight'); + }); + }, + collapseGroup:function(jq, groupIndex){ + return jq.each(function(){ + var view = $.data(this, 'datagrid').dc.view; + var group = view.find(groupIndex!=undefined ? 'div.datagrid-group[group-index="'+groupIndex+'"]' : 'div.datagrid-group'); + var expander = group.find('span.datagrid-row-expander'); + if (expander.hasClass('datagrid-row-collapse')){ + expander.removeClass('datagrid-row-collapse').addClass('datagrid-row-expand'); + group.next('table').hide(); + } + $(this).datagrid('fixRowHeight'); + }); + } + }); + // end of group view definition + + $.fn.propertygrid.defaults = $.extend({}, $.fn.datagrid.defaults, { + singleSelect:true, + remoteSort:false, + fitColumns:true, + loadMsg:'', + frozenColumns:[[ + {field:'f',width:16,resizable:false} + ]], + columns:[[ + {field:'name',title:'Name',width:100,sortable:true}, + {field:'value',title:'Value',width:100,resizable:false} + ]], + + showGroup:false, + groupView:groupview, + groupField:'group', + groupFormatter:function(fvalue,rows){return fvalue} + }); +})(jQuery); diff --git a/src/main/webapp/js/easyui-1.3.5/src/jquery.resizable.js b/src/main/webapp/js/easyui-1.3.5/src/jquery.resizable.js new file mode 100644 index 00000000..e7002e31 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/src/jquery.resizable.js @@ -0,0 +1,244 @@ +/** + * resizable - jQuery EasyUI + * + * Copyright (c) 2009-2013 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL or commercial licenses + * To use it on other terms please contact us: info@jeasyui.com + * http://www.gnu.org/licenses/gpl.txt + * http://www.jeasyui.com/license_commercial.php + */ +(function($){ +// var isResizing = false; + $.fn.resizable = function(options, param){ + if (typeof options == 'string'){ + return $.fn.resizable.methods[options](this, param); + } + + function resize(e){ + var resizeData = e.data; + var options = $.data(resizeData.target, 'resizable').options; + if (resizeData.dir.indexOf('e') != -1) { + var width = resizeData.startWidth + e.pageX - resizeData.startX; + width = Math.min( + Math.max(width, options.minWidth), + options.maxWidth + ); + resizeData.width = width; + } + if (resizeData.dir.indexOf('s') != -1) { + var height = resizeData.startHeight + e.pageY - resizeData.startY; + height = Math.min( + Math.max(height, options.minHeight), + options.maxHeight + ); + resizeData.height = height; + } + if (resizeData.dir.indexOf('w') != -1) { + var width = resizeData.startWidth - e.pageX + resizeData.startX; + width = Math.min( + Math.max(width, options.minWidth), + options.maxWidth + ); + resizeData.width = width; + resizeData.left = resizeData.startLeft + resizeData.startWidth - resizeData.width; + +// resizeData.width = resizeData.startWidth - e.pageX + resizeData.startX; +// if (resizeData.width >= options.minWidth && resizeData.width <= options.maxWidth) { +// resizeData.left = resizeData.startLeft + e.pageX - resizeData.startX; +// } + } + if (resizeData.dir.indexOf('n') != -1) { + var height = resizeData.startHeight - e.pageY + resizeData.startY; + height = Math.min( + Math.max(height, options.minHeight), + options.maxHeight + ); + resizeData.height = height; + resizeData.top = resizeData.startTop + resizeData.startHeight - resizeData.height; + +// resizeData.height = resizeData.startHeight - e.pageY + resizeData.startY; +// if (resizeData.height >= options.minHeight && resizeData.height <= options.maxHeight) { +// resizeData.top = resizeData.startTop + e.pageY - resizeData.startY; +// } + } + } + + function applySize(e){ + var resizeData = e.data; + var t = $(resizeData.target); + t.css({ + left: resizeData.left, + top: resizeData.top + }); + if (t.outerWidth() != resizeData.width){t._outerWidth(resizeData.width)} + if (t.outerHeight() != resizeData.height){t._outerHeight(resizeData.height)} +// t._outerWidth(resizeData.width)._outerHeight(resizeData.height); + } + + function doDown(e){ +// isResizing = true; + $.fn.resizable.isResizing = true; + $.data(e.data.target, 'resizable').options.onStartResize.call(e.data.target, e); + return false; + } + + function doMove(e){ + resize(e); + if ($.data(e.data.target, 'resizable').options.onResize.call(e.data.target, e) != false){ + applySize(e) + } + return false; + } + + function doUp(e){ +// isResizing = false; + $.fn.resizable.isResizing = false; + resize(e, true); + applySize(e); + $.data(e.data.target, 'resizable').options.onStopResize.call(e.data.target, e); + $(document).unbind('.resizable'); + $('body').css('cursor',''); +// $('body').css('cursor','auto'); + return false; + } + + return this.each(function(){ + var opts = null; + var state = $.data(this, 'resizable'); + if (state) { + $(this).unbind('.resizable'); + opts = $.extend(state.options, options || {}); + } else { + opts = $.extend({}, $.fn.resizable.defaults, $.fn.resizable.parseOptions(this), options || {}); + $.data(this, 'resizable', { + options:opts + }); + } + + if (opts.disabled == true) { + return; + } + + // bind mouse event using namespace resizable + $(this).bind('mousemove.resizable', {target:this}, function(e){ +// if (isResizing) return; + if ($.fn.resizable.isResizing){return} + var dir = getDirection(e); + if (dir == '') { + $(e.data.target).css('cursor', ''); + } else { + $(e.data.target).css('cursor', dir + '-resize'); + } + }).bind('mouseleave.resizable', {target:this}, function(e){ + $(e.data.target).css('cursor', ''); + }).bind('mousedown.resizable', {target:this}, function(e){ + var dir = getDirection(e); + if (dir == '') return; + + function getCssValue(css) { + var val = parseInt($(e.data.target).css(css)); + if (isNaN(val)) { + return 0; + } else { + return val; + } + } + + var data = { + target: e.data.target, + dir: dir, + startLeft: getCssValue('left'), + startTop: getCssValue('top'), + left: getCssValue('left'), + top: getCssValue('top'), + startX: e.pageX, + startY: e.pageY, + startWidth: $(e.data.target).outerWidth(), + startHeight: $(e.data.target).outerHeight(), + width: $(e.data.target).outerWidth(), + height: $(e.data.target).outerHeight(), + deltaWidth: $(e.data.target).outerWidth() - $(e.data.target).width(), + deltaHeight: $(e.data.target).outerHeight() - $(e.data.target).height() + }; + $(document).bind('mousedown.resizable', data, doDown); + $(document).bind('mousemove.resizable', data, doMove); + $(document).bind('mouseup.resizable', data, doUp); + $('body').css('cursor', dir+'-resize'); + }); + + // get the resize direction + function getDirection(e) { + var tt = $(e.data.target); + var dir = ''; + var offset = tt.offset(); + var width = tt.outerWidth(); + var height = tt.outerHeight(); + var edge = opts.edge; + if (e.pageY > offset.top && e.pageY < offset.top + edge) { + dir += 'n'; + } else if (e.pageY < offset.top + height && e.pageY > offset.top + height - edge) { + dir += 's'; + } + if (e.pageX > offset.left && e.pageX < offset.left + edge) { + dir += 'w'; + } else if (e.pageX < offset.left + width && e.pageX > offset.left + width - edge) { + dir += 'e'; + } + + var handles = opts.handles.split(','); + for(var i=0; i' + + '
                              ' + + '' + + '' + + '
                              ' + + '
                              ' + + '
                              ' + + '
                              ' + + '' + + '').insertAfter(target); + var t = $(target); + t.addClass('slider-f').hide(); + var name = t.attr('name'); + if (name){ + slider.find('input.slider-value').attr('name', name); + t.removeAttr('name').attr('sliderName', name); + } + return slider; + } + + /** + * set the slider size, for vertical slider, the height property is required + */ + function setSize(target, param){ + var state = $.data(target, 'slider'); + var opts = state.options; + var slider = state.slider; + + if (param){ + if (param.width) opts.width = param.width; + if (param.height) opts.height = param.height; + } + if (opts.mode == 'h'){ + slider.css('height', ''); + slider.children('div').css('height', ''); + if (!isNaN(opts.width)){ + slider.width(opts.width); + } + } else { + slider.css('width', ''); + slider.children('div').css('width', ''); + if (!isNaN(opts.height)){ + slider.height(opts.height); + slider.find('div.slider-rule').height(opts.height); + slider.find('div.slider-rulelabel').height(opts.height); + slider.find('div.slider-inner')._outerHeight(opts.height); + } + } + initValue(target); + } + + /** + * show slider rule if needed + */ + function showRule(target){ + var state = $.data(target, 'slider'); + var opts = state.options; + var slider = state.slider; + + var aa = opts.mode == 'h' ? opts.rule : opts.rule.slice(0).reverse(); + if (opts.reversed){ + aa = aa.slice(0).reverse(); + } + _build(aa); + + function _build(aa){ + var rule = slider.find('div.slider-rule'); + var label = slider.find('div.slider-rulelabel'); + rule.empty(); + label.empty(); + for(var i=0; i').appendTo(rule); + span.css((opts.mode=='h'?'left':'top'), distance); + + // show the labels + if (aa[i] != '|'){ + span = $('').appendTo(label); + span.html(aa[i]); + if (opts.mode == 'h'){ + span.css({ + left: distance, + marginLeft: -Math.round(span.outerWidth()/2) + }); + } else { + span.css({ + top: distance, + marginTop: -Math.round(span.outerHeight()/2) + }); + } + } + } + } + } + + /** + * build the slider and set some properties + */ + function buildSlider(target){ + var state = $.data(target, 'slider'); + var opts = state.options; + var slider = state.slider; + + slider.removeClass('slider-h slider-v slider-disabled'); + slider.addClass(opts.mode == 'h' ? 'slider-h' : 'slider-v'); + slider.addClass(opts.disabled ? 'slider-disabled' : ''); + + slider.find('a.slider-handle').draggable({ + axis:opts.mode, + cursor:'pointer', + disabled: opts.disabled, + onDrag:function(e){ + var left = e.data.left; + var width = slider.width(); + if (opts.mode!='h'){ + left = e.data.top; + width = slider.height(); + } + if (left < 0 || left > width) { + return false; + } else { + var value = pos2value(target, left); + adjustValue(value); + return false; + } + }, + onBeforeDrag:function(){ + state.isDragging = true; + }, + onStartDrag:function(){ + opts.onSlideStart.call(target, opts.value); + }, + onStopDrag:function(e){ + var value = pos2value(target, (opts.mode=='h'?e.data.left:e.data.top)); + adjustValue(value); + opts.onSlideEnd.call(target, opts.value); + opts.onComplete.call(target, opts.value); + state.isDragging = false; + } + }); + slider.find('div.slider-inner').unbind('.slider').bind('mousedown.slider', function(e){ + if (state.isDragging){return} + var pos = $(this).offset(); + var value = pos2value(target, (opts.mode=='h'?(e.pageX-pos.left):(e.pageY-pos.top))); + adjustValue(value); + opts.onComplete.call(target, opts.value); + }); + + function adjustValue(value){ + var s = Math.abs(value % opts.step); + if (s < opts.step/2){ + value -= s; + } else { + value = value - s + opts.step; + } + setValue(target, value); + } + } + + /** + * set a specified value to slider + */ + function setValue(target, value){ + var state = $.data(target, 'slider'); + var opts = state.options; + var slider = state.slider; + var oldValue = opts.value; + if (value < opts.min) value = opts.min; + if (value > opts.max) value = opts.max; + + opts.value = value; + $(target).val(value); + slider.find('input.slider-value').val(value); + + var pos = value2pos(target, value); + var tip = slider.find('.slider-tip'); + if (opts.showTip){ + tip.show(); + tip.html(opts.tipFormatter.call(target, opts.value)); + } else { + tip.hide(); + } + + if (opts.mode == 'h'){ + var style = 'left:'+pos+'px;'; + slider.find('.slider-handle').attr('style', style); + tip.attr('style', style + 'margin-left:' + (-Math.round(tip.outerWidth()/2)) + 'px'); + } else { + var style = 'top:' + pos + 'px;'; + slider.find('.slider-handle').attr('style', style); + tip.attr('style', style + 'margin-left:' + (-Math.round(tip.outerWidth())) + 'px'); + } + + if (oldValue != value){ + opts.onChange.call(target, value, oldValue); + } + } + + function initValue(target){ + var opts = $.data(target, 'slider').options; + var fn = opts.onChange; + opts.onChange = function(){}; + setValue(target, opts.value); + opts.onChange = fn; + } + + /** + * translate value to slider position + */ + function value2pos(target, value){ + var state = $.data(target, 'slider'); + var opts = state.options; + var slider = state.slider; + if (opts.mode == 'h'){ + var pos = (value-opts.min)/(opts.max-opts.min)*slider.width(); + if (opts.reversed){ + pos = slider.width() - pos; + } + } else { + var pos = slider.height() - (value-opts.min)/(opts.max-opts.min)*slider.height(); + if (opts.reversed){ + pos = slider.height() - pos; + } + } + return pos.toFixed(0); + } + + /** + * translate slider position to value + */ + function pos2value(target, pos){ + var state = $.data(target, 'slider'); + var opts = state.options; + var slider = state.slider; + if (opts.mode == 'h'){ + var value = opts.min + (opts.max-opts.min)*(pos/slider.width()); + } else { + var value = opts.min + (opts.max-opts.min)*((slider.height()-pos)/slider.height()); + } + return opts.reversed ? opts.max - value.toFixed(0) : value.toFixed(0); + } + + $.fn.slider = function(options, param){ + if (typeof options == 'string'){ + return $.fn.slider.methods[options](this, param); + } + + options = options || {}; + return this.each(function(){ + var state = $.data(this, 'slider'); + if (state){ + $.extend(state.options, options); + } else { + state = $.data(this, 'slider', { + options: $.extend({}, $.fn.slider.defaults, $.fn.slider.parseOptions(this), options), + slider: init(this) + }); + $(this).removeAttr('disabled'); + } + + var opts = state.options; + opts.min = parseFloat(opts.min); + opts.max = parseFloat(opts.max); + opts.value = parseFloat(opts.value); + opts.step = parseFloat(opts.step); + opts.originalValue = opts.value; + + buildSlider(this); + showRule(this); + setSize(this); + }); + }; + + $.fn.slider.methods = { + options: function(jq){ + return $.data(jq[0], 'slider').options; + }, + destroy: function(jq){ + return jq.each(function(){ + $.data(this, 'slider').slider.remove(); + $(this).remove(); + }); + }, + resize: function(jq, param){ + return jq.each(function(){ + setSize(this, param); + }); + }, + getValue: function(jq){ + return jq.slider('options').value; + }, + setValue: function(jq, value){ + return jq.each(function(){ + setValue(this, value); + }); + }, + clear: function(jq){ + return jq.each(function(){ + var opts = $(this).slider('options'); + setValue(this, opts.min); + }); + }, + reset: function(jq){ + return jq.each(function(){ + var opts = $(this).slider('options'); + setValue(this, opts.originalValue); + }); + }, + enable: function(jq){ + return jq.each(function(){ + $.data(this, 'slider').options.disabled = false; + buildSlider(this); + }); + }, + disable: function(jq){ + return jq.each(function(){ + $.data(this, 'slider').options.disabled = true; + buildSlider(this); + }); + } + }; + + $.fn.slider.parseOptions = function(target){ + var t = $(target); + return $.extend({}, $.parser.parseOptions(target, [ + 'width','height','mode',{reversed:'boolean',showTip:'boolean',min:'number',max:'number',step:'number'} + ]), { + value: (t.val() || undefined), + disabled: (t.attr('disabled') ? true : undefined), + rule: (t.attr('rule') ? eval(t.attr('rule')) : undefined) + }); + }; + + $.fn.slider.defaults = { + width: 'auto', + height: 'auto', + mode: 'h', // 'h'(horizontal) or 'v'(vertical) + reversed: false, + showTip: false, + disabled: false, + value: 0, + min: 0, + max: 100, + step: 1, + rule: [], // [0,'|',100] + tipFormatter: function(value){return value}, + onChange: function(value, oldValue){}, + onSlideStart: function(value){}, + onSlideEnd: function(value){}, + onComplete: function(value){} + }; +})(jQuery); diff --git a/src/main/webapp/js/easyui-1.3.5/src/jquery.tabs.js b/src/main/webapp/js/easyui-1.3.5/src/jquery.tabs.js new file mode 100644 index 00000000..8723aa43 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/src/jquery.tabs.js @@ -0,0 +1,787 @@ +/** + * tabs - jQuery EasyUI + * + * Copyright (c) 2009-2013 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL or commercial licenses + * To use it on other terms please contact us: info@jeasyui.com + * http://www.gnu.org/licenses/gpl.txt + * http://www.jeasyui.com/license_commercial.php + * + * Dependencies: + * panel + * linkbutton + * + */ +(function($){ + + /** + * set the tabs scrollers to show or not, + * dependent on the tabs count and width + */ + function setScrollers(container) { + var opts = $.data(container, 'tabs').options; + if (opts.tabPosition == 'left' || opts.tabPosition == 'right' || !opts.showHeader){return} + + var header = $(container).children('div.tabs-header'); + var tool = header.children('div.tabs-tool'); + var sLeft = header.children('div.tabs-scroller-left'); + var sRight = header.children('div.tabs-scroller-right'); + var wrap = header.children('div.tabs-wrap'); + + // set the tool height + var tHeight = header.outerHeight(); + if (opts.plain){ + tHeight -= tHeight - header.height(); + } + tool._outerHeight(tHeight); + + var tabsWidth = 0; + $('ul.tabs li', header).each(function(){ + tabsWidth += $(this).outerWidth(true); + }); + var cWidth = header.width() - tool._outerWidth(); + + if (tabsWidth > cWidth) { + sLeft.add(sRight).show()._outerHeight(tHeight); + if (opts.toolPosition == 'left'){ + tool.css({ + left: sLeft.outerWidth(), + right: '' + }); + wrap.css({ + marginLeft: sLeft.outerWidth() + tool._outerWidth(), + marginRight: sRight._outerWidth(), + width: cWidth - sLeft.outerWidth() - sRight.outerWidth() + }); + } else { + tool.css({ + left: '', + right: sRight.outerWidth() + }); + wrap.css({ + marginLeft: sLeft.outerWidth(), + marginRight: sRight.outerWidth() + tool._outerWidth(), + width: cWidth - sLeft.outerWidth() - sRight.outerWidth() + }); + } + } else { + sLeft.add(sRight).hide(); + if (opts.toolPosition == 'left'){ + tool.css({ + left: 0, + right: '' + }); + wrap.css({ + marginLeft: tool._outerWidth(), + marginRight: 0, + width: cWidth + }); + } else { + tool.css({ + left: '', + right: 0 + }); + wrap.css({ + marginLeft: 0, + marginRight: tool._outerWidth(), + width: cWidth + }); + } + } + } + + function addTools(container){ + var opts = $.data(container, 'tabs').options; + var header = $(container).children('div.tabs-header'); + if (opts.tools) { + if (typeof opts.tools == 'string'){ + $(opts.tools).addClass('tabs-tool').appendTo(header); + $(opts.tools).show(); + } else { + header.children('div.tabs-tool').remove(); + var tools = $('
                              ').appendTo(header); + var tr = tools.find('tr'); + for(var i=0; i').appendTo(tr); + var tool = $('').appendTo(td); + tool[0].onclick = eval(opts.tools[i].handler || function(){}); + tool.linkbutton($.extend({}, opts.tools[i], { + plain: true + })); + } + } + } else { + header.children('div.tabs-tool').remove(); + } + } + + function setSize(container) { + var state = $.data(container, 'tabs'); + var opts = state.options; + var cc = $(container); + + opts.fit ? $.extend(opts, cc._fit()) : cc._fit(false); + cc.width(opts.width).height(opts.height); + + var header = $(container).children('div.tabs-header'); + var panels = $(container).children('div.tabs-panels'); + var wrap = header.find('div.tabs-wrap'); + var ul = wrap.find('.tabs'); + + for(var i=0; i').insertBefore(cc); + cc.children('div').each(function(){ + pp[0].appendChild(this); + }); + cc[0].appendChild(pp[0]); +// cc.wrapInner('
                              '); + $('
                              ' + + '
                              ' + + '
                              ' + + '
                              ' + + '
                                ' + + '
                                ' + + '
                                ').prependTo(container); + + cc.children('div.tabs-panels').children('div').each(function(i){ + var opts = $.extend({}, $.parser.parseOptions(this), { + selected: ($(this).attr('selected') ? true : undefined) + }); + var pp = $(this); + tabs.push(pp); + createTab(container, pp, opts); + }); + + cc.children('div.tabs-header').find('.tabs-scroller-left, .tabs-scroller-right').hover( + function(){$(this).addClass('tabs-scroller-over');}, + function(){$(this).removeClass('tabs-scroller-over');} + ); + cc.bind('_resize', function(e,force){ + var opts = $.data(container, 'tabs').options; + if (opts.fit == true || force){ + setSize(container); + setSelectedSize(container); + } + return false; + }); + } + + function bindEvents(container){ + var state = $.data(container, 'tabs') + var opts = state.options; + $(container).children('div.tabs-header').unbind().bind('click', function(e){ + if ($(e.target).hasClass('tabs-scroller-left')){ + $(container).tabs('scrollBy', -opts.scrollIncrement); + } else if ($(e.target).hasClass('tabs-scroller-right')){ + $(container).tabs('scrollBy', opts.scrollIncrement); + } else { + var li = $(e.target).closest('li'); + if (li.hasClass('tabs-disabled')){return;} + var a = $(e.target).closest('a.tabs-close'); + if (a.length){ + closeTab(container, getLiIndex(li)); + } else if (li.length){ +// selectTab(container, getLiIndex(li)); + var index = getLiIndex(li); + var popts = state.tabs[index].panel('options'); + if (popts.collapsible){ + popts.closed ? selectTab(container, index) : unselectTab(container, index); + } else { + selectTab(container, index); + } + } + } + }).bind('contextmenu', function(e){ + var li = $(e.target).closest('li'); + if (li.hasClass('tabs-disabled')){return;} + if (li.length){ + opts.onContextMenu.call(container, e, li.find('span.tabs-title').html(), getLiIndex(li)); + } + }); + + function getLiIndex(li){ + var index = 0; + li.parent().children('li').each(function(i){ + if (li[0] == this){ + index = i; + return false; + } + }); + return index; + } + } + + function setProperties(container){ + var opts = $.data(container, 'tabs').options; + var header = $(container).children('div.tabs-header'); + var panels = $(container).children('div.tabs-panels'); + + header.removeClass('tabs-header-top tabs-header-bottom tabs-header-left tabs-header-right'); + panels.removeClass('tabs-panels-top tabs-panels-bottom tabs-panels-left tabs-panels-right'); + if (opts.tabPosition == 'top'){ + header.insertBefore(panels); + } else if (opts.tabPosition == 'bottom'){ + header.insertAfter(panels); + header.addClass('tabs-header-bottom'); + panels.addClass('tabs-panels-top'); + } else if (opts.tabPosition == 'left'){ + header.addClass('tabs-header-left'); + panels.addClass('tabs-panels-right'); + } else if (opts.tabPosition == 'right'){ + header.addClass('tabs-header-right'); + panels.addClass('tabs-panels-left'); + } + + if (opts.plain == true) { + header.addClass('tabs-header-plain'); + } else { + header.removeClass('tabs-header-plain'); + } + if (opts.border == true){ + header.removeClass('tabs-header-noborder'); + panels.removeClass('tabs-panels-noborder'); + } else { + header.addClass('tabs-header-noborder'); + panels.addClass('tabs-panels-noborder'); + } + } + + function createTab(container, pp, options) { + var state = $.data(container, 'tabs'); + options = options || {}; + + // create panel + pp.panel($.extend({}, options, { + border: false, + noheader: true, + closed: true, + doSize: false, + iconCls: (options.icon ? options.icon : undefined), + onLoad: function(){ + if (options.onLoad){ + options.onLoad.call(this, arguments); + } + state.options.onLoad.call(container, $(this)); + } + })); + + var opts = pp.panel('options'); + + var tabs = $(container).children('div.tabs-header').find('ul.tabs'); + + opts.tab = $('
                              • ').appendTo(tabs); // set the tab object in panel options + opts.tab.append( + '' + + '' + + '' + + '' + ); + + $(container).tabs('update', { + tab: pp, + options: opts + }); + } + + function addTab(container, options) { + var opts = $.data(container, 'tabs').options; + var tabs = $.data(container, 'tabs').tabs; + if (options.selected == undefined) options.selected = true; + + var pp = $('
                                ').appendTo($(container).children('div.tabs-panels')); + tabs.push(pp); + createTab(container, pp, options); + + opts.onAdd.call(container, options.title, tabs.length-1); + +// setScrollers(container); + setSize(container); + if (options.selected){ + selectTab(container, tabs.length-1); // select the added tab panel + } + } + + /** + * update tab panel, param has following properties: + * tab: the tab panel to be updated + * options: the tab panel options + */ + function updateTab(container, param){ + var selectHis = $.data(container, 'tabs').selectHis; + var pp = param.tab; // the tab panel + var oldTitle = pp.panel('options').title; + pp.panel($.extend({}, param.options, { + iconCls: (param.options.icon ? param.options.icon : undefined) + })); + + var opts = pp.panel('options'); // get the tab panel options + var tab = opts.tab; + + var s_title = tab.find('span.tabs-title'); + var s_icon = tab.find('span.tabs-icon'); + s_title.html(opts.title); + s_icon.attr('class', 'tabs-icon'); + + tab.find('a.tabs-close').remove(); + if (opts.closable){ + s_title.addClass('tabs-closable'); + $('').appendTo(tab); + } else{ + s_title.removeClass('tabs-closable'); + } + if (opts.iconCls){ + s_title.addClass('tabs-with-icon'); + s_icon.addClass(opts.iconCls); + } else { + s_title.removeClass('tabs-with-icon'); + } + + if (oldTitle != opts.title){ + for(var i=0; i').insertAfter(tab.find('a.tabs-inner')); + if ($.isArray(opts.tools)){ + for(var i=0; i').appendTo(p_tool); + t.addClass(opts.tools[i].iconCls); + if (opts.tools[i].handler){ + t.bind('click', {handler:opts.tools[i].handler}, function(e){ + if ($(this).parents('li').hasClass('tabs-disabled')){return;} + e.data.handler.call(this); + }); + } + } + } else { + $(opts.tools).children().appendTo(p_tool); + } + var pr = p_tool.children().length * 12; + if (opts.closable) { + pr += 8; + } else { + pr -= 3; + p_tool.css('right','5px'); + } + s_title.css('padding-right', pr+'px'); + } + +// setProperties(container); +// setScrollers(container); + setSize(container); + + $.data(container, 'tabs').options.onUpdate.call(container, opts.title, getTabIndex(container, pp)); + } + + /** + * close a tab with specified index or title + */ + function closeTab(container, which) { + var opts = $.data(container, 'tabs').options; + var tabs = $.data(container, 'tabs').tabs; + var selectHis = $.data(container, 'tabs').selectHis; + + if (!exists(container, which)) return; + + var tab = getTab(container, which); + var title = tab.panel('options').title; + var index = getTabIndex(container, tab); + + if (opts.onBeforeClose.call(container, title, index) == false) return; + + var tab = getTab(container, which, true); + tab.panel('options').tab.remove(); + tab.panel('destroy'); + + opts.onClose.call(container, title, index); + +// setScrollers(container); + setSize(container); + + // remove the select history item + for(var i=0; i= tabs.length){ + return null; + } else { + var tab = tabs[which]; + if (removeit) { + tabs.splice(which, 1); + } + return tab; + } + } + for(var i=0; idiv.tabs-header>div.tabs-wrap'); + var left = tab.position().left; + var right = left + tab.outerWidth(); + if (left < 0 || right > wrap.width()){ + var deltaX = left - (wrap.width()-tab.width()) / 2; + $(container).tabs('scrollBy', deltaX); + } else { + $(container).tabs('scrollBy', 0); + } + + setSelectedSize(container); + + opts.onSelect.call(container, title, getTabIndex(container, panel)); + } + + function unselectTab(container, which){ + var state = $.data(container, 'tabs'); + var p = getTab(container, which); + if (p){ + var opts = p.panel('options'); + if (!opts.closed){ + p.panel('close'); + if (opts.closed){ + opts.tab.removeClass('tabs-selected'); + state.options.onUnselect.call(container, opts.title, getTabIndex(container, p)); + } + } + } + } + + function exists(container, which){ + return getTab(container, which) != null; + } + + function showHeader(container, visible){ + var opts = $.data(container, 'tabs').options; + opts.showHeader = visible; + $(container).tabs('resize'); + } + + + $.fn.tabs = function(options, param){ + if (typeof options == 'string') { + return $.fn.tabs.methods[options](this, param); + } + + options = options || {}; + return this.each(function(){ + var state = $.data(this, 'tabs'); + var opts; + if (state) { + opts = $.extend(state.options, options); + state.options = opts; + } else { + $.data(this, 'tabs', { + options: $.extend({},$.fn.tabs.defaults, $.fn.tabs.parseOptions(this), options), + tabs: [], + selectHis: [] + }); + wrapTabs(this); + } + + addTools(this); + setProperties(this); + setSize(this); + bindEvents(this); + + doFirstSelect(this); + }); + }; + + $.fn.tabs.methods = { + options: function(jq){ + var cc = jq[0]; + var opts = $.data(cc, 'tabs').options; + var s = getSelectedTab(cc); + opts.selected = s ? getTabIndex(cc, s) : -1; + return opts; + }, + tabs: function(jq){ + return $.data(jq[0], 'tabs').tabs; + }, + resize: function(jq){ + return jq.each(function(){ + setSize(this); + setSelectedSize(this); + }); + }, + add: function(jq, options){ + return jq.each(function(){ + addTab(this, options); + }); + }, + close: function(jq, which){ + return jq.each(function(){ + closeTab(this, which); + }); + }, + getTab: function(jq, which){ + return getTab(jq[0], which); + }, + getTabIndex: function(jq, tab){ + return getTabIndex(jq[0], tab); + }, + getSelected: function(jq){ + return getSelectedTab(jq[0]); + }, + select: function(jq, which){ + return jq.each(function(){ + selectTab(this, which); + }); + }, + unselect: function(jq, which){ + return jq.each(function(){ + unselectTab(this, which); + }); + }, + exists: function(jq, which){ + return exists(jq[0], which); + }, + update: function(jq, options){ + return jq.each(function(){ + updateTab(this, options); + }); + }, + enableTab: function(jq, which){ + return jq.each(function(){ + $(this).tabs('getTab', which).panel('options').tab.removeClass('tabs-disabled'); + }); + }, + disableTab: function(jq, which){ + return jq.each(function(){ + $(this).tabs('getTab', which).panel('options').tab.addClass('tabs-disabled'); + }); + }, + showHeader: function(jq){ + return jq.each(function(){ + showHeader(this, true); + }); + }, + hideHeader: function(jq){ + return jq.each(function(){ + showHeader(this, false); + }); + }, + scrollBy: function(jq, deltaX){ // scroll the tab header by the specified amount of pixels + return jq.each(function(){ + var opts = $(this).tabs('options'); + var wrap = $(this).find('>div.tabs-header>div.tabs-wrap'); + var pos = Math.min(wrap._scrollLeft() + deltaX, getMaxScrollWidth()); + wrap.animate({scrollLeft: pos}, opts.scrollDuration); + + function getMaxScrollWidth(){ + var w = 0; + var ul = wrap.children('ul'); + ul.children('li').each(function(){ + w += $(this).outerWidth(true); + }); + return w - wrap.width() + (ul.outerWidth() - ul.width()); + } + }); + } + }; + + $.fn.tabs.parseOptions = function(target){ + return $.extend({}, $.parser.parseOptions(target, [ + 'width','height','tools','toolPosition','tabPosition', + {fit:'boolean',border:'boolean',plain:'boolean',headerWidth:'number',tabWidth:'number',tabHeight:'number',selected:'number',showHeader:'boolean'} + ])); + }; + + $.fn.tabs.defaults = { + width: 'auto', + height: 'auto', + headerWidth: 150, // the tab header width, it is valid only when tabPosition set to 'left' or 'right' + tabWidth: 'auto', // the tab width + tabHeight: 27, // the tab height + selected: 0, // the initialized selected tab index + showHeader: true, + plain: false, + fit: false, + border: true, + tools: null, + toolPosition: 'right', // left,right + tabPosition: 'top', // possible values: top,bottom + scrollIncrement: 100, + scrollDuration: 400, + onLoad: function(panel){}, + onSelect: function(title, index){}, + onUnselect: function(title, index){}, + onBeforeClose: function(title, index){}, + onClose: function(title, index){}, + onAdd: function(title, index){}, + onUpdate: function(title, index){}, + onContextMenu: function(e, title, index){} + }; +})(jQuery); diff --git a/src/main/webapp/js/easyui-1.3.5/src/jquery.window.js b/src/main/webapp/js/easyui-1.3.5/src/jquery.window.js new file mode 100644 index 00000000..71fc6bb3 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/src/jquery.window.js @@ -0,0 +1,409 @@ +/** + * window - jQuery EasyUI + * + * Copyright (c) 2009-2013 www.jeasyui.com. All rights reserved. + * + * Licensed under the GPL or commercial licenses + * To use it on other terms please contact us: info@jeasyui.com + * http://www.gnu.org/licenses/gpl.txt + * http://www.jeasyui.com/license_commercial.php + * + * Dependencies: + * panel + * draggable + * resizable + * + */ +(function($){ + function setSize(target, param){ + var opts = $.data(target, 'window').options; + if (param){ + $.extend(opts, param); +// if (param.width) opts.width = param.width; +// if (param.height) opts.height = param.height; +// if (param.left != null) opts.left = param.left; +// if (param.top != null) opts.top = param.top; + } + $(target).panel('resize', opts); + } + + function moveWindow(target, param){ + var state = $.data(target, 'window'); + if (param){ + if (param.left != null) state.options.left = param.left; + if (param.top != null) state.options.top = param.top; + } + $(target).panel('move', state.options); + if (state.shadow){ + state.shadow.css({ + left: state.options.left, + top: state.options.top + }); + } + } + + /** + * center the window only horizontally + */ + function hcenter(target, tomove){ + var state = $.data(target, 'window'); + var opts = state.options; + var width = opts.width; + if (isNaN(width)){ + width = state.window._outerWidth(); + } + if (opts.inline){ + var parent = state.window.parent(); + opts.left = (parent.width() - width) / 2 + parent.scrollLeft(); + } else { + opts.left = ($(window)._outerWidth() - width) / 2 + $(document).scrollLeft(); + } + if (tomove){moveWindow(target);} + } + + /** + * center the window only vertically + */ + function vcenter(target, tomove){ + var state = $.data(target, 'window'); + var opts = state.options; + var height = opts.height; + if (isNaN(height)){ + height = state.window._outerHeight(); + } + if (opts.inline){ + var parent = state.window.parent(); + opts.top = (parent.height() - height) / 2 + parent.scrollTop(); + } else { + opts.top = ($(window)._outerHeight() - height) / 2 + $(document).scrollTop(); + } + if (tomove){moveWindow(target);} + } + + function create(target){ + var state = $.data(target, 'window'); + var win = $(target).panel($.extend({}, state.options, { + border: false, + doSize: true, // size the panel, the property undefined in window component + closed: true, // close the panel + cls: 'window', + headerCls: 'window-header', + bodyCls: 'window-body ' + (state.options.noheader ? 'window-body-noheader' : ''), + + onBeforeDestroy: function(){ + if (state.options.onBeforeDestroy.call(target) == false) return false; + if (state.shadow) state.shadow.remove(); + if (state.mask) state.mask.remove(); + }, + onClose: function(){ + if (state.shadow) state.shadow.hide(); + if (state.mask) state.mask.hide(); + + state.options.onClose.call(target); + }, + onOpen: function(){ + if (state.mask){ + state.mask.css({ + display:'block', + zIndex: $.fn.window.defaults.zIndex++ + }); + } + if (state.shadow){ + state.shadow.css({ + display:'block', + zIndex: $.fn.window.defaults.zIndex++, + left: state.options.left, + top: state.options.top, + width: state.window._outerWidth(), + height: state.window._outerHeight() + }); + } + state.window.css('z-index', $.fn.window.defaults.zIndex++); + + state.options.onOpen.call(target); + }, + onResize: function(width, height){ + var opts = $(this).panel('options'); + $.extend(state.options, { + width: opts.width, + height: opts.height, + left: opts.left, + top: opts.top + }); + if (state.shadow){ + state.shadow.css({ + left: state.options.left, + top: state.options.top, + width: state.window._outerWidth(), + height: state.window._outerHeight() + }); + } + + state.options.onResize.call(target, width, height); + }, + onMinimize: function(){ + if (state.shadow) state.shadow.hide(); + if (state.mask) state.mask.hide(); + + state.options.onMinimize.call(target); + }, + onBeforeCollapse: function(){ + if (state.options.onBeforeCollapse.call(target) == false) return false; + if (state.shadow) state.shadow.hide(); + }, + onExpand: function(){ + if (state.shadow) state.shadow.show(); + state.options.onExpand.call(target); + } + })); + + state.window = win.panel('panel'); + + // create mask + if (state.mask) state.mask.remove(); + if (state.options.modal == true){ + state.mask = $('
                                ').insertAfter(state.window); + state.mask.css({ + width: (state.options.inline ? state.mask.parent().width() : getPageArea().width), + height: (state.options.inline ? state.mask.parent().height() : getPageArea().height), + display: 'none' + }); + } + + // create shadow + if (state.shadow) state.shadow.remove(); + if (state.options.shadow == true){ + state.shadow = $('
                                ').insertAfter(state.window); + state.shadow.css({ + display: 'none' + }); + } + + // if require center the window + if (state.options.left == null){hcenter(target);} + if (state.options.top == null){vcenter(target);} + moveWindow(target); + + if (state.options.closed == false){ + win.window('open'); // open the window + } + } + + + /** + * set window drag and resize property + */ + function setProperties(target){ + var state = $.data(target, 'window'); + + state.window.draggable({ + handle: '>div.panel-header>div.panel-title', + disabled: state.options.draggable == false, + onStartDrag: function(e){ + if (state.mask) state.mask.css('z-index', $.fn.window.defaults.zIndex++); + if (state.shadow) state.shadow.css('z-index', $.fn.window.defaults.zIndex++); + state.window.css('z-index', $.fn.window.defaults.zIndex++); + + if (!state.proxy){ + state.proxy = $('
                                ').insertAfter(state.window); + } + state.proxy.css({ + display:'none', + zIndex: $.fn.window.defaults.zIndex++, + left: e.data.left, + top: e.data.top + }); + state.proxy._outerWidth(state.window._outerWidth()); + state.proxy._outerHeight(state.window._outerHeight()); + setTimeout(function(){ + if (state.proxy) state.proxy.show(); + }, 500); + }, + onDrag: function(e){ + state.proxy.css({ + display:'block', + left: e.data.left, + top: e.data.top + }); + return false; + }, + onStopDrag: function(e){ + state.options.left = e.data.left; + state.options.top = e.data.top; + $(target).window('move'); + state.proxy.remove(); + state.proxy = null; + } + }); + + state.window.resizable({ + disabled: state.options.resizable == false, + onStartResize:function(e){ + state.pmask = $('
                                ').insertAfter(state.window); + state.pmask.css({ + zIndex: $.fn.window.defaults.zIndex++, + left: e.data.left, + top: e.data.top, + width: state.window._outerWidth(), + height: state.window._outerHeight() + }); + if (!state.proxy){ + state.proxy = $('
                                ').insertAfter(state.window); + } + state.proxy.css({ + zIndex: $.fn.window.defaults.zIndex++, + left: e.data.left, + top: e.data.top + }); + state.proxy._outerWidth(e.data.width); + state.proxy._outerHeight(e.data.height); + }, + onResize: function(e){ + state.proxy.css({ + left: e.data.left, + top: e.data.top + }); + state.proxy._outerWidth(e.data.width); + state.proxy._outerHeight(e.data.height); + return false; + }, + onStopResize: function(e){ + $.extend(state.options, { + left: e.data.left, + top: e.data.top, + width: e.data.width, + height: e.data.height + }); + setSize(target); + state.pmask.remove(); + state.pmask = null; + state.proxy.remove(); + state.proxy = null; + } + }); + } + + function getPageArea() { + if (document.compatMode == 'BackCompat') { + return { + width: Math.max(document.body.scrollWidth, document.body.clientWidth), + height: Math.max(document.body.scrollHeight, document.body.clientHeight) + } + } else { + return { + width: Math.max(document.documentElement.scrollWidth, document.documentElement.clientWidth), + height: Math.max(document.documentElement.scrollHeight, document.documentElement.clientHeight) + } + } + } + + // when window resize, reset the width and height of the window's mask + $(window).resize(function(){ + $('body>div.window-mask').css({ + width: $(window)._outerWidth(), + height: $(window)._outerHeight() + }); + setTimeout(function(){ + $('body>div.window-mask').css({ + width: getPageArea().width, + height: getPageArea().height + }); + }, 50); + }); + + $.fn.window = function(options, param){ + if (typeof options == 'string'){ + var method = $.fn.window.methods[options]; + if (method){ + return method(this, param); + } else { + return this.panel(options, param); + } + } + + options = options || {}; + return this.each(function(){ + var state = $.data(this, 'window'); + if (state){ + $.extend(state.options, options); + } else { + state = $.data(this, 'window', { + options: $.extend({}, $.fn.window.defaults, $.fn.window.parseOptions(this), options) + }); + if (!state.options.inline){ +// $(this).appendTo('body'); + document.body.appendChild(this); + } + } + create(this); + setProperties(this); + }); + }; + + $.fn.window.methods = { + options: function(jq){ + var popts = jq.panel('options'); + var wopts = $.data(jq[0], 'window').options; + return $.extend(wopts, { + closed: popts.closed, + collapsed: popts.collapsed, + minimized: popts.minimized, + maximized: popts.maximized + }); + }, + window: function(jq){ + return $.data(jq[0], 'window').window; + }, + resize: function(jq, param){ + return jq.each(function(){ + setSize(this, param); + }); + }, + move: function(jq, param){ + return jq.each(function(){ + moveWindow(this, param); + }); + }, + hcenter: function(jq){ + return jq.each(function(){ + hcenter(this, true); + }); + }, + vcenter: function(jq){ + return jq.each(function(){ + vcenter(this, true); + }); + }, + center: function(jq){ + return jq.each(function(){ + hcenter(this); + vcenter(this); + moveWindow(this); + }); + } + }; + + $.fn.window.parseOptions = function(target){ + return $.extend({}, $.fn.panel.parseOptions(target), $.parser.parseOptions(target, [ + {draggable:'boolean',resizable:'boolean',shadow:'boolean',modal:'boolean',inline:'boolean'} + ])); + }; + + // Inherited from $.fn.panel.defaults + $.fn.window.defaults = $.extend({}, $.fn.panel.defaults, { + zIndex: 9000, + draggable: true, + resizable: true, + shadow: true, + modal: false, + inline: false, // true to stay inside its parent, false to go on top of all elements + + // window's property which difference from panel + title: 'New Window', + collapsible: true, + minimizable: true, + maximizable: true, + closable: true, + closed: false + }); +})(jQuery); diff --git a/src/main/webapp/js/easyui-1.3.5/themes/black/accordion.css b/src/main/webapp/js/easyui-1.3.5/themes/black/accordion.css new file mode 100644 index 00000000..a0f6ddc3 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/black/accordion.css @@ -0,0 +1,41 @@ +.accordion { + overflow: hidden; + border-width: 1px; + border-style: solid; +} +.accordion .accordion-header { + border-width: 0 0 1px; + cursor: pointer; +} +.accordion .accordion-body { + border-width: 0 0 1px; +} +.accordion-noborder { + border-width: 0; +} +.accordion-noborder .accordion-header { + border-width: 0 0 1px; +} +.accordion-noborder .accordion-body { + border-width: 0 0 1px; +} +.accordion-collapse { + background: url('images/accordion_arrows.png') no-repeat 0 0; +} +.accordion-expand { + background: url('images/accordion_arrows.png') no-repeat -16px 0; +} +.accordion { + background: #666; + border-color: #000; +} +.accordion .accordion-header { + background: #3d3d3d; + filter: none; +} +.accordion .accordion-header-selected { + background: #0052A3; +} +.accordion .accordion-header-selected .panel-title { + color: #fff; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/black/calendar.css b/src/main/webapp/js/easyui-1.3.5/themes/black/calendar.css new file mode 100644 index 00000000..514f3e3c --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/black/calendar.css @@ -0,0 +1,190 @@ +.calendar { + border-width: 1px; + border-style: solid; + padding: 1px; + overflow: hidden; +} +.calendar table { + border-collapse: separate; + font-size: 12px; + width: 100%; + height: 100%; +} +.calendar table td, +.calendar table th { + font-size: 12px; +} +.calendar-noborder { + border: 0; +} +.calendar-header { + position: relative; + height: 22px; +} +.calendar-title { + text-align: center; + height: 22px; +} +.calendar-title span { + position: relative; + display: inline-block; + top: 2px; + padding: 0 3px; + height: 18px; + line-height: 18px; + font-size: 12px; + cursor: pointer; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-prevmonth, +.calendar-nextmonth, +.calendar-prevyear, +.calendar-nextyear { + position: absolute; + top: 50%; + margin-top: -7px; + width: 14px; + height: 14px; + cursor: pointer; + font-size: 1px; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-prevmonth { + left: 20px; + background: url('images/calendar_arrows.png') no-repeat -18px -2px; +} +.calendar-nextmonth { + right: 20px; + background: url('images/calendar_arrows.png') no-repeat -34px -2px; +} +.calendar-prevyear { + left: 3px; + background: url('images/calendar_arrows.png') no-repeat -1px -2px; +} +.calendar-nextyear { + right: 3px; + background: url('images/calendar_arrows.png') no-repeat -49px -2px; +} +.calendar-body { + position: relative; +} +.calendar-body th, +.calendar-body td { + text-align: center; +} +.calendar-day { + border: 0; + padding: 1px; + cursor: pointer; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-other-month { + opacity: 0.3; + filter: alpha(opacity=30); +} +.calendar-menu { + position: absolute; + top: 0; + left: 0; + width: 180px; + height: 150px; + padding: 5px; + font-size: 12px; + display: none; + overflow: hidden; +} +.calendar-menu-year-inner { + text-align: center; + padding-bottom: 5px; +} +.calendar-menu-year { + width: 40px; + text-align: center; + border-width: 1px; + border-style: solid; + margin: 0; + padding: 2px; + font-weight: bold; + font-size: 12px; +} +.calendar-menu-prev, +.calendar-menu-next { + display: inline-block; + width: 21px; + height: 21px; + vertical-align: top; + cursor: pointer; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-menu-prev { + margin-right: 10px; + background: url('images/calendar_arrows.png') no-repeat 2px 2px; +} +.calendar-menu-next { + margin-left: 10px; + background: url('images/calendar_arrows.png') no-repeat -45px 2px; +} +.calendar-menu-month { + text-align: center; + cursor: pointer; + font-weight: bold; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-body th, +.calendar-menu-month { + color: #ffffff; +} +.calendar-day { + color: #fff; +} +.calendar-sunday { + color: #CC2222; +} +.calendar-saturday { + color: #00ee00; +} +.calendar-today { + color: #0000ff; +} +.calendar-menu-year { + border-color: #000; +} +.calendar { + border-color: #000; +} +.calendar-header { + background: #3d3d3d; +} +.calendar-body, +.calendar-menu { + background: #666; +} +.calendar-body th { + background: #555; +} +.calendar-hover, +.calendar-nav-hover, +.calendar-menu-hover { + background-color: #777; + color: #fff; +} +.calendar-hover { + border: 1px solid #555; + padding: 0; +} +.calendar-selected { + background-color: #0052A3; + color: #fff; + border: 1px solid #00458a; + padding: 0; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/black/combo.css b/src/main/webapp/js/easyui-1.3.5/themes/black/combo.css new file mode 100644 index 00000000..d0af3b7d --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/black/combo.css @@ -0,0 +1,58 @@ +.combo { + display: inline-block; + white-space: nowrap; + margin: 0; + padding: 0; + border-width: 1px; + border-style: solid; + overflow: hidden; + vertical-align: middle; +} +.combo .combo-text { + font-size: 12px; + border: 0px; + line-height: 20px; + height: 20px; + margin: 0; + padding: 0px 2px; + *margin-top: -1px; + *height: 18px; + *line-height: 18px; + _height: 18px; + _line-height: 18px; + vertical-align: baseline; +} +.combo-arrow { + width: 18px; + height: 20px; + overflow: hidden; + display: inline-block; + vertical-align: top; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.combo-arrow-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.combo-panel { + overflow: auto; +} +.combo-arrow { + background: url('images/combo_arrow.png') no-repeat center center; +} +.combo, +.combo-panel { + background-color: #666; +} +.combo { + border-color: #000; + background-color: #666; +} +.combo-arrow { + background-color: #3d3d3d; +} +.combo-arrow-hover { + background-color: #777; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/black/combobox.css b/src/main/webapp/js/easyui-1.3.5/themes/black/combobox.css new file mode 100644 index 00000000..284332e0 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/black/combobox.css @@ -0,0 +1,24 @@ +.combobox-item, +.combobox-group { + font-size: 12px; + padding: 3px; + padding-right: 0px; +} +.combobox-item-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.combobox-gitem { + padding-left: 10px; +} +.combobox-group { + font-weight: bold; +} +.combobox-item-hover { + background-color: #777; + color: #fff; +} +.combobox-item-selected { + background-color: #0052A3; + color: #fff; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/black/datagrid.css b/src/main/webapp/js/easyui-1.3.5/themes/black/datagrid.css new file mode 100644 index 00000000..c13f133a --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/black/datagrid.css @@ -0,0 +1,260 @@ +.datagrid .panel-body { + overflow: hidden; + position: relative; +} +.datagrid-view { + position: relative; + overflow: hidden; +} +.datagrid-view1, +.datagrid-view2 { + position: absolute; + overflow: hidden; + top: 0; +} +.datagrid-view1 { + left: 0; +} +.datagrid-view2 { + right: 0; +} +.datagrid-mask { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + opacity: 0.3; + filter: alpha(opacity=30); + display: none; +} +.datagrid-mask-msg { + position: absolute; + top: 50%; + margin-top: -20px; + padding: 12px 5px 10px 30px; + width: auto; + height: 16px; + border-width: 2px; + border-style: solid; + display: none; +} +.datagrid-sort-icon { + padding: 0; +} +.datagrid-toolbar { + height: auto; + padding: 1px 2px; + border-width: 0 0 1px 0; + border-style: solid; +} +.datagrid-btn-separator { + float: left; + height: 24px; + border-left: 1px solid #444; + border-right: 1px solid #777; + margin: 2px 1px; +} +.datagrid .datagrid-pager { + display: block; + margin: 0; + border-width: 1px 0 0 0; + border-style: solid; +} +.datagrid .datagrid-pager-top { + border-width: 0 0 1px 0; +} +.datagrid-header { + overflow: hidden; + cursor: default; + border-width: 0 0 1px 0; + border-style: solid; +} +.datagrid-header-inner { + float: left; + width: 10000px; +} +.datagrid-header-row, +.datagrid-row { + height: 25px; +} +.datagrid-header td, +.datagrid-body td, +.datagrid-footer td { + border-width: 0 1px 1px 0; + border-style: dotted; + margin: 0; + padding: 0; +} +.datagrid-cell, +.datagrid-cell-group, +.datagrid-header-rownumber, +.datagrid-cell-rownumber { + margin: 0; + padding: 0 4px; + white-space: nowrap; + word-wrap: normal; + overflow: hidden; + height: 18px; + line-height: 18px; + font-size: 12px; +} +.datagrid-header .datagrid-cell { + height: auto; +} +.datagrid-header .datagrid-cell span { + font-size: 12px; +} +.datagrid-cell-group { + text-align: center; +} +.datagrid-header-rownumber, +.datagrid-cell-rownumber { + width: 25px; + text-align: center; + margin: 0; + padding: 0; +} +.datagrid-body { + margin: 0; + padding: 0; + overflow: auto; + zoom: 1; +} +.datagrid-view1 .datagrid-body-inner { + padding-bottom: 20px; +} +.datagrid-view1 .datagrid-body { + overflow: hidden; +} +.datagrid-footer { + overflow: hidden; +} +.datagrid-footer-inner { + border-width: 1px 0 0 0; + border-style: solid; + width: 10000px; + float: left; +} +.datagrid-row-editing .datagrid-cell { + height: auto; +} +.datagrid-header-check, +.datagrid-cell-check { + padding: 0; + width: 27px; + height: 18px; + font-size: 1px; + text-align: center; + overflow: hidden; +} +.datagrid-header-check input, +.datagrid-cell-check input { + margin: 0; + padding: 0; + width: 15px; + height: 18px; +} +.datagrid-resize-proxy { + position: absolute; + width: 1px; + height: 10000px; + top: 0; + cursor: e-resize; + display: none; +} +.datagrid-body .datagrid-editable { + margin: 0; + padding: 0; +} +.datagrid-body .datagrid-editable table { + width: 100%; + height: 100%; +} +.datagrid-body .datagrid-editable td { + border: 0; + margin: 0; + padding: 0; +} +.datagrid-body .datagrid-editable .datagrid-editable-input { + margin: 0; + padding: 2px; + border-width: 1px; + border-style: solid; +} +.datagrid-sort-desc .datagrid-sort-icon { + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat -16px center; +} +.datagrid-sort-asc .datagrid-sort-icon { + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat 0px center; +} +.datagrid-row-collapse { + background: url('images/datagrid_icons.png') no-repeat -48px center; +} +.datagrid-row-expand { + background: url('images/datagrid_icons.png') no-repeat -32px center; +} +.datagrid-mask-msg { + background: #666 url('images/loading.gif') no-repeat scroll 5px center; +} +.datagrid-header, +.datagrid-td-rownumber { + background-color: #444; + background: -webkit-linear-gradient(top,#4c4c4c 0,#3f3f3f 100%); + background: -moz-linear-gradient(top,#4c4c4c 0,#3f3f3f 100%); + background: -o-linear-gradient(top,#4c4c4c 0,#3f3f3f 100%); + background: linear-gradient(to bottom,#4c4c4c 0,#3f3f3f 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#4c4c4c,endColorstr=#3f3f3f,GradientType=0); +} +.datagrid-cell-rownumber { + color: #fff; +} +.datagrid-resize-proxy { + background: #cccccc; +} +.datagrid-mask { + background: #000; +} +.datagrid-mask-msg { + border-color: #000; +} +.datagrid-toolbar, +.datagrid-pager { + background: #555; +} +.datagrid-header, +.datagrid-toolbar, +.datagrid-pager, +.datagrid-footer-inner { + border-color: #222; +} +.datagrid-header td, +.datagrid-body td, +.datagrid-footer td { + border-color: #222; +} +.datagrid-htable, +.datagrid-btable, +.datagrid-ftable { + color: #fff; + border-collapse: separate; +} +.datagrid-row-alt { + background: #555; +} +.datagrid-row-over, +.datagrid-header td.datagrid-header-over { + background: #777; + color: #fff; + cursor: default; +} +.datagrid-row-selected { + background: #0052A3; + color: #fff; +} +.datagrid-body .datagrid-editable .datagrid-editable-input { + border-color: #000; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/black/datebox.css b/src/main/webapp/js/easyui-1.3.5/themes/black/datebox.css new file mode 100644 index 00000000..e368f640 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/black/datebox.css @@ -0,0 +1,36 @@ +.datebox-calendar-inner { + height: 180px; +} +.datebox-button { + height: 18px; + padding: 2px 5px; + text-align: center; +} +.datebox-button a { + font-size: 12px; + font-weight: bold; + text-decoration: none; + opacity: 0.6; + filter: alpha(opacity=60); +} +.datebox-button a:hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.datebox-current, +.datebox-close { + float: left; +} +.datebox-close { + float: right; +} +.datebox .combo-arrow { + background-image: url('images/datebox_arrow.png'); + background-position: center center; +} +.datebox-button { + background-color: #555; +} +.datebox-button a { + color: #fff; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/black/dialog.css b/src/main/webapp/js/easyui-1.3.5/themes/black/dialog.css new file mode 100644 index 00000000..4ee224a9 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/black/dialog.css @@ -0,0 +1,30 @@ +.dialog-content { + overflow: auto; +} +.dialog-toolbar { + padding: 2px 5px; +} +.dialog-tool-separator { + float: left; + height: 24px; + border-left: 1px solid #444; + border-right: 1px solid #777; + margin: 2px 1px; +} +.dialog-button { + padding: 5px; + text-align: right; +} +.dialog-button .l-btn { + margin-left: 5px; +} +.dialog-toolbar, +.dialog-button { + background: #555; +} +.dialog-toolbar { + border-bottom: 1px solid #222; +} +.dialog-button { + border-top: 1px solid #222; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/black/easyui.css b/src/main/webapp/js/easyui-1.3.5/themes/black/easyui.css new file mode 100644 index 00000000..11a0380b --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/black/easyui.css @@ -0,0 +1,2322 @@ +.panel { + overflow: hidden; + text-align: left; + margin: 0; + border: 0; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.panel-header, +.panel-body { + border-width: 1px; + border-style: solid; +} +.panel-header { + padding: 5px; + position: relative; +} +.panel-title { + background: url('images/blank.gif') no-repeat; +} +.panel-header-noborder { + border-width: 0 0 1px 0; +} +.panel-body { + overflow: auto; + border-top-width: 0; + padding: 0; +} +.panel-body-noheader { + border-top-width: 1px; +} +.panel-body-noborder { + border-width: 0px; +} +.panel-with-icon { + padding-left: 18px; +} +.panel-icon, +.panel-tool { + position: absolute; + top: 50%; + margin-top: -8px; + height: 16px; + overflow: hidden; +} +.panel-icon { + left: 5px; + width: 16px; +} +.panel-tool { + right: 5px; + width: auto; +} +.panel-tool a { + display: inline-block; + width: 16px; + height: 16px; + opacity: 0.6; + filter: alpha(opacity=60); + margin: 0 0 0 2px; + vertical-align: top; +} +.panel-tool a:hover { + opacity: 1; + filter: alpha(opacity=100); + background-color: #777; + -moz-border-radius: 3px 3px 3px 3px; + -webkit-border-radius: 3px 3px 3px 3px; + border-radius: 3px 3px 3px 3px; +} +.panel-loading { + padding: 11px 0px 10px 30px; +} +.panel-noscroll { + overflow: hidden; +} +.panel-fit, +.panel-fit body { + height: 100%; + margin: 0; + padding: 0; + border: 0; + overflow: hidden; +} +.panel-loading { + background: url('images/loading.gif') no-repeat 10px 10px; +} +.panel-tool-close { + background: url('images/panel_tools.png') no-repeat -16px 0px; +} +.panel-tool-min { + background: url('images/panel_tools.png') no-repeat 0px 0px; +} +.panel-tool-max { + background: url('images/panel_tools.png') no-repeat 0px -16px; +} +.panel-tool-restore { + background: url('images/panel_tools.png') no-repeat -16px -16px; +} +.panel-tool-collapse { + background: url('images/panel_tools.png') no-repeat -32px 0; +} +.panel-tool-expand { + background: url('images/panel_tools.png') no-repeat -32px -16px; +} +.panel-header, +.panel-body { + border-color: #000; +} +.panel-header { + background-color: #3d3d3d; + background: -webkit-linear-gradient(top,#454545 0,#383838 100%); + background: -moz-linear-gradient(top,#454545 0,#383838 100%); + background: -o-linear-gradient(top,#454545 0,#383838 100%); + background: linear-gradient(to bottom,#454545 0,#383838 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#454545,endColorstr=#383838,GradientType=0); +} +.panel-body { + background-color: #666; + color: #fff; + font-size: 12px; +} +.panel-title { + font-size: 12px; + font-weight: bold; + color: #fff; + height: 16px; + line-height: 16px; +} +.accordion { + overflow: hidden; + border-width: 1px; + border-style: solid; +} +.accordion .accordion-header { + border-width: 0 0 1px; + cursor: pointer; +} +.accordion .accordion-body { + border-width: 0 0 1px; +} +.accordion-noborder { + border-width: 0; +} +.accordion-noborder .accordion-header { + border-width: 0 0 1px; +} +.accordion-noborder .accordion-body { + border-width: 0 0 1px; +} +.accordion-collapse { + background: url('images/accordion_arrows.png') no-repeat 0 0; +} +.accordion-expand { + background: url('images/accordion_arrows.png') no-repeat -16px 0; +} +.accordion { + background: #666; + border-color: #000; +} +.accordion .accordion-header { + background: #3d3d3d; + filter: none; +} +.accordion .accordion-header-selected { + background: #0052A3; +} +.accordion .accordion-header-selected .panel-title { + color: #fff; +} +.window { + overflow: hidden; + padding: 5px; + border-width: 1px; + border-style: solid; +} +.window .window-header { + background: transparent; + padding: 0px 0px 6px 0px; +} +.window .window-body { + border-width: 1px; + border-style: solid; + border-top-width: 0px; +} +.window .window-body-noheader { + border-top-width: 1px; +} +.window .window-header .panel-icon, +.window .window-header .panel-tool { + top: 50%; + margin-top: -11px; +} +.window .window-header .panel-icon { + left: 1px; +} +.window .window-header .panel-tool { + right: 1px; +} +.window .window-header .panel-with-icon { + padding-left: 18px; +} +.window-proxy { + position: absolute; + overflow: hidden; +} +.window-proxy-mask { + position: absolute; + filter: alpha(opacity=5); + opacity: 0.05; +} +.window-mask { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + filter: alpha(opacity=40); + opacity: 0.40; + font-size: 1px; + *zoom: 1; + overflow: hidden; +} +.window, +.window-shadow { + position: absolute; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.window-shadow { + background: #777; + -moz-box-shadow: 2px 2px 3px #787878; + -webkit-box-shadow: 2px 2px 3px #787878; + box-shadow: 2px 2px 3px #787878; + filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2); +} +.window, +.window .window-body { + border-color: #000; +} +.window { + background-color: #3d3d3d; + background: -webkit-linear-gradient(top,#454545 0,#383838 20%); + background: -moz-linear-gradient(top,#454545 0,#383838 20%); + background: -o-linear-gradient(top,#454545 0,#383838 20%); + background: linear-gradient(to bottom,#454545 0,#383838 20%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#454545,endColorstr=#383838,GradientType=0); +} +.window-proxy { + border: 1px dashed #000; +} +.window-proxy-mask, +.window-mask { + background: #000; +} +.dialog-content { + overflow: auto; +} +.dialog-toolbar { + padding: 2px 5px; +} +.dialog-tool-separator { + float: left; + height: 24px; + border-left: 1px solid #444; + border-right: 1px solid #777; + margin: 2px 1px; +} +.dialog-button { + padding: 5px; + text-align: right; +} +.dialog-button .l-btn { + margin-left: 5px; +} +.dialog-toolbar, +.dialog-button { + background: #555; +} +.dialog-toolbar { + border-bottom: 1px solid #222; +} +.dialog-button { + border-top: 1px solid #222; +} +.combo { + display: inline-block; + white-space: nowrap; + margin: 0; + padding: 0; + border-width: 1px; + border-style: solid; + overflow: hidden; + vertical-align: middle; +} +.combo .combo-text { + font-size: 12px; + border: 0px; + line-height: 20px; + height: 20px; + margin: 0; + padding: 0px 2px; + *margin-top: -1px; + *height: 18px; + *line-height: 18px; + _height: 18px; + _line-height: 18px; + vertical-align: baseline; +} +.combo-arrow { + width: 18px; + height: 20px; + overflow: hidden; + display: inline-block; + vertical-align: top; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.combo-arrow-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.combo-panel { + overflow: auto; +} +.combo-arrow { + background: url('images/combo_arrow.png') no-repeat center center; +} +.combo, +.combo-panel { + background-color: #666; +} +.combo { + border-color: #000; + background-color: #666; +} +.combo-arrow { + background-color: #3d3d3d; +} +.combo-arrow-hover { + background-color: #777; +} +.combobox-item, +.combobox-group { + font-size: 12px; + padding: 3px; + padding-right: 0px; +} +.combobox-item-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.combobox-gitem { + padding-left: 10px; +} +.combobox-group { + font-weight: bold; +} +.combobox-item-hover { + background-color: #777; + color: #fff; +} +.combobox-item-selected { + background-color: #0052A3; + color: #fff; +} +.layout { + position: relative; + overflow: hidden; + margin: 0; + padding: 0; + z-index: 0; +} +.layout-panel { + position: absolute; + overflow: hidden; +} +.layout-panel-east, +.layout-panel-west { + z-index: 2; +} +.layout-panel-north, +.layout-panel-south { + z-index: 3; +} +.layout-expand { + position: absolute; + padding: 0px; + font-size: 1px; + cursor: pointer; + z-index: 1; +} +.layout-expand .panel-header, +.layout-expand .panel-body { + background: transparent; + filter: none; + overflow: hidden; +} +.layout-expand .panel-header { + border-bottom-width: 0px; +} +.layout-split-proxy-h, +.layout-split-proxy-v { + position: absolute; + font-size: 1px; + display: none; + z-index: 5; +} +.layout-split-proxy-h { + width: 5px; + cursor: e-resize; +} +.layout-split-proxy-v { + height: 5px; + cursor: n-resize; +} +.layout-mask { + position: absolute; + background: #fafafa; + filter: alpha(opacity=10); + opacity: 0.10; + z-index: 4; +} +.layout-button-up { + background: url('images/layout_arrows.png') no-repeat -16px -16px; +} +.layout-button-down { + background: url('images/layout_arrows.png') no-repeat -16px 0; +} +.layout-button-left { + background: url('images/layout_arrows.png') no-repeat 0 0; +} +.layout-button-right { + background: url('images/layout_arrows.png') no-repeat 0 -16px; +} +.layout-split-proxy-h, +.layout-split-proxy-v { + background-color: #cccccc; +} +.layout-split-north { + border-bottom: 5px solid #444; +} +.layout-split-south { + border-top: 5px solid #444; +} +.layout-split-east { + border-left: 5px solid #444; +} +.layout-split-west { + border-right: 5px solid #444; +} +.layout-expand { + background-color: #3d3d3d; +} +.layout-expand-over { + background-color: #3d3d3d; +} +.tabs-container { + overflow: hidden; +} +.tabs-header { + border-width: 1px; + border-style: solid; + border-bottom-width: 0; + position: relative; + padding: 0; + padding-top: 2px; + overflow: hidden; +} +.tabs-header-plain { + border: 0; + background: transparent; +} +.tabs-scroller-left, +.tabs-scroller-right { + position: absolute; + top: auto; + bottom: 0; + width: 18px; + font-size: 1px; + display: none; + cursor: pointer; + border-width: 1px; + border-style: solid; +} +.tabs-scroller-left { + left: 0; +} +.tabs-scroller-right { + right: 0; +} +.tabs-tool { + position: absolute; + bottom: 0; + padding: 1px; + overflow: hidden; + border-width: 1px; + border-style: solid; +} +.tabs-header-plain .tabs-tool { + padding: 0 1px; +} +.tabs-wrap { + position: relative; + left: 0; + overflow: hidden; + width: 100%; + margin: 0; + padding: 0; +} +.tabs-scrolling { + margin-left: 18px; + margin-right: 18px; +} +.tabs-disabled { + opacity: 0.3; + filter: alpha(opacity=30); +} +.tabs { + list-style-type: none; + height: 26px; + margin: 0px; + padding: 0px; + padding-left: 4px; + width: 5000px; + border-style: solid; + border-width: 0 0 1px 0; +} +.tabs li { + float: left; + display: inline-block; + margin: 0 4px -1px 0; + padding: 0; + position: relative; + border: 0; +} +.tabs li a.tabs-inner { + display: inline-block; + text-decoration: none; + margin: 0; + padding: 0 10px; + height: 25px; + line-height: 25px; + text-align: center; + white-space: nowrap; + border-width: 1px; + border-style: solid; + -moz-border-radius: 5px 5px 0 0; + -webkit-border-radius: 5px 5px 0 0; + border-radius: 5px 5px 0 0; +} +.tabs li.tabs-selected a.tabs-inner { + font-weight: bold; + outline: none; +} +.tabs li.tabs-selected a:hover.tabs-inner { + cursor: default; + pointer: default; +} +.tabs li a.tabs-close, +.tabs-p-tool { + position: absolute; + font-size: 1px; + display: block; + height: 12px; + padding: 0; + top: 50%; + margin-top: -6px; + overflow: hidden; +} +.tabs li a.tabs-close { + width: 12px; + right: 5px; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tabs-p-tool { + right: 16px; +} +.tabs-p-tool a { + display: inline-block; + font-size: 1px; + width: 12px; + height: 12px; + margin: 0; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tabs li a:hover.tabs-close, +.tabs-p-tool a:hover { + opacity: 1; + filter: alpha(opacity=100); + cursor: hand; + cursor: pointer; +} +.tabs-with-icon { + padding-left: 18px; +} +.tabs-icon { + position: absolute; + width: 16px; + height: 16px; + left: 10px; + top: 50%; + margin-top: -8px; +} +.tabs-title { + font-size: 12px; +} +.tabs-closable { + padding-right: 8px; +} +.tabs-panels { + margin: 0px; + padding: 0px; + border-width: 1px; + border-style: solid; + border-top-width: 0; + overflow: hidden; +} +.tabs-header-bottom { + border-width: 0 1px 1px 1px; + padding: 0 0 2px 0; +} +.tabs-header-bottom .tabs { + border-width: 1px 0 0 0; +} +.tabs-header-bottom .tabs li { + margin: -1px 4px 0 0; +} +.tabs-header-bottom .tabs li a.tabs-inner { + -moz-border-radius: 0 0 5px 5px; + -webkit-border-radius: 0 0 5px 5px; + border-radius: 0 0 5px 5px; +} +.tabs-header-bottom .tabs-tool { + top: 0; +} +.tabs-header-bottom .tabs-scroller-left, +.tabs-header-bottom .tabs-scroller-right { + top: 0; + bottom: auto; +} +.tabs-panels-top { + border-width: 1px 1px 0 1px; +} +.tabs-header-left { + float: left; + border-width: 1px 0 1px 1px; + padding: 0; +} +.tabs-header-right { + float: right; + border-width: 1px 1px 1px 0; + padding: 0; +} +.tabs-header-left .tabs-wrap, +.tabs-header-right .tabs-wrap { + height: 100%; +} +.tabs-header-left .tabs { + height: 100%; + padding: 4px 0 0 4px; + border-width: 0 1px 0 0; +} +.tabs-header-right .tabs { + height: 100%; + padding: 4px 4px 0 0; + border-width: 0 0 0 1px; +} +.tabs-header-left .tabs li, +.tabs-header-right .tabs li { + display: block; + width: 100%; + position: relative; +} +.tabs-header-left .tabs li { + left: auto; + right: 0; + margin: 0 -1px 4px 0; + float: right; +} +.tabs-header-right .tabs li { + left: 0; + right: auto; + margin: 0 0 4px -1px; + float: left; +} +.tabs-header-left .tabs li a.tabs-inner { + display: block; + text-align: left; + -moz-border-radius: 5px 0 0 5px; + -webkit-border-radius: 5px 0 0 5px; + border-radius: 5px 0 0 5px; +} +.tabs-header-right .tabs li a.tabs-inner { + display: block; + text-align: left; + -moz-border-radius: 0 5px 5px 0; + -webkit-border-radius: 0 5px 5px 0; + border-radius: 0 5px 5px 0; +} +.tabs-panels-right { + float: right; + border-width: 1px 1px 1px 0; +} +.tabs-panels-left { + float: left; + border-width: 1px 0 1px 1px; +} +.tabs-header-noborder, +.tabs-panels-noborder { + border: 0px; +} +.tabs-header-plain { + border: 0px; + background: transparent; +} +.tabs-scroller-left { + background: #3d3d3d url('images/tabs_icons.png') no-repeat 1px center; +} +.tabs-scroller-right { + background: #3d3d3d url('images/tabs_icons.png') no-repeat -15px center; +} +.tabs li a.tabs-close { + background: url('images/tabs_icons.png') no-repeat -34px center; +} +.tabs li a.tabs-inner:hover { + background: #777; + color: #fff; + filter: none; +} +.tabs li.tabs-selected a.tabs-inner { + background-color: #666; + color: #fff; + background: -webkit-linear-gradient(top,#454545 0,#666 100%); + background: -moz-linear-gradient(top,#454545 0,#666 100%); + background: -o-linear-gradient(top,#454545 0,#666 100%); + background: linear-gradient(to bottom,#454545 0,#666 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#454545,endColorstr=#666,GradientType=0); +} +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner { + background: -webkit-linear-gradient(top,#666 0,#454545 100%); + background: -moz-linear-gradient(top,#666 0,#454545 100%); + background: -o-linear-gradient(top,#666 0,#454545 100%); + background: linear-gradient(to bottom,#666 0,#454545 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#666,endColorstr=#454545,GradientType=0); +} +.tabs-header-left .tabs li.tabs-selected a.tabs-inner { + background: -webkit-linear-gradient(left,#454545 0,#666 100%); + background: -moz-linear-gradient(left,#454545 0,#666 100%); + background: -o-linear-gradient(left,#454545 0,#666 100%); + background: linear-gradient(to right,#454545 0,#666 100%); + background-repeat: repeat-y; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#454545,endColorstr=#666,GradientType=1); +} +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + background: -webkit-linear-gradient(left,#666 0,#454545 100%); + background: -moz-linear-gradient(left,#666 0,#454545 100%); + background: -o-linear-gradient(left,#666 0,#454545 100%); + background: linear-gradient(to right,#666 0,#454545 100%); + background-repeat: repeat-y; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#666,endColorstr=#454545,GradientType=1); +} +.tabs li a.tabs-inner { + color: #fff; + background-color: #3d3d3d; + background: -webkit-linear-gradient(top,#454545 0,#383838 100%); + background: -moz-linear-gradient(top,#454545 0,#383838 100%); + background: -o-linear-gradient(top,#454545 0,#383838 100%); + background: linear-gradient(to bottom,#454545 0,#383838 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#454545,endColorstr=#383838,GradientType=0); +} +.tabs-header, +.tabs-tool { + background-color: #3d3d3d; +} +.tabs-header-plain { + background: transparent; +} +.tabs-header, +.tabs-scroller-left, +.tabs-scroller-right, +.tabs-tool, +.tabs, +.tabs-panels, +.tabs li a.tabs-inner, +.tabs li.tabs-selected a.tabs-inner, +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner, +.tabs-header-left .tabs li.tabs-selected a.tabs-inner, +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + border-color: #000; +} +.tabs-p-tool a:hover, +.tabs li a:hover.tabs-close, +.tabs-scroller-over { + background-color: #777; +} +.tabs li.tabs-selected a.tabs-inner { + border-bottom: 1px solid #666; +} +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner { + border-top: 1px solid #666; +} +.tabs-header-left .tabs li.tabs-selected a.tabs-inner { + border-right: 1px solid #666; +} +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + border-left: 1px solid #666; +} +a.l-btn { + background-position: right 0; + text-decoration: none; + display: inline-block; + zoom: 1; + height: 24px; + padding-right: 18px; + cursor: pointer; + outline: none; +} +a.l-btn-plain { + border: 0; + padding: 1px 6px 1px 1px; +} +a.l-btn-disabled { + color: #ccc; + opacity: 0.5; + filter: alpha(opacity=50); + cursor: default; +} +a.l-btn span.l-btn-left { + display: inline-block; + background-position: 0 -48px; + padding: 0 0 0 18px; + line-height: 24px; + height: 24px; +} +a.l-btn-plain span.l-btn-left { + padding-left: 5px; +} +a.l-btn span span.l-btn-text { + position: relative; + display: inline-block; + vertical-align: top; + top: 4px; + width: auto; + height: 16px; + line-height: 16px; + font-size: 12px; + padding: 0; + margin: 0; +} +a.l-btn span span.l-btn-icon-left { + padding: 0 0 0 20px; + background-position: left center; +} +a.l-btn span span.l-btn-icon-right { + padding: 0 20px 0 0; + background-position: right center; +} +a.l-btn span span span.l-btn-empty { + display: inline-block; + margin: 0; + padding: 0; + width: 16px; +} +a:hover.l-btn { + background-position: right -24px; + outline: none; + text-decoration: none; +} +a:hover.l-btn span.l-btn-left { + background-position: 0 bottom; +} +a:hover.l-btn-plain { + padding: 0 5px 0 0; +} +a:hover.l-btn-disabled { + background-position: right 0; +} +a:hover.l-btn-disabled span.l-btn-left { + background-position: 0 -48px; +} +a.l-btn .l-btn-focus { + outline: #0000FF dotted thin; +} +a.l-btn { + color: #fff; + background-image: url('images/linkbutton_bg.png'); + background-repeat: no-repeat; + background: #777; + background-repeat: repeat-x; + border: 1px solid #555; + background: -webkit-linear-gradient(top,#919191 0,#6a6a6a 100%); + background: -moz-linear-gradient(top,#919191 0,#6a6a6a 100%); + background: -o-linear-gradient(top,#919191 0,#6a6a6a 100%); + background: linear-gradient(to bottom,#919191 0,#6a6a6a 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#919191,endColorstr=#6a6a6a,GradientType=0); + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +a.l-btn span.l-btn-left { + background-image: url('images/linkbutton_bg.png'); + background-repeat: no-repeat; + background-image: none; +} +a:hover.l-btn { + background: #777; + color: #fff; + border: 1px solid #555; + filter: none; +} +a.l-btn-plain, +a.l-btn-plain span.l-btn-left { + background: transparent; + border: 0; + filter: none; +} +a:hover.l-btn-plain { + background: #777; + color: #fff; + border: 1px solid #555; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +a.l-btn-disabled, +a:hover.l-btn-disabled { + color: #fff; + filter: alpha(opacity=50); + background: #777; + color: #fff; + background: -webkit-linear-gradient(top,#919191 0,#6a6a6a 100%); + background: -moz-linear-gradient(top,#919191 0,#6a6a6a 100%); + background: -o-linear-gradient(top,#919191 0,#6a6a6a 100%); + background: linear-gradient(to bottom,#919191 0,#6a6a6a 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#919191,endColorstr=#6a6a6a,GradientType=0); + filter: alpha(opacity=50) progid:DXImageTransform.Microsoft.gradient(startColorstr=#919191,endColorstr=#6a6a6a,GradientType=0); +} +a.l-btn-plain-disabled, +a:hover.l-btn-plain-disabled { + background: transparent; + filter: alpha(opacity=50); +} +a.l-btn-selected, +a:hover.l-btn-selected { + background-position: right -24px; + background: #000; + filter: none; +} +a.l-btn-selected span.l-btn-left, +a:hover.l-btn-selected span.l-btn-left { + background-position: 0 bottom; + background-image: none; +} +a.l-btn-plain-selected, +a:hover.l-btn-plain-selected { + background: #000; +} +.datagrid .panel-body { + overflow: hidden; + position: relative; +} +.datagrid-view { + position: relative; + overflow: hidden; +} +.datagrid-view1, +.datagrid-view2 { + position: absolute; + overflow: hidden; + top: 0; +} +.datagrid-view1 { + left: 0; +} +.datagrid-view2 { + right: 0; +} +.datagrid-mask { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + opacity: 0.3; + filter: alpha(opacity=30); + display: none; +} +.datagrid-mask-msg { + position: absolute; + top: 50%; + margin-top: -20px; + padding: 12px 5px 10px 30px; + width: auto; + height: 16px; + border-width: 2px; + border-style: solid; + display: none; +} +.datagrid-sort-icon { + padding: 0; +} +.datagrid-toolbar { + height: auto; + padding: 1px 2px; + border-width: 0 0 1px 0; + border-style: solid; +} +.datagrid-btn-separator { + float: left; + height: 24px; + border-left: 1px solid #444; + border-right: 1px solid #777; + margin: 2px 1px; +} +.datagrid .datagrid-pager { + display: block; + margin: 0; + border-width: 1px 0 0 0; + border-style: solid; +} +.datagrid .datagrid-pager-top { + border-width: 0 0 1px 0; +} +.datagrid-header { + overflow: hidden; + cursor: default; + border-width: 0 0 1px 0; + border-style: solid; +} +.datagrid-header-inner { + float: left; + width: 10000px; +} +.datagrid-header-row, +.datagrid-row { + height: 25px; +} +.datagrid-header td, +.datagrid-body td, +.datagrid-footer td { + border-width: 0 1px 1px 0; + border-style: dotted; + margin: 0; + padding: 0; +} +.datagrid-cell, +.datagrid-cell-group, +.datagrid-header-rownumber, +.datagrid-cell-rownumber { + margin: 0; + padding: 0 4px; + white-space: nowrap; + word-wrap: normal; + overflow: hidden; + height: 18px; + line-height: 18px; + font-size: 12px; +} +.datagrid-header .datagrid-cell { + height: auto; +} +.datagrid-header .datagrid-cell span { + font-size: 12px; +} +.datagrid-cell-group { + text-align: center; +} +.datagrid-header-rownumber, +.datagrid-cell-rownumber { + width: 25px; + text-align: center; + margin: 0; + padding: 0; +} +.datagrid-body { + margin: 0; + padding: 0; + overflow: auto; + zoom: 1; +} +.datagrid-view1 .datagrid-body-inner { + padding-bottom: 20px; +} +.datagrid-view1 .datagrid-body { + overflow: hidden; +} +.datagrid-footer { + overflow: hidden; +} +.datagrid-footer-inner { + border-width: 1px 0 0 0; + border-style: solid; + width: 10000px; + float: left; +} +.datagrid-row-editing .datagrid-cell { + height: auto; +} +.datagrid-header-check, +.datagrid-cell-check { + padding: 0; + width: 27px; + height: 18px; + font-size: 1px; + text-align: center; + overflow: hidden; +} +.datagrid-header-check input, +.datagrid-cell-check input { + margin: 0; + padding: 0; + width: 15px; + height: 18px; +} +.datagrid-resize-proxy { + position: absolute; + width: 1px; + height: 10000px; + top: 0; + cursor: e-resize; + display: none; +} +.datagrid-body .datagrid-editable { + margin: 0; + padding: 0; +} +.datagrid-body .datagrid-editable table { + width: 100%; + height: 100%; +} +.datagrid-body .datagrid-editable td { + border: 0; + margin: 0; + padding: 0; +} +.datagrid-body .datagrid-editable .datagrid-editable-input { + margin: 0; + padding: 2px; + border-width: 1px; + border-style: solid; +} +.datagrid-sort-desc .datagrid-sort-icon { + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat -16px center; +} +.datagrid-sort-asc .datagrid-sort-icon { + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat 0px center; +} +.datagrid-row-collapse { + background: url('images/datagrid_icons.png') no-repeat -48px center; +} +.datagrid-row-expand { + background: url('images/datagrid_icons.png') no-repeat -32px center; +} +.datagrid-mask-msg { + background: #666 url('images/loading.gif') no-repeat scroll 5px center; +} +.datagrid-header, +.datagrid-td-rownumber { + background-color: #444; + background: -webkit-linear-gradient(top,#4c4c4c 0,#3f3f3f 100%); + background: -moz-linear-gradient(top,#4c4c4c 0,#3f3f3f 100%); + background: -o-linear-gradient(top,#4c4c4c 0,#3f3f3f 100%); + background: linear-gradient(to bottom,#4c4c4c 0,#3f3f3f 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#4c4c4c,endColorstr=#3f3f3f,GradientType=0); +} +.datagrid-cell-rownumber { + color: #fff; +} +.datagrid-resize-proxy { + background: #cccccc; +} +.datagrid-mask { + background: #000; +} +.datagrid-mask-msg { + border-color: #000; +} +.datagrid-toolbar, +.datagrid-pager { + background: #555; +} +.datagrid-header, +.datagrid-toolbar, +.datagrid-pager, +.datagrid-footer-inner { + border-color: #222; +} +.datagrid-header td, +.datagrid-body td, +.datagrid-footer td { + border-color: #222; +} +.datagrid-htable, +.datagrid-btable, +.datagrid-ftable { + color: #fff; + border-collapse: separate; +} +.datagrid-row-alt { + background: #555; +} +.datagrid-row-over, +.datagrid-header td.datagrid-header-over { + background: #777; + color: #fff; + cursor: default; +} +.datagrid-row-selected { + background: #0052A3; + color: #fff; +} +.datagrid-body .datagrid-editable .datagrid-editable-input { + border-color: #000; +} +.propertygrid .datagrid-view1 .datagrid-body td { + padding-bottom: 1px; + border-width: 0 1px 0 0; +} +.propertygrid .datagrid-group { + height: 21px; + overflow: hidden; + border-width: 0 0 1px 0; + border-style: solid; +} +.propertygrid .datagrid-group span { + font-weight: bold; +} +.propertygrid .datagrid-view1 .datagrid-body td { + border-color: #222; +} +.propertygrid .datagrid-view1 .datagrid-group { + border-color: #3d3d3d; +} +.propertygrid .datagrid-view2 .datagrid-group { + border-color: #222; +} +.propertygrid .datagrid-group, +.propertygrid .datagrid-view1 .datagrid-body, +.propertygrid .datagrid-view1 .datagrid-row-over, +.propertygrid .datagrid-view1 .datagrid-row-selected { + background: #3d3d3d; +} +.pagination { + zoom: 1; +} +.pagination table { + float: left; + height: 30px; +} +.pagination td { + border: 0; +} +.pagination-btn-separator { + float: left; + height: 24px; + border-left: 1px solid #444; + border-right: 1px solid #777; + margin: 3px 1px; +} +.pagination .pagination-num { + border-width: 1px; + border-style: solid; + margin: 0 2px; + padding: 2px; + width: 2em; + height: auto; +} +.pagination-page-list { + margin: 0px 6px; + padding: 1px 2px; + width: auto; + height: auto; + border-width: 1px; + border-style: solid; +} +.pagination-info { + float: right; + margin: 0 6px 0 0; + padding: 0; + height: 30px; + line-height: 30px; + font-size: 12px; +} +.pagination span { + font-size: 12px; +} +a.pagination-link { + padding: 1px; +} +a.pagination-link span.l-btn-left { + padding-left: 0; +} +a.pagination-link span span.l-btn-text { + width: 24px; + text-align: center; +} +a:hover.pagination-link { + padding: 0; +} +.pagination-first { + background: url('images/pagination_icons.png') no-repeat 0 center; +} +.pagination-prev { + background: url('images/pagination_icons.png') no-repeat -16px center; +} +.pagination-next { + background: url('images/pagination_icons.png') no-repeat -32px center; +} +.pagination-last { + background: url('images/pagination_icons.png') no-repeat -48px center; +} +.pagination-load { + background: url('images/pagination_icons.png') no-repeat -64px center; +} +.pagination-loading { + background: url('images/loading.gif') no-repeat center center; +} +.pagination-page-list, +.pagination .pagination-num { + border-color: #000; +} +.calendar { + border-width: 1px; + border-style: solid; + padding: 1px; + overflow: hidden; +} +.calendar table { + border-collapse: separate; + font-size: 12px; + width: 100%; + height: 100%; +} +.calendar table td, +.calendar table th { + font-size: 12px; +} +.calendar-noborder { + border: 0; +} +.calendar-header { + position: relative; + height: 22px; +} +.calendar-title { + text-align: center; + height: 22px; +} +.calendar-title span { + position: relative; + display: inline-block; + top: 2px; + padding: 0 3px; + height: 18px; + line-height: 18px; + font-size: 12px; + cursor: pointer; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-prevmonth, +.calendar-nextmonth, +.calendar-prevyear, +.calendar-nextyear { + position: absolute; + top: 50%; + margin-top: -7px; + width: 14px; + height: 14px; + cursor: pointer; + font-size: 1px; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-prevmonth { + left: 20px; + background: url('images/calendar_arrows.png') no-repeat -18px -2px; +} +.calendar-nextmonth { + right: 20px; + background: url('images/calendar_arrows.png') no-repeat -34px -2px; +} +.calendar-prevyear { + left: 3px; + background: url('images/calendar_arrows.png') no-repeat -1px -2px; +} +.calendar-nextyear { + right: 3px; + background: url('images/calendar_arrows.png') no-repeat -49px -2px; +} +.calendar-body { + position: relative; +} +.calendar-body th, +.calendar-body td { + text-align: center; +} +.calendar-day { + border: 0; + padding: 1px; + cursor: pointer; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-other-month { + opacity: 0.3; + filter: alpha(opacity=30); +} +.calendar-menu { + position: absolute; + top: 0; + left: 0; + width: 180px; + height: 150px; + padding: 5px; + font-size: 12px; + display: none; + overflow: hidden; +} +.calendar-menu-year-inner { + text-align: center; + padding-bottom: 5px; +} +.calendar-menu-year { + width: 40px; + text-align: center; + border-width: 1px; + border-style: solid; + margin: 0; + padding: 2px; + font-weight: bold; + font-size: 12px; +} +.calendar-menu-prev, +.calendar-menu-next { + display: inline-block; + width: 21px; + height: 21px; + vertical-align: top; + cursor: pointer; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-menu-prev { + margin-right: 10px; + background: url('images/calendar_arrows.png') no-repeat 2px 2px; +} +.calendar-menu-next { + margin-left: 10px; + background: url('images/calendar_arrows.png') no-repeat -45px 2px; +} +.calendar-menu-month { + text-align: center; + cursor: pointer; + font-weight: bold; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-body th, +.calendar-menu-month { + color: #ffffff; +} +.calendar-day { + color: #fff; +} +.calendar-sunday { + color: #CC2222; +} +.calendar-saturday { + color: #00ee00; +} +.calendar-today { + color: #0000ff; +} +.calendar-menu-year { + border-color: #000; +} +.calendar { + border-color: #000; +} +.calendar-header { + background: #3d3d3d; +} +.calendar-body, +.calendar-menu { + background: #666; +} +.calendar-body th { + background: #555; +} +.calendar-hover, +.calendar-nav-hover, +.calendar-menu-hover { + background-color: #777; + color: #fff; +} +.calendar-hover { + border: 1px solid #555; + padding: 0; +} +.calendar-selected { + background-color: #0052A3; + color: #fff; + border: 1px solid #00458a; + padding: 0; +} +.datebox-calendar-inner { + height: 180px; +} +.datebox-button { + height: 18px; + padding: 2px 5px; + text-align: center; +} +.datebox-button a { + font-size: 12px; + font-weight: bold; + text-decoration: none; + opacity: 0.6; + filter: alpha(opacity=60); +} +.datebox-button a:hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.datebox-current, +.datebox-close { + float: left; +} +.datebox-close { + float: right; +} +.datebox .combo-arrow { + background-image: url('images/datebox_arrow.png'); + background-position: center center; +} +.datebox-button { + background-color: #555; +} +.datebox-button a { + color: #fff; +} +.spinner { + display: inline-block; + white-space: nowrap; + margin: 0; + padding: 0; + border-width: 1px; + border-style: solid; + overflow: hidden; + vertical-align: middle; +} +.spinner .spinner-text { + font-size: 12px; + border: 0px; + line-height: 20px; + height: 20px; + margin: 0; + padding: 0 2px; + *margin-top: -1px; + *height: 18px; + *line-height: 18px; + _height: 18px; + _line-height: 18px; + vertical-align: baseline; +} +.spinner-arrow { + display: inline-block; + overflow: hidden; + vertical-align: top; + margin: 0; + padding: 0; +} +.spinner-arrow-up, +.spinner-arrow-down { + opacity: 0.6; + filter: alpha(opacity=60); + display: block; + font-size: 1px; + width: 18px; + height: 10px; +} +.spinner-arrow-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.spinner-arrow-up { + background: url('images/spinner_arrows.png') no-repeat 1px center; +} +.spinner-arrow-down { + background: url('images/spinner_arrows.png') no-repeat -15px center; +} +.spinner { + border-color: #000; +} +.spinner-arrow { + background-color: #3d3d3d; +} +.spinner-arrow-hover { + background-color: #777; +} +.progressbar { + border-width: 1px; + border-style: solid; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; + overflow: hidden; + position: relative; +} +.progressbar-text { + text-align: center; + position: absolute; +} +.progressbar-value { + position: relative; + overflow: hidden; + width: 0; + -moz-border-radius: 5px 0 0 5px; + -webkit-border-radius: 5px 0 0 5px; + border-radius: 5px 0 0 5px; +} +.progressbar { + border-color: #000; +} +.progressbar-text { + color: #fff; + font-size: 12px; +} +.progressbar-value .progressbar-text { + background-color: #0052A3; + color: #fff; +} +.searchbox { + display: inline-block; + white-space: nowrap; + margin: 0; + padding: 0; + border-width: 1px; + border-style: solid; + overflow: hidden; +} +.searchbox .searchbox-text { + font-size: 12px; + border: 0; + margin: 0; + padding: 0; + line-height: 20px; + height: 20px; + *margin-top: -1px; + *height: 18px; + *line-height: 18px; + _height: 18px; + _line-height: 18px; + vertical-align: baseline; +} +.searchbox .searchbox-prompt { + font-size: 12px; + color: #ccc; +} +.searchbox-button { + width: 18px; + height: 20px; + overflow: hidden; + display: inline-block; + vertical-align: top; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.searchbox-button-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.searchbox a.l-btn-plain { + height: 20px; + border: 0; + padding: 0 6px 0 0; + vertical-align: top; + opacity: 0.6; + filter: alpha(opacity=60); + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox a.l-btn .l-btn-left { + padding: 0 0 0 4px; +} +.searchbox a.l-btn .l-btn-text { + position: static; + vertical-align: top; +} +.searchbox a.l-btn-plain:hover { + border: 0; + padding: 0 6px 0 0; + opacity: 1.0; + filter: alpha(opacity=100); + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox a.m-btn-plain-active { + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox-button { + background: url('images/searchbox_button.png') no-repeat center center; +} +.searchbox { + border-color: #000; + background-color: #fff; +} +.searchbox a.l-btn-plain { + background: #3d3d3d; +} +.slider-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.slider-h { + height: 22px; +} +.slider-v { + width: 22px; +} +.slider-inner { + position: relative; + height: 6px; + top: 7px; + border-width: 1px; + border-style: solid; + border-radius: 5px; +} +.slider-handle { + position: absolute; + display: block; + outline: none; + width: 20px; + height: 20px; + top: -7px; + margin-left: -10px; +} +.slider-tip { + position: absolute; + display: inline-block; + line-height: 12px; + font-size: 12px; + white-space: nowrap; + top: -22px; +} +.slider-rule { + position: relative; + top: 15px; +} +.slider-rule span { + position: absolute; + display: inline-block; + font-size: 0; + height: 5px; + border-width: 0 0 0 1px; + border-style: solid; +} +.slider-rulelabel { + position: relative; + top: 20px; +} +.slider-rulelabel span { + position: absolute; + display: inline-block; + font-size: 12px; +} +.slider-v .slider-inner { + width: 6px; + left: 7px; + top: 0; + float: left; +} +.slider-v .slider-handle { + left: 3px; + margin-top: -10px; +} +.slider-v .slider-tip { + left: -10px; + margin-top: -6px; +} +.slider-v .slider-rule { + float: left; + top: 0; + left: 16px; +} +.slider-v .slider-rule span { + width: 5px; + height: 'auto'; + border-left: 0; + border-width: 1px 0 0 0; + border-style: solid; +} +.slider-v .slider-rulelabel { + float: left; + top: 0; + left: 23px; +} +.slider-handle { + background: url('images/slider_handle.png') no-repeat; +} +.slider-inner { + border-color: #000; + background: #3d3d3d; +} +.slider-rule span { + border-color: #000; +} +.slider-rulelabel span { + color: #fff; +} +.menu { + position: absolute; + margin: 0; + padding: 2px; + border-width: 1px; + border-style: solid; + overflow: hidden; +} +.menu-item { + position: relative; + margin: 0; + padding: 0; + overflow: hidden; + white-space: nowrap; + cursor: pointer; + border-width: 1px; + border-style: solid; +} +.menu-text { + height: 20px; + line-height: 20px; + float: left; + padding-left: 28px; +} +.menu-icon { + position: absolute; + width: 16px; + height: 16px; + left: 2px; + top: 50%; + margin-top: -8px; +} +.menu-rightarrow { + position: absolute; + width: 16px; + height: 16px; + right: 0; + top: 50%; + margin-top: -8px; +} +.menu-line { + position: absolute; + left: 26px; + top: 0; + height: 2000px; + font-size: 1px; +} +.menu-sep { + margin: 3px 0px 3px 25px; + font-size: 1px; +} +.menu-active { + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.menu-item-disabled { + opacity: 0.5; + filter: alpha(opacity=50); + cursor: default; +} +.menu-text, +.menu-text span { + font-size: 12px; +} +.menu-shadow { + position: absolute; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; + background: #777; + -moz-box-shadow: 2px 2px 3px #787878; + -webkit-box-shadow: 2px 2px 3px #787878; + box-shadow: 2px 2px 3px #787878; + filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2); +} +.menu-rightarrow { + background: url('images/menu_arrows.png') no-repeat -32px center; +} +.menu-line { + border-left: 1px solid #444; + border-right: 1px solid #777; +} +.menu-sep { + border-top: 1px solid #444; + border-bottom: 1px solid #777; +} +.menu { + background-color: #666; + border-color: #444; + color: #fff; +} +.menu-content { + background: #666; +} +.menu-item { + border-color: transparent; + _border-color: #666; +} +.menu-active { + border-color: #555; + color: #fff; + background: #777; +} +.menu-active-disabled { + border-color: transparent; + background: transparent; + color: #fff; +} +.m-btn-downarrow { + display: inline-block; + width: 16px; + height: 16px; + line-height: 16px; + font-size: 12px; + _vertical-align: middle; +} +a.m-btn-active { + background-position: bottom right; +} +a.m-btn-active span.l-btn-left { + background-position: bottom left; +} +a.m-btn-plain-active { + background: transparent; + padding: 0 5px 0 0; + border-width: 1px; + border-style: solid; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.m-btn-downarrow { + background: url('images/menu_arrows.png') no-repeat 2px center; +} +a.m-btn-plain-active { + border-color: #555; + background-color: #777; + color: #fff; +} +.s-btn-downarrow { + display: inline-block; + margin: 0 0 0 4px; + padding: 0 0 0 1px; + width: 14px; + height: 16px; + line-height: 16px; + border-width: 0; + border-style: solid; + font-size: 12px; + _vertical-align: middle; +} +a.s-btn-active { + background-position: bottom right; +} +a.s-btn-active span.l-btn-left { + background-position: bottom left; +} +a.s-btn-plain-active { + background: transparent; + padding: 0 5px 0 0; + border-width: 1px; + border-style: solid; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.s-btn-downarrow { + background: url('images/menu_arrows.png') no-repeat 2px center; + border-color: #cccccc; +} +a:hover.l-btn .s-btn-downarrow, +a.s-btn-active .s-btn-downarrow, +a.s-btn-plain-active .s-btn-downarrow { + background-position: 1px center; + padding: 0; + border-width: 0 0 0 1px; +} +a.s-btn-plain-active { + border-color: #555; + background-color: #777; + color: #fff; +} +.messager-body { + padding: 10px; + overflow: hidden; +} +.messager-button { + text-align: center; + padding-top: 10px; +} +.messager-icon { + float: left; + width: 32px; + height: 32px; + margin: 0 10px 10px 0; +} +.messager-error { + background: url('images/messager_icons.png') no-repeat scroll -64px 0; +} +.messager-info { + background: url('images/messager_icons.png') no-repeat scroll 0 0; +} +.messager-question { + background: url('images/messager_icons.png') no-repeat scroll -32px 0; +} +.messager-warning { + background: url('images/messager_icons.png') no-repeat scroll -96px 0; +} +.messager-progress { + padding: 10px; +} +.messager-p-msg { + margin-bottom: 5px; +} +.messager-body .messager-input { + width: 100%; + padding: 1px 0; + border: 1px solid #000; +} +.tree { + margin: 0; + padding: 0; + list-style-type: none; +} +.tree li { + white-space: nowrap; +} +.tree li ul { + list-style-type: none; + margin: 0; + padding: 0; +} +.tree-node { + height: 18px; + white-space: nowrap; + cursor: pointer; +} +.tree-hit { + cursor: pointer; +} +.tree-expanded, +.tree-collapsed, +.tree-folder, +.tree-file, +.tree-checkbox, +.tree-indent { + display: inline-block; + width: 16px; + height: 18px; + vertical-align: top; + overflow: hidden; +} +.tree-expanded { + background: url('images/tree_icons.png') no-repeat -18px 0px; +} +.tree-expanded-hover { + background: url('images/tree_icons.png') no-repeat -50px 0px; +} +.tree-collapsed { + background: url('images/tree_icons.png') no-repeat 0px 0px; +} +.tree-collapsed-hover { + background: url('images/tree_icons.png') no-repeat -32px 0px; +} +.tree-lines .tree-expanded, +.tree-lines .tree-root-first .tree-expanded { + background: url('images/tree_icons.png') no-repeat -144px 0; +} +.tree-lines .tree-collapsed, +.tree-lines .tree-root-first .tree-collapsed { + background: url('images/tree_icons.png') no-repeat -128px 0; +} +.tree-lines .tree-node-last .tree-expanded, +.tree-lines .tree-root-one .tree-expanded { + background: url('images/tree_icons.png') no-repeat -80px 0; +} +.tree-lines .tree-node-last .tree-collapsed, +.tree-lines .tree-root-one .tree-collapsed { + background: url('images/tree_icons.png') no-repeat -64px 0; +} +.tree-line { + background: url('images/tree_icons.png') no-repeat -176px 0; +} +.tree-join { + background: url('images/tree_icons.png') no-repeat -192px 0; +} +.tree-joinbottom { + background: url('images/tree_icons.png') no-repeat -160px 0; +} +.tree-folder { + background: url('images/tree_icons.png') no-repeat -208px 0; +} +.tree-folder-open { + background: url('images/tree_icons.png') no-repeat -224px 0; +} +.tree-file { + background: url('images/tree_icons.png') no-repeat -240px 0; +} +.tree-loading { + background: url('images/loading.gif') no-repeat center center; +} +.tree-checkbox0 { + background: url('images/tree_icons.png') no-repeat -208px -18px; +} +.tree-checkbox1 { + background: url('images/tree_icons.png') no-repeat -224px -18px; +} +.tree-checkbox2 { + background: url('images/tree_icons.png') no-repeat -240px -18px; +} +.tree-title { + font-size: 12px; + display: inline-block; + text-decoration: none; + vertical-align: top; + white-space: nowrap; + padding: 0 2px; + height: 18px; + line-height: 18px; +} +.tree-node-proxy { + font-size: 12px; + line-height: 20px; + padding: 0 2px 0 20px; + border-width: 1px; + border-style: solid; + z-index: 9900000; +} +.tree-dnd-icon { + display: inline-block; + position: absolute; + width: 16px; + height: 18px; + left: 2px; + top: 50%; + margin-top: -9px; +} +.tree-dnd-yes { + background: url('images/tree_icons.png') no-repeat -256px 0; +} +.tree-dnd-no { + background: url('images/tree_icons.png') no-repeat -256px -18px; +} +.tree-node-top { + border-top: 1px dotted red; +} +.tree-node-bottom { + border-bottom: 1px dotted red; +} +.tree-node-append .tree-title { + border: 1px dotted red; +} +.tree-editor { + border: 1px solid #ccc; + font-size: 12px; + height: 14px !important; + height: 18px; + line-height: 14px; + padding: 1px 2px; + width: 80px; + position: absolute; + top: 0; +} +.tree-node-proxy { + background-color: #666; + color: #fff; + border-color: #000; +} +.tree-node-hover { + background: #777; + color: #fff; +} +.tree-node-selected { + background: #0052A3; + color: #fff; +} +.validatebox-invalid { + background-image: url('images/validatebox_warning.png'); + background-repeat: no-repeat; + background-position: right center; + border-color: #ffa8a8; + background-color: #fff3f3; + color: #000; +} +.tooltip { + position: absolute; + display: none; + z-index: 9900000; + outline: none; + opacity: 1; + filter: alpha(opacity=100); + padding: 5px; + border-width: 1px; + border-style: solid; + border-radius: 5px; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.tooltip-content { + font-size: 12px; +} +.tooltip-arrow-outer, +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + line-height: 0; + font-size: 0; + border-style: solid; + border-width: 6px; + border-color: transparent; + _border-color: tomato; + _filter: chroma(color=tomato); +} +.tooltip-right .tooltip-arrow-outer { + left: 0; + top: 50%; + margin: -6px 0 0 -13px; +} +.tooltip-right .tooltip-arrow { + left: 0; + top: 50%; + margin: -6px 0 0 -12px; +} +.tooltip-left .tooltip-arrow-outer { + right: 0; + top: 50%; + margin: -6px -13px 0 0; +} +.tooltip-left .tooltip-arrow { + right: 0; + top: 50%; + margin: -6px -12px 0 0; +} +.tooltip-top .tooltip-arrow-outer { + bottom: 0; + left: 50%; + margin: 0 0 -13px -6px; +} +.tooltip-top .tooltip-arrow { + bottom: 0; + left: 50%; + margin: 0 0 -12px -6px; +} +.tooltip-bottom .tooltip-arrow-outer { + top: 0; + left: 50%; + margin: -13px 0 0 -6px; +} +.tooltip-bottom .tooltip-arrow { + top: 0; + left: 50%; + margin: -12px 0 0 -6px; +} +.tooltip { + background-color: #666; + border-color: #000; + color: #fff; +} +.tooltip-right .tooltip-arrow-outer { + border-right-color: #000; +} +.tooltip-right .tooltip-arrow { + border-right-color: #666; +} +.tooltip-left .tooltip-arrow-outer { + border-left-color: #000; +} +.tooltip-left .tooltip-arrow { + border-left-color: #666; +} +.tooltip-top .tooltip-arrow-outer { + border-top-color: #000; +} +.tooltip-top .tooltip-arrow { + border-top-color: #666; +} +.tooltip-bottom .tooltip-arrow-outer { + border-bottom-color: #000; +} +.tooltip-bottom .tooltip-arrow { + border-bottom-color: #666; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/black/images/accordion_arrows.png b/src/main/webapp/js/easyui-1.3.5/themes/black/images/accordion_arrows.png new file mode 100644 index 00000000..45fd44aa Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/black/images/accordion_arrows.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/black/images/blank.gif b/src/main/webapp/js/easyui-1.3.5/themes/black/images/blank.gif new file mode 100644 index 00000000..1d11fa9a Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/black/images/blank.gif differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/black/images/calendar_arrows.png b/src/main/webapp/js/easyui-1.3.5/themes/black/images/calendar_arrows.png new file mode 100644 index 00000000..430c4ad6 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/black/images/calendar_arrows.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/black/images/combo_arrow.png b/src/main/webapp/js/easyui-1.3.5/themes/black/images/combo_arrow.png new file mode 100644 index 00000000..ac58921c Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/black/images/combo_arrow.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/black/images/datagrid_icons.png b/src/main/webapp/js/easyui-1.3.5/themes/black/images/datagrid_icons.png new file mode 100644 index 00000000..bdf87e38 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/black/images/datagrid_icons.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/black/images/datebox_arrow.png b/src/main/webapp/js/easyui-1.3.5/themes/black/images/datebox_arrow.png new file mode 100644 index 00000000..783c8335 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/black/images/datebox_arrow.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/black/images/layout_arrows.png b/src/main/webapp/js/easyui-1.3.5/themes/black/images/layout_arrows.png new file mode 100644 index 00000000..19c611fa Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/black/images/layout_arrows.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/black/images/linkbutton_bg.png b/src/main/webapp/js/easyui-1.3.5/themes/black/images/linkbutton_bg.png new file mode 100644 index 00000000..fc66bd2c Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/black/images/linkbutton_bg.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/black/images/loading.gif b/src/main/webapp/js/easyui-1.3.5/themes/black/images/loading.gif new file mode 100644 index 00000000..68f01d04 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/black/images/loading.gif differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/black/images/menu_arrows.png b/src/main/webapp/js/easyui-1.3.5/themes/black/images/menu_arrows.png new file mode 100644 index 00000000..2a984941 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/black/images/menu_arrows.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/black/images/messager_icons.png b/src/main/webapp/js/easyui-1.3.5/themes/black/images/messager_icons.png new file mode 100644 index 00000000..62c18c13 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/black/images/messager_icons.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/black/images/pagination_icons.png b/src/main/webapp/js/easyui-1.3.5/themes/black/images/pagination_icons.png new file mode 100644 index 00000000..b3315faf Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/black/images/pagination_icons.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/black/images/panel_tools.png b/src/main/webapp/js/easyui-1.3.5/themes/black/images/panel_tools.png new file mode 100644 index 00000000..f97761eb Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/black/images/panel_tools.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/black/images/searchbox_button.png b/src/main/webapp/js/easyui-1.3.5/themes/black/images/searchbox_button.png new file mode 100644 index 00000000..6dd19315 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/black/images/searchbox_button.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/black/images/slider_handle.png b/src/main/webapp/js/easyui-1.3.5/themes/black/images/slider_handle.png new file mode 100644 index 00000000..b9802bae Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/black/images/slider_handle.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/black/images/spinner_arrows.png b/src/main/webapp/js/easyui-1.3.5/themes/black/images/spinner_arrows.png new file mode 100644 index 00000000..25ee848d Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/black/images/spinner_arrows.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/black/images/tabs_icons.png b/src/main/webapp/js/easyui-1.3.5/themes/black/images/tabs_icons.png new file mode 100644 index 00000000..732b1237 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/black/images/tabs_icons.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/black/images/tree_icons.png b/src/main/webapp/js/easyui-1.3.5/themes/black/images/tree_icons.png new file mode 100644 index 00000000..2b4fd202 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/black/images/tree_icons.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/black/images/validatebox_warning.png b/src/main/webapp/js/easyui-1.3.5/themes/black/images/validatebox_warning.png new file mode 100644 index 00000000..2b3d4f05 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/black/images/validatebox_warning.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/black/layout.css b/src/main/webapp/js/easyui-1.3.5/themes/black/layout.css new file mode 100644 index 00000000..31190da2 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/black/layout.css @@ -0,0 +1,91 @@ +.layout { + position: relative; + overflow: hidden; + margin: 0; + padding: 0; + z-index: 0; +} +.layout-panel { + position: absolute; + overflow: hidden; +} +.layout-panel-east, +.layout-panel-west { + z-index: 2; +} +.layout-panel-north, +.layout-panel-south { + z-index: 3; +} +.layout-expand { + position: absolute; + padding: 0px; + font-size: 1px; + cursor: pointer; + z-index: 1; +} +.layout-expand .panel-header, +.layout-expand .panel-body { + background: transparent; + filter: none; + overflow: hidden; +} +.layout-expand .panel-header { + border-bottom-width: 0px; +} +.layout-split-proxy-h, +.layout-split-proxy-v { + position: absolute; + font-size: 1px; + display: none; + z-index: 5; +} +.layout-split-proxy-h { + width: 5px; + cursor: e-resize; +} +.layout-split-proxy-v { + height: 5px; + cursor: n-resize; +} +.layout-mask { + position: absolute; + background: #fafafa; + filter: alpha(opacity=10); + opacity: 0.10; + z-index: 4; +} +.layout-button-up { + background: url('images/layout_arrows.png') no-repeat -16px -16px; +} +.layout-button-down { + background: url('images/layout_arrows.png') no-repeat -16px 0; +} +.layout-button-left { + background: url('images/layout_arrows.png') no-repeat 0 0; +} +.layout-button-right { + background: url('images/layout_arrows.png') no-repeat 0 -16px; +} +.layout-split-proxy-h, +.layout-split-proxy-v { + background-color: #cccccc; +} +.layout-split-north { + border-bottom: 5px solid #444; +} +.layout-split-south { + border-top: 5px solid #444; +} +.layout-split-east { + border-left: 5px solid #444; +} +.layout-split-west { + border-right: 5px solid #444; +} +.layout-expand { + background-color: #3d3d3d; +} +.layout-expand-over { + background-color: #3d3d3d; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/black/linkbutton.css b/src/main/webapp/js/easyui-1.3.5/themes/black/linkbutton.css new file mode 100644 index 00000000..6a4822ef --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/black/linkbutton.css @@ -0,0 +1,152 @@ +a.l-btn { + background-position: right 0; + text-decoration: none; + display: inline-block; + zoom: 1; + height: 24px; + padding-right: 18px; + cursor: pointer; + outline: none; +} +a.l-btn-plain { + border: 0; + padding: 1px 6px 1px 1px; +} +a.l-btn-disabled { + color: #ccc; + opacity: 0.5; + filter: alpha(opacity=50); + cursor: default; +} +a.l-btn span.l-btn-left { + display: inline-block; + background-position: 0 -48px; + padding: 0 0 0 18px; + line-height: 24px; + height: 24px; +} +a.l-btn-plain span.l-btn-left { + padding-left: 5px; +} +a.l-btn span span.l-btn-text { + position: relative; + display: inline-block; + vertical-align: top; + top: 4px; + width: auto; + height: 16px; + line-height: 16px; + font-size: 12px; + padding: 0; + margin: 0; +} +a.l-btn span span.l-btn-icon-left { + padding: 0 0 0 20px; + background-position: left center; +} +a.l-btn span span.l-btn-icon-right { + padding: 0 20px 0 0; + background-position: right center; +} +a.l-btn span span span.l-btn-empty { + display: inline-block; + margin: 0; + padding: 0; + width: 16px; +} +a:hover.l-btn { + background-position: right -24px; + outline: none; + text-decoration: none; +} +a:hover.l-btn span.l-btn-left { + background-position: 0 bottom; +} +a:hover.l-btn-plain { + padding: 0 5px 0 0; +} +a:hover.l-btn-disabled { + background-position: right 0; +} +a:hover.l-btn-disabled span.l-btn-left { + background-position: 0 -48px; +} +a.l-btn .l-btn-focus { + outline: #0000FF dotted thin; +} +a.l-btn { + color: #fff; + background-image: url('images/linkbutton_bg.png'); + background-repeat: no-repeat; + background: #777; + background-repeat: repeat-x; + border: 1px solid #555; + background: -webkit-linear-gradient(top,#919191 0,#6a6a6a 100%); + background: -moz-linear-gradient(top,#919191 0,#6a6a6a 100%); + background: -o-linear-gradient(top,#919191 0,#6a6a6a 100%); + background: linear-gradient(to bottom,#919191 0,#6a6a6a 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#919191,endColorstr=#6a6a6a,GradientType=0); + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +a.l-btn span.l-btn-left { + background-image: url('images/linkbutton_bg.png'); + background-repeat: no-repeat; + background-image: none; +} +a:hover.l-btn { + background: #777; + color: #fff; + border: 1px solid #555; + filter: none; +} +a.l-btn-plain, +a.l-btn-plain span.l-btn-left { + background: transparent; + border: 0; + filter: none; +} +a:hover.l-btn-plain { + background: #777; + color: #fff; + border: 1px solid #555; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +a.l-btn-disabled, +a:hover.l-btn-disabled { + color: #fff; + filter: alpha(opacity=50); + background: #777; + color: #fff; + background: -webkit-linear-gradient(top,#919191 0,#6a6a6a 100%); + background: -moz-linear-gradient(top,#919191 0,#6a6a6a 100%); + background: -o-linear-gradient(top,#919191 0,#6a6a6a 100%); + background: linear-gradient(to bottom,#919191 0,#6a6a6a 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#919191,endColorstr=#6a6a6a,GradientType=0); + filter: alpha(opacity=50) progid:DXImageTransform.Microsoft.gradient(startColorstr=#919191,endColorstr=#6a6a6a,GradientType=0); +} +a.l-btn-plain-disabled, +a:hover.l-btn-plain-disabled { + background: transparent; + filter: alpha(opacity=50); +} +a.l-btn-selected, +a:hover.l-btn-selected { + background-position: right -24px; + background: #000; + filter: none; +} +a.l-btn-selected span.l-btn-left, +a:hover.l-btn-selected span.l-btn-left { + background-position: 0 bottom; + background-image: none; +} +a.l-btn-plain-selected, +a:hover.l-btn-plain-selected { + background: #000; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/black/menu.css b/src/main/webapp/js/easyui-1.3.5/themes/black/menu.css new file mode 100644 index 00000000..9e89ea5a --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/black/menu.css @@ -0,0 +1,109 @@ +.menu { + position: absolute; + margin: 0; + padding: 2px; + border-width: 1px; + border-style: solid; + overflow: hidden; +} +.menu-item { + position: relative; + margin: 0; + padding: 0; + overflow: hidden; + white-space: nowrap; + cursor: pointer; + border-width: 1px; + border-style: solid; +} +.menu-text { + height: 20px; + line-height: 20px; + float: left; + padding-left: 28px; +} +.menu-icon { + position: absolute; + width: 16px; + height: 16px; + left: 2px; + top: 50%; + margin-top: -8px; +} +.menu-rightarrow { + position: absolute; + width: 16px; + height: 16px; + right: 0; + top: 50%; + margin-top: -8px; +} +.menu-line { + position: absolute; + left: 26px; + top: 0; + height: 2000px; + font-size: 1px; +} +.menu-sep { + margin: 3px 0px 3px 25px; + font-size: 1px; +} +.menu-active { + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.menu-item-disabled { + opacity: 0.5; + filter: alpha(opacity=50); + cursor: default; +} +.menu-text, +.menu-text span { + font-size: 12px; +} +.menu-shadow { + position: absolute; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; + background: #777; + -moz-box-shadow: 2px 2px 3px #787878; + -webkit-box-shadow: 2px 2px 3px #787878; + box-shadow: 2px 2px 3px #787878; + filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2); +} +.menu-rightarrow { + background: url('images/menu_arrows.png') no-repeat -32px center; +} +.menu-line { + border-left: 1px solid #444; + border-right: 1px solid #777; +} +.menu-sep { + border-top: 1px solid #444; + border-bottom: 1px solid #777; +} +.menu { + background-color: #666; + border-color: #444; + color: #fff; +} +.menu-content { + background: #666; +} +.menu-item { + border-color: transparent; + _border-color: #666; +} +.menu-active { + border-color: #555; + color: #fff; + background: #777; +} +.menu-active-disabled { + border-color: transparent; + background: transparent; + color: #fff; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/black/menubutton.css b/src/main/webapp/js/easyui-1.3.5/themes/black/menubutton.css new file mode 100644 index 00000000..b936c02b --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/black/menubutton.css @@ -0,0 +1,31 @@ +.m-btn-downarrow { + display: inline-block; + width: 16px; + height: 16px; + line-height: 16px; + font-size: 12px; + _vertical-align: middle; +} +a.m-btn-active { + background-position: bottom right; +} +a.m-btn-active span.l-btn-left { + background-position: bottom left; +} +a.m-btn-plain-active { + background: transparent; + padding: 0 5px 0 0; + border-width: 1px; + border-style: solid; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.m-btn-downarrow { + background: url('images/menu_arrows.png') no-repeat 2px center; +} +a.m-btn-plain-active { + border-color: #555; + background-color: #777; + color: #fff; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/black/messager.css b/src/main/webapp/js/easyui-1.3.5/themes/black/messager.css new file mode 100644 index 00000000..f378f2a6 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/black/messager.css @@ -0,0 +1,37 @@ +.messager-body { + padding: 10px; + overflow: hidden; +} +.messager-button { + text-align: center; + padding-top: 10px; +} +.messager-icon { + float: left; + width: 32px; + height: 32px; + margin: 0 10px 10px 0; +} +.messager-error { + background: url('images/messager_icons.png') no-repeat scroll -64px 0; +} +.messager-info { + background: url('images/messager_icons.png') no-repeat scroll 0 0; +} +.messager-question { + background: url('images/messager_icons.png') no-repeat scroll -32px 0; +} +.messager-warning { + background: url('images/messager_icons.png') no-repeat scroll -96px 0; +} +.messager-progress { + padding: 10px; +} +.messager-p-msg { + margin-bottom: 5px; +} +.messager-body .messager-input { + width: 100%; + padding: 1px 0; + border: 1px solid #000; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/black/pagination.css b/src/main/webapp/js/easyui-1.3.5/themes/black/pagination.css new file mode 100644 index 00000000..87b95e07 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/black/pagination.css @@ -0,0 +1,79 @@ +.pagination { + zoom: 1; +} +.pagination table { + float: left; + height: 30px; +} +.pagination td { + border: 0; +} +.pagination-btn-separator { + float: left; + height: 24px; + border-left: 1px solid #444; + border-right: 1px solid #777; + margin: 3px 1px; +} +.pagination .pagination-num { + border-width: 1px; + border-style: solid; + margin: 0 2px; + padding: 2px; + width: 2em; + height: auto; +} +.pagination-page-list { + margin: 0px 6px; + padding: 1px 2px; + width: auto; + height: auto; + border-width: 1px; + border-style: solid; +} +.pagination-info { + float: right; + margin: 0 6px 0 0; + padding: 0; + height: 30px; + line-height: 30px; + font-size: 12px; +} +.pagination span { + font-size: 12px; +} +a.pagination-link { + padding: 1px; +} +a.pagination-link span.l-btn-left { + padding-left: 0; +} +a.pagination-link span span.l-btn-text { + width: 24px; + text-align: center; +} +a:hover.pagination-link { + padding: 0; +} +.pagination-first { + background: url('images/pagination_icons.png') no-repeat 0 center; +} +.pagination-prev { + background: url('images/pagination_icons.png') no-repeat -16px center; +} +.pagination-next { + background: url('images/pagination_icons.png') no-repeat -32px center; +} +.pagination-last { + background: url('images/pagination_icons.png') no-repeat -48px center; +} +.pagination-load { + background: url('images/pagination_icons.png') no-repeat -64px center; +} +.pagination-loading { + background: url('images/loading.gif') no-repeat center center; +} +.pagination-page-list, +.pagination .pagination-num { + border-color: #000; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/black/panel.css b/src/main/webapp/js/easyui-1.3.5/themes/black/panel.css new file mode 100644 index 00000000..b1d5e8c4 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/black/panel.css @@ -0,0 +1,131 @@ +.panel { + overflow: hidden; + text-align: left; + margin: 0; + border: 0; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.panel-header, +.panel-body { + border-width: 1px; + border-style: solid; +} +.panel-header { + padding: 5px; + position: relative; +} +.panel-title { + background: url('images/blank.gif') no-repeat; +} +.panel-header-noborder { + border-width: 0 0 1px 0; +} +.panel-body { + overflow: auto; + border-top-width: 0; + padding: 0; +} +.panel-body-noheader { + border-top-width: 1px; +} +.panel-body-noborder { + border-width: 0px; +} +.panel-with-icon { + padding-left: 18px; +} +.panel-icon, +.panel-tool { + position: absolute; + top: 50%; + margin-top: -8px; + height: 16px; + overflow: hidden; +} +.panel-icon { + left: 5px; + width: 16px; +} +.panel-tool { + right: 5px; + width: auto; +} +.panel-tool a { + display: inline-block; + width: 16px; + height: 16px; + opacity: 0.6; + filter: alpha(opacity=60); + margin: 0 0 0 2px; + vertical-align: top; +} +.panel-tool a:hover { + opacity: 1; + filter: alpha(opacity=100); + background-color: #777; + -moz-border-radius: 3px 3px 3px 3px; + -webkit-border-radius: 3px 3px 3px 3px; + border-radius: 3px 3px 3px 3px; +} +.panel-loading { + padding: 11px 0px 10px 30px; +} +.panel-noscroll { + overflow: hidden; +} +.panel-fit, +.panel-fit body { + height: 100%; + margin: 0; + padding: 0; + border: 0; + overflow: hidden; +} +.panel-loading { + background: url('images/loading.gif') no-repeat 10px 10px; +} +.panel-tool-close { + background: url('images/panel_tools.png') no-repeat -16px 0px; +} +.panel-tool-min { + background: url('images/panel_tools.png') no-repeat 0px 0px; +} +.panel-tool-max { + background: url('images/panel_tools.png') no-repeat 0px -16px; +} +.panel-tool-restore { + background: url('images/panel_tools.png') no-repeat -16px -16px; +} +.panel-tool-collapse { + background: url('images/panel_tools.png') no-repeat -32px 0; +} +.panel-tool-expand { + background: url('images/panel_tools.png') no-repeat -32px -16px; +} +.panel-header, +.panel-body { + border-color: #000; +} +.panel-header { + background-color: #3d3d3d; + background: -webkit-linear-gradient(top,#454545 0,#383838 100%); + background: -moz-linear-gradient(top,#454545 0,#383838 100%); + background: -o-linear-gradient(top,#454545 0,#383838 100%); + background: linear-gradient(to bottom,#454545 0,#383838 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#454545,endColorstr=#383838,GradientType=0); +} +.panel-body { + background-color: #666; + color: #fff; + font-size: 12px; +} +.panel-title { + font-size: 12px; + font-weight: bold; + color: #fff; + height: 16px; + line-height: 16px; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/black/progressbar.css b/src/main/webapp/js/easyui-1.3.5/themes/black/progressbar.css new file mode 100644 index 00000000..79fcf624 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/black/progressbar.css @@ -0,0 +1,32 @@ +.progressbar { + border-width: 1px; + border-style: solid; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; + overflow: hidden; + position: relative; +} +.progressbar-text { + text-align: center; + position: absolute; +} +.progressbar-value { + position: relative; + overflow: hidden; + width: 0; + -moz-border-radius: 5px 0 0 5px; + -webkit-border-radius: 5px 0 0 5px; + border-radius: 5px 0 0 5px; +} +.progressbar { + border-color: #000; +} +.progressbar-text { + color: #fff; + font-size: 12px; +} +.progressbar-value .progressbar-text { + background-color: #0052A3; + color: #fff; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/black/propertygrid.css b/src/main/webapp/js/easyui-1.3.5/themes/black/propertygrid.css new file mode 100644 index 00000000..d71ce7c8 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/black/propertygrid.css @@ -0,0 +1,28 @@ +.propertygrid .datagrid-view1 .datagrid-body td { + padding-bottom: 1px; + border-width: 0 1px 0 0; +} +.propertygrid .datagrid-group { + height: 21px; + overflow: hidden; + border-width: 0 0 1px 0; + border-style: solid; +} +.propertygrid .datagrid-group span { + font-weight: bold; +} +.propertygrid .datagrid-view1 .datagrid-body td { + border-color: #222; +} +.propertygrid .datagrid-view1 .datagrid-group { + border-color: #3d3d3d; +} +.propertygrid .datagrid-view2 .datagrid-group { + border-color: #222; +} +.propertygrid .datagrid-group, +.propertygrid .datagrid-view1 .datagrid-body, +.propertygrid .datagrid-view1 .datagrid-row-over, +.propertygrid .datagrid-view1 .datagrid-row-selected { + background: #3d3d3d; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/black/searchbox.css b/src/main/webapp/js/easyui-1.3.5/themes/black/searchbox.css new file mode 100644 index 00000000..29f5759a --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/black/searchbox.css @@ -0,0 +1,83 @@ +.searchbox { + display: inline-block; + white-space: nowrap; + margin: 0; + padding: 0; + border-width: 1px; + border-style: solid; + overflow: hidden; +} +.searchbox .searchbox-text { + font-size: 12px; + border: 0; + margin: 0; + padding: 0; + line-height: 20px; + height: 20px; + *margin-top: -1px; + *height: 18px; + *line-height: 18px; + _height: 18px; + _line-height: 18px; + vertical-align: baseline; +} +.searchbox .searchbox-prompt { + font-size: 12px; + color: #ccc; +} +.searchbox-button { + width: 18px; + height: 20px; + overflow: hidden; + display: inline-block; + vertical-align: top; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.searchbox-button-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.searchbox a.l-btn-plain { + height: 20px; + border: 0; + padding: 0 6px 0 0; + vertical-align: top; + opacity: 0.6; + filter: alpha(opacity=60); + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox a.l-btn .l-btn-left { + padding: 0 0 0 4px; +} +.searchbox a.l-btn .l-btn-text { + position: static; + vertical-align: top; +} +.searchbox a.l-btn-plain:hover { + border: 0; + padding: 0 6px 0 0; + opacity: 1.0; + filter: alpha(opacity=100); + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox a.m-btn-plain-active { + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox-button { + background: url('images/searchbox_button.png') no-repeat center center; +} +.searchbox { + border-color: #000; + background-color: #fff; +} +.searchbox a.l-btn-plain { + background: #3d3d3d; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/black/slider.css b/src/main/webapp/js/easyui-1.3.5/themes/black/slider.css new file mode 100644 index 00000000..da31fd66 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/black/slider.css @@ -0,0 +1,100 @@ +.slider-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.slider-h { + height: 22px; +} +.slider-v { + width: 22px; +} +.slider-inner { + position: relative; + height: 6px; + top: 7px; + border-width: 1px; + border-style: solid; + border-radius: 5px; +} +.slider-handle { + position: absolute; + display: block; + outline: none; + width: 20px; + height: 20px; + top: -7px; + margin-left: -10px; +} +.slider-tip { + position: absolute; + display: inline-block; + line-height: 12px; + font-size: 12px; + white-space: nowrap; + top: -22px; +} +.slider-rule { + position: relative; + top: 15px; +} +.slider-rule span { + position: absolute; + display: inline-block; + font-size: 0; + height: 5px; + border-width: 0 0 0 1px; + border-style: solid; +} +.slider-rulelabel { + position: relative; + top: 20px; +} +.slider-rulelabel span { + position: absolute; + display: inline-block; + font-size: 12px; +} +.slider-v .slider-inner { + width: 6px; + left: 7px; + top: 0; + float: left; +} +.slider-v .slider-handle { + left: 3px; + margin-top: -10px; +} +.slider-v .slider-tip { + left: -10px; + margin-top: -6px; +} +.slider-v .slider-rule { + float: left; + top: 0; + left: 16px; +} +.slider-v .slider-rule span { + width: 5px; + height: 'auto'; + border-left: 0; + border-width: 1px 0 0 0; + border-style: solid; +} +.slider-v .slider-rulelabel { + float: left; + top: 0; + left: 23px; +} +.slider-handle { + background: url('images/slider_handle.png') no-repeat; +} +.slider-inner { + border-color: #000; + background: #3d3d3d; +} +.slider-rule span { + border-color: #000; +} +.slider-rulelabel span { + color: #fff; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/black/spinner.css b/src/main/webapp/js/easyui-1.3.5/themes/black/spinner.css new file mode 100644 index 00000000..18ea2a90 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/black/spinner.css @@ -0,0 +1,59 @@ +.spinner { + display: inline-block; + white-space: nowrap; + margin: 0; + padding: 0; + border-width: 1px; + border-style: solid; + overflow: hidden; + vertical-align: middle; +} +.spinner .spinner-text { + font-size: 12px; + border: 0px; + line-height: 20px; + height: 20px; + margin: 0; + padding: 0 2px; + *margin-top: -1px; + *height: 18px; + *line-height: 18px; + _height: 18px; + _line-height: 18px; + vertical-align: baseline; +} +.spinner-arrow { + display: inline-block; + overflow: hidden; + vertical-align: top; + margin: 0; + padding: 0; +} +.spinner-arrow-up, +.spinner-arrow-down { + opacity: 0.6; + filter: alpha(opacity=60); + display: block; + font-size: 1px; + width: 18px; + height: 10px; +} +.spinner-arrow-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.spinner-arrow-up { + background: url('images/spinner_arrows.png') no-repeat 1px center; +} +.spinner-arrow-down { + background: url('images/spinner_arrows.png') no-repeat -15px center; +} +.spinner { + border-color: #000; +} +.spinner-arrow { + background-color: #3d3d3d; +} +.spinner-arrow-hover { + background-color: #777; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/black/splitbutton.css b/src/main/webapp/js/easyui-1.3.5/themes/black/splitbutton.css new file mode 100644 index 00000000..3391b9c5 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/black/splitbutton.css @@ -0,0 +1,43 @@ +.s-btn-downarrow { + display: inline-block; + margin: 0 0 0 4px; + padding: 0 0 0 1px; + width: 14px; + height: 16px; + line-height: 16px; + border-width: 0; + border-style: solid; + font-size: 12px; + _vertical-align: middle; +} +a.s-btn-active { + background-position: bottom right; +} +a.s-btn-active span.l-btn-left { + background-position: bottom left; +} +a.s-btn-plain-active { + background: transparent; + padding: 0 5px 0 0; + border-width: 1px; + border-style: solid; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.s-btn-downarrow { + background: url('images/menu_arrows.png') no-repeat 2px center; + border-color: #cccccc; +} +a:hover.l-btn .s-btn-downarrow, +a.s-btn-active .s-btn-downarrow, +a.s-btn-plain-active .s-btn-downarrow { + background-position: 1px center; + padding: 0; + border-width: 0 0 0 1px; +} +a.s-btn-plain-active { + border-color: #555; + background-color: #777; + color: #fff; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/black/tabs.css b/src/main/webapp/js/easyui-1.3.5/themes/black/tabs.css new file mode 100644 index 00000000..40ba8f1a --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/black/tabs.css @@ -0,0 +1,356 @@ +.tabs-container { + overflow: hidden; +} +.tabs-header { + border-width: 1px; + border-style: solid; + border-bottom-width: 0; + position: relative; + padding: 0; + padding-top: 2px; + overflow: hidden; +} +.tabs-header-plain { + border: 0; + background: transparent; +} +.tabs-scroller-left, +.tabs-scroller-right { + position: absolute; + top: auto; + bottom: 0; + width: 18px; + font-size: 1px; + display: none; + cursor: pointer; + border-width: 1px; + border-style: solid; +} +.tabs-scroller-left { + left: 0; +} +.tabs-scroller-right { + right: 0; +} +.tabs-tool { + position: absolute; + bottom: 0; + padding: 1px; + overflow: hidden; + border-width: 1px; + border-style: solid; +} +.tabs-header-plain .tabs-tool { + padding: 0 1px; +} +.tabs-wrap { + position: relative; + left: 0; + overflow: hidden; + width: 100%; + margin: 0; + padding: 0; +} +.tabs-scrolling { + margin-left: 18px; + margin-right: 18px; +} +.tabs-disabled { + opacity: 0.3; + filter: alpha(opacity=30); +} +.tabs { + list-style-type: none; + height: 26px; + margin: 0px; + padding: 0px; + padding-left: 4px; + width: 5000px; + border-style: solid; + border-width: 0 0 1px 0; +} +.tabs li { + float: left; + display: inline-block; + margin: 0 4px -1px 0; + padding: 0; + position: relative; + border: 0; +} +.tabs li a.tabs-inner { + display: inline-block; + text-decoration: none; + margin: 0; + padding: 0 10px; + height: 25px; + line-height: 25px; + text-align: center; + white-space: nowrap; + border-width: 1px; + border-style: solid; + -moz-border-radius: 5px 5px 0 0; + -webkit-border-radius: 5px 5px 0 0; + border-radius: 5px 5px 0 0; +} +.tabs li.tabs-selected a.tabs-inner { + font-weight: bold; + outline: none; +} +.tabs li.tabs-selected a:hover.tabs-inner { + cursor: default; + pointer: default; +} +.tabs li a.tabs-close, +.tabs-p-tool { + position: absolute; + font-size: 1px; + display: block; + height: 12px; + padding: 0; + top: 50%; + margin-top: -6px; + overflow: hidden; +} +.tabs li a.tabs-close { + width: 12px; + right: 5px; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tabs-p-tool { + right: 16px; +} +.tabs-p-tool a { + display: inline-block; + font-size: 1px; + width: 12px; + height: 12px; + margin: 0; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tabs li a:hover.tabs-close, +.tabs-p-tool a:hover { + opacity: 1; + filter: alpha(opacity=100); + cursor: hand; + cursor: pointer; +} +.tabs-with-icon { + padding-left: 18px; +} +.tabs-icon { + position: absolute; + width: 16px; + height: 16px; + left: 10px; + top: 50%; + margin-top: -8px; +} +.tabs-title { + font-size: 12px; +} +.tabs-closable { + padding-right: 8px; +} +.tabs-panels { + margin: 0px; + padding: 0px; + border-width: 1px; + border-style: solid; + border-top-width: 0; + overflow: hidden; +} +.tabs-header-bottom { + border-width: 0 1px 1px 1px; + padding: 0 0 2px 0; +} +.tabs-header-bottom .tabs { + border-width: 1px 0 0 0; +} +.tabs-header-bottom .tabs li { + margin: -1px 4px 0 0; +} +.tabs-header-bottom .tabs li a.tabs-inner { + -moz-border-radius: 0 0 5px 5px; + -webkit-border-radius: 0 0 5px 5px; + border-radius: 0 0 5px 5px; +} +.tabs-header-bottom .tabs-tool { + top: 0; +} +.tabs-header-bottom .tabs-scroller-left, +.tabs-header-bottom .tabs-scroller-right { + top: 0; + bottom: auto; +} +.tabs-panels-top { + border-width: 1px 1px 0 1px; +} +.tabs-header-left { + float: left; + border-width: 1px 0 1px 1px; + padding: 0; +} +.tabs-header-right { + float: right; + border-width: 1px 1px 1px 0; + padding: 0; +} +.tabs-header-left .tabs-wrap, +.tabs-header-right .tabs-wrap { + height: 100%; +} +.tabs-header-left .tabs { + height: 100%; + padding: 4px 0 0 4px; + border-width: 0 1px 0 0; +} +.tabs-header-right .tabs { + height: 100%; + padding: 4px 4px 0 0; + border-width: 0 0 0 1px; +} +.tabs-header-left .tabs li, +.tabs-header-right .tabs li { + display: block; + width: 100%; + position: relative; +} +.tabs-header-left .tabs li { + left: auto; + right: 0; + margin: 0 -1px 4px 0; + float: right; +} +.tabs-header-right .tabs li { + left: 0; + right: auto; + margin: 0 0 4px -1px; + float: left; +} +.tabs-header-left .tabs li a.tabs-inner { + display: block; + text-align: left; + -moz-border-radius: 5px 0 0 5px; + -webkit-border-radius: 5px 0 0 5px; + border-radius: 5px 0 0 5px; +} +.tabs-header-right .tabs li a.tabs-inner { + display: block; + text-align: left; + -moz-border-radius: 0 5px 5px 0; + -webkit-border-radius: 0 5px 5px 0; + border-radius: 0 5px 5px 0; +} +.tabs-panels-right { + float: right; + border-width: 1px 1px 1px 0; +} +.tabs-panels-left { + float: left; + border-width: 1px 0 1px 1px; +} +.tabs-header-noborder, +.tabs-panels-noborder { + border: 0px; +} +.tabs-header-plain { + border: 0px; + background: transparent; +} +.tabs-scroller-left { + background: #3d3d3d url('images/tabs_icons.png') no-repeat 1px center; +} +.tabs-scroller-right { + background: #3d3d3d url('images/tabs_icons.png') no-repeat -15px center; +} +.tabs li a.tabs-close { + background: url('images/tabs_icons.png') no-repeat -34px center; +} +.tabs li a.tabs-inner:hover { + background: #777; + color: #fff; + filter: none; +} +.tabs li.tabs-selected a.tabs-inner { + background-color: #666; + color: #fff; + background: -webkit-linear-gradient(top,#454545 0,#666 100%); + background: -moz-linear-gradient(top,#454545 0,#666 100%); + background: -o-linear-gradient(top,#454545 0,#666 100%); + background: linear-gradient(to bottom,#454545 0,#666 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#454545,endColorstr=#666,GradientType=0); +} +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner { + background: -webkit-linear-gradient(top,#666 0,#454545 100%); + background: -moz-linear-gradient(top,#666 0,#454545 100%); + background: -o-linear-gradient(top,#666 0,#454545 100%); + background: linear-gradient(to bottom,#666 0,#454545 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#666,endColorstr=#454545,GradientType=0); +} +.tabs-header-left .tabs li.tabs-selected a.tabs-inner { + background: -webkit-linear-gradient(left,#454545 0,#666 100%); + background: -moz-linear-gradient(left,#454545 0,#666 100%); + background: -o-linear-gradient(left,#454545 0,#666 100%); + background: linear-gradient(to right,#454545 0,#666 100%); + background-repeat: repeat-y; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#454545,endColorstr=#666,GradientType=1); +} +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + background: -webkit-linear-gradient(left,#666 0,#454545 100%); + background: -moz-linear-gradient(left,#666 0,#454545 100%); + background: -o-linear-gradient(left,#666 0,#454545 100%); + background: linear-gradient(to right,#666 0,#454545 100%); + background-repeat: repeat-y; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#666,endColorstr=#454545,GradientType=1); +} +.tabs li a.tabs-inner { + color: #fff; + background-color: #3d3d3d; + background: -webkit-linear-gradient(top,#454545 0,#383838 100%); + background: -moz-linear-gradient(top,#454545 0,#383838 100%); + background: -o-linear-gradient(top,#454545 0,#383838 100%); + background: linear-gradient(to bottom,#454545 0,#383838 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#454545,endColorstr=#383838,GradientType=0); +} +.tabs-header, +.tabs-tool { + background-color: #3d3d3d; +} +.tabs-header-plain { + background: transparent; +} +.tabs-header, +.tabs-scroller-left, +.tabs-scroller-right, +.tabs-tool, +.tabs, +.tabs-panels, +.tabs li a.tabs-inner, +.tabs li.tabs-selected a.tabs-inner, +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner, +.tabs-header-left .tabs li.tabs-selected a.tabs-inner, +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + border-color: #000; +} +.tabs-p-tool a:hover, +.tabs li a:hover.tabs-close, +.tabs-scroller-over { + background-color: #777; +} +.tabs li.tabs-selected a.tabs-inner { + border-bottom: 1px solid #666; +} +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner { + border-top: 1px solid #666; +} +.tabs-header-left .tabs li.tabs-selected a.tabs-inner { + border-right: 1px solid #666; +} +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + border-left: 1px solid #666; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/black/tooltip.css b/src/main/webapp/js/easyui-1.3.5/themes/black/tooltip.css new file mode 100644 index 00000000..8dfbfed6 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/black/tooltip.css @@ -0,0 +1,100 @@ +.tooltip { + position: absolute; + display: none; + z-index: 9900000; + outline: none; + opacity: 1; + filter: alpha(opacity=100); + padding: 5px; + border-width: 1px; + border-style: solid; + border-radius: 5px; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.tooltip-content { + font-size: 12px; +} +.tooltip-arrow-outer, +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + line-height: 0; + font-size: 0; + border-style: solid; + border-width: 6px; + border-color: transparent; + _border-color: tomato; + _filter: chroma(color=tomato); +} +.tooltip-right .tooltip-arrow-outer { + left: 0; + top: 50%; + margin: -6px 0 0 -13px; +} +.tooltip-right .tooltip-arrow { + left: 0; + top: 50%; + margin: -6px 0 0 -12px; +} +.tooltip-left .tooltip-arrow-outer { + right: 0; + top: 50%; + margin: -6px -13px 0 0; +} +.tooltip-left .tooltip-arrow { + right: 0; + top: 50%; + margin: -6px -12px 0 0; +} +.tooltip-top .tooltip-arrow-outer { + bottom: 0; + left: 50%; + margin: 0 0 -13px -6px; +} +.tooltip-top .tooltip-arrow { + bottom: 0; + left: 50%; + margin: 0 0 -12px -6px; +} +.tooltip-bottom .tooltip-arrow-outer { + top: 0; + left: 50%; + margin: -13px 0 0 -6px; +} +.tooltip-bottom .tooltip-arrow { + top: 0; + left: 50%; + margin: -12px 0 0 -6px; +} +.tooltip { + background-color: #666; + border-color: #000; + color: #fff; +} +.tooltip-right .tooltip-arrow-outer { + border-right-color: #000; +} +.tooltip-right .tooltip-arrow { + border-right-color: #666; +} +.tooltip-left .tooltip-arrow-outer { + border-left-color: #000; +} +.tooltip-left .tooltip-arrow { + border-left-color: #666; +} +.tooltip-top .tooltip-arrow-outer { + border-top-color: #000; +} +.tooltip-top .tooltip-arrow { + border-top-color: #666; +} +.tooltip-bottom .tooltip-arrow-outer { + border-bottom-color: #000; +} +.tooltip-bottom .tooltip-arrow { + border-bottom-color: #666; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/black/tree.css b/src/main/webapp/js/easyui-1.3.5/themes/black/tree.css new file mode 100644 index 00000000..ea955cb3 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/black/tree.css @@ -0,0 +1,157 @@ +.tree { + margin: 0; + padding: 0; + list-style-type: none; +} +.tree li { + white-space: nowrap; +} +.tree li ul { + list-style-type: none; + margin: 0; + padding: 0; +} +.tree-node { + height: 18px; + white-space: nowrap; + cursor: pointer; +} +.tree-hit { + cursor: pointer; +} +.tree-expanded, +.tree-collapsed, +.tree-folder, +.tree-file, +.tree-checkbox, +.tree-indent { + display: inline-block; + width: 16px; + height: 18px; + vertical-align: top; + overflow: hidden; +} +.tree-expanded { + background: url('images/tree_icons.png') no-repeat -18px 0px; +} +.tree-expanded-hover { + background: url('images/tree_icons.png') no-repeat -50px 0px; +} +.tree-collapsed { + background: url('images/tree_icons.png') no-repeat 0px 0px; +} +.tree-collapsed-hover { + background: url('images/tree_icons.png') no-repeat -32px 0px; +} +.tree-lines .tree-expanded, +.tree-lines .tree-root-first .tree-expanded { + background: url('images/tree_icons.png') no-repeat -144px 0; +} +.tree-lines .tree-collapsed, +.tree-lines .tree-root-first .tree-collapsed { + background: url('images/tree_icons.png') no-repeat -128px 0; +} +.tree-lines .tree-node-last .tree-expanded, +.tree-lines .tree-root-one .tree-expanded { + background: url('images/tree_icons.png') no-repeat -80px 0; +} +.tree-lines .tree-node-last .tree-collapsed, +.tree-lines .tree-root-one .tree-collapsed { + background: url('images/tree_icons.png') no-repeat -64px 0; +} +.tree-line { + background: url('images/tree_icons.png') no-repeat -176px 0; +} +.tree-join { + background: url('images/tree_icons.png') no-repeat -192px 0; +} +.tree-joinbottom { + background: url('images/tree_icons.png') no-repeat -160px 0; +} +.tree-folder { + background: url('images/tree_icons.png') no-repeat -208px 0; +} +.tree-folder-open { + background: url('images/tree_icons.png') no-repeat -224px 0; +} +.tree-file { + background: url('images/tree_icons.png') no-repeat -240px 0; +} +.tree-loading { + background: url('images/loading.gif') no-repeat center center; +} +.tree-checkbox0 { + background: url('images/tree_icons.png') no-repeat -208px -18px; +} +.tree-checkbox1 { + background: url('images/tree_icons.png') no-repeat -224px -18px; +} +.tree-checkbox2 { + background: url('images/tree_icons.png') no-repeat -240px -18px; +} +.tree-title { + font-size: 12px; + display: inline-block; + text-decoration: none; + vertical-align: top; + white-space: nowrap; + padding: 0 2px; + height: 18px; + line-height: 18px; +} +.tree-node-proxy { + font-size: 12px; + line-height: 20px; + padding: 0 2px 0 20px; + border-width: 1px; + border-style: solid; + z-index: 9900000; +} +.tree-dnd-icon { + display: inline-block; + position: absolute; + width: 16px; + height: 18px; + left: 2px; + top: 50%; + margin-top: -9px; +} +.tree-dnd-yes { + background: url('images/tree_icons.png') no-repeat -256px 0; +} +.tree-dnd-no { + background: url('images/tree_icons.png') no-repeat -256px -18px; +} +.tree-node-top { + border-top: 1px dotted red; +} +.tree-node-bottom { + border-bottom: 1px dotted red; +} +.tree-node-append .tree-title { + border: 1px dotted red; +} +.tree-editor { + border: 1px solid #ccc; + font-size: 12px; + height: 14px !important; + height: 18px; + line-height: 14px; + padding: 1px 2px; + width: 80px; + position: absolute; + top: 0; +} +.tree-node-proxy { + background-color: #666; + color: #fff; + border-color: #000; +} +.tree-node-hover { + background: #777; + color: #fff; +} +.tree-node-selected { + background: #0052A3; + color: #fff; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/black/validatebox.css b/src/main/webapp/js/easyui-1.3.5/themes/black/validatebox.css new file mode 100644 index 00000000..154da758 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/black/validatebox.css @@ -0,0 +1,8 @@ +.validatebox-invalid { + background-image: url('images/validatebox_warning.png'); + background-repeat: no-repeat; + background-position: right center; + border-color: #ffa8a8; + background-color: #fff3f3; + color: #000; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/black/window.css b/src/main/webapp/js/easyui-1.3.5/themes/black/window.css new file mode 100644 index 00000000..12772738 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/black/window.css @@ -0,0 +1,87 @@ +.window { + overflow: hidden; + padding: 5px; + border-width: 1px; + border-style: solid; +} +.window .window-header { + background: transparent; + padding: 0px 0px 6px 0px; +} +.window .window-body { + border-width: 1px; + border-style: solid; + border-top-width: 0px; +} +.window .window-body-noheader { + border-top-width: 1px; +} +.window .window-header .panel-icon, +.window .window-header .panel-tool { + top: 50%; + margin-top: -11px; +} +.window .window-header .panel-icon { + left: 1px; +} +.window .window-header .panel-tool { + right: 1px; +} +.window .window-header .panel-with-icon { + padding-left: 18px; +} +.window-proxy { + position: absolute; + overflow: hidden; +} +.window-proxy-mask { + position: absolute; + filter: alpha(opacity=5); + opacity: 0.05; +} +.window-mask { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + filter: alpha(opacity=40); + opacity: 0.40; + font-size: 1px; + *zoom: 1; + overflow: hidden; +} +.window, +.window-shadow { + position: absolute; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.window-shadow { + background: #777; + -moz-box-shadow: 2px 2px 3px #787878; + -webkit-box-shadow: 2px 2px 3px #787878; + box-shadow: 2px 2px 3px #787878; + filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2); +} +.window, +.window .window-body { + border-color: #000; +} +.window { + background-color: #3d3d3d; + background: -webkit-linear-gradient(top,#454545 0,#383838 20%); + background: -moz-linear-gradient(top,#454545 0,#383838 20%); + background: -o-linear-gradient(top,#454545 0,#383838 20%); + background: linear-gradient(to bottom,#454545 0,#383838 20%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#454545,endColorstr=#383838,GradientType=0); +} +.window-proxy { + border: 1px dashed #000; +} +.window-proxy-mask, +.window-mask { + background: #000; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/accordion.css b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/accordion.css new file mode 100644 index 00000000..26db0fa7 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/accordion.css @@ -0,0 +1,41 @@ +.accordion { + overflow: hidden; + border-width: 1px; + border-style: solid; +} +.accordion .accordion-header { + border-width: 0 0 1px; + cursor: pointer; +} +.accordion .accordion-body { + border-width: 0 0 1px; +} +.accordion-noborder { + border-width: 0; +} +.accordion-noborder .accordion-header { + border-width: 0 0 1px; +} +.accordion-noborder .accordion-body { + border-width: 0 0 1px; +} +.accordion-collapse { + background: url('images/accordion_arrows.png') no-repeat 0 0; +} +.accordion-expand { + background: url('images/accordion_arrows.png') no-repeat -16px 0; +} +.accordion { + background: #ffffff; + border-color: #D4D4D4; +} +.accordion .accordion-header { + background: #F2F2F2; + filter: none; +} +.accordion .accordion-header-selected { + background: #0081c2; +} +.accordion .accordion-header-selected .panel-title { + color: #fff; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/calendar.css b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/calendar.css new file mode 100644 index 00000000..147d4e98 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/calendar.css @@ -0,0 +1,190 @@ +.calendar { + border-width: 1px; + border-style: solid; + padding: 1px; + overflow: hidden; +} +.calendar table { + border-collapse: separate; + font-size: 12px; + width: 100%; + height: 100%; +} +.calendar table td, +.calendar table th { + font-size: 12px; +} +.calendar-noborder { + border: 0; +} +.calendar-header { + position: relative; + height: 22px; +} +.calendar-title { + text-align: center; + height: 22px; +} +.calendar-title span { + position: relative; + display: inline-block; + top: 2px; + padding: 0 3px; + height: 18px; + line-height: 18px; + font-size: 12px; + cursor: pointer; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-prevmonth, +.calendar-nextmonth, +.calendar-prevyear, +.calendar-nextyear { + position: absolute; + top: 50%; + margin-top: -7px; + width: 14px; + height: 14px; + cursor: pointer; + font-size: 1px; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-prevmonth { + left: 20px; + background: url('images/calendar_arrows.png') no-repeat -18px -2px; +} +.calendar-nextmonth { + right: 20px; + background: url('images/calendar_arrows.png') no-repeat -34px -2px; +} +.calendar-prevyear { + left: 3px; + background: url('images/calendar_arrows.png') no-repeat -1px -2px; +} +.calendar-nextyear { + right: 3px; + background: url('images/calendar_arrows.png') no-repeat -49px -2px; +} +.calendar-body { + position: relative; +} +.calendar-body th, +.calendar-body td { + text-align: center; +} +.calendar-day { + border: 0; + padding: 1px; + cursor: pointer; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-other-month { + opacity: 0.3; + filter: alpha(opacity=30); +} +.calendar-menu { + position: absolute; + top: 0; + left: 0; + width: 180px; + height: 150px; + padding: 5px; + font-size: 12px; + display: none; + overflow: hidden; +} +.calendar-menu-year-inner { + text-align: center; + padding-bottom: 5px; +} +.calendar-menu-year { + width: 40px; + text-align: center; + border-width: 1px; + border-style: solid; + margin: 0; + padding: 2px; + font-weight: bold; + font-size: 12px; +} +.calendar-menu-prev, +.calendar-menu-next { + display: inline-block; + width: 21px; + height: 21px; + vertical-align: top; + cursor: pointer; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-menu-prev { + margin-right: 10px; + background: url('images/calendar_arrows.png') no-repeat 2px 2px; +} +.calendar-menu-next { + margin-left: 10px; + background: url('images/calendar_arrows.png') no-repeat -45px 2px; +} +.calendar-menu-month { + text-align: center; + cursor: pointer; + font-weight: bold; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-body th, +.calendar-menu-month { + color: #808080; +} +.calendar-day { + color: #333; +} +.calendar-sunday { + color: #CC2222; +} +.calendar-saturday { + color: #00ee00; +} +.calendar-today { + color: #0000ff; +} +.calendar-menu-year { + border-color: #D4D4D4; +} +.calendar { + border-color: #D4D4D4; +} +.calendar-header { + background: #F2F2F2; +} +.calendar-body, +.calendar-menu { + background: #ffffff; +} +.calendar-body th { + background: #F5F5F5; +} +.calendar-hover, +.calendar-nav-hover, +.calendar-menu-hover { + background-color: #e6e6e6; + color: #00438a; +} +.calendar-hover { + border: 1px solid #ddd; + padding: 0; +} +.calendar-selected { + background-color: #0081c2; + color: #fff; + border: 1px solid #0070a9; + padding: 0; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/combo.css b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/combo.css new file mode 100644 index 00000000..9ad6756c --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/combo.css @@ -0,0 +1,58 @@ +.combo { + display: inline-block; + white-space: nowrap; + margin: 0; + padding: 0; + border-width: 1px; + border-style: solid; + overflow: hidden; + vertical-align: middle; +} +.combo .combo-text { + font-size: 12px; + border: 0px; + line-height: 20px; + height: 20px; + margin: 0; + padding: 0px 2px; + *margin-top: -1px; + *height: 18px; + *line-height: 18px; + _height: 18px; + _line-height: 18px; + vertical-align: baseline; +} +.combo-arrow { + width: 18px; + height: 20px; + overflow: hidden; + display: inline-block; + vertical-align: top; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.combo-arrow-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.combo-panel { + overflow: auto; +} +.combo-arrow { + background: url('images/combo_arrow.png') no-repeat center center; +} +.combo, +.combo-panel { + background-color: #ffffff; +} +.combo { + border-color: #D4D4D4; + background-color: #ffffff; +} +.combo-arrow { + background-color: #F2F2F2; +} +.combo-arrow-hover { + background-color: #e6e6e6; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/combobox.css b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/combobox.css new file mode 100644 index 00000000..82abe630 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/combobox.css @@ -0,0 +1,24 @@ +.combobox-item, +.combobox-group { + font-size: 12px; + padding: 3px; + padding-right: 0px; +} +.combobox-item-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.combobox-gitem { + padding-left: 10px; +} +.combobox-group { + font-weight: bold; +} +.combobox-item-hover { + background-color: #e6e6e6; + color: #00438a; +} +.combobox-item-selected { + background-color: #0081c2; + color: #fff; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/datagrid.css b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/datagrid.css new file mode 100644 index 00000000..3f27b48d --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/datagrid.css @@ -0,0 +1,260 @@ +.datagrid .panel-body { + overflow: hidden; + position: relative; +} +.datagrid-view { + position: relative; + overflow: hidden; +} +.datagrid-view1, +.datagrid-view2 { + position: absolute; + overflow: hidden; + top: 0; +} +.datagrid-view1 { + left: 0; +} +.datagrid-view2 { + right: 0; +} +.datagrid-mask { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + opacity: 0.3; + filter: alpha(opacity=30); + display: none; +} +.datagrid-mask-msg { + position: absolute; + top: 50%; + margin-top: -20px; + padding: 12px 5px 10px 30px; + width: auto; + height: 16px; + border-width: 2px; + border-style: solid; + display: none; +} +.datagrid-sort-icon { + padding: 0; +} +.datagrid-toolbar { + height: auto; + padding: 1px 2px; + border-width: 0 0 1px 0; + border-style: solid; +} +.datagrid-btn-separator { + float: left; + height: 24px; + border-left: 1px solid #ccc; + border-right: 1px solid #fff; + margin: 2px 1px; +} +.datagrid .datagrid-pager { + display: block; + margin: 0; + border-width: 1px 0 0 0; + border-style: solid; +} +.datagrid .datagrid-pager-top { + border-width: 0 0 1px 0; +} +.datagrid-header { + overflow: hidden; + cursor: default; + border-width: 0 0 1px 0; + border-style: solid; +} +.datagrid-header-inner { + float: left; + width: 10000px; +} +.datagrid-header-row, +.datagrid-row { + height: 25px; +} +.datagrid-header td, +.datagrid-body td, +.datagrid-footer td { + border-width: 0 1px 1px 0; + border-style: dotted; + margin: 0; + padding: 0; +} +.datagrid-cell, +.datagrid-cell-group, +.datagrid-header-rownumber, +.datagrid-cell-rownumber { + margin: 0; + padding: 0 4px; + white-space: nowrap; + word-wrap: normal; + overflow: hidden; + height: 18px; + line-height: 18px; + font-size: 12px; +} +.datagrid-header .datagrid-cell { + height: auto; +} +.datagrid-header .datagrid-cell span { + font-size: 12px; +} +.datagrid-cell-group { + text-align: center; +} +.datagrid-header-rownumber, +.datagrid-cell-rownumber { + width: 25px; + text-align: center; + margin: 0; + padding: 0; +} +.datagrid-body { + margin: 0; + padding: 0; + overflow: auto; + zoom: 1; +} +.datagrid-view1 .datagrid-body-inner { + padding-bottom: 20px; +} +.datagrid-view1 .datagrid-body { + overflow: hidden; +} +.datagrid-footer { + overflow: hidden; +} +.datagrid-footer-inner { + border-width: 1px 0 0 0; + border-style: solid; + width: 10000px; + float: left; +} +.datagrid-row-editing .datagrid-cell { + height: auto; +} +.datagrid-header-check, +.datagrid-cell-check { + padding: 0; + width: 27px; + height: 18px; + font-size: 1px; + text-align: center; + overflow: hidden; +} +.datagrid-header-check input, +.datagrid-cell-check input { + margin: 0; + padding: 0; + width: 15px; + height: 18px; +} +.datagrid-resize-proxy { + position: absolute; + width: 1px; + height: 10000px; + top: 0; + cursor: e-resize; + display: none; +} +.datagrid-body .datagrid-editable { + margin: 0; + padding: 0; +} +.datagrid-body .datagrid-editable table { + width: 100%; + height: 100%; +} +.datagrid-body .datagrid-editable td { + border: 0; + margin: 0; + padding: 0; +} +.datagrid-body .datagrid-editable .datagrid-editable-input { + margin: 0; + padding: 2px; + border-width: 1px; + border-style: solid; +} +.datagrid-sort-desc .datagrid-sort-icon { + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat -16px center; +} +.datagrid-sort-asc .datagrid-sort-icon { + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat 0px center; +} +.datagrid-row-collapse { + background: url('images/datagrid_icons.png') no-repeat -48px center; +} +.datagrid-row-expand { + background: url('images/datagrid_icons.png') no-repeat -32px center; +} +.datagrid-mask-msg { + background: #ffffff url('images/loading.gif') no-repeat scroll 5px center; +} +.datagrid-header, +.datagrid-td-rownumber { + background-color: #F2F2F2; + background: -webkit-linear-gradient(top,#ffffff 0,#F2F2F2 100%); + background: -moz-linear-gradient(top,#ffffff 0,#F2F2F2 100%); + background: -o-linear-gradient(top,#ffffff 0,#F2F2F2 100%); + background: linear-gradient(to bottom,#ffffff 0,#F2F2F2 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#F2F2F2,GradientType=0); +} +.datagrid-cell-rownumber { + color: #333; +} +.datagrid-resize-proxy { + background: #bbb; +} +.datagrid-mask { + background: #ccc; +} +.datagrid-mask-msg { + border-color: #D4D4D4; +} +.datagrid-toolbar, +.datagrid-pager { + background: #F5F5F5; +} +.datagrid-header, +.datagrid-toolbar, +.datagrid-pager, +.datagrid-footer-inner { + border-color: #e6e6e6; +} +.datagrid-header td, +.datagrid-body td, +.datagrid-footer td { + border-color: #ccc; +} +.datagrid-htable, +.datagrid-btable, +.datagrid-ftable { + color: #333; + border-collapse: separate; +} +.datagrid-row-alt { + background: #F5F5F5; +} +.datagrid-row-over, +.datagrid-header td.datagrid-header-over { + background: #e6e6e6; + color: #00438a; + cursor: default; +} +.datagrid-row-selected { + background: #0081c2; + color: #fff; +} +.datagrid-body .datagrid-editable .datagrid-editable-input { + border-color: #D4D4D4; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/datebox.css b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/datebox.css new file mode 100644 index 00000000..b9d2bcb8 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/datebox.css @@ -0,0 +1,36 @@ +.datebox-calendar-inner { + height: 180px; +} +.datebox-button { + height: 18px; + padding: 2px 5px; + text-align: center; +} +.datebox-button a { + font-size: 12px; + font-weight: bold; + text-decoration: none; + opacity: 0.6; + filter: alpha(opacity=60); +} +.datebox-button a:hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.datebox-current, +.datebox-close { + float: left; +} +.datebox-close { + float: right; +} +.datebox .combo-arrow { + background-image: url('images/datebox_arrow.png'); + background-position: center center; +} +.datebox-button { + background-color: #F5F5F5; +} +.datebox-button a { + color: #444; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/dialog.css b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/dialog.css new file mode 100644 index 00000000..304044e3 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/dialog.css @@ -0,0 +1,30 @@ +.dialog-content { + overflow: auto; +} +.dialog-toolbar { + padding: 2px 5px; +} +.dialog-tool-separator { + float: left; + height: 24px; + border-left: 1px solid #ccc; + border-right: 1px solid #fff; + margin: 2px 1px; +} +.dialog-button { + padding: 5px; + text-align: right; +} +.dialog-button .l-btn { + margin-left: 5px; +} +.dialog-toolbar, +.dialog-button { + background: #F5F5F5; +} +.dialog-toolbar { + border-bottom: 1px solid #e6e6e6; +} +.dialog-button { + border-top: 1px solid #e6e6e6; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/easyui.css b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/easyui.css new file mode 100644 index 00000000..8f770f6c --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/easyui.css @@ -0,0 +1,2341 @@ +.panel { + overflow: hidden; + text-align: left; + margin: 0; + border: 0; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.panel-header, +.panel-body { + border-width: 1px; + border-style: solid; +} +.panel-header { + padding: 5px; + position: relative; +} +.panel-title { + background: url('images/blank.gif') no-repeat; +} +.panel-header-noborder { + border-width: 0 0 1px 0; +} +.panel-body { + overflow: auto; + border-top-width: 0; + padding: 0; +} +.panel-body-noheader { + border-top-width: 1px; +} +.panel-body-noborder { + border-width: 0px; +} +.panel-with-icon { + padding-left: 18px; +} +.panel-icon, +.panel-tool { + position: absolute; + top: 50%; + margin-top: -8px; + height: 16px; + overflow: hidden; +} +.panel-icon { + left: 5px; + width: 16px; +} +.panel-tool { + right: 5px; + width: auto; +} +.panel-tool a { + display: inline-block; + width: 16px; + height: 16px; + opacity: 0.6; + filter: alpha(opacity=60); + margin: 0 0 0 2px; + vertical-align: top; +} +.panel-tool a:hover { + opacity: 1; + filter: alpha(opacity=100); + background-color: #e6e6e6; + -moz-border-radius: 3px 3px 3px 3px; + -webkit-border-radius: 3px 3px 3px 3px; + border-radius: 3px 3px 3px 3px; +} +.panel-loading { + padding: 11px 0px 10px 30px; +} +.panel-noscroll { + overflow: hidden; +} +.panel-fit, +.panel-fit body { + height: 100%; + margin: 0; + padding: 0; + border: 0; + overflow: hidden; +} +.panel-loading { + background: url('images/loading.gif') no-repeat 10px 10px; +} +.panel-tool-close { + background: url('images/panel_tools.png') no-repeat -16px 0px; +} +.panel-tool-min { + background: url('images/panel_tools.png') no-repeat 0px 0px; +} +.panel-tool-max { + background: url('images/panel_tools.png') no-repeat 0px -16px; +} +.panel-tool-restore { + background: url('images/panel_tools.png') no-repeat -16px -16px; +} +.panel-tool-collapse { + background: url('images/panel_tools.png') no-repeat -32px 0; +} +.panel-tool-expand { + background: url('images/panel_tools.png') no-repeat -32px -16px; +} +.panel-header, +.panel-body { + border-color: #D4D4D4; +} +.panel-header { + background-color: #F2F2F2; + background: -webkit-linear-gradient(top,#ffffff 0,#F2F2F2 100%); + background: -moz-linear-gradient(top,#ffffff 0,#F2F2F2 100%); + background: -o-linear-gradient(top,#ffffff 0,#F2F2F2 100%); + background: linear-gradient(to bottom,#ffffff 0,#F2F2F2 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#F2F2F2,GradientType=0); +} +.panel-body { + background-color: #ffffff; + color: #333; + font-size: 12px; +} +.panel-title { + font-size: 12px; + font-weight: bold; + color: #777; + height: 16px; + line-height: 16px; +} +.accordion { + overflow: hidden; + border-width: 1px; + border-style: solid; +} +.accordion .accordion-header { + border-width: 0 0 1px; + cursor: pointer; +} +.accordion .accordion-body { + border-width: 0 0 1px; +} +.accordion-noborder { + border-width: 0; +} +.accordion-noborder .accordion-header { + border-width: 0 0 1px; +} +.accordion-noborder .accordion-body { + border-width: 0 0 1px; +} +.accordion-collapse { + background: url('images/accordion_arrows.png') no-repeat 0 0; +} +.accordion-expand { + background: url('images/accordion_arrows.png') no-repeat -16px 0; +} +.accordion { + background: #ffffff; + border-color: #D4D4D4; +} +.accordion .accordion-header { + background: #F2F2F2; + filter: none; +} +.accordion .accordion-header-selected { + background: #0081c2; +} +.accordion .accordion-header-selected .panel-title { + color: #fff; +} +.window { + overflow: hidden; + padding: 5px; + border-width: 1px; + border-style: solid; +} +.window .window-header { + background: transparent; + padding: 0px 0px 6px 0px; +} +.window .window-body { + border-width: 1px; + border-style: solid; + border-top-width: 0px; +} +.window .window-body-noheader { + border-top-width: 1px; +} +.window .window-header .panel-icon, +.window .window-header .panel-tool { + top: 50%; + margin-top: -11px; +} +.window .window-header .panel-icon { + left: 1px; +} +.window .window-header .panel-tool { + right: 1px; +} +.window .window-header .panel-with-icon { + padding-left: 18px; +} +.window-proxy { + position: absolute; + overflow: hidden; +} +.window-proxy-mask { + position: absolute; + filter: alpha(opacity=5); + opacity: 0.05; +} +.window-mask { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + filter: alpha(opacity=40); + opacity: 0.40; + font-size: 1px; + *zoom: 1; + overflow: hidden; +} +.window, +.window-shadow { + position: absolute; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.window-shadow { + background: #ccc; + -moz-box-shadow: 2px 2px 3px #cccccc; + -webkit-box-shadow: 2px 2px 3px #cccccc; + box-shadow: 2px 2px 3px #cccccc; + filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2); +} +.window, +.window .window-body { + border-color: #D4D4D4; +} +.window { + background-color: #F2F2F2; + background: -webkit-linear-gradient(top,#ffffff 0,#F2F2F2 20%); + background: -moz-linear-gradient(top,#ffffff 0,#F2F2F2 20%); + background: -o-linear-gradient(top,#ffffff 0,#F2F2F2 20%); + background: linear-gradient(to bottom,#ffffff 0,#F2F2F2 20%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#F2F2F2,GradientType=0); +} +.window-proxy { + border: 1px dashed #D4D4D4; +} +.window-proxy-mask, +.window-mask { + background: #ccc; +} +.dialog-content { + overflow: auto; +} +.dialog-toolbar { + padding: 2px 5px; +} +.dialog-tool-separator { + float: left; + height: 24px; + border-left: 1px solid #ccc; + border-right: 1px solid #fff; + margin: 2px 1px; +} +.dialog-button { + padding: 5px; + text-align: right; +} +.dialog-button .l-btn { + margin-left: 5px; +} +.dialog-toolbar, +.dialog-button { + background: #F5F5F5; +} +.dialog-toolbar { + border-bottom: 1px solid #e6e6e6; +} +.dialog-button { + border-top: 1px solid #e6e6e6; +} +.combo { + display: inline-block; + white-space: nowrap; + margin: 0; + padding: 0; + border-width: 1px; + border-style: solid; + overflow: hidden; + vertical-align: middle; +} +.combo .combo-text { + font-size: 12px; + border: 0px; + line-height: 20px; + height: 20px; + margin: 0; + padding: 0px 2px; + *margin-top: -1px; + *height: 18px; + *line-height: 18px; + _height: 18px; + _line-height: 18px; + vertical-align: baseline; +} +.combo-arrow { + width: 18px; + height: 20px; + overflow: hidden; + display: inline-block; + vertical-align: top; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.combo-arrow-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.combo-panel { + overflow: auto; +} +.combo-arrow { + background: url('images/combo_arrow.png') no-repeat center center; +} +.combo, +.combo-panel { + background-color: #ffffff; +} +.combo { + border-color: #D4D4D4; + background-color: #ffffff; +} +.combo-arrow { + background-color: #F2F2F2; +} +.combo-arrow-hover { + background-color: #e6e6e6; +} +.combobox-item, +.combobox-group { + font-size: 12px; + padding: 3px; + padding-right: 0px; +} +.combobox-item-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.combobox-gitem { + padding-left: 10px; +} +.combobox-group { + font-weight: bold; +} +.combobox-item-hover { + background-color: #e6e6e6; + color: #00438a; +} +.combobox-item-selected { + background-color: #0081c2; + color: #fff; +} +.layout { + position: relative; + overflow: hidden; + margin: 0; + padding: 0; + z-index: 0; +} +.layout-panel { + position: absolute; + overflow: hidden; +} +.layout-panel-east, +.layout-panel-west { + z-index: 2; +} +.layout-panel-north, +.layout-panel-south { + z-index: 3; +} +.layout-expand { + position: absolute; + padding: 0px; + font-size: 1px; + cursor: pointer; + z-index: 1; +} +.layout-expand .panel-header, +.layout-expand .panel-body { + background: transparent; + filter: none; + overflow: hidden; +} +.layout-expand .panel-header { + border-bottom-width: 0px; +} +.layout-split-proxy-h, +.layout-split-proxy-v { + position: absolute; + font-size: 1px; + display: none; + z-index: 5; +} +.layout-split-proxy-h { + width: 5px; + cursor: e-resize; +} +.layout-split-proxy-v { + height: 5px; + cursor: n-resize; +} +.layout-mask { + position: absolute; + background: #fafafa; + filter: alpha(opacity=10); + opacity: 0.10; + z-index: 4; +} +.layout-button-up { + background: url('images/layout_arrows.png') no-repeat -16px -16px; +} +.layout-button-down { + background: url('images/layout_arrows.png') no-repeat -16px 0; +} +.layout-button-left { + background: url('images/layout_arrows.png') no-repeat 0 0; +} +.layout-button-right { + background: url('images/layout_arrows.png') no-repeat 0 -16px; +} +.layout-split-proxy-h, +.layout-split-proxy-v { + background-color: #bbb; +} +.layout-split-north { + border-bottom: 5px solid #eee; +} +.layout-split-south { + border-top: 5px solid #eee; +} +.layout-split-east { + border-left: 5px solid #eee; +} +.layout-split-west { + border-right: 5px solid #eee; +} +.layout-expand { + background-color: #F2F2F2; +} +.layout-expand-over { + background-color: #F2F2F2; +} +.tabs-container { + overflow: hidden; +} +.tabs-header { + border-width: 1px; + border-style: solid; + border-bottom-width: 0; + position: relative; + padding: 0; + padding-top: 2px; + overflow: hidden; +} +.tabs-header-plain { + border: 0; + background: transparent; +} +.tabs-scroller-left, +.tabs-scroller-right { + position: absolute; + top: auto; + bottom: 0; + width: 18px; + font-size: 1px; + display: none; + cursor: pointer; + border-width: 1px; + border-style: solid; +} +.tabs-scroller-left { + left: 0; +} +.tabs-scroller-right { + right: 0; +} +.tabs-tool { + position: absolute; + bottom: 0; + padding: 1px; + overflow: hidden; + border-width: 1px; + border-style: solid; +} +.tabs-header-plain .tabs-tool { + padding: 0 1px; +} +.tabs-wrap { + position: relative; + left: 0; + overflow: hidden; + width: 100%; + margin: 0; + padding: 0; +} +.tabs-scrolling { + margin-left: 18px; + margin-right: 18px; +} +.tabs-disabled { + opacity: 0.3; + filter: alpha(opacity=30); +} +.tabs { + list-style-type: none; + height: 26px; + margin: 0px; + padding: 0px; + padding-left: 4px; + width: 5000px; + border-style: solid; + border-width: 0 0 1px 0; +} +.tabs li { + float: left; + display: inline-block; + margin: 0 4px -1px 0; + padding: 0; + position: relative; + border: 0; +} +.tabs li a.tabs-inner { + display: inline-block; + text-decoration: none; + margin: 0; + padding: 0 10px; + height: 25px; + line-height: 25px; + text-align: center; + white-space: nowrap; + border-width: 1px; + border-style: solid; + -moz-border-radius: 5px 5px 0 0; + -webkit-border-radius: 5px 5px 0 0; + border-radius: 5px 5px 0 0; +} +.tabs li.tabs-selected a.tabs-inner { + font-weight: bold; + outline: none; +} +.tabs li.tabs-selected a:hover.tabs-inner { + cursor: default; + pointer: default; +} +.tabs li a.tabs-close, +.tabs-p-tool { + position: absolute; + font-size: 1px; + display: block; + height: 12px; + padding: 0; + top: 50%; + margin-top: -6px; + overflow: hidden; +} +.tabs li a.tabs-close { + width: 12px; + right: 5px; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tabs-p-tool { + right: 16px; +} +.tabs-p-tool a { + display: inline-block; + font-size: 1px; + width: 12px; + height: 12px; + margin: 0; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tabs li a:hover.tabs-close, +.tabs-p-tool a:hover { + opacity: 1; + filter: alpha(opacity=100); + cursor: hand; + cursor: pointer; +} +.tabs-with-icon { + padding-left: 18px; +} +.tabs-icon { + position: absolute; + width: 16px; + height: 16px; + left: 10px; + top: 50%; + margin-top: -8px; +} +.tabs-title { + font-size: 12px; +} +.tabs-closable { + padding-right: 8px; +} +.tabs-panels { + margin: 0px; + padding: 0px; + border-width: 1px; + border-style: solid; + border-top-width: 0; + overflow: hidden; +} +.tabs-header-bottom { + border-width: 0 1px 1px 1px; + padding: 0 0 2px 0; +} +.tabs-header-bottom .tabs { + border-width: 1px 0 0 0; +} +.tabs-header-bottom .tabs li { + margin: -1px 4px 0 0; +} +.tabs-header-bottom .tabs li a.tabs-inner { + -moz-border-radius: 0 0 5px 5px; + -webkit-border-radius: 0 0 5px 5px; + border-radius: 0 0 5px 5px; +} +.tabs-header-bottom .tabs-tool { + top: 0; +} +.tabs-header-bottom .tabs-scroller-left, +.tabs-header-bottom .tabs-scroller-right { + top: 0; + bottom: auto; +} +.tabs-panels-top { + border-width: 1px 1px 0 1px; +} +.tabs-header-left { + float: left; + border-width: 1px 0 1px 1px; + padding: 0; +} +.tabs-header-right { + float: right; + border-width: 1px 1px 1px 0; + padding: 0; +} +.tabs-header-left .tabs-wrap, +.tabs-header-right .tabs-wrap { + height: 100%; +} +.tabs-header-left .tabs { + height: 100%; + padding: 4px 0 0 4px; + border-width: 0 1px 0 0; +} +.tabs-header-right .tabs { + height: 100%; + padding: 4px 4px 0 0; + border-width: 0 0 0 1px; +} +.tabs-header-left .tabs li, +.tabs-header-right .tabs li { + display: block; + width: 100%; + position: relative; +} +.tabs-header-left .tabs li { + left: auto; + right: 0; + margin: 0 -1px 4px 0; + float: right; +} +.tabs-header-right .tabs li { + left: 0; + right: auto; + margin: 0 0 4px -1px; + float: left; +} +.tabs-header-left .tabs li a.tabs-inner { + display: block; + text-align: left; + -moz-border-radius: 5px 0 0 5px; + -webkit-border-radius: 5px 0 0 5px; + border-radius: 5px 0 0 5px; +} +.tabs-header-right .tabs li a.tabs-inner { + display: block; + text-align: left; + -moz-border-radius: 0 5px 5px 0; + -webkit-border-radius: 0 5px 5px 0; + border-radius: 0 5px 5px 0; +} +.tabs-panels-right { + float: right; + border-width: 1px 1px 1px 0; +} +.tabs-panels-left { + float: left; + border-width: 1px 0 1px 1px; +} +.tabs-header-noborder, +.tabs-panels-noborder { + border: 0px; +} +.tabs-header-plain { + border: 0px; + background: transparent; +} +.tabs-scroller-left { + background: #F2F2F2 url('images/tabs_icons.png') no-repeat 1px center; +} +.tabs-scroller-right { + background: #F2F2F2 url('images/tabs_icons.png') no-repeat -15px center; +} +.tabs li a.tabs-close { + background: url('images/tabs_icons.png') no-repeat -34px center; +} +.tabs li a.tabs-inner:hover { + background: #e6e6e6; + color: #00438a; + filter: none; +} +.tabs li.tabs-selected a.tabs-inner { + background-color: #ffffff; + color: #777; + background: -webkit-linear-gradient(top,#ffffff 0,#ffffff 100%); + background: -moz-linear-gradient(top,#ffffff 0,#ffffff 100%); + background: -o-linear-gradient(top,#ffffff 0,#ffffff 100%); + background: linear-gradient(to bottom,#ffffff 0,#ffffff 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#ffffff,GradientType=0); +} +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner { + background: -webkit-linear-gradient(top,#ffffff 0,#ffffff 100%); + background: -moz-linear-gradient(top,#ffffff 0,#ffffff 100%); + background: -o-linear-gradient(top,#ffffff 0,#ffffff 100%); + background: linear-gradient(to bottom,#ffffff 0,#ffffff 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#ffffff,GradientType=0); +} +.tabs-header-left .tabs li.tabs-selected a.tabs-inner { + background: -webkit-linear-gradient(left,#ffffff 0,#ffffff 100%); + background: -moz-linear-gradient(left,#ffffff 0,#ffffff 100%); + background: -o-linear-gradient(left,#ffffff 0,#ffffff 100%); + background: linear-gradient(to right,#ffffff 0,#ffffff 100%); + background-repeat: repeat-y; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#ffffff,GradientType=1); +} +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + background: -webkit-linear-gradient(left,#ffffff 0,#ffffff 100%); + background: -moz-linear-gradient(left,#ffffff 0,#ffffff 100%); + background: -o-linear-gradient(left,#ffffff 0,#ffffff 100%); + background: linear-gradient(to right,#ffffff 0,#ffffff 100%); + background-repeat: repeat-y; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#ffffff,GradientType=1); +} +.tabs li a.tabs-inner { + color: #777; + background-color: #F2F2F2; + background: -webkit-linear-gradient(top,#ffffff 0,#F2F2F2 100%); + background: -moz-linear-gradient(top,#ffffff 0,#F2F2F2 100%); + background: -o-linear-gradient(top,#ffffff 0,#F2F2F2 100%); + background: linear-gradient(to bottom,#ffffff 0,#F2F2F2 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#F2F2F2,GradientType=0); +} +.tabs-header, +.tabs-tool { + background-color: #F2F2F2; +} +.tabs-header-plain { + background: transparent; +} +.tabs-header, +.tabs-scroller-left, +.tabs-scroller-right, +.tabs-tool, +.tabs, +.tabs-panels, +.tabs li a.tabs-inner, +.tabs li.tabs-selected a.tabs-inner, +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner, +.tabs-header-left .tabs li.tabs-selected a.tabs-inner, +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + border-color: #D4D4D4; +} +.tabs-p-tool a:hover, +.tabs li a:hover.tabs-close, +.tabs-scroller-over { + background-color: #e6e6e6; +} +.tabs li.tabs-selected a.tabs-inner { + border-bottom: 1px solid #ffffff; +} +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner { + border-top: 1px solid #ffffff; +} +.tabs-header-left .tabs li.tabs-selected a.tabs-inner { + border-right: 1px solid #ffffff; +} +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + border-left: 1px solid #ffffff; +} +a.l-btn { + background-position: right 0; + text-decoration: none; + display: inline-block; + zoom: 1; + height: 24px; + padding-right: 18px; + cursor: pointer; + outline: none; +} +a.l-btn-plain { + border: 0; + padding: 1px 6px 1px 1px; +} +a.l-btn-disabled { + color: #ccc; + opacity: 0.5; + filter: alpha(opacity=50); + cursor: default; +} +a.l-btn span.l-btn-left { + display: inline-block; + background-position: 0 -48px; + padding: 0 0 0 18px; + line-height: 24px; + height: 24px; +} +a.l-btn-plain span.l-btn-left { + padding-left: 5px; +} +a.l-btn span span.l-btn-text { + position: relative; + display: inline-block; + vertical-align: top; + top: 4px; + width: auto; + height: 16px; + line-height: 16px; + font-size: 12px; + padding: 0; + margin: 0; +} +a.l-btn span span.l-btn-icon-left { + padding: 0 0 0 20px; + background-position: left center; +} +a.l-btn span span.l-btn-icon-right { + padding: 0 20px 0 0; + background-position: right center; +} +a.l-btn span span span.l-btn-empty { + display: inline-block; + margin: 0; + padding: 0; + width: 16px; +} +a:hover.l-btn { + background-position: right -24px; + outline: none; + text-decoration: none; +} +a:hover.l-btn span.l-btn-left { + background-position: 0 bottom; +} +a:hover.l-btn-plain { + padding: 0 5px 0 0; +} +a:hover.l-btn-disabled { + background-position: right 0; +} +a:hover.l-btn-disabled span.l-btn-left { + background-position: 0 -48px; +} +a.l-btn .l-btn-focus { + outline: #0000FF dotted thin; +} +a.l-btn { + color: #444; + background-image: url('images/linkbutton_bg.png'); + background-repeat: no-repeat; + background: #f5f5f5; + background-repeat: repeat-x; + border: 1px solid #bbb; + background: -webkit-linear-gradient(top,#ffffff 0,#e6e6e6 100%); + background: -moz-linear-gradient(top,#ffffff 0,#e6e6e6 100%); + background: -o-linear-gradient(top,#ffffff 0,#e6e6e6 100%); + background: linear-gradient(to bottom,#ffffff 0,#e6e6e6 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#e6e6e6,GradientType=0); + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +a.l-btn span.l-btn-left { + background-image: url('images/linkbutton_bg.png'); + background-repeat: no-repeat; + background-image: none; +} +a:hover.l-btn { + background: #e6e6e6; + color: #00438a; + border: 1px solid #ddd; + filter: none; +} +a.l-btn-plain, +a.l-btn-plain span.l-btn-left { + background: transparent; + border: 0; + filter: none; +} +a:hover.l-btn-plain { + background: #e6e6e6; + color: #00438a; + border: 1px solid #ddd; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +a.l-btn-disabled, +a:hover.l-btn-disabled { + color: #444; + filter: alpha(opacity=50); + background: #f5f5f5; + color: #444; + background: -webkit-linear-gradient(top,#ffffff 0,#e6e6e6 100%); + background: -moz-linear-gradient(top,#ffffff 0,#e6e6e6 100%); + background: -o-linear-gradient(top,#ffffff 0,#e6e6e6 100%); + background: linear-gradient(to bottom,#ffffff 0,#e6e6e6 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#e6e6e6,GradientType=0); + filter: alpha(opacity=50) progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#e6e6e6,GradientType=0); +} +a.l-btn-plain-disabled, +a:hover.l-btn-plain-disabled { + background: transparent; + filter: alpha(opacity=50); +} +a.l-btn-selected, +a:hover.l-btn-selected { + background-position: right -24px; + background: #ddd; + filter: none; +} +a.l-btn-selected span.l-btn-left, +a:hover.l-btn-selected span.l-btn-left { + background-position: 0 bottom; + background-image: none; +} +a.l-btn-plain-selected, +a:hover.l-btn-plain-selected { + background: #ddd; +} +.datagrid .panel-body { + overflow: hidden; + position: relative; +} +.datagrid-view { + position: relative; + overflow: hidden; +} +.datagrid-view1, +.datagrid-view2 { + position: absolute; + overflow: hidden; + top: 0; +} +.datagrid-view1 { + left: 0; +} +.datagrid-view2 { + right: 0; +} +.datagrid-mask { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + opacity: 0.3; + filter: alpha(opacity=30); + display: none; +} +.datagrid-mask-msg { + position: absolute; + top: 50%; + margin-top: -20px; + padding: 12px 5px 10px 30px; + width: auto; + height: 16px; + border-width: 2px; + border-style: solid; + display: none; +} +.datagrid-sort-icon { + padding: 0; +} +.datagrid-toolbar { + height: auto; + padding: 1px 2px; + border-width: 0 0 1px 0; + border-style: solid; +} +.datagrid-btn-separator { + float: left; + height: 24px; + border-left: 1px solid #ccc; + border-right: 1px solid #fff; + margin: 2px 1px; +} +.datagrid .datagrid-pager { + display: block; + margin: 0; + border-width: 1px 0 0 0; + border-style: solid; +} +.datagrid .datagrid-pager-top { + border-width: 0 0 1px 0; +} +.datagrid-header { + overflow: hidden; + cursor: default; + border-width: 0 0 1px 0; + border-style: solid; +} +.datagrid-header-inner { + float: left; + width: 10000px; +} +.datagrid-header-row, +.datagrid-row { + height: 25px; +} +.datagrid-header td, +.datagrid-body td, +.datagrid-footer td { + border-width: 0 1px 1px 0; + border-style: dotted; + margin: 0; + padding: 0; +} +.datagrid-cell, +.datagrid-cell-group, +.datagrid-header-rownumber, +.datagrid-cell-rownumber { + margin: 0; + padding: 0 4px; + white-space: nowrap; + word-wrap: normal; + overflow: hidden; + height: 18px; + line-height: 18px; + font-size: 12px; +} +.datagrid-header .datagrid-cell { + height: auto; +} +.datagrid-header .datagrid-cell span { + font-size: 12px; +} +.datagrid-cell-group { + text-align: center; +} +.datagrid-header-rownumber, +.datagrid-cell-rownumber { + width: 25px; + text-align: center; + margin: 0; + padding: 0; +} +.datagrid-body { + margin: 0; + padding: 0; + overflow: auto; + zoom: 1; +} +.datagrid-view1 .datagrid-body-inner { + padding-bottom: 20px; +} +.datagrid-view1 .datagrid-body { + overflow: hidden; +} +.datagrid-footer { + overflow: hidden; +} +.datagrid-footer-inner { + border-width: 1px 0 0 0; + border-style: solid; + width: 10000px; + float: left; +} +.datagrid-row-editing .datagrid-cell { + height: auto; +} +.datagrid-header-check, +.datagrid-cell-check { + padding: 0; + width: 27px; + height: 18px; + font-size: 1px; + text-align: center; + overflow: hidden; +} +.datagrid-header-check input, +.datagrid-cell-check input { + margin: 0; + padding: 0; + width: 15px; + height: 18px; +} +.datagrid-resize-proxy { + position: absolute; + width: 1px; + height: 10000px; + top: 0; + cursor: e-resize; + display: none; +} +.datagrid-body .datagrid-editable { + margin: 0; + padding: 0; +} +.datagrid-body .datagrid-editable table { + width: 100%; + height: 100%; +} +.datagrid-body .datagrid-editable td { + border: 0; + margin: 0; + padding: 0; +} +.datagrid-body .datagrid-editable .datagrid-editable-input { + margin: 0; + padding: 2px; + border-width: 1px; + border-style: solid; +} +.datagrid-sort-desc .datagrid-sort-icon { + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat -16px center; +} +.datagrid-sort-asc .datagrid-sort-icon { + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat 0px center; +} +.datagrid-row-collapse { + background: url('images/datagrid_icons.png') no-repeat -48px center; +} +.datagrid-row-expand { + background: url('images/datagrid_icons.png') no-repeat -32px center; +} +.datagrid-mask-msg { + background: #ffffff url('images/loading.gif') no-repeat scroll 5px center; +} +.datagrid-header, +.datagrid-td-rownumber { + background-color: #F2F2F2; + background: -webkit-linear-gradient(top,#ffffff 0,#F2F2F2 100%); + background: -moz-linear-gradient(top,#ffffff 0,#F2F2F2 100%); + background: -o-linear-gradient(top,#ffffff 0,#F2F2F2 100%); + background: linear-gradient(to bottom,#ffffff 0,#F2F2F2 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#F2F2F2,GradientType=0); +} +.datagrid-cell-rownumber { + color: #333; +} +.datagrid-resize-proxy { + background: #bbb; +} +.datagrid-mask { + background: #ccc; +} +.datagrid-mask-msg { + border-color: #D4D4D4; +} +.datagrid-toolbar, +.datagrid-pager { + background: #F5F5F5; +} +.datagrid-header, +.datagrid-toolbar, +.datagrid-pager, +.datagrid-footer-inner { + border-color: #e6e6e6; +} +.datagrid-header td, +.datagrid-body td, +.datagrid-footer td { + border-color: #ccc; +} +.datagrid-htable, +.datagrid-btable, +.datagrid-ftable { + color: #333; + border-collapse: separate; +} +.datagrid-row-alt { + background: #F5F5F5; +} +.datagrid-row-over, +.datagrid-header td.datagrid-header-over { + background: #e6e6e6; + color: #00438a; + cursor: default; +} +.datagrid-row-selected { + background: #0081c2; + color: #fff; +} +.datagrid-body .datagrid-editable .datagrid-editable-input { + border-color: #D4D4D4; +} +.propertygrid .datagrid-view1 .datagrid-body td { + padding-bottom: 1px; + border-width: 0 1px 0 0; +} +.propertygrid .datagrid-group { + height: 21px; + overflow: hidden; + border-width: 0 0 1px 0; + border-style: solid; +} +.propertygrid .datagrid-group span { + font-weight: bold; +} +.propertygrid .datagrid-view1 .datagrid-body td { + border-color: #e6e6e6; +} +.propertygrid .datagrid-view1 .datagrid-group { + border-color: #F2F2F2; +} +.propertygrid .datagrid-view2 .datagrid-group { + border-color: #e6e6e6; +} +.propertygrid .datagrid-group, +.propertygrid .datagrid-view1 .datagrid-body, +.propertygrid .datagrid-view1 .datagrid-row-over, +.propertygrid .datagrid-view1 .datagrid-row-selected { + background: #F2F2F2; +} +.pagination { + zoom: 1; +} +.pagination table { + float: left; + height: 30px; +} +.pagination td { + border: 0; +} +.pagination-btn-separator { + float: left; + height: 24px; + border-left: 1px solid #ccc; + border-right: 1px solid #fff; + margin: 3px 1px; +} +.pagination .pagination-num { + border-width: 1px; + border-style: solid; + margin: 0 2px; + padding: 2px; + width: 2em; + height: auto; +} +.pagination-page-list { + margin: 0px 6px; + padding: 1px 2px; + width: auto; + height: auto; + border-width: 1px; + border-style: solid; +} +.pagination-info { + float: right; + margin: 0 6px 0 0; + padding: 0; + height: 30px; + line-height: 30px; + font-size: 12px; +} +.pagination span { + font-size: 12px; +} +a.pagination-link { + padding: 1px; +} +a.pagination-link span.l-btn-left { + padding-left: 0; +} +a.pagination-link span span.l-btn-text { + width: 24px; + text-align: center; +} +a:hover.pagination-link { + padding: 0; +} +.pagination-first { + background: url('images/pagination_icons.png') no-repeat 0 center; +} +.pagination-prev { + background: url('images/pagination_icons.png') no-repeat -16px center; +} +.pagination-next { + background: url('images/pagination_icons.png') no-repeat -32px center; +} +.pagination-last { + background: url('images/pagination_icons.png') no-repeat -48px center; +} +.pagination-load { + background: url('images/pagination_icons.png') no-repeat -64px center; +} +.pagination-loading { + background: url('images/loading.gif') no-repeat center center; +} +.pagination-page-list, +.pagination .pagination-num { + border-color: #D4D4D4; +} +.calendar { + border-width: 1px; + border-style: solid; + padding: 1px; + overflow: hidden; +} +.calendar table { + border-collapse: separate; + font-size: 12px; + width: 100%; + height: 100%; +} +.calendar table td, +.calendar table th { + font-size: 12px; +} +.calendar-noborder { + border: 0; +} +.calendar-header { + position: relative; + height: 22px; +} +.calendar-title { + text-align: center; + height: 22px; +} +.calendar-title span { + position: relative; + display: inline-block; + top: 2px; + padding: 0 3px; + height: 18px; + line-height: 18px; + font-size: 12px; + cursor: pointer; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-prevmonth, +.calendar-nextmonth, +.calendar-prevyear, +.calendar-nextyear { + position: absolute; + top: 50%; + margin-top: -7px; + width: 14px; + height: 14px; + cursor: pointer; + font-size: 1px; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-prevmonth { + left: 20px; + background: url('images/calendar_arrows.png') no-repeat -18px -2px; +} +.calendar-nextmonth { + right: 20px; + background: url('images/calendar_arrows.png') no-repeat -34px -2px; +} +.calendar-prevyear { + left: 3px; + background: url('images/calendar_arrows.png') no-repeat -1px -2px; +} +.calendar-nextyear { + right: 3px; + background: url('images/calendar_arrows.png') no-repeat -49px -2px; +} +.calendar-body { + position: relative; +} +.calendar-body th, +.calendar-body td { + text-align: center; +} +.calendar-day { + border: 0; + padding: 1px; + cursor: pointer; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-other-month { + opacity: 0.3; + filter: alpha(opacity=30); +} +.calendar-menu { + position: absolute; + top: 0; + left: 0; + width: 180px; + height: 150px; + padding: 5px; + font-size: 12px; + display: none; + overflow: hidden; +} +.calendar-menu-year-inner { + text-align: center; + padding-bottom: 5px; +} +.calendar-menu-year { + width: 40px; + text-align: center; + border-width: 1px; + border-style: solid; + margin: 0; + padding: 2px; + font-weight: bold; + font-size: 12px; +} +.calendar-menu-prev, +.calendar-menu-next { + display: inline-block; + width: 21px; + height: 21px; + vertical-align: top; + cursor: pointer; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-menu-prev { + margin-right: 10px; + background: url('images/calendar_arrows.png') no-repeat 2px 2px; +} +.calendar-menu-next { + margin-left: 10px; + background: url('images/calendar_arrows.png') no-repeat -45px 2px; +} +.calendar-menu-month { + text-align: center; + cursor: pointer; + font-weight: bold; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-body th, +.calendar-menu-month { + color: #808080; +} +.calendar-day { + color: #333; +} +.calendar-sunday { + color: #CC2222; +} +.calendar-saturday { + color: #00ee00; +} +.calendar-today { + color: #0000ff; +} +.calendar-menu-year { + border-color: #D4D4D4; +} +.calendar { + border-color: #D4D4D4; +} +.calendar-header { + background: #F2F2F2; +} +.calendar-body, +.calendar-menu { + background: #ffffff; +} +.calendar-body th { + background: #F5F5F5; +} +.calendar-hover, +.calendar-nav-hover, +.calendar-menu-hover { + background-color: #e6e6e6; + color: #00438a; +} +.calendar-hover { + border: 1px solid #ddd; + padding: 0; +} +.calendar-selected { + background-color: #0081c2; + color: #fff; + border: 1px solid #0070a9; + padding: 0; +} +.datebox-calendar-inner { + height: 180px; +} +.datebox-button { + height: 18px; + padding: 2px 5px; + text-align: center; +} +.datebox-button a { + font-size: 12px; + font-weight: bold; + text-decoration: none; + opacity: 0.6; + filter: alpha(opacity=60); +} +.datebox-button a:hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.datebox-current, +.datebox-close { + float: left; +} +.datebox-close { + float: right; +} +.datebox .combo-arrow { + background-image: url('images/datebox_arrow.png'); + background-position: center center; +} +.datebox-button { + background-color: #F5F5F5; +} +.datebox-button a { + color: #444; +} +.spinner { + display: inline-block; + white-space: nowrap; + margin: 0; + padding: 0; + border-width: 1px; + border-style: solid; + overflow: hidden; + vertical-align: middle; +} +.spinner .spinner-text { + font-size: 12px; + border: 0px; + line-height: 20px; + height: 20px; + margin: 0; + padding: 0 2px; + *margin-top: -1px; + *height: 18px; + *line-height: 18px; + _height: 18px; + _line-height: 18px; + vertical-align: baseline; +} +.spinner-arrow { + display: inline-block; + overflow: hidden; + vertical-align: top; + margin: 0; + padding: 0; +} +.spinner-arrow-up, +.spinner-arrow-down { + opacity: 0.6; + filter: alpha(opacity=60); + display: block; + font-size: 1px; + width: 18px; + height: 10px; +} +.spinner-arrow-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.spinner-arrow-up { + background: url('images/spinner_arrows.png') no-repeat 1px center; +} +.spinner-arrow-down { + background: url('images/spinner_arrows.png') no-repeat -15px center; +} +.spinner { + border-color: #D4D4D4; +} +.spinner-arrow { + background-color: #F2F2F2; +} +.spinner-arrow-hover { + background-color: #e6e6e6; +} +.progressbar { + border-width: 1px; + border-style: solid; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; + overflow: hidden; + position: relative; +} +.progressbar-text { + text-align: center; + position: absolute; +} +.progressbar-value { + position: relative; + overflow: hidden; + width: 0; + -moz-border-radius: 5px 0 0 5px; + -webkit-border-radius: 5px 0 0 5px; + border-radius: 5px 0 0 5px; +} +.progressbar { + border-color: #D4D4D4; +} +.progressbar-text { + color: #333; + font-size: 12px; +} +.progressbar-value .progressbar-text { + background-color: #0081c2; + color: #fff; +} +.searchbox { + display: inline-block; + white-space: nowrap; + margin: 0; + padding: 0; + border-width: 1px; + border-style: solid; + overflow: hidden; +} +.searchbox .searchbox-text { + font-size: 12px; + border: 0; + margin: 0; + padding: 0; + line-height: 20px; + height: 20px; + *margin-top: -1px; + *height: 18px; + *line-height: 18px; + _height: 18px; + _line-height: 18px; + vertical-align: baseline; +} +.searchbox .searchbox-prompt { + font-size: 12px; + color: #ccc; +} +.searchbox-button { + width: 18px; + height: 20px; + overflow: hidden; + display: inline-block; + vertical-align: top; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.searchbox-button-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.searchbox a.l-btn-plain { + height: 20px; + border: 0; + padding: 0 6px 0 0; + vertical-align: top; + opacity: 0.6; + filter: alpha(opacity=60); + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox a.l-btn .l-btn-left { + padding: 0 0 0 4px; +} +.searchbox a.l-btn .l-btn-text { + position: static; + vertical-align: top; +} +.searchbox a.l-btn-plain:hover { + border: 0; + padding: 0 6px 0 0; + opacity: 1.0; + filter: alpha(opacity=100); + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox a.m-btn-plain-active { + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox-button { + background: url('images/searchbox_button.png') no-repeat center center; +} +.searchbox { + border-color: #D4D4D4; + background-color: #fff; +} +.searchbox a.l-btn-plain { + background: #F2F2F2; +} +.slider-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.slider-h { + height: 22px; +} +.slider-v { + width: 22px; +} +.slider-inner { + position: relative; + height: 6px; + top: 7px; + border-width: 1px; + border-style: solid; + border-radius: 5px; +} +.slider-handle { + position: absolute; + display: block; + outline: none; + width: 20px; + height: 20px; + top: -7px; + margin-left: -10px; +} +.slider-tip { + position: absolute; + display: inline-block; + line-height: 12px; + font-size: 12px; + white-space: nowrap; + top: -22px; +} +.slider-rule { + position: relative; + top: 15px; +} +.slider-rule span { + position: absolute; + display: inline-block; + font-size: 0; + height: 5px; + border-width: 0 0 0 1px; + border-style: solid; +} +.slider-rulelabel { + position: relative; + top: 20px; +} +.slider-rulelabel span { + position: absolute; + display: inline-block; + font-size: 12px; +} +.slider-v .slider-inner { + width: 6px; + left: 7px; + top: 0; + float: left; +} +.slider-v .slider-handle { + left: 3px; + margin-top: -10px; +} +.slider-v .slider-tip { + left: -10px; + margin-top: -6px; +} +.slider-v .slider-rule { + float: left; + top: 0; + left: 16px; +} +.slider-v .slider-rule span { + width: 5px; + height: 'auto'; + border-left: 0; + border-width: 1px 0 0 0; + border-style: solid; +} +.slider-v .slider-rulelabel { + float: left; + top: 0; + left: 23px; +} +.slider-handle { + background: url('images/slider_handle.png') no-repeat; +} +.slider-inner { + border-color: #D4D4D4; + background: #F2F2F2; +} +.slider-rule span { + border-color: #D4D4D4; +} +.slider-rulelabel span { + color: #333; +} +.menu { + position: absolute; + margin: 0; + padding: 2px; + border-width: 1px; + border-style: solid; + overflow: hidden; +} +.menu-item { + position: relative; + margin: 0; + padding: 0; + overflow: hidden; + white-space: nowrap; + cursor: pointer; + border-width: 1px; + border-style: solid; +} +.menu-text { + height: 20px; + line-height: 20px; + float: left; + padding-left: 28px; +} +.menu-icon { + position: absolute; + width: 16px; + height: 16px; + left: 2px; + top: 50%; + margin-top: -8px; +} +.menu-rightarrow { + position: absolute; + width: 16px; + height: 16px; + right: 0; + top: 50%; + margin-top: -8px; +} +.menu-line { + position: absolute; + left: 26px; + top: 0; + height: 2000px; + font-size: 1px; +} +.menu-sep { + margin: 3px 0px 3px 25px; + font-size: 1px; +} +.menu-active { + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.menu-item-disabled { + opacity: 0.5; + filter: alpha(opacity=50); + cursor: default; +} +.menu-text, +.menu-text span { + font-size: 12px; +} +.menu-shadow { + position: absolute; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; + background: #ccc; + -moz-box-shadow: 2px 2px 3px #cccccc; + -webkit-box-shadow: 2px 2px 3px #cccccc; + box-shadow: 2px 2px 3px #cccccc; + filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2); +} +.menu-rightarrow { + background: url('images/menu_arrows.png') no-repeat -32px center; +} +.menu-line { + border-left: 1px solid #ccc; + border-right: 1px solid #fff; +} +.menu-sep { + border-top: 1px solid #ccc; + border-bottom: 1px solid #fff; +} +.menu { + background-color: #fff; + border-color: #e6e6e6; + color: #333; +} +.menu-content { + background: #ffffff; +} +.menu-item { + border-color: transparent; + _border-color: #fff; +} +.menu-active { + border-color: #ddd; + color: #00438a; + background: #e6e6e6; +} +.menu-active-disabled { + border-color: transparent; + background: transparent; + color: #333; +} +.m-btn-downarrow { + display: inline-block; + width: 16px; + height: 16px; + line-height: 16px; + font-size: 12px; + _vertical-align: middle; +} +a.m-btn-active { + background-position: bottom right; +} +a.m-btn-active span.l-btn-left { + background-position: bottom left; +} +a.m-btn-plain-active { + background: transparent; + padding: 0 5px 0 0; + border-width: 1px; + border-style: solid; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.m-btn-downarrow { + background: url('images/menu_arrows.png') no-repeat 2px center; +} +a.m-btn-plain-active { + border-color: #ddd; + background-color: #e6e6e6; + color: #00438a; +} +.s-btn-downarrow { + display: inline-block; + margin: 0 0 0 4px; + padding: 0 0 0 1px; + width: 14px; + height: 16px; + line-height: 16px; + border-width: 0; + border-style: solid; + font-size: 12px; + _vertical-align: middle; +} +a.s-btn-active { + background-position: bottom right; +} +a.s-btn-active span.l-btn-left { + background-position: bottom left; +} +a.s-btn-plain-active { + background: transparent; + padding: 0 5px 0 0; + border-width: 1px; + border-style: solid; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.s-btn-downarrow { + background: url('images/menu_arrows.png') no-repeat 2px center; + border-color: #bbb; +} +a:hover.l-btn .s-btn-downarrow, +a.s-btn-active .s-btn-downarrow, +a.s-btn-plain-active .s-btn-downarrow { + background-position: 1px center; + padding: 0; + border-width: 0 0 0 1px; +} +a.s-btn-plain-active { + border-color: #ddd; + background-color: #e6e6e6; + color: #00438a; +} +.messager-body { + padding: 10px; + overflow: hidden; +} +.messager-button { + text-align: center; + padding-top: 10px; +} +.messager-icon { + float: left; + width: 32px; + height: 32px; + margin: 0 10px 10px 0; +} +.messager-error { + background: url('images/messager_icons.png') no-repeat scroll -64px 0; +} +.messager-info { + background: url('images/messager_icons.png') no-repeat scroll 0 0; +} +.messager-question { + background: url('images/messager_icons.png') no-repeat scroll -32px 0; +} +.messager-warning { + background: url('images/messager_icons.png') no-repeat scroll -96px 0; +} +.messager-progress { + padding: 10px; +} +.messager-p-msg { + margin-bottom: 5px; +} +.messager-body .messager-input { + width: 100%; + padding: 1px 0; + border: 1px solid #D4D4D4; +} +.tree { + margin: 0; + padding: 0; + list-style-type: none; +} +.tree li { + white-space: nowrap; +} +.tree li ul { + list-style-type: none; + margin: 0; + padding: 0; +} +.tree-node { + height: 18px; + white-space: nowrap; + cursor: pointer; +} +.tree-hit { + cursor: pointer; +} +.tree-expanded, +.tree-collapsed, +.tree-folder, +.tree-file, +.tree-checkbox, +.tree-indent { + display: inline-block; + width: 16px; + height: 18px; + vertical-align: top; + overflow: hidden; +} +.tree-expanded { + background: url('images/tree_icons.png') no-repeat -18px 0px; +} +.tree-expanded-hover { + background: url('images/tree_icons.png') no-repeat -50px 0px; +} +.tree-collapsed { + background: url('images/tree_icons.png') no-repeat 0px 0px; +} +.tree-collapsed-hover { + background: url('images/tree_icons.png') no-repeat -32px 0px; +} +.tree-lines .tree-expanded, +.tree-lines .tree-root-first .tree-expanded { + background: url('images/tree_icons.png') no-repeat -144px 0; +} +.tree-lines .tree-collapsed, +.tree-lines .tree-root-first .tree-collapsed { + background: url('images/tree_icons.png') no-repeat -128px 0; +} +.tree-lines .tree-node-last .tree-expanded, +.tree-lines .tree-root-one .tree-expanded { + background: url('images/tree_icons.png') no-repeat -80px 0; +} +.tree-lines .tree-node-last .tree-collapsed, +.tree-lines .tree-root-one .tree-collapsed { + background: url('images/tree_icons.png') no-repeat -64px 0; +} +.tree-line { + background: url('images/tree_icons.png') no-repeat -176px 0; +} +.tree-join { + background: url('images/tree_icons.png') no-repeat -192px 0; +} +.tree-joinbottom { + background: url('images/tree_icons.png') no-repeat -160px 0; +} +.tree-folder { + background: url('images/tree_icons.png') no-repeat -208px 0; +} +.tree-folder-open { + background: url('images/tree_icons.png') no-repeat -224px 0; +} +.tree-file { + background: url('images/tree_icons.png') no-repeat -240px 0; +} +.tree-loading { + background: url('images/loading.gif') no-repeat center center; +} +.tree-checkbox0 { + background: url('images/tree_icons.png') no-repeat -208px -18px; +} +.tree-checkbox1 { + background: url('images/tree_icons.png') no-repeat -224px -18px; +} +.tree-checkbox2 { + background: url('images/tree_icons.png') no-repeat -240px -18px; +} +.tree-title { + font-size: 12px; + display: inline-block; + text-decoration: none; + vertical-align: top; + white-space: nowrap; + padding: 0 2px; + height: 18px; + line-height: 18px; +} +.tree-node-proxy { + font-size: 12px; + line-height: 20px; + padding: 0 2px 0 20px; + border-width: 1px; + border-style: solid; + z-index: 9900000; +} +.tree-dnd-icon { + display: inline-block; + position: absolute; + width: 16px; + height: 18px; + left: 2px; + top: 50%; + margin-top: -9px; +} +.tree-dnd-yes { + background: url('images/tree_icons.png') no-repeat -256px 0; +} +.tree-dnd-no { + background: url('images/tree_icons.png') no-repeat -256px -18px; +} +.tree-node-top { + border-top: 1px dotted red; +} +.tree-node-bottom { + border-bottom: 1px dotted red; +} +.tree-node-append .tree-title { + border: 1px dotted red; +} +.tree-editor { + border: 1px solid #ccc; + font-size: 12px; + height: 14px !important; + height: 18px; + line-height: 14px; + padding: 1px 2px; + width: 80px; + position: absolute; + top: 0; +} +.tree-node-proxy { + background-color: #ffffff; + color: #333; + border-color: #D4D4D4; +} +.tree-node-hover { + background: #e6e6e6; + color: #00438a; +} +.tree-node-selected { + background: #0081c2; + color: #fff; +} +.validatebox-invalid { + background-image: url('images/validatebox_warning.png'); + background-repeat: no-repeat; + background-position: right center; + border-color: #ffa8a8; + background-color: #fff3f3; + color: #000; +} +.tooltip { + position: absolute; + display: none; + z-index: 9900000; + outline: none; + opacity: 1; + filter: alpha(opacity=100); + padding: 5px; + border-width: 1px; + border-style: solid; + border-radius: 5px; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.tooltip-content { + font-size: 12px; +} +.tooltip-arrow-outer, +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + line-height: 0; + font-size: 0; + border-style: solid; + border-width: 6px; + border-color: transparent; + _border-color: tomato; + _filter: chroma(color=tomato); +} +.tooltip-right .tooltip-arrow-outer { + left: 0; + top: 50%; + margin: -6px 0 0 -13px; +} +.tooltip-right .tooltip-arrow { + left: 0; + top: 50%; + margin: -6px 0 0 -12px; +} +.tooltip-left .tooltip-arrow-outer { + right: 0; + top: 50%; + margin: -6px -13px 0 0; +} +.tooltip-left .tooltip-arrow { + right: 0; + top: 50%; + margin: -6px -12px 0 0; +} +.tooltip-top .tooltip-arrow-outer { + bottom: 0; + left: 50%; + margin: 0 0 -13px -6px; +} +.tooltip-top .tooltip-arrow { + bottom: 0; + left: 50%; + margin: 0 0 -12px -6px; +} +.tooltip-bottom .tooltip-arrow-outer { + top: 0; + left: 50%; + margin: -13px 0 0 -6px; +} +.tooltip-bottom .tooltip-arrow { + top: 0; + left: 50%; + margin: -12px 0 0 -6px; +} +.tooltip { + background-color: #ffffff; + border-color: #D4D4D4; + color: #333; +} +.tooltip-right .tooltip-arrow-outer { + border-right-color: #D4D4D4; +} +.tooltip-right .tooltip-arrow { + border-right-color: #ffffff; +} +.tooltip-left .tooltip-arrow-outer { + border-left-color: #D4D4D4; +} +.tooltip-left .tooltip-arrow { + border-left-color: #ffffff; +} +.tooltip-top .tooltip-arrow-outer { + border-top-color: #D4D4D4; +} +.tooltip-top .tooltip-arrow { + border-top-color: #ffffff; +} +.tooltip-bottom .tooltip-arrow-outer { + border-bottom-color: #D4D4D4; +} +.tooltip-bottom .tooltip-arrow { + border-bottom-color: #ffffff; +} +.tabs-panels { + border-color: transparent; +} +.tabs li a.tabs-inner { + border-color: transparent; + background: transparent; + filter: none; + color: #0088CC; +} +.menu-active { + background-color: #0081C2; + border-color: #0081C2; + color: #fff; +} +.menu-active-disabled { + border-color: transparent; + background: transparent; + color: #333; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/images/accordion_arrows.png b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/images/accordion_arrows.png new file mode 100644 index 00000000..720835f6 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/images/accordion_arrows.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/images/blank.gif b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/images/blank.gif new file mode 100644 index 00000000..1d11fa9a Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/images/blank.gif differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/images/calendar_arrows.png b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/images/calendar_arrows.png new file mode 100644 index 00000000..430c4ad6 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/images/calendar_arrows.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/images/combo_arrow.png b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/images/combo_arrow.png new file mode 100644 index 00000000..2e59fb9f Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/images/combo_arrow.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/images/datagrid_icons.png b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/images/datagrid_icons.png new file mode 100644 index 00000000..747ac4d1 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/images/datagrid_icons.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/images/datebox_arrow.png b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/images/datebox_arrow.png new file mode 100644 index 00000000..783c8335 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/images/datebox_arrow.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/images/layout_arrows.png b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/images/layout_arrows.png new file mode 100644 index 00000000..6f416542 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/images/layout_arrows.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/images/linkbutton_bg.png b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/images/linkbutton_bg.png new file mode 100644 index 00000000..fc66bd2c Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/images/linkbutton_bg.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/images/loading.gif b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/images/loading.gif new file mode 100644 index 00000000..68f01d04 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/images/loading.gif differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/images/menu_arrows.png b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/images/menu_arrows.png new file mode 100644 index 00000000..b986842e Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/images/menu_arrows.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/images/messager_icons.png b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/images/messager_icons.png new file mode 100644 index 00000000..62c18c13 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/images/messager_icons.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/images/pagination_icons.png b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/images/pagination_icons.png new file mode 100644 index 00000000..616f0bdd Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/images/pagination_icons.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/images/panel_tools.png b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/images/panel_tools.png new file mode 100644 index 00000000..fe682ef8 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/images/panel_tools.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/images/searchbox_button.png b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/images/searchbox_button.png new file mode 100644 index 00000000..6dd19315 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/images/searchbox_button.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/images/slider_handle.png b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/images/slider_handle.png new file mode 100644 index 00000000..b9802bae Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/images/slider_handle.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/images/spinner_arrows.png b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/images/spinner_arrows.png new file mode 100644 index 00000000..b68592de Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/images/spinner_arrows.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/images/tabs_icons.png b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/images/tabs_icons.png new file mode 100644 index 00000000..4d29966d Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/images/tabs_icons.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/images/tree_icons.png b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/images/tree_icons.png new file mode 100644 index 00000000..e9be4f3a Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/images/tree_icons.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/images/validatebox_warning.png b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/images/validatebox_warning.png new file mode 100644 index 00000000..2b3d4f05 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/images/validatebox_warning.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/layout.css b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/layout.css new file mode 100644 index 00000000..33e172dc --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/layout.css @@ -0,0 +1,91 @@ +.layout { + position: relative; + overflow: hidden; + margin: 0; + padding: 0; + z-index: 0; +} +.layout-panel { + position: absolute; + overflow: hidden; +} +.layout-panel-east, +.layout-panel-west { + z-index: 2; +} +.layout-panel-north, +.layout-panel-south { + z-index: 3; +} +.layout-expand { + position: absolute; + padding: 0px; + font-size: 1px; + cursor: pointer; + z-index: 1; +} +.layout-expand .panel-header, +.layout-expand .panel-body { + background: transparent; + filter: none; + overflow: hidden; +} +.layout-expand .panel-header { + border-bottom-width: 0px; +} +.layout-split-proxy-h, +.layout-split-proxy-v { + position: absolute; + font-size: 1px; + display: none; + z-index: 5; +} +.layout-split-proxy-h { + width: 5px; + cursor: e-resize; +} +.layout-split-proxy-v { + height: 5px; + cursor: n-resize; +} +.layout-mask { + position: absolute; + background: #fafafa; + filter: alpha(opacity=10); + opacity: 0.10; + z-index: 4; +} +.layout-button-up { + background: url('images/layout_arrows.png') no-repeat -16px -16px; +} +.layout-button-down { + background: url('images/layout_arrows.png') no-repeat -16px 0; +} +.layout-button-left { + background: url('images/layout_arrows.png') no-repeat 0 0; +} +.layout-button-right { + background: url('images/layout_arrows.png') no-repeat 0 -16px; +} +.layout-split-proxy-h, +.layout-split-proxy-v { + background-color: #bbb; +} +.layout-split-north { + border-bottom: 5px solid #eee; +} +.layout-split-south { + border-top: 5px solid #eee; +} +.layout-split-east { + border-left: 5px solid #eee; +} +.layout-split-west { + border-right: 5px solid #eee; +} +.layout-expand { + background-color: #F2F2F2; +} +.layout-expand-over { + background-color: #F2F2F2; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/linkbutton.css b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/linkbutton.css new file mode 100644 index 00000000..9d1aefc0 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/linkbutton.css @@ -0,0 +1,152 @@ +a.l-btn { + background-position: right 0; + text-decoration: none; + display: inline-block; + zoom: 1; + height: 24px; + padding-right: 18px; + cursor: pointer; + outline: none; +} +a.l-btn-plain { + border: 0; + padding: 1px 6px 1px 1px; +} +a.l-btn-disabled { + color: #ccc; + opacity: 0.5; + filter: alpha(opacity=50); + cursor: default; +} +a.l-btn span.l-btn-left { + display: inline-block; + background-position: 0 -48px; + padding: 0 0 0 18px; + line-height: 24px; + height: 24px; +} +a.l-btn-plain span.l-btn-left { + padding-left: 5px; +} +a.l-btn span span.l-btn-text { + position: relative; + display: inline-block; + vertical-align: top; + top: 4px; + width: auto; + height: 16px; + line-height: 16px; + font-size: 12px; + padding: 0; + margin: 0; +} +a.l-btn span span.l-btn-icon-left { + padding: 0 0 0 20px; + background-position: left center; +} +a.l-btn span span.l-btn-icon-right { + padding: 0 20px 0 0; + background-position: right center; +} +a.l-btn span span span.l-btn-empty { + display: inline-block; + margin: 0; + padding: 0; + width: 16px; +} +a:hover.l-btn { + background-position: right -24px; + outline: none; + text-decoration: none; +} +a:hover.l-btn span.l-btn-left { + background-position: 0 bottom; +} +a:hover.l-btn-plain { + padding: 0 5px 0 0; +} +a:hover.l-btn-disabled { + background-position: right 0; +} +a:hover.l-btn-disabled span.l-btn-left { + background-position: 0 -48px; +} +a.l-btn .l-btn-focus { + outline: #0000FF dotted thin; +} +a.l-btn { + color: #444; + background-image: url('images/linkbutton_bg.png'); + background-repeat: no-repeat; + background: #f5f5f5; + background-repeat: repeat-x; + border: 1px solid #bbb; + background: -webkit-linear-gradient(top,#ffffff 0,#e6e6e6 100%); + background: -moz-linear-gradient(top,#ffffff 0,#e6e6e6 100%); + background: -o-linear-gradient(top,#ffffff 0,#e6e6e6 100%); + background: linear-gradient(to bottom,#ffffff 0,#e6e6e6 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#e6e6e6,GradientType=0); + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +a.l-btn span.l-btn-left { + background-image: url('images/linkbutton_bg.png'); + background-repeat: no-repeat; + background-image: none; +} +a:hover.l-btn { + background: #e6e6e6; + color: #00438a; + border: 1px solid #ddd; + filter: none; +} +a.l-btn-plain, +a.l-btn-plain span.l-btn-left { + background: transparent; + border: 0; + filter: none; +} +a:hover.l-btn-plain { + background: #e6e6e6; + color: #00438a; + border: 1px solid #ddd; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +a.l-btn-disabled, +a:hover.l-btn-disabled { + color: #444; + filter: alpha(opacity=50); + background: #f5f5f5; + color: #444; + background: -webkit-linear-gradient(top,#ffffff 0,#e6e6e6 100%); + background: -moz-linear-gradient(top,#ffffff 0,#e6e6e6 100%); + background: -o-linear-gradient(top,#ffffff 0,#e6e6e6 100%); + background: linear-gradient(to bottom,#ffffff 0,#e6e6e6 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#e6e6e6,GradientType=0); + filter: alpha(opacity=50) progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#e6e6e6,GradientType=0); +} +a.l-btn-plain-disabled, +a:hover.l-btn-plain-disabled { + background: transparent; + filter: alpha(opacity=50); +} +a.l-btn-selected, +a:hover.l-btn-selected { + background-position: right -24px; + background: #ddd; + filter: none; +} +a.l-btn-selected span.l-btn-left, +a:hover.l-btn-selected span.l-btn-left { + background-position: 0 bottom; + background-image: none; +} +a.l-btn-plain-selected, +a:hover.l-btn-plain-selected { + background: #ddd; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/menu.css b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/menu.css new file mode 100644 index 00000000..55959685 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/menu.css @@ -0,0 +1,109 @@ +.menu { + position: absolute; + margin: 0; + padding: 2px; + border-width: 1px; + border-style: solid; + overflow: hidden; +} +.menu-item { + position: relative; + margin: 0; + padding: 0; + overflow: hidden; + white-space: nowrap; + cursor: pointer; + border-width: 1px; + border-style: solid; +} +.menu-text { + height: 20px; + line-height: 20px; + float: left; + padding-left: 28px; +} +.menu-icon { + position: absolute; + width: 16px; + height: 16px; + left: 2px; + top: 50%; + margin-top: -8px; +} +.menu-rightarrow { + position: absolute; + width: 16px; + height: 16px; + right: 0; + top: 50%; + margin-top: -8px; +} +.menu-line { + position: absolute; + left: 26px; + top: 0; + height: 2000px; + font-size: 1px; +} +.menu-sep { + margin: 3px 0px 3px 25px; + font-size: 1px; +} +.menu-active { + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.menu-item-disabled { + opacity: 0.5; + filter: alpha(opacity=50); + cursor: default; +} +.menu-text, +.menu-text span { + font-size: 12px; +} +.menu-shadow { + position: absolute; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; + background: #ccc; + -moz-box-shadow: 2px 2px 3px #cccccc; + -webkit-box-shadow: 2px 2px 3px #cccccc; + box-shadow: 2px 2px 3px #cccccc; + filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2); +} +.menu-rightarrow { + background: url('images/menu_arrows.png') no-repeat -32px center; +} +.menu-line { + border-left: 1px solid #ccc; + border-right: 1px solid #fff; +} +.menu-sep { + border-top: 1px solid #ccc; + border-bottom: 1px solid #fff; +} +.menu { + background-color: #fff; + border-color: #e6e6e6; + color: #333; +} +.menu-content { + background: #ffffff; +} +.menu-item { + border-color: transparent; + _border-color: #fff; +} +.menu-active { + border-color: #ddd; + color: #00438a; + background: #e6e6e6; +} +.menu-active-disabled { + border-color: transparent; + background: transparent; + color: #333; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/menubutton.css b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/menubutton.css new file mode 100644 index 00000000..ea98469c --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/menubutton.css @@ -0,0 +1,31 @@ +.m-btn-downarrow { + display: inline-block; + width: 16px; + height: 16px; + line-height: 16px; + font-size: 12px; + _vertical-align: middle; +} +a.m-btn-active { + background-position: bottom right; +} +a.m-btn-active span.l-btn-left { + background-position: bottom left; +} +a.m-btn-plain-active { + background: transparent; + padding: 0 5px 0 0; + border-width: 1px; + border-style: solid; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.m-btn-downarrow { + background: url('images/menu_arrows.png') no-repeat 2px center; +} +a.m-btn-plain-active { + border-color: #ddd; + background-color: #e6e6e6; + color: #00438a; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/messager.css b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/messager.css new file mode 100644 index 00000000..503d51f4 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/messager.css @@ -0,0 +1,37 @@ +.messager-body { + padding: 10px; + overflow: hidden; +} +.messager-button { + text-align: center; + padding-top: 10px; +} +.messager-icon { + float: left; + width: 32px; + height: 32px; + margin: 0 10px 10px 0; +} +.messager-error { + background: url('images/messager_icons.png') no-repeat scroll -64px 0; +} +.messager-info { + background: url('images/messager_icons.png') no-repeat scroll 0 0; +} +.messager-question { + background: url('images/messager_icons.png') no-repeat scroll -32px 0; +} +.messager-warning { + background: url('images/messager_icons.png') no-repeat scroll -96px 0; +} +.messager-progress { + padding: 10px; +} +.messager-p-msg { + margin-bottom: 5px; +} +.messager-body .messager-input { + width: 100%; + padding: 1px 0; + border: 1px solid #D4D4D4; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/pagination.css b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/pagination.css new file mode 100644 index 00000000..819f64f9 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/pagination.css @@ -0,0 +1,79 @@ +.pagination { + zoom: 1; +} +.pagination table { + float: left; + height: 30px; +} +.pagination td { + border: 0; +} +.pagination-btn-separator { + float: left; + height: 24px; + border-left: 1px solid #ccc; + border-right: 1px solid #fff; + margin: 3px 1px; +} +.pagination .pagination-num { + border-width: 1px; + border-style: solid; + margin: 0 2px; + padding: 2px; + width: 2em; + height: auto; +} +.pagination-page-list { + margin: 0px 6px; + padding: 1px 2px; + width: auto; + height: auto; + border-width: 1px; + border-style: solid; +} +.pagination-info { + float: right; + margin: 0 6px 0 0; + padding: 0; + height: 30px; + line-height: 30px; + font-size: 12px; +} +.pagination span { + font-size: 12px; +} +a.pagination-link { + padding: 1px; +} +a.pagination-link span.l-btn-left { + padding-left: 0; +} +a.pagination-link span span.l-btn-text { + width: 24px; + text-align: center; +} +a:hover.pagination-link { + padding: 0; +} +.pagination-first { + background: url('images/pagination_icons.png') no-repeat 0 center; +} +.pagination-prev { + background: url('images/pagination_icons.png') no-repeat -16px center; +} +.pagination-next { + background: url('images/pagination_icons.png') no-repeat -32px center; +} +.pagination-last { + background: url('images/pagination_icons.png') no-repeat -48px center; +} +.pagination-load { + background: url('images/pagination_icons.png') no-repeat -64px center; +} +.pagination-loading { + background: url('images/loading.gif') no-repeat center center; +} +.pagination-page-list, +.pagination .pagination-num { + border-color: #D4D4D4; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/panel.css b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/panel.css new file mode 100644 index 00000000..07a6e30d --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/panel.css @@ -0,0 +1,131 @@ +.panel { + overflow: hidden; + text-align: left; + margin: 0; + border: 0; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.panel-header, +.panel-body { + border-width: 1px; + border-style: solid; +} +.panel-header { + padding: 5px; + position: relative; +} +.panel-title { + background: url('images/blank.gif') no-repeat; +} +.panel-header-noborder { + border-width: 0 0 1px 0; +} +.panel-body { + overflow: auto; + border-top-width: 0; + padding: 0; +} +.panel-body-noheader { + border-top-width: 1px; +} +.panel-body-noborder { + border-width: 0px; +} +.panel-with-icon { + padding-left: 18px; +} +.panel-icon, +.panel-tool { + position: absolute; + top: 50%; + margin-top: -8px; + height: 16px; + overflow: hidden; +} +.panel-icon { + left: 5px; + width: 16px; +} +.panel-tool { + right: 5px; + width: auto; +} +.panel-tool a { + display: inline-block; + width: 16px; + height: 16px; + opacity: 0.6; + filter: alpha(opacity=60); + margin: 0 0 0 2px; + vertical-align: top; +} +.panel-tool a:hover { + opacity: 1; + filter: alpha(opacity=100); + background-color: #e6e6e6; + -moz-border-radius: 3px 3px 3px 3px; + -webkit-border-radius: 3px 3px 3px 3px; + border-radius: 3px 3px 3px 3px; +} +.panel-loading { + padding: 11px 0px 10px 30px; +} +.panel-noscroll { + overflow: hidden; +} +.panel-fit, +.panel-fit body { + height: 100%; + margin: 0; + padding: 0; + border: 0; + overflow: hidden; +} +.panel-loading { + background: url('images/loading.gif') no-repeat 10px 10px; +} +.panel-tool-close { + background: url('images/panel_tools.png') no-repeat -16px 0px; +} +.panel-tool-min { + background: url('images/panel_tools.png') no-repeat 0px 0px; +} +.panel-tool-max { + background: url('images/panel_tools.png') no-repeat 0px -16px; +} +.panel-tool-restore { + background: url('images/panel_tools.png') no-repeat -16px -16px; +} +.panel-tool-collapse { + background: url('images/panel_tools.png') no-repeat -32px 0; +} +.panel-tool-expand { + background: url('images/panel_tools.png') no-repeat -32px -16px; +} +.panel-header, +.panel-body { + border-color: #D4D4D4; +} +.panel-header { + background-color: #F2F2F2; + background: -webkit-linear-gradient(top,#ffffff 0,#F2F2F2 100%); + background: -moz-linear-gradient(top,#ffffff 0,#F2F2F2 100%); + background: -o-linear-gradient(top,#ffffff 0,#F2F2F2 100%); + background: linear-gradient(to bottom,#ffffff 0,#F2F2F2 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#F2F2F2,GradientType=0); +} +.panel-body { + background-color: #ffffff; + color: #333; + font-size: 12px; +} +.panel-title { + font-size: 12px; + font-weight: bold; + color: #777; + height: 16px; + line-height: 16px; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/progressbar.css b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/progressbar.css new file mode 100644 index 00000000..c660f0e4 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/progressbar.css @@ -0,0 +1,32 @@ +.progressbar { + border-width: 1px; + border-style: solid; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; + overflow: hidden; + position: relative; +} +.progressbar-text { + text-align: center; + position: absolute; +} +.progressbar-value { + position: relative; + overflow: hidden; + width: 0; + -moz-border-radius: 5px 0 0 5px; + -webkit-border-radius: 5px 0 0 5px; + border-radius: 5px 0 0 5px; +} +.progressbar { + border-color: #D4D4D4; +} +.progressbar-text { + color: #333; + font-size: 12px; +} +.progressbar-value .progressbar-text { + background-color: #0081c2; + color: #fff; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/propertygrid.css b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/propertygrid.css new file mode 100644 index 00000000..abf87d6a --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/propertygrid.css @@ -0,0 +1,28 @@ +.propertygrid .datagrid-view1 .datagrid-body td { + padding-bottom: 1px; + border-width: 0 1px 0 0; +} +.propertygrid .datagrid-group { + height: 21px; + overflow: hidden; + border-width: 0 0 1px 0; + border-style: solid; +} +.propertygrid .datagrid-group span { + font-weight: bold; +} +.propertygrid .datagrid-view1 .datagrid-body td { + border-color: #e6e6e6; +} +.propertygrid .datagrid-view1 .datagrid-group { + border-color: #F2F2F2; +} +.propertygrid .datagrid-view2 .datagrid-group { + border-color: #e6e6e6; +} +.propertygrid .datagrid-group, +.propertygrid .datagrid-view1 .datagrid-body, +.propertygrid .datagrid-view1 .datagrid-row-over, +.propertygrid .datagrid-view1 .datagrid-row-selected { + background: #F2F2F2; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/searchbox.css b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/searchbox.css new file mode 100644 index 00000000..55e54889 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/searchbox.css @@ -0,0 +1,83 @@ +.searchbox { + display: inline-block; + white-space: nowrap; + margin: 0; + padding: 0; + border-width: 1px; + border-style: solid; + overflow: hidden; +} +.searchbox .searchbox-text { + font-size: 12px; + border: 0; + margin: 0; + padding: 0; + line-height: 20px; + height: 20px; + *margin-top: -1px; + *height: 18px; + *line-height: 18px; + _height: 18px; + _line-height: 18px; + vertical-align: baseline; +} +.searchbox .searchbox-prompt { + font-size: 12px; + color: #ccc; +} +.searchbox-button { + width: 18px; + height: 20px; + overflow: hidden; + display: inline-block; + vertical-align: top; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.searchbox-button-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.searchbox a.l-btn-plain { + height: 20px; + border: 0; + padding: 0 6px 0 0; + vertical-align: top; + opacity: 0.6; + filter: alpha(opacity=60); + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox a.l-btn .l-btn-left { + padding: 0 0 0 4px; +} +.searchbox a.l-btn .l-btn-text { + position: static; + vertical-align: top; +} +.searchbox a.l-btn-plain:hover { + border: 0; + padding: 0 6px 0 0; + opacity: 1.0; + filter: alpha(opacity=100); + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox a.m-btn-plain-active { + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox-button { + background: url('images/searchbox_button.png') no-repeat center center; +} +.searchbox { + border-color: #D4D4D4; + background-color: #fff; +} +.searchbox a.l-btn-plain { + background: #F2F2F2; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/slider.css b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/slider.css new file mode 100644 index 00000000..64709908 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/slider.css @@ -0,0 +1,100 @@ +.slider-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.slider-h { + height: 22px; +} +.slider-v { + width: 22px; +} +.slider-inner { + position: relative; + height: 6px; + top: 7px; + border-width: 1px; + border-style: solid; + border-radius: 5px; +} +.slider-handle { + position: absolute; + display: block; + outline: none; + width: 20px; + height: 20px; + top: -7px; + margin-left: -10px; +} +.slider-tip { + position: absolute; + display: inline-block; + line-height: 12px; + font-size: 12px; + white-space: nowrap; + top: -22px; +} +.slider-rule { + position: relative; + top: 15px; +} +.slider-rule span { + position: absolute; + display: inline-block; + font-size: 0; + height: 5px; + border-width: 0 0 0 1px; + border-style: solid; +} +.slider-rulelabel { + position: relative; + top: 20px; +} +.slider-rulelabel span { + position: absolute; + display: inline-block; + font-size: 12px; +} +.slider-v .slider-inner { + width: 6px; + left: 7px; + top: 0; + float: left; +} +.slider-v .slider-handle { + left: 3px; + margin-top: -10px; +} +.slider-v .slider-tip { + left: -10px; + margin-top: -6px; +} +.slider-v .slider-rule { + float: left; + top: 0; + left: 16px; +} +.slider-v .slider-rule span { + width: 5px; + height: 'auto'; + border-left: 0; + border-width: 1px 0 0 0; + border-style: solid; +} +.slider-v .slider-rulelabel { + float: left; + top: 0; + left: 23px; +} +.slider-handle { + background: url('images/slider_handle.png') no-repeat; +} +.slider-inner { + border-color: #D4D4D4; + background: #F2F2F2; +} +.slider-rule span { + border-color: #D4D4D4; +} +.slider-rulelabel span { + color: #333; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/spinner.css b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/spinner.css new file mode 100644 index 00000000..97369b0e --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/spinner.css @@ -0,0 +1,59 @@ +.spinner { + display: inline-block; + white-space: nowrap; + margin: 0; + padding: 0; + border-width: 1px; + border-style: solid; + overflow: hidden; + vertical-align: middle; +} +.spinner .spinner-text { + font-size: 12px; + border: 0px; + line-height: 20px; + height: 20px; + margin: 0; + padding: 0 2px; + *margin-top: -1px; + *height: 18px; + *line-height: 18px; + _height: 18px; + _line-height: 18px; + vertical-align: baseline; +} +.spinner-arrow { + display: inline-block; + overflow: hidden; + vertical-align: top; + margin: 0; + padding: 0; +} +.spinner-arrow-up, +.spinner-arrow-down { + opacity: 0.6; + filter: alpha(opacity=60); + display: block; + font-size: 1px; + width: 18px; + height: 10px; +} +.spinner-arrow-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.spinner-arrow-up { + background: url('images/spinner_arrows.png') no-repeat 1px center; +} +.spinner-arrow-down { + background: url('images/spinner_arrows.png') no-repeat -15px center; +} +.spinner { + border-color: #D4D4D4; +} +.spinner-arrow { + background-color: #F2F2F2; +} +.spinner-arrow-hover { + background-color: #e6e6e6; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/splitbutton.css b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/splitbutton.css new file mode 100644 index 00000000..347155f8 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/splitbutton.css @@ -0,0 +1,43 @@ +.s-btn-downarrow { + display: inline-block; + margin: 0 0 0 4px; + padding: 0 0 0 1px; + width: 14px; + height: 16px; + line-height: 16px; + border-width: 0; + border-style: solid; + font-size: 12px; + _vertical-align: middle; +} +a.s-btn-active { + background-position: bottom right; +} +a.s-btn-active span.l-btn-left { + background-position: bottom left; +} +a.s-btn-plain-active { + background: transparent; + padding: 0 5px 0 0; + border-width: 1px; + border-style: solid; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.s-btn-downarrow { + background: url('images/menu_arrows.png') no-repeat 2px center; + border-color: #bbb; +} +a:hover.l-btn .s-btn-downarrow, +a.s-btn-active .s-btn-downarrow, +a.s-btn-plain-active .s-btn-downarrow { + background-position: 1px center; + padding: 0; + border-width: 0 0 0 1px; +} +a.s-btn-plain-active { + border-color: #ddd; + background-color: #e6e6e6; + color: #00438a; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/tabs.css b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/tabs.css new file mode 100644 index 00000000..8c051a1d --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/tabs.css @@ -0,0 +1,356 @@ +.tabs-container { + overflow: hidden; +} +.tabs-header { + border-width: 1px; + border-style: solid; + border-bottom-width: 0; + position: relative; + padding: 0; + padding-top: 2px; + overflow: hidden; +} +.tabs-header-plain { + border: 0; + background: transparent; +} +.tabs-scroller-left, +.tabs-scroller-right { + position: absolute; + top: auto; + bottom: 0; + width: 18px; + font-size: 1px; + display: none; + cursor: pointer; + border-width: 1px; + border-style: solid; +} +.tabs-scroller-left { + left: 0; +} +.tabs-scroller-right { + right: 0; +} +.tabs-tool { + position: absolute; + bottom: 0; + padding: 1px; + overflow: hidden; + border-width: 1px; + border-style: solid; +} +.tabs-header-plain .tabs-tool { + padding: 0 1px; +} +.tabs-wrap { + position: relative; + left: 0; + overflow: hidden; + width: 100%; + margin: 0; + padding: 0; +} +.tabs-scrolling { + margin-left: 18px; + margin-right: 18px; +} +.tabs-disabled { + opacity: 0.3; + filter: alpha(opacity=30); +} +.tabs { + list-style-type: none; + height: 26px; + margin: 0px; + padding: 0px; + padding-left: 4px; + width: 5000px; + border-style: solid; + border-width: 0 0 1px 0; +} +.tabs li { + float: left; + display: inline-block; + margin: 0 4px -1px 0; + padding: 0; + position: relative; + border: 0; +} +.tabs li a.tabs-inner { + display: inline-block; + text-decoration: none; + margin: 0; + padding: 0 10px; + height: 25px; + line-height: 25px; + text-align: center; + white-space: nowrap; + border-width: 1px; + border-style: solid; + -moz-border-radius: 5px 5px 0 0; + -webkit-border-radius: 5px 5px 0 0; + border-radius: 5px 5px 0 0; +} +.tabs li.tabs-selected a.tabs-inner { + font-weight: bold; + outline: none; +} +.tabs li.tabs-selected a:hover.tabs-inner { + cursor: default; + pointer: default; +} +.tabs li a.tabs-close, +.tabs-p-tool { + position: absolute; + font-size: 1px; + display: block; + height: 12px; + padding: 0; + top: 50%; + margin-top: -6px; + overflow: hidden; +} +.tabs li a.tabs-close { + width: 12px; + right: 5px; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tabs-p-tool { + right: 16px; +} +.tabs-p-tool a { + display: inline-block; + font-size: 1px; + width: 12px; + height: 12px; + margin: 0; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tabs li a:hover.tabs-close, +.tabs-p-tool a:hover { + opacity: 1; + filter: alpha(opacity=100); + cursor: hand; + cursor: pointer; +} +.tabs-with-icon { + padding-left: 18px; +} +.tabs-icon { + position: absolute; + width: 16px; + height: 16px; + left: 10px; + top: 50%; + margin-top: -8px; +} +.tabs-title { + font-size: 12px; +} +.tabs-closable { + padding-right: 8px; +} +.tabs-panels { + margin: 0px; + padding: 0px; + border-width: 1px; + border-style: solid; + border-top-width: 0; + overflow: hidden; +} +.tabs-header-bottom { + border-width: 0 1px 1px 1px; + padding: 0 0 2px 0; +} +.tabs-header-bottom .tabs { + border-width: 1px 0 0 0; +} +.tabs-header-bottom .tabs li { + margin: -1px 4px 0 0; +} +.tabs-header-bottom .tabs li a.tabs-inner { + -moz-border-radius: 0 0 5px 5px; + -webkit-border-radius: 0 0 5px 5px; + border-radius: 0 0 5px 5px; +} +.tabs-header-bottom .tabs-tool { + top: 0; +} +.tabs-header-bottom .tabs-scroller-left, +.tabs-header-bottom .tabs-scroller-right { + top: 0; + bottom: auto; +} +.tabs-panels-top { + border-width: 1px 1px 0 1px; +} +.tabs-header-left { + float: left; + border-width: 1px 0 1px 1px; + padding: 0; +} +.tabs-header-right { + float: right; + border-width: 1px 1px 1px 0; + padding: 0; +} +.tabs-header-left .tabs-wrap, +.tabs-header-right .tabs-wrap { + height: 100%; +} +.tabs-header-left .tabs { + height: 100%; + padding: 4px 0 0 4px; + border-width: 0 1px 0 0; +} +.tabs-header-right .tabs { + height: 100%; + padding: 4px 4px 0 0; + border-width: 0 0 0 1px; +} +.tabs-header-left .tabs li, +.tabs-header-right .tabs li { + display: block; + width: 100%; + position: relative; +} +.tabs-header-left .tabs li { + left: auto; + right: 0; + margin: 0 -1px 4px 0; + float: right; +} +.tabs-header-right .tabs li { + left: 0; + right: auto; + margin: 0 0 4px -1px; + float: left; +} +.tabs-header-left .tabs li a.tabs-inner { + display: block; + text-align: left; + -moz-border-radius: 5px 0 0 5px; + -webkit-border-radius: 5px 0 0 5px; + border-radius: 5px 0 0 5px; +} +.tabs-header-right .tabs li a.tabs-inner { + display: block; + text-align: left; + -moz-border-radius: 0 5px 5px 0; + -webkit-border-radius: 0 5px 5px 0; + border-radius: 0 5px 5px 0; +} +.tabs-panels-right { + float: right; + border-width: 1px 1px 1px 0; +} +.tabs-panels-left { + float: left; + border-width: 1px 0 1px 1px; +} +.tabs-header-noborder, +.tabs-panels-noborder { + border: 0px; +} +.tabs-header-plain { + border: 0px; + background: transparent; +} +.tabs-scroller-left { + background: #F2F2F2 url('images/tabs_icons.png') no-repeat 1px center; +} +.tabs-scroller-right { + background: #F2F2F2 url('images/tabs_icons.png') no-repeat -15px center; +} +.tabs li a.tabs-close { + background: url('images/tabs_icons.png') no-repeat -34px center; +} +.tabs li a.tabs-inner:hover { + background: #e6e6e6; + color: #00438a; + filter: none; +} +.tabs li.tabs-selected a.tabs-inner { + background-color: #ffffff; + color: #777; + background: -webkit-linear-gradient(top,#ffffff 0,#ffffff 100%); + background: -moz-linear-gradient(top,#ffffff 0,#ffffff 100%); + background: -o-linear-gradient(top,#ffffff 0,#ffffff 100%); + background: linear-gradient(to bottom,#ffffff 0,#ffffff 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#ffffff,GradientType=0); +} +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner { + background: -webkit-linear-gradient(top,#ffffff 0,#ffffff 100%); + background: -moz-linear-gradient(top,#ffffff 0,#ffffff 100%); + background: -o-linear-gradient(top,#ffffff 0,#ffffff 100%); + background: linear-gradient(to bottom,#ffffff 0,#ffffff 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#ffffff,GradientType=0); +} +.tabs-header-left .tabs li.tabs-selected a.tabs-inner { + background: -webkit-linear-gradient(left,#ffffff 0,#ffffff 100%); + background: -moz-linear-gradient(left,#ffffff 0,#ffffff 100%); + background: -o-linear-gradient(left,#ffffff 0,#ffffff 100%); + background: linear-gradient(to right,#ffffff 0,#ffffff 100%); + background-repeat: repeat-y; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#ffffff,GradientType=1); +} +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + background: -webkit-linear-gradient(left,#ffffff 0,#ffffff 100%); + background: -moz-linear-gradient(left,#ffffff 0,#ffffff 100%); + background: -o-linear-gradient(left,#ffffff 0,#ffffff 100%); + background: linear-gradient(to right,#ffffff 0,#ffffff 100%); + background-repeat: repeat-y; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#ffffff,GradientType=1); +} +.tabs li a.tabs-inner { + color: #777; + background-color: #F2F2F2; + background: -webkit-linear-gradient(top,#ffffff 0,#F2F2F2 100%); + background: -moz-linear-gradient(top,#ffffff 0,#F2F2F2 100%); + background: -o-linear-gradient(top,#ffffff 0,#F2F2F2 100%); + background: linear-gradient(to bottom,#ffffff 0,#F2F2F2 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#F2F2F2,GradientType=0); +} +.tabs-header, +.tabs-tool { + background-color: #F2F2F2; +} +.tabs-header-plain { + background: transparent; +} +.tabs-header, +.tabs-scroller-left, +.tabs-scroller-right, +.tabs-tool, +.tabs, +.tabs-panels, +.tabs li a.tabs-inner, +.tabs li.tabs-selected a.tabs-inner, +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner, +.tabs-header-left .tabs li.tabs-selected a.tabs-inner, +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + border-color: #D4D4D4; +} +.tabs-p-tool a:hover, +.tabs li a:hover.tabs-close, +.tabs-scroller-over { + background-color: #e6e6e6; +} +.tabs li.tabs-selected a.tabs-inner { + border-bottom: 1px solid #ffffff; +} +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner { + border-top: 1px solid #ffffff; +} +.tabs-header-left .tabs li.tabs-selected a.tabs-inner { + border-right: 1px solid #ffffff; +} +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + border-left: 1px solid #ffffff; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/tooltip.css b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/tooltip.css new file mode 100644 index 00000000..fa06fc33 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/tooltip.css @@ -0,0 +1,100 @@ +.tooltip { + position: absolute; + display: none; + z-index: 9900000; + outline: none; + opacity: 1; + filter: alpha(opacity=100); + padding: 5px; + border-width: 1px; + border-style: solid; + border-radius: 5px; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.tooltip-content { + font-size: 12px; +} +.tooltip-arrow-outer, +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + line-height: 0; + font-size: 0; + border-style: solid; + border-width: 6px; + border-color: transparent; + _border-color: tomato; + _filter: chroma(color=tomato); +} +.tooltip-right .tooltip-arrow-outer { + left: 0; + top: 50%; + margin: -6px 0 0 -13px; +} +.tooltip-right .tooltip-arrow { + left: 0; + top: 50%; + margin: -6px 0 0 -12px; +} +.tooltip-left .tooltip-arrow-outer { + right: 0; + top: 50%; + margin: -6px -13px 0 0; +} +.tooltip-left .tooltip-arrow { + right: 0; + top: 50%; + margin: -6px -12px 0 0; +} +.tooltip-top .tooltip-arrow-outer { + bottom: 0; + left: 50%; + margin: 0 0 -13px -6px; +} +.tooltip-top .tooltip-arrow { + bottom: 0; + left: 50%; + margin: 0 0 -12px -6px; +} +.tooltip-bottom .tooltip-arrow-outer { + top: 0; + left: 50%; + margin: -13px 0 0 -6px; +} +.tooltip-bottom .tooltip-arrow { + top: 0; + left: 50%; + margin: -12px 0 0 -6px; +} +.tooltip { + background-color: #ffffff; + border-color: #D4D4D4; + color: #333; +} +.tooltip-right .tooltip-arrow-outer { + border-right-color: #D4D4D4; +} +.tooltip-right .tooltip-arrow { + border-right-color: #ffffff; +} +.tooltip-left .tooltip-arrow-outer { + border-left-color: #D4D4D4; +} +.tooltip-left .tooltip-arrow { + border-left-color: #ffffff; +} +.tooltip-top .tooltip-arrow-outer { + border-top-color: #D4D4D4; +} +.tooltip-top .tooltip-arrow { + border-top-color: #ffffff; +} +.tooltip-bottom .tooltip-arrow-outer { + border-bottom-color: #D4D4D4; +} +.tooltip-bottom .tooltip-arrow { + border-bottom-color: #ffffff; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/tree.css b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/tree.css new file mode 100644 index 00000000..017832b5 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/tree.css @@ -0,0 +1,157 @@ +.tree { + margin: 0; + padding: 0; + list-style-type: none; +} +.tree li { + white-space: nowrap; +} +.tree li ul { + list-style-type: none; + margin: 0; + padding: 0; +} +.tree-node { + height: 18px; + white-space: nowrap; + cursor: pointer; +} +.tree-hit { + cursor: pointer; +} +.tree-expanded, +.tree-collapsed, +.tree-folder, +.tree-file, +.tree-checkbox, +.tree-indent { + display: inline-block; + width: 16px; + height: 18px; + vertical-align: top; + overflow: hidden; +} +.tree-expanded { + background: url('images/tree_icons.png') no-repeat -18px 0px; +} +.tree-expanded-hover { + background: url('images/tree_icons.png') no-repeat -50px 0px; +} +.tree-collapsed { + background: url('images/tree_icons.png') no-repeat 0px 0px; +} +.tree-collapsed-hover { + background: url('images/tree_icons.png') no-repeat -32px 0px; +} +.tree-lines .tree-expanded, +.tree-lines .tree-root-first .tree-expanded { + background: url('images/tree_icons.png') no-repeat -144px 0; +} +.tree-lines .tree-collapsed, +.tree-lines .tree-root-first .tree-collapsed { + background: url('images/tree_icons.png') no-repeat -128px 0; +} +.tree-lines .tree-node-last .tree-expanded, +.tree-lines .tree-root-one .tree-expanded { + background: url('images/tree_icons.png') no-repeat -80px 0; +} +.tree-lines .tree-node-last .tree-collapsed, +.tree-lines .tree-root-one .tree-collapsed { + background: url('images/tree_icons.png') no-repeat -64px 0; +} +.tree-line { + background: url('images/tree_icons.png') no-repeat -176px 0; +} +.tree-join { + background: url('images/tree_icons.png') no-repeat -192px 0; +} +.tree-joinbottom { + background: url('images/tree_icons.png') no-repeat -160px 0; +} +.tree-folder { + background: url('images/tree_icons.png') no-repeat -208px 0; +} +.tree-folder-open { + background: url('images/tree_icons.png') no-repeat -224px 0; +} +.tree-file { + background: url('images/tree_icons.png') no-repeat -240px 0; +} +.tree-loading { + background: url('images/loading.gif') no-repeat center center; +} +.tree-checkbox0 { + background: url('images/tree_icons.png') no-repeat -208px -18px; +} +.tree-checkbox1 { + background: url('images/tree_icons.png') no-repeat -224px -18px; +} +.tree-checkbox2 { + background: url('images/tree_icons.png') no-repeat -240px -18px; +} +.tree-title { + font-size: 12px; + display: inline-block; + text-decoration: none; + vertical-align: top; + white-space: nowrap; + padding: 0 2px; + height: 18px; + line-height: 18px; +} +.tree-node-proxy { + font-size: 12px; + line-height: 20px; + padding: 0 2px 0 20px; + border-width: 1px; + border-style: solid; + z-index: 9900000; +} +.tree-dnd-icon { + display: inline-block; + position: absolute; + width: 16px; + height: 18px; + left: 2px; + top: 50%; + margin-top: -9px; +} +.tree-dnd-yes { + background: url('images/tree_icons.png') no-repeat -256px 0; +} +.tree-dnd-no { + background: url('images/tree_icons.png') no-repeat -256px -18px; +} +.tree-node-top { + border-top: 1px dotted red; +} +.tree-node-bottom { + border-bottom: 1px dotted red; +} +.tree-node-append .tree-title { + border: 1px dotted red; +} +.tree-editor { + border: 1px solid #ccc; + font-size: 12px; + height: 14px !important; + height: 18px; + line-height: 14px; + padding: 1px 2px; + width: 80px; + position: absolute; + top: 0; +} +.tree-node-proxy { + background-color: #ffffff; + color: #333; + border-color: #D4D4D4; +} +.tree-node-hover { + background: #e6e6e6; + color: #00438a; +} +.tree-node-selected { + background: #0081c2; + color: #fff; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/validatebox.css b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/validatebox.css new file mode 100644 index 00000000..154da758 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/validatebox.css @@ -0,0 +1,8 @@ +.validatebox-invalid { + background-image: url('images/validatebox_warning.png'); + background-repeat: no-repeat; + background-position: right center; + border-color: #ffa8a8; + background-color: #fff3f3; + color: #000; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/window.css b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/window.css new file mode 100644 index 00000000..ad580876 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/bootstrap/window.css @@ -0,0 +1,87 @@ +.window { + overflow: hidden; + padding: 5px; + border-width: 1px; + border-style: solid; +} +.window .window-header { + background: transparent; + padding: 0px 0px 6px 0px; +} +.window .window-body { + border-width: 1px; + border-style: solid; + border-top-width: 0px; +} +.window .window-body-noheader { + border-top-width: 1px; +} +.window .window-header .panel-icon, +.window .window-header .panel-tool { + top: 50%; + margin-top: -11px; +} +.window .window-header .panel-icon { + left: 1px; +} +.window .window-header .panel-tool { + right: 1px; +} +.window .window-header .panel-with-icon { + padding-left: 18px; +} +.window-proxy { + position: absolute; + overflow: hidden; +} +.window-proxy-mask { + position: absolute; + filter: alpha(opacity=5); + opacity: 0.05; +} +.window-mask { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + filter: alpha(opacity=40); + opacity: 0.40; + font-size: 1px; + *zoom: 1; + overflow: hidden; +} +.window, +.window-shadow { + position: absolute; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.window-shadow { + background: #ccc; + -moz-box-shadow: 2px 2px 3px #cccccc; + -webkit-box-shadow: 2px 2px 3px #cccccc; + box-shadow: 2px 2px 3px #cccccc; + filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2); +} +.window, +.window .window-body { + border-color: #D4D4D4; +} +.window { + background-color: #F2F2F2; + background: -webkit-linear-gradient(top,#ffffff 0,#F2F2F2 20%); + background: -moz-linear-gradient(top,#ffffff 0,#F2F2F2 20%); + background: -o-linear-gradient(top,#ffffff 0,#F2F2F2 20%); + background: linear-gradient(to bottom,#ffffff 0,#F2F2F2 20%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#F2F2F2,GradientType=0); +} +.window-proxy { + border: 1px dashed #D4D4D4; +} +.window-proxy-mask, +.window-mask { + background: #ccc; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/default/accordion.css b/src/main/webapp/js/easyui-1.3.5/themes/default/accordion.css new file mode 100644 index 00000000..6b80dc2c --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/default/accordion.css @@ -0,0 +1,41 @@ +.accordion { + overflow: hidden; + border-width: 1px; + border-style: solid; +} +.accordion .accordion-header { + border-width: 0 0 1px; + cursor: pointer; +} +.accordion .accordion-body { + border-width: 0 0 1px; +} +.accordion-noborder { + border-width: 0; +} +.accordion-noborder .accordion-header { + border-width: 0 0 1px; +} +.accordion-noborder .accordion-body { + border-width: 0 0 1px; +} +.accordion-collapse { + background: url('images/accordion_arrows.png') no-repeat 0 0; +} +.accordion-expand { + background: url('images/accordion_arrows.png') no-repeat -16px 0; +} +.accordion { + background: #ffffff; + border-color: #95B8E7; +} +.accordion .accordion-header { + background: #E0ECFF; + filter: none; +} +.accordion .accordion-header-selected { + background: #FBEC88; +} +.accordion .accordion-header-selected .panel-title { + color: #000000; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/default/calendar.css b/src/main/webapp/js/easyui-1.3.5/themes/default/calendar.css new file mode 100644 index 00000000..83458b2c --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/default/calendar.css @@ -0,0 +1,190 @@ +.calendar { + border-width: 1px; + border-style: solid; + padding: 1px; + overflow: hidden; +} +.calendar table { + border-collapse: separate; + font-size: 12px; + width: 100%; + height: 100%; +} +.calendar table td, +.calendar table th { + font-size: 12px; +} +.calendar-noborder { + border: 0; +} +.calendar-header { + position: relative; + height: 22px; +} +.calendar-title { + text-align: center; + height: 22px; +} +.calendar-title span { + position: relative; + display: inline-block; + top: 2px; + padding: 0 3px; + height: 18px; + line-height: 18px; + font-size: 12px; + cursor: pointer; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-prevmonth, +.calendar-nextmonth, +.calendar-prevyear, +.calendar-nextyear { + position: absolute; + top: 50%; + margin-top: -7px; + width: 14px; + height: 14px; + cursor: pointer; + font-size: 1px; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-prevmonth { + left: 20px; + background: url('images/calendar_arrows.png') no-repeat -18px -2px; +} +.calendar-nextmonth { + right: 20px; + background: url('images/calendar_arrows.png') no-repeat -34px -2px; +} +.calendar-prevyear { + left: 3px; + background: url('images/calendar_arrows.png') no-repeat -1px -2px; +} +.calendar-nextyear { + right: 3px; + background: url('images/calendar_arrows.png') no-repeat -49px -2px; +} +.calendar-body { + position: relative; +} +.calendar-body th, +.calendar-body td { + text-align: center; +} +.calendar-day { + border: 0; + padding: 1px; + cursor: pointer; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-other-month { + opacity: 0.3; + filter: alpha(opacity=30); +} +.calendar-menu { + position: absolute; + top: 0; + left: 0; + width: 180px; + height: 150px; + padding: 5px; + font-size: 12px; + display: none; + overflow: hidden; +} +.calendar-menu-year-inner { + text-align: center; + padding-bottom: 5px; +} +.calendar-menu-year { + width: 40px; + text-align: center; + border-width: 1px; + border-style: solid; + margin: 0; + padding: 2px; + font-weight: bold; + font-size: 12px; +} +.calendar-menu-prev, +.calendar-menu-next { + display: inline-block; + width: 21px; + height: 21px; + vertical-align: top; + cursor: pointer; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-menu-prev { + margin-right: 10px; + background: url('images/calendar_arrows.png') no-repeat 2px 2px; +} +.calendar-menu-next { + margin-left: 10px; + background: url('images/calendar_arrows.png') no-repeat -45px 2px; +} +.calendar-menu-month { + text-align: center; + cursor: pointer; + font-weight: bold; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-body th, +.calendar-menu-month { + color: #4d4d4d; +} +.calendar-day { + color: #000000; +} +.calendar-sunday { + color: #CC2222; +} +.calendar-saturday { + color: #00ee00; +} +.calendar-today { + color: #0000ff; +} +.calendar-menu-year { + border-color: #95B8E7; +} +.calendar { + border-color: #95B8E7; +} +.calendar-header { + background: #E0ECFF; +} +.calendar-body, +.calendar-menu { + background: #ffffff; +} +.calendar-body th { + background: #F4F4F4; +} +.calendar-hover, +.calendar-nav-hover, +.calendar-menu-hover { + background-color: #eaf2ff; + color: #000000; +} +.calendar-hover { + border: 1px solid #b7d2ff; + padding: 0; +} +.calendar-selected { + background-color: #FBEC88; + color: #000000; + border: 1px solid #E2C608; + padding: 0; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/default/combo.css b/src/main/webapp/js/easyui-1.3.5/themes/default/combo.css new file mode 100644 index 00000000..42b913ab --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/default/combo.css @@ -0,0 +1,58 @@ +.combo { + display: inline-block; + white-space: nowrap; + margin: 0; + padding: 0; + border-width: 1px; + border-style: solid; + overflow: hidden; + vertical-align: middle; +} +.combo .combo-text { + font-size: 12px; + border: 0px; + line-height: 20px; + height: 20px; + margin: 0; + padding: 0px 2px; + *margin-top: -1px; + *height: 18px; + *line-height: 18px; + _height: 18px; + _line-height: 18px; + vertical-align: baseline; +} +.combo-arrow { + width: 18px; + height: 20px; + overflow: hidden; + display: inline-block; + vertical-align: top; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.combo-arrow-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.combo-panel { + overflow: auto; +} +.combo-arrow { + background: url('images/combo_arrow.png') no-repeat center center; +} +.combo, +.combo-panel { + background-color: #ffffff; +} +.combo { + border-color: #95B8E7; + background-color: #ffffff; +} +.combo-arrow { + background-color: #E0ECFF; +} +.combo-arrow-hover { + background-color: #eaf2ff; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/default/combobox.css b/src/main/webapp/js/easyui-1.3.5/themes/default/combobox.css new file mode 100644 index 00000000..e199e57b --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/default/combobox.css @@ -0,0 +1,24 @@ +.combobox-item, +.combobox-group { + font-size: 12px; + padding: 3px; + padding-right: 0px; +} +.combobox-item-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.combobox-gitem { + padding-left: 10px; +} +.combobox-group { + font-weight: bold; +} +.combobox-item-hover { + background-color: #eaf2ff; + color: #000000; +} +.combobox-item-selected { + background-color: #FBEC88; + color: #000000; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/default/datagrid.css b/src/main/webapp/js/easyui-1.3.5/themes/default/datagrid.css new file mode 100644 index 00000000..0f9b1d3b --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/default/datagrid.css @@ -0,0 +1,260 @@ +.datagrid .panel-body { + overflow: hidden; + position: relative; +} +.datagrid-view { + position: relative; + overflow: hidden; +} +.datagrid-view1, +.datagrid-view2 { + position: absolute; + overflow: hidden; + top: 0; +} +.datagrid-view1 { + left: 0; +} +.datagrid-view2 { + right: 0; +} +.datagrid-mask { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + opacity: 0.3; + filter: alpha(opacity=30); + display: none; +} +.datagrid-mask-msg { + position: absolute; + top: 50%; + margin-top: -20px; + padding: 12px 5px 10px 30px; + width: auto; + height: 16px; + border-width: 2px; + border-style: solid; + display: none; +} +.datagrid-sort-icon { + padding: 0; +} +.datagrid-toolbar { + height: auto; + padding: 1px 2px; + border-width: 0 0 1px 0; + border-style: solid; +} +.datagrid-btn-separator { + float: left; + height: 24px; + border-left: 1px solid #ccc; + border-right: 1px solid #fff; + margin: 2px 1px; +} +.datagrid .datagrid-pager { + display: block; + margin: 0; + border-width: 1px 0 0 0; + border-style: solid; +} +.datagrid .datagrid-pager-top { + border-width: 0 0 1px 0; +} +.datagrid-header { + overflow: hidden; + cursor: default; + border-width: 0 0 1px 0; + border-style: solid; +} +.datagrid-header-inner { + float: left; + width: 10000px; +} +.datagrid-header-row, +.datagrid-row { + height: 25px; +} +.datagrid-header td, +.datagrid-body td, +.datagrid-footer td { + border-width: 0 1px 1px 0; + border-style: dotted; + margin: 0; + padding: 0; +} +.datagrid-cell, +.datagrid-cell-group, +.datagrid-header-rownumber, +.datagrid-cell-rownumber { + margin: 0; + padding: 0 4px; + white-space: nowrap; + word-wrap: normal; + overflow: hidden; + height: 18px; + line-height: 18px; + font-size: 12px; +} +.datagrid-header .datagrid-cell { + height: auto; +} +.datagrid-header .datagrid-cell span { + font-size: 12px; +} +.datagrid-cell-group { + text-align: center; +} +.datagrid-header-rownumber, +.datagrid-cell-rownumber { + width: 25px; + text-align: center; + margin: 0; + padding: 0; +} +.datagrid-body { + margin: 0; + padding: 0; + overflow: auto; + zoom: 1; +} +.datagrid-view1 .datagrid-body-inner { + padding-bottom: 20px; +} +.datagrid-view1 .datagrid-body { + overflow: hidden; +} +.datagrid-footer { + overflow: hidden; +} +.datagrid-footer-inner { + border-width: 1px 0 0 0; + border-style: solid; + width: 10000px; + float: left; +} +.datagrid-row-editing .datagrid-cell { + height: auto; +} +.datagrid-header-check, +.datagrid-cell-check { + padding: 0; + width: 27px; + height: 18px; + font-size: 1px; + text-align: center; + overflow: hidden; +} +.datagrid-header-check input, +.datagrid-cell-check input { + margin: 0; + padding: 0; + width: 15px; + height: 18px; +} +.datagrid-resize-proxy { + position: absolute; + width: 1px; + height: 10000px; + top: 0; + cursor: e-resize; + display: none; +} +.datagrid-body .datagrid-editable { + margin: 0; + padding: 0; +} +.datagrid-body .datagrid-editable table { + width: 100%; + height: 100%; +} +.datagrid-body .datagrid-editable td { + border: 0; + margin: 0; + padding: 0; +} +.datagrid-body .datagrid-editable .datagrid-editable-input { + margin: 0; + padding: 2px; + border-width: 1px; + border-style: solid; +} +.datagrid-sort-desc .datagrid-sort-icon { + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat -16px center; +} +.datagrid-sort-asc .datagrid-sort-icon { + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat 0px center; +} +.datagrid-row-collapse { + background: url('images/datagrid_icons.png') no-repeat -48px center; +} +.datagrid-row-expand { + background: url('images/datagrid_icons.png') no-repeat -32px center; +} +.datagrid-mask-msg { + background: #ffffff url('images/loading.gif') no-repeat scroll 5px center; +} +.datagrid-header, +.datagrid-td-rownumber { + background-color: #efefef; + background: -webkit-linear-gradient(top,#F9F9F9 0,#efefef 100%); + background: -moz-linear-gradient(top,#F9F9F9 0,#efefef 100%); + background: -o-linear-gradient(top,#F9F9F9 0,#efefef 100%); + background: linear-gradient(to bottom,#F9F9F9 0,#efefef 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#F9F9F9,endColorstr=#efefef,GradientType=0); +} +.datagrid-cell-rownumber { + color: #000000; +} +.datagrid-resize-proxy { + background: #aac5e7; +} +.datagrid-mask { + background: #ccc; +} +.datagrid-mask-msg { + border-color: #95B8E7; +} +.datagrid-toolbar, +.datagrid-pager { + background: #F4F4F4; +} +.datagrid-header, +.datagrid-toolbar, +.datagrid-pager, +.datagrid-footer-inner { + border-color: #dddddd; +} +.datagrid-header td, +.datagrid-body td, +.datagrid-footer td { + border-color: #ccc; +} +.datagrid-htable, +.datagrid-btable, +.datagrid-ftable { + color: #000000; + border-collapse: separate; +} +.datagrid-row-alt { + background: #fafafa; +} +.datagrid-row-over, +.datagrid-header td.datagrid-header-over { + background: #eaf2ff; + color: #000000; + cursor: default; +} +.datagrid-row-selected { + background: #FBEC88; + color: #000000; +} +.datagrid-body .datagrid-editable .datagrid-editable-input { + border-color: #95B8E7; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/default/datebox.css b/src/main/webapp/js/easyui-1.3.5/themes/default/datebox.css new file mode 100644 index 00000000..6225a0d2 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/default/datebox.css @@ -0,0 +1,36 @@ +.datebox-calendar-inner { + height: 180px; +} +.datebox-button { + height: 18px; + padding: 2px 5px; + text-align: center; +} +.datebox-button a { + font-size: 12px; + font-weight: bold; + text-decoration: none; + opacity: 0.6; + filter: alpha(opacity=60); +} +.datebox-button a:hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.datebox-current, +.datebox-close { + float: left; +} +.datebox-close { + float: right; +} +.datebox .combo-arrow { + background-image: url('images/datebox_arrow.png'); + background-position: center center; +} +.datebox-button { + background-color: #F4F4F4; +} +.datebox-button a { + color: #444; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/default/dialog.css b/src/main/webapp/js/easyui-1.3.5/themes/default/dialog.css new file mode 100644 index 00000000..77552bba --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/default/dialog.css @@ -0,0 +1,30 @@ +.dialog-content { + overflow: auto; +} +.dialog-toolbar { + padding: 2px 5px; +} +.dialog-tool-separator { + float: left; + height: 24px; + border-left: 1px solid #ccc; + border-right: 1px solid #fff; + margin: 2px 1px; +} +.dialog-button { + padding: 5px; + text-align: right; +} +.dialog-button .l-btn { + margin-left: 5px; +} +.dialog-toolbar, +.dialog-button { + background: #F4F4F4; +} +.dialog-toolbar { + border-bottom: 1px solid #dddddd; +} +.dialog-button { + border-top: 1px solid #dddddd; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/default/easyui.css b/src/main/webapp/js/easyui-1.3.5/themes/default/easyui.css new file mode 100644 index 00000000..0f5891ad --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/default/easyui.css @@ -0,0 +1,2299 @@ +body { + padding:0px; + margin: 1px; +} +.panel { + overflow: hidden; + text-align: left; + padding:1px; + margin: 0; + border: 0; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.panel-header, +.panel-body { + border-width: 1px; + border-style: solid; +} +.panel-header { + padding: 5px; + position: relative; +} +.panel-title { + background: url('images/blank.gif') no-repeat; +} +.panel-header-noborder { + border-width: 0 0 1px 0; +} +.panel-body { + overflow: auto; + border-top-width: 0; + padding: 0; +} +.panel-body-noheader { + border-top-width: 1px; +} +.panel-body-noborder { + border-width: 0px; +} +.panel-with-icon { + padding-left: 18px; +} +.panel-icon, +.panel-tool { + position: absolute; + top: 50%; + margin-top: -8px; + height: 16px; + overflow: hidden; +} +.panel-icon { + left: 5px; + width: 16px; +} +.panel-tool { + right: 5px; + width: auto; +} +.panel-tool a { + display: inline-block; + width: 16px; + height: 16px; + opacity: 0.6; + filter: alpha(opacity=60); + margin: 0 0 0 2px; + vertical-align: top; +} +.panel-tool a:hover { + opacity: 1; + filter: alpha(opacity=100); + background-color: #eaf2ff; + -moz-border-radius: 3px 3px 3px 3px; + -webkit-border-radius: 3px 3px 3px 3px; + border-radius: 3px 3px 3px 3px; +} +.panel-loading { + padding: 11px 0px 10px 30px; +} +.panel-noscroll { + overflow: hidden; +} +.panel-fit, +.panel-fit body { + height: 100%; + margin: 0; + padding: 0; + border: 0; + overflow: hidden; +} +.panel-loading { + background: url('images/loading.gif') no-repeat 10px 10px; +} +.panel-tool-close { + background: url('images/panel_tools.png') no-repeat -16px 0px; +} +.panel-tool-min { + background: url('images/panel_tools.png') no-repeat 0px 0px; +} +.panel-tool-max { + background: url('images/panel_tools.png') no-repeat 0px -16px; +} +.panel-tool-restore { + background: url('images/panel_tools.png') no-repeat -16px -16px; +} +.panel-tool-collapse { + background: url('images/panel_tools.png') no-repeat -32px 0; +} +.panel-tool-expand { + background: url('images/panel_tools.png') no-repeat -32px -16px; +} +.panel-header, +.panel-body { + border-color: #95B8E7; +} +.panel-header { + background-color: #E0ECFF; + background: -webkit-linear-gradient(top,#EFF5FF 0,#E0ECFF 100%); + background: -moz-linear-gradient(top,#EFF5FF 0,#E0ECFF 100%); + background: -o-linear-gradient(top,#EFF5FF 0,#E0ECFF 100%); + background: linear-gradient(to bottom,#EFF5FF 0,#E0ECFF 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#EFF5FF,endColorstr=#E0ECFF,GradientType=0); +} +.panel-body { + background-color: #ffffff; + color: #000000; + font-size: 12px; +} +.panel-title { + font-size: 12px; + font-weight: bold; + color: #0E2D5F; + height: 16px; + line-height: 16px; +} +.accordion { + overflow: hidden; + border-width: 1px; + border-style: solid; +} +.accordion .accordion-header { + border-width: 0 0 1px; + cursor: pointer; +} +.accordion .accordion-body { + border-width: 0 0 1px; +} +.accordion-noborder { + border-width: 0; +} +.accordion-noborder .accordion-header { + border-width: 0 0 1px; +} +.accordion-noborder .accordion-body { + border-width: 0 0 1px; +} +.accordion-collapse { + background: url('images/accordion_arrows.png') no-repeat 0 0; +} +.accordion-expand { + background: url('images/accordion_arrows.png') no-repeat -16px 0; +} +.accordion { + background: #ffffff; + border-color: #95B8E7; +} +.accordion .accordion-header { + background: #E0ECFF; + filter: none; +} +.accordion .accordion-header-selected { + background: #FBEC88; +} +.accordion .accordion-header-selected .panel-title { + color: #000000; +} +.window { + overflow: hidden; + padding: 5px; + border-width: 1px; + border-style: solid; +} +.window .window-header { + background: transparent; + padding: 0px 0px 6px 0px; +} +.window .window-body { + border-width: 1px; + border-style: solid; + border-top-width: 0px; +} +.window .window-body-noheader { + border-top-width: 1px; +} +.window .window-header .panel-icon, +.window .window-header .panel-tool { + top: 50%; + margin-top: -11px; +} +.window .window-header .panel-icon { + left: 1px; +} +.window .window-header .panel-tool { + right: 1px; +} +.window .window-header .panel-with-icon { + padding-left: 18px; +} +.window-proxy { + position: absolute; + overflow: hidden; +} +.window-proxy-mask { + position: absolute; + filter: alpha(opacity=5); + opacity: 0.05; +} +.window-mask { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + filter: alpha(opacity=40); + opacity: 0.40; + font-size: 1px; + *zoom: 1; + overflow: hidden; +} +.window, +.window-shadow { + position: absolute; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.window-shadow { + background: #ccc; + -moz-box-shadow: 2px 2px 3px #cccccc; + -webkit-box-shadow: 2px 2px 3px #cccccc; + box-shadow: 2px 2px 3px #cccccc; + filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2); +} +.window, +.window .window-body { + border-color: #95B8E7; +} +.window { + background-color: #E0ECFF; + background: -webkit-linear-gradient(top,#EFF5FF 0,#E0ECFF 20%); + background: -moz-linear-gradient(top,#EFF5FF 0,#E0ECFF 20%); + background: -o-linear-gradient(top,#EFF5FF 0,#E0ECFF 20%); + background: linear-gradient(to bottom,#EFF5FF 0,#E0ECFF 20%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#EFF5FF,endColorstr=#E0ECFF,GradientType=0); +} +.window-proxy { + border: 1px dashed #95B8E7; +} +.window-proxy-mask, +.window-mask { + background: #ccc; +} +.dialog-content { + overflow: auto; +} +.dialog-toolbar { + padding: 2px 5px; +} +.dialog-tool-separator { + float: left; + height: 24px; + border-left: 1px solid #ccc; + border-right: 1px solid #fff; + margin: 2px 1px; +} +.dialog-button { + padding: 5px; + text-align: right; +} +.dialog-button .l-btn { + margin-left: 5px; +} +.dialog-toolbar, +.dialog-button { + background: #F4F4F4; +} +.dialog-toolbar { + border-bottom: 1px solid #dddddd; +} +.dialog-button { + border-top: 1px solid #dddddd; +} +.combo { + display: inline-block; + white-space: nowrap; + margin: 0; + padding: 0; + border-width: 1px; + border-style: solid; + overflow: hidden; + vertical-align: middle; +} +.combo .combo-text { + font-size: 12px; + border: 0px; + line-height: 20px; + height: 20px; + margin: 0; + padding: 0px 2px; + *margin-top: -1px; + *height: 18px; + *line-height: 18px; + _height: 18px; + _line-height: 18px; + vertical-align: baseline; +} +.combo-arrow { + width: 18px; + height: 20px; + overflow: hidden; + display: inline-block; + vertical-align: top; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.combo-arrow-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.combo-panel { + overflow: auto; +} +.combo-arrow { + background: url('images/combo_arrow.png') no-repeat center center; +} +.combo, +.combo-panel { + background-color: #ffffff; +} +.combo { + border-color: #95B8E7; + background-color: #ffffff; +} +.combo-arrow { + background-color: #E0ECFF; +} +.combo-arrow-hover { + background-color: #eaf2ff; +} +.combobox-item, +.combobox-group { + font-size: 12px; + padding: 3px; + padding-right: 0px; +} +.combobox-item-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.combobox-gitem { + padding-left: 10px; +} +.combobox-group { + font-weight: bold; +} +.combobox-item-hover { + background-color: #eaf2ff; + color: #000000; +} +.combobox-item-selected { + background-color: #FBEC88; + color: #000000; +} +.layout { + position: relative; + overflow: hidden; + margin: 0; + padding: 0; + z-index: 0; +} +.layout-panel { + position: absolute; + overflow: hidden; +} +.layout-panel-east, +.layout-panel-west { + z-index: 2; +} +.layout-panel-north, +.layout-panel-south { + z-index: 3; +} +.layout-expand { + position: absolute; + padding: 0px; + font-size: 1px; + cursor: pointer; + z-index: 1; +} +.layout-expand .panel-header, +.layout-expand .panel-body { + background: transparent; + filter: none; + overflow: hidden; +} +.layout-expand .panel-header { + border-bottom-width: 0px; +} +.layout-split-proxy-h, +.layout-split-proxy-v { + position: absolute; + font-size: 1px; + display: none; + z-index: 5; +} +.layout-split-proxy-h { + width: 5px; + cursor: e-resize; +} +.layout-split-proxy-v { + height: 5px; + cursor: n-resize; +} +.layout-mask { + position: absolute; + background: #fafafa; + filter: alpha(opacity=10); + opacity: 0.10; + z-index: 4; +} +.layout-button-up { + background: url('images/layout_arrows.png') no-repeat -16px -16px; +} +.layout-button-down { + background: url('images/layout_arrows.png') no-repeat -16px 0; +} +.layout-button-left { + background: url('images/layout_arrows.png') no-repeat 0 0; +} +.layout-button-right { + background: url('images/layout_arrows.png') no-repeat 0 -16px; +} +.layout-split-proxy-h, +.layout-split-proxy-v { + background-color: #aac5e7; +} +.layout-split-north { + border-bottom: 5px solid #E6EEF8; +} +.layout-split-south { + border-top: 5px solid #E6EEF8; +} +.layout-split-east { + border-left: 5px solid #E6EEF8; +} +.layout-split-west { + border-right: 5px solid #E6EEF8; +} +.layout-expand { + background-color: #E0ECFF; +} +.layout-expand-over { + background-color: #E0ECFF; +} +.tabs-container { + overflow: hidden; +} +.tabs-header { + border-width: 1px; + border-style: solid; + border-bottom-width: 0; + position: relative; + padding: 0; + padding-top: 2px; + overflow: hidden; +} +.tabs-header-plain { + border: 0; + background: transparent; +} +.tabs-scroller-left, +.tabs-scroller-right { + position: absolute; + top: auto; + bottom: 0; + width: 18px; + font-size: 1px; + display: none; + cursor: pointer; + border-width: 1px; + border-style: solid; +} +.tabs-scroller-left { + left: 0; +} +.tabs-scroller-right { + right: 0; +} +.tabs-tool { + position: absolute; + bottom: 0; + padding: 1px; + overflow: hidden; + border-width: 1px; + border-style: solid; +} +.tabs-header-plain .tabs-tool { + padding: 0 1px; +} +.tabs-wrap { + position: relative; + left: 0; + overflow: hidden; + width: 100%; + margin: 0; + padding: 0; +} +.tabs-scrolling { + margin-left: 18px; + margin-right: 18px; +} +.tabs-disabled { + opacity: 0.3; + filter: alpha(opacity=30); +} +.tabs { + list-style-type: none; + height: 26px; + margin: 0px; + padding: 0px; + padding-left: 4px; + width: 5000px; + border-style: solid; + border-width: 0 0 1px 0; +} +.tabs li { + float: left; + display: inline-block; + margin: 0 4px -1px 0; + padding: 0; + position: relative; + border: 0; +} +.tabs li a.tabs-inner { + display: inline-block; + text-decoration: none; + margin: 0; + padding: 0 10px; + height: 25px; + line-height: 25px; + text-align: center; + white-space: nowrap; + border-width: 1px; + border-style: solid; + -moz-border-radius: 5px 5px 0 0; + -webkit-border-radius: 5px 5px 0 0; + border-radius: 5px 5px 0 0; +} +.tabs li.tabs-selected a.tabs-inner { + font-weight: bold; + outline: none; +} +.tabs li.tabs-selected a:hover.tabs-inner { + cursor: default; + pointer: default; +} +.tabs li a.tabs-close, +.tabs-p-tool { + position: absolute; + font-size: 1px; + display: block; + height: 12px; + padding: 0; + top: 50%; + margin-top: -6px; + overflow: hidden; +} +.tabs li a.tabs-close { + width: 12px; + right: 5px; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tabs-p-tool { + right: 16px; +} +.tabs-p-tool a { + display: inline-block; + font-size: 1px; + width: 12px; + height: 12px; + margin: 0; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tabs li a:hover.tabs-close, +.tabs-p-tool a:hover { + opacity: 1; + filter: alpha(opacity=100); + cursor: hand; + cursor: pointer; +} +.tabs-with-icon { + padding-left: 18px; +} +.tabs-icon { + position: absolute; + width: 16px; + height: 16px; + left: 10px; + top: 50%; + margin-top: -8px; +} +.tabs-title { + font-size: 12px; +} +.tabs-closable { + padding-right: 8px; +} +.tabs-panels { + margin: 0px; + padding: 0px; + border-width: 1px; + border-style: solid; + border-top-width: 0; + overflow: hidden; +} +.tabs-header-bottom { + border-width: 0 1px 1px 1px; + padding: 0 0 2px 0; +} +.tabs-header-bottom .tabs { + border-width: 1px 0 0 0; +} +.tabs-header-bottom .tabs li { + margin: -1px 4px 0 0; +} +.tabs-header-bottom .tabs li a.tabs-inner { + -moz-border-radius: 0 0 5px 5px; + -webkit-border-radius: 0 0 5px 5px; + border-radius: 0 0 5px 5px; +} +.tabs-header-bottom .tabs-tool { + top: 0; +} +.tabs-header-bottom .tabs-scroller-left, +.tabs-header-bottom .tabs-scroller-right { + top: 0; + bottom: auto; +} +.tabs-panels-top { + border-width: 1px 1px 0 1px; +} +.tabs-header-left { + float: left; + border-width: 1px 0 1px 1px; + padding: 0; +} +.tabs-header-right { + float: right; + border-width: 1px 1px 1px 0; + padding: 0; +} +.tabs-header-left .tabs-wrap, +.tabs-header-right .tabs-wrap { + height: 100%; +} +.tabs-header-left .tabs { + height: 100%; + padding: 4px 0 0 4px; + border-width: 0 1px 0 0; +} +.tabs-header-right .tabs { + height: 100%; + padding: 4px 4px 0 0; + border-width: 0 0 0 1px; +} +.tabs-header-left .tabs li, +.tabs-header-right .tabs li { + display: block; + width: 100%; + position: relative; +} +.tabs-header-left .tabs li { + left: auto; + right: 0; + margin: 0 -1px 4px 0; + float: right; +} +.tabs-header-right .tabs li { + left: 0; + right: auto; + margin: 0 0 4px -1px; + float: left; +} +.tabs-header-left .tabs li a.tabs-inner { + display: block; + text-align: left; + -moz-border-radius: 5px 0 0 5px; + -webkit-border-radius: 5px 0 0 5px; + border-radius: 5px 0 0 5px; +} +.tabs-header-right .tabs li a.tabs-inner { + display: block; + text-align: left; + -moz-border-radius: 0 5px 5px 0; + -webkit-border-radius: 0 5px 5px 0; + border-radius: 0 5px 5px 0; +} +.tabs-panels-right { + float: right; + border-width: 1px 1px 1px 0; +} +.tabs-panels-left { + float: left; + border-width: 1px 0 1px 1px; +} +.tabs-header-noborder, +.tabs-panels-noborder { + border: 0px; +} +.tabs-header-plain { + border: 0px; + background: transparent; +} +.tabs-scroller-left { + background: #E0ECFF url('images/tabs_icons.png') no-repeat 1px center; +} +.tabs-scroller-right { + background: #E0ECFF url('images/tabs_icons.png') no-repeat -15px center; +} +.tabs li a.tabs-close { + background: url('images/tabs_icons.png') no-repeat -34px center; +} +.tabs li a.tabs-inner:hover { + background: #eaf2ff; + color: #000000; + filter: none; +} +.tabs li.tabs-selected a.tabs-inner { + background-color: #ffffff; + color: #0E2D5F; + background: -webkit-linear-gradient(top,#EFF5FF 0,#ffffff 100%); + background: -moz-linear-gradient(top,#EFF5FF 0,#ffffff 100%); + background: -o-linear-gradient(top,#EFF5FF 0,#ffffff 100%); + background: linear-gradient(to bottom,#EFF5FF 0,#ffffff 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#EFF5FF,endColorstr=#ffffff,GradientType=0); +} +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner { + background: -webkit-linear-gradient(top,#ffffff 0,#EFF5FF 100%); + background: -moz-linear-gradient(top,#ffffff 0,#EFF5FF 100%); + background: -o-linear-gradient(top,#ffffff 0,#EFF5FF 100%); + background: linear-gradient(to bottom,#ffffff 0,#EFF5FF 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#EFF5FF,GradientType=0); +} +.tabs-header-left .tabs li.tabs-selected a.tabs-inner { + background: -webkit-linear-gradient(left,#EFF5FF 0,#ffffff 100%); + background: -moz-linear-gradient(left,#EFF5FF 0,#ffffff 100%); + background: -o-linear-gradient(left,#EFF5FF 0,#ffffff 100%); + background: linear-gradient(to right,#EFF5FF 0,#ffffff 100%); + background-repeat: repeat-y; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#EFF5FF,endColorstr=#ffffff,GradientType=1); +} +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + background: -webkit-linear-gradient(left,#ffffff 0,#EFF5FF 100%); + background: -moz-linear-gradient(left,#ffffff 0,#EFF5FF 100%); + background: -o-linear-gradient(left,#ffffff 0,#EFF5FF 100%); + background: linear-gradient(to right,#ffffff 0,#EFF5FF 100%); + background-repeat: repeat-y; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#EFF5FF,GradientType=1); +} +.tabs li a.tabs-inner { + color: #0E2D5F; + background-color: #E0ECFF; + background: -webkit-linear-gradient(top,#EFF5FF 0,#E0ECFF 100%); + background: -moz-linear-gradient(top,#EFF5FF 0,#E0ECFF 100%); + background: -o-linear-gradient(top,#EFF5FF 0,#E0ECFF 100%); + background: linear-gradient(to bottom,#EFF5FF 0,#E0ECFF 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#EFF5FF,endColorstr=#E0ECFF,GradientType=0); +} +.tabs-header, +.tabs-tool { + background-color: #E0ECFF; +} +.tabs-header-plain { + background: transparent; +} +.tabs-header, +.tabs-scroller-left, +.tabs-scroller-right, +.tabs-tool, +.tabs, +.tabs-panels, +.tabs li a.tabs-inner, +.tabs li.tabs-selected a.tabs-inner, +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner, +.tabs-header-left .tabs li.tabs-selected a.tabs-inner, +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + border-color: #95B8E7; +} +.tabs-p-tool a:hover, +.tabs li a:hover.tabs-close, +.tabs-scroller-over { + background-color: #eaf2ff; +} +.tabs li.tabs-selected a.tabs-inner { + border-bottom: 1px solid #ffffff; +} +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner { + border-top: 1px solid #ffffff; +} +.tabs-header-left .tabs li.tabs-selected a.tabs-inner { + border-right: 1px solid #ffffff; +} +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + border-left: 1px solid #ffffff; +} +a.l-btn { + background-position: right 0; + text-decoration: none; + display: inline-block; + zoom: 1; + height: 24px; + padding-right: 18px; + cursor: pointer; + outline: none; +} +a.l-btn-plain { + border: 0; + padding: 1px 6px 1px 1px; +} +a.l-btn-disabled { + color: #ccc; + opacity: 0.5; + filter: alpha(opacity=50); + cursor: default; +} +a.l-btn span.l-btn-left { + display: inline-block; + background-position: 0 -48px; + padding: 0 0 0 18px; + line-height: 24px; + height: 24px; +} +a.l-btn-plain span.l-btn-left { + padding-left: 5px; +} +a.l-btn span span.l-btn-text { + position: relative; + display: inline-block; + vertical-align: top; + top: 4px; + width: auto; + height: 16px; + line-height: 16px; + font-size: 12px; + padding: 0; + margin: 0; +} +a.l-btn span span.l-btn-icon-left { + padding: 0 0 0 20px; + background-position: left center; +} +a.l-btn span span.l-btn-icon-right { + padding: 0 20px 0 0; + background-position: right center; +} +a.l-btn span span span.l-btn-empty { + display: inline-block; + margin: 0; + padding: 0; + width: 16px; +} +a:hover.l-btn { + background-position: right -24px; + outline: none; + text-decoration: none; +} +a:hover.l-btn span.l-btn-left { + background-position: 0 bottom; +} +a:hover.l-btn-plain { + padding: 0 5px 0 0; +} +a:hover.l-btn-disabled { + background-position: right 0; +} +a:hover.l-btn-disabled span.l-btn-left { + background-position: 0 -48px; +} +a.l-btn .l-btn-focus { + outline: #0000FF dotted thin; +} +a.l-btn { + color: #444; + background-image: url('images/linkbutton_bg.png'); + background-repeat: no-repeat; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +a.l-btn span.l-btn-left { + background-image: url('images/linkbutton_bg.png'); + background-repeat: no-repeat; +} +a.l-btn-plain, +a.l-btn-plain span.l-btn-left { + background: transparent; + border: 0; + filter: none; +} +a:hover.l-btn-plain { + background: #eaf2ff; + color: #000000; + border: 1px solid #b7d2ff; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +a.l-btn-disabled, +a:hover.l-btn-disabled { + color: #444; + filter: alpha(opacity=50); +} +a.l-btn-plain-disabled, +a:hover.l-btn-plain-disabled { + background: transparent; + filter: alpha(opacity=50); +} +a.l-btn-selected, +a:hover.l-btn-selected { + background-position: right -24px; +} +a.l-btn-selected span.l-btn-left, +a:hover.l-btn-selected span.l-btn-left { + background-position: 0 bottom; +} +a.l-btn-plain-selected, +a:hover.l-btn-plain-selected { + background: #ddd; +} +.datagrid .panel-body { + overflow: hidden; + position: relative; +} +.datagrid-view { + position: relative; + overflow: hidden; +} +.datagrid-view1, +.datagrid-view2 { + position: absolute; + overflow: hidden; + top: 0; +} +.datagrid-view1 { + left: 0; +} +.datagrid-view2 { + right: 0; +} +.datagrid-mask { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + opacity: 0.3; + filter: alpha(opacity=30); + display: none; +} +.datagrid-mask-msg { + position: absolute; + top: 50%; + margin-top: -20px; + padding: 12px 5px 10px 30px; + width: auto; + height: 16px; + border-width: 2px; + border-style: solid; + display: none; +} +.datagrid-sort-icon { + padding: 0; +} +.datagrid-toolbar { + height: auto; + padding: 1px 2px; + border-width: 0 0 1px 0; + border-style: solid; +} +.datagrid-btn-separator { + float: left; + height: 24px; + border-left: 1px solid #ccc; + border-right: 1px solid #fff; + margin: 2px 1px; +} +.datagrid .datagrid-pager { + display: block; + margin: 0; + border-width: 1px 0 0 0; + border-style: solid; +} +.datagrid .datagrid-pager-top { + border-width: 0 0 1px 0; +} +.datagrid-header { + overflow: hidden; + cursor: default; + border-width: 0 0 1px 0; + border-style: solid; +} +.datagrid-header-inner { + float: left; + width: 10000px; +} +.datagrid-header-row, +.datagrid-row { + height: 25px; +} +.datagrid-header td, +.datagrid-body td, +.datagrid-footer td { + border-width: 0 1px 1px 0; + border-style: dotted; + margin: 0; + padding: 0; +} +.datagrid-cell, +.datagrid-cell-group, +.datagrid-header-rownumber, +.datagrid-cell-rownumber { + margin: 0; + padding: 0 4px; + white-space: nowrap; + word-wrap: normal; + overflow: hidden; + height: 18px; + line-height: 18px; + font-size: 12px; +} +.datagrid-header .datagrid-cell { + height: auto; +} +.datagrid-header .datagrid-cell span { + font-size: 12px; +} +.datagrid-cell-group { + text-align: center; +} +.datagrid-header-rownumber, +.datagrid-cell-rownumber { + width: 25px; + text-align: center; + margin: 0; + padding: 0; +} +.datagrid-body { + margin: 0; + padding: 0; + overflow: auto; + zoom: 1; +} +.datagrid-view1 .datagrid-body-inner { + padding-bottom: 20px; +} +.datagrid-view1 .datagrid-body { + overflow: hidden; +} +.datagrid-footer { + overflow: hidden; +} +.datagrid-footer-inner { + border-width: 1px 0 0 0; + border-style: solid; + width: 10000px; + float: left; +} +.datagrid-row-editing .datagrid-cell { + height: auto; +} +.datagrid-header-check, +.datagrid-cell-check { + padding: 0; + width: 27px; + height: 18px; + font-size: 1px; + text-align: center; + overflow: hidden; +} +.datagrid-header-check input, +.datagrid-cell-check input { + margin: 0; + padding: 0; + width: 15px; + height: 18px; +} +.datagrid-resize-proxy { + position: absolute; + width: 1px; + height: 10000px; + top: 0; + cursor: e-resize; + display: none; +} +.datagrid-body .datagrid-editable { + margin: 0; + padding: 0; +} +.datagrid-body .datagrid-editable table { + width: 100%; + height: 100%; +} +.datagrid-body .datagrid-editable td { + border: 0; + margin: 0; + padding: 0; +} +.datagrid-body .datagrid-editable .datagrid-editable-input { + margin: 0; + padding: 2px; + border-width: 1px; + border-style: solid; +} +.datagrid-sort-desc .datagrid-sort-icon { + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat -16px center; +} +.datagrid-sort-asc .datagrid-sort-icon { + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat 0px center; +} +.datagrid-row-collapse { + background: url('images/datagrid_icons.png') no-repeat -48px center; +} +.datagrid-row-expand { + background: url('images/datagrid_icons.png') no-repeat -32px center; +} +.datagrid-mask-msg { + background: #ffffff url('images/loading.gif') no-repeat scroll 5px center; +} +.datagrid-header, +.datagrid-td-rownumber { + background-color: #efefef; + background: -webkit-linear-gradient(top,#F9F9F9 0,#efefef 100%); + background: -moz-linear-gradient(top,#F9F9F9 0,#efefef 100%); + background: -o-linear-gradient(top,#F9F9F9 0,#efefef 100%); + background: linear-gradient(to bottom,#F9F9F9 0,#efefef 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#F9F9F9,endColorstr=#efefef,GradientType=0); +} +.datagrid-cell-rownumber { + color: #000000; +} +.datagrid-resize-proxy { + background: #aac5e7; +} +.datagrid-mask { + background: #ccc; +} +.datagrid-mask-msg { + border-color: #95B8E7; +} +.datagrid-toolbar, +.datagrid-pager { + background: #F4F4F4; +} +.datagrid-header, +.datagrid-toolbar, +.datagrid-pager, +.datagrid-footer-inner { + border-color: #dddddd; +} +.datagrid-header td, +.datagrid-body td, +.datagrid-footer td { + border-color: #ccc; +} +.datagrid-htable, +.datagrid-btable, +.datagrid-ftable { + color: #000000; + border-collapse: separate; +} +.datagrid-row-alt { + background: #fafafa; +} +.datagrid-row-over, +.datagrid-header td.datagrid-header-over { + background: #EEFBEC; + color: #000000; + cursor: default; +} +.datagrid-row-selected { + background: #FBEC88; + color: #000000; +} +.datagrid-body .datagrid-editable .datagrid-editable-input { + border-color: #95B8E7; +} +.propertygrid .datagrid-view1 .datagrid-body td { + padding-bottom: 1px; + border-width: 0 1px 0 0; +} +.propertygrid .datagrid-group { + height: 21px; + overflow: hidden; + border-width: 0 0 1px 0; + border-style: solid; +} +.propertygrid .datagrid-group span { + font-weight: bold; +} +.propertygrid .datagrid-view1 .datagrid-body td { + border-color: #dddddd; +} +.propertygrid .datagrid-view1 .datagrid-group { + border-color: #E0ECFF; +} +.propertygrid .datagrid-view2 .datagrid-group { + border-color: #dddddd; +} +.propertygrid .datagrid-group, +.propertygrid .datagrid-view1 .datagrid-body, +.propertygrid .datagrid-view1 .datagrid-row-over, +.propertygrid .datagrid-view1 .datagrid-row-selected { + background: #E0ECFF; +} +.pagination { + zoom: 1; +} +.pagination table { + float: left; + height: 30px; +} +.pagination td { + border: 0; +} +.pagination-btn-separator { + float: left; + height: 24px; + border-left: 1px solid #ccc; + border-right: 1px solid #fff; + margin: 3px 1px; +} +.pagination .pagination-num { + border-width: 1px; + border-style: solid; + margin: 0 2px; + padding: 2px; + width: 2em; + height: auto; +} +.pagination-page-list { + margin: 0px 6px; + padding: 1px 2px; + width: auto; + height: auto; + border-width: 1px; + border-style: solid; +} +.pagination-info { + float: right; + margin: 0 6px 0 0; + padding: 0; + height: 30px; + line-height: 30px; + font-size: 12px; +} +.pagination span { + font-size: 12px; +} +a.pagination-link { + padding: 1px; +} +a.pagination-link span.l-btn-left { + padding-left: 0; +} +a.pagination-link span span.l-btn-text { + width: 24px; + text-align: center; +} +a:hover.pagination-link { + padding: 0; +} +.pagination-first { + background: url('images/pagination_icons.png') no-repeat 0 center; +} +.pagination-prev { + background: url('images/pagination_icons.png') no-repeat -16px center; +} +.pagination-next { + background: url('images/pagination_icons.png') no-repeat -32px center; +} +.pagination-last { + background: url('images/pagination_icons.png') no-repeat -48px center; +} +.pagination-load { + background: url('images/pagination_icons.png') no-repeat -64px center; +} +.pagination-loading { + background: url('images/loading.gif') no-repeat center center; +} +.pagination-page-list, +.pagination .pagination-num { + border-color: #95B8E7; +} +.calendar { + border-width: 1px; + border-style: solid; + padding: 1px; + overflow: hidden; +} +.calendar table { + border-collapse: separate; + font-size: 12px; + width: 100%; + height: 100%; +} +.calendar table td, +.calendar table th { + font-size: 12px; +} +.calendar-noborder { + border: 0; +} +.calendar-header { + position: relative; + height: 22px; +} +.calendar-title { + text-align: center; + height: 22px; +} +.calendar-title span { + position: relative; + display: inline-block; + top: 2px; + padding: 0 3px; + height: 18px; + line-height: 18px; + font-size: 12px; + cursor: pointer; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-prevmonth, +.calendar-nextmonth, +.calendar-prevyear, +.calendar-nextyear { + position: absolute; + top: 50%; + margin-top: -7px; + width: 14px; + height: 14px; + cursor: pointer; + font-size: 1px; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-prevmonth { + left: 20px; + background: url('images/calendar_arrows.png') no-repeat -18px -2px; +} +.calendar-nextmonth { + right: 20px; + background: url('images/calendar_arrows.png') no-repeat -34px -2px; +} +.calendar-prevyear { + left: 3px; + background: url('images/calendar_arrows.png') no-repeat -1px -2px; +} +.calendar-nextyear { + right: 3px; + background: url('images/calendar_arrows.png') no-repeat -49px -2px; +} +.calendar-body { + position: relative; +} +.calendar-body th, +.calendar-body td { + text-align: center; +} +.calendar-day { + border: 0; + padding: 1px; + cursor: pointer; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-other-month { + opacity: 0.3; + filter: alpha(opacity=30); +} +.calendar-menu { + position: absolute; + top: 0; + left: 0; + width: 180px; + height: 150px; + padding: 5px; + font-size: 12px; + display: none; + overflow: hidden; +} +.calendar-menu-year-inner { + text-align: center; + padding-bottom: 5px; +} +.calendar-menu-year { + width: 40px; + text-align: center; + border-width: 1px; + border-style: solid; + margin: 0; + padding: 2px; + font-weight: bold; + font-size: 12px; +} +.calendar-menu-prev, +.calendar-menu-next { + display: inline-block; + width: 21px; + height: 21px; + vertical-align: top; + cursor: pointer; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-menu-prev { + margin-right: 10px; + background: url('images/calendar_arrows.png') no-repeat 2px 2px; +} +.calendar-menu-next { + margin-left: 10px; + background: url('images/calendar_arrows.png') no-repeat -45px 2px; +} +.calendar-menu-month { + text-align: center; + cursor: pointer; + font-weight: bold; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-body th, +.calendar-menu-month { + color: #4d4d4d; +} +.calendar-day { + color: #000000; +} +.calendar-sunday { + color: #CC2222; +} +.calendar-saturday { + color: #00ee00; +} +.calendar-today { + color: #0000ff; +} +.calendar-menu-year { + border-color: #95B8E7; +} +.calendar { + border-color: #95B8E7; +} +.calendar-header { + background: #E0ECFF; +} +.calendar-body, +.calendar-menu { + background: #ffffff; +} +.calendar-body th { + background: #F4F4F4; +} +.calendar-hover, +.calendar-nav-hover, +.calendar-menu-hover { + background-color: #eaf2ff; + color: #000000; +} +.calendar-hover { + border: 1px solid #b7d2ff; + padding: 0; +} +.calendar-selected { + background-color: #FBEC88; + color: #000000; + border: 1px solid #E2C608; + padding: 0; +} +.datebox-calendar-inner { + height: 180px; +} +.datebox-button { + height: 18px; + padding: 2px 5px; + text-align: center; +} +.datebox-button a { + font-size: 12px; + font-weight: bold; + text-decoration: none; + opacity: 0.6; + filter: alpha(opacity=60); +} +.datebox-button a:hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.datebox-current, +.datebox-close { + float: left; +} +.datebox-close { + float: right; +} +.datebox .combo-arrow { + background-image: url('images/datebox_arrow.png'); + background-position: center center; +} +.datebox-button { + background-color: #F4F4F4; +} +.datebox-button a { + color: #444; +} +.spinner { + display: inline-block; + white-space: nowrap; + margin: 0; + padding: 0; + border-width: 1px; + border-style: solid; + overflow: hidden; + vertical-align: middle; +} +.spinner .spinner-text { + font-size: 12px; + border: 0px; + line-height: 20px; + height: 20px; + margin: 0; + padding: 0 2px; + *margin-top: -1px; + *height: 18px; + *line-height: 18px; + _height: 18px; + _line-height: 18px; + vertical-align: baseline; +} +.spinner-arrow { + display: inline-block; + overflow: hidden; + vertical-align: top; + margin: 0; + padding: 0; +} +.spinner-arrow-up, +.spinner-arrow-down { + opacity: 0.6; + filter: alpha(opacity=60); + display: block; + font-size: 1px; + width: 18px; + height: 10px; +} +.spinner-arrow-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.spinner-arrow-up { + background: url('images/spinner_arrows.png') no-repeat 1px center; +} +.spinner-arrow-down { + background: url('images/spinner_arrows.png') no-repeat -15px center; +} +.spinner { + border-color: #95B8E7; +} +.spinner-arrow { + background-color: #E0ECFF; +} +.spinner-arrow-hover { + background-color: #eaf2ff; +} +.progressbar { + border-width: 1px; + border-style: solid; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; + overflow: hidden; + position: relative; +} +.progressbar-text { + text-align: center; + position: absolute; +} +.progressbar-value { + position: relative; + overflow: hidden; + width: 0; + -moz-border-radius: 5px 0 0 5px; + -webkit-border-radius: 5px 0 0 5px; + border-radius: 5px 0 0 5px; +} +.progressbar { + border-color: #95B8E7; +} +.progressbar-text { + color: #000000; + font-size: 12px; +} +.progressbar-value .progressbar-text { + background-color: #FBEC88; + color: #000000; +} +.searchbox { + display: inline-block; + white-space: nowrap; + margin: 0; + padding: 0; + border-width: 1px; + border-style: solid; + overflow: hidden; +} +.searchbox .searchbox-text { + font-size: 12px; + border: 0; + margin: 0; + padding: 0; + line-height: 20px; + height: 20px; + *margin-top: -1px; + *height: 18px; + *line-height: 18px; + _height: 18px; + _line-height: 18px; + vertical-align: baseline; +} +.searchbox .searchbox-prompt { + font-size: 12px; + color: #ccc; +} +.searchbox-button { + width: 18px; + height: 20px; + overflow: hidden; + display: inline-block; + vertical-align: top; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.searchbox-button-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.searchbox a.l-btn-plain { + height: 20px; + border: 0; + padding: 0 6px 0 0; + vertical-align: top; + opacity: 0.6; + filter: alpha(opacity=60); + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox a.l-btn .l-btn-left { + padding: 0 0 0 4px; +} +.searchbox a.l-btn .l-btn-text { + position: static; + vertical-align: top; +} +.searchbox a.l-btn-plain:hover { + border: 0; + padding: 0 6px 0 0; + opacity: 1.0; + filter: alpha(opacity=100); + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox a.m-btn-plain-active { + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox-button { + background: url('images/searchbox_button.png') no-repeat center center; +} +.searchbox { + border-color: #95B8E7; + background-color: #fff; +} +.searchbox a.l-btn-plain { + background: #E0ECFF; +} +.slider-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.slider-h { + height: 22px; +} +.slider-v { + width: 22px; +} +.slider-inner { + position: relative; + height: 6px; + top: 7px; + border-width: 1px; + border-style: solid; + border-radius: 5px; +} +.slider-handle { + position: absolute; + display: block; + outline: none; + width: 20px; + height: 20px; + top: -7px; + margin-left: -10px; +} +.slider-tip { + position: absolute; + display: inline-block; + line-height: 12px; + font-size: 12px; + white-space: nowrap; + top: -22px; +} +.slider-rule { + position: relative; + top: 15px; +} +.slider-rule span { + position: absolute; + display: inline-block; + font-size: 0; + height: 5px; + border-width: 0 0 0 1px; + border-style: solid; +} +.slider-rulelabel { + position: relative; + top: 20px; +} +.slider-rulelabel span { + position: absolute; + display: inline-block; + font-size: 12px; +} +.slider-v .slider-inner { + width: 6px; + left: 7px; + top: 0; + float: left; +} +.slider-v .slider-handle { + left: 3px; + margin-top: -10px; +} +.slider-v .slider-tip { + left: -10px; + margin-top: -6px; +} +.slider-v .slider-rule { + float: left; + top: 0; + left: 16px; +} +.slider-v .slider-rule span { + width: 5px; + height: 'auto'; + border-left: 0; + border-width: 1px 0 0 0; + border-style: solid; +} +.slider-v .slider-rulelabel { + float: left; + top: 0; + left: 23px; +} +.slider-handle { + background: url('images/slider_handle.png') no-repeat; +} +.slider-inner { + border-color: #95B8E7; + background: #E0ECFF; +} +.slider-rule span { + border-color: #95B8E7; +} +.slider-rulelabel span { + color: #000000; +} +.menu { + position: absolute; + margin: 0; + padding: 2px; + border-width: 1px; + border-style: solid; + overflow: hidden; +} +.menu-item { + position: relative; + margin: 0; + padding: 0; + overflow: hidden; + white-space: nowrap; + cursor: pointer; + border-width: 1px; + border-style: solid; +} +.menu-text { + height: 20px; + line-height: 20px; + float: left; + padding-left: 28px; +} +.menu-icon { + position: absolute; + width: 16px; + height: 16px; + left: 2px; + top: 50%; + margin-top: -8px; +} +.menu-rightarrow { + position: absolute; + width: 16px; + height: 16px; + right: 0; + top: 50%; + margin-top: -8px; +} +.menu-line { + position: absolute; + left: 26px; + top: 0; + height: 2000px; + font-size: 1px; +} +.menu-sep { + margin: 3px 0px 3px 25px; + font-size: 1px; +} +.menu-active { + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.menu-item-disabled { + opacity: 0.5; + filter: alpha(opacity=50); + cursor: default; +} +.menu-text, +.menu-text span { + font-size: 12px; +} +.menu-shadow { + position: absolute; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; + background: #ccc; + -moz-box-shadow: 2px 2px 3px #cccccc; + -webkit-box-shadow: 2px 2px 3px #cccccc; + box-shadow: 2px 2px 3px #cccccc; + filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2); +} +.menu-rightarrow { + background: url('images/menu_arrows.png') no-repeat -32px center; +} +.menu-line { + border-left: 1px solid #ccc; + border-right: 1px solid #fff; +} +.menu-sep { + border-top: 1px solid #ccc; + border-bottom: 1px solid #fff; +} +.menu { + background-color: #fafafa; + border-color: #ddd; + color: #444; +} +.menu-content { + background: #ffffff; +} +.menu-item { + border-color: transparent; + _border-color: #fafafa; +} +.menu-active { + border-color: #b7d2ff; + color: #000000; + background: #eaf2ff; +} +.menu-active-disabled { + border-color: transparent; + background: transparent; + color: #444; +} +.m-btn-downarrow { + display: inline-block; + width: 16px; + height: 16px; + line-height: 16px; + font-size: 12px; + _vertical-align: middle; +} +a.m-btn-active { + background-position: bottom right; +} +a.m-btn-active span.l-btn-left { + background-position: bottom left; +} +a.m-btn-plain-active { + background: transparent; + padding: 0 5px 0 0; + border-width: 1px; + border-style: solid; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.m-btn-downarrow { + background: url('images/menu_arrows.png') no-repeat 2px center; +} +a.m-btn-plain-active { + border-color: #b7d2ff; + background-color: #eaf2ff; + color: #000000; +} +.s-btn-downarrow { + display: inline-block; + margin: 0 0 0 4px; + padding: 0 0 0 1px; + width: 14px; + height: 16px; + line-height: 16px; + border-width: 0; + border-style: solid; + font-size: 12px; + _vertical-align: middle; +} +a.s-btn-active { + background-position: bottom right; +} +a.s-btn-active span.l-btn-left { + background-position: bottom left; +} +a.s-btn-plain-active { + background: transparent; + padding: 0 5px 0 0; + border-width: 1px; + border-style: solid; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.s-btn-downarrow { + background: url('images/menu_arrows.png') no-repeat 2px center; + border-color: #aac5e7; +} +a:hover.l-btn .s-btn-downarrow, +a.s-btn-active .s-btn-downarrow, +a.s-btn-plain-active .s-btn-downarrow { + background-position: 1px center; + padding: 0; + border-width: 0 0 0 1px; +} +a.s-btn-plain-active { + border-color: #b7d2ff; + background-color: #eaf2ff; + color: #000000; +} +.messager-body { + padding: 10px; + overflow: hidden; +} +.messager-button { + text-align: center; + padding-top: 10px; +} +.messager-icon { + float: left; + width: 32px; + height: 32px; + margin: 0 10px 10px 0; +} +.messager-error { + background: url('images/messager_icons.png') no-repeat scroll -64px 0; +} +.messager-info { + background: url('images/messager_icons.png') no-repeat scroll 0 0; +} +.messager-question { + background: url('images/messager_icons.png') no-repeat scroll -32px 0; +} +.messager-warning { + background: url('images/messager_icons.png') no-repeat scroll -96px 0; +} +.messager-progress { + padding: 10px; +} +.messager-p-msg { + margin-bottom: 5px; +} +.messager-body .messager-input { + width: 100%; + padding: 1px 0; + border: 1px solid #95B8E7; +} +.tree { + margin: 0; + padding: 0; + list-style-type: none; +} +.tree li { + white-space: nowrap; +} +.tree li ul { + list-style-type: none; + margin: 0; + padding: 0; +} +.tree-node { + height: 18px; + white-space: nowrap; + cursor: pointer; +} +.tree-hit { + cursor: pointer; +} +.tree-expanded, +.tree-collapsed, +.tree-folder, +.tree-file, +.tree-checkbox, +.tree-indent { + display: inline-block; + width: 16px; + height: 18px; + vertical-align: top; + overflow: hidden; +} +.tree-expanded { + background: url('images/tree_icons.png') no-repeat -18px 0px; +} +.tree-expanded-hover { + background: url('images/tree_icons.png') no-repeat -50px 0px; +} +.tree-collapsed { + background: url('images/tree_icons.png') no-repeat 0px 0px; +} +.tree-collapsed-hover { + background: url('images/tree_icons.png') no-repeat -32px 0px; +} +.tree-lines .tree-expanded, +.tree-lines .tree-root-first .tree-expanded { + background: url('images/tree_icons.png') no-repeat -144px 0; +} +.tree-lines .tree-collapsed, +.tree-lines .tree-root-first .tree-collapsed { + background: url('images/tree_icons.png') no-repeat -128px 0; +} +.tree-lines .tree-node-last .tree-expanded, +.tree-lines .tree-root-one .tree-expanded { + background: url('images/tree_icons.png') no-repeat -80px 0; +} +.tree-lines .tree-node-last .tree-collapsed, +.tree-lines .tree-root-one .tree-collapsed { + background: url('images/tree_icons.png') no-repeat -64px 0; +} +.tree-line { + background: url('images/tree_icons.png') no-repeat -176px 0; +} +.tree-join { + background: url('images/tree_icons.png') no-repeat -192px 0; +} +.tree-joinbottom { + background: url('images/tree_icons.png') no-repeat -160px 0; +} +.tree-folder { + background: url('images/tree_icons.png') no-repeat -208px 0; +} +.tree-folder-open { + background: url('images/tree_icons.png') no-repeat -224px 0; +} +.tree-file { + background: url('images/tree_icons.png') no-repeat -240px 0; +} +.tree-loading { + background: url('images/loading.gif') no-repeat center center; +} +.tree-checkbox0 { + background: url('images/tree_icons.png') no-repeat -208px -18px; +} +.tree-checkbox1 { + background: url('images/tree_icons.png') no-repeat -224px -18px; +} +.tree-checkbox2 { + background: url('images/tree_icons.png') no-repeat -240px -18px; +} +.tree-title { + font-size: 12px; + display: inline-block; + text-decoration: none; + vertical-align: top; + white-space: nowrap; + padding: 0 2px; + height: 18px; + line-height: 18px; +} +.tree-node-proxy { + font-size: 12px; + line-height: 20px; + padding: 0 2px 0 20px; + border-width: 1px; + border-style: solid; + z-index: 9900000; +} +.tree-dnd-icon { + display: inline-block; + position: absolute; + width: 16px; + height: 18px; + left: 2px; + top: 50%; + margin-top: -9px; +} +.tree-dnd-yes { + background: url('images/tree_icons.png') no-repeat -256px 0; +} +.tree-dnd-no { + background: url('images/tree_icons.png') no-repeat -256px -18px; +} +.tree-node-top { + border-top: 1px dotted red; +} +.tree-node-bottom { + border-bottom: 1px dotted red; +} +.tree-node-append .tree-title { + border: 1px dotted red; +} +.tree-editor { + border: 1px solid #ccc; + font-size: 12px; + height: 14px !important; + height: 18px; + line-height: 14px; + padding: 1px 2px; + width: 80px; + position: absolute; + top: 0; +} +.tree-node-proxy { + background-color: #ffffff; + color: #000000; + border-color: #95B8E7; +} +.tree-node-hover { + background: #eaf2ff; + color: #000000; +} +.tree-node-selected { + background: #FBEC88; + color: #000000; +} +.validatebox-invalid { + background-image: url('images/validatebox_warning.png'); + background-repeat: no-repeat; + background-position: right center; + border-color: #ffa8a8; + background-color: #fff3f3; + color: #000; +} +.tooltip { + position: absolute; + display: none; + z-index: 9900000; + outline: none; + opacity: 1; + filter: alpha(opacity=100); + padding: 5px; + border-width: 1px; + border-style: solid; + border-radius: 5px; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.tooltip-content { + font-size: 12px; +} +.tooltip-arrow-outer, +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + line-height: 0; + font-size: 0; + border-style: solid; + border-width: 6px; + border-color: transparent; + _border-color: tomato; + _filter: chroma(color=tomato); +} +.tooltip-right .tooltip-arrow-outer { + left: 0; + top: 50%; + margin: -6px 0 0 -13px; +} +.tooltip-right .tooltip-arrow { + left: 0; + top: 50%; + margin: -6px 0 0 -12px; +} +.tooltip-left .tooltip-arrow-outer { + right: 0; + top: 50%; + margin: -6px -13px 0 0; +} +.tooltip-left .tooltip-arrow { + right: 0; + top: 50%; + margin: -6px -12px 0 0; +} +.tooltip-top .tooltip-arrow-outer { + bottom: 0; + left: 50%; + margin: 0 0 -13px -6px; +} +.tooltip-top .tooltip-arrow { + bottom: 0; + left: 50%; + margin: 0 0 -12px -6px; +} +.tooltip-bottom .tooltip-arrow-outer { + top: 0; + left: 50%; + margin: -13px 0 0 -6px; +} +.tooltip-bottom .tooltip-arrow { + top: 0; + left: 50%; + margin: -12px 0 0 -6px; +} +.tooltip { + background-color: #ffffff; + border-color: #95B8E7; + color: #000000; +} +.tooltip-right .tooltip-arrow-outer { + border-right-color: #95B8E7; +} +.tooltip-right .tooltip-arrow { + border-right-color: #ffffff; +} +.tooltip-left .tooltip-arrow-outer { + border-left-color: #95B8E7; +} +.tooltip-left .tooltip-arrow { + border-left-color: #ffffff; +} +.tooltip-top .tooltip-arrow-outer { + border-top-color: #95B8E7; +} +.tooltip-top .tooltip-arrow { + border-top-color: #ffffff; +} +.tooltip-bottom .tooltip-arrow-outer { + border-bottom-color: #95B8E7; +} +.tooltip-bottom .tooltip-arrow { + border-bottom-color: #ffffff; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/default/images/Thumbs.db b/src/main/webapp/js/easyui-1.3.5/themes/default/images/Thumbs.db new file mode 100644 index 00000000..5f257a2a Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/default/images/Thumbs.db differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/default/images/accordion_arrows.png b/src/main/webapp/js/easyui-1.3.5/themes/default/images/accordion_arrows.png new file mode 100644 index 00000000..720835f6 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/default/images/accordion_arrows.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/default/images/bg_positionl.gif b/src/main/webapp/js/easyui-1.3.5/themes/default/images/bg_positionl.gif new file mode 100644 index 00000000..3a39d13b Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/default/images/bg_positionl.gif differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/default/images/bg_positionm.jpg b/src/main/webapp/js/easyui-1.3.5/themes/default/images/bg_positionm.jpg new file mode 100644 index 00000000..a6c2108e Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/default/images/bg_positionm.jpg differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/default/images/bg_positionr.jpg b/src/main/webapp/js/easyui-1.3.5/themes/default/images/bg_positionr.jpg new file mode 100644 index 00000000..3fffa172 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/default/images/bg_positionr.jpg differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/default/images/bg_positionrbak.jpg b/src/main/webapp/js/easyui-1.3.5/themes/default/images/bg_positionrbak.jpg new file mode 100644 index 00000000..9b3aaaff Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/default/images/bg_positionrbak.jpg differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/default/images/bg_positionrpos.jpg b/src/main/webapp/js/easyui-1.3.5/themes/default/images/bg_positionrpos.jpg new file mode 100644 index 00000000..b94d1aa6 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/default/images/bg_positionrpos.jpg differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/default/images/blank.gif b/src/main/webapp/js/easyui-1.3.5/themes/default/images/blank.gif new file mode 100644 index 00000000..1d11fa9a Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/default/images/blank.gif differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/default/images/calendar_arrows.png b/src/main/webapp/js/easyui-1.3.5/themes/default/images/calendar_arrows.png new file mode 100644 index 00000000..430c4ad6 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/default/images/calendar_arrows.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/default/images/combo_arrow.png b/src/main/webapp/js/easyui-1.3.5/themes/default/images/combo_arrow.png new file mode 100644 index 00000000..2e59fb9f Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/default/images/combo_arrow.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/default/images/datagrid_icons.png b/src/main/webapp/js/easyui-1.3.5/themes/default/images/datagrid_icons.png new file mode 100644 index 00000000..747ac4d1 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/default/images/datagrid_icons.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/default/images/datebox_arrow.png b/src/main/webapp/js/easyui-1.3.5/themes/default/images/datebox_arrow.png new file mode 100644 index 00000000..783c8335 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/default/images/datebox_arrow.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/default/images/layout_arrows.png b/src/main/webapp/js/easyui-1.3.5/themes/default/images/layout_arrows.png new file mode 100644 index 00000000..6f416542 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/default/images/layout_arrows.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/default/images/linkbutton_bg.png b/src/main/webapp/js/easyui-1.3.5/themes/default/images/linkbutton_bg.png new file mode 100644 index 00000000..fc66bd2c Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/default/images/linkbutton_bg.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/default/images/loading.gif b/src/main/webapp/js/easyui-1.3.5/themes/default/images/loading.gif new file mode 100644 index 00000000..68f01d04 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/default/images/loading.gif differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/default/images/menu_arrows.png b/src/main/webapp/js/easyui-1.3.5/themes/default/images/menu_arrows.png new file mode 100644 index 00000000..b986842e Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/default/images/menu_arrows.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/default/images/messager_icons.png b/src/main/webapp/js/easyui-1.3.5/themes/default/images/messager_icons.png new file mode 100644 index 00000000..62c18c13 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/default/images/messager_icons.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/default/images/pagination_icons.png b/src/main/webapp/js/easyui-1.3.5/themes/default/images/pagination_icons.png new file mode 100644 index 00000000..616f0bdd Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/default/images/pagination_icons.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/default/images/panel_tools.png b/src/main/webapp/js/easyui-1.3.5/themes/default/images/panel_tools.png new file mode 100644 index 00000000..19ecc946 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/default/images/panel_tools.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/default/images/searchbox_button.png b/src/main/webapp/js/easyui-1.3.5/themes/default/images/searchbox_button.png new file mode 100644 index 00000000..6dd19315 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/default/images/searchbox_button.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/default/images/slider_handle.png b/src/main/webapp/js/easyui-1.3.5/themes/default/images/slider_handle.png new file mode 100644 index 00000000..b9802bae Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/default/images/slider_handle.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/default/images/spinner_arrows.png b/src/main/webapp/js/easyui-1.3.5/themes/default/images/spinner_arrows.png new file mode 100644 index 00000000..b68592de Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/default/images/spinner_arrows.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/default/images/tabs_icons.png b/src/main/webapp/js/easyui-1.3.5/themes/default/images/tabs_icons.png new file mode 100644 index 00000000..4d29966d Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/default/images/tabs_icons.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/default/images/tree_icons.png b/src/main/webapp/js/easyui-1.3.5/themes/default/images/tree_icons.png new file mode 100644 index 00000000..e9be4f3a Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/default/images/tree_icons.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/default/images/validatebox_warning.png b/src/main/webapp/js/easyui-1.3.5/themes/default/images/validatebox_warning.png new file mode 100644 index 00000000..2b3d4f05 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/default/images/validatebox_warning.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/default/layout.css b/src/main/webapp/js/easyui-1.3.5/themes/default/layout.css new file mode 100644 index 00000000..0292cf59 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/default/layout.css @@ -0,0 +1,91 @@ +.layout { + position: relative; + overflow: hidden; + margin: 0; + padding: 0; + z-index: 0; +} +.layout-panel { + position: absolute; + overflow: hidden; +} +.layout-panel-east, +.layout-panel-west { + z-index: 2; +} +.layout-panel-north, +.layout-panel-south { + z-index: 3; +} +.layout-expand { + position: absolute; + padding: 0px; + font-size: 1px; + cursor: pointer; + z-index: 1; +} +.layout-expand .panel-header, +.layout-expand .panel-body { + background: transparent; + filter: none; + overflow: hidden; +} +.layout-expand .panel-header { + border-bottom-width: 0px; +} +.layout-split-proxy-h, +.layout-split-proxy-v { + position: absolute; + font-size: 1px; + display: none; + z-index: 5; +} +.layout-split-proxy-h { + width: 5px; + cursor: e-resize; +} +.layout-split-proxy-v { + height: 5px; + cursor: n-resize; +} +.layout-mask { + position: absolute; + background: #fafafa; + filter: alpha(opacity=10); + opacity: 0.10; + z-index: 4; +} +.layout-button-up { + background: url('images/layout_arrows.png') no-repeat -16px -16px; +} +.layout-button-down { + background: url('images/layout_arrows.png') no-repeat -16px 0; +} +.layout-button-left { + background: url('images/layout_arrows.png') no-repeat 0 0; +} +.layout-button-right { + background: url('images/layout_arrows.png') no-repeat 0 -16px; +} +.layout-split-proxy-h, +.layout-split-proxy-v { + background-color: #aac5e7; +} +.layout-split-north { + border-bottom: 5px solid #E6EEF8; +} +.layout-split-south { + border-top: 5px solid #E6EEF8; +} +.layout-split-east { + border-left: 5px solid #E6EEF8; +} +.layout-split-west { + border-right: 5px solid #E6EEF8; +} +.layout-expand { + background-color: #E0ECFF; +} +.layout-expand-over { + background-color: #E0ECFF; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/default/linkbutton.css b/src/main/webapp/js/easyui-1.3.5/themes/default/linkbutton.css new file mode 100644 index 00000000..448625f0 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/default/linkbutton.css @@ -0,0 +1,124 @@ +a.l-btn { + background-position: right 0; + text-decoration: none; + display: inline-block; + zoom: 1; + height: 24px; + padding-right: 18px; + cursor: pointer; + outline: none; +} +a.l-btn-plain { + border: 0; + padding: 1px 6px 1px 1px; +} +a.l-btn-disabled { + color: #ccc; + opacity: 0.5; + filter: alpha(opacity=50); + cursor: default; +} +a.l-btn span.l-btn-left { + display: inline-block; + background-position: 0 -48px; + padding: 0 0 0 18px; + line-height: 24px; + height: 24px; +} +a.l-btn-plain span.l-btn-left { + padding-left: 5px; +} +a.l-btn span span.l-btn-text { + position: relative; + display: inline-block; + vertical-align: top; + top: 4px; + width: auto; + height: 16px; + line-height: 16px; + font-size: 12px; + padding: 0; + margin: 0; +} +a.l-btn span span.l-btn-icon-left { + padding: 0 0 0 20px; + background-position: left center; +} +a.l-btn span span.l-btn-icon-right { + padding: 0 20px 0 0; + background-position: right center; +} +a.l-btn span span span.l-btn-empty { + display: inline-block; + margin: 0; + padding: 0; + width: 16px; +} +a:hover.l-btn { + background-position: right -24px; + outline: none; + text-decoration: none; +} +a:hover.l-btn span.l-btn-left { + background-position: 0 bottom; +} +a:hover.l-btn-plain { + padding: 0 5px 0 0; +} +a:hover.l-btn-disabled { + background-position: right 0; +} +a:hover.l-btn-disabled span.l-btn-left { + background-position: 0 -48px; +} +a.l-btn .l-btn-focus { + outline: #0000FF dotted thin; +} +a.l-btn { + color: #444; + background-image: url('images/linkbutton_bg.png'); + background-repeat: no-repeat; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +a.l-btn span.l-btn-left { + background-image: url('images/linkbutton_bg.png'); + background-repeat: no-repeat; +} +a.l-btn-plain, +a.l-btn-plain span.l-btn-left { + background: transparent; + border: 0; + filter: none; +} +a:hover.l-btn-plain { + background: #eaf2ff; + color: #000000; + border: 1px solid #b7d2ff; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +a.l-btn-disabled, +a:hover.l-btn-disabled { + color: #444; + filter: alpha(opacity=50); +} +a.l-btn-plain-disabled, +a:hover.l-btn-plain-disabled { + background: transparent; + filter: alpha(opacity=50); +} +a.l-btn-selected, +a:hover.l-btn-selected { + background-position: right -24px; +} +a.l-btn-selected span.l-btn-left, +a:hover.l-btn-selected span.l-btn-left { + background-position: 0 bottom; +} +a.l-btn-plain-selected, +a:hover.l-btn-plain-selected { + background: #ddd; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/default/menu.css b/src/main/webapp/js/easyui-1.3.5/themes/default/menu.css new file mode 100644 index 00000000..c6089d5f --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/default/menu.css @@ -0,0 +1,109 @@ +.menu { + position: absolute; + margin: 0; + padding: 2px; + border-width: 1px; + border-style: solid; + overflow: hidden; +} +.menu-item { + position: relative; + margin: 0; + padding: 0; + overflow: hidden; + white-space: nowrap; + cursor: pointer; + border-width: 1px; + border-style: solid; +} +.menu-text { + height: 20px; + line-height: 20px; + float: left; + padding-left: 28px; +} +.menu-icon { + position: absolute; + width: 16px; + height: 16px; + left: 2px; + top: 50%; + margin-top: -8px; +} +.menu-rightarrow { + position: absolute; + width: 16px; + height: 16px; + right: 0; + top: 50%; + margin-top: -8px; +} +.menu-line { + position: absolute; + left: 26px; + top: 0; + height: 2000px; + font-size: 1px; +} +.menu-sep { + margin: 3px 0px 3px 25px; + font-size: 1px; +} +.menu-active { + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.menu-item-disabled { + opacity: 0.5; + filter: alpha(opacity=50); + cursor: default; +} +.menu-text, +.menu-text span { + font-size: 12px; +} +.menu-shadow { + position: absolute; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; + background: #ccc; + -moz-box-shadow: 2px 2px 3px #cccccc; + -webkit-box-shadow: 2px 2px 3px #cccccc; + box-shadow: 2px 2px 3px #cccccc; + filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2); +} +.menu-rightarrow { + background: url('images/menu_arrows.png') no-repeat -32px center; +} +.menu-line { + border-left: 1px solid #ccc; + border-right: 1px solid #fff; +} +.menu-sep { + border-top: 1px solid #ccc; + border-bottom: 1px solid #fff; +} +.menu { + background-color: #fafafa; + border-color: #ddd; + color: #444; +} +.menu-content { + background: #ffffff; +} +.menu-item { + border-color: transparent; + _border-color: #fafafa; +} +.menu-active { + border-color: #b7d2ff; + color: #000000; + background: #eaf2ff; +} +.menu-active-disabled { + border-color: transparent; + background: transparent; + color: #444; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/default/menubutton.css b/src/main/webapp/js/easyui-1.3.5/themes/default/menubutton.css new file mode 100644 index 00000000..92464994 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/default/menubutton.css @@ -0,0 +1,31 @@ +.m-btn-downarrow { + display: inline-block; + width: 16px; + height: 16px; + line-height: 16px; + font-size: 12px; + _vertical-align: middle; +} +a.m-btn-active { + background-position: bottom right; +} +a.m-btn-active span.l-btn-left { + background-position: bottom left; +} +a.m-btn-plain-active { + background: transparent; + padding: 0 5px 0 0; + border-width: 1px; + border-style: solid; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.m-btn-downarrow { + background: url('images/menu_arrows.png') no-repeat 2px center; +} +a.m-btn-plain-active { + border-color: #b7d2ff; + background-color: #eaf2ff; + color: #000000; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/default/messager.css b/src/main/webapp/js/easyui-1.3.5/themes/default/messager.css new file mode 100644 index 00000000..3ed98c75 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/default/messager.css @@ -0,0 +1,37 @@ +.messager-body { + padding: 10px; + overflow: hidden; +} +.messager-button { + text-align: center; + padding-top: 10px; +} +.messager-icon { + float: left; + width: 32px; + height: 32px; + margin: 0 10px 10px 0; +} +.messager-error { + background: url('images/messager_icons.png') no-repeat scroll -64px 0; +} +.messager-info { + background: url('images/messager_icons.png') no-repeat scroll 0 0; +} +.messager-question { + background: url('images/messager_icons.png') no-repeat scroll -32px 0; +} +.messager-warning { + background: url('images/messager_icons.png') no-repeat scroll -96px 0; +} +.messager-progress { + padding: 10px; +} +.messager-p-msg { + margin-bottom: 5px; +} +.messager-body .messager-input { + width: 100%; + padding: 1px 0; + border: 1px solid #95B8E7; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/default/pagination.css b/src/main/webapp/js/easyui-1.3.5/themes/default/pagination.css new file mode 100644 index 00000000..48db1d41 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/default/pagination.css @@ -0,0 +1,79 @@ +.pagination { + zoom: 1; +} +.pagination table { + float: left; + height: 30px; +} +.pagination td { + border: 0; +} +.pagination-btn-separator { + float: left; + height: 24px; + border-left: 1px solid #ccc; + border-right: 1px solid #fff; + margin: 3px 1px; +} +.pagination .pagination-num { + border-width: 1px; + border-style: solid; + margin: 0 2px; + padding: 2px; + width: 2em; + height: auto; +} +.pagination-page-list { + margin: 0px 6px; + padding: 1px 2px; + width: auto; + height: auto; + border-width: 1px; + border-style: solid; +} +.pagination-info { + float: right; + margin: 0 6px 0 0; + padding: 0; + height: 30px; + line-height: 30px; + font-size: 12px; +} +.pagination span { + font-size: 12px; +} +a.pagination-link { + padding: 1px; +} +a.pagination-link span.l-btn-left { + padding-left: 0; +} +a.pagination-link span span.l-btn-text { + width: 24px; + text-align: center; +} +a:hover.pagination-link { + padding: 0; +} +.pagination-first { + background: url('images/pagination_icons.png') no-repeat 0 center; +} +.pagination-prev { + background: url('images/pagination_icons.png') no-repeat -16px center; +} +.pagination-next { + background: url('images/pagination_icons.png') no-repeat -32px center; +} +.pagination-last { + background: url('images/pagination_icons.png') no-repeat -48px center; +} +.pagination-load { + background: url('images/pagination_icons.png') no-repeat -64px center; +} +.pagination-loading { + background: url('images/loading.gif') no-repeat center center; +} +.pagination-page-list, +.pagination .pagination-num { + border-color: #95B8E7; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/default/panel.css b/src/main/webapp/js/easyui-1.3.5/themes/default/panel.css new file mode 100644 index 00000000..83fd2e47 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/default/panel.css @@ -0,0 +1,131 @@ +.panel { + overflow: hidden; + text-align: left; + margin: 0; + border: 0; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.panel-header, +.panel-body { + border-width: 1px; + border-style: solid; +} +.panel-header { + padding: 5px; + position: relative; +} +.panel-title { + background: url('images/blank.gif') no-repeat; +} +.panel-header-noborder { + border-width: 0 0 1px 0; +} +.panel-body { + overflow: auto; + border-top-width: 0; + padding: 0; +} +.panel-body-noheader { + border-top-width: 1px; +} +.panel-body-noborder { + border-width: 0px; +} +.panel-with-icon { + padding-left: 18px; +} +.panel-icon, +.panel-tool { + position: absolute; + top: 50%; + margin-top: -8px; + height: 16px; + overflow: hidden; +} +.panel-icon { + left: 5px; + width: 16px; +} +.panel-tool { + right: 5px; + width: auto; +} +.panel-tool a { + display: inline-block; + width: 16px; + height: 16px; + opacity: 0.6; + filter: alpha(opacity=60); + margin: 0 0 0 2px; + vertical-align: top; +} +.panel-tool a:hover { + opacity: 1; + filter: alpha(opacity=100); + background-color: #eaf2ff; + -moz-border-radius: 3px 3px 3px 3px; + -webkit-border-radius: 3px 3px 3px 3px; + border-radius: 3px 3px 3px 3px; +} +.panel-loading { + padding: 11px 0px 10px 30px; +} +.panel-noscroll { + overflow: hidden; +} +.panel-fit, +.panel-fit body { + height: 100%; + margin: 0; + padding: 0; + border: 0; + overflow: hidden; +} +.panel-loading { + background: url('images/loading.gif') no-repeat 10px 10px; +} +.panel-tool-close { + background: url('images/panel_tools.png') no-repeat -16px 0px; +} +.panel-tool-min { + background: url('images/panel_tools.png') no-repeat 0px 0px; +} +.panel-tool-max { + background: url('images/panel_tools.png') no-repeat 0px -16px; +} +.panel-tool-restore { + background: url('images/panel_tools.png') no-repeat -16px -16px; +} +.panel-tool-collapse { + background: url('images/panel_tools.png') no-repeat -32px 0; +} +.panel-tool-expand { + background: url('images/panel_tools.png') no-repeat -32px -16px; +} +.panel-header, +.panel-body { + border-color: #95B8E7; +} +.panel-header { + background-color: #E0ECFF; + background: -webkit-linear-gradient(top,#EFF5FF 0,#E0ECFF 100%); + background: -moz-linear-gradient(top,#EFF5FF 0,#E0ECFF 100%); + background: -o-linear-gradient(top,#EFF5FF 0,#E0ECFF 100%); + background: linear-gradient(to bottom,#EFF5FF 0,#E0ECFF 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#EFF5FF,endColorstr=#E0ECFF,GradientType=0); +} +.panel-body { + background-color: #ffffff; + color: #000000; + font-size: 12px; +} +.panel-title { + font-size: 12px; + font-weight: bold; + color: #0E2D5F; + height: 16px; + line-height: 16px; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/default/progressbar.css b/src/main/webapp/js/easyui-1.3.5/themes/default/progressbar.css new file mode 100644 index 00000000..db80e3ad --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/default/progressbar.css @@ -0,0 +1,32 @@ +.progressbar { + border-width: 1px; + border-style: solid; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; + overflow: hidden; + position: relative; +} +.progressbar-text { + text-align: center; + position: absolute; +} +.progressbar-value { + position: relative; + overflow: hidden; + width: 0; + -moz-border-radius: 5px 0 0 5px; + -webkit-border-radius: 5px 0 0 5px; + border-radius: 5px 0 0 5px; +} +.progressbar { + border-color: #95B8E7; +} +.progressbar-text { + color: #000000; + font-size: 12px; +} +.progressbar-value .progressbar-text { + background-color: #FBEC88; + color: #000000; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/default/propertygrid.css b/src/main/webapp/js/easyui-1.3.5/themes/default/propertygrid.css new file mode 100644 index 00000000..5f5fbb38 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/default/propertygrid.css @@ -0,0 +1,28 @@ +.propertygrid .datagrid-view1 .datagrid-body td { + padding-bottom: 1px; + border-width: 0 1px 0 0; +} +.propertygrid .datagrid-group { + height: 21px; + overflow: hidden; + border-width: 0 0 1px 0; + border-style: solid; +} +.propertygrid .datagrid-group span { + font-weight: bold; +} +.propertygrid .datagrid-view1 .datagrid-body td { + border-color: #dddddd; +} +.propertygrid .datagrid-view1 .datagrid-group { + border-color: #E0ECFF; +} +.propertygrid .datagrid-view2 .datagrid-group { + border-color: #dddddd; +} +.propertygrid .datagrid-group, +.propertygrid .datagrid-view1 .datagrid-body, +.propertygrid .datagrid-view1 .datagrid-row-over, +.propertygrid .datagrid-view1 .datagrid-row-selected { + background: #E0ECFF; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/default/searchbox.css b/src/main/webapp/js/easyui-1.3.5/themes/default/searchbox.css new file mode 100644 index 00000000..d391645a --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/default/searchbox.css @@ -0,0 +1,83 @@ +.searchbox { + display: inline-block; + white-space: nowrap; + margin: 0; + padding: 0; + border-width: 1px; + border-style: solid; + overflow: hidden; +} +.searchbox .searchbox-text { + font-size: 12px; + border: 0; + margin: 0; + padding: 0; + line-height: 20px; + height: 20px; + *margin-top: -1px; + *height: 18px; + *line-height: 18px; + _height: 18px; + _line-height: 18px; + vertical-align: baseline; +} +.searchbox .searchbox-prompt { + font-size: 12px; + color: #ccc; +} +.searchbox-button { + width: 18px; + height: 20px; + overflow: hidden; + display: inline-block; + vertical-align: top; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.searchbox-button-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.searchbox a.l-btn-plain { + height: 20px; + border: 0; + padding: 0 6px 0 0; + vertical-align: top; + opacity: 0.6; + filter: alpha(opacity=60); + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox a.l-btn .l-btn-left { + padding: 0 0 0 4px; +} +.searchbox a.l-btn .l-btn-text { + position: static; + vertical-align: top; +} +.searchbox a.l-btn-plain:hover { + border: 0; + padding: 0 6px 0 0; + opacity: 1.0; + filter: alpha(opacity=100); + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox a.m-btn-plain-active { + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox-button { + background: url('images/searchbox_button.png') no-repeat center center; +} +.searchbox { + border-color: #95B8E7; + background-color: #fff; +} +.searchbox a.l-btn-plain { + background: #E0ECFF; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/default/slider.css b/src/main/webapp/js/easyui-1.3.5/themes/default/slider.css new file mode 100644 index 00000000..a4db0468 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/default/slider.css @@ -0,0 +1,100 @@ +.slider-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.slider-h { + height: 22px; +} +.slider-v { + width: 22px; +} +.slider-inner { + position: relative; + height: 6px; + top: 7px; + border-width: 1px; + border-style: solid; + border-radius: 5px; +} +.slider-handle { + position: absolute; + display: block; + outline: none; + width: 20px; + height: 20px; + top: -7px; + margin-left: -10px; +} +.slider-tip { + position: absolute; + display: inline-block; + line-height: 12px; + font-size: 12px; + white-space: nowrap; + top: -22px; +} +.slider-rule { + position: relative; + top: 15px; +} +.slider-rule span { + position: absolute; + display: inline-block; + font-size: 0; + height: 5px; + border-width: 0 0 0 1px; + border-style: solid; +} +.slider-rulelabel { + position: relative; + top: 20px; +} +.slider-rulelabel span { + position: absolute; + display: inline-block; + font-size: 12px; +} +.slider-v .slider-inner { + width: 6px; + left: 7px; + top: 0; + float: left; +} +.slider-v .slider-handle { + left: 3px; + margin-top: -10px; +} +.slider-v .slider-tip { + left: -10px; + margin-top: -6px; +} +.slider-v .slider-rule { + float: left; + top: 0; + left: 16px; +} +.slider-v .slider-rule span { + width: 5px; + height: 'auto'; + border-left: 0; + border-width: 1px 0 0 0; + border-style: solid; +} +.slider-v .slider-rulelabel { + float: left; + top: 0; + left: 23px; +} +.slider-handle { + background: url('images/slider_handle.png') no-repeat; +} +.slider-inner { + border-color: #95B8E7; + background: #E0ECFF; +} +.slider-rule span { + border-color: #95B8E7; +} +.slider-rulelabel span { + color: #000000; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/default/spinner.css b/src/main/webapp/js/easyui-1.3.5/themes/default/spinner.css new file mode 100644 index 00000000..1a28f8a2 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/default/spinner.css @@ -0,0 +1,59 @@ +.spinner { + display: inline-block; + white-space: nowrap; + margin: 0; + padding: 0; + border-width: 1px; + border-style: solid; + overflow: hidden; + vertical-align: middle; +} +.spinner .spinner-text { + font-size: 12px; + border: 0px; + line-height: 20px; + height: 20px; + margin: 0; + padding: 0 2px; + *margin-top: -1px; + *height: 18px; + *line-height: 18px; + _height: 18px; + _line-height: 18px; + vertical-align: baseline; +} +.spinner-arrow { + display: inline-block; + overflow: hidden; + vertical-align: top; + margin: 0; + padding: 0; +} +.spinner-arrow-up, +.spinner-arrow-down { + opacity: 0.6; + filter: alpha(opacity=60); + display: block; + font-size: 1px; + width: 18px; + height: 10px; +} +.spinner-arrow-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.spinner-arrow-up { + background: url('images/spinner_arrows.png') no-repeat 1px center; +} +.spinner-arrow-down { + background: url('images/spinner_arrows.png') no-repeat -15px center; +} +.spinner { + border-color: #95B8E7; +} +.spinner-arrow { + background-color: #E0ECFF; +} +.spinner-arrow-hover { + background-color: #eaf2ff; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/default/splitbutton.css b/src/main/webapp/js/easyui-1.3.5/themes/default/splitbutton.css new file mode 100644 index 00000000..61635c3b --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/default/splitbutton.css @@ -0,0 +1,43 @@ +.s-btn-downarrow { + display: inline-block; + margin: 0 0 0 4px; + padding: 0 0 0 1px; + width: 14px; + height: 16px; + line-height: 16px; + border-width: 0; + border-style: solid; + font-size: 12px; + _vertical-align: middle; +} +a.s-btn-active { + background-position: bottom right; +} +a.s-btn-active span.l-btn-left { + background-position: bottom left; +} +a.s-btn-plain-active { + background: transparent; + padding: 0 5px 0 0; + border-width: 1px; + border-style: solid; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.s-btn-downarrow { + background: url('images/menu_arrows.png') no-repeat 2px center; + border-color: #aac5e7; +} +a:hover.l-btn .s-btn-downarrow, +a.s-btn-active .s-btn-downarrow, +a.s-btn-plain-active .s-btn-downarrow { + background-position: 1px center; + padding: 0; + border-width: 0 0 0 1px; +} +a.s-btn-plain-active { + border-color: #b7d2ff; + background-color: #eaf2ff; + color: #000000; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/default/tabs.css b/src/main/webapp/js/easyui-1.3.5/themes/default/tabs.css new file mode 100644 index 00000000..29783947 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/default/tabs.css @@ -0,0 +1,356 @@ +.tabs-container { + overflow: hidden; +} +.tabs-header { + border-width: 1px; + border-style: solid; + border-bottom-width: 0; + position: relative; + padding: 0; + padding-top: 2px; + overflow: hidden; +} +.tabs-header-plain { + border: 0; + background: transparent; +} +.tabs-scroller-left, +.tabs-scroller-right { + position: absolute; + top: auto; + bottom: 0; + width: 18px; + font-size: 1px; + display: none; + cursor: pointer; + border-width: 1px; + border-style: solid; +} +.tabs-scroller-left { + left: 0; +} +.tabs-scroller-right { + right: 0; +} +.tabs-tool { + position: absolute; + bottom: 0; + padding: 1px; + overflow: hidden; + border-width: 1px; + border-style: solid; +} +.tabs-header-plain .tabs-tool { + padding: 0 1px; +} +.tabs-wrap { + position: relative; + left: 0; + overflow: hidden; + width: 100%; + margin: 0; + padding: 0; +} +.tabs-scrolling { + margin-left: 18px; + margin-right: 18px; +} +.tabs-disabled { + opacity: 0.3; + filter: alpha(opacity=30); +} +.tabs { + list-style-type: none; + height: 26px; + margin: 0px; + padding: 0px; + padding-left: 4px; + width: 5000px; + border-style: solid; + border-width: 0 0 1px 0; +} +.tabs li { + float: left; + display: inline-block; + margin: 0 4px -1px 0; + padding: 0; + position: relative; + border: 0; +} +.tabs li a.tabs-inner { + display: inline-block; + text-decoration: none; + margin: 0; + padding: 0 10px; + height: 25px; + line-height: 25px; + text-align: center; + white-space: nowrap; + border-width: 1px; + border-style: solid; + -moz-border-radius: 5px 5px 0 0; + -webkit-border-radius: 5px 5px 0 0; + border-radius: 5px 5px 0 0; +} +.tabs li.tabs-selected a.tabs-inner { + font-weight: bold; + outline: none; +} +.tabs li.tabs-selected a:hover.tabs-inner { + cursor: default; + pointer: default; +} +.tabs li a.tabs-close, +.tabs-p-tool { + position: absolute; + font-size: 1px; + display: block; + height: 12px; + padding: 0; + top: 50%; + margin-top: -6px; + overflow: hidden; +} +.tabs li a.tabs-close { + width: 12px; + right: 5px; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tabs-p-tool { + right: 16px; +} +.tabs-p-tool a { + display: inline-block; + font-size: 1px; + width: 12px; + height: 12px; + margin: 0; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tabs li a:hover.tabs-close, +.tabs-p-tool a:hover { + opacity: 1; + filter: alpha(opacity=100); + cursor: hand; + cursor: pointer; +} +.tabs-with-icon { + padding-left: 18px; +} +.tabs-icon { + position: absolute; + width: 16px; + height: 16px; + left: 10px; + top: 50%; + margin-top: -8px; +} +.tabs-title { + font-size: 12px; +} +.tabs-closable { + padding-right: 8px; +} +.tabs-panels { + margin: 0px; + padding: 0px; + border-width: 1px; + border-style: solid; + border-top-width: 0; + overflow: hidden; +} +.tabs-header-bottom { + border-width: 0 1px 1px 1px; + padding: 0 0 2px 0; +} +.tabs-header-bottom .tabs { + border-width: 1px 0 0 0; +} +.tabs-header-bottom .tabs li { + margin: -1px 4px 0 0; +} +.tabs-header-bottom .tabs li a.tabs-inner { + -moz-border-radius: 0 0 5px 5px; + -webkit-border-radius: 0 0 5px 5px; + border-radius: 0 0 5px 5px; +} +.tabs-header-bottom .tabs-tool { + top: 0; +} +.tabs-header-bottom .tabs-scroller-left, +.tabs-header-bottom .tabs-scroller-right { + top: 0; + bottom: auto; +} +.tabs-panels-top { + border-width: 1px 1px 0 1px; +} +.tabs-header-left { + float: left; + border-width: 1px 0 1px 1px; + padding: 0; +} +.tabs-header-right { + float: right; + border-width: 1px 1px 1px 0; + padding: 0; +} +.tabs-header-left .tabs-wrap, +.tabs-header-right .tabs-wrap { + height: 100%; +} +.tabs-header-left .tabs { + height: 100%; + padding: 4px 0 0 4px; + border-width: 0 1px 0 0; +} +.tabs-header-right .tabs { + height: 100%; + padding: 4px 4px 0 0; + border-width: 0 0 0 1px; +} +.tabs-header-left .tabs li, +.tabs-header-right .tabs li { + display: block; + width: 100%; + position: relative; +} +.tabs-header-left .tabs li { + left: auto; + right: 0; + margin: 0 -1px 4px 0; + float: right; +} +.tabs-header-right .tabs li { + left: 0; + right: auto; + margin: 0 0 4px -1px; + float: left; +} +.tabs-header-left .tabs li a.tabs-inner { + display: block; + text-align: left; + -moz-border-radius: 5px 0 0 5px; + -webkit-border-radius: 5px 0 0 5px; + border-radius: 5px 0 0 5px; +} +.tabs-header-right .tabs li a.tabs-inner { + display: block; + text-align: left; + -moz-border-radius: 0 5px 5px 0; + -webkit-border-radius: 0 5px 5px 0; + border-radius: 0 5px 5px 0; +} +.tabs-panels-right { + float: right; + border-width: 1px 1px 1px 0; +} +.tabs-panels-left { + float: left; + border-width: 1px 0 1px 1px; +} +.tabs-header-noborder, +.tabs-panels-noborder { + border: 0px; +} +.tabs-header-plain { + border: 0px; + background: transparent; +} +.tabs-scroller-left { + background: #E0ECFF url('images/tabs_icons.png') no-repeat 1px center; +} +.tabs-scroller-right { + background: #E0ECFF url('images/tabs_icons.png') no-repeat -15px center; +} +.tabs li a.tabs-close { + background: url('images/tabs_icons.png') no-repeat -34px center; +} +.tabs li a.tabs-inner:hover { + background: #eaf2ff; + color: #000000; + filter: none; +} +.tabs li.tabs-selected a.tabs-inner { + background-color: #ffffff; + color: #0E2D5F; + background: -webkit-linear-gradient(top,#EFF5FF 0,#ffffff 100%); + background: -moz-linear-gradient(top,#EFF5FF 0,#ffffff 100%); + background: -o-linear-gradient(top,#EFF5FF 0,#ffffff 100%); + background: linear-gradient(to bottom,#EFF5FF 0,#ffffff 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#EFF5FF,endColorstr=#ffffff,GradientType=0); +} +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner { + background: -webkit-linear-gradient(top,#ffffff 0,#EFF5FF 100%); + background: -moz-linear-gradient(top,#ffffff 0,#EFF5FF 100%); + background: -o-linear-gradient(top,#ffffff 0,#EFF5FF 100%); + background: linear-gradient(to bottom,#ffffff 0,#EFF5FF 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#EFF5FF,GradientType=0); +} +.tabs-header-left .tabs li.tabs-selected a.tabs-inner { + background: -webkit-linear-gradient(left,#EFF5FF 0,#ffffff 100%); + background: -moz-linear-gradient(left,#EFF5FF 0,#ffffff 100%); + background: -o-linear-gradient(left,#EFF5FF 0,#ffffff 100%); + background: linear-gradient(to right,#EFF5FF 0,#ffffff 100%); + background-repeat: repeat-y; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#EFF5FF,endColorstr=#ffffff,GradientType=1); +} +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + background: -webkit-linear-gradient(left,#ffffff 0,#EFF5FF 100%); + background: -moz-linear-gradient(left,#ffffff 0,#EFF5FF 100%); + background: -o-linear-gradient(left,#ffffff 0,#EFF5FF 100%); + background: linear-gradient(to right,#ffffff 0,#EFF5FF 100%); + background-repeat: repeat-y; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#EFF5FF,GradientType=1); +} +.tabs li a.tabs-inner { + color: #0E2D5F; + background-color: #E0ECFF; + background: -webkit-linear-gradient(top,#EFF5FF 0,#E0ECFF 100%); + background: -moz-linear-gradient(top,#EFF5FF 0,#E0ECFF 100%); + background: -o-linear-gradient(top,#EFF5FF 0,#E0ECFF 100%); + background: linear-gradient(to bottom,#EFF5FF 0,#E0ECFF 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#EFF5FF,endColorstr=#E0ECFF,GradientType=0); +} +.tabs-header, +.tabs-tool { + background-color: #E0ECFF; +} +.tabs-header-plain { + background: transparent; +} +.tabs-header, +.tabs-scroller-left, +.tabs-scroller-right, +.tabs-tool, +.tabs, +.tabs-panels, +.tabs li a.tabs-inner, +.tabs li.tabs-selected a.tabs-inner, +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner, +.tabs-header-left .tabs li.tabs-selected a.tabs-inner, +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + border-color: #95B8E7; +} +.tabs-p-tool a:hover, +.tabs li a:hover.tabs-close, +.tabs-scroller-over { + background-color: #eaf2ff; +} +.tabs li.tabs-selected a.tabs-inner { + border-bottom: 1px solid #ffffff; +} +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner { + border-top: 1px solid #ffffff; +} +.tabs-header-left .tabs li.tabs-selected a.tabs-inner { + border-right: 1px solid #ffffff; +} +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + border-left: 1px solid #ffffff; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/default/tooltip.css b/src/main/webapp/js/easyui-1.3.5/themes/default/tooltip.css new file mode 100644 index 00000000..2881b705 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/default/tooltip.css @@ -0,0 +1,100 @@ +.tooltip { + position: absolute; + display: none; + z-index: 9900000; + outline: none; + opacity: 1; + filter: alpha(opacity=100); + padding: 5px; + border-width: 1px; + border-style: solid; + border-radius: 5px; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.tooltip-content { + font-size: 12px; +} +.tooltip-arrow-outer, +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + line-height: 0; + font-size: 0; + border-style: solid; + border-width: 6px; + border-color: transparent; + _border-color: tomato; + _filter: chroma(color=tomato); +} +.tooltip-right .tooltip-arrow-outer { + left: 0; + top: 50%; + margin: -6px 0 0 -13px; +} +.tooltip-right .tooltip-arrow { + left: 0; + top: 50%; + margin: -6px 0 0 -12px; +} +.tooltip-left .tooltip-arrow-outer { + right: 0; + top: 50%; + margin: -6px -13px 0 0; +} +.tooltip-left .tooltip-arrow { + right: 0; + top: 50%; + margin: -6px -12px 0 0; +} +.tooltip-top .tooltip-arrow-outer { + bottom: 0; + left: 50%; + margin: 0 0 -13px -6px; +} +.tooltip-top .tooltip-arrow { + bottom: 0; + left: 50%; + margin: 0 0 -12px -6px; +} +.tooltip-bottom .tooltip-arrow-outer { + top: 0; + left: 50%; + margin: -13px 0 0 -6px; +} +.tooltip-bottom .tooltip-arrow { + top: 0; + left: 50%; + margin: -12px 0 0 -6px; +} +.tooltip { + background-color: #ffffff; + border-color: #95B8E7; + color: #000000; +} +.tooltip-right .tooltip-arrow-outer { + border-right-color: #95B8E7; +} +.tooltip-right .tooltip-arrow { + border-right-color: #ffffff; +} +.tooltip-left .tooltip-arrow-outer { + border-left-color: #95B8E7; +} +.tooltip-left .tooltip-arrow { + border-left-color: #ffffff; +} +.tooltip-top .tooltip-arrow-outer { + border-top-color: #95B8E7; +} +.tooltip-top .tooltip-arrow { + border-top-color: #ffffff; +} +.tooltip-bottom .tooltip-arrow-outer { + border-bottom-color: #95B8E7; +} +.tooltip-bottom .tooltip-arrow { + border-bottom-color: #ffffff; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/default/tree.css b/src/main/webapp/js/easyui-1.3.5/themes/default/tree.css new file mode 100644 index 00000000..af7e2738 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/default/tree.css @@ -0,0 +1,157 @@ +.tree { + margin: 0; + padding: 0; + list-style-type: none; +} +.tree li { + white-space: nowrap; +} +.tree li ul { + list-style-type: none; + margin: 0; + padding: 0; +} +.tree-node { + height: 18px; + white-space: nowrap; + cursor: pointer; +} +.tree-hit { + cursor: pointer; +} +.tree-expanded, +.tree-collapsed, +.tree-folder, +.tree-file, +.tree-checkbox, +.tree-indent { + display: inline-block; + width: 16px; + height: 18px; + vertical-align: top; + overflow: hidden; +} +.tree-expanded { + background: url('images/tree_icons.png') no-repeat -18px 0px; +} +.tree-expanded-hover { + background: url('images/tree_icons.png') no-repeat -50px 0px; +} +.tree-collapsed { + background: url('images/tree_icons.png') no-repeat 0px 0px; +} +.tree-collapsed-hover { + background: url('images/tree_icons.png') no-repeat -32px 0px; +} +.tree-lines .tree-expanded, +.tree-lines .tree-root-first .tree-expanded { + background: url('images/tree_icons.png') no-repeat -144px 0; +} +.tree-lines .tree-collapsed, +.tree-lines .tree-root-first .tree-collapsed { + background: url('images/tree_icons.png') no-repeat -128px 0; +} +.tree-lines .tree-node-last .tree-expanded, +.tree-lines .tree-root-one .tree-expanded { + background: url('images/tree_icons.png') no-repeat -80px 0; +} +.tree-lines .tree-node-last .tree-collapsed, +.tree-lines .tree-root-one .tree-collapsed { + background: url('images/tree_icons.png') no-repeat -64px 0; +} +.tree-line { + background: url('images/tree_icons.png') no-repeat -176px 0; +} +.tree-join { + background: url('images/tree_icons.png') no-repeat -192px 0; +} +.tree-joinbottom { + background: url('images/tree_icons.png') no-repeat -160px 0; +} +.tree-folder { + background: url('images/tree_icons.png') no-repeat -208px 0; +} +.tree-folder-open { + background: url('images/tree_icons.png') no-repeat -224px 0; +} +.tree-file { + background: url('images/tree_icons.png') no-repeat -240px 0; +} +.tree-loading { + background: url('images/loading.gif') no-repeat center center; +} +.tree-checkbox0 { + background: url('images/tree_icons.png') no-repeat -208px -18px; +} +.tree-checkbox1 { + background: url('images/tree_icons.png') no-repeat -224px -18px; +} +.tree-checkbox2 { + background: url('images/tree_icons.png') no-repeat -240px -18px; +} +.tree-title { + font-size: 12px; + display: inline-block; + text-decoration: none; + vertical-align: top; + white-space: nowrap; + padding: 0 2px; + height: 18px; + line-height: 18px; +} +.tree-node-proxy { + font-size: 12px; + line-height: 20px; + padding: 0 2px 0 20px; + border-width: 1px; + border-style: solid; + z-index: 9900000; +} +.tree-dnd-icon { + display: inline-block; + position: absolute; + width: 16px; + height: 18px; + left: 2px; + top: 50%; + margin-top: -9px; +} +.tree-dnd-yes { + background: url('images/tree_icons.png') no-repeat -256px 0; +} +.tree-dnd-no { + background: url('images/tree_icons.png') no-repeat -256px -18px; +} +.tree-node-top { + border-top: 1px dotted red; +} +.tree-node-bottom { + border-bottom: 1px dotted red; +} +.tree-node-append .tree-title { + border: 1px dotted red; +} +.tree-editor { + border: 1px solid #ccc; + font-size: 12px; + height: 14px !important; + height: 18px; + line-height: 14px; + padding: 1px 2px; + width: 80px; + position: absolute; + top: 0; +} +.tree-node-proxy { + background-color: #ffffff; + color: #000000; + border-color: #95B8E7; +} +.tree-node-hover { + background: #eaf2ff; + color: #000000; +} +.tree-node-selected { + background: #FBEC88; + color: #000000; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/default/validatebox.css b/src/main/webapp/js/easyui-1.3.5/themes/default/validatebox.css new file mode 100644 index 00000000..154da758 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/default/validatebox.css @@ -0,0 +1,8 @@ +.validatebox-invalid { + background-image: url('images/validatebox_warning.png'); + background-repeat: no-repeat; + background-position: right center; + border-color: #ffa8a8; + background-color: #fff3f3; + color: #000; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/default/window.css b/src/main/webapp/js/easyui-1.3.5/themes/default/window.css new file mode 100644 index 00000000..b22024af --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/default/window.css @@ -0,0 +1,87 @@ +.window { + overflow: hidden; + padding: 5px; + border-width: 1px; + border-style: solid; +} +.window .window-header { + background: transparent; + padding: 0px 0px 6px 0px; +} +.window .window-body { + border-width: 1px; + border-style: solid; + border-top-width: 0px; +} +.window .window-body-noheader { + border-top-width: 1px; +} +.window .window-header .panel-icon, +.window .window-header .panel-tool { + top: 50%; + margin-top: -11px; +} +.window .window-header .panel-icon { + left: 1px; +} +.window .window-header .panel-tool { + right: 1px; +} +.window .window-header .panel-with-icon { + padding-left: 18px; +} +.window-proxy { + position: absolute; + overflow: hidden; +} +.window-proxy-mask { + position: absolute; + filter: alpha(opacity=5); + opacity: 0.05; +} +.window-mask { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + filter: alpha(opacity=40); + opacity: 0.40; + font-size: 1px; + *zoom: 1; + overflow: hidden; +} +.window, +.window-shadow { + position: absolute; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.window-shadow { + background: #ccc; + -moz-box-shadow: 2px 2px 3px #cccccc; + -webkit-box-shadow: 2px 2px 3px #cccccc; + box-shadow: 2px 2px 3px #cccccc; + filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2); +} +.window, +.window .window-body { + border-color: #95B8E7; +} +.window { + background-color: #E0ECFF; + background: -webkit-linear-gradient(top,#EFF5FF 0,#E0ECFF 20%); + background: -moz-linear-gradient(top,#EFF5FF 0,#E0ECFF 20%); + background: -o-linear-gradient(top,#EFF5FF 0,#E0ECFF 20%); + background: linear-gradient(to bottom,#EFF5FF 0,#E0ECFF 20%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#EFF5FF,endColorstr=#E0ECFF,GradientType=0); +} +.window-proxy { + border: 1px dashed #95B8E7; +} +.window-proxy-mask, +.window-mask { + background: #ccc; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/gray/accordion.css b/src/main/webapp/js/easyui-1.3.5/themes/gray/accordion.css new file mode 100644 index 00000000..3cb451b1 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/gray/accordion.css @@ -0,0 +1,41 @@ +.accordion { + overflow: hidden; + border-width: 1px; + border-style: solid; +} +.accordion .accordion-header { + border-width: 0 0 1px; + cursor: pointer; +} +.accordion .accordion-body { + border-width: 0 0 1px; +} +.accordion-noborder { + border-width: 0; +} +.accordion-noborder .accordion-header { + border-width: 0 0 1px; +} +.accordion-noborder .accordion-body { + border-width: 0 0 1px; +} +.accordion-collapse { + background: url('images/accordion_arrows.png') no-repeat 0 0; +} +.accordion-expand { + background: url('images/accordion_arrows.png') no-repeat -16px 0; +} +.accordion { + background: #ffffff; + border-color: #D3D3D3; +} +.accordion .accordion-header { + background: #f3f3f3; + filter: none; +} +.accordion .accordion-header-selected { + background: #0092DC; +} +.accordion .accordion-header-selected .panel-title { + color: #fff; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/gray/calendar.css b/src/main/webapp/js/easyui-1.3.5/themes/gray/calendar.css new file mode 100644 index 00000000..d087f252 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/gray/calendar.css @@ -0,0 +1,190 @@ +.calendar { + border-width: 1px; + border-style: solid; + padding: 1px; + overflow: hidden; +} +.calendar table { + border-collapse: separate; + font-size: 12px; + width: 100%; + height: 100%; +} +.calendar table td, +.calendar table th { + font-size: 12px; +} +.calendar-noborder { + border: 0; +} +.calendar-header { + position: relative; + height: 22px; +} +.calendar-title { + text-align: center; + height: 22px; +} +.calendar-title span { + position: relative; + display: inline-block; + top: 2px; + padding: 0 3px; + height: 18px; + line-height: 18px; + font-size: 12px; + cursor: pointer; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-prevmonth, +.calendar-nextmonth, +.calendar-prevyear, +.calendar-nextyear { + position: absolute; + top: 50%; + margin-top: -7px; + width: 14px; + height: 14px; + cursor: pointer; + font-size: 1px; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-prevmonth { + left: 20px; + background: url('images/calendar_arrows.png') no-repeat -18px -2px; +} +.calendar-nextmonth { + right: 20px; + background: url('images/calendar_arrows.png') no-repeat -34px -2px; +} +.calendar-prevyear { + left: 3px; + background: url('images/calendar_arrows.png') no-repeat -1px -2px; +} +.calendar-nextyear { + right: 3px; + background: url('images/calendar_arrows.png') no-repeat -49px -2px; +} +.calendar-body { + position: relative; +} +.calendar-body th, +.calendar-body td { + text-align: center; +} +.calendar-day { + border: 0; + padding: 1px; + cursor: pointer; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-other-month { + opacity: 0.3; + filter: alpha(opacity=30); +} +.calendar-menu { + position: absolute; + top: 0; + left: 0; + width: 180px; + height: 150px; + padding: 5px; + font-size: 12px; + display: none; + overflow: hidden; +} +.calendar-menu-year-inner { + text-align: center; + padding-bottom: 5px; +} +.calendar-menu-year { + width: 40px; + text-align: center; + border-width: 1px; + border-style: solid; + margin: 0; + padding: 2px; + font-weight: bold; + font-size: 12px; +} +.calendar-menu-prev, +.calendar-menu-next { + display: inline-block; + width: 21px; + height: 21px; + vertical-align: top; + cursor: pointer; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-menu-prev { + margin-right: 10px; + background: url('images/calendar_arrows.png') no-repeat 2px 2px; +} +.calendar-menu-next { + margin-left: 10px; + background: url('images/calendar_arrows.png') no-repeat -45px 2px; +} +.calendar-menu-month { + text-align: center; + cursor: pointer; + font-weight: bold; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-body th, +.calendar-menu-month { + color: #4d4d4d; +} +.calendar-day { + color: #000000; +} +.calendar-sunday { + color: #CC2222; +} +.calendar-saturday { + color: #00ee00; +} +.calendar-today { + color: #0000ff; +} +.calendar-menu-year { + border-color: #D3D3D3; +} +.calendar { + border-color: #D3D3D3; +} +.calendar-header { + background: #f3f3f3; +} +.calendar-body, +.calendar-menu { + background: #ffffff; +} +.calendar-body th { + background: #fafafa; +} +.calendar-hover, +.calendar-nav-hover, +.calendar-menu-hover { + background-color: #e2e2e2; + color: #000000; +} +.calendar-hover { + border: 1px solid #ccc; + padding: 0; +} +.calendar-selected { + background-color: #0092DC; + color: #fff; + border: 1px solid #0070a9; + padding: 0; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/gray/combo.css b/src/main/webapp/js/easyui-1.3.5/themes/gray/combo.css new file mode 100644 index 00000000..1fdf982e --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/gray/combo.css @@ -0,0 +1,58 @@ +.combo { + display: inline-block; + white-space: nowrap; + margin: 0; + padding: 0; + border-width: 1px; + border-style: solid; + overflow: hidden; + vertical-align: middle; +} +.combo .combo-text { + font-size: 12px; + border: 0px; + line-height: 20px; + height: 20px; + margin: 0; + padding: 0px 2px; + *margin-top: -1px; + *height: 18px; + *line-height: 18px; + _height: 18px; + _line-height: 18px; + vertical-align: baseline; +} +.combo-arrow { + width: 18px; + height: 20px; + overflow: hidden; + display: inline-block; + vertical-align: top; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.combo-arrow-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.combo-panel { + overflow: auto; +} +.combo-arrow { + background: url('images/combo_arrow.png') no-repeat center center; +} +.combo, +.combo-panel { + background-color: #ffffff; +} +.combo { + border-color: #D3D3D3; + background-color: #ffffff; +} +.combo-arrow { + background-color: #f3f3f3; +} +.combo-arrow-hover { + background-color: #e2e2e2; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/gray/combobox.css b/src/main/webapp/js/easyui-1.3.5/themes/gray/combobox.css new file mode 100644 index 00000000..68b62623 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/gray/combobox.css @@ -0,0 +1,24 @@ +.combobox-item, +.combobox-group { + font-size: 12px; + padding: 3px; + padding-right: 0px; +} +.combobox-item-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.combobox-gitem { + padding-left: 10px; +} +.combobox-group { + font-weight: bold; +} +.combobox-item-hover { + background-color: #e2e2e2; + color: #000000; +} +.combobox-item-selected { + background-color: #0092DC; + color: #fff; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/gray/datagrid.css b/src/main/webapp/js/easyui-1.3.5/themes/gray/datagrid.css new file mode 100644 index 00000000..74dfaeed --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/gray/datagrid.css @@ -0,0 +1,260 @@ +.datagrid .panel-body { + overflow: hidden; + position: relative; +} +.datagrid-view { + position: relative; + overflow: hidden; +} +.datagrid-view1, +.datagrid-view2 { + position: absolute; + overflow: hidden; + top: 0; +} +.datagrid-view1 { + left: 0; +} +.datagrid-view2 { + right: 0; +} +.datagrid-mask { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + opacity: 0.3; + filter: alpha(opacity=30); + display: none; +} +.datagrid-mask-msg { + position: absolute; + top: 50%; + margin-top: -20px; + padding: 12px 5px 10px 30px; + width: auto; + height: 16px; + border-width: 2px; + border-style: solid; + display: none; +} +.datagrid-sort-icon { + padding: 0; +} +.datagrid-toolbar { + height: auto; + padding: 1px 2px; + border-width: 0 0 1px 0; + border-style: solid; +} +.datagrid-btn-separator { + float: left; + height: 24px; + border-left: 1px solid #ccc; + border-right: 1px solid #fff; + margin: 2px 1px; +} +.datagrid .datagrid-pager { + display: block; + margin: 0; + border-width: 1px 0 0 0; + border-style: solid; +} +.datagrid .datagrid-pager-top { + border-width: 0 0 1px 0; +} +.datagrid-header { + overflow: hidden; + cursor: default; + border-width: 0 0 1px 0; + border-style: solid; +} +.datagrid-header-inner { + float: left; + width: 10000px; +} +.datagrid-header-row, +.datagrid-row { + height: 25px; +} +.datagrid-header td, +.datagrid-body td, +.datagrid-footer td { + border-width: 0 1px 1px 0; + border-style: dotted; + margin: 0; + padding: 0; +} +.datagrid-cell, +.datagrid-cell-group, +.datagrid-header-rownumber, +.datagrid-cell-rownumber { + margin: 0; + padding: 0 4px; + white-space: nowrap; + word-wrap: normal; + overflow: hidden; + height: 18px; + line-height: 18px; + font-size: 12px; +} +.datagrid-header .datagrid-cell { + height: auto; +} +.datagrid-header .datagrid-cell span { + font-size: 12px; +} +.datagrid-cell-group { + text-align: center; +} +.datagrid-header-rownumber, +.datagrid-cell-rownumber { + width: 25px; + text-align: center; + margin: 0; + padding: 0; +} +.datagrid-body { + margin: 0; + padding: 0; + overflow: auto; + zoom: 1; +} +.datagrid-view1 .datagrid-body-inner { + padding-bottom: 20px; +} +.datagrid-view1 .datagrid-body { + overflow: hidden; +} +.datagrid-footer { + overflow: hidden; +} +.datagrid-footer-inner { + border-width: 1px 0 0 0; + border-style: solid; + width: 10000px; + float: left; +} +.datagrid-row-editing .datagrid-cell { + height: auto; +} +.datagrid-header-check, +.datagrid-cell-check { + padding: 0; + width: 27px; + height: 18px; + font-size: 1px; + text-align: center; + overflow: hidden; +} +.datagrid-header-check input, +.datagrid-cell-check input { + margin: 0; + padding: 0; + width: 15px; + height: 18px; +} +.datagrid-resize-proxy { + position: absolute; + width: 1px; + height: 10000px; + top: 0; + cursor: e-resize; + display: none; +} +.datagrid-body .datagrid-editable { + margin: 0; + padding: 0; +} +.datagrid-body .datagrid-editable table { + width: 100%; + height: 100%; +} +.datagrid-body .datagrid-editable td { + border: 0; + margin: 0; + padding: 0; +} +.datagrid-body .datagrid-editable .datagrid-editable-input { + margin: 0; + padding: 2px; + border-width: 1px; + border-style: solid; +} +.datagrid-sort-desc .datagrid-sort-icon { + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat -16px center; +} +.datagrid-sort-asc .datagrid-sort-icon { + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat 0px center; +} +.datagrid-row-collapse { + background: url('images/datagrid_icons.png') no-repeat -48px center; +} +.datagrid-row-expand { + background: url('images/datagrid_icons.png') no-repeat -32px center; +} +.datagrid-mask-msg { + background: #ffffff url('images/loading.gif') no-repeat scroll 5px center; +} +.datagrid-header, +.datagrid-td-rownumber { + background-color: #fafafa; + background: -webkit-linear-gradient(top,#fdfdfd 0,#f5f5f5 100%); + background: -moz-linear-gradient(top,#fdfdfd 0,#f5f5f5 100%); + background: -o-linear-gradient(top,#fdfdfd 0,#f5f5f5 100%); + background: linear-gradient(to bottom,#fdfdfd 0,#f5f5f5 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#fdfdfd,endColorstr=#f5f5f5,GradientType=0); +} +.datagrid-cell-rownumber { + color: #000000; +} +.datagrid-resize-proxy { + background: #bfbfbf; +} +.datagrid-mask { + background: #ccc; +} +.datagrid-mask-msg { + border-color: #D3D3D3; +} +.datagrid-toolbar, +.datagrid-pager { + background: #fafafa; +} +.datagrid-header, +.datagrid-toolbar, +.datagrid-pager, +.datagrid-footer-inner { + border-color: #ddd; +} +.datagrid-header td, +.datagrid-body td, +.datagrid-footer td { + border-color: #ccc; +} +.datagrid-htable, +.datagrid-btable, +.datagrid-ftable { + color: #000000; + border-collapse: separate; +} +.datagrid-row-alt { + background: #fafafa; +} +.datagrid-row-over, +.datagrid-header td.datagrid-header-over { + background: #e2e2e2; + color: #000000; + cursor: default; +} +.datagrid-row-selected { + background: #0092DC; + color: #fff; +} +.datagrid-body .datagrid-editable .datagrid-editable-input { + border-color: #D3D3D3; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/gray/datebox.css b/src/main/webapp/js/easyui-1.3.5/themes/gray/datebox.css new file mode 100644 index 00000000..8c413503 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/gray/datebox.css @@ -0,0 +1,36 @@ +.datebox-calendar-inner { + height: 180px; +} +.datebox-button { + height: 18px; + padding: 2px 5px; + text-align: center; +} +.datebox-button a { + font-size: 12px; + font-weight: bold; + text-decoration: none; + opacity: 0.6; + filter: alpha(opacity=60); +} +.datebox-button a:hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.datebox-current, +.datebox-close { + float: left; +} +.datebox-close { + float: right; +} +.datebox .combo-arrow { + background-image: url('images/datebox_arrow.png'); + background-position: center center; +} +.datebox-button { + background-color: #fafafa; +} +.datebox-button a { + color: #444; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/gray/dialog.css b/src/main/webapp/js/easyui-1.3.5/themes/gray/dialog.css new file mode 100644 index 00000000..fcd00adc --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/gray/dialog.css @@ -0,0 +1,30 @@ +.dialog-content { + overflow: auto; +} +.dialog-toolbar { + padding: 2px 5px; +} +.dialog-tool-separator { + float: left; + height: 24px; + border-left: 1px solid #ccc; + border-right: 1px solid #fff; + margin: 2px 1px; +} +.dialog-button { + padding: 5px; + text-align: right; +} +.dialog-button .l-btn { + margin-left: 5px; +} +.dialog-toolbar, +.dialog-button { + background: #fafafa; +} +.dialog-toolbar { + border-bottom: 1px solid #ddd; +} +.dialog-button { + border-top: 1px solid #ddd; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/gray/easyui.css b/src/main/webapp/js/easyui-1.3.5/themes/gray/easyui.css new file mode 100644 index 00000000..9596c467 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/gray/easyui.css @@ -0,0 +1,2294 @@ +.panel { + overflow: hidden; + text-align: left; + margin: 0; + border: 0; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.panel-header, +.panel-body { + border-width: 1px; + border-style: solid; +} +.panel-header { + padding: 5px; + position: relative; +} +.panel-title { + background: url('images/blank.gif') no-repeat; +} +.panel-header-noborder { + border-width: 0 0 1px 0; +} +.panel-body { + overflow: auto; + border-top-width: 0; + padding: 0; +} +.panel-body-noheader { + border-top-width: 1px; +} +.panel-body-noborder { + border-width: 0px; +} +.panel-with-icon { + padding-left: 18px; +} +.panel-icon, +.panel-tool { + position: absolute; + top: 50%; + margin-top: -8px; + height: 16px; + overflow: hidden; +} +.panel-icon { + left: 5px; + width: 16px; +} +.panel-tool { + right: 5px; + width: auto; +} +.panel-tool a { + display: inline-block; + width: 16px; + height: 16px; + opacity: 0.6; + filter: alpha(opacity=60); + margin: 0 0 0 2px; + vertical-align: top; +} +.panel-tool a:hover { + opacity: 1; + filter: alpha(opacity=100); + background-color: #e2e2e2; + -moz-border-radius: 3px 3px 3px 3px; + -webkit-border-radius: 3px 3px 3px 3px; + border-radius: 3px 3px 3px 3px; +} +.panel-loading { + padding: 11px 0px 10px 30px; +} +.panel-noscroll { + overflow: hidden; +} +.panel-fit, +.panel-fit body { + height: 100%; + margin: 0; + padding: 0; + border: 0; + overflow: hidden; +} +.panel-loading { + background: url('images/loading.gif') no-repeat 10px 10px; +} +.panel-tool-close { + background: url('images/panel_tools.png') no-repeat -16px 0px; +} +.panel-tool-min { + background: url('images/panel_tools.png') no-repeat 0px 0px; +} +.panel-tool-max { + background: url('images/panel_tools.png') no-repeat 0px -16px; +} +.panel-tool-restore { + background: url('images/panel_tools.png') no-repeat -16px -16px; +} +.panel-tool-collapse { + background: url('images/panel_tools.png') no-repeat -32px 0; +} +.panel-tool-expand { + background: url('images/panel_tools.png') no-repeat -32px -16px; +} +.panel-header, +.panel-body { + border-color: #D3D3D3; +} +.panel-header { + background-color: #f3f3f3; + background: -webkit-linear-gradient(top,#F8F8F8 0,#eeeeee 100%); + background: -moz-linear-gradient(top,#F8F8F8 0,#eeeeee 100%); + background: -o-linear-gradient(top,#F8F8F8 0,#eeeeee 100%); + background: linear-gradient(to bottom,#F8F8F8 0,#eeeeee 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#F8F8F8,endColorstr=#eeeeee,GradientType=0); +} +.panel-body { + background-color: #ffffff; + color: #000000; + font-size: 12px; +} +.panel-title { + font-size: 12px; + font-weight: bold; + color: #575765; + height: 16px; + line-height: 16px; +} +.accordion { + overflow: hidden; + border-width: 1px; + border-style: solid; +} +.accordion .accordion-header { + border-width: 0 0 1px; + cursor: pointer; +} +.accordion .accordion-body { + border-width: 0 0 1px; +} +.accordion-noborder { + border-width: 0; +} +.accordion-noborder .accordion-header { + border-width: 0 0 1px; +} +.accordion-noborder .accordion-body { + border-width: 0 0 1px; +} +.accordion-collapse { + background: url('images/accordion_arrows.png') no-repeat 0 0; +} +.accordion-expand { + background: url('images/accordion_arrows.png') no-repeat -16px 0; +} +.accordion { + background: #ffffff; + border-color: #D3D3D3; +} +.accordion .accordion-header { + background: #f3f3f3; + filter: none; +} +.accordion .accordion-header-selected { + background: #0092DC; +} +.accordion .accordion-header-selected .panel-title { + color: #fff; +} +.window { + overflow: hidden; + padding: 5px; + border-width: 1px; + border-style: solid; +} +.window .window-header { + background: transparent; + padding: 0px 0px 6px 0px; +} +.window .window-body { + border-width: 1px; + border-style: solid; + border-top-width: 0px; +} +.window .window-body-noheader { + border-top-width: 1px; +} +.window .window-header .panel-icon, +.window .window-header .panel-tool { + top: 50%; + margin-top: -11px; +} +.window .window-header .panel-icon { + left: 1px; +} +.window .window-header .panel-tool { + right: 1px; +} +.window .window-header .panel-with-icon { + padding-left: 18px; +} +.window-proxy { + position: absolute; + overflow: hidden; +} +.window-proxy-mask { + position: absolute; + filter: alpha(opacity=5); + opacity: 0.05; +} +.window-mask { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + filter: alpha(opacity=40); + opacity: 0.40; + font-size: 1px; + *zoom: 1; + overflow: hidden; +} +.window, +.window-shadow { + position: absolute; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.window-shadow { + background: #ccc; + -moz-box-shadow: 2px 2px 3px #cccccc; + -webkit-box-shadow: 2px 2px 3px #cccccc; + box-shadow: 2px 2px 3px #cccccc; + filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2); +} +.window, +.window .window-body { + border-color: #D3D3D3; +} +.window { + background-color: #f3f3f3; + background: -webkit-linear-gradient(top,#F8F8F8 0,#eeeeee 20%); + background: -moz-linear-gradient(top,#F8F8F8 0,#eeeeee 20%); + background: -o-linear-gradient(top,#F8F8F8 0,#eeeeee 20%); + background: linear-gradient(to bottom,#F8F8F8 0,#eeeeee 20%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#F8F8F8,endColorstr=#eeeeee,GradientType=0); +} +.window-proxy { + border: 1px dashed #D3D3D3; +} +.window-proxy-mask, +.window-mask { + background: #ccc; +} +.dialog-content { + overflow: auto; +} +.dialog-toolbar { + padding: 2px 5px; +} +.dialog-tool-separator { + float: left; + height: 24px; + border-left: 1px solid #ccc; + border-right: 1px solid #fff; + margin: 2px 1px; +} +.dialog-button { + padding: 5px; + text-align: right; +} +.dialog-button .l-btn { + margin-left: 5px; +} +.dialog-toolbar, +.dialog-button { + background: #fafafa; +} +.dialog-toolbar { + border-bottom: 1px solid #ddd; +} +.dialog-button { + border-top: 1px solid #ddd; +} +.combo { + display: inline-block; + white-space: nowrap; + margin: 0; + padding: 0; + border-width: 1px; + border-style: solid; + overflow: hidden; + vertical-align: middle; +} +.combo .combo-text { + font-size: 12px; + border: 0px; + line-height: 20px; + height: 20px; + margin: 0; + padding: 0px 2px; + *margin-top: -1px; + *height: 18px; + *line-height: 18px; + _height: 18px; + _line-height: 18px; + vertical-align: baseline; +} +.combo-arrow { + width: 18px; + height: 20px; + overflow: hidden; + display: inline-block; + vertical-align: top; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.combo-arrow-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.combo-panel { + overflow: auto; +} +.combo-arrow { + background: url('images/combo_arrow.png') no-repeat center center; +} +.combo, +.combo-panel { + background-color: #ffffff; +} +.combo { + border-color: #D3D3D3; + background-color: #ffffff; +} +.combo-arrow { + background-color: #f3f3f3; +} +.combo-arrow-hover { + background-color: #e2e2e2; +} +.combobox-item, +.combobox-group { + font-size: 12px; + padding: 3px; + padding-right: 0px; +} +.combobox-item-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.combobox-gitem { + padding-left: 10px; +} +.combobox-group { + font-weight: bold; +} +.combobox-item-hover { + background-color: #e2e2e2; + color: #000000; +} +.combobox-item-selected { + background-color: #0092DC; + color: #fff; +} +.layout { + position: relative; + overflow: hidden; + margin: 0; + padding: 0; + z-index: 0; +} +.layout-panel { + position: absolute; + overflow: hidden; +} +.layout-panel-east, +.layout-panel-west { + z-index: 2; +} +.layout-panel-north, +.layout-panel-south { + z-index: 3; +} +.layout-expand { + position: absolute; + padding: 0px; + font-size: 1px; + cursor: pointer; + z-index: 1; +} +.layout-expand .panel-header, +.layout-expand .panel-body { + background: transparent; + filter: none; + overflow: hidden; +} +.layout-expand .panel-header { + border-bottom-width: 0px; +} +.layout-split-proxy-h, +.layout-split-proxy-v { + position: absolute; + font-size: 1px; + display: none; + z-index: 5; +} +.layout-split-proxy-h { + width: 5px; + cursor: e-resize; +} +.layout-split-proxy-v { + height: 5px; + cursor: n-resize; +} +.layout-mask { + position: absolute; + background: #fafafa; + filter: alpha(opacity=10); + opacity: 0.10; + z-index: 4; +} +.layout-button-up { + background: url('images/layout_arrows.png') no-repeat -16px -16px; +} +.layout-button-down { + background: url('images/layout_arrows.png') no-repeat -16px 0; +} +.layout-button-left { + background: url('images/layout_arrows.png') no-repeat 0 0; +} +.layout-button-right { + background: url('images/layout_arrows.png') no-repeat 0 -16px; +} +.layout-split-proxy-h, +.layout-split-proxy-v { + background-color: #bfbfbf; +} +.layout-split-north { + border-bottom: 5px solid #efefef; +} +.layout-split-south { + border-top: 5px solid #efefef; +} +.layout-split-east { + border-left: 5px solid #efefef; +} +.layout-split-west { + border-right: 5px solid #efefef; +} +.layout-expand { + background-color: #f3f3f3; +} +.layout-expand-over { + background-color: #f3f3f3; +} +.tabs-container { + overflow: hidden; +} +.tabs-header { + border-width: 1px; + border-style: solid; + border-bottom-width: 0; + position: relative; + padding: 0; + padding-top: 2px; + overflow: hidden; +} +.tabs-header-plain { + border: 0; + background: transparent; +} +.tabs-scroller-left, +.tabs-scroller-right { + position: absolute; + top: auto; + bottom: 0; + width: 18px; + font-size: 1px; + display: none; + cursor: pointer; + border-width: 1px; + border-style: solid; +} +.tabs-scroller-left { + left: 0; +} +.tabs-scroller-right { + right: 0; +} +.tabs-tool { + position: absolute; + bottom: 0; + padding: 1px; + overflow: hidden; + border-width: 1px; + border-style: solid; +} +.tabs-header-plain .tabs-tool { + padding: 0 1px; +} +.tabs-wrap { + position: relative; + left: 0; + overflow: hidden; + width: 100%; + margin: 0; + padding: 0; +} +.tabs-scrolling { + margin-left: 18px; + margin-right: 18px; +} +.tabs-disabled { + opacity: 0.3; + filter: alpha(opacity=30); +} +.tabs { + list-style-type: none; + height: 26px; + margin: 0px; + padding: 0px; + padding-left: 4px; + width: 5000px; + border-style: solid; + border-width: 0 0 1px 0; +} +.tabs li { + float: left; + display: inline-block; + margin: 0 4px -1px 0; + padding: 0; + position: relative; + border: 0; +} +.tabs li a.tabs-inner { + display: inline-block; + text-decoration: none; + margin: 0; + padding: 0 10px; + height: 25px; + line-height: 25px; + text-align: center; + white-space: nowrap; + border-width: 1px; + border-style: solid; + -moz-border-radius: 5px 5px 0 0; + -webkit-border-radius: 5px 5px 0 0; + border-radius: 5px 5px 0 0; +} +.tabs li.tabs-selected a.tabs-inner { + font-weight: bold; + outline: none; +} +.tabs li.tabs-selected a:hover.tabs-inner { + cursor: default; + pointer: default; +} +.tabs li a.tabs-close, +.tabs-p-tool { + position: absolute; + font-size: 1px; + display: block; + height: 12px; + padding: 0; + top: 50%; + margin-top: -6px; + overflow: hidden; +} +.tabs li a.tabs-close { + width: 12px; + right: 5px; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tabs-p-tool { + right: 16px; +} +.tabs-p-tool a { + display: inline-block; + font-size: 1px; + width: 12px; + height: 12px; + margin: 0; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tabs li a:hover.tabs-close, +.tabs-p-tool a:hover { + opacity: 1; + filter: alpha(opacity=100); + cursor: hand; + cursor: pointer; +} +.tabs-with-icon { + padding-left: 18px; +} +.tabs-icon { + position: absolute; + width: 16px; + height: 16px; + left: 10px; + top: 50%; + margin-top: -8px; +} +.tabs-title { + font-size: 12px; +} +.tabs-closable { + padding-right: 8px; +} +.tabs-panels { + margin: 0px; + padding: 0px; + border-width: 1px; + border-style: solid; + border-top-width: 0; + overflow: hidden; +} +.tabs-header-bottom { + border-width: 0 1px 1px 1px; + padding: 0 0 2px 0; +} +.tabs-header-bottom .tabs { + border-width: 1px 0 0 0; +} +.tabs-header-bottom .tabs li { + margin: -1px 4px 0 0; +} +.tabs-header-bottom .tabs li a.tabs-inner { + -moz-border-radius: 0 0 5px 5px; + -webkit-border-radius: 0 0 5px 5px; + border-radius: 0 0 5px 5px; +} +.tabs-header-bottom .tabs-tool { + top: 0; +} +.tabs-header-bottom .tabs-scroller-left, +.tabs-header-bottom .tabs-scroller-right { + top: 0; + bottom: auto; +} +.tabs-panels-top { + border-width: 1px 1px 0 1px; +} +.tabs-header-left { + float: left; + border-width: 1px 0 1px 1px; + padding: 0; +} +.tabs-header-right { + float: right; + border-width: 1px 1px 1px 0; + padding: 0; +} +.tabs-header-left .tabs-wrap, +.tabs-header-right .tabs-wrap { + height: 100%; +} +.tabs-header-left .tabs { + height: 100%; + padding: 4px 0 0 4px; + border-width: 0 1px 0 0; +} +.tabs-header-right .tabs { + height: 100%; + padding: 4px 4px 0 0; + border-width: 0 0 0 1px; +} +.tabs-header-left .tabs li, +.tabs-header-right .tabs li { + display: block; + width: 100%; + position: relative; +} +.tabs-header-left .tabs li { + left: auto; + right: 0; + margin: 0 -1px 4px 0; + float: right; +} +.tabs-header-right .tabs li { + left: 0; + right: auto; + margin: 0 0 4px -1px; + float: left; +} +.tabs-header-left .tabs li a.tabs-inner { + display: block; + text-align: left; + -moz-border-radius: 5px 0 0 5px; + -webkit-border-radius: 5px 0 0 5px; + border-radius: 5px 0 0 5px; +} +.tabs-header-right .tabs li a.tabs-inner { + display: block; + text-align: left; + -moz-border-radius: 0 5px 5px 0; + -webkit-border-radius: 0 5px 5px 0; + border-radius: 0 5px 5px 0; +} +.tabs-panels-right { + float: right; + border-width: 1px 1px 1px 0; +} +.tabs-panels-left { + float: left; + border-width: 1px 0 1px 1px; +} +.tabs-header-noborder, +.tabs-panels-noborder { + border: 0px; +} +.tabs-header-plain { + border: 0px; + background: transparent; +} +.tabs-scroller-left { + background: #f3f3f3 url('images/tabs_icons.png') no-repeat 1px center; +} +.tabs-scroller-right { + background: #f3f3f3 url('images/tabs_icons.png') no-repeat -15px center; +} +.tabs li a.tabs-close { + background: url('images/tabs_icons.png') no-repeat -34px center; +} +.tabs li a.tabs-inner:hover { + background: #e2e2e2; + color: #000000; + filter: none; +} +.tabs li.tabs-selected a.tabs-inner { + background-color: #ffffff; + color: #575765; + background: -webkit-linear-gradient(top,#F8F8F8 0,#ffffff 100%); + background: -moz-linear-gradient(top,#F8F8F8 0,#ffffff 100%); + background: -o-linear-gradient(top,#F8F8F8 0,#ffffff 100%); + background: linear-gradient(to bottom,#F8F8F8 0,#ffffff 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#F8F8F8,endColorstr=#ffffff,GradientType=0); +} +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner { + background: -webkit-linear-gradient(top,#ffffff 0,#F8F8F8 100%); + background: -moz-linear-gradient(top,#ffffff 0,#F8F8F8 100%); + background: -o-linear-gradient(top,#ffffff 0,#F8F8F8 100%); + background: linear-gradient(to bottom,#ffffff 0,#F8F8F8 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#F8F8F8,GradientType=0); +} +.tabs-header-left .tabs li.tabs-selected a.tabs-inner { + background: -webkit-linear-gradient(left,#F8F8F8 0,#ffffff 100%); + background: -moz-linear-gradient(left,#F8F8F8 0,#ffffff 100%); + background: -o-linear-gradient(left,#F8F8F8 0,#ffffff 100%); + background: linear-gradient(to right,#F8F8F8 0,#ffffff 100%); + background-repeat: repeat-y; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#F8F8F8,endColorstr=#ffffff,GradientType=1); +} +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + background: -webkit-linear-gradient(left,#ffffff 0,#F8F8F8 100%); + background: -moz-linear-gradient(left,#ffffff 0,#F8F8F8 100%); + background: -o-linear-gradient(left,#ffffff 0,#F8F8F8 100%); + background: linear-gradient(to right,#ffffff 0,#F8F8F8 100%); + background-repeat: repeat-y; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#F8F8F8,GradientType=1); +} +.tabs li a.tabs-inner { + color: #575765; + background-color: #f3f3f3; + background: -webkit-linear-gradient(top,#F8F8F8 0,#eeeeee 100%); + background: -moz-linear-gradient(top,#F8F8F8 0,#eeeeee 100%); + background: -o-linear-gradient(top,#F8F8F8 0,#eeeeee 100%); + background: linear-gradient(to bottom,#F8F8F8 0,#eeeeee 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#F8F8F8,endColorstr=#eeeeee,GradientType=0); +} +.tabs-header, +.tabs-tool { + background-color: #f3f3f3; +} +.tabs-header-plain { + background: transparent; +} +.tabs-header, +.tabs-scroller-left, +.tabs-scroller-right, +.tabs-tool, +.tabs, +.tabs-panels, +.tabs li a.tabs-inner, +.tabs li.tabs-selected a.tabs-inner, +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner, +.tabs-header-left .tabs li.tabs-selected a.tabs-inner, +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + border-color: #D3D3D3; +} +.tabs-p-tool a:hover, +.tabs li a:hover.tabs-close, +.tabs-scroller-over { + background-color: #e2e2e2; +} +.tabs li.tabs-selected a.tabs-inner { + border-bottom: 1px solid #ffffff; +} +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner { + border-top: 1px solid #ffffff; +} +.tabs-header-left .tabs li.tabs-selected a.tabs-inner { + border-right: 1px solid #ffffff; +} +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + border-left: 1px solid #ffffff; +} +a.l-btn { + background-position: right 0; + text-decoration: none; + display: inline-block; + zoom: 1; + height: 24px; + padding-right: 18px; + cursor: pointer; + outline: none; +} +a.l-btn-plain { + border: 0; + padding: 1px 6px 1px 1px; +} +a.l-btn-disabled { + color: #ccc; + opacity: 0.5; + filter: alpha(opacity=50); + cursor: default; +} +a.l-btn span.l-btn-left { + display: inline-block; + background-position: 0 -48px; + padding: 0 0 0 18px; + line-height: 24px; + height: 24px; +} +a.l-btn-plain span.l-btn-left { + padding-left: 5px; +} +a.l-btn span span.l-btn-text { + position: relative; + display: inline-block; + vertical-align: top; + top: 4px; + width: auto; + height: 16px; + line-height: 16px; + font-size: 12px; + padding: 0; + margin: 0; +} +a.l-btn span span.l-btn-icon-left { + padding: 0 0 0 20px; + background-position: left center; +} +a.l-btn span span.l-btn-icon-right { + padding: 0 20px 0 0; + background-position: right center; +} +a.l-btn span span span.l-btn-empty { + display: inline-block; + margin: 0; + padding: 0; + width: 16px; +} +a:hover.l-btn { + background-position: right -24px; + outline: none; + text-decoration: none; +} +a:hover.l-btn span.l-btn-left { + background-position: 0 bottom; +} +a:hover.l-btn-plain { + padding: 0 5px 0 0; +} +a:hover.l-btn-disabled { + background-position: right 0; +} +a:hover.l-btn-disabled span.l-btn-left { + background-position: 0 -48px; +} +a.l-btn .l-btn-focus { + outline: #0000FF dotted thin; +} +a.l-btn { + color: #444; + background-image: url('images/linkbutton_bg.png'); + background-repeat: no-repeat; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +a.l-btn span.l-btn-left { + background-image: url('images/linkbutton_bg.png'); + background-repeat: no-repeat; +} +a.l-btn-plain, +a.l-btn-plain span.l-btn-left { + background: transparent; + border: 0; + filter: none; +} +a:hover.l-btn-plain { + background: #e2e2e2; + color: #000000; + border: 1px solid #ccc; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +a.l-btn-disabled, +a:hover.l-btn-disabled { + color: #444; + filter: alpha(opacity=50); +} +a.l-btn-plain-disabled, +a:hover.l-btn-plain-disabled { + background: transparent; + filter: alpha(opacity=50); +} +a.l-btn-selected, +a:hover.l-btn-selected { + background-position: right -24px; +} +a.l-btn-selected span.l-btn-left, +a:hover.l-btn-selected span.l-btn-left { + background-position: 0 bottom; +} +a.l-btn-plain-selected, +a:hover.l-btn-plain-selected { + background: #ddd; +} +.datagrid .panel-body { + overflow: hidden; + position: relative; +} +.datagrid-view { + position: relative; + overflow: hidden; +} +.datagrid-view1, +.datagrid-view2 { + position: absolute; + overflow: hidden; + top: 0; +} +.datagrid-view1 { + left: 0; +} +.datagrid-view2 { + right: 0; +} +.datagrid-mask { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + opacity: 0.3; + filter: alpha(opacity=30); + display: none; +} +.datagrid-mask-msg { + position: absolute; + top: 50%; + margin-top: -20px; + padding: 12px 5px 10px 30px; + width: auto; + height: 16px; + border-width: 2px; + border-style: solid; + display: none; +} +.datagrid-sort-icon { + padding: 0; +} +.datagrid-toolbar { + height: auto; + padding: 1px 2px; + border-width: 0 0 1px 0; + border-style: solid; +} +.datagrid-btn-separator { + float: left; + height: 24px; + border-left: 1px solid #ccc; + border-right: 1px solid #fff; + margin: 2px 1px; +} +.datagrid .datagrid-pager { + display: block; + margin: 0; + border-width: 1px 0 0 0; + border-style: solid; +} +.datagrid .datagrid-pager-top { + border-width: 0 0 1px 0; +} +.datagrid-header { + overflow: hidden; + cursor: default; + border-width: 0 0 1px 0; + border-style: solid; +} +.datagrid-header-inner { + float: left; + width: 10000px; +} +.datagrid-header-row, +.datagrid-row { + height: 25px; +} +.datagrid-header td, +.datagrid-body td, +.datagrid-footer td { + border-width: 0 1px 1px 0; + border-style: dotted; + margin: 0; + padding: 0; +} +.datagrid-cell, +.datagrid-cell-group, +.datagrid-header-rownumber, +.datagrid-cell-rownumber { + margin: 0; + padding: 0 4px; + white-space: nowrap; + word-wrap: normal; + overflow: hidden; + height: 18px; + line-height: 18px; + font-size: 12px; +} +.datagrid-header .datagrid-cell { + height: auto; +} +.datagrid-header .datagrid-cell span { + font-size: 12px; +} +.datagrid-cell-group { + text-align: center; +} +.datagrid-header-rownumber, +.datagrid-cell-rownumber { + width: 25px; + text-align: center; + margin: 0; + padding: 0; +} +.datagrid-body { + margin: 0; + padding: 0; + overflow: auto; + zoom: 1; +} +.datagrid-view1 .datagrid-body-inner { + padding-bottom: 20px; +} +.datagrid-view1 .datagrid-body { + overflow: hidden; +} +.datagrid-footer { + overflow: hidden; +} +.datagrid-footer-inner { + border-width: 1px 0 0 0; + border-style: solid; + width: 10000px; + float: left; +} +.datagrid-row-editing .datagrid-cell { + height: auto; +} +.datagrid-header-check, +.datagrid-cell-check { + padding: 0; + width: 27px; + height: 18px; + font-size: 1px; + text-align: center; + overflow: hidden; +} +.datagrid-header-check input, +.datagrid-cell-check input { + margin: 0; + padding: 0; + width: 15px; + height: 18px; +} +.datagrid-resize-proxy { + position: absolute; + width: 1px; + height: 10000px; + top: 0; + cursor: e-resize; + display: none; +} +.datagrid-body .datagrid-editable { + margin: 0; + padding: 0; +} +.datagrid-body .datagrid-editable table { + width: 100%; + height: 100%; +} +.datagrid-body .datagrid-editable td { + border: 0; + margin: 0; + padding: 0; +} +.datagrid-body .datagrid-editable .datagrid-editable-input { + margin: 0; + padding: 2px; + border-width: 1px; + border-style: solid; +} +.datagrid-sort-desc .datagrid-sort-icon { + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat -16px center; +} +.datagrid-sort-asc .datagrid-sort-icon { + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat 0px center; +} +.datagrid-row-collapse { + background: url('images/datagrid_icons.png') no-repeat -48px center; +} +.datagrid-row-expand { + background: url('images/datagrid_icons.png') no-repeat -32px center; +} +.datagrid-mask-msg { + background: #ffffff url('images/loading.gif') no-repeat scroll 5px center; +} +.datagrid-header, +.datagrid-td-rownumber { + background-color: #fafafa; + background: -webkit-linear-gradient(top,#fdfdfd 0,#f5f5f5 100%); + background: -moz-linear-gradient(top,#fdfdfd 0,#f5f5f5 100%); + background: -o-linear-gradient(top,#fdfdfd 0,#f5f5f5 100%); + background: linear-gradient(to bottom,#fdfdfd 0,#f5f5f5 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#fdfdfd,endColorstr=#f5f5f5,GradientType=0); +} +.datagrid-cell-rownumber { + color: #000000; +} +.datagrid-resize-proxy { + background: #bfbfbf; +} +.datagrid-mask { + background: #ccc; +} +.datagrid-mask-msg { + border-color: #D3D3D3; +} +.datagrid-toolbar, +.datagrid-pager { + background: #fafafa; +} +.datagrid-header, +.datagrid-toolbar, +.datagrid-pager, +.datagrid-footer-inner { + border-color: #ddd; +} +.datagrid-header td, +.datagrid-body td, +.datagrid-footer td { + border-color: #ccc; +} +.datagrid-htable, +.datagrid-btable, +.datagrid-ftable { + color: #000000; + border-collapse: separate; +} +.datagrid-row-alt { + background: #fafafa; +} +.datagrid-row-over, +.datagrid-header td.datagrid-header-over { + background: #e2e2e2; + color: #000000; + cursor: default; +} +.datagrid-row-selected { + background: #0092DC; + color: #fff; +} +.datagrid-body .datagrid-editable .datagrid-editable-input { + border-color: #D3D3D3; +} +.propertygrid .datagrid-view1 .datagrid-body td { + padding-bottom: 1px; + border-width: 0 1px 0 0; +} +.propertygrid .datagrid-group { + height: 21px; + overflow: hidden; + border-width: 0 0 1px 0; + border-style: solid; +} +.propertygrid .datagrid-group span { + font-weight: bold; +} +.propertygrid .datagrid-view1 .datagrid-body td { + border-color: #ddd; +} +.propertygrid .datagrid-view1 .datagrid-group { + border-color: #f3f3f3; +} +.propertygrid .datagrid-view2 .datagrid-group { + border-color: #ddd; +} +.propertygrid .datagrid-group, +.propertygrid .datagrid-view1 .datagrid-body, +.propertygrid .datagrid-view1 .datagrid-row-over, +.propertygrid .datagrid-view1 .datagrid-row-selected { + background: #f3f3f3; +} +.pagination { + zoom: 1; +} +.pagination table { + float: left; + height: 30px; +} +.pagination td { + border: 0; +} +.pagination-btn-separator { + float: left; + height: 24px; + border-left: 1px solid #ccc; + border-right: 1px solid #fff; + margin: 3px 1px; +} +.pagination .pagination-num { + border-width: 1px; + border-style: solid; + margin: 0 2px; + padding: 2px; + width: 2em; + height: auto; +} +.pagination-page-list { + margin: 0px 6px; + padding: 1px 2px; + width: auto; + height: auto; + border-width: 1px; + border-style: solid; +} +.pagination-info { + float: right; + margin: 0 6px 0 0; + padding: 0; + height: 30px; + line-height: 30px; + font-size: 12px; +} +.pagination span { + font-size: 12px; +} +a.pagination-link { + padding: 1px; +} +a.pagination-link span.l-btn-left { + padding-left: 0; +} +a.pagination-link span span.l-btn-text { + width: 24px; + text-align: center; +} +a:hover.pagination-link { + padding: 0; +} +.pagination-first { + background: url('images/pagination_icons.png') no-repeat 0 center; +} +.pagination-prev { + background: url('images/pagination_icons.png') no-repeat -16px center; +} +.pagination-next { + background: url('images/pagination_icons.png') no-repeat -32px center; +} +.pagination-last { + background: url('images/pagination_icons.png') no-repeat -48px center; +} +.pagination-load { + background: url('images/pagination_icons.png') no-repeat -64px center; +} +.pagination-loading { + background: url('images/loading.gif') no-repeat center center; +} +.pagination-page-list, +.pagination .pagination-num { + border-color: #D3D3D3; +} +.calendar { + border-width: 1px; + border-style: solid; + padding: 1px; + overflow: hidden; +} +.calendar table { + border-collapse: separate; + font-size: 12px; + width: 100%; + height: 100%; +} +.calendar table td, +.calendar table th { + font-size: 12px; +} +.calendar-noborder { + border: 0; +} +.calendar-header { + position: relative; + height: 22px; +} +.calendar-title { + text-align: center; + height: 22px; +} +.calendar-title span { + position: relative; + display: inline-block; + top: 2px; + padding: 0 3px; + height: 18px; + line-height: 18px; + font-size: 12px; + cursor: pointer; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-prevmonth, +.calendar-nextmonth, +.calendar-prevyear, +.calendar-nextyear { + position: absolute; + top: 50%; + margin-top: -7px; + width: 14px; + height: 14px; + cursor: pointer; + font-size: 1px; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-prevmonth { + left: 20px; + background: url('images/calendar_arrows.png') no-repeat -18px -2px; +} +.calendar-nextmonth { + right: 20px; + background: url('images/calendar_arrows.png') no-repeat -34px -2px; +} +.calendar-prevyear { + left: 3px; + background: url('images/calendar_arrows.png') no-repeat -1px -2px; +} +.calendar-nextyear { + right: 3px; + background: url('images/calendar_arrows.png') no-repeat -49px -2px; +} +.calendar-body { + position: relative; +} +.calendar-body th, +.calendar-body td { + text-align: center; +} +.calendar-day { + border: 0; + padding: 1px; + cursor: pointer; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-other-month { + opacity: 0.3; + filter: alpha(opacity=30); +} +.calendar-menu { + position: absolute; + top: 0; + left: 0; + width: 180px; + height: 150px; + padding: 5px; + font-size: 12px; + display: none; + overflow: hidden; +} +.calendar-menu-year-inner { + text-align: center; + padding-bottom: 5px; +} +.calendar-menu-year { + width: 40px; + text-align: center; + border-width: 1px; + border-style: solid; + margin: 0; + padding: 2px; + font-weight: bold; + font-size: 12px; +} +.calendar-menu-prev, +.calendar-menu-next { + display: inline-block; + width: 21px; + height: 21px; + vertical-align: top; + cursor: pointer; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-menu-prev { + margin-right: 10px; + background: url('images/calendar_arrows.png') no-repeat 2px 2px; +} +.calendar-menu-next { + margin-left: 10px; + background: url('images/calendar_arrows.png') no-repeat -45px 2px; +} +.calendar-menu-month { + text-align: center; + cursor: pointer; + font-weight: bold; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-body th, +.calendar-menu-month { + color: #4d4d4d; +} +.calendar-day { + color: #000000; +} +.calendar-sunday { + color: #CC2222; +} +.calendar-saturday { + color: #00ee00; +} +.calendar-today { + color: #0000ff; +} +.calendar-menu-year { + border-color: #D3D3D3; +} +.calendar { + border-color: #D3D3D3; +} +.calendar-header { + background: #f3f3f3; +} +.calendar-body, +.calendar-menu { + background: #ffffff; +} +.calendar-body th { + background: #fafafa; +} +.calendar-hover, +.calendar-nav-hover, +.calendar-menu-hover { + background-color: #e2e2e2; + color: #000000; +} +.calendar-hover { + border: 1px solid #ccc; + padding: 0; +} +.calendar-selected { + background-color: #0092DC; + color: #fff; + border: 1px solid #0070a9; + padding: 0; +} +.datebox-calendar-inner { + height: 180px; +} +.datebox-button { + height: 18px; + padding: 2px 5px; + text-align: center; +} +.datebox-button a { + font-size: 12px; + font-weight: bold; + text-decoration: none; + opacity: 0.6; + filter: alpha(opacity=60); +} +.datebox-button a:hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.datebox-current, +.datebox-close { + float: left; +} +.datebox-close { + float: right; +} +.datebox .combo-arrow { + background-image: url('images/datebox_arrow.png'); + background-position: center center; +} +.datebox-button { + background-color: #fafafa; +} +.datebox-button a { + color: #444; +} +.spinner { + display: inline-block; + white-space: nowrap; + margin: 0; + padding: 0; + border-width: 1px; + border-style: solid; + overflow: hidden; + vertical-align: middle; +} +.spinner .spinner-text { + font-size: 12px; + border: 0px; + line-height: 20px; + height: 20px; + margin: 0; + padding: 0 2px; + *margin-top: -1px; + *height: 18px; + *line-height: 18px; + _height: 18px; + _line-height: 18px; + vertical-align: baseline; +} +.spinner-arrow { + display: inline-block; + overflow: hidden; + vertical-align: top; + margin: 0; + padding: 0; +} +.spinner-arrow-up, +.spinner-arrow-down { + opacity: 0.6; + filter: alpha(opacity=60); + display: block; + font-size: 1px; + width: 18px; + height: 10px; +} +.spinner-arrow-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.spinner-arrow-up { + background: url('images/spinner_arrows.png') no-repeat 1px center; +} +.spinner-arrow-down { + background: url('images/spinner_arrows.png') no-repeat -15px center; +} +.spinner { + border-color: #D3D3D3; +} +.spinner-arrow { + background-color: #f3f3f3; +} +.spinner-arrow-hover { + background-color: #e2e2e2; +} +.progressbar { + border-width: 1px; + border-style: solid; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; + overflow: hidden; + position: relative; +} +.progressbar-text { + text-align: center; + position: absolute; +} +.progressbar-value { + position: relative; + overflow: hidden; + width: 0; + -moz-border-radius: 5px 0 0 5px; + -webkit-border-radius: 5px 0 0 5px; + border-radius: 5px 0 0 5px; +} +.progressbar { + border-color: #D3D3D3; +} +.progressbar-text { + color: #000000; + font-size: 12px; +} +.progressbar-value .progressbar-text { + background-color: #0092DC; + color: #fff; +} +.searchbox { + display: inline-block; + white-space: nowrap; + margin: 0; + padding: 0; + border-width: 1px; + border-style: solid; + overflow: hidden; +} +.searchbox .searchbox-text { + font-size: 12px; + border: 0; + margin: 0; + padding: 0; + line-height: 20px; + height: 20px; + *margin-top: -1px; + *height: 18px; + *line-height: 18px; + _height: 18px; + _line-height: 18px; + vertical-align: baseline; +} +.searchbox .searchbox-prompt { + font-size: 12px; + color: #ccc; +} +.searchbox-button { + width: 18px; + height: 20px; + overflow: hidden; + display: inline-block; + vertical-align: top; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.searchbox-button-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.searchbox a.l-btn-plain { + height: 20px; + border: 0; + padding: 0 6px 0 0; + vertical-align: top; + opacity: 0.6; + filter: alpha(opacity=60); + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox a.l-btn .l-btn-left { + padding: 0 0 0 4px; +} +.searchbox a.l-btn .l-btn-text { + position: static; + vertical-align: top; +} +.searchbox a.l-btn-plain:hover { + border: 0; + padding: 0 6px 0 0; + opacity: 1.0; + filter: alpha(opacity=100); + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox a.m-btn-plain-active { + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox-button { + background: url('images/searchbox_button.png') no-repeat center center; +} +.searchbox { + border-color: #D3D3D3; + background-color: #fff; +} +.searchbox a.l-btn-plain { + background: #f3f3f3; +} +.slider-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.slider-h { + height: 22px; +} +.slider-v { + width: 22px; +} +.slider-inner { + position: relative; + height: 6px; + top: 7px; + border-width: 1px; + border-style: solid; + border-radius: 5px; +} +.slider-handle { + position: absolute; + display: block; + outline: none; + width: 20px; + height: 20px; + top: -7px; + margin-left: -10px; +} +.slider-tip { + position: absolute; + display: inline-block; + line-height: 12px; + font-size: 12px; + white-space: nowrap; + top: -22px; +} +.slider-rule { + position: relative; + top: 15px; +} +.slider-rule span { + position: absolute; + display: inline-block; + font-size: 0; + height: 5px; + border-width: 0 0 0 1px; + border-style: solid; +} +.slider-rulelabel { + position: relative; + top: 20px; +} +.slider-rulelabel span { + position: absolute; + display: inline-block; + font-size: 12px; +} +.slider-v .slider-inner { + width: 6px; + left: 7px; + top: 0; + float: left; +} +.slider-v .slider-handle { + left: 3px; + margin-top: -10px; +} +.slider-v .slider-tip { + left: -10px; + margin-top: -6px; +} +.slider-v .slider-rule { + float: left; + top: 0; + left: 16px; +} +.slider-v .slider-rule span { + width: 5px; + height: 'auto'; + border-left: 0; + border-width: 1px 0 0 0; + border-style: solid; +} +.slider-v .slider-rulelabel { + float: left; + top: 0; + left: 23px; +} +.slider-handle { + background: url('images/slider_handle.png') no-repeat; +} +.slider-inner { + border-color: #D3D3D3; + background: #f3f3f3; +} +.slider-rule span { + border-color: #D3D3D3; +} +.slider-rulelabel span { + color: #000000; +} +.menu { + position: absolute; + margin: 0; + padding: 2px; + border-width: 1px; + border-style: solid; + overflow: hidden; +} +.menu-item { + position: relative; + margin: 0; + padding: 0; + overflow: hidden; + white-space: nowrap; + cursor: pointer; + border-width: 1px; + border-style: solid; +} +.menu-text { + height: 20px; + line-height: 20px; + float: left; + padding-left: 28px; +} +.menu-icon { + position: absolute; + width: 16px; + height: 16px; + left: 2px; + top: 50%; + margin-top: -8px; +} +.menu-rightarrow { + position: absolute; + width: 16px; + height: 16px; + right: 0; + top: 50%; + margin-top: -8px; +} +.menu-line { + position: absolute; + left: 26px; + top: 0; + height: 2000px; + font-size: 1px; +} +.menu-sep { + margin: 3px 0px 3px 25px; + font-size: 1px; +} +.menu-active { + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.menu-item-disabled { + opacity: 0.5; + filter: alpha(opacity=50); + cursor: default; +} +.menu-text, +.menu-text span { + font-size: 12px; +} +.menu-shadow { + position: absolute; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; + background: #ccc; + -moz-box-shadow: 2px 2px 3px #cccccc; + -webkit-box-shadow: 2px 2px 3px #cccccc; + box-shadow: 2px 2px 3px #cccccc; + filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2); +} +.menu-rightarrow { + background: url('images/menu_arrows.png') no-repeat -32px center; +} +.menu-line { + border-left: 1px solid #ccc; + border-right: 1px solid #fff; +} +.menu-sep { + border-top: 1px solid #ccc; + border-bottom: 1px solid #fff; +} +.menu { + background-color: #f3f3f3; + border-color: #D3D3D3; + color: #444; +} +.menu-content { + background: #ffffff; +} +.menu-item { + border-color: transparent; + _border-color: #f3f3f3; +} +.menu-active { + border-color: #ccc; + color: #000000; + background: #e2e2e2; +} +.menu-active-disabled { + border-color: transparent; + background: transparent; + color: #444; +} +.m-btn-downarrow { + display: inline-block; + width: 16px; + height: 16px; + line-height: 16px; + font-size: 12px; + _vertical-align: middle; +} +a.m-btn-active { + background-position: bottom right; +} +a.m-btn-active span.l-btn-left { + background-position: bottom left; +} +a.m-btn-plain-active { + background: transparent; + padding: 0 5px 0 0; + border-width: 1px; + border-style: solid; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.m-btn-downarrow { + background: url('images/menu_arrows.png') no-repeat 2px center; +} +a.m-btn-plain-active { + border-color: #ccc; + background-color: #e2e2e2; + color: #000000; +} +.s-btn-downarrow { + display: inline-block; + margin: 0 0 0 4px; + padding: 0 0 0 1px; + width: 14px; + height: 16px; + line-height: 16px; + border-width: 0; + border-style: solid; + font-size: 12px; + _vertical-align: middle; +} +a.s-btn-active { + background-position: bottom right; +} +a.s-btn-active span.l-btn-left { + background-position: bottom left; +} +a.s-btn-plain-active { + background: transparent; + padding: 0 5px 0 0; + border-width: 1px; + border-style: solid; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.s-btn-downarrow { + background: url('images/menu_arrows.png') no-repeat 2px center; + border-color: #bfbfbf; +} +a:hover.l-btn .s-btn-downarrow, +a.s-btn-active .s-btn-downarrow, +a.s-btn-plain-active .s-btn-downarrow { + background-position: 1px center; + padding: 0; + border-width: 0 0 0 1px; +} +a.s-btn-plain-active { + border-color: #ccc; + background-color: #e2e2e2; + color: #000000; +} +.messager-body { + padding: 10px; + overflow: hidden; +} +.messager-button { + text-align: center; + padding-top: 10px; +} +.messager-icon { + float: left; + width: 32px; + height: 32px; + margin: 0 10px 10px 0; +} +.messager-error { + background: url('images/messager_icons.png') no-repeat scroll -64px 0; +} +.messager-info { + background: url('images/messager_icons.png') no-repeat scroll 0 0; +} +.messager-question { + background: url('images/messager_icons.png') no-repeat scroll -32px 0; +} +.messager-warning { + background: url('images/messager_icons.png') no-repeat scroll -96px 0; +} +.messager-progress { + padding: 10px; +} +.messager-p-msg { + margin-bottom: 5px; +} +.messager-body .messager-input { + width: 100%; + padding: 1px 0; + border: 1px solid #D3D3D3; +} +.tree { + margin: 0; + padding: 0; + list-style-type: none; +} +.tree li { + white-space: nowrap; +} +.tree li ul { + list-style-type: none; + margin: 0; + padding: 0; +} +.tree-node { + height: 18px; + white-space: nowrap; + cursor: pointer; +} +.tree-hit { + cursor: pointer; +} +.tree-expanded, +.tree-collapsed, +.tree-folder, +.tree-file, +.tree-checkbox, +.tree-indent { + display: inline-block; + width: 16px; + height: 18px; + vertical-align: top; + overflow: hidden; +} +.tree-expanded { + background: url('images/tree_icons.png') no-repeat -18px 0px; +} +.tree-expanded-hover { + background: url('images/tree_icons.png') no-repeat -50px 0px; +} +.tree-collapsed { + background: url('images/tree_icons.png') no-repeat 0px 0px; +} +.tree-collapsed-hover { + background: url('images/tree_icons.png') no-repeat -32px 0px; +} +.tree-lines .tree-expanded, +.tree-lines .tree-root-first .tree-expanded { + background: url('images/tree_icons.png') no-repeat -144px 0; +} +.tree-lines .tree-collapsed, +.tree-lines .tree-root-first .tree-collapsed { + background: url('images/tree_icons.png') no-repeat -128px 0; +} +.tree-lines .tree-node-last .tree-expanded, +.tree-lines .tree-root-one .tree-expanded { + background: url('images/tree_icons.png') no-repeat -80px 0; +} +.tree-lines .tree-node-last .tree-collapsed, +.tree-lines .tree-root-one .tree-collapsed { + background: url('images/tree_icons.png') no-repeat -64px 0; +} +.tree-line { + background: url('images/tree_icons.png') no-repeat -176px 0; +} +.tree-join { + background: url('images/tree_icons.png') no-repeat -192px 0; +} +.tree-joinbottom { + background: url('images/tree_icons.png') no-repeat -160px 0; +} +.tree-folder { + background: url('images/tree_icons.png') no-repeat -208px 0; +} +.tree-folder-open { + background: url('images/tree_icons.png') no-repeat -224px 0; +} +.tree-file { + background: url('images/tree_icons.png') no-repeat -240px 0; +} +.tree-loading { + background: url('images/loading.gif') no-repeat center center; +} +.tree-checkbox0 { + background: url('images/tree_icons.png') no-repeat -208px -18px; +} +.tree-checkbox1 { + background: url('images/tree_icons.png') no-repeat -224px -18px; +} +.tree-checkbox2 { + background: url('images/tree_icons.png') no-repeat -240px -18px; +} +.tree-title { + font-size: 12px; + display: inline-block; + text-decoration: none; + vertical-align: top; + white-space: nowrap; + padding: 0 2px; + height: 18px; + line-height: 18px; +} +.tree-node-proxy { + font-size: 12px; + line-height: 20px; + padding: 0 2px 0 20px; + border-width: 1px; + border-style: solid; + z-index: 9900000; +} +.tree-dnd-icon { + display: inline-block; + position: absolute; + width: 16px; + height: 18px; + left: 2px; + top: 50%; + margin-top: -9px; +} +.tree-dnd-yes { + background: url('images/tree_icons.png') no-repeat -256px 0; +} +.tree-dnd-no { + background: url('images/tree_icons.png') no-repeat -256px -18px; +} +.tree-node-top { + border-top: 1px dotted red; +} +.tree-node-bottom { + border-bottom: 1px dotted red; +} +.tree-node-append .tree-title { + border: 1px dotted red; +} +.tree-editor { + border: 1px solid #ccc; + font-size: 12px; + height: 14px !important; + height: 18px; + line-height: 14px; + padding: 1px 2px; + width: 80px; + position: absolute; + top: 0; +} +.tree-node-proxy { + background-color: #ffffff; + color: #000000; + border-color: #D3D3D3; +} +.tree-node-hover { + background: #e2e2e2; + color: #000000; +} +.tree-node-selected { + background: #0092DC; + color: #fff; +} +.validatebox-invalid { + background-image: url('images/validatebox_warning.png'); + background-repeat: no-repeat; + background-position: right center; + border-color: #ffa8a8; + background-color: #fff3f3; + color: #000; +} +.tooltip { + position: absolute; + display: none; + z-index: 9900000; + outline: none; + opacity: 1; + filter: alpha(opacity=100); + padding: 5px; + border-width: 1px; + border-style: solid; + border-radius: 5px; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.tooltip-content { + font-size: 12px; +} +.tooltip-arrow-outer, +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + line-height: 0; + font-size: 0; + border-style: solid; + border-width: 6px; + border-color: transparent; + _border-color: tomato; + _filter: chroma(color=tomato); +} +.tooltip-right .tooltip-arrow-outer { + left: 0; + top: 50%; + margin: -6px 0 0 -13px; +} +.tooltip-right .tooltip-arrow { + left: 0; + top: 50%; + margin: -6px 0 0 -12px; +} +.tooltip-left .tooltip-arrow-outer { + right: 0; + top: 50%; + margin: -6px -13px 0 0; +} +.tooltip-left .tooltip-arrow { + right: 0; + top: 50%; + margin: -6px -12px 0 0; +} +.tooltip-top .tooltip-arrow-outer { + bottom: 0; + left: 50%; + margin: 0 0 -13px -6px; +} +.tooltip-top .tooltip-arrow { + bottom: 0; + left: 50%; + margin: 0 0 -12px -6px; +} +.tooltip-bottom .tooltip-arrow-outer { + top: 0; + left: 50%; + margin: -13px 0 0 -6px; +} +.tooltip-bottom .tooltip-arrow { + top: 0; + left: 50%; + margin: -12px 0 0 -6px; +} +.tooltip { + background-color: #ffffff; + border-color: #D3D3D3; + color: #000000; +} +.tooltip-right .tooltip-arrow-outer { + border-right-color: #D3D3D3; +} +.tooltip-right .tooltip-arrow { + border-right-color: #ffffff; +} +.tooltip-left .tooltip-arrow-outer { + border-left-color: #D3D3D3; +} +.tooltip-left .tooltip-arrow { + border-left-color: #ffffff; +} +.tooltip-top .tooltip-arrow-outer { + border-top-color: #D3D3D3; +} +.tooltip-top .tooltip-arrow { + border-top-color: #ffffff; +} +.tooltip-bottom .tooltip-arrow-outer { + border-bottom-color: #D3D3D3; +} +.tooltip-bottom .tooltip-arrow { + border-bottom-color: #ffffff; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/gray/images/accordion_arrows.png b/src/main/webapp/js/easyui-1.3.5/themes/gray/images/accordion_arrows.png new file mode 100644 index 00000000..a0b8769c Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/gray/images/accordion_arrows.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/gray/images/blank.gif b/src/main/webapp/js/easyui-1.3.5/themes/gray/images/blank.gif new file mode 100644 index 00000000..1d11fa9a Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/gray/images/blank.gif differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/gray/images/calendar_arrows.png b/src/main/webapp/js/easyui-1.3.5/themes/gray/images/calendar_arrows.png new file mode 100644 index 00000000..430c4ad6 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/gray/images/calendar_arrows.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/gray/images/combo_arrow.png b/src/main/webapp/js/easyui-1.3.5/themes/gray/images/combo_arrow.png new file mode 100644 index 00000000..04f4ba0c Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/gray/images/combo_arrow.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/gray/images/datagrid_icons.png b/src/main/webapp/js/easyui-1.3.5/themes/gray/images/datagrid_icons.png new file mode 100644 index 00000000..73c4e888 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/gray/images/datagrid_icons.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/gray/images/datebox_arrow.png b/src/main/webapp/js/easyui-1.3.5/themes/gray/images/datebox_arrow.png new file mode 100644 index 00000000..783c8335 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/gray/images/datebox_arrow.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/gray/images/layout_arrows.png b/src/main/webapp/js/easyui-1.3.5/themes/gray/images/layout_arrows.png new file mode 100644 index 00000000..bf7929f5 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/gray/images/layout_arrows.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/gray/images/linkbutton_bg.png b/src/main/webapp/js/easyui-1.3.5/themes/gray/images/linkbutton_bg.png new file mode 100644 index 00000000..fc66bd2c Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/gray/images/linkbutton_bg.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/gray/images/loading.gif b/src/main/webapp/js/easyui-1.3.5/themes/gray/images/loading.gif new file mode 100644 index 00000000..68f01d04 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/gray/images/loading.gif differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/gray/images/menu_arrows.png b/src/main/webapp/js/easyui-1.3.5/themes/gray/images/menu_arrows.png new file mode 100644 index 00000000..b986842e Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/gray/images/menu_arrows.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/gray/images/messager_icons.png b/src/main/webapp/js/easyui-1.3.5/themes/gray/images/messager_icons.png new file mode 100644 index 00000000..62c18c13 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/gray/images/messager_icons.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/gray/images/pagination_icons.png b/src/main/webapp/js/easyui-1.3.5/themes/gray/images/pagination_icons.png new file mode 100644 index 00000000..e0f1b07b Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/gray/images/pagination_icons.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/gray/images/panel_tools.png b/src/main/webapp/js/easyui-1.3.5/themes/gray/images/panel_tools.png new file mode 100644 index 00000000..f33f8c97 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/gray/images/panel_tools.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/gray/images/searchbox_button.png b/src/main/webapp/js/easyui-1.3.5/themes/gray/images/searchbox_button.png new file mode 100644 index 00000000..6dd19315 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/gray/images/searchbox_button.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/gray/images/slider_handle.png b/src/main/webapp/js/easyui-1.3.5/themes/gray/images/slider_handle.png new file mode 100644 index 00000000..b9802bae Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/gray/images/slider_handle.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/gray/images/spinner_arrows.png b/src/main/webapp/js/easyui-1.3.5/themes/gray/images/spinner_arrows.png new file mode 100644 index 00000000..dba62bb7 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/gray/images/spinner_arrows.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/gray/images/tabs_icons.png b/src/main/webapp/js/easyui-1.3.5/themes/gray/images/tabs_icons.png new file mode 100644 index 00000000..dfa10f7d Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/gray/images/tabs_icons.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/gray/images/tree_icons.png b/src/main/webapp/js/easyui-1.3.5/themes/gray/images/tree_icons.png new file mode 100644 index 00000000..e9be4f3a Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/gray/images/tree_icons.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/gray/images/validatebox_warning.png b/src/main/webapp/js/easyui-1.3.5/themes/gray/images/validatebox_warning.png new file mode 100644 index 00000000..2b3d4f05 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/gray/images/validatebox_warning.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/gray/layout.css b/src/main/webapp/js/easyui-1.3.5/themes/gray/layout.css new file mode 100644 index 00000000..d26772e5 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/gray/layout.css @@ -0,0 +1,91 @@ +.layout { + position: relative; + overflow: hidden; + margin: 0; + padding: 0; + z-index: 0; +} +.layout-panel { + position: absolute; + overflow: hidden; +} +.layout-panel-east, +.layout-panel-west { + z-index: 2; +} +.layout-panel-north, +.layout-panel-south { + z-index: 3; +} +.layout-expand { + position: absolute; + padding: 0px; + font-size: 1px; + cursor: pointer; + z-index: 1; +} +.layout-expand .panel-header, +.layout-expand .panel-body { + background: transparent; + filter: none; + overflow: hidden; +} +.layout-expand .panel-header { + border-bottom-width: 0px; +} +.layout-split-proxy-h, +.layout-split-proxy-v { + position: absolute; + font-size: 1px; + display: none; + z-index: 5; +} +.layout-split-proxy-h { + width: 5px; + cursor: e-resize; +} +.layout-split-proxy-v { + height: 5px; + cursor: n-resize; +} +.layout-mask { + position: absolute; + background: #fafafa; + filter: alpha(opacity=10); + opacity: 0.10; + z-index: 4; +} +.layout-button-up { + background: url('images/layout_arrows.png') no-repeat -16px -16px; +} +.layout-button-down { + background: url('images/layout_arrows.png') no-repeat -16px 0; +} +.layout-button-left { + background: url('images/layout_arrows.png') no-repeat 0 0; +} +.layout-button-right { + background: url('images/layout_arrows.png') no-repeat 0 -16px; +} +.layout-split-proxy-h, +.layout-split-proxy-v { + background-color: #bfbfbf; +} +.layout-split-north { + border-bottom: 5px solid #efefef; +} +.layout-split-south { + border-top: 5px solid #efefef; +} +.layout-split-east { + border-left: 5px solid #efefef; +} +.layout-split-west { + border-right: 5px solid #efefef; +} +.layout-expand { + background-color: #f3f3f3; +} +.layout-expand-over { + background-color: #f3f3f3; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/gray/linkbutton.css b/src/main/webapp/js/easyui-1.3.5/themes/gray/linkbutton.css new file mode 100644 index 00000000..4c5e13b4 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/gray/linkbutton.css @@ -0,0 +1,124 @@ +a.l-btn { + background-position: right 0; + text-decoration: none; + display: inline-block; + zoom: 1; + height: 24px; + padding-right: 18px; + cursor: pointer; + outline: none; +} +a.l-btn-plain { + border: 0; + padding: 1px 6px 1px 1px; +} +a.l-btn-disabled { + color: #ccc; + opacity: 0.5; + filter: alpha(opacity=50); + cursor: default; +} +a.l-btn span.l-btn-left { + display: inline-block; + background-position: 0 -48px; + padding: 0 0 0 18px; + line-height: 24px; + height: 24px; +} +a.l-btn-plain span.l-btn-left { + padding-left: 5px; +} +a.l-btn span span.l-btn-text { + position: relative; + display: inline-block; + vertical-align: top; + top: 4px; + width: auto; + height: 16px; + line-height: 16px; + font-size: 12px; + padding: 0; + margin: 0; +} +a.l-btn span span.l-btn-icon-left { + padding: 0 0 0 20px; + background-position: left center; +} +a.l-btn span span.l-btn-icon-right { + padding: 0 20px 0 0; + background-position: right center; +} +a.l-btn span span span.l-btn-empty { + display: inline-block; + margin: 0; + padding: 0; + width: 16px; +} +a:hover.l-btn { + background-position: right -24px; + outline: none; + text-decoration: none; +} +a:hover.l-btn span.l-btn-left { + background-position: 0 bottom; +} +a:hover.l-btn-plain { + padding: 0 5px 0 0; +} +a:hover.l-btn-disabled { + background-position: right 0; +} +a:hover.l-btn-disabled span.l-btn-left { + background-position: 0 -48px; +} +a.l-btn .l-btn-focus { + outline: #0000FF dotted thin; +} +a.l-btn { + color: #444; + background-image: url('images/linkbutton_bg.png'); + background-repeat: no-repeat; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +a.l-btn span.l-btn-left { + background-image: url('images/linkbutton_bg.png'); + background-repeat: no-repeat; +} +a.l-btn-plain, +a.l-btn-plain span.l-btn-left { + background: transparent; + border: 0; + filter: none; +} +a:hover.l-btn-plain { + background: #e2e2e2; + color: #000000; + border: 1px solid #ccc; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +a.l-btn-disabled, +a:hover.l-btn-disabled { + color: #444; + filter: alpha(opacity=50); +} +a.l-btn-plain-disabled, +a:hover.l-btn-plain-disabled { + background: transparent; + filter: alpha(opacity=50); +} +a.l-btn-selected, +a:hover.l-btn-selected { + background-position: right -24px; +} +a.l-btn-selected span.l-btn-left, +a:hover.l-btn-selected span.l-btn-left { + background-position: 0 bottom; +} +a.l-btn-plain-selected, +a:hover.l-btn-plain-selected { + background: #ddd; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/gray/menu.css b/src/main/webapp/js/easyui-1.3.5/themes/gray/menu.css new file mode 100644 index 00000000..51c2cff3 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/gray/menu.css @@ -0,0 +1,109 @@ +.menu { + position: absolute; + margin: 0; + padding: 2px; + border-width: 1px; + border-style: solid; + overflow: hidden; +} +.menu-item { + position: relative; + margin: 0; + padding: 0; + overflow: hidden; + white-space: nowrap; + cursor: pointer; + border-width: 1px; + border-style: solid; +} +.menu-text { + height: 20px; + line-height: 20px; + float: left; + padding-left: 28px; +} +.menu-icon { + position: absolute; + width: 16px; + height: 16px; + left: 2px; + top: 50%; + margin-top: -8px; +} +.menu-rightarrow { + position: absolute; + width: 16px; + height: 16px; + right: 0; + top: 50%; + margin-top: -8px; +} +.menu-line { + position: absolute; + left: 26px; + top: 0; + height: 2000px; + font-size: 1px; +} +.menu-sep { + margin: 3px 0px 3px 25px; + font-size: 1px; +} +.menu-active { + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.menu-item-disabled { + opacity: 0.5; + filter: alpha(opacity=50); + cursor: default; +} +.menu-text, +.menu-text span { + font-size: 12px; +} +.menu-shadow { + position: absolute; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; + background: #ccc; + -moz-box-shadow: 2px 2px 3px #cccccc; + -webkit-box-shadow: 2px 2px 3px #cccccc; + box-shadow: 2px 2px 3px #cccccc; + filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2); +} +.menu-rightarrow { + background: url('images/menu_arrows.png') no-repeat -32px center; +} +.menu-line { + border-left: 1px solid #ccc; + border-right: 1px solid #fff; +} +.menu-sep { + border-top: 1px solid #ccc; + border-bottom: 1px solid #fff; +} +.menu { + background-color: #f3f3f3; + border-color: #D3D3D3; + color: #444; +} +.menu-content { + background: #ffffff; +} +.menu-item { + border-color: transparent; + _border-color: #f3f3f3; +} +.menu-active { + border-color: #ccc; + color: #000000; + background: #e2e2e2; +} +.menu-active-disabled { + border-color: transparent; + background: transparent; + color: #444; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/gray/menubutton.css b/src/main/webapp/js/easyui-1.3.5/themes/gray/menubutton.css new file mode 100644 index 00000000..dc61b34c --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/gray/menubutton.css @@ -0,0 +1,31 @@ +.m-btn-downarrow { + display: inline-block; + width: 16px; + height: 16px; + line-height: 16px; + font-size: 12px; + _vertical-align: middle; +} +a.m-btn-active { + background-position: bottom right; +} +a.m-btn-active span.l-btn-left { + background-position: bottom left; +} +a.m-btn-plain-active { + background: transparent; + padding: 0 5px 0 0; + border-width: 1px; + border-style: solid; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.m-btn-downarrow { + background: url('images/menu_arrows.png') no-repeat 2px center; +} +a.m-btn-plain-active { + border-color: #ccc; + background-color: #e2e2e2; + color: #000000; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/gray/messager.css b/src/main/webapp/js/easyui-1.3.5/themes/gray/messager.css new file mode 100644 index 00000000..9b3aed25 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/gray/messager.css @@ -0,0 +1,37 @@ +.messager-body { + padding: 10px; + overflow: hidden; +} +.messager-button { + text-align: center; + padding-top: 10px; +} +.messager-icon { + float: left; + width: 32px; + height: 32px; + margin: 0 10px 10px 0; +} +.messager-error { + background: url('images/messager_icons.png') no-repeat scroll -64px 0; +} +.messager-info { + background: url('images/messager_icons.png') no-repeat scroll 0 0; +} +.messager-question { + background: url('images/messager_icons.png') no-repeat scroll -32px 0; +} +.messager-warning { + background: url('images/messager_icons.png') no-repeat scroll -96px 0; +} +.messager-progress { + padding: 10px; +} +.messager-p-msg { + margin-bottom: 5px; +} +.messager-body .messager-input { + width: 100%; + padding: 1px 0; + border: 1px solid #D3D3D3; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/gray/pagination.css b/src/main/webapp/js/easyui-1.3.5/themes/gray/pagination.css new file mode 100644 index 00000000..cb5d0bd3 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/gray/pagination.css @@ -0,0 +1,79 @@ +.pagination { + zoom: 1; +} +.pagination table { + float: left; + height: 30px; +} +.pagination td { + border: 0; +} +.pagination-btn-separator { + float: left; + height: 24px; + border-left: 1px solid #ccc; + border-right: 1px solid #fff; + margin: 3px 1px; +} +.pagination .pagination-num { + border-width: 1px; + border-style: solid; + margin: 0 2px; + padding: 2px; + width: 2em; + height: auto; +} +.pagination-page-list { + margin: 0px 6px; + padding: 1px 2px; + width: auto; + height: auto; + border-width: 1px; + border-style: solid; +} +.pagination-info { + float: right; + margin: 0 6px 0 0; + padding: 0; + height: 30px; + line-height: 30px; + font-size: 12px; +} +.pagination span { + font-size: 12px; +} +a.pagination-link { + padding: 1px; +} +a.pagination-link span.l-btn-left { + padding-left: 0; +} +a.pagination-link span span.l-btn-text { + width: 24px; + text-align: center; +} +a:hover.pagination-link { + padding: 0; +} +.pagination-first { + background: url('images/pagination_icons.png') no-repeat 0 center; +} +.pagination-prev { + background: url('images/pagination_icons.png') no-repeat -16px center; +} +.pagination-next { + background: url('images/pagination_icons.png') no-repeat -32px center; +} +.pagination-last { + background: url('images/pagination_icons.png') no-repeat -48px center; +} +.pagination-load { + background: url('images/pagination_icons.png') no-repeat -64px center; +} +.pagination-loading { + background: url('images/loading.gif') no-repeat center center; +} +.pagination-page-list, +.pagination .pagination-num { + border-color: #D3D3D3; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/gray/panel.css b/src/main/webapp/js/easyui-1.3.5/themes/gray/panel.css new file mode 100644 index 00000000..3b1912ab --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/gray/panel.css @@ -0,0 +1,131 @@ +.panel { + overflow: hidden; + text-align: left; + margin: 0; + border: 0; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.panel-header, +.panel-body { + border-width: 1px; + border-style: solid; +} +.panel-header { + padding: 5px; + position: relative; +} +.panel-title { + background: url('images/blank.gif') no-repeat; +} +.panel-header-noborder { + border-width: 0 0 1px 0; +} +.panel-body { + overflow: auto; + border-top-width: 0; + padding: 0; +} +.panel-body-noheader { + border-top-width: 1px; +} +.panel-body-noborder { + border-width: 0px; +} +.panel-with-icon { + padding-left: 18px; +} +.panel-icon, +.panel-tool { + position: absolute; + top: 50%; + margin-top: -8px; + height: 16px; + overflow: hidden; +} +.panel-icon { + left: 5px; + width: 16px; +} +.panel-tool { + right: 5px; + width: auto; +} +.panel-tool a { + display: inline-block; + width: 16px; + height: 16px; + opacity: 0.6; + filter: alpha(opacity=60); + margin: 0 0 0 2px; + vertical-align: top; +} +.panel-tool a:hover { + opacity: 1; + filter: alpha(opacity=100); + background-color: #e2e2e2; + -moz-border-radius: 3px 3px 3px 3px; + -webkit-border-radius: 3px 3px 3px 3px; + border-radius: 3px 3px 3px 3px; +} +.panel-loading { + padding: 11px 0px 10px 30px; +} +.panel-noscroll { + overflow: hidden; +} +.panel-fit, +.panel-fit body { + height: 100%; + margin: 0; + padding: 0; + border: 0; + overflow: hidden; +} +.panel-loading { + background: url('images/loading.gif') no-repeat 10px 10px; +} +.panel-tool-close { + background: url('images/panel_tools.png') no-repeat -16px 0px; +} +.panel-tool-min { + background: url('images/panel_tools.png') no-repeat 0px 0px; +} +.panel-tool-max { + background: url('images/panel_tools.png') no-repeat 0px -16px; +} +.panel-tool-restore { + background: url('images/panel_tools.png') no-repeat -16px -16px; +} +.panel-tool-collapse { + background: url('images/panel_tools.png') no-repeat -32px 0; +} +.panel-tool-expand { + background: url('images/panel_tools.png') no-repeat -32px -16px; +} +.panel-header, +.panel-body { + border-color: #D3D3D3; +} +.panel-header { + background-color: #f3f3f3; + background: -webkit-linear-gradient(top,#F8F8F8 0,#eeeeee 100%); + background: -moz-linear-gradient(top,#F8F8F8 0,#eeeeee 100%); + background: -o-linear-gradient(top,#F8F8F8 0,#eeeeee 100%); + background: linear-gradient(to bottom,#F8F8F8 0,#eeeeee 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#F8F8F8,endColorstr=#eeeeee,GradientType=0); +} +.panel-body { + background-color: #ffffff; + color: #000000; + font-size: 12px; +} +.panel-title { + font-size: 12px; + font-weight: bold; + color: #575765; + height: 16px; + line-height: 16px; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/gray/progressbar.css b/src/main/webapp/js/easyui-1.3.5/themes/gray/progressbar.css new file mode 100644 index 00000000..93818e3e --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/gray/progressbar.css @@ -0,0 +1,32 @@ +.progressbar { + border-width: 1px; + border-style: solid; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; + overflow: hidden; + position: relative; +} +.progressbar-text { + text-align: center; + position: absolute; +} +.progressbar-value { + position: relative; + overflow: hidden; + width: 0; + -moz-border-radius: 5px 0 0 5px; + -webkit-border-radius: 5px 0 0 5px; + border-radius: 5px 0 0 5px; +} +.progressbar { + border-color: #D3D3D3; +} +.progressbar-text { + color: #000000; + font-size: 12px; +} +.progressbar-value .progressbar-text { + background-color: #0092DC; + color: #fff; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/gray/propertygrid.css b/src/main/webapp/js/easyui-1.3.5/themes/gray/propertygrid.css new file mode 100644 index 00000000..90e45208 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/gray/propertygrid.css @@ -0,0 +1,28 @@ +.propertygrid .datagrid-view1 .datagrid-body td { + padding-bottom: 1px; + border-width: 0 1px 0 0; +} +.propertygrid .datagrid-group { + height: 21px; + overflow: hidden; + border-width: 0 0 1px 0; + border-style: solid; +} +.propertygrid .datagrid-group span { + font-weight: bold; +} +.propertygrid .datagrid-view1 .datagrid-body td { + border-color: #ddd; +} +.propertygrid .datagrid-view1 .datagrid-group { + border-color: #f3f3f3; +} +.propertygrid .datagrid-view2 .datagrid-group { + border-color: #ddd; +} +.propertygrid .datagrid-group, +.propertygrid .datagrid-view1 .datagrid-body, +.propertygrid .datagrid-view1 .datagrid-row-over, +.propertygrid .datagrid-view1 .datagrid-row-selected { + background: #f3f3f3; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/gray/searchbox.css b/src/main/webapp/js/easyui-1.3.5/themes/gray/searchbox.css new file mode 100644 index 00000000..69fd016c --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/gray/searchbox.css @@ -0,0 +1,83 @@ +.searchbox { + display: inline-block; + white-space: nowrap; + margin: 0; + padding: 0; + border-width: 1px; + border-style: solid; + overflow: hidden; +} +.searchbox .searchbox-text { + font-size: 12px; + border: 0; + margin: 0; + padding: 0; + line-height: 20px; + height: 20px; + *margin-top: -1px; + *height: 18px; + *line-height: 18px; + _height: 18px; + _line-height: 18px; + vertical-align: baseline; +} +.searchbox .searchbox-prompt { + font-size: 12px; + color: #ccc; +} +.searchbox-button { + width: 18px; + height: 20px; + overflow: hidden; + display: inline-block; + vertical-align: top; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.searchbox-button-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.searchbox a.l-btn-plain { + height: 20px; + border: 0; + padding: 0 6px 0 0; + vertical-align: top; + opacity: 0.6; + filter: alpha(opacity=60); + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox a.l-btn .l-btn-left { + padding: 0 0 0 4px; +} +.searchbox a.l-btn .l-btn-text { + position: static; + vertical-align: top; +} +.searchbox a.l-btn-plain:hover { + border: 0; + padding: 0 6px 0 0; + opacity: 1.0; + filter: alpha(opacity=100); + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox a.m-btn-plain-active { + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox-button { + background: url('images/searchbox_button.png') no-repeat center center; +} +.searchbox { + border-color: #D3D3D3; + background-color: #fff; +} +.searchbox a.l-btn-plain { + background: #f3f3f3; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/gray/slider.css b/src/main/webapp/js/easyui-1.3.5/themes/gray/slider.css new file mode 100644 index 00000000..38e4e5b7 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/gray/slider.css @@ -0,0 +1,100 @@ +.slider-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.slider-h { + height: 22px; +} +.slider-v { + width: 22px; +} +.slider-inner { + position: relative; + height: 6px; + top: 7px; + border-width: 1px; + border-style: solid; + border-radius: 5px; +} +.slider-handle { + position: absolute; + display: block; + outline: none; + width: 20px; + height: 20px; + top: -7px; + margin-left: -10px; +} +.slider-tip { + position: absolute; + display: inline-block; + line-height: 12px; + font-size: 12px; + white-space: nowrap; + top: -22px; +} +.slider-rule { + position: relative; + top: 15px; +} +.slider-rule span { + position: absolute; + display: inline-block; + font-size: 0; + height: 5px; + border-width: 0 0 0 1px; + border-style: solid; +} +.slider-rulelabel { + position: relative; + top: 20px; +} +.slider-rulelabel span { + position: absolute; + display: inline-block; + font-size: 12px; +} +.slider-v .slider-inner { + width: 6px; + left: 7px; + top: 0; + float: left; +} +.slider-v .slider-handle { + left: 3px; + margin-top: -10px; +} +.slider-v .slider-tip { + left: -10px; + margin-top: -6px; +} +.slider-v .slider-rule { + float: left; + top: 0; + left: 16px; +} +.slider-v .slider-rule span { + width: 5px; + height: 'auto'; + border-left: 0; + border-width: 1px 0 0 0; + border-style: solid; +} +.slider-v .slider-rulelabel { + float: left; + top: 0; + left: 23px; +} +.slider-handle { + background: url('images/slider_handle.png') no-repeat; +} +.slider-inner { + border-color: #D3D3D3; + background: #f3f3f3; +} +.slider-rule span { + border-color: #D3D3D3; +} +.slider-rulelabel span { + color: #000000; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/gray/spinner.css b/src/main/webapp/js/easyui-1.3.5/themes/gray/spinner.css new file mode 100644 index 00000000..0d9f2b0f --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/gray/spinner.css @@ -0,0 +1,59 @@ +.spinner { + display: inline-block; + white-space: nowrap; + margin: 0; + padding: 0; + border-width: 1px; + border-style: solid; + overflow: hidden; + vertical-align: middle; +} +.spinner .spinner-text { + font-size: 12px; + border: 0px; + line-height: 20px; + height: 20px; + margin: 0; + padding: 0 2px; + *margin-top: -1px; + *height: 18px; + *line-height: 18px; + _height: 18px; + _line-height: 18px; + vertical-align: baseline; +} +.spinner-arrow { + display: inline-block; + overflow: hidden; + vertical-align: top; + margin: 0; + padding: 0; +} +.spinner-arrow-up, +.spinner-arrow-down { + opacity: 0.6; + filter: alpha(opacity=60); + display: block; + font-size: 1px; + width: 18px; + height: 10px; +} +.spinner-arrow-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.spinner-arrow-up { + background: url('images/spinner_arrows.png') no-repeat 1px center; +} +.spinner-arrow-down { + background: url('images/spinner_arrows.png') no-repeat -15px center; +} +.spinner { + border-color: #D3D3D3; +} +.spinner-arrow { + background-color: #f3f3f3; +} +.spinner-arrow-hover { + background-color: #e2e2e2; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/gray/splitbutton.css b/src/main/webapp/js/easyui-1.3.5/themes/gray/splitbutton.css new file mode 100644 index 00000000..f2bbb872 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/gray/splitbutton.css @@ -0,0 +1,43 @@ +.s-btn-downarrow { + display: inline-block; + margin: 0 0 0 4px; + padding: 0 0 0 1px; + width: 14px; + height: 16px; + line-height: 16px; + border-width: 0; + border-style: solid; + font-size: 12px; + _vertical-align: middle; +} +a.s-btn-active { + background-position: bottom right; +} +a.s-btn-active span.l-btn-left { + background-position: bottom left; +} +a.s-btn-plain-active { + background: transparent; + padding: 0 5px 0 0; + border-width: 1px; + border-style: solid; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.s-btn-downarrow { + background: url('images/menu_arrows.png') no-repeat 2px center; + border-color: #bfbfbf; +} +a:hover.l-btn .s-btn-downarrow, +a.s-btn-active .s-btn-downarrow, +a.s-btn-plain-active .s-btn-downarrow { + background-position: 1px center; + padding: 0; + border-width: 0 0 0 1px; +} +a.s-btn-plain-active { + border-color: #ccc; + background-color: #e2e2e2; + color: #000000; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/gray/tabs.css b/src/main/webapp/js/easyui-1.3.5/themes/gray/tabs.css new file mode 100644 index 00000000..7a48b330 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/gray/tabs.css @@ -0,0 +1,356 @@ +.tabs-container { + overflow: hidden; +} +.tabs-header { + border-width: 1px; + border-style: solid; + border-bottom-width: 0; + position: relative; + padding: 0; + padding-top: 2px; + overflow: hidden; +} +.tabs-header-plain { + border: 0; + background: transparent; +} +.tabs-scroller-left, +.tabs-scroller-right { + position: absolute; + top: auto; + bottom: 0; + width: 18px; + font-size: 1px; + display: none; + cursor: pointer; + border-width: 1px; + border-style: solid; +} +.tabs-scroller-left { + left: 0; +} +.tabs-scroller-right { + right: 0; +} +.tabs-tool { + position: absolute; + bottom: 0; + padding: 1px; + overflow: hidden; + border-width: 1px; + border-style: solid; +} +.tabs-header-plain .tabs-tool { + padding: 0 1px; +} +.tabs-wrap { + position: relative; + left: 0; + overflow: hidden; + width: 100%; + margin: 0; + padding: 0; +} +.tabs-scrolling { + margin-left: 18px; + margin-right: 18px; +} +.tabs-disabled { + opacity: 0.3; + filter: alpha(opacity=30); +} +.tabs { + list-style-type: none; + height: 26px; + margin: 0px; + padding: 0px; + padding-left: 4px; + width: 5000px; + border-style: solid; + border-width: 0 0 1px 0; +} +.tabs li { + float: left; + display: inline-block; + margin: 0 4px -1px 0; + padding: 0; + position: relative; + border: 0; +} +.tabs li a.tabs-inner { + display: inline-block; + text-decoration: none; + margin: 0; + padding: 0 10px; + height: 25px; + line-height: 25px; + text-align: center; + white-space: nowrap; + border-width: 1px; + border-style: solid; + -moz-border-radius: 5px 5px 0 0; + -webkit-border-radius: 5px 5px 0 0; + border-radius: 5px 5px 0 0; +} +.tabs li.tabs-selected a.tabs-inner { + font-weight: bold; + outline: none; +} +.tabs li.tabs-selected a:hover.tabs-inner { + cursor: default; + pointer: default; +} +.tabs li a.tabs-close, +.tabs-p-tool { + position: absolute; + font-size: 1px; + display: block; + height: 12px; + padding: 0; + top: 50%; + margin-top: -6px; + overflow: hidden; +} +.tabs li a.tabs-close { + width: 12px; + right: 5px; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tabs-p-tool { + right: 16px; +} +.tabs-p-tool a { + display: inline-block; + font-size: 1px; + width: 12px; + height: 12px; + margin: 0; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tabs li a:hover.tabs-close, +.tabs-p-tool a:hover { + opacity: 1; + filter: alpha(opacity=100); + cursor: hand; + cursor: pointer; +} +.tabs-with-icon { + padding-left: 18px; +} +.tabs-icon { + position: absolute; + width: 16px; + height: 16px; + left: 10px; + top: 50%; + margin-top: -8px; +} +.tabs-title { + font-size: 12px; +} +.tabs-closable { + padding-right: 8px; +} +.tabs-panels { + margin: 0px; + padding: 0px; + border-width: 1px; + border-style: solid; + border-top-width: 0; + overflow: hidden; +} +.tabs-header-bottom { + border-width: 0 1px 1px 1px; + padding: 0 0 2px 0; +} +.tabs-header-bottom .tabs { + border-width: 1px 0 0 0; +} +.tabs-header-bottom .tabs li { + margin: -1px 4px 0 0; +} +.tabs-header-bottom .tabs li a.tabs-inner { + -moz-border-radius: 0 0 5px 5px; + -webkit-border-radius: 0 0 5px 5px; + border-radius: 0 0 5px 5px; +} +.tabs-header-bottom .tabs-tool { + top: 0; +} +.tabs-header-bottom .tabs-scroller-left, +.tabs-header-bottom .tabs-scroller-right { + top: 0; + bottom: auto; +} +.tabs-panels-top { + border-width: 1px 1px 0 1px; +} +.tabs-header-left { + float: left; + border-width: 1px 0 1px 1px; + padding: 0; +} +.tabs-header-right { + float: right; + border-width: 1px 1px 1px 0; + padding: 0; +} +.tabs-header-left .tabs-wrap, +.tabs-header-right .tabs-wrap { + height: 100%; +} +.tabs-header-left .tabs { + height: 100%; + padding: 4px 0 0 4px; + border-width: 0 1px 0 0; +} +.tabs-header-right .tabs { + height: 100%; + padding: 4px 4px 0 0; + border-width: 0 0 0 1px; +} +.tabs-header-left .tabs li, +.tabs-header-right .tabs li { + display: block; + width: 100%; + position: relative; +} +.tabs-header-left .tabs li { + left: auto; + right: 0; + margin: 0 -1px 4px 0; + float: right; +} +.tabs-header-right .tabs li { + left: 0; + right: auto; + margin: 0 0 4px -1px; + float: left; +} +.tabs-header-left .tabs li a.tabs-inner { + display: block; + text-align: left; + -moz-border-radius: 5px 0 0 5px; + -webkit-border-radius: 5px 0 0 5px; + border-radius: 5px 0 0 5px; +} +.tabs-header-right .tabs li a.tabs-inner { + display: block; + text-align: left; + -moz-border-radius: 0 5px 5px 0; + -webkit-border-radius: 0 5px 5px 0; + border-radius: 0 5px 5px 0; +} +.tabs-panels-right { + float: right; + border-width: 1px 1px 1px 0; +} +.tabs-panels-left { + float: left; + border-width: 1px 0 1px 1px; +} +.tabs-header-noborder, +.tabs-panels-noborder { + border: 0px; +} +.tabs-header-plain { + border: 0px; + background: transparent; +} +.tabs-scroller-left { + background: #f3f3f3 url('images/tabs_icons.png') no-repeat 1px center; +} +.tabs-scroller-right { + background: #f3f3f3 url('images/tabs_icons.png') no-repeat -15px center; +} +.tabs li a.tabs-close { + background: url('images/tabs_icons.png') no-repeat -34px center; +} +.tabs li a.tabs-inner:hover { + background: #e2e2e2; + color: #000000; + filter: none; +} +.tabs li.tabs-selected a.tabs-inner { + background-color: #ffffff; + color: #575765; + background: -webkit-linear-gradient(top,#F8F8F8 0,#ffffff 100%); + background: -moz-linear-gradient(top,#F8F8F8 0,#ffffff 100%); + background: -o-linear-gradient(top,#F8F8F8 0,#ffffff 100%); + background: linear-gradient(to bottom,#F8F8F8 0,#ffffff 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#F8F8F8,endColorstr=#ffffff,GradientType=0); +} +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner { + background: -webkit-linear-gradient(top,#ffffff 0,#F8F8F8 100%); + background: -moz-linear-gradient(top,#ffffff 0,#F8F8F8 100%); + background: -o-linear-gradient(top,#ffffff 0,#F8F8F8 100%); + background: linear-gradient(to bottom,#ffffff 0,#F8F8F8 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#F8F8F8,GradientType=0); +} +.tabs-header-left .tabs li.tabs-selected a.tabs-inner { + background: -webkit-linear-gradient(left,#F8F8F8 0,#ffffff 100%); + background: -moz-linear-gradient(left,#F8F8F8 0,#ffffff 100%); + background: -o-linear-gradient(left,#F8F8F8 0,#ffffff 100%); + background: linear-gradient(to right,#F8F8F8 0,#ffffff 100%); + background-repeat: repeat-y; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#F8F8F8,endColorstr=#ffffff,GradientType=1); +} +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + background: -webkit-linear-gradient(left,#ffffff 0,#F8F8F8 100%); + background: -moz-linear-gradient(left,#ffffff 0,#F8F8F8 100%); + background: -o-linear-gradient(left,#ffffff 0,#F8F8F8 100%); + background: linear-gradient(to right,#ffffff 0,#F8F8F8 100%); + background-repeat: repeat-y; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#F8F8F8,GradientType=1); +} +.tabs li a.tabs-inner { + color: #575765; + background-color: #f3f3f3; + background: -webkit-linear-gradient(top,#F8F8F8 0,#eeeeee 100%); + background: -moz-linear-gradient(top,#F8F8F8 0,#eeeeee 100%); + background: -o-linear-gradient(top,#F8F8F8 0,#eeeeee 100%); + background: linear-gradient(to bottom,#F8F8F8 0,#eeeeee 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#F8F8F8,endColorstr=#eeeeee,GradientType=0); +} +.tabs-header, +.tabs-tool { + background-color: #f3f3f3; +} +.tabs-header-plain { + background: transparent; +} +.tabs-header, +.tabs-scroller-left, +.tabs-scroller-right, +.tabs-tool, +.tabs, +.tabs-panels, +.tabs li a.tabs-inner, +.tabs li.tabs-selected a.tabs-inner, +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner, +.tabs-header-left .tabs li.tabs-selected a.tabs-inner, +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + border-color: #D3D3D3; +} +.tabs-p-tool a:hover, +.tabs li a:hover.tabs-close, +.tabs-scroller-over { + background-color: #e2e2e2; +} +.tabs li.tabs-selected a.tabs-inner { + border-bottom: 1px solid #ffffff; +} +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner { + border-top: 1px solid #ffffff; +} +.tabs-header-left .tabs li.tabs-selected a.tabs-inner { + border-right: 1px solid #ffffff; +} +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + border-left: 1px solid #ffffff; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/gray/tooltip.css b/src/main/webapp/js/easyui-1.3.5/themes/gray/tooltip.css new file mode 100644 index 00000000..51c5b834 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/gray/tooltip.css @@ -0,0 +1,100 @@ +.tooltip { + position: absolute; + display: none; + z-index: 9900000; + outline: none; + opacity: 1; + filter: alpha(opacity=100); + padding: 5px; + border-width: 1px; + border-style: solid; + border-radius: 5px; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.tooltip-content { + font-size: 12px; +} +.tooltip-arrow-outer, +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + line-height: 0; + font-size: 0; + border-style: solid; + border-width: 6px; + border-color: transparent; + _border-color: tomato; + _filter: chroma(color=tomato); +} +.tooltip-right .tooltip-arrow-outer { + left: 0; + top: 50%; + margin: -6px 0 0 -13px; +} +.tooltip-right .tooltip-arrow { + left: 0; + top: 50%; + margin: -6px 0 0 -12px; +} +.tooltip-left .tooltip-arrow-outer { + right: 0; + top: 50%; + margin: -6px -13px 0 0; +} +.tooltip-left .tooltip-arrow { + right: 0; + top: 50%; + margin: -6px -12px 0 0; +} +.tooltip-top .tooltip-arrow-outer { + bottom: 0; + left: 50%; + margin: 0 0 -13px -6px; +} +.tooltip-top .tooltip-arrow { + bottom: 0; + left: 50%; + margin: 0 0 -12px -6px; +} +.tooltip-bottom .tooltip-arrow-outer { + top: 0; + left: 50%; + margin: -13px 0 0 -6px; +} +.tooltip-bottom .tooltip-arrow { + top: 0; + left: 50%; + margin: -12px 0 0 -6px; +} +.tooltip { + background-color: #ffffff; + border-color: #D3D3D3; + color: #000000; +} +.tooltip-right .tooltip-arrow-outer { + border-right-color: #D3D3D3; +} +.tooltip-right .tooltip-arrow { + border-right-color: #ffffff; +} +.tooltip-left .tooltip-arrow-outer { + border-left-color: #D3D3D3; +} +.tooltip-left .tooltip-arrow { + border-left-color: #ffffff; +} +.tooltip-top .tooltip-arrow-outer { + border-top-color: #D3D3D3; +} +.tooltip-top .tooltip-arrow { + border-top-color: #ffffff; +} +.tooltip-bottom .tooltip-arrow-outer { + border-bottom-color: #D3D3D3; +} +.tooltip-bottom .tooltip-arrow { + border-bottom-color: #ffffff; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/gray/tree.css b/src/main/webapp/js/easyui-1.3.5/themes/gray/tree.css new file mode 100644 index 00000000..c705f39c --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/gray/tree.css @@ -0,0 +1,157 @@ +.tree { + margin: 0; + padding: 0; + list-style-type: none; +} +.tree li { + white-space: nowrap; +} +.tree li ul { + list-style-type: none; + margin: 0; + padding: 0; +} +.tree-node { + height: 18px; + white-space: nowrap; + cursor: pointer; +} +.tree-hit { + cursor: pointer; +} +.tree-expanded, +.tree-collapsed, +.tree-folder, +.tree-file, +.tree-checkbox, +.tree-indent { + display: inline-block; + width: 16px; + height: 18px; + vertical-align: top; + overflow: hidden; +} +.tree-expanded { + background: url('images/tree_icons.png') no-repeat -18px 0px; +} +.tree-expanded-hover { + background: url('images/tree_icons.png') no-repeat -50px 0px; +} +.tree-collapsed { + background: url('images/tree_icons.png') no-repeat 0px 0px; +} +.tree-collapsed-hover { + background: url('images/tree_icons.png') no-repeat -32px 0px; +} +.tree-lines .tree-expanded, +.tree-lines .tree-root-first .tree-expanded { + background: url('images/tree_icons.png') no-repeat -144px 0; +} +.tree-lines .tree-collapsed, +.tree-lines .tree-root-first .tree-collapsed { + background: url('images/tree_icons.png') no-repeat -128px 0; +} +.tree-lines .tree-node-last .tree-expanded, +.tree-lines .tree-root-one .tree-expanded { + background: url('images/tree_icons.png') no-repeat -80px 0; +} +.tree-lines .tree-node-last .tree-collapsed, +.tree-lines .tree-root-one .tree-collapsed { + background: url('images/tree_icons.png') no-repeat -64px 0; +} +.tree-line { + background: url('images/tree_icons.png') no-repeat -176px 0; +} +.tree-join { + background: url('images/tree_icons.png') no-repeat -192px 0; +} +.tree-joinbottom { + background: url('images/tree_icons.png') no-repeat -160px 0; +} +.tree-folder { + background: url('images/tree_icons.png') no-repeat -208px 0; +} +.tree-folder-open { + background: url('images/tree_icons.png') no-repeat -224px 0; +} +.tree-file { + background: url('images/tree_icons.png') no-repeat -240px 0; +} +.tree-loading { + background: url('images/loading.gif') no-repeat center center; +} +.tree-checkbox0 { + background: url('images/tree_icons.png') no-repeat -208px -18px; +} +.tree-checkbox1 { + background: url('images/tree_icons.png') no-repeat -224px -18px; +} +.tree-checkbox2 { + background: url('images/tree_icons.png') no-repeat -240px -18px; +} +.tree-title { + font-size: 12px; + display: inline-block; + text-decoration: none; + vertical-align: top; + white-space: nowrap; + padding: 0 2px; + height: 18px; + line-height: 18px; +} +.tree-node-proxy { + font-size: 12px; + line-height: 20px; + padding: 0 2px 0 20px; + border-width: 1px; + border-style: solid; + z-index: 9900000; +} +.tree-dnd-icon { + display: inline-block; + position: absolute; + width: 16px; + height: 18px; + left: 2px; + top: 50%; + margin-top: -9px; +} +.tree-dnd-yes { + background: url('images/tree_icons.png') no-repeat -256px 0; +} +.tree-dnd-no { + background: url('images/tree_icons.png') no-repeat -256px -18px; +} +.tree-node-top { + border-top: 1px dotted red; +} +.tree-node-bottom { + border-bottom: 1px dotted red; +} +.tree-node-append .tree-title { + border: 1px dotted red; +} +.tree-editor { + border: 1px solid #ccc; + font-size: 12px; + height: 14px !important; + height: 18px; + line-height: 14px; + padding: 1px 2px; + width: 80px; + position: absolute; + top: 0; +} +.tree-node-proxy { + background-color: #ffffff; + color: #000000; + border-color: #D3D3D3; +} +.tree-node-hover { + background: #e2e2e2; + color: #000000; +} +.tree-node-selected { + background: #0092DC; + color: #fff; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/gray/validatebox.css b/src/main/webapp/js/easyui-1.3.5/themes/gray/validatebox.css new file mode 100644 index 00000000..154da758 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/gray/validatebox.css @@ -0,0 +1,8 @@ +.validatebox-invalid { + background-image: url('images/validatebox_warning.png'); + background-repeat: no-repeat; + background-position: right center; + border-color: #ffa8a8; + background-color: #fff3f3; + color: #000; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/gray/window.css b/src/main/webapp/js/easyui-1.3.5/themes/gray/window.css new file mode 100644 index 00000000..b06cfc04 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/gray/window.css @@ -0,0 +1,87 @@ +.window { + overflow: hidden; + padding: 5px; + border-width: 1px; + border-style: solid; +} +.window .window-header { + background: transparent; + padding: 0px 0px 6px 0px; +} +.window .window-body { + border-width: 1px; + border-style: solid; + border-top-width: 0px; +} +.window .window-body-noheader { + border-top-width: 1px; +} +.window .window-header .panel-icon, +.window .window-header .panel-tool { + top: 50%; + margin-top: -11px; +} +.window .window-header .panel-icon { + left: 1px; +} +.window .window-header .panel-tool { + right: 1px; +} +.window .window-header .panel-with-icon { + padding-left: 18px; +} +.window-proxy { + position: absolute; + overflow: hidden; +} +.window-proxy-mask { + position: absolute; + filter: alpha(opacity=5); + opacity: 0.05; +} +.window-mask { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + filter: alpha(opacity=40); + opacity: 0.40; + font-size: 1px; + *zoom: 1; + overflow: hidden; +} +.window, +.window-shadow { + position: absolute; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.window-shadow { + background: #ccc; + -moz-box-shadow: 2px 2px 3px #cccccc; + -webkit-box-shadow: 2px 2px 3px #cccccc; + box-shadow: 2px 2px 3px #cccccc; + filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2); +} +.window, +.window .window-body { + border-color: #D3D3D3; +} +.window { + background-color: #f3f3f3; + background: -webkit-linear-gradient(top,#F8F8F8 0,#eeeeee 20%); + background: -moz-linear-gradient(top,#F8F8F8 0,#eeeeee 20%); + background: -o-linear-gradient(top,#F8F8F8 0,#eeeeee 20%); + background: linear-gradient(to bottom,#F8F8F8 0,#eeeeee 20%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#F8F8F8,endColorstr=#eeeeee,GradientType=0); +} +.window-proxy { + border: 1px dashed #D3D3D3; +} +.window-proxy-mask, +.window-mask { + background: #ccc; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/icon.css b/src/main/webapp/js/easyui-1.3.5/themes/icon.css new file mode 100644 index 00000000..1a2a5956 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/icon.css @@ -0,0 +1,95 @@ +.icon-blank{ + background:url('icons/blank.gif') no-repeat center center; +} +.icon-add{ + background:url('icons/edit_add.png') no-repeat center center; +} +.icon-edit{ + background:url('icons/pencil.png') no-repeat center center; +} +.icon-remove{ + background:url('icons/edit_remove.png') no-repeat center center; +} +.icon-save{ + background:url('icons/filesave.png') no-repeat center center; +} +.icon-cut{ + background:url('icons/cut.png') no-repeat center center; +} +.icon-ok{ + background:url('icons/ok.png') no-repeat center center; +} +.icon-no{ + background:url('icons/no.png') no-repeat center center; +} +.icon-cancel{ + background:url('icons/cancel.png') no-repeat center center; +} +.icon-reload{ + background:url('icons/reload.png') no-repeat center center; +} +.icon-search{ + background:url('icons/049.png') no-repeat center center; +} +.icon-print{ + background:url('icons/print.png') no-repeat center center; +} +.icon-help{ + background:url('icons/help.png') no-repeat center center; +} +.icon-undo{ + background:url('icons/undo.png') no-repeat center center; +} +.icon-redo{ + background:url('icons/redo.png') no-repeat center center; +} +.icon-back{ + background:url('icons/back.png') no-repeat center center; +} +.icon-sum{ + background:url('icons/sum.png') no-repeat center center; +} +.icon-tip{ + background:url('icons/tip.png') no-repeat center center; +} +.icon-filter{ + background:url('icons/filter.png') no-repeat center center; +} + + +.icon-mini-add{ + background:url('icons/mini_add.png') no-repeat center center; +} +.icon-mini-edit{ + background:url('icons/mini_edit.png') no-repeat center center; +} +.icon-mini-refresh{ + background:url('icons/mini_refresh.png') no-repeat center center; +} +.icon-list{ + background:url('icons/list.png') no-repeat center center; +} +.icon-chart-column{ + background:url('icons/chart_bar.png') no-repeat center center; +} +.icon-chart-zonghe{ + background:url('icons/zonghe.png') no-repeat center center; +} +.icon-chart-pie{ + background:url('icons/pie.png') no-repeat center center; +} +.icon-chart-statistics{ + background:url('icons/statistics.png') no-repeat center center; +} +.icon-chart-polygram{ + background:url('icons/polygram.png') no-repeat center center; +} +.icon-unlock{ + background:url('icons/lock_unlock.png') no-repeat center center; +} +.icon-comment{ + background:url('icons/comment.png') no-repeat center center; +} +.icon-excel{ + background:url('icons/receipt-excel.png') no-repeat center center; +} \ No newline at end of file diff --git a/src/main/webapp/js/easyui-1.3.5/themes/icons/049.png b/src/main/webapp/js/easyui-1.3.5/themes/icons/049.png new file mode 100644 index 00000000..b29214a0 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/icons/049.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/icons/311.gif b/src/main/webapp/js/easyui-1.3.5/themes/icons/311.gif new file mode 100644 index 00000000..fc6c7abd Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/icons/311.gif differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/icons/back.png b/src/main/webapp/js/easyui-1.3.5/themes/icons/back.png new file mode 100644 index 00000000..3fe8b178 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/icons/back.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/icons/blank.gif b/src/main/webapp/js/easyui-1.3.5/themes/icons/blank.gif new file mode 100644 index 00000000..1d11fa9a Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/icons/blank.gif differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/icons/cancel.png b/src/main/webapp/js/easyui-1.3.5/themes/icons/cancel.png new file mode 100644 index 00000000..a432b492 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/icons/cancel.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/icons/chart_bar.png b/src/main/webapp/js/easyui-1.3.5/themes/icons/chart_bar.png new file mode 100644 index 00000000..2cec9fd8 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/icons/chart_bar.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/icons/comment.png b/src/main/webapp/js/easyui-1.3.5/themes/icons/comment.png new file mode 100644 index 00000000..296b8309 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/icons/comment.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/icons/cut.png b/src/main/webapp/js/easyui-1.3.5/themes/icons/cut.png new file mode 100644 index 00000000..21fdb4dc Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/icons/cut.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/icons/edit_add.png b/src/main/webapp/js/easyui-1.3.5/themes/icons/edit_add.png new file mode 100644 index 00000000..e9485082 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/icons/edit_add.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/icons/edit_remove.png b/src/main/webapp/js/easyui-1.3.5/themes/icons/edit_remove.png new file mode 100644 index 00000000..d555d921 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/icons/edit_remove.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/icons/excel1.png b/src/main/webapp/js/easyui-1.3.5/themes/icons/excel1.png new file mode 100644 index 00000000..76372e42 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/icons/excel1.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/icons/filesave.png b/src/main/webapp/js/easyui-1.3.5/themes/icons/filesave.png new file mode 100644 index 00000000..fd0048de Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/icons/filesave.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/icons/filter.png b/src/main/webapp/js/easyui-1.3.5/themes/icons/filter.png new file mode 100644 index 00000000..1fedf7ae Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/icons/filter.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/icons/help.png b/src/main/webapp/js/easyui-1.3.5/themes/icons/help.png new file mode 100644 index 00000000..28a0f9e5 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/icons/help.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/icons/list.png b/src/main/webapp/js/easyui-1.3.5/themes/icons/list.png new file mode 100644 index 00000000..a14d9557 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/icons/list.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/icons/lock_unlock.png b/src/main/webapp/js/easyui-1.3.5/themes/icons/lock_unlock.png new file mode 100644 index 00000000..535dc1dd Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/icons/lock_unlock.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/icons/mini_add.png b/src/main/webapp/js/easyui-1.3.5/themes/icons/mini_add.png new file mode 100644 index 00000000..fd82b92d Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/icons/mini_add.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/icons/mini_edit.png b/src/main/webapp/js/easyui-1.3.5/themes/icons/mini_edit.png new file mode 100644 index 00000000..db9221a8 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/icons/mini_edit.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/icons/mini_refresh.png b/src/main/webapp/js/easyui-1.3.5/themes/icons/mini_refresh.png new file mode 100644 index 00000000..6cdd0160 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/icons/mini_refresh.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/icons/no.png b/src/main/webapp/js/easyui-1.3.5/themes/icons/no.png new file mode 100644 index 00000000..37a7c749 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/icons/no.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/icons/ok.png b/src/main/webapp/js/easyui-1.3.5/themes/icons/ok.png new file mode 100644 index 00000000..5b0f6a61 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/icons/ok.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/icons/page_excel.png b/src/main/webapp/js/easyui-1.3.5/themes/icons/page_excel.png new file mode 100644 index 00000000..0f77b7d8 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/icons/page_excel.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/icons/pencil.png b/src/main/webapp/js/easyui-1.3.5/themes/icons/pencil.png new file mode 100644 index 00000000..5b8cc893 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/icons/pencil.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/icons/pie.png b/src/main/webapp/js/easyui-1.3.5/themes/icons/pie.png new file mode 100644 index 00000000..790686ed Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/icons/pie.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/icons/polygram.png b/src/main/webapp/js/easyui-1.3.5/themes/icons/polygram.png new file mode 100644 index 00000000..13dd2625 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/icons/polygram.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/icons/print.png b/src/main/webapp/js/easyui-1.3.5/themes/icons/print.png new file mode 100644 index 00000000..fdf67a1e Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/icons/print.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/icons/receipt-excel.png b/src/main/webapp/js/easyui-1.3.5/themes/icons/receipt-excel.png new file mode 100644 index 00000000..e36dfc31 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/icons/receipt-excel.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/icons/redo.png b/src/main/webapp/js/easyui-1.3.5/themes/icons/redo.png new file mode 100644 index 00000000..f1e45cff Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/icons/redo.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/icons/reload.png b/src/main/webapp/js/easyui-1.3.5/themes/icons/reload.png new file mode 100644 index 00000000..f51cab8e Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/icons/reload.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/icons/search.png b/src/main/webapp/js/easyui-1.3.5/themes/icons/search.png new file mode 100644 index 00000000..6dd19315 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/icons/search.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/icons/statistics.png b/src/main/webapp/js/easyui-1.3.5/themes/icons/statistics.png new file mode 100644 index 00000000..7f3ba554 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/icons/statistics.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/icons/sum.png b/src/main/webapp/js/easyui-1.3.5/themes/icons/sum.png new file mode 100644 index 00000000..fd7b32e4 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/icons/sum.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/icons/tip.png b/src/main/webapp/js/easyui-1.3.5/themes/icons/tip.png new file mode 100644 index 00000000..845e1107 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/icons/tip.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/icons/undo.png b/src/main/webapp/js/easyui-1.3.5/themes/icons/undo.png new file mode 100644 index 00000000..6129fa0c Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/icons/undo.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/icons/zonghe.png b/src/main/webapp/js/easyui-1.3.5/themes/icons/zonghe.png new file mode 100644 index 00000000..224f28bc Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/icons/zonghe.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/metro/accordion.css b/src/main/webapp/js/easyui-1.3.5/themes/metro/accordion.css new file mode 100644 index 00000000..31d6079e --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/metro/accordion.css @@ -0,0 +1,41 @@ +.accordion { + overflow: hidden; + border-width: 1px; + border-style: solid; +} +.accordion .accordion-header { + border-width: 0 0 1px; + cursor: pointer; +} +.accordion .accordion-body { + border-width: 0 0 1px; +} +.accordion-noborder { + border-width: 0; +} +.accordion-noborder .accordion-header { + border-width: 0 0 1px; +} +.accordion-noborder .accordion-body { + border-width: 0 0 1px; +} +.accordion-collapse { + background: url('images/accordion_arrows.png') no-repeat 0 0; +} +.accordion-expand { + background: url('images/accordion_arrows.png') no-repeat -16px 0; +} +.accordion { + background: #fff; + border-color: #ddd; +} +.accordion .accordion-header { + background: #ffffff; + filter: none; +} +.accordion .accordion-header-selected { + background: #CCE6FF; +} +.accordion .accordion-header-selected .panel-title { + color: #000; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/metro/calendar.css b/src/main/webapp/js/easyui-1.3.5/themes/metro/calendar.css new file mode 100644 index 00000000..798ed976 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/metro/calendar.css @@ -0,0 +1,190 @@ +.calendar { + border-width: 1px; + border-style: solid; + padding: 1px; + overflow: hidden; +} +.calendar table { + border-collapse: separate; + font-size: 12px; + width: 100%; + height: 100%; +} +.calendar table td, +.calendar table th { + font-size: 12px; +} +.calendar-noborder { + border: 0; +} +.calendar-header { + position: relative; + height: 22px; +} +.calendar-title { + text-align: center; + height: 22px; +} +.calendar-title span { + position: relative; + display: inline-block; + top: 2px; + padding: 0 3px; + height: 18px; + line-height: 18px; + font-size: 12px; + cursor: pointer; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.calendar-prevmonth, +.calendar-nextmonth, +.calendar-prevyear, +.calendar-nextyear { + position: absolute; + top: 50%; + margin-top: -7px; + width: 14px; + height: 14px; + cursor: pointer; + font-size: 1px; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.calendar-prevmonth { + left: 20px; + background: url('images/calendar_arrows.png') no-repeat -18px -2px; +} +.calendar-nextmonth { + right: 20px; + background: url('images/calendar_arrows.png') no-repeat -34px -2px; +} +.calendar-prevyear { + left: 3px; + background: url('images/calendar_arrows.png') no-repeat -1px -2px; +} +.calendar-nextyear { + right: 3px; + background: url('images/calendar_arrows.png') no-repeat -49px -2px; +} +.calendar-body { + position: relative; +} +.calendar-body th, +.calendar-body td { + text-align: center; +} +.calendar-day { + border: 0; + padding: 1px; + cursor: pointer; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.calendar-other-month { + opacity: 0.3; + filter: alpha(opacity=30); +} +.calendar-menu { + position: absolute; + top: 0; + left: 0; + width: 180px; + height: 150px; + padding: 5px; + font-size: 12px; + display: none; + overflow: hidden; +} +.calendar-menu-year-inner { + text-align: center; + padding-bottom: 5px; +} +.calendar-menu-year { + width: 40px; + text-align: center; + border-width: 1px; + border-style: solid; + margin: 0; + padding: 2px; + font-weight: bold; + font-size: 12px; +} +.calendar-menu-prev, +.calendar-menu-next { + display: inline-block; + width: 21px; + height: 21px; + vertical-align: top; + cursor: pointer; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.calendar-menu-prev { + margin-right: 10px; + background: url('images/calendar_arrows.png') no-repeat 2px 2px; +} +.calendar-menu-next { + margin-left: 10px; + background: url('images/calendar_arrows.png') no-repeat -45px 2px; +} +.calendar-menu-month { + text-align: center; + cursor: pointer; + font-weight: bold; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.calendar-body th, +.calendar-menu-month { + color: #919191; +} +.calendar-day { + color: #444; +} +.calendar-sunday { + color: #CC2222; +} +.calendar-saturday { + color: #00ee00; +} +.calendar-today { + color: #0000ff; +} +.calendar-menu-year { + border-color: #ddd; +} +.calendar { + border-color: #ddd; +} +.calendar-header { + background: #ffffff; +} +.calendar-body, +.calendar-menu { + background: #fff; +} +.calendar-body th { + background: #fff; +} +.calendar-hover, +.calendar-nav-hover, +.calendar-menu-hover { + background-color: #E6E6E6; + color: #444; +} +.calendar-hover { + border: 1px solid #ddd; + padding: 0; +} +.calendar-selected { + background-color: #CCE6FF; + color: #000; + border: 1px solid #99cdff; + padding: 0; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/metro/combo.css b/src/main/webapp/js/easyui-1.3.5/themes/metro/combo.css new file mode 100644 index 00000000..8922f8e1 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/metro/combo.css @@ -0,0 +1,58 @@ +.combo { + display: inline-block; + white-space: nowrap; + margin: 0; + padding: 0; + border-width: 1px; + border-style: solid; + overflow: hidden; + vertical-align: middle; +} +.combo .combo-text { + font-size: 12px; + border: 0px; + line-height: 20px; + height: 20px; + margin: 0; + padding: 0px 2px; + *margin-top: -1px; + *height: 18px; + *line-height: 18px; + _height: 18px; + _line-height: 18px; + vertical-align: baseline; +} +.combo-arrow { + width: 18px; + height: 20px; + overflow: hidden; + display: inline-block; + vertical-align: top; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.combo-arrow-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.combo-panel { + overflow: auto; +} +.combo-arrow { + background: url('images/combo_arrow.png') no-repeat center center; +} +.combo, +.combo-panel { + background-color: #fff; +} +.combo { + border-color: #ddd; + background-color: #fff; +} +.combo-arrow { + background-color: #ffffff; +} +.combo-arrow-hover { + background-color: #E6E6E6; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/metro/combobox.css b/src/main/webapp/js/easyui-1.3.5/themes/metro/combobox.css new file mode 100644 index 00000000..0e058b1f --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/metro/combobox.css @@ -0,0 +1,24 @@ +.combobox-item, +.combobox-group { + font-size: 12px; + padding: 3px; + padding-right: 0px; +} +.combobox-item-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.combobox-gitem { + padding-left: 10px; +} +.combobox-group { + font-weight: bold; +} +.combobox-item-hover { + background-color: #E6E6E6; + color: #444; +} +.combobox-item-selected { + background-color: #CCE6FF; + color: #000; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/metro/datagrid.css b/src/main/webapp/js/easyui-1.3.5/themes/metro/datagrid.css new file mode 100644 index 00000000..f224cd56 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/metro/datagrid.css @@ -0,0 +1,254 @@ +.datagrid .panel-body { + overflow: hidden; + position: relative; +} +.datagrid-view { + position: relative; + overflow: hidden; +} +.datagrid-view1, +.datagrid-view2 { + position: absolute; + overflow: hidden; + top: 0; +} +.datagrid-view1 { + left: 0; +} +.datagrid-view2 { + right: 0; +} +.datagrid-mask { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + opacity: 0.3; + filter: alpha(opacity=30); + display: none; +} +.datagrid-mask-msg { + position: absolute; + top: 50%; + margin-top: -20px; + padding: 12px 5px 10px 30px; + width: auto; + height: 16px; + border-width: 2px; + border-style: solid; + display: none; +} +.datagrid-sort-icon { + padding: 0; +} +.datagrid-toolbar { + height: auto; + padding: 1px 2px; + border-width: 0 0 1px 0; + border-style: solid; +} +.datagrid-btn-separator { + float: left; + height: 24px; + border-left: 1px solid #ddd; + border-right: 1px solid #fff; + margin: 2px 1px; +} +.datagrid .datagrid-pager { + display: block; + margin: 0; + border-width: 1px 0 0 0; + border-style: solid; +} +.datagrid .datagrid-pager-top { + border-width: 0 0 1px 0; +} +.datagrid-header { + overflow: hidden; + cursor: default; + border-width: 0 0 1px 0; + border-style: solid; +} +.datagrid-header-inner { + float: left; + width: 10000px; +} +.datagrid-header-row, +.datagrid-row { + height: 25px; +} +.datagrid-header td, +.datagrid-body td, +.datagrid-footer td { + border-width: 0 1px 1px 0; + border-style: dotted; + margin: 0; + padding: 0; +} +.datagrid-cell, +.datagrid-cell-group, +.datagrid-header-rownumber, +.datagrid-cell-rownumber { + margin: 0; + padding: 0 4px; + white-space: nowrap; + word-wrap: normal; + overflow: hidden; + height: 18px; + line-height: 18px; + font-size: 12px; +} +.datagrid-header .datagrid-cell { + height: auto; +} +.datagrid-header .datagrid-cell span { + font-size: 12px; +} +.datagrid-cell-group { + text-align: center; +} +.datagrid-header-rownumber, +.datagrid-cell-rownumber { + width: 25px; + text-align: center; + margin: 0; + padding: 0; +} +.datagrid-body { + margin: 0; + padding: 0; + overflow: auto; + zoom: 1; +} +.datagrid-view1 .datagrid-body-inner { + padding-bottom: 20px; +} +.datagrid-view1 .datagrid-body { + overflow: hidden; +} +.datagrid-footer { + overflow: hidden; +} +.datagrid-footer-inner { + border-width: 1px 0 0 0; + border-style: solid; + width: 10000px; + float: left; +} +.datagrid-row-editing .datagrid-cell { + height: auto; +} +.datagrid-header-check, +.datagrid-cell-check { + padding: 0; + width: 27px; + height: 18px; + font-size: 1px; + text-align: center; + overflow: hidden; +} +.datagrid-header-check input, +.datagrid-cell-check input { + margin: 0; + padding: 0; + width: 15px; + height: 18px; +} +.datagrid-resize-proxy { + position: absolute; + width: 1px; + height: 10000px; + top: 0; + cursor: e-resize; + display: none; +} +.datagrid-body .datagrid-editable { + margin: 0; + padding: 0; +} +.datagrid-body .datagrid-editable table { + width: 100%; + height: 100%; +} +.datagrid-body .datagrid-editable td { + border: 0; + margin: 0; + padding: 0; +} +.datagrid-body .datagrid-editable .datagrid-editable-input { + margin: 0; + padding: 2px; + border-width: 1px; + border-style: solid; +} +.datagrid-sort-desc .datagrid-sort-icon { + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat -16px center; +} +.datagrid-sort-asc .datagrid-sort-icon { + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat 0px center; +} +.datagrid-row-collapse { + background: url('images/datagrid_icons.png') no-repeat -48px center; +} +.datagrid-row-expand { + background: url('images/datagrid_icons.png') no-repeat -32px center; +} +.datagrid-mask-msg { + background: #fff url('images/loading.gif') no-repeat scroll 5px center; +} +.datagrid-header, +.datagrid-td-rownumber { + background-color: #ffffff; +} +.datagrid-cell-rownumber { + color: #444; +} +.datagrid-resize-proxy { + background: #b3b3b3; +} +.datagrid-mask { + background: #eee; +} +.datagrid-mask-msg { + border-color: #ddd; +} +.datagrid-toolbar, +.datagrid-pager { + background: #fff; +} +.datagrid-header, +.datagrid-toolbar, +.datagrid-pager, +.datagrid-footer-inner { + border-color: #ddd; +} +.datagrid-header td, +.datagrid-body td, +.datagrid-footer td { + border-color: #ddd; +} +.datagrid-htable, +.datagrid-btable, +.datagrid-ftable { + color: #444; + border-collapse: separate; +} +.datagrid-row-alt { + background: #f5f5f5; +} +.datagrid-row-over, +.datagrid-header td.datagrid-header-over { + background: #E6E6E6; + color: #444; + cursor: default; +} +.datagrid-row-selected { + background: #CCE6FF; + color: #000; +} +.datagrid-body .datagrid-editable .datagrid-editable-input { + border-color: #ddd; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/metro/datebox.css b/src/main/webapp/js/easyui-1.3.5/themes/metro/datebox.css new file mode 100644 index 00000000..b0f71e24 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/metro/datebox.css @@ -0,0 +1,36 @@ +.datebox-calendar-inner { + height: 180px; +} +.datebox-button { + height: 18px; + padding: 2px 5px; + text-align: center; +} +.datebox-button a { + font-size: 12px; + font-weight: bold; + text-decoration: none; + opacity: 0.6; + filter: alpha(opacity=60); +} +.datebox-button a:hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.datebox-current, +.datebox-close { + float: left; +} +.datebox-close { + float: right; +} +.datebox .combo-arrow { + background-image: url('images/datebox_arrow.png'); + background-position: center center; +} +.datebox-button { + background-color: #fff; +} +.datebox-button a { + color: #777; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/metro/dialog.css b/src/main/webapp/js/easyui-1.3.5/themes/metro/dialog.css new file mode 100644 index 00000000..316cdc42 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/metro/dialog.css @@ -0,0 +1,30 @@ +.dialog-content { + overflow: auto; +} +.dialog-toolbar { + padding: 2px 5px; +} +.dialog-tool-separator { + float: left; + height: 24px; + border-left: 1px solid #ddd; + border-right: 1px solid #fff; + margin: 2px 1px; +} +.dialog-button { + padding: 5px; + text-align: right; +} +.dialog-button .l-btn { + margin-left: 5px; +} +.dialog-toolbar, +.dialog-button { + background: #fff; +} +.dialog-toolbar { + border-bottom: 1px solid #ddd; +} +.dialog-button { + border-top: 1px solid #ddd; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/metro/easyui.css b/src/main/webapp/js/easyui-1.3.5/themes/metro/easyui.css new file mode 100644 index 00000000..7d11dcb3 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/metro/easyui.css @@ -0,0 +1,2268 @@ +.panel { + overflow: hidden; + text-align: left; + margin: 0; + border: 0; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.panel-header, +.panel-body { + border-width: 1px; + border-style: solid; +} +.panel-header { + padding: 5px; + position: relative; +} +.panel-title { + background: url('images/blank.gif') no-repeat; +} +.panel-header-noborder { + border-width: 0 0 1px 0; +} +.panel-body { + overflow: auto; + border-top-width: 0; + padding: 0; +} +.panel-body-noheader { + border-top-width: 1px; +} +.panel-body-noborder { + border-width: 0px; +} +.panel-with-icon { + padding-left: 18px; +} +.panel-icon, +.panel-tool { + position: absolute; + top: 50%; + margin-top: -8px; + height: 16px; + overflow: hidden; +} +.panel-icon { + left: 5px; + width: 16px; +} +.panel-tool { + right: 5px; + width: auto; +} +.panel-tool a { + display: inline-block; + width: 16px; + height: 16px; + opacity: 0.6; + filter: alpha(opacity=60); + margin: 0 0 0 2px; + vertical-align: top; +} +.panel-tool a:hover { + opacity: 1; + filter: alpha(opacity=100); + background-color: #E6E6E6; + -moz-border-radius: -2px -2px -2px -2px; + -webkit-border-radius: -2px -2px -2px -2px; + border-radius: -2px -2px -2px -2px; +} +.panel-loading { + padding: 11px 0px 10px 30px; +} +.panel-noscroll { + overflow: hidden; +} +.panel-fit, +.panel-fit body { + height: 100%; + margin: 0; + padding: 0; + border: 0; + overflow: hidden; +} +.panel-loading { + background: url('images/loading.gif') no-repeat 10px 10px; +} +.panel-tool-close { + background: url('images/panel_tools.png') no-repeat -16px 0px; +} +.panel-tool-min { + background: url('images/panel_tools.png') no-repeat 0px 0px; +} +.panel-tool-max { + background: url('images/panel_tools.png') no-repeat 0px -16px; +} +.panel-tool-restore { + background: url('images/panel_tools.png') no-repeat -16px -16px; +} +.panel-tool-collapse { + background: url('images/panel_tools.png') no-repeat -32px 0; +} +.panel-tool-expand { + background: url('images/panel_tools.png') no-repeat -32px -16px; +} +.panel-header, +.panel-body { + border-color: #ddd; +} +.panel-header { + background-color: #ffffff; +} +.panel-body { + background-color: #fff; + color: #444; + font-size: 12px; +} +.panel-title { + font-size: 12px; + font-weight: bold; + color: #777; + height: 16px; + line-height: 16px; +} +.accordion { + overflow: hidden; + border-width: 1px; + border-style: solid; +} +.accordion .accordion-header { + border-width: 0 0 1px; + cursor: pointer; +} +.accordion .accordion-body { + border-width: 0 0 1px; +} +.accordion-noborder { + border-width: 0; +} +.accordion-noborder .accordion-header { + border-width: 0 0 1px; +} +.accordion-noborder .accordion-body { + border-width: 0 0 1px; +} +.accordion-collapse { + background: url('images/accordion_arrows.png') no-repeat 0 0; +} +.accordion-expand { + background: url('images/accordion_arrows.png') no-repeat -16px 0; +} +.accordion { + background: #fff; + border-color: #ddd; +} +.accordion .accordion-header { + background: #ffffff; + filter: none; +} +.accordion .accordion-header-selected { + background: #CCE6FF; +} +.accordion .accordion-header-selected .panel-title { + color: #000; +} +.window { + overflow: hidden; + padding: 5px; + border-width: 1px; + border-style: solid; +} +.window .window-header { + background: transparent; + padding: 0px 0px 6px 0px; +} +.window .window-body { + border-width: 1px; + border-style: solid; + border-top-width: 0px; +} +.window .window-body-noheader { + border-top-width: 1px; +} +.window .window-header .panel-icon, +.window .window-header .panel-tool { + top: 50%; + margin-top: -11px; +} +.window .window-header .panel-icon { + left: 1px; +} +.window .window-header .panel-tool { + right: 1px; +} +.window .window-header .panel-with-icon { + padding-left: 18px; +} +.window-proxy { + position: absolute; + overflow: hidden; +} +.window-proxy-mask { + position: absolute; + filter: alpha(opacity=5); + opacity: 0.05; +} +.window-mask { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + filter: alpha(opacity=40); + opacity: 0.40; + font-size: 1px; + *zoom: 1; + overflow: hidden; +} +.window, +.window-shadow { + position: absolute; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.window-shadow { + background: #eee; + -moz-box-shadow: 2px 2px 3px #ededed; + -webkit-box-shadow: 2px 2px 3px #ededed; + box-shadow: 2px 2px 3px #ededed; + filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2); +} +.window, +.window .window-body { + border-color: #ddd; +} +.window { + background-color: #ffffff; +} +.window-proxy { + border: 1px dashed #ddd; +} +.window-proxy-mask, +.window-mask { + background: #eee; +} +.dialog-content { + overflow: auto; +} +.dialog-toolbar { + padding: 2px 5px; +} +.dialog-tool-separator { + float: left; + height: 24px; + border-left: 1px solid #ddd; + border-right: 1px solid #fff; + margin: 2px 1px; +} +.dialog-button { + padding: 5px; + text-align: right; +} +.dialog-button .l-btn { + margin-left: 5px; +} +.dialog-toolbar, +.dialog-button { + background: #fff; +} +.dialog-toolbar { + border-bottom: 1px solid #ddd; +} +.dialog-button { + border-top: 1px solid #ddd; +} +.combo { + display: inline-block; + white-space: nowrap; + margin: 0; + padding: 0; + border-width: 1px; + border-style: solid; + overflow: hidden; + vertical-align: middle; +} +.combo .combo-text { + font-size: 12px; + border: 0px; + line-height: 20px; + height: 20px; + margin: 0; + padding: 0px 2px; + *margin-top: -1px; + *height: 18px; + *line-height: 18px; + _height: 18px; + _line-height: 18px; + vertical-align: baseline; +} +.combo-arrow { + width: 18px; + height: 20px; + overflow: hidden; + display: inline-block; + vertical-align: top; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.combo-arrow-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.combo-panel { + overflow: auto; +} +.combo-arrow { + background: url('images/combo_arrow.png') no-repeat center center; +} +.combo, +.combo-panel { + background-color: #fff; +} +.combo { + border-color: #ddd; + background-color: #fff; +} +.combo-arrow { + background-color: #ffffff; +} +.combo-arrow-hover { + background-color: #E6E6E6; +} +.combobox-item, +.combobox-group { + font-size: 12px; + padding: 3px; + padding-right: 0px; +} +.combobox-item-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.combobox-gitem { + padding-left: 10px; +} +.combobox-group { + font-weight: bold; +} +.combobox-item-hover { + background-color: #E6E6E6; + color: #444; +} +.combobox-item-selected { + background-color: #CCE6FF; + color: #000; +} +.layout { + position: relative; + overflow: hidden; + margin: 0; + padding: 0; + z-index: 0; +} +.layout-panel { + position: absolute; + overflow: hidden; +} +.layout-panel-east, +.layout-panel-west { + z-index: 2; +} +.layout-panel-north, +.layout-panel-south { + z-index: 3; +} +.layout-expand { + position: absolute; + padding: 0px; + font-size: 1px; + cursor: pointer; + z-index: 1; +} +.layout-expand .panel-header, +.layout-expand .panel-body { + background: transparent; + filter: none; + overflow: hidden; +} +.layout-expand .panel-header { + border-bottom-width: 0px; +} +.layout-split-proxy-h, +.layout-split-proxy-v { + position: absolute; + font-size: 1px; + display: none; + z-index: 5; +} +.layout-split-proxy-h { + width: 5px; + cursor: e-resize; +} +.layout-split-proxy-v { + height: 5px; + cursor: n-resize; +} +.layout-mask { + position: absolute; + background: #fafafa; + filter: alpha(opacity=10); + opacity: 0.10; + z-index: 4; +} +.layout-button-up { + background: url('images/layout_arrows.png') no-repeat -16px -16px; +} +.layout-button-down { + background: url('images/layout_arrows.png') no-repeat -16px 0; +} +.layout-button-left { + background: url('images/layout_arrows.png') no-repeat 0 0; +} +.layout-button-right { + background: url('images/layout_arrows.png') no-repeat 0 -16px; +} +.layout-split-proxy-h, +.layout-split-proxy-v { + background-color: #b3b3b3; +} +.layout-split-north { + border-bottom: 5px solid #fff; +} +.layout-split-south { + border-top: 5px solid #fff; +} +.layout-split-east { + border-left: 5px solid #fff; +} +.layout-split-west { + border-right: 5px solid #fff; +} +.layout-expand { + background-color: #ffffff; +} +.layout-expand-over { + background-color: #ffffff; +} +.tabs-container { + overflow: hidden; +} +.tabs-header { + border-width: 1px; + border-style: solid; + border-bottom-width: 0; + position: relative; + padding: 0; + padding-top: 2px; + overflow: hidden; +} +.tabs-header-plain { + border: 0; + background: transparent; +} +.tabs-scroller-left, +.tabs-scroller-right { + position: absolute; + top: auto; + bottom: 0; + width: 18px; + font-size: 1px; + display: none; + cursor: pointer; + border-width: 1px; + border-style: solid; +} +.tabs-scroller-left { + left: 0; +} +.tabs-scroller-right { + right: 0; +} +.tabs-tool { + position: absolute; + bottom: 0; + padding: 1px; + overflow: hidden; + border-width: 1px; + border-style: solid; +} +.tabs-header-plain .tabs-tool { + padding: 0 1px; +} +.tabs-wrap { + position: relative; + left: 0; + overflow: hidden; + width: 100%; + margin: 0; + padding: 0; +} +.tabs-scrolling { + margin-left: 18px; + margin-right: 18px; +} +.tabs-disabled { + opacity: 0.3; + filter: alpha(opacity=30); +} +.tabs { + list-style-type: none; + height: 26px; + margin: 0px; + padding: 0px; + padding-left: 4px; + width: 5000px; + border-style: solid; + border-width: 0 0 1px 0; +} +.tabs li { + float: left; + display: inline-block; + margin: 0 4px -1px 0; + padding: 0; + position: relative; + border: 0; +} +.tabs li a.tabs-inner { + display: inline-block; + text-decoration: none; + margin: 0; + padding: 0 10px; + height: 25px; + line-height: 25px; + text-align: center; + white-space: nowrap; + border-width: 1px; + border-style: solid; + -moz-border-radius: 0px 0px 0 0; + -webkit-border-radius: 0px 0px 0 0; + border-radius: 0px 0px 0 0; +} +.tabs li.tabs-selected a.tabs-inner { + font-weight: bold; + outline: none; +} +.tabs li.tabs-selected a:hover.tabs-inner { + cursor: default; + pointer: default; +} +.tabs li a.tabs-close, +.tabs-p-tool { + position: absolute; + font-size: 1px; + display: block; + height: 12px; + padding: 0; + top: 50%; + margin-top: -6px; + overflow: hidden; +} +.tabs li a.tabs-close { + width: 12px; + right: 5px; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tabs-p-tool { + right: 16px; +} +.tabs-p-tool a { + display: inline-block; + font-size: 1px; + width: 12px; + height: 12px; + margin: 0; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tabs li a:hover.tabs-close, +.tabs-p-tool a:hover { + opacity: 1; + filter: alpha(opacity=100); + cursor: hand; + cursor: pointer; +} +.tabs-with-icon { + padding-left: 18px; +} +.tabs-icon { + position: absolute; + width: 16px; + height: 16px; + left: 10px; + top: 50%; + margin-top: -8px; +} +.tabs-title { + font-size: 12px; +} +.tabs-closable { + padding-right: 8px; +} +.tabs-panels { + margin: 0px; + padding: 0px; + border-width: 1px; + border-style: solid; + border-top-width: 0; + overflow: hidden; +} +.tabs-header-bottom { + border-width: 0 1px 1px 1px; + padding: 0 0 2px 0; +} +.tabs-header-bottom .tabs { + border-width: 1px 0 0 0; +} +.tabs-header-bottom .tabs li { + margin: -1px 4px 0 0; +} +.tabs-header-bottom .tabs li a.tabs-inner { + -moz-border-radius: 0 0 0px 0px; + -webkit-border-radius: 0 0 0px 0px; + border-radius: 0 0 0px 0px; +} +.tabs-header-bottom .tabs-tool { + top: 0; +} +.tabs-header-bottom .tabs-scroller-left, +.tabs-header-bottom .tabs-scroller-right { + top: 0; + bottom: auto; +} +.tabs-panels-top { + border-width: 1px 1px 0 1px; +} +.tabs-header-left { + float: left; + border-width: 1px 0 1px 1px; + padding: 0; +} +.tabs-header-right { + float: right; + border-width: 1px 1px 1px 0; + padding: 0; +} +.tabs-header-left .tabs-wrap, +.tabs-header-right .tabs-wrap { + height: 100%; +} +.tabs-header-left .tabs { + height: 100%; + padding: 4px 0 0 4px; + border-width: 0 1px 0 0; +} +.tabs-header-right .tabs { + height: 100%; + padding: 4px 4px 0 0; + border-width: 0 0 0 1px; +} +.tabs-header-left .tabs li, +.tabs-header-right .tabs li { + display: block; + width: 100%; + position: relative; +} +.tabs-header-left .tabs li { + left: auto; + right: 0; + margin: 0 -1px 4px 0; + float: right; +} +.tabs-header-right .tabs li { + left: 0; + right: auto; + margin: 0 0 4px -1px; + float: left; +} +.tabs-header-left .tabs li a.tabs-inner { + display: block; + text-align: left; + -moz-border-radius: 0px 0 0 0px; + -webkit-border-radius: 0px 0 0 0px; + border-radius: 0px 0 0 0px; +} +.tabs-header-right .tabs li a.tabs-inner { + display: block; + text-align: left; + -moz-border-radius: 0 0px 0px 0; + -webkit-border-radius: 0 0px 0px 0; + border-radius: 0 0px 0px 0; +} +.tabs-panels-right { + float: right; + border-width: 1px 1px 1px 0; +} +.tabs-panels-left { + float: left; + border-width: 1px 0 1px 1px; +} +.tabs-header-noborder, +.tabs-panels-noborder { + border: 0px; +} +.tabs-header-plain { + border: 0px; + background: transparent; +} +.tabs-scroller-left { + background: #ffffff url('images/tabs_icons.png') no-repeat 1px center; +} +.tabs-scroller-right { + background: #ffffff url('images/tabs_icons.png') no-repeat -15px center; +} +.tabs li a.tabs-close { + background: url('images/tabs_icons.png') no-repeat -34px center; +} +.tabs li a.tabs-inner:hover { + background: #E6E6E6; + color: #444; + filter: none; +} +.tabs li.tabs-selected a.tabs-inner { + background-color: #fff; + color: #777; +} +.tabs li a.tabs-inner { + color: #777; + background-color: #ffffff; +} +.tabs-header, +.tabs-tool { + background-color: #ffffff; +} +.tabs-header-plain { + background: transparent; +} +.tabs-header, +.tabs-scroller-left, +.tabs-scroller-right, +.tabs-tool, +.tabs, +.tabs-panels, +.tabs li a.tabs-inner, +.tabs li.tabs-selected a.tabs-inner, +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner, +.tabs-header-left .tabs li.tabs-selected a.tabs-inner, +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + border-color: #ddd; +} +.tabs-p-tool a:hover, +.tabs li a:hover.tabs-close, +.tabs-scroller-over { + background-color: #E6E6E6; +} +.tabs li.tabs-selected a.tabs-inner { + border-bottom: 1px solid #fff; +} +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner { + border-top: 1px solid #fff; +} +.tabs-header-left .tabs li.tabs-selected a.tabs-inner { + border-right: 1px solid #fff; +} +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + border-left: 1px solid #fff; +} +a.l-btn { + background-position: right 0; + text-decoration: none; + display: inline-block; + zoom: 1; + height: 24px; + padding-right: 18px; + cursor: pointer; + outline: none; +} +a.l-btn-plain { + border: 0; + padding: 1px 6px 1px 1px; +} +a.l-btn-disabled { + color: #ccc; + opacity: 0.5; + filter: alpha(opacity=50); + cursor: default; +} +a.l-btn span.l-btn-left { + display: inline-block; + background-position: 0 -48px; + padding: 0 0 0 18px; + line-height: 24px; + height: 24px; +} +a.l-btn-plain span.l-btn-left { + padding-left: 5px; +} +a.l-btn span span.l-btn-text { + position: relative; + display: inline-block; + vertical-align: top; + top: 4px; + width: auto; + height: 16px; + line-height: 16px; + font-size: 12px; + padding: 0; + margin: 0; +} +a.l-btn span span.l-btn-icon-left { + padding: 0 0 0 20px; + background-position: left center; +} +a.l-btn span span.l-btn-icon-right { + padding: 0 20px 0 0; + background-position: right center; +} +a.l-btn span span span.l-btn-empty { + display: inline-block; + margin: 0; + padding: 0; + width: 16px; +} +a:hover.l-btn { + background-position: right -24px; + outline: none; + text-decoration: none; +} +a:hover.l-btn span.l-btn-left { + background-position: 0 bottom; +} +a:hover.l-btn-plain { + padding: 0 5px 0 0; +} +a:hover.l-btn-disabled { + background-position: right 0; +} +a:hover.l-btn-disabled span.l-btn-left { + background-position: 0 -48px; +} +a.l-btn .l-btn-focus { + outline: #0000FF dotted thin; +} +a.l-btn { + color: #777; + background-image: url('images/linkbutton_bg.png'); + background-repeat: no-repeat; + background: #ffffff; + background-repeat: repeat-x; + border: 1px solid #dddddd; + background: -webkit-linear-gradient(top,#ffffff 0,#ffffff 100%); + background: -moz-linear-gradient(top,#ffffff 0,#ffffff 100%); + background: -o-linear-gradient(top,#ffffff 0,#ffffff 100%); + background: linear-gradient(to bottom,#ffffff 0,#ffffff 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#ffffff,GradientType=0); + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +a.l-btn span.l-btn-left { + background-image: url('images/linkbutton_bg.png'); + background-repeat: no-repeat; + background-image: none; +} +a:hover.l-btn { + background: #E6E6E6; + color: #444; + border: 1px solid #ddd; + filter: none; +} +a.l-btn-plain, +a.l-btn-plain span.l-btn-left { + background: transparent; + border: 0; + filter: none; +} +a:hover.l-btn-plain { + background: #E6E6E6; + color: #444; + border: 1px solid #ddd; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +a.l-btn-disabled, +a:hover.l-btn-disabled { + color: #777; + filter: alpha(opacity=50); + background: #ffffff; + color: #777; + background: -webkit-linear-gradient(top,#ffffff 0,#ffffff 100%); + background: -moz-linear-gradient(top,#ffffff 0,#ffffff 100%); + background: -o-linear-gradient(top,#ffffff 0,#ffffff 100%); + background: linear-gradient(to bottom,#ffffff 0,#ffffff 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#ffffff,GradientType=0); + filter: alpha(opacity=50) progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#ffffff,GradientType=0); +} +a.l-btn-plain-disabled, +a:hover.l-btn-plain-disabled { + background: transparent; + filter: alpha(opacity=50); +} +a.l-btn-selected, +a:hover.l-btn-selected { + background-position: right -24px; + background: #ddd; + filter: none; +} +a.l-btn-selected span.l-btn-left, +a:hover.l-btn-selected span.l-btn-left { + background-position: 0 bottom; + background-image: none; +} +a.l-btn-plain-selected, +a:hover.l-btn-plain-selected { + background: #ddd; +} +.datagrid .panel-body { + overflow: hidden; + position: relative; +} +.datagrid-view { + position: relative; + overflow: hidden; +} +.datagrid-view1, +.datagrid-view2 { + position: absolute; + overflow: hidden; + top: 0; +} +.datagrid-view1 { + left: 0; +} +.datagrid-view2 { + right: 0; +} +.datagrid-mask { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + opacity: 0.3; + filter: alpha(opacity=30); + display: none; +} +.datagrid-mask-msg { + position: absolute; + top: 50%; + margin-top: -20px; + padding: 12px 5px 10px 30px; + width: auto; + height: 16px; + border-width: 2px; + border-style: solid; + display: none; +} +.datagrid-sort-icon { + padding: 0; +} +.datagrid-toolbar { + height: auto; + padding: 1px 2px; + border-width: 0 0 1px 0; + border-style: solid; +} +.datagrid-btn-separator { + float: left; + height: 24px; + border-left: 1px solid #ddd; + border-right: 1px solid #fff; + margin: 2px 1px; +} +.datagrid .datagrid-pager { + display: block; + margin: 0; + border-width: 1px 0 0 0; + border-style: solid; +} +.datagrid .datagrid-pager-top { + border-width: 0 0 1px 0; +} +.datagrid-header { + overflow: hidden; + cursor: default; + border-width: 0 0 1px 0; + border-style: solid; +} +.datagrid-header-inner { + float: left; + width: 10000px; +} +.datagrid-header-row, +.datagrid-row { + height: 25px; +} +.datagrid-header td, +.datagrid-body td, +.datagrid-footer td { + border-width: 0 1px 1px 0; + border-style: dotted; + margin: 0; + padding: 0; +} +.datagrid-cell, +.datagrid-cell-group, +.datagrid-header-rownumber, +.datagrid-cell-rownumber { + margin: 0; + padding: 0 4px; + white-space: nowrap; + word-wrap: normal; + overflow: hidden; + height: 18px; + line-height: 18px; + font-size: 12px; +} +.datagrid-header .datagrid-cell { + height: auto; +} +.datagrid-header .datagrid-cell span { + font-size: 12px; +} +.datagrid-cell-group { + text-align: center; +} +.datagrid-header-rownumber, +.datagrid-cell-rownumber { + width: 25px; + text-align: center; + margin: 0; + padding: 0; +} +.datagrid-body { + margin: 0; + padding: 0; + overflow: auto; + zoom: 1; +} +.datagrid-view1 .datagrid-body-inner { + padding-bottom: 20px; +} +.datagrid-view1 .datagrid-body { + overflow: hidden; +} +.datagrid-footer { + overflow: hidden; +} +.datagrid-footer-inner { + border-width: 1px 0 0 0; + border-style: solid; + width: 10000px; + float: left; +} +.datagrid-row-editing .datagrid-cell { + height: auto; +} +.datagrid-header-check, +.datagrid-cell-check { + padding: 0; + width: 27px; + height: 18px; + font-size: 1px; + text-align: center; + overflow: hidden; +} +.datagrid-header-check input, +.datagrid-cell-check input { + margin: 0; + padding: 0; + width: 15px; + height: 18px; +} +.datagrid-resize-proxy { + position: absolute; + width: 1px; + height: 10000px; + top: 0; + cursor: e-resize; + display: none; +} +.datagrid-body .datagrid-editable { + margin: 0; + padding: 0; +} +.datagrid-body .datagrid-editable table { + width: 100%; + height: 100%; +} +.datagrid-body .datagrid-editable td { + border: 0; + margin: 0; + padding: 0; +} +.datagrid-body .datagrid-editable .datagrid-editable-input { + margin: 0; + padding: 2px; + border-width: 1px; + border-style: solid; +} +.datagrid-sort-desc .datagrid-sort-icon { + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat -16px center; +} +.datagrid-sort-asc .datagrid-sort-icon { + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat 0px center; +} +.datagrid-row-collapse { + background: url('images/datagrid_icons.png') no-repeat -48px center; +} +.datagrid-row-expand { + background: url('images/datagrid_icons.png') no-repeat -32px center; +} +.datagrid-mask-msg { + background: #fff url('images/loading.gif') no-repeat scroll 5px center; +} +.datagrid-header, +.datagrid-td-rownumber { + background-color: #ffffff; +} +.datagrid-cell-rownumber { + color: #444; +} +.datagrid-resize-proxy { + background: #b3b3b3; +} +.datagrid-mask { + background: #eee; +} +.datagrid-mask-msg { + border-color: #ddd; +} +.datagrid-toolbar, +.datagrid-pager { + background: #fff; +} +.datagrid-header, +.datagrid-toolbar, +.datagrid-pager, +.datagrid-footer-inner { + border-color: #ddd; +} +.datagrid-header td, +.datagrid-body td, +.datagrid-footer td { + border-color: #ddd; +} +.datagrid-htable, +.datagrid-btable, +.datagrid-ftable { + color: #444; + border-collapse: separate; +} +.datagrid-row-alt { + background: #f5f5f5; +} +.datagrid-row-over, +.datagrid-header td.datagrid-header-over { + background: #E6E6E6; + color: #444; + cursor: default; +} +.datagrid-row-selected { + background: #CCE6FF; + color: #000; +} +.datagrid-body .datagrid-editable .datagrid-editable-input { + border-color: #ddd; +} +.propertygrid .datagrid-view1 .datagrid-body td { + padding-bottom: 1px; + border-width: 0 1px 0 0; +} +.propertygrid .datagrid-group { + height: 21px; + overflow: hidden; + border-width: 0 0 1px 0; + border-style: solid; +} +.propertygrid .datagrid-group span { + font-weight: bold; +} +.propertygrid .datagrid-view1 .datagrid-body td { + border-color: #ddd; +} +.propertygrid .datagrid-view1 .datagrid-group { + border-color: #ffffff; +} +.propertygrid .datagrid-view2 .datagrid-group { + border-color: #ddd; +} +.propertygrid .datagrid-group, +.propertygrid .datagrid-view1 .datagrid-body, +.propertygrid .datagrid-view1 .datagrid-row-over, +.propertygrid .datagrid-view1 .datagrid-row-selected { + background: #ffffff; +} +.pagination { + zoom: 1; +} +.pagination table { + float: left; + height: 30px; +} +.pagination td { + border: 0; +} +.pagination-btn-separator { + float: left; + height: 24px; + border-left: 1px solid #ddd; + border-right: 1px solid #fff; + margin: 3px 1px; +} +.pagination .pagination-num { + border-width: 1px; + border-style: solid; + margin: 0 2px; + padding: 2px; + width: 2em; + height: auto; +} +.pagination-page-list { + margin: 0px 6px; + padding: 1px 2px; + width: auto; + height: auto; + border-width: 1px; + border-style: solid; +} +.pagination-info { + float: right; + margin: 0 6px 0 0; + padding: 0; + height: 30px; + line-height: 30px; + font-size: 12px; +} +.pagination span { + font-size: 12px; +} +a.pagination-link { + padding: 1px; +} +a.pagination-link span.l-btn-left { + padding-left: 0; +} +a.pagination-link span span.l-btn-text { + width: 24px; + text-align: center; +} +a:hover.pagination-link { + padding: 0; +} +.pagination-first { + background: url('images/pagination_icons.png') no-repeat 0 center; +} +.pagination-prev { + background: url('images/pagination_icons.png') no-repeat -16px center; +} +.pagination-next { + background: url('images/pagination_icons.png') no-repeat -32px center; +} +.pagination-last { + background: url('images/pagination_icons.png') no-repeat -48px center; +} +.pagination-load { + background: url('images/pagination_icons.png') no-repeat -64px center; +} +.pagination-loading { + background: url('images/loading.gif') no-repeat center center; +} +.pagination-page-list, +.pagination .pagination-num { + border-color: #ddd; +} +.calendar { + border-width: 1px; + border-style: solid; + padding: 1px; + overflow: hidden; +} +.calendar table { + border-collapse: separate; + font-size: 12px; + width: 100%; + height: 100%; +} +.calendar table td, +.calendar table th { + font-size: 12px; +} +.calendar-noborder { + border: 0; +} +.calendar-header { + position: relative; + height: 22px; +} +.calendar-title { + text-align: center; + height: 22px; +} +.calendar-title span { + position: relative; + display: inline-block; + top: 2px; + padding: 0 3px; + height: 18px; + line-height: 18px; + font-size: 12px; + cursor: pointer; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.calendar-prevmonth, +.calendar-nextmonth, +.calendar-prevyear, +.calendar-nextyear { + position: absolute; + top: 50%; + margin-top: -7px; + width: 14px; + height: 14px; + cursor: pointer; + font-size: 1px; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.calendar-prevmonth { + left: 20px; + background: url('images/calendar_arrows.png') no-repeat -18px -2px; +} +.calendar-nextmonth { + right: 20px; + background: url('images/calendar_arrows.png') no-repeat -34px -2px; +} +.calendar-prevyear { + left: 3px; + background: url('images/calendar_arrows.png') no-repeat -1px -2px; +} +.calendar-nextyear { + right: 3px; + background: url('images/calendar_arrows.png') no-repeat -49px -2px; +} +.calendar-body { + position: relative; +} +.calendar-body th, +.calendar-body td { + text-align: center; +} +.calendar-day { + border: 0; + padding: 1px; + cursor: pointer; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.calendar-other-month { + opacity: 0.3; + filter: alpha(opacity=30); +} +.calendar-menu { + position: absolute; + top: 0; + left: 0; + width: 180px; + height: 150px; + padding: 5px; + font-size: 12px; + display: none; + overflow: hidden; +} +.calendar-menu-year-inner { + text-align: center; + padding-bottom: 5px; +} +.calendar-menu-year { + width: 40px; + text-align: center; + border-width: 1px; + border-style: solid; + margin: 0; + padding: 2px; + font-weight: bold; + font-size: 12px; +} +.calendar-menu-prev, +.calendar-menu-next { + display: inline-block; + width: 21px; + height: 21px; + vertical-align: top; + cursor: pointer; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.calendar-menu-prev { + margin-right: 10px; + background: url('images/calendar_arrows.png') no-repeat 2px 2px; +} +.calendar-menu-next { + margin-left: 10px; + background: url('images/calendar_arrows.png') no-repeat -45px 2px; +} +.calendar-menu-month { + text-align: center; + cursor: pointer; + font-weight: bold; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.calendar-body th, +.calendar-menu-month { + color: #919191; +} +.calendar-day { + color: #444; +} +.calendar-sunday { + color: #CC2222; +} +.calendar-saturday { + color: #00ee00; +} +.calendar-today { + color: #0000ff; +} +.calendar-menu-year { + border-color: #ddd; +} +.calendar { + border-color: #ddd; +} +.calendar-header { + background: #ffffff; +} +.calendar-body, +.calendar-menu { + background: #fff; +} +.calendar-body th { + background: #fff; +} +.calendar-hover, +.calendar-nav-hover, +.calendar-menu-hover { + background-color: #E6E6E6; + color: #444; +} +.calendar-hover { + border: 1px solid #ddd; + padding: 0; +} +.calendar-selected { + background-color: #CCE6FF; + color: #000; + border: 1px solid #99cdff; + padding: 0; +} +.datebox-calendar-inner { + height: 180px; +} +.datebox-button { + height: 18px; + padding: 2px 5px; + text-align: center; +} +.datebox-button a { + font-size: 12px; + font-weight: bold; + text-decoration: none; + opacity: 0.6; + filter: alpha(opacity=60); +} +.datebox-button a:hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.datebox-current, +.datebox-close { + float: left; +} +.datebox-close { + float: right; +} +.datebox .combo-arrow { + background-image: url('images/datebox_arrow.png'); + background-position: center center; +} +.datebox-button { + background-color: #fff; +} +.datebox-button a { + color: #777; +} +.spinner { + display: inline-block; + white-space: nowrap; + margin: 0; + padding: 0; + border-width: 1px; + border-style: solid; + overflow: hidden; + vertical-align: middle; +} +.spinner .spinner-text { + font-size: 12px; + border: 0px; + line-height: 20px; + height: 20px; + margin: 0; + padding: 0 2px; + *margin-top: -1px; + *height: 18px; + *line-height: 18px; + _height: 18px; + _line-height: 18px; + vertical-align: baseline; +} +.spinner-arrow { + display: inline-block; + overflow: hidden; + vertical-align: top; + margin: 0; + padding: 0; +} +.spinner-arrow-up, +.spinner-arrow-down { + opacity: 0.6; + filter: alpha(opacity=60); + display: block; + font-size: 1px; + width: 18px; + height: 10px; +} +.spinner-arrow-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.spinner-arrow-up { + background: url('images/spinner_arrows.png') no-repeat 1px center; +} +.spinner-arrow-down { + background: url('images/spinner_arrows.png') no-repeat -15px center; +} +.spinner { + border-color: #ddd; +} +.spinner-arrow { + background-color: #ffffff; +} +.spinner-arrow-hover { + background-color: #E6E6E6; +} +.progressbar { + border-width: 1px; + border-style: solid; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; + overflow: hidden; + position: relative; +} +.progressbar-text { + text-align: center; + position: absolute; +} +.progressbar-value { + position: relative; + overflow: hidden; + width: 0; + -moz-border-radius: 0px 0 0 0px; + -webkit-border-radius: 0px 0 0 0px; + border-radius: 0px 0 0 0px; +} +.progressbar { + border-color: #ddd; +} +.progressbar-text { + color: #444; + font-size: 12px; +} +.progressbar-value .progressbar-text { + background-color: #CCE6FF; + color: #000; +} +.searchbox { + display: inline-block; + white-space: nowrap; + margin: 0; + padding: 0; + border-width: 1px; + border-style: solid; + overflow: hidden; +} +.searchbox .searchbox-text { + font-size: 12px; + border: 0; + margin: 0; + padding: 0; + line-height: 20px; + height: 20px; + *margin-top: -1px; + *height: 18px; + *line-height: 18px; + _height: 18px; + _line-height: 18px; + vertical-align: baseline; +} +.searchbox .searchbox-prompt { + font-size: 12px; + color: #ccc; +} +.searchbox-button { + width: 18px; + height: 20px; + overflow: hidden; + display: inline-block; + vertical-align: top; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.searchbox-button-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.searchbox a.l-btn-plain { + height: 20px; + border: 0; + padding: 0 6px 0 0; + vertical-align: top; + opacity: 0.6; + filter: alpha(opacity=60); + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox a.l-btn .l-btn-left { + padding: 0 0 0 4px; +} +.searchbox a.l-btn .l-btn-text { + position: static; + vertical-align: top; +} +.searchbox a.l-btn-plain:hover { + border: 0; + padding: 0 6px 0 0; + opacity: 1.0; + filter: alpha(opacity=100); + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox a.m-btn-plain-active { + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox-button { + background: url('images/searchbox_button.png') no-repeat center center; +} +.searchbox { + border-color: #ddd; + background-color: #fff; +} +.searchbox a.l-btn-plain { + background: #ffffff; +} +.slider-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.slider-h { + height: 22px; +} +.slider-v { + width: 22px; +} +.slider-inner { + position: relative; + height: 6px; + top: 7px; + border-width: 1px; + border-style: solid; + border-radius: 0px; +} +.slider-handle { + position: absolute; + display: block; + outline: none; + width: 20px; + height: 20px; + top: -7px; + margin-left: -10px; +} +.slider-tip { + position: absolute; + display: inline-block; + line-height: 12px; + font-size: 12px; + white-space: nowrap; + top: -22px; +} +.slider-rule { + position: relative; + top: 15px; +} +.slider-rule span { + position: absolute; + display: inline-block; + font-size: 0; + height: 5px; + border-width: 0 0 0 1px; + border-style: solid; +} +.slider-rulelabel { + position: relative; + top: 20px; +} +.slider-rulelabel span { + position: absolute; + display: inline-block; + font-size: 12px; +} +.slider-v .slider-inner { + width: 6px; + left: 7px; + top: 0; + float: left; +} +.slider-v .slider-handle { + left: 3px; + margin-top: -10px; +} +.slider-v .slider-tip { + left: -10px; + margin-top: -6px; +} +.slider-v .slider-rule { + float: left; + top: 0; + left: 16px; +} +.slider-v .slider-rule span { + width: 5px; + height: 'auto'; + border-left: 0; + border-width: 1px 0 0 0; + border-style: solid; +} +.slider-v .slider-rulelabel { + float: left; + top: 0; + left: 23px; +} +.slider-handle { + background: url('images/slider_handle.png') no-repeat; +} +.slider-inner { + border-color: #ddd; + background: #ffffff; +} +.slider-rule span { + border-color: #ddd; +} +.slider-rulelabel span { + color: #444; +} +.menu { + position: absolute; + margin: 0; + padding: 2px; + border-width: 1px; + border-style: solid; + overflow: hidden; +} +.menu-item { + position: relative; + margin: 0; + padding: 0; + overflow: hidden; + white-space: nowrap; + cursor: pointer; + border-width: 1px; + border-style: solid; +} +.menu-text { + height: 20px; + line-height: 20px; + float: left; + padding-left: 28px; +} +.menu-icon { + position: absolute; + width: 16px; + height: 16px; + left: 2px; + top: 50%; + margin-top: -8px; +} +.menu-rightarrow { + position: absolute; + width: 16px; + height: 16px; + right: 0; + top: 50%; + margin-top: -8px; +} +.menu-line { + position: absolute; + left: 26px; + top: 0; + height: 2000px; + font-size: 1px; +} +.menu-sep { + margin: 3px 0px 3px 25px; + font-size: 1px; +} +.menu-active { + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.menu-item-disabled { + opacity: 0.5; + filter: alpha(opacity=50); + cursor: default; +} +.menu-text, +.menu-text span { + font-size: 12px; +} +.menu-shadow { + position: absolute; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; + background: #eee; + -moz-box-shadow: 2px 2px 3px #ededed; + -webkit-box-shadow: 2px 2px 3px #ededed; + box-shadow: 2px 2px 3px #ededed; + filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2); +} +.menu-rightarrow { + background: url('images/menu_arrows.png') no-repeat -32px center; +} +.menu-line { + border-left: 1px solid #ddd; + border-right: 1px solid #fff; +} +.menu-sep { + border-top: 1px solid #ddd; + border-bottom: 1px solid #fff; +} +.menu { + background-color: #ffffff; + border-color: #ddd; + color: #444; +} +.menu-content { + background: #fff; +} +.menu-item { + border-color: transparent; + _border-color: #ffffff; +} +.menu-active { + border-color: #ddd; + color: #444; + background: #E6E6E6; +} +.menu-active-disabled { + border-color: transparent; + background: transparent; + color: #444; +} +.m-btn-downarrow { + display: inline-block; + width: 16px; + height: 16px; + line-height: 16px; + font-size: 12px; + _vertical-align: middle; +} +a.m-btn-active { + background-position: bottom right; +} +a.m-btn-active span.l-btn-left { + background-position: bottom left; +} +a.m-btn-plain-active { + background: transparent; + padding: 0 5px 0 0; + border-width: 1px; + border-style: solid; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.m-btn-downarrow { + background: url('images/menu_arrows.png') no-repeat 2px center; +} +a.m-btn-plain-active { + border-color: #ddd; + background-color: #E6E6E6; + color: #444; +} +.s-btn-downarrow { + display: inline-block; + margin: 0 0 0 4px; + padding: 0 0 0 1px; + width: 14px; + height: 16px; + line-height: 16px; + border-width: 0; + border-style: solid; + font-size: 12px; + _vertical-align: middle; +} +a.s-btn-active { + background-position: bottom right; +} +a.s-btn-active span.l-btn-left { + background-position: bottom left; +} +a.s-btn-plain-active { + background: transparent; + padding: 0 5px 0 0; + border-width: 1px; + border-style: solid; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.s-btn-downarrow { + background: url('images/menu_arrows.png') no-repeat 2px center; + border-color: #b3b3b3; +} +a:hover.l-btn .s-btn-downarrow, +a.s-btn-active .s-btn-downarrow, +a.s-btn-plain-active .s-btn-downarrow { + background-position: 1px center; + padding: 0; + border-width: 0 0 0 1px; +} +a.s-btn-plain-active { + border-color: #ddd; + background-color: #E6E6E6; + color: #444; +} +.messager-body { + padding: 10px; + overflow: hidden; +} +.messager-button { + text-align: center; + padding-top: 10px; +} +.messager-icon { + float: left; + width: 32px; + height: 32px; + margin: 0 10px 10px 0; +} +.messager-error { + background: url('images/messager_icons.png') no-repeat scroll -64px 0; +} +.messager-info { + background: url('images/messager_icons.png') no-repeat scroll 0 0; +} +.messager-question { + background: url('images/messager_icons.png') no-repeat scroll -32px 0; +} +.messager-warning { + background: url('images/messager_icons.png') no-repeat scroll -96px 0; +} +.messager-progress { + padding: 10px; +} +.messager-p-msg { + margin-bottom: 5px; +} +.messager-body .messager-input { + width: 100%; + padding: 1px 0; + border: 1px solid #ddd; +} +.tree { + margin: 0; + padding: 0; + list-style-type: none; +} +.tree li { + white-space: nowrap; +} +.tree li ul { + list-style-type: none; + margin: 0; + padding: 0; +} +.tree-node { + height: 18px; + white-space: nowrap; + cursor: pointer; +} +.tree-hit { + cursor: pointer; +} +.tree-expanded, +.tree-collapsed, +.tree-folder, +.tree-file, +.tree-checkbox, +.tree-indent { + display: inline-block; + width: 16px; + height: 18px; + vertical-align: top; + overflow: hidden; +} +.tree-expanded { + background: url('images/tree_icons.png') no-repeat -18px 0px; +} +.tree-expanded-hover { + background: url('images/tree_icons.png') no-repeat -50px 0px; +} +.tree-collapsed { + background: url('images/tree_icons.png') no-repeat 0px 0px; +} +.tree-collapsed-hover { + background: url('images/tree_icons.png') no-repeat -32px 0px; +} +.tree-lines .tree-expanded, +.tree-lines .tree-root-first .tree-expanded { + background: url('images/tree_icons.png') no-repeat -144px 0; +} +.tree-lines .tree-collapsed, +.tree-lines .tree-root-first .tree-collapsed { + background: url('images/tree_icons.png') no-repeat -128px 0; +} +.tree-lines .tree-node-last .tree-expanded, +.tree-lines .tree-root-one .tree-expanded { + background: url('images/tree_icons.png') no-repeat -80px 0; +} +.tree-lines .tree-node-last .tree-collapsed, +.tree-lines .tree-root-one .tree-collapsed { + background: url('images/tree_icons.png') no-repeat -64px 0; +} +.tree-line { + background: url('images/tree_icons.png') no-repeat -176px 0; +} +.tree-join { + background: url('images/tree_icons.png') no-repeat -192px 0; +} +.tree-joinbottom { + background: url('images/tree_icons.png') no-repeat -160px 0; +} +.tree-folder { + background: url('images/tree_icons.png') no-repeat -208px 0; +} +.tree-folder-open { + background: url('images/tree_icons.png') no-repeat -224px 0; +} +.tree-file { + background: url('images/tree_icons.png') no-repeat -240px 0; +} +.tree-loading { + background: url('images/loading.gif') no-repeat center center; +} +.tree-checkbox0 { + background: url('images/tree_icons.png') no-repeat -208px -18px; +} +.tree-checkbox1 { + background: url('images/tree_icons.png') no-repeat -224px -18px; +} +.tree-checkbox2 { + background: url('images/tree_icons.png') no-repeat -240px -18px; +} +.tree-title { + font-size: 12px; + display: inline-block; + text-decoration: none; + vertical-align: top; + white-space: nowrap; + padding: 0 2px; + height: 18px; + line-height: 18px; +} +.tree-node-proxy { + font-size: 12px; + line-height: 20px; + padding: 0 2px 0 20px; + border-width: 1px; + border-style: solid; + z-index: 9900000; +} +.tree-dnd-icon { + display: inline-block; + position: absolute; + width: 16px; + height: 18px; + left: 2px; + top: 50%; + margin-top: -9px; +} +.tree-dnd-yes { + background: url('images/tree_icons.png') no-repeat -256px 0; +} +.tree-dnd-no { + background: url('images/tree_icons.png') no-repeat -256px -18px; +} +.tree-node-top { + border-top: 1px dotted red; +} +.tree-node-bottom { + border-bottom: 1px dotted red; +} +.tree-node-append .tree-title { + border: 1px dotted red; +} +.tree-editor { + border: 1px solid #ccc; + font-size: 12px; + height: 14px !important; + height: 18px; + line-height: 14px; + padding: 1px 2px; + width: 80px; + position: absolute; + top: 0; +} +.tree-node-proxy { + background-color: #fff; + color: #444; + border-color: #ddd; +} +.tree-node-hover { + background: #E6E6E6; + color: #444; +} +.tree-node-selected { + background: #CCE6FF; + color: #000; +} +.validatebox-invalid { + background-image: url('images/validatebox_warning.png'); + background-repeat: no-repeat; + background-position: right center; + border-color: #ffa8a8; + background-color: #fff3f3; + color: #000; +} +.tooltip { + position: absolute; + display: none; + z-index: 9900000; + outline: none; + opacity: 1; + filter: alpha(opacity=100); + padding: 5px; + border-width: 1px; + border-style: solid; + border-radius: 5px; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.tooltip-content { + font-size: 12px; +} +.tooltip-arrow-outer, +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + line-height: 0; + font-size: 0; + border-style: solid; + border-width: 6px; + border-color: transparent; + _border-color: tomato; + _filter: chroma(color=tomato); +} +.tooltip-right .tooltip-arrow-outer { + left: 0; + top: 50%; + margin: -6px 0 0 -13px; +} +.tooltip-right .tooltip-arrow { + left: 0; + top: 50%; + margin: -6px 0 0 -12px; +} +.tooltip-left .tooltip-arrow-outer { + right: 0; + top: 50%; + margin: -6px -13px 0 0; +} +.tooltip-left .tooltip-arrow { + right: 0; + top: 50%; + margin: -6px -12px 0 0; +} +.tooltip-top .tooltip-arrow-outer { + bottom: 0; + left: 50%; + margin: 0 0 -13px -6px; +} +.tooltip-top .tooltip-arrow { + bottom: 0; + left: 50%; + margin: 0 0 -12px -6px; +} +.tooltip-bottom .tooltip-arrow-outer { + top: 0; + left: 50%; + margin: -13px 0 0 -6px; +} +.tooltip-bottom .tooltip-arrow { + top: 0; + left: 50%; + margin: -12px 0 0 -6px; +} +.tooltip { + background-color: #fff; + border-color: #ddd; + color: #444; +} +.tooltip-right .tooltip-arrow-outer { + border-right-color: #ddd; +} +.tooltip-right .tooltip-arrow { + border-right-color: #fff; +} +.tooltip-left .tooltip-arrow-outer { + border-left-color: #ddd; +} +.tooltip-left .tooltip-arrow { + border-left-color: #fff; +} +.tooltip-top .tooltip-arrow-outer { + border-top-color: #ddd; +} +.tooltip-top .tooltip-arrow { + border-top-color: #fff; +} +.tooltip-bottom .tooltip-arrow-outer { + border-bottom-color: #ddd; +} +.tooltip-bottom .tooltip-arrow { + border-bottom-color: #fff; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/metro/images/accordion_arrows.png b/src/main/webapp/js/easyui-1.3.5/themes/metro/images/accordion_arrows.png new file mode 100644 index 00000000..720835f6 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/metro/images/accordion_arrows.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/metro/images/blank.gif b/src/main/webapp/js/easyui-1.3.5/themes/metro/images/blank.gif new file mode 100644 index 00000000..1d11fa9a Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/metro/images/blank.gif differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/metro/images/calendar_arrows.png b/src/main/webapp/js/easyui-1.3.5/themes/metro/images/calendar_arrows.png new file mode 100644 index 00000000..430c4ad6 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/metro/images/calendar_arrows.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/metro/images/combo_arrow.png b/src/main/webapp/js/easyui-1.3.5/themes/metro/images/combo_arrow.png new file mode 100644 index 00000000..2e59fb9f Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/metro/images/combo_arrow.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/metro/images/datagrid_icons.png b/src/main/webapp/js/easyui-1.3.5/themes/metro/images/datagrid_icons.png new file mode 100644 index 00000000..747ac4d1 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/metro/images/datagrid_icons.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/metro/images/datebox_arrow.png b/src/main/webapp/js/easyui-1.3.5/themes/metro/images/datebox_arrow.png new file mode 100644 index 00000000..783c8335 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/metro/images/datebox_arrow.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/metro/images/layout_arrows.png b/src/main/webapp/js/easyui-1.3.5/themes/metro/images/layout_arrows.png new file mode 100644 index 00000000..6f416542 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/metro/images/layout_arrows.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/metro/images/linkbutton_bg.png b/src/main/webapp/js/easyui-1.3.5/themes/metro/images/linkbutton_bg.png new file mode 100644 index 00000000..fc66bd2c Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/metro/images/linkbutton_bg.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/metro/images/loading.gif b/src/main/webapp/js/easyui-1.3.5/themes/metro/images/loading.gif new file mode 100644 index 00000000..68f01d04 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/metro/images/loading.gif differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/metro/images/menu_arrows.png b/src/main/webapp/js/easyui-1.3.5/themes/metro/images/menu_arrows.png new file mode 100644 index 00000000..b986842e Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/metro/images/menu_arrows.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/metro/images/messager_icons.png b/src/main/webapp/js/easyui-1.3.5/themes/metro/images/messager_icons.png new file mode 100644 index 00000000..62c18c13 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/metro/images/messager_icons.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/metro/images/pagination_icons.png b/src/main/webapp/js/easyui-1.3.5/themes/metro/images/pagination_icons.png new file mode 100644 index 00000000..616f0bdd Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/metro/images/pagination_icons.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/metro/images/panel_tools.png b/src/main/webapp/js/easyui-1.3.5/themes/metro/images/panel_tools.png new file mode 100644 index 00000000..fe682ef8 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/metro/images/panel_tools.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/metro/images/searchbox_button.png b/src/main/webapp/js/easyui-1.3.5/themes/metro/images/searchbox_button.png new file mode 100644 index 00000000..6dd19315 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/metro/images/searchbox_button.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/metro/images/slider_handle.png b/src/main/webapp/js/easyui-1.3.5/themes/metro/images/slider_handle.png new file mode 100644 index 00000000..b9802bae Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/metro/images/slider_handle.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/metro/images/spinner_arrows.png b/src/main/webapp/js/easyui-1.3.5/themes/metro/images/spinner_arrows.png new file mode 100644 index 00000000..b68592de Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/metro/images/spinner_arrows.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/metro/images/tabs_icons.png b/src/main/webapp/js/easyui-1.3.5/themes/metro/images/tabs_icons.png new file mode 100644 index 00000000..4d29966d Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/metro/images/tabs_icons.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/metro/images/tree_icons.png b/src/main/webapp/js/easyui-1.3.5/themes/metro/images/tree_icons.png new file mode 100644 index 00000000..e9be4f3a Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/metro/images/tree_icons.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/metro/images/validatebox_warning.png b/src/main/webapp/js/easyui-1.3.5/themes/metro/images/validatebox_warning.png new file mode 100644 index 00000000..2b3d4f05 Binary files /dev/null and b/src/main/webapp/js/easyui-1.3.5/themes/metro/images/validatebox_warning.png differ diff --git a/src/main/webapp/js/easyui-1.3.5/themes/metro/layout.css b/src/main/webapp/js/easyui-1.3.5/themes/metro/layout.css new file mode 100644 index 00000000..7057fb2b --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/metro/layout.css @@ -0,0 +1,91 @@ +.layout { + position: relative; + overflow: hidden; + margin: 0; + padding: 0; + z-index: 0; +} +.layout-panel { + position: absolute; + overflow: hidden; +} +.layout-panel-east, +.layout-panel-west { + z-index: 2; +} +.layout-panel-north, +.layout-panel-south { + z-index: 3; +} +.layout-expand { + position: absolute; + padding: 0px; + font-size: 1px; + cursor: pointer; + z-index: 1; +} +.layout-expand .panel-header, +.layout-expand .panel-body { + background: transparent; + filter: none; + overflow: hidden; +} +.layout-expand .panel-header { + border-bottom-width: 0px; +} +.layout-split-proxy-h, +.layout-split-proxy-v { + position: absolute; + font-size: 1px; + display: none; + z-index: 5; +} +.layout-split-proxy-h { + width: 5px; + cursor: e-resize; +} +.layout-split-proxy-v { + height: 5px; + cursor: n-resize; +} +.layout-mask { + position: absolute; + background: #fafafa; + filter: alpha(opacity=10); + opacity: 0.10; + z-index: 4; +} +.layout-button-up { + background: url('images/layout_arrows.png') no-repeat -16px -16px; +} +.layout-button-down { + background: url('images/layout_arrows.png') no-repeat -16px 0; +} +.layout-button-left { + background: url('images/layout_arrows.png') no-repeat 0 0; +} +.layout-button-right { + background: url('images/layout_arrows.png') no-repeat 0 -16px; +} +.layout-split-proxy-h, +.layout-split-proxy-v { + background-color: #b3b3b3; +} +.layout-split-north { + border-bottom: 5px solid #fff; +} +.layout-split-south { + border-top: 5px solid #fff; +} +.layout-split-east { + border-left: 5px solid #fff; +} +.layout-split-west { + border-right: 5px solid #fff; +} +.layout-expand { + background-color: #ffffff; +} +.layout-expand-over { + background-color: #ffffff; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/metro/linkbutton.css b/src/main/webapp/js/easyui-1.3.5/themes/metro/linkbutton.css new file mode 100644 index 00000000..073a7294 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/metro/linkbutton.css @@ -0,0 +1,152 @@ +a.l-btn { + background-position: right 0; + text-decoration: none; + display: inline-block; + zoom: 1; + height: 24px; + padding-right: 18px; + cursor: pointer; + outline: none; +} +a.l-btn-plain { + border: 0; + padding: 1px 6px 1px 1px; +} +a.l-btn-disabled { + color: #ccc; + opacity: 0.5; + filter: alpha(opacity=50); + cursor: default; +} +a.l-btn span.l-btn-left { + display: inline-block; + background-position: 0 -48px; + padding: 0 0 0 18px; + line-height: 24px; + height: 24px; +} +a.l-btn-plain span.l-btn-left { + padding-left: 5px; +} +a.l-btn span span.l-btn-text { + position: relative; + display: inline-block; + vertical-align: top; + top: 4px; + width: auto; + height: 16px; + line-height: 16px; + font-size: 12px; + padding: 0; + margin: 0; +} +a.l-btn span span.l-btn-icon-left { + padding: 0 0 0 20px; + background-position: left center; +} +a.l-btn span span.l-btn-icon-right { + padding: 0 20px 0 0; + background-position: right center; +} +a.l-btn span span span.l-btn-empty { + display: inline-block; + margin: 0; + padding: 0; + width: 16px; +} +a:hover.l-btn { + background-position: right -24px; + outline: none; + text-decoration: none; +} +a:hover.l-btn span.l-btn-left { + background-position: 0 bottom; +} +a:hover.l-btn-plain { + padding: 0 5px 0 0; +} +a:hover.l-btn-disabled { + background-position: right 0; +} +a:hover.l-btn-disabled span.l-btn-left { + background-position: 0 -48px; +} +a.l-btn .l-btn-focus { + outline: #0000FF dotted thin; +} +a.l-btn { + color: #777; + background-image: url('images/linkbutton_bg.png'); + background-repeat: no-repeat; + background: #ffffff; + background-repeat: repeat-x; + border: 1px solid #dddddd; + background: -webkit-linear-gradient(top,#ffffff 0,#ffffff 100%); + background: -moz-linear-gradient(top,#ffffff 0,#ffffff 100%); + background: -o-linear-gradient(top,#ffffff 0,#ffffff 100%); + background: linear-gradient(to bottom,#ffffff 0,#ffffff 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#ffffff,GradientType=0); + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +a.l-btn span.l-btn-left { + background-image: url('images/linkbutton_bg.png'); + background-repeat: no-repeat; + background-image: none; +} +a:hover.l-btn { + background: #E6E6E6; + color: #444; + border: 1px solid #ddd; + filter: none; +} +a.l-btn-plain, +a.l-btn-plain span.l-btn-left { + background: transparent; + border: 0; + filter: none; +} +a:hover.l-btn-plain { + background: #E6E6E6; + color: #444; + border: 1px solid #ddd; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +a.l-btn-disabled, +a:hover.l-btn-disabled { + color: #777; + filter: alpha(opacity=50); + background: #ffffff; + color: #777; + background: -webkit-linear-gradient(top,#ffffff 0,#ffffff 100%); + background: -moz-linear-gradient(top,#ffffff 0,#ffffff 100%); + background: -o-linear-gradient(top,#ffffff 0,#ffffff 100%); + background: linear-gradient(to bottom,#ffffff 0,#ffffff 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#ffffff,GradientType=0); + filter: alpha(opacity=50) progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#ffffff,GradientType=0); +} +a.l-btn-plain-disabled, +a:hover.l-btn-plain-disabled { + background: transparent; + filter: alpha(opacity=50); +} +a.l-btn-selected, +a:hover.l-btn-selected { + background-position: right -24px; + background: #ddd; + filter: none; +} +a.l-btn-selected span.l-btn-left, +a:hover.l-btn-selected span.l-btn-left { + background-position: 0 bottom; + background-image: none; +} +a.l-btn-plain-selected, +a:hover.l-btn-plain-selected { + background: #ddd; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/metro/menu.css b/src/main/webapp/js/easyui-1.3.5/themes/metro/menu.css new file mode 100644 index 00000000..5012a506 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/metro/menu.css @@ -0,0 +1,109 @@ +.menu { + position: absolute; + margin: 0; + padding: 2px; + border-width: 1px; + border-style: solid; + overflow: hidden; +} +.menu-item { + position: relative; + margin: 0; + padding: 0; + overflow: hidden; + white-space: nowrap; + cursor: pointer; + border-width: 1px; + border-style: solid; +} +.menu-text { + height: 20px; + line-height: 20px; + float: left; + padding-left: 28px; +} +.menu-icon { + position: absolute; + width: 16px; + height: 16px; + left: 2px; + top: 50%; + margin-top: -8px; +} +.menu-rightarrow { + position: absolute; + width: 16px; + height: 16px; + right: 0; + top: 50%; + margin-top: -8px; +} +.menu-line { + position: absolute; + left: 26px; + top: 0; + height: 2000px; + font-size: 1px; +} +.menu-sep { + margin: 3px 0px 3px 25px; + font-size: 1px; +} +.menu-active { + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.menu-item-disabled { + opacity: 0.5; + filter: alpha(opacity=50); + cursor: default; +} +.menu-text, +.menu-text span { + font-size: 12px; +} +.menu-shadow { + position: absolute; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; + background: #eee; + -moz-box-shadow: 2px 2px 3px #ededed; + -webkit-box-shadow: 2px 2px 3px #ededed; + box-shadow: 2px 2px 3px #ededed; + filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2); +} +.menu-rightarrow { + background: url('images/menu_arrows.png') no-repeat -32px center; +} +.menu-line { + border-left: 1px solid #ddd; + border-right: 1px solid #fff; +} +.menu-sep { + border-top: 1px solid #ddd; + border-bottom: 1px solid #fff; +} +.menu { + background-color: #ffffff; + border-color: #ddd; + color: #444; +} +.menu-content { + background: #fff; +} +.menu-item { + border-color: transparent; + _border-color: #ffffff; +} +.menu-active { + border-color: #ddd; + color: #444; + background: #E6E6E6; +} +.menu-active-disabled { + border-color: transparent; + background: transparent; + color: #444; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/metro/menubutton.css b/src/main/webapp/js/easyui-1.3.5/themes/metro/menubutton.css new file mode 100644 index 00000000..53d830e8 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/metro/menubutton.css @@ -0,0 +1,31 @@ +.m-btn-downarrow { + display: inline-block; + width: 16px; + height: 16px; + line-height: 16px; + font-size: 12px; + _vertical-align: middle; +} +a.m-btn-active { + background-position: bottom right; +} +a.m-btn-active span.l-btn-left { + background-position: bottom left; +} +a.m-btn-plain-active { + background: transparent; + padding: 0 5px 0 0; + border-width: 1px; + border-style: solid; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.m-btn-downarrow { + background: url('images/menu_arrows.png') no-repeat 2px center; +} +a.m-btn-plain-active { + border-color: #ddd; + background-color: #E6E6E6; + color: #444; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/metro/messager.css b/src/main/webapp/js/easyui-1.3.5/themes/metro/messager.css new file mode 100644 index 00000000..3b9ac40c --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/metro/messager.css @@ -0,0 +1,37 @@ +.messager-body { + padding: 10px; + overflow: hidden; +} +.messager-button { + text-align: center; + padding-top: 10px; +} +.messager-icon { + float: left; + width: 32px; + height: 32px; + margin: 0 10px 10px 0; +} +.messager-error { + background: url('images/messager_icons.png') no-repeat scroll -64px 0; +} +.messager-info { + background: url('images/messager_icons.png') no-repeat scroll 0 0; +} +.messager-question { + background: url('images/messager_icons.png') no-repeat scroll -32px 0; +} +.messager-warning { + background: url('images/messager_icons.png') no-repeat scroll -96px 0; +} +.messager-progress { + padding: 10px; +} +.messager-p-msg { + margin-bottom: 5px; +} +.messager-body .messager-input { + width: 100%; + padding: 1px 0; + border: 1px solid #ddd; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/metro/pagination.css b/src/main/webapp/js/easyui-1.3.5/themes/metro/pagination.css new file mode 100644 index 00000000..53599242 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/metro/pagination.css @@ -0,0 +1,79 @@ +.pagination { + zoom: 1; +} +.pagination table { + float: left; + height: 30px; +} +.pagination td { + border: 0; +} +.pagination-btn-separator { + float: left; + height: 24px; + border-left: 1px solid #ddd; + border-right: 1px solid #fff; + margin: 3px 1px; +} +.pagination .pagination-num { + border-width: 1px; + border-style: solid; + margin: 0 2px; + padding: 2px; + width: 2em; + height: auto; +} +.pagination-page-list { + margin: 0px 6px; + padding: 1px 2px; + width: auto; + height: auto; + border-width: 1px; + border-style: solid; +} +.pagination-info { + float: right; + margin: 0 6px 0 0; + padding: 0; + height: 30px; + line-height: 30px; + font-size: 12px; +} +.pagination span { + font-size: 12px; +} +a.pagination-link { + padding: 1px; +} +a.pagination-link span.l-btn-left { + padding-left: 0; +} +a.pagination-link span span.l-btn-text { + width: 24px; + text-align: center; +} +a:hover.pagination-link { + padding: 0; +} +.pagination-first { + background: url('images/pagination_icons.png') no-repeat 0 center; +} +.pagination-prev { + background: url('images/pagination_icons.png') no-repeat -16px center; +} +.pagination-next { + background: url('images/pagination_icons.png') no-repeat -32px center; +} +.pagination-last { + background: url('images/pagination_icons.png') no-repeat -48px center; +} +.pagination-load { + background: url('images/pagination_icons.png') no-repeat -64px center; +} +.pagination-loading { + background: url('images/loading.gif') no-repeat center center; +} +.pagination-page-list, +.pagination .pagination-num { + border-color: #ddd; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/metro/panel.css b/src/main/webapp/js/easyui-1.3.5/themes/metro/panel.css new file mode 100644 index 00000000..d96a4809 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/metro/panel.css @@ -0,0 +1,125 @@ +.panel { + overflow: hidden; + text-align: left; + margin: 0; + border: 0; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.panel-header, +.panel-body { + border-width: 1px; + border-style: solid; +} +.panel-header { + padding: 5px; + position: relative; +} +.panel-title { + background: url('images/blank.gif') no-repeat; +} +.panel-header-noborder { + border-width: 0 0 1px 0; +} +.panel-body { + overflow: auto; + border-top-width: 0; + padding: 0; +} +.panel-body-noheader { + border-top-width: 1px; +} +.panel-body-noborder { + border-width: 0px; +} +.panel-with-icon { + padding-left: 18px; +} +.panel-icon, +.panel-tool { + position: absolute; + top: 50%; + margin-top: -8px; + height: 16px; + overflow: hidden; +} +.panel-icon { + left: 5px; + width: 16px; +} +.panel-tool { + right: 5px; + width: auto; +} +.panel-tool a { + display: inline-block; + width: 16px; + height: 16px; + opacity: 0.6; + filter: alpha(opacity=60); + margin: 0 0 0 2px; + vertical-align: top; +} +.panel-tool a:hover { + opacity: 1; + filter: alpha(opacity=100); + background-color: #E6E6E6; + -moz-border-radius: -2px -2px -2px -2px; + -webkit-border-radius: -2px -2px -2px -2px; + border-radius: -2px -2px -2px -2px; +} +.panel-loading { + padding: 11px 0px 10px 30px; +} +.panel-noscroll { + overflow: hidden; +} +.panel-fit, +.panel-fit body { + height: 100%; + margin: 0; + padding: 0; + border: 0; + overflow: hidden; +} +.panel-loading { + background: url('images/loading.gif') no-repeat 10px 10px; +} +.panel-tool-close { + background: url('images/panel_tools.png') no-repeat -16px 0px; +} +.panel-tool-min { + background: url('images/panel_tools.png') no-repeat 0px 0px; +} +.panel-tool-max { + background: url('images/panel_tools.png') no-repeat 0px -16px; +} +.panel-tool-restore { + background: url('images/panel_tools.png') no-repeat -16px -16px; +} +.panel-tool-collapse { + background: url('images/panel_tools.png') no-repeat -32px 0; +} +.panel-tool-expand { + background: url('images/panel_tools.png') no-repeat -32px -16px; +} +.panel-header, +.panel-body { + border-color: #ddd; +} +.panel-header { + background-color: #ffffff; +} +.panel-body { + background-color: #fff; + color: #444; + font-size: 12px; +} +.panel-title { + font-size: 12px; + font-weight: bold; + color: #777; + height: 16px; + line-height: 16px; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/metro/progressbar.css b/src/main/webapp/js/easyui-1.3.5/themes/metro/progressbar.css new file mode 100644 index 00000000..7721f1bf --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/metro/progressbar.css @@ -0,0 +1,32 @@ +.progressbar { + border-width: 1px; + border-style: solid; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; + overflow: hidden; + position: relative; +} +.progressbar-text { + text-align: center; + position: absolute; +} +.progressbar-value { + position: relative; + overflow: hidden; + width: 0; + -moz-border-radius: 0px 0 0 0px; + -webkit-border-radius: 0px 0 0 0px; + border-radius: 0px 0 0 0px; +} +.progressbar { + border-color: #ddd; +} +.progressbar-text { + color: #444; + font-size: 12px; +} +.progressbar-value .progressbar-text { + background-color: #CCE6FF; + color: #000; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/metro/propertygrid.css b/src/main/webapp/js/easyui-1.3.5/themes/metro/propertygrid.css new file mode 100644 index 00000000..f5ae0c4e --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/metro/propertygrid.css @@ -0,0 +1,28 @@ +.propertygrid .datagrid-view1 .datagrid-body td { + padding-bottom: 1px; + border-width: 0 1px 0 0; +} +.propertygrid .datagrid-group { + height: 21px; + overflow: hidden; + border-width: 0 0 1px 0; + border-style: solid; +} +.propertygrid .datagrid-group span { + font-weight: bold; +} +.propertygrid .datagrid-view1 .datagrid-body td { + border-color: #ddd; +} +.propertygrid .datagrid-view1 .datagrid-group { + border-color: #ffffff; +} +.propertygrid .datagrid-view2 .datagrid-group { + border-color: #ddd; +} +.propertygrid .datagrid-group, +.propertygrid .datagrid-view1 .datagrid-body, +.propertygrid .datagrid-view1 .datagrid-row-over, +.propertygrid .datagrid-view1 .datagrid-row-selected { + background: #ffffff; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/metro/searchbox.css b/src/main/webapp/js/easyui-1.3.5/themes/metro/searchbox.css new file mode 100644 index 00000000..7fe2d6da --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/metro/searchbox.css @@ -0,0 +1,83 @@ +.searchbox { + display: inline-block; + white-space: nowrap; + margin: 0; + padding: 0; + border-width: 1px; + border-style: solid; + overflow: hidden; +} +.searchbox .searchbox-text { + font-size: 12px; + border: 0; + margin: 0; + padding: 0; + line-height: 20px; + height: 20px; + *margin-top: -1px; + *height: 18px; + *line-height: 18px; + _height: 18px; + _line-height: 18px; + vertical-align: baseline; +} +.searchbox .searchbox-prompt { + font-size: 12px; + color: #ccc; +} +.searchbox-button { + width: 18px; + height: 20px; + overflow: hidden; + display: inline-block; + vertical-align: top; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.searchbox-button-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.searchbox a.l-btn-plain { + height: 20px; + border: 0; + padding: 0 6px 0 0; + vertical-align: top; + opacity: 0.6; + filter: alpha(opacity=60); + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox a.l-btn .l-btn-left { + padding: 0 0 0 4px; +} +.searchbox a.l-btn .l-btn-text { + position: static; + vertical-align: top; +} +.searchbox a.l-btn-plain:hover { + border: 0; + padding: 0 6px 0 0; + opacity: 1.0; + filter: alpha(opacity=100); + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox a.m-btn-plain-active { + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox-button { + background: url('images/searchbox_button.png') no-repeat center center; +} +.searchbox { + border-color: #ddd; + background-color: #fff; +} +.searchbox a.l-btn-plain { + background: #ffffff; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/metro/slider.css b/src/main/webapp/js/easyui-1.3.5/themes/metro/slider.css new file mode 100644 index 00000000..a0907f31 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/metro/slider.css @@ -0,0 +1,100 @@ +.slider-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.slider-h { + height: 22px; +} +.slider-v { + width: 22px; +} +.slider-inner { + position: relative; + height: 6px; + top: 7px; + border-width: 1px; + border-style: solid; + border-radius: 0px; +} +.slider-handle { + position: absolute; + display: block; + outline: none; + width: 20px; + height: 20px; + top: -7px; + margin-left: -10px; +} +.slider-tip { + position: absolute; + display: inline-block; + line-height: 12px; + font-size: 12px; + white-space: nowrap; + top: -22px; +} +.slider-rule { + position: relative; + top: 15px; +} +.slider-rule span { + position: absolute; + display: inline-block; + font-size: 0; + height: 5px; + border-width: 0 0 0 1px; + border-style: solid; +} +.slider-rulelabel { + position: relative; + top: 20px; +} +.slider-rulelabel span { + position: absolute; + display: inline-block; + font-size: 12px; +} +.slider-v .slider-inner { + width: 6px; + left: 7px; + top: 0; + float: left; +} +.slider-v .slider-handle { + left: 3px; + margin-top: -10px; +} +.slider-v .slider-tip { + left: -10px; + margin-top: -6px; +} +.slider-v .slider-rule { + float: left; + top: 0; + left: 16px; +} +.slider-v .slider-rule span { + width: 5px; + height: 'auto'; + border-left: 0; + border-width: 1px 0 0 0; + border-style: solid; +} +.slider-v .slider-rulelabel { + float: left; + top: 0; + left: 23px; +} +.slider-handle { + background: url('images/slider_handle.png') no-repeat; +} +.slider-inner { + border-color: #ddd; + background: #ffffff; +} +.slider-rule span { + border-color: #ddd; +} +.slider-rulelabel span { + color: #444; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/metro/spinner.css b/src/main/webapp/js/easyui-1.3.5/themes/metro/spinner.css new file mode 100644 index 00000000..8676724c --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/metro/spinner.css @@ -0,0 +1,59 @@ +.spinner { + display: inline-block; + white-space: nowrap; + margin: 0; + padding: 0; + border-width: 1px; + border-style: solid; + overflow: hidden; + vertical-align: middle; +} +.spinner .spinner-text { + font-size: 12px; + border: 0px; + line-height: 20px; + height: 20px; + margin: 0; + padding: 0 2px; + *margin-top: -1px; + *height: 18px; + *line-height: 18px; + _height: 18px; + _line-height: 18px; + vertical-align: baseline; +} +.spinner-arrow { + display: inline-block; + overflow: hidden; + vertical-align: top; + margin: 0; + padding: 0; +} +.spinner-arrow-up, +.spinner-arrow-down { + opacity: 0.6; + filter: alpha(opacity=60); + display: block; + font-size: 1px; + width: 18px; + height: 10px; +} +.spinner-arrow-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.spinner-arrow-up { + background: url('images/spinner_arrows.png') no-repeat 1px center; +} +.spinner-arrow-down { + background: url('images/spinner_arrows.png') no-repeat -15px center; +} +.spinner { + border-color: #ddd; +} +.spinner-arrow { + background-color: #ffffff; +} +.spinner-arrow-hover { + background-color: #E6E6E6; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/metro/splitbutton.css b/src/main/webapp/js/easyui-1.3.5/themes/metro/splitbutton.css new file mode 100644 index 00000000..d98239b7 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/metro/splitbutton.css @@ -0,0 +1,43 @@ +.s-btn-downarrow { + display: inline-block; + margin: 0 0 0 4px; + padding: 0 0 0 1px; + width: 14px; + height: 16px; + line-height: 16px; + border-width: 0; + border-style: solid; + font-size: 12px; + _vertical-align: middle; +} +a.s-btn-active { + background-position: bottom right; +} +a.s-btn-active span.l-btn-left { + background-position: bottom left; +} +a.s-btn-plain-active { + background: transparent; + padding: 0 5px 0 0; + border-width: 1px; + border-style: solid; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.s-btn-downarrow { + background: url('images/menu_arrows.png') no-repeat 2px center; + border-color: #b3b3b3; +} +a:hover.l-btn .s-btn-downarrow, +a.s-btn-active .s-btn-downarrow, +a.s-btn-plain-active .s-btn-downarrow { + background-position: 1px center; + padding: 0; + border-width: 0 0 0 1px; +} +a.s-btn-plain-active { + border-color: #ddd; + background-color: #E6E6E6; + color: #444; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/metro/tabs.css b/src/main/webapp/js/easyui-1.3.5/themes/metro/tabs.css new file mode 100644 index 00000000..7c957985 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/metro/tabs.css @@ -0,0 +1,320 @@ +.tabs-container { + overflow: hidden; +} +.tabs-header { + border-width: 1px; + border-style: solid; + border-bottom-width: 0; + position: relative; + padding: 0; + padding-top: 2px; + overflow: hidden; +} +.tabs-header-plain { + border: 0; + background: transparent; +} +.tabs-scroller-left, +.tabs-scroller-right { + position: absolute; + top: auto; + bottom: 0; + width: 18px; + font-size: 1px; + display: none; + cursor: pointer; + border-width: 1px; + border-style: solid; +} +.tabs-scroller-left { + left: 0; +} +.tabs-scroller-right { + right: 0; +} +.tabs-tool { + position: absolute; + bottom: 0; + padding: 1px; + overflow: hidden; + border-width: 1px; + border-style: solid; +} +.tabs-header-plain .tabs-tool { + padding: 0 1px; +} +.tabs-wrap { + position: relative; + left: 0; + overflow: hidden; + width: 100%; + margin: 0; + padding: 0; +} +.tabs-scrolling { + margin-left: 18px; + margin-right: 18px; +} +.tabs-disabled { + opacity: 0.3; + filter: alpha(opacity=30); +} +.tabs { + list-style-type: none; + height: 26px; + margin: 0px; + padding: 0px; + padding-left: 4px; + width: 5000px; + border-style: solid; + border-width: 0 0 1px 0; +} +.tabs li { + float: left; + display: inline-block; + margin: 0 4px -1px 0; + padding: 0; + position: relative; + border: 0; +} +.tabs li a.tabs-inner { + display: inline-block; + text-decoration: none; + margin: 0; + padding: 0 10px; + height: 25px; + line-height: 25px; + text-align: center; + white-space: nowrap; + border-width: 1px; + border-style: solid; + -moz-border-radius: 0px 0px 0 0; + -webkit-border-radius: 0px 0px 0 0; + border-radius: 0px 0px 0 0; +} +.tabs li.tabs-selected a.tabs-inner { + font-weight: bold; + outline: none; +} +.tabs li.tabs-selected a:hover.tabs-inner { + cursor: default; + pointer: default; +} +.tabs li a.tabs-close, +.tabs-p-tool { + position: absolute; + font-size: 1px; + display: block; + height: 12px; + padding: 0; + top: 50%; + margin-top: -6px; + overflow: hidden; +} +.tabs li a.tabs-close { + width: 12px; + right: 5px; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tabs-p-tool { + right: 16px; +} +.tabs-p-tool a { + display: inline-block; + font-size: 1px; + width: 12px; + height: 12px; + margin: 0; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tabs li a:hover.tabs-close, +.tabs-p-tool a:hover { + opacity: 1; + filter: alpha(opacity=100); + cursor: hand; + cursor: pointer; +} +.tabs-with-icon { + padding-left: 18px; +} +.tabs-icon { + position: absolute; + width: 16px; + height: 16px; + left: 10px; + top: 50%; + margin-top: -8px; +} +.tabs-title { + font-size: 12px; +} +.tabs-closable { + padding-right: 8px; +} +.tabs-panels { + margin: 0px; + padding: 0px; + border-width: 1px; + border-style: solid; + border-top-width: 0; + overflow: hidden; +} +.tabs-header-bottom { + border-width: 0 1px 1px 1px; + padding: 0 0 2px 0; +} +.tabs-header-bottom .tabs { + border-width: 1px 0 0 0; +} +.tabs-header-bottom .tabs li { + margin: -1px 4px 0 0; +} +.tabs-header-bottom .tabs li a.tabs-inner { + -moz-border-radius: 0 0 0px 0px; + -webkit-border-radius: 0 0 0px 0px; + border-radius: 0 0 0px 0px; +} +.tabs-header-bottom .tabs-tool { + top: 0; +} +.tabs-header-bottom .tabs-scroller-left, +.tabs-header-bottom .tabs-scroller-right { + top: 0; + bottom: auto; +} +.tabs-panels-top { + border-width: 1px 1px 0 1px; +} +.tabs-header-left { + float: left; + border-width: 1px 0 1px 1px; + padding: 0; +} +.tabs-header-right { + float: right; + border-width: 1px 1px 1px 0; + padding: 0; +} +.tabs-header-left .tabs-wrap, +.tabs-header-right .tabs-wrap { + height: 100%; +} +.tabs-header-left .tabs { + height: 100%; + padding: 4px 0 0 4px; + border-width: 0 1px 0 0; +} +.tabs-header-right .tabs { + height: 100%; + padding: 4px 4px 0 0; + border-width: 0 0 0 1px; +} +.tabs-header-left .tabs li, +.tabs-header-right .tabs li { + display: block; + width: 100%; + position: relative; +} +.tabs-header-left .tabs li { + left: auto; + right: 0; + margin: 0 -1px 4px 0; + float: right; +} +.tabs-header-right .tabs li { + left: 0; + right: auto; + margin: 0 0 4px -1px; + float: left; +} +.tabs-header-left .tabs li a.tabs-inner { + display: block; + text-align: left; + -moz-border-radius: 0px 0 0 0px; + -webkit-border-radius: 0px 0 0 0px; + border-radius: 0px 0 0 0px; +} +.tabs-header-right .tabs li a.tabs-inner { + display: block; + text-align: left; + -moz-border-radius: 0 0px 0px 0; + -webkit-border-radius: 0 0px 0px 0; + border-radius: 0 0px 0px 0; +} +.tabs-panels-right { + float: right; + border-width: 1px 1px 1px 0; +} +.tabs-panels-left { + float: left; + border-width: 1px 0 1px 1px; +} +.tabs-header-noborder, +.tabs-panels-noborder { + border: 0px; +} +.tabs-header-plain { + border: 0px; + background: transparent; +} +.tabs-scroller-left { + background: #ffffff url('images/tabs_icons.png') no-repeat 1px center; +} +.tabs-scroller-right { + background: #ffffff url('images/tabs_icons.png') no-repeat -15px center; +} +.tabs li a.tabs-close { + background: url('images/tabs_icons.png') no-repeat -34px center; +} +.tabs li a.tabs-inner:hover { + background: #E6E6E6; + color: #444; + filter: none; +} +.tabs li.tabs-selected a.tabs-inner { + background-color: #fff; + color: #777; +} +.tabs li a.tabs-inner { + color: #777; + background-color: #ffffff; +} +.tabs-header, +.tabs-tool { + background-color: #ffffff; +} +.tabs-header-plain { + background: transparent; +} +.tabs-header, +.tabs-scroller-left, +.tabs-scroller-right, +.tabs-tool, +.tabs, +.tabs-panels, +.tabs li a.tabs-inner, +.tabs li.tabs-selected a.tabs-inner, +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner, +.tabs-header-left .tabs li.tabs-selected a.tabs-inner, +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + border-color: #ddd; +} +.tabs-p-tool a:hover, +.tabs li a:hover.tabs-close, +.tabs-scroller-over { + background-color: #E6E6E6; +} +.tabs li.tabs-selected a.tabs-inner { + border-bottom: 1px solid #fff; +} +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner { + border-top: 1px solid #fff; +} +.tabs-header-left .tabs li.tabs-selected a.tabs-inner { + border-right: 1px solid #fff; +} +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + border-left: 1px solid #fff; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/metro/tooltip.css b/src/main/webapp/js/easyui-1.3.5/themes/metro/tooltip.css new file mode 100644 index 00000000..8382539e --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/metro/tooltip.css @@ -0,0 +1,100 @@ +.tooltip { + position: absolute; + display: none; + z-index: 9900000; + outline: none; + opacity: 1; + filter: alpha(opacity=100); + padding: 5px; + border-width: 1px; + border-style: solid; + border-radius: 5px; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.tooltip-content { + font-size: 12px; +} +.tooltip-arrow-outer, +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + line-height: 0; + font-size: 0; + border-style: solid; + border-width: 6px; + border-color: transparent; + _border-color: tomato; + _filter: chroma(color=tomato); +} +.tooltip-right .tooltip-arrow-outer { + left: 0; + top: 50%; + margin: -6px 0 0 -13px; +} +.tooltip-right .tooltip-arrow { + left: 0; + top: 50%; + margin: -6px 0 0 -12px; +} +.tooltip-left .tooltip-arrow-outer { + right: 0; + top: 50%; + margin: -6px -13px 0 0; +} +.tooltip-left .tooltip-arrow { + right: 0; + top: 50%; + margin: -6px -12px 0 0; +} +.tooltip-top .tooltip-arrow-outer { + bottom: 0; + left: 50%; + margin: 0 0 -13px -6px; +} +.tooltip-top .tooltip-arrow { + bottom: 0; + left: 50%; + margin: 0 0 -12px -6px; +} +.tooltip-bottom .tooltip-arrow-outer { + top: 0; + left: 50%; + margin: -13px 0 0 -6px; +} +.tooltip-bottom .tooltip-arrow { + top: 0; + left: 50%; + margin: -12px 0 0 -6px; +} +.tooltip { + background-color: #fff; + border-color: #ddd; + color: #444; +} +.tooltip-right .tooltip-arrow-outer { + border-right-color: #ddd; +} +.tooltip-right .tooltip-arrow { + border-right-color: #fff; +} +.tooltip-left .tooltip-arrow-outer { + border-left-color: #ddd; +} +.tooltip-left .tooltip-arrow { + border-left-color: #fff; +} +.tooltip-top .tooltip-arrow-outer { + border-top-color: #ddd; +} +.tooltip-top .tooltip-arrow { + border-top-color: #fff; +} +.tooltip-bottom .tooltip-arrow-outer { + border-bottom-color: #ddd; +} +.tooltip-bottom .tooltip-arrow { + border-bottom-color: #fff; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/metro/tree.css b/src/main/webapp/js/easyui-1.3.5/themes/metro/tree.css new file mode 100644 index 00000000..a2ec6931 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/metro/tree.css @@ -0,0 +1,157 @@ +.tree { + margin: 0; + padding: 0; + list-style-type: none; +} +.tree li { + white-space: nowrap; +} +.tree li ul { + list-style-type: none; + margin: 0; + padding: 0; +} +.tree-node { + height: 18px; + white-space: nowrap; + cursor: pointer; +} +.tree-hit { + cursor: pointer; +} +.tree-expanded, +.tree-collapsed, +.tree-folder, +.tree-file, +.tree-checkbox, +.tree-indent { + display: inline-block; + width: 16px; + height: 18px; + vertical-align: top; + overflow: hidden; +} +.tree-expanded { + background: url('images/tree_icons.png') no-repeat -18px 0px; +} +.tree-expanded-hover { + background: url('images/tree_icons.png') no-repeat -50px 0px; +} +.tree-collapsed { + background: url('images/tree_icons.png') no-repeat 0px 0px; +} +.tree-collapsed-hover { + background: url('images/tree_icons.png') no-repeat -32px 0px; +} +.tree-lines .tree-expanded, +.tree-lines .tree-root-first .tree-expanded { + background: url('images/tree_icons.png') no-repeat -144px 0; +} +.tree-lines .tree-collapsed, +.tree-lines .tree-root-first .tree-collapsed { + background: url('images/tree_icons.png') no-repeat -128px 0; +} +.tree-lines .tree-node-last .tree-expanded, +.tree-lines .tree-root-one .tree-expanded { + background: url('images/tree_icons.png') no-repeat -80px 0; +} +.tree-lines .tree-node-last .tree-collapsed, +.tree-lines .tree-root-one .tree-collapsed { + background: url('images/tree_icons.png') no-repeat -64px 0; +} +.tree-line { + background: url('images/tree_icons.png') no-repeat -176px 0; +} +.tree-join { + background: url('images/tree_icons.png') no-repeat -192px 0; +} +.tree-joinbottom { + background: url('images/tree_icons.png') no-repeat -160px 0; +} +.tree-folder { + background: url('images/tree_icons.png') no-repeat -208px 0; +} +.tree-folder-open { + background: url('images/tree_icons.png') no-repeat -224px 0; +} +.tree-file { + background: url('images/tree_icons.png') no-repeat -240px 0; +} +.tree-loading { + background: url('images/loading.gif') no-repeat center center; +} +.tree-checkbox0 { + background: url('images/tree_icons.png') no-repeat -208px -18px; +} +.tree-checkbox1 { + background: url('images/tree_icons.png') no-repeat -224px -18px; +} +.tree-checkbox2 { + background: url('images/tree_icons.png') no-repeat -240px -18px; +} +.tree-title { + font-size: 12px; + display: inline-block; + text-decoration: none; + vertical-align: top; + white-space: nowrap; + padding: 0 2px; + height: 18px; + line-height: 18px; +} +.tree-node-proxy { + font-size: 12px; + line-height: 20px; + padding: 0 2px 0 20px; + border-width: 1px; + border-style: solid; + z-index: 9900000; +} +.tree-dnd-icon { + display: inline-block; + position: absolute; + width: 16px; + height: 18px; + left: 2px; + top: 50%; + margin-top: -9px; +} +.tree-dnd-yes { + background: url('images/tree_icons.png') no-repeat -256px 0; +} +.tree-dnd-no { + background: url('images/tree_icons.png') no-repeat -256px -18px; +} +.tree-node-top { + border-top: 1px dotted red; +} +.tree-node-bottom { + border-bottom: 1px dotted red; +} +.tree-node-append .tree-title { + border: 1px dotted red; +} +.tree-editor { + border: 1px solid #ccc; + font-size: 12px; + height: 14px !important; + height: 18px; + line-height: 14px; + padding: 1px 2px; + width: 80px; + position: absolute; + top: 0; +} +.tree-node-proxy { + background-color: #fff; + color: #444; + border-color: #ddd; +} +.tree-node-hover { + background: #E6E6E6; + color: #444; +} +.tree-node-selected { + background: #CCE6FF; + color: #000; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/metro/validatebox.css b/src/main/webapp/js/easyui-1.3.5/themes/metro/validatebox.css new file mode 100644 index 00000000..154da758 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/metro/validatebox.css @@ -0,0 +1,8 @@ +.validatebox-invalid { + background-image: url('images/validatebox_warning.png'); + background-repeat: no-repeat; + background-position: right center; + border-color: #ffa8a8; + background-color: #fff3f3; + color: #000; +} diff --git a/src/main/webapp/js/easyui-1.3.5/themes/metro/window.css b/src/main/webapp/js/easyui-1.3.5/themes/metro/window.css new file mode 100644 index 00000000..6d2f9119 --- /dev/null +++ b/src/main/webapp/js/easyui-1.3.5/themes/metro/window.css @@ -0,0 +1,81 @@ +.window { + overflow: hidden; + padding: 5px; + border-width: 1px; + border-style: solid; +} +.window .window-header { + background: transparent; + padding: 0px 0px 6px 0px; +} +.window .window-body { + border-width: 1px; + border-style: solid; + border-top-width: 0px; +} +.window .window-body-noheader { + border-top-width: 1px; +} +.window .window-header .panel-icon, +.window .window-header .panel-tool { + top: 50%; + margin-top: -11px; +} +.window .window-header .panel-icon { + left: 1px; +} +.window .window-header .panel-tool { + right: 1px; +} +.window .window-header .panel-with-icon { + padding-left: 18px; +} +.window-proxy { + position: absolute; + overflow: hidden; +} +.window-proxy-mask { + position: absolute; + filter: alpha(opacity=5); + opacity: 0.05; +} +.window-mask { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + filter: alpha(opacity=40); + opacity: 0.40; + font-size: 1px; + *zoom: 1; + overflow: hidden; +} +.window, +.window-shadow { + position: absolute; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.window-shadow { + background: #eee; + -moz-box-shadow: 2px 2px 3px #ededed; + -webkit-box-shadow: 2px 2px 3px #ededed; + box-shadow: 2px 2px 3px #ededed; + filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2); +} +.window, +.window .window-body { + border-color: #ddd; +} +.window { + background-color: #ffffff; +} +.window-proxy { + border: 1px dashed #ddd; +} +.window-proxy-mask, +.window-mask { + background: #eee; +} diff --git a/src/main/webapp/js/grayscale.js b/src/main/webapp/js/grayscale.js new file mode 100644 index 00000000..8eba45e2 --- /dev/null +++ b/src/main/webapp/js/grayscale.js @@ -0,0 +1,310 @@ +/* + * -- grayscale.js -- + * Copyright (C) James Padolsey (http://james.padolsey.com) + * + */ + +var grayscale = (function(){ + + var config = { + colorProps: ['color','backgroundColor','borderBottomColor','borderTopColor','borderLeftColor','borderRightColor','backgroundImage'], + externalImageHandler : { + /* Grayscaling externally hosted images does not work + - Use these functions to handle those images as you so desire */ + /* Out of convenience these functions are also used for browsers + like Chrome that do not support CanvasContext.getImageData */ + init : function(el, src) { + if (el.nodeName.toLowerCase() === 'img') { + // Is IMG element... + } else { + // Is background-image element: + // Default - remove background images + data(el).backgroundImageSRC = src; + el.style.backgroundImage = ''; + } + }, + reset : function(el) { + if (el.nodeName.toLowerCase() === 'img') { + // Is IMG element... + } else { + // Is background-image element: + el.style.backgroundImage = 'url(' + (data(el).backgroundImageSRC || '') + ')'; + } + } + } + }, + log = function(){ + try { window.console.log.apply(console, arguments); } + catch(e) {}; + }, + isExternal = function(url) { + // Checks whether URL is external: 'CanvasContext.getImageData' + // only works if the image is on the current domain. + return (new RegExp('https?://(?!' + window.location.hostname + ')')).test(url); + }, + data = (function(){ + + var cache = [0], + expando = 'data' + (+new Date()); + + return function(elem) { + var cacheIndex = elem[expando], + nextCacheIndex = cache.length; + if(!cacheIndex) { + cacheIndex = elem[expando] = nextCacheIndex; + cache[cacheIndex] = {}; + } + return cache[cacheIndex]; + }; + + })(), + desatIMG = function(img, prepare, realEl) { + + // realEl is only set when img is temp (for BG images) + + var canvas = document.createElement('canvas'), + context = canvas.getContext('2d'), + height = img.naturalHeight || img.offsetHeight || img.height, + width = img.naturalWidth || img.offsetWidth || img.width, + imgData; + + canvas.height = height; + canvas.width = width; + context.drawImage(img, 0, 0); + try { + imgData = context.getImageData(0, 0, width, height); + } catch(e) {} + + if (prepare) { + desatIMG.preparing = true; + // Slowly recurse through pixels for prep, + // :: only occurs on grayscale.prepare() + var y = 0; + (function(){ + + if (!desatIMG.preparing) { return; } + + if (y === height) { + // Finished! + context.putImageData(imgData, 0, 0, 0, 0, width, height); + realEl ? (data(realEl).BGdataURL = canvas.toDataURL()) + : (data(img).dataURL = canvas.toDataURL()) + } + + for (var x = 0; x < width; x++) { + var i = (y * width + x) * 4; + // Apply Monoschrome level across all channels: + imgData.data[i] = imgData.data[i+1] = imgData.data[i+2] = + RGBtoGRAYSCALE(imgData.data[i], imgData.data[i+1], imgData.data[i+2]); + } + + y++; + setTimeout(arguments.callee, 0); + + })(); + return; + } else { + // If desatIMG was called without 'prepare' flag + // then cancel recursion and proceed with force! (below) + desatIMG.preparing = false; + } + + for (var y = 0; y < height; y++) { + for (var x = 0; x < width; x++) { + var i = (y * width + x) * 4; + // Apply Monoschrome level across all channels: + imgData.data[i] = imgData.data[i+1] = imgData.data[i+2] = + RGBtoGRAYSCALE(imgData.data[i], imgData.data[i+1], imgData.data[i+2]); + } + } + + context.putImageData(imgData, 0, 0, 0, 0, width, height); + return canvas; + + }, + getStyle = function(el, prop) { + var style = document.defaultView && document.defaultView.getComputedStyle ? + document.defaultView.getComputedStyle(el, null)[prop] + : el.currentStyle[prop]; + // If format is #FFFFFF: (convert to RGB) + if (style && /^#[A-F0-9]/i.test(style)) { + var hex = style.match(/[A-F0-9]{2}/ig); + style = 'rgb(' + parseInt(hex[0], 16) + ',' + + parseInt(hex[1], 16) + ',' + + parseInt(hex[2], 16) + ')'; + } + return style; + }, + RGBtoGRAYSCALE = function(r,g,b) { + // Returns single monochrome figure: + return parseInt( (0.2125 * r) + (0.7154 * g) + (0.0721 * b), 10 ); + }, + getAllNodes = function(context) { + var all = Array.prototype.slice.call(context.getElementsByTagName('*')); + all.unshift(context); + return all; + }; + + var init = function(context) { + + // Handle if a DOM collection is passed instead of a single el: + if (context && context[0] && context.length && context[0].nodeName) { + // Is a DOM collection: + var allContexts = Array.prototype.slice.call(context), + cIndex = -1, cLen = allContexts.length; + while (++cIndex -1) { + var urlPatt = /\(['"]?(.+?)['"]?\)/, + url = style.match(urlPatt)[1]; + if (isExternal(url)) { + config.externalImageHandler.init(cur, url); + data(cur).externalBG = true; + continue; + } + // data(cur).BGdataURL refers to caches URL (from preparation) + try { + var imgSRC = data(cur).BGdataURL || (function(){ + var temp = document.createElement('img'); + temp.src = url; + return desatIMG(temp).toDataURL(); + })(); + + cur.style[prop] = style.replace(urlPatt, function(_, url){ + return '(' + imgSRC + ')'; + }); + } catch(e) { config.externalImageHandler.init(cur, url); } + } + } + } + } + + }; + + init.reset = function(context) { + // Handle if a DOM collection is passed instead of a single el: + if (context && context[0] && context.length && context[0].nodeName) { + // Is a DOM collection: + var allContexts = Array.prototype.slice.call(context), + cIndex = -1, cLen = allContexts.length; + while (++cIndex -1) { + var urlPatt = /\(['"]?(.+?)['"]?\)/, + url = style.match(urlPatt)[1]; + if (!isExternal(url)) { + var temp = document.createElement('img'); + temp.src = url; + desatIMG(temp, true, cur); + } + } + } + } + }; + + return init; + +})(); \ No newline at end of file diff --git a/src/main/webapp/js/highcharts/exporting.js b/src/main/webapp/js/highcharts/exporting.js new file mode 100644 index 00000000..655f1c5e --- /dev/null +++ b/src/main/webapp/js/highcharts/exporting.js @@ -0,0 +1,23 @@ +/* + Highcharts JS v2.3.3 (2012-10-04) + Exporting module + + (c) 2010-2011 Torstein Hønsi + + License: www.highcharts.com/license +*/ +(function(){function x(a){for(var b=a.length;b--;)typeof a[b]==="number"&&(a[b]=Math.round(a[b])-0.5);return a}var g=Highcharts,y=g.Chart,z=g.addEvent,B=g.removeEvent,r=g.createElement,u=g.discardElement,t=g.css,s=g.merge,k=g.each,n=g.extend,C=Math.max,h=document,D=window,A=h.documentElement.ontouchstart!==void 0,v=g.getOptions();n(v.lang,{downloadPNG:"Download PNG image",downloadJPEG:"Download JPEG image",downloadPDF:"Download PDF document",downloadSVG:"Download SVG vector image",exportButtonTitle:"Export to raster or vector image", +printButtonTitle:"Print the chart"});v.navigation={menuStyle:{border:"1px solid #A0A0A0",background:"#FFFFFF"},menuItemStyle:{padding:"0 5px",background:"none",color:"#303030",fontSize:A?"14px":"11px"},menuItemHoverStyle:{background:"#4572A5",color:"#FFFFFF"},buttonOptions:{align:"right",backgroundColor:{linearGradient:[0,0,0,20],stops:[[0.4,"#F7F7F7"],[0.6,"#E3E3E3"]]},borderColor:"#B0B0B0",borderRadius:3,borderWidth:1,height:20,hoverBorderColor:"#909090",hoverSymbolFill:"#81A7CF",hoverSymbolStroke:"#4572A5", +symbolFill:"#E0E0E0",symbolStroke:"#A0A0A0",symbolX:11.5,symbolY:10.5,verticalAlign:"top",width:24,y:10}};v.exporting={type:"image/png",url:"http://export.highcharts.com/",width:800,buttons:{exportButton:{symbol:"exportIcon",x:-10,symbolFill:"#A8BF77",hoverSymbolFill:"#768F3E",_id:"exportButton",_titleKey:"exportButtonTitle",menuItems:[{textKey:"downloadPNG",onclick:function(){this.exportChart()}},{textKey:"downloadJPEG",onclick:function(){this.exportChart({type:"image/jpeg"})}},{textKey:"downloadPDF", +onclick:function(){this.exportChart({type:"application/pdf"})}},{textKey:"downloadSVG",onclick:function(){this.exportChart({type:"image/svg+xml"})}}]},printButton:{symbol:"printIcon",x:-36,symbolFill:"#B5C9DF",hoverSymbolFill:"#779ABF",_id:"printButton",_titleKey:"printButtonTitle",onclick:function(){this.print()}}}};n(y.prototype,{getSVG:function(a){var b=this,c,d,e,f=s(b.options,a);if(!h.createElementNS)h.createElementNS=function(a,b){return h.createElement(b)};a=r("div",null,{position:"absolute", +top:"-9999em",width:b.chartWidth+"px",height:b.chartHeight+"px"},h.body);n(f.chart,{renderTo:a,forExport:!0});f.exporting.enabled=!1;f.chart.plotBackgroundImage=null;f.series=[];k(b.series,function(a){e=s(a.options,{animation:!1,showCheckbox:!1,visible:a.visible});if(!e.isInternal){if(e&&e.marker&&/^url\(/.test(e.marker.symbol))e.marker.symbol="circle";f.series.push(e)}});c=new Highcharts.Chart(f);k(["xAxis","yAxis"],function(a){k(b[a],function(b,d){var e=c[a][d],f=b.getExtremes(),g=f.userMin,f=f.userMax; +(g!==void 0||f!==void 0)&&e.setExtremes(g,f,!0,!1)})});d=c.container.innerHTML;f=null;c.destroy();u(a);d=d.replace(/zIndex="[^"]+"/g,"").replace(/isShadow="[^"]+"/g,"").replace(/symbolName="[^"]+"/g,"").replace(/jQuery[0-9]+="[^"]+"/g,"").replace(/isTracker="[^"]+"/g,"").replace(/url\([^#]+#/g,"url(#").replace(/.*?$/,"").replace(/ /g," ").replace(/­/g,"­").replace(//g,'xlink:href="$1"/>').replace(/id=([^" >]+)/g,'id="$1"').replace(/class=([^" ]+)/g,'class="$1"').replace(/ transform /g," ").replace(/:(path|rect)/g,"$1").replace(/style="([^"]+)"/g,function(a){return a.toLowerCase()});d=d.replace(/(url\(#highcharts-[0-9]+)"/g,"$1").replace(/"/g,"'");d.match(/ xmlns="/g).length===2&&(d=d.replace(/xmlns="[^"]+"/,""));return d},exportChart:function(a, +b){var c,d=this.getSVG(s(this.options.exporting.chartOptions,b)),a=s(this.options.exporting,a);c=r("form",{method:"post",action:a.url,enctype:"multipart/form-data"},{display:"none"},h.body);k(["filename","type","width","svg"],function(b){r("input",{type:"hidden",name:b,value:{filename:a.filename||"chart",type:a.type,width:a.width,svg:d}[b]},null,c)});c.submit();u(c)},print:function(){var a=this,b=a.container,c=[],d=b.parentNode,e=h.body,f=e.childNodes;if(!a.isPrinting)a.isPrinting=!0,k(f,function(a, +b){if(a.nodeType===1)c[b]=a.style.display,a.style.display="none"}),e.appendChild(b),D.print(),setTimeout(function(){d.appendChild(b);k(f,function(a,b){if(a.nodeType===1)a.style.display=c[b]});a.isPrinting=!1},1E3)},contextMenu:function(a,b,c,d,e,f){var i=this,g=i.options.navigation,h=g.menuItemStyle,o=i.chartWidth,p=i.chartHeight,q="cache-"+a,j=i[q],l=C(e,f),m,w;if(!j)i[q]=j=r("div",{className:"highcharts-"+a},{position:"absolute",zIndex:1E3,padding:l+"px"},i.container),m=r("div",null,n({MozBoxShadow:"3px 3px 10px #888", +WebkitBoxShadow:"3px 3px 10px #888",boxShadow:"3px 3px 10px #888"},g.menuStyle),j),w=function(){t(j,{display:"none"})},z(j,"mouseleave",w),k(b,function(a){if(a){var b=r("div",{onmouseover:function(){t(this,g.menuItemHoverStyle)},onmouseout:function(){t(this,h)},innerHTML:a.text||i.options.lang[a.textKey]},n({cursor:"pointer"},h),m);b[A?"ontouchstart":"onclick"]=function(){w();a.onclick.apply(i,arguments)};i.exportDivElements.push(b)}}),i.exportDivElements.push(m,j),i.exportMenuWidth=j.offsetWidth, +i.exportMenuHeight=j.offsetHeight;a={display:"block"};c+i.exportMenuWidth>o?a.right=o-c-e-l+"px":a.left=c-l+"px";d+f+i.exportMenuHeight>p?a.bottom=p-d-l+"px":a.top=d+f-l+"px";t(j,a)},addButton:function(a){function b(){p.attr(l);o.attr(j)}var c=this,d=c.renderer,e=s(c.options.navigation.buttonOptions,a),f=e.onclick,g=e.menuItems,h=e.width,k=e.height,o,p,q,a=e.borderWidth,j={stroke:e.borderColor},l={stroke:e.symbolStroke,fill:e.symbolFill},m=e.symbolSize||12;if(!c.exportDivElements)c.exportDivElements= +[],c.exportSVGElements=[];e.enabled!==!1&&(o=d.rect(0,0,h,k,e.borderRadius,a).align(e,!0).attr(n({fill:e.backgroundColor,"stroke-width":a,zIndex:19},j)).add(),q=d.rect(0,0,h,k,0).align(e).attr({id:e._id,fill:"rgba(255, 255, 255, 0.001)",title:c.options.lang[e._titleKey],zIndex:21}).css({cursor:"pointer"}).on("mouseover",function(){p.attr({stroke:e.hoverSymbolStroke,fill:e.hoverSymbolFill});o.attr({stroke:e.hoverBorderColor})}).on("mouseout",b).on("click",b).add(),g&&(f=function(){b();var a=q.getBBox(); +c.contextMenu("export-menu",g,a.x,a.y,h,k)}),q.on("click",function(){f.apply(c,arguments)}),p=d.symbol(e.symbol,e.symbolX-m/2,e.symbolY-m/2,m,m).align(e,!0).attr(n(l,{"stroke-width":e.symbolStrokeWidth||1,zIndex:20})).add(),c.exportSVGElements.push(o,q,p))},destroyExport:function(){var a,b;for(a=0;a20&&y<160?"left":y>200&&y<340?"right":"center":"center",d.attr({align:h})),a.x+=g.x,a.y+=i):a=a.call(this,b,c,d,e,g,f,k,l);return a});o(B,"getMarkPath",function(a,b,c,d,e,g,f){var k=this.axis;k.isRadial?(a=k.getPosition(this.pos,k.center[2]/2+d),b=["M",b,c,"L",a.x,a.y]):b=a.call(this,b,c,d,e,g,f);return b});n.arearange=p(n.area,{lineWidth:1,marker:null,threshold:null,tooltip:{pointFormat:'{series.name}: {point.low} - {point.high}
                                '}, +trackByArea:!0,dataLabels:{verticalAlign:null,xLow:0,xHigh:0,yLow:0,yHigh:0}});h.arearange=m.extendClass(h.area,{type:"arearange",pointArrayMap:["low","high"],toYData:function(a){return[a.low,a.high]},pointValKey:"low",translate:function(){var a=this.yAxis;h.area.prototype.translate.apply(this);s(this.points,function(b){if(b.y!==null)b.plotLow=b.plotY,b.plotHigh=a.translate(b.high,0,1,0,1)})},getSegmentPath:function(a){var b=[],c=a.length,d=z.prototype.getSegmentPath,e,g;g=this.options;for(var f= +g.step;c--;)e=a[c],b.push({plotX:e.plotX,plotY:e.plotHigh});a=d.call(this,a);if(f)f===!0&&(f="left"),g.step={left:"right",center:"center",right:"left"}[f];b=d.call(this,b);g.step=f;g=[].concat(a,b);b[0]="L";this.areaPath=this.areaPath.concat(a,b);return g},drawDataLabels:function(){var a=this.data,b=a.length,c,d=[],e=z.prototype,g=this.options.dataLabels,f,k=this.chart.inverted;if(g.enabled||this._hasPointLabels){for(c=b;c--;)f=a[c],f.y=f.high,f.plotY=f.plotHigh,d[c]=f.dataLabel,f.dataLabel=f.dataLabelUpper, +f.below=!1,k?(g.align="left",g.x=g.xHigh):g.y=g.yHigh;e.drawDataLabels.apply(this,arguments);for(c=b;c--;)f=a[c],f.dataLabelUpper=f.dataLabel,f.dataLabel=d[c],f.y=f.low,f.plotY=f.plotLow,f.below=!0,k?(g.align="right",g.x=g.xLow):g.y=g.yLow;e.drawDataLabels.apply(this,arguments)}},alignDataLabel:h.column.prototype.alignDataLabel,getSymbol:h.column.prototype.getSymbol,drawPoints:w});n.areasplinerange=p(n.arearange);h.areasplinerange=A(h.arearange,{type:"areasplinerange",getPointSpline:h.spline.prototype.getPointSpline}); +n.columnrange=p(n.column,n.arearange,{lineWidth:1,pointRange:null});h.columnrange=A(h.arearange,{type:"columnrange",translate:function(){var a=this.yAxis,b;q.translate.apply(this);s(this.points,function(c){var d=c.shapeArgs;c.plotHigh=b=a.translate(c.high,0,1,0,1);c.plotLow=c.plotY;d.y=b;d.height=c.plotY-b})},trackerGroups:["group","dataLabels"],drawGraph:w,pointAttrToOptions:q.pointAttrToOptions,drawPoints:q.drawPoints,drawTracker:q.drawTracker,animate:q.animate,getColumnMetrics:q.getColumnMetrics}); +n.gauge=p(n.line,{dataLabels:{enabled:!0,y:15,borderWidth:1,borderColor:"silver",borderRadius:3,style:{fontWeight:"bold"},verticalAlign:"top",zIndex:2},dial:{},pivot:{},tooltip:{headerFormat:""},showInLegend:!1});B={type:"gauge",pointClass:m.extendClass(m.Point,{setState:function(a){this.state=a}}),angular:!0,drawGraph:w,trackerGroups:["group","dataLabels"],translate:function(){var a=this.yAxis,b=this.options,c=a.center;this.generatePoints();s(this.points,function(d){var e=p(b.dial,d.dial),g=u(r(e.radius, +80))*c[2]/200,f=u(r(e.baseLength,70))*g/100,k=u(r(e.rearLength,10))*g/100,l=e.baseWidth||3,j=e.topWidth||1,i=a.startAngleRad+a.translate(d.y,null,null,null,!0);b.wrap===!1&&(i=Math.max(a.startAngleRad,Math.min(a.endAngleRad,i)));i=i*180/Math.PI;d.shapeType="path";d.shapeArgs={d:e.path||["M",-k,-l/2,"L",f,-l/2,g,-j/2,g,j/2,f,l/2,-k,l/2,"z"],translateX:c[0],translateY:c[1],rotation:i};d.plotX=c[0];d.plotY=c[1]})},drawPoints:function(){var a=this,b=a.yAxis.center,c=a.pivot,d=a.options,e=d.pivot,g=a.chart.renderer; +s(a.points,function(c){var b=c.graphic,e=c.shapeArgs,j=e.d,i=p(d.dial,c.dial);b?(b.animate(e),e.d=j):c.graphic=g[c.shapeType](e).attr({stroke:i.borderColor||"none","stroke-width":i.borderWidth||0,fill:i.backgroundColor||"black",rotation:e.rotation}).add(a.group)});c?c.animate({translateX:b[0],translateY:b[1]}):a.pivot=g.circle(0,0,r(e.radius,5)).attr({"stroke-width":e.borderWidth||0,stroke:e.borderColor||"silver",fill:e.backgroundColor||"black"}).translate(b[0],b[1]).add(a.group)},animate:function(a){var b= +this;if(!a)s(b.points,function(a){var d=a.graphic;d&&(d.attr({rotation:b.yAxis.startAngleRad*180/Math.PI}),d.animate({rotation:a.shapeArgs.rotation},b.options.animation))}),b.animate=null},render:function(){this.group=this.plotGroup("group","series",this.visible?"visible":"hidden",this.options.zIndex,this.chart.seriesGroup);h.pie.prototype.render.call(this);this.group.clip(this.chart.clipRect)},setData:h.pie.prototype.setData,drawTracker:h.column.prototype.drawTracker};h.gauge=m.extendClass(h.line, +B);n.boxplot=p(n.column,{fillColor:"#FFFFFF",lineWidth:1,medianWidth:2,states:{hover:{brightness:-0.3}},threshold:null,tooltip:{pointFormat:'{series.name}
                                Minimum: {point.low}
                                Lower quartile: {point.q1}
                                Median: {point.median}
                                Higher quartile: {point.q3}
                                Maximum: {point.high}
                                '},whiskerLength:"50%",whiskerWidth:2});h.boxplot=A(h.column,{type:"boxplot",pointArrayMap:["low","q1","median","q3","high"],toYData:function(a){return[a.low, +a.q1,a.median,a.q3,a.high]},pointValKey:"high",pointAttrToOptions:{fill:"fillColor",stroke:"color","stroke-width":"lineWidth"},drawDataLabels:w,translate:function(){var a=this.yAxis,b=this.pointArrayMap;h.column.prototype.translate.apply(this);s(this.points,function(c){s(b,function(b){c[b]!==null&&(c[b+"Plot"]=a.translate(c[b],0,1,0,1))})})},drawPoints:function(){var a=this,b=a.points,c=a.options,d=a.chart.renderer,e,g,f,k,l,j,i,h,y,m,t,n,r,x,o,p,v,q,w,u,B,A,z=a.doQuartiles!==!1,D=parseInt(a.options.whiskerLength, +10)/100;s(b,function(b){y=b.graphic;B=b.shapeArgs;t={};x={};p={};A=b.color||a.color;if(b.plotY!==F)if(e=b.pointAttr[b.selected?"selected":""],v=B.width,q=C(B.x),w=q+v,u=I(v/2),g=C(z?b.q1Plot:b.lowPlot),f=C(z?b.q3Plot:b.lowPlot),k=C(b.highPlot),l=C(b.lowPlot),t.stroke=b.stemColor||c.stemColor||A,t["stroke-width"]=b.stemWidth||c.stemWidth||c.lineWidth,t.dashstyle=b.stemDashStyle||c.stemDashStyle,x.stroke=b.whiskerColor||c.whiskerColor||A,x["stroke-width"]=b.whiskerWidth||c.whiskerWidth||c.lineWidth, +p.stroke=b.medianColor||c.medianColor||A,p["stroke-width"]=b.medianWidth||c.medianWidth||c.lineWidth,i=t["stroke-width"]%2/2,h=q+u+i,m=["M",h,f,"L",h,k,"M",h,g,"L",h,l,"z"],z&&(i=e["stroke-width"]%2/2,h=C(h)+i,g=C(g)+i,f=C(f)+i,q+=i,w+=i,n=["M",q,f,"L",q,g,"L",w,g,"L",w,f,"L",q,f,"z"]),D&&(i=x["stroke-width"]%2/2,k+=i,l+=i,r=["M",h-u*D,k,"L",h+u*D,k,"M",h-u*D,l,"L",h+u*D,l]),i=p["stroke-width"]%2/2,j=I(b.medianPlot)+i,o=["M",q,j,"L",w,j,"z"],y)b.stem.animate({d:m}),D&&b.whiskers.animate({d:r}),z&& +b.box.animate({d:n}),b.medianShape.animate({d:o});else{b.graphic=y=d.g().add(a.group);b.stem=d.path(m).attr(t).add(y);if(D)b.whiskers=d.path(r).attr(x).add(y);if(z)b.box=d.path(n).attr(e).add(y);b.medianShape=d.path(o).attr(p).add(y)}})}});n.errorbar=p(n.boxplot,{color:"#000000",grouping:!1,linkedTo:":previous",tooltip:{pointFormat:n.arearange.tooltip.pointFormat},whiskerWidth:null});h.errorbar=A(h.boxplot,{type:"errorbar",pointArrayMap:["low","high"],toYData:function(a){return[a.low,a.high]},pointValKey:"high", +doQuartiles:!1,getColumnMetrics:function(){return this.linkedParent&&this.linkedParent.columnMetrics||h.column.prototype.getColumnMetrics.call(this)}});o(G,"getSeriesExtremes",function(a,b){a.call(this,b);if(!this.isXAxis){var c=this,d=[],e=!0;s(c.series,function(a){if(a.visible&&a.stackKey&&!(a.type!=="waterfall"||HighchartsAdapter.inArray(a.stackKey)!==-1)){if(e)c.dataMin=c.dataMax=null,e=!1;var b=a.processedYData,k=b.length,h=b[0],j=b[0],i=a.options.threshold,m=c.stacks,n=a.stackKey,p="-"+n,t, +o,q,x;for(x=0;xi)t+=o,m[q][x].setTotal(t),m[q][x]._cum=null;tj&&(j=t);o=t}a.dataMin=h;a.dataMax=j;c.dataMin=T(r(c.dataMin,h),h,i);c.dataMax=U(r(c.dataMax,j),j,i);d.push(a.stackKey);if(typeof i==="number")if(c.dataMin>=i)c.dataMin=i,c.ignoreMinPadding=!0;else if(c.dataMax0&&!a.color)a.pointAttr=d,a.color=c})},getGraphPath:function(){var a=this.data,b=a.length,c=I(this.options.lineWidth+this.options.borderWidth)% +2/2,d=[],e,g,f;for(f=1;f=d?a.shapeArgs.y+a.shapeArgs.height:a.shapeArgs.y;d=b.y>= +d?b.shapeArgs.y:b.shapeArgs.y+b.shapeArgs.height;d>c&&(e=c,c=d,d=e);return[c,d]},drawGraph:z.prototype.drawGraph});n.bubble=p(n.scatter,{dataLabels:{inside:!0,style:{color:"white",textShadow:"0px 0px 3px black"},verticalAlign:"middle"},marker:{lineColor:null,lineWidth:1},minSize:8,maxSize:"20%",tooltip:{pointFormat:"({point.x}, {point.y}), Size: {point.z}"},zThreshold:0});h.bubble=A(h.scatter,{type:"bubble",pointArrayMap:["y","z"],trackerGroups:["group","dataLabelsGroup"],pointAttrToOptions:{stroke:"lineColor", +"stroke-width":"lineWidth",fill:"fillColor"},applyOpacity:function(a){var b=this.options.marker,c=r(b.fillOpacity,0.5),a=a||b.fillColor||this.color;c!==1&&(a=m.Color(a).setOpacity(c).get("rgba"));return a},convertAttribs:function(){var a=z.prototype.convertAttribs.apply(this,arguments);a.fill=this.applyOpacity(a.fill);return a},getRadii:function(a,b,c,d){var e,g,f,k=this.zData,h=[];for(g=0,e=k.length;g0?(k[g]-a)/(b-a):0.5,h.push(v.round(c+f*(d-c))/2);this.radii=h},animate:function(a){var b= +this.options.animation;if(!a)s(this.points,function(a){var d=a.graphic,a=a.shapeArgs;d&&a&&(d.attr("r",1),d.animate({r:a.r},b))}),this.animate=null},translate:function(){var a,b=this.data,c,d,e=this.radii;h.scatter.prototype.translate.call(this);for(a=b.length;a--;)c=b[a],d=e[a],c.negative=c.z<(this.options.zThreshold||0),d>=this.minPxSize/2?(c.shapeType="circle",c.shapeArgs={x:c.plotX,y:c.plotY,r:d},c.dlBox={x:c.plotX-d,y:c.plotY-d,width:2*d,height:2*d}):c.shapeArgs=c.plotY=c.dlBox=F},drawLegendSymbol:function(a, +b){var c=u(a.itemStyle.fontSize)/2;b.legendSymbol=this.chart.renderer.circle(c,a.baseline-c,c).attr({zIndex:3}).add(b.legendGroup)},drawPoints:h.column.prototype.drawPoints,alignDataLabel:h.column.prototype.alignDataLabel});O.prototype.beforePadding=function(){var a=this.len,b=this.chart,c=0,d=a,e=this.isXAxis,g=e?"xData":"yData",f=this.min,k={},h=v.min(b.plotWidth,b.plotHeight),j=Number.MAX_VALUE,i=-Number.MAX_VALUE,m=this.max-f,n=a/m,o=[];this.allowZoomOutside=!0;this.tickPositions&&(s(this.series, +function(a){var b=a.options;if(a.type==="bubble"&&a.visible&&(o.push(a),e))s(["minSize","maxSize"],function(a){var c=b[a],d=/%$/.test(c),c=u(c);k[a]=d?h*c/100:c}),a.minPxSize=k.minSize,a=a.zData,j=v.min(j,v.max(Q(a),b.displayNegative===!1?b.zThreshold:-Number.MAX_VALUE)),i=v.max(i,R(a))}),s(o,function(a){var b=a[g],h=b.length,l;e&&a.getRadii(j,i,k.minSize,k.maxSize);if(m>0)for(;h--;)l=a.radii[h],c=Math.min((b[h]-f)*n-l,c),d=Math.max((b[h]-f)*n+l,d)}),m>0&&r(this.options.min,this.userMin)===F&&r(this.options.max, +this.userMax)===F&&(d-=a,n*=(a+c-d)/a,this.min+=c/n,this.max+=d/n))};var E=z.prototype,n=m.Pointer.prototype;E.toXY=function(a){var b,c=this.chart;b=a.plotX;var d=a.plotY;a.rectPlotX=b;a.rectPlotY=d;a.clientX=b/Math.PI*180;b=this.xAxis.postTranslate(a.plotX,this.yAxis.len-d);a.plotX=a.polarPlotX=b.x-c.plotLeft;a.plotY=a.polarPlotY=b.y-c.plotTop};o(h.area.prototype,"init",L);o(h.areaspline.prototype,"init",L);o(h.spline.prototype,"getPointSpline",function(a,b,c,d){var e,g,f,h,l,j,i;if(this.chart.polar){e= +c.plotX;g=c.plotY;a=b[d-1];f=b[d+1];this.connectEnds&&(a||(a=b[b.length-2]),f||(f=b[1]));if(a&&f)h=a.plotX,l=a.plotY,b=f.plotX,j=f.plotY,h=(1.5*e+h)/2.5,l=(1.5*g+l)/2.5,f=(1.5*e+b)/2.5,i=(1.5*g+j)/2.5,b=Math.sqrt(Math.pow(h-e,2)+Math.pow(l-g,2)),j=Math.sqrt(Math.pow(f-e,2)+Math.pow(i-g,2)),h=Math.atan2(l-g,h-e),l=Math.atan2(i-g,f-e),i=Math.PI/2+(h+l)/2,Math.abs(h-i)>Math.PI/2&&(i-=Math.PI),h=e+Math.cos(i)*b,l=g+Math.sin(i)*b,f=e+Math.cos(Math.PI+i)*j,i=g+Math.sin(Math.PI+i)*j,c.rightContX=f,c.rightContY= +i;d?(c=["C",a.rightContX||a.plotX,a.rightContY||a.plotY,h||e,l||g,e,g],a.rightContX=a.rightContY=null):c=["M",e,g]}else c=a.call(this,b,c,d);return c});o(E,"translate",function(a){a.call(this);if(this.chart.polar&&!this.preventPostTranslate)for(var a=this.points,b=a.length;b--;)this.toXY(a[b])});o(E,"getSegmentPath",function(a,b){var c=this.points;if(this.chart.polar&&this.options.connectEnds!==!1&&b[b.length-1]===c[c.length-1]&&c[0].y!==null)this.connectEnds=!0,b=[].concat(b,[c[0]]);return a.call(this, +b)});o(E,"animate",M);o(q,"animate",M);o(E,"setTooltipPoints",function(a,b){this.chart.polar&&H(this.xAxis,{tooltipLen:360});return a.call(this,b)});o(q,"translate",function(a){var b=this.xAxis,c=this.yAxis.len,d=b.center,e=b.startAngleRad,g=this.chart.renderer,f,h;this.preventPostTranslate=!0;a.call(this);if(b.isRadial){b=this.points;for(h=b.length;h--;)f=b[h],a=f.barX+e,f.shapeType="path",f.shapeArgs={d:g.symbols.arc(d[0],d[1],c-f.plotY,null,{start:a,end:a+f.pointWidth,innerR:c-r(f.yBottom,c)})}, +this.toXY(f)}});o(q,"alignDataLabel",function(a,b,c,d,e,g){if(this.chart.polar){a=b.rectPlotX/Math.PI*180;if(d.align===null)d.align=a>20&&a<160?"left":a>200&&a<340?"right":"center";if(d.verticalAlign===null)d.verticalAlign=a<45||a>315?"bottom":a>135&&a<225?"top":"middle";E.alignDataLabel.call(this,b,c,d,e,g)}else a.call(this,b,c,d,e,g)});o(n,"getIndex",function(a,b){var c,d=this.chart,e;d.polar?(e=d.xAxis[0].center,c=b.chartX-e[0]-d.plotLeft,d=b.chartY-e[1]-d.plotTop,c=180-Math.round(Math.atan2(c, +d)/Math.PI*180)):c=a.call(this,b);return c});o(n,"getCoordinates",function(a,b){var c=this.chart,d={xAxis:[],yAxis:[]};c.polar?s(c.axes,function(a){var g=a.isXAxis,f=a.center,h=b.chartX-f[0]-c.plotLeft,f=b.chartY-f[1]-c.plotTop;d[g?"xAxis":"yAxis"].push({axis:a,value:a.translate(g?Math.PI-Math.atan2(h,f):Math.sqrt(Math.pow(h,2)+Math.pow(f,2)),!0)})}):d=a.call(this,b);return d})})(Highcharts); diff --git a/src/main/webapp/js/highcharts/highcharts.js b/src/main/webapp/js/highcharts/highcharts.js new file mode 100644 index 00000000..9545be0b --- /dev/null +++ b/src/main/webapp/js/highcharts/highcharts.js @@ -0,0 +1,246 @@ +/* + Highcharts JS v2.3.3 (2012-10-04) + + (c) 2009-2011 Torstein Hønsi + + License: www.highcharts.com/license +*/ +(function(){function r(a,b){var c;a||(a={});for(c in b)a[c]=b[c];return a}function ka(){for(var a=0,b=arguments,c=b.length,d={};a-1?b.split(".")[1].length:0):a=isNaN(b=L(b))?2:b;var b=a,c=c===void 0?e.decimalPoint:c,d=d===void 0?e.thousandsSep:d,e=f<0?"-":"",a=String(w(f=L(+f||0).toFixed(b))),g=a.length>3?a.length%3:0;return e+(g?a.substr(0,g)+d:"")+a.substr(g).replace(/(\d{3})(?=\d)/g, +"$1"+d)+(b?c+L(f-a).toFixed(b).slice(2):"")}function sa(a,b){return Array((b||2)+1-String(a).length).join(0)+a}function hb(a,b,c,d){var e,c=o(c,1);e=a/c;b||(b=[1,2,2.5,5,10],d&&d.allowDecimals===!1&&(c===1?b=[1,2,5,10]:c<=0.1&&(b=[1/c])));for(d=0;d=B[ib]&&(i.setMilliseconds(0),i.setSeconds(b>=B[Ua]?0:j*T(i.getSeconds()/j)));if(b>=B[Ua])i[Ab](b>=B[Ja]?0:j*T(i[jb]()/j));if(b>=B[Ja])i[Bb](b>=B[oa]?0:j*T(i[kb]()/ +j));if(b>=B[oa])i[lb](b>=B[Ka]?1:j*T(i[La]()/j));b>=B[Ka]&&(i[Cb](b>=B[ta]?0:j*T(i[Wa]()/j)),h=i[Xa]());b>=B[ta]&&(h-=h%j,i[Db](h));if(b===B[Va])i[lb](i[La]()-i[mb]()+o(d,1));d=1;h=i[Xa]();for(var k=i.getTime(),l=i[Wa](),m=i[La](),i=g?0:(864E5+i.getTimezoneOffset()*6E4)%864E5;kc&&(c=a[b]);return c}function Ea(a,b){for(var c in a)a[c]&&a[c]!==b&&a[c].destroy&&a[c].destroy(),delete a[c]}function Na(a){Za||(Za=Q(ia));a&&Za.appendChild(a);Za.innerHTML=""}function $a(a, +b){var c="Highcharts error #"+a+": www.highcharts.com/errors/"+a;if(b)throw c;else K.console&&console.log(c)}function ea(a){return parseFloat(a.toPrecision(14))}function ua(a,b){Oa=o(a,b.animation)}function Gb(){var a=M.global.useUTC,b=a?"getUTC":"get",c=a?"setUTC":"set";Ya=a?Date.UTC:function(a,b,c,g,h,i){return(new Date(a,b,o(c,1),o(g,0),o(h,0),o(i,0))).getTime()};jb=b+"Minutes";kb=b+"Hours";mb=b+"Day";La=b+"Date";Wa=b+"Month";Xa=b+"FullYear";Ab=c+"Minutes";Bb=c+"Hours";lb=c+"Date";Cb=c+"Month"; +Db=c+"FullYear"}function va(){}function Pa(a,b,c){this.axis=a;this.pos=b;this.type=c||"";this.isNew=!0;c||this.addLabel()}function nb(a,b){this.axis=a;if(b)this.options=b,this.id=b.id;return this}function Hb(a,b,c,d,e,f){var g=a.chart.inverted;this.axis=a;this.isNegative=c;this.options=b;this.x=d;this.stack=e;this.percent=f==="percent";this.alignOptions={align:b.align||(g?c?"left":"right":"center"),verticalAlign:b.verticalAlign||(g?"middle":c?"bottom":"top"),y:o(b.y,g?4:c?14:-6),x:o(b.x,g?c?-6:6: +0)};this.textAlign=b.textAlign||(g?c?"right":"left":"center")}function ob(){this.init.apply(this,arguments)}function pb(a,b){var c=b.borderWidth,d=b.style,e=w(d.padding);this.chart=a;this.options=b;this.crosshairs=[];this.now={x:0,y:0};this.isHidden=!0;this.label=a.renderer.label("",0,0,b.shape,null,null,b.useHTML,null,"tooltip").attr({padding:e,fill:b.backgroundColor,"stroke-width":c,r:b.borderRadius,zIndex:8}).css(d).css({padding:0}).hide().add();U||this.label.shadow(b.shadow);this.shared=b.shared} +function qb(a,b){var c=U?"":b.chart.zoomType;this.zoomX=/x/.test(c);this.zoomY=/y/.test(c);this.options=b;this.chart=a;this.init(a,b.tooltip)}function rb(a){this.init(a)}function sb(a,b){var c,d=a.series;a.series=null;c=A(M,a);c.series=a.series=d;var d=c.chart,e=d.margin,e=X(e)?e:[e,e,e,e];this.optionsMarginTop=o(d.marginTop,e[0]);this.optionsMarginRight=o(d.marginRight,e[1]);this.optionsMarginBottom=o(d.marginBottom,e[2]);this.optionsMarginLeft=o(d.marginLeft,e[3]);this.runChartClick=(e=d.events)&& +!!e.click;this.callback=b;this.isResizing=0;this.options=c;this.axes=[];this.series=[];this.hasCartesianSeries=d.showAxes;this.init(e)}var x,C=document,K=window,J=Math,s=J.round,T=J.floor,wa=J.ceil,y=J.max,O=J.min,L=J.abs,V=J.cos,Y=J.sin,xa=J.PI,ab=xa*2/360,Fa=navigator.userAgent,Ib=K.opera,Ca=/msie/i.test(Fa)&&!Ib,Qa=C.documentMode===8,tb=/AppleWebKit/.test(Fa),bb=/Firefox/.test(Fa),pa="http://www.w3.org/2000/svg",Z=!!C.createElementNS&&!!C.createElementNS(pa,"svg").createSVGRect,Pb=bb&&parseInt(Fa.split("Firefox/")[1], +10)<4,U=!Z&&!Ca&&!!C.createElement("canvas").getContext,Ra,fa=C.documentElement.ontouchstart!==x,Jb={},ub=0,Za,M,cb,Oa,vb,B,ya=function(){},ia="div",R="none",wb="rgba(192,192,192,"+(Z?1.0E-6:0.0020)+")",zb="millisecond",ib="second",Ua="minute",Ja="hour",oa="day",Va="week",Ka="month",ta="year",Ya,jb,kb,mb,La,Wa,Xa,Ab,Bb,lb,Cb,Db,$={};K.Highcharts={};cb=function(a,b,c){if(!t(b)||isNaN(b))return"Invalid date";var a=o(a,"%Y-%m-%d %H:%M:%S"),d=new Date(b),e,f=d[kb](),g=d[mb](),h=d[La](),i=d[Wa](),j=d[Xa](), +k=M.lang,l=k.weekdays,b={a:l[g].substr(0,3),A:l[g],d:sa(h),e:h,b:k.shortMonths[i],B:k.months[i],m:sa(i+1),y:j.toString().substr(2,2),Y:j,H:sa(f),I:sa(f%12||12),l:f%12||12,M:sa(d[jb]()),p:f<12?"AM":"PM",P:f<12?"am":"pm",S:sa(d.getSeconds()),L:sa(s(b%1E3),3)};for(e in b)a=a.replace("%"+e,b[e]);return c?a.substr(0,1).toUpperCase()+a.substr(1):a};Eb.prototype={wrapColor:function(a){if(this.color>=a)this.color=0},wrapSymbol:function(a){if(this.symbol>=a)this.symbol=0}};B=ka(zb,1,ib,1E3,Ua,6E4,Ja,36E5, +oa,864E5,Va,6048E5,Ka,2592E6,ta,31556952E3);vb={init:function(a,b,c){var b=b||"",d=a.shift,e=b.indexOf("C")>-1,f=e?7:3,g,b=b.split(" "),c=[].concat(c),h,i,j=function(a){for(g=a.length;g--;)a[g]==="M"&&a.splice(g+1,0,a[g+1],a[g+2],a[g+1],a[g+2])};e&&(j(b),j(c));a.isArea&&(h=b.splice(b.length-6,6),i=c.splice(c.length-6,6));if(d<=c.length/f)for(;d--;)c=[].concat(c).splice(0,f).concat(c);a.shift=0;if(b.length)for(a=c.length;b.length{point.key}
                                ',pointFormat:'{series.name}: {point.y}
                                ',shadow:!0,shared:U,snap:fa?25:10,style:{color:"#333333",fontSize:"12px",padding:"5px",whiteSpace:"nowrap"}},credits:{enabled:!0,text:"",href:"",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5}, +style:{cursor:"pointer",color:"#909090",fontSize:"10px"}}};var W=M.plotOptions,ga=W.line;Gb();var qa=function(a){var b=[],c;(function(a){(c=/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]?(?:\.[0-9]+)?)\s*\)/.exec(a))?b=[w(c[1]),w(c[2]),w(c[3]),parseFloat(c[4],10)]:(c=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(a))&&(b=[w(c[1],16),w(c[2],16),w(c[3],16),1])})(a);return{get:function(c){return b&&!isNaN(b[0])?c==="rgb"?"rgb("+b[0]+","+b[1]+","+b[2]+")":c==="a"? +b[3]:"rgba("+b.join(",")+")":a},brighten:function(a){if(Aa(a)&&a!==0){var c;for(c=0;c<3;c++)b[c]+=w(a*255),b[c]<0&&(b[c]=0),b[c]>255&&(b[c]=255)}return this},setOpacity:function(a){b[3]=a;return this}}};va.prototype={init:function(a,b){this.element=b==="span"?Q(b):C.createElementNS(pa,b);this.renderer=a;this.attrSetters={}},animate:function(a,b,c){b=o(b,Oa,!0);eb(this);if(b){b=A(b);if(c)b.complete=c;xb(this,a,b)}else this.attr(a),c&&c()},attr:function(a,b){var c,d,e,f,g=this.element,h=g.nodeName.toLowerCase(), +i=this.renderer,j,k=this.attrSetters,l=this.shadows,m,p,u=this;la(a)&&t(b)&&(c=a,a={},a[c]=b);if(la(a))c=a,h==="circle"?c={x:"cx",y:"cy"}[c]||c:c==="strokeWidth"&&(c="stroke-width"),u=z(g,c)||this[c]||0,c!=="d"&&c!=="visibility"&&(u=parseFloat(u));else for(c in a)if(j=!1,d=a[c],e=k[c]&&k[c].call(this,d,c),e!==!1){e!==x&&(d=e);if(c==="d")d&&d.join&&(d=d.join(" ")),/(NaN| {2}|^$)/.test(d)&&(d="M 0 0");else if(c==="x"&&h==="text"){for(e=0;em&&/[ \-]/.test(b.innerText)&&(H(b,{width:m+"px",display:"block",whiteSpace:"normal"}),k=m);m=a.fontMetrics(b.style.fontSize).b;q=u<0&&-k;D=p<0&&-l;da=u*p<0;q+=p*m*(da?1-h:h);D-=u*m*(j?da?h:1-h:1);i&&(q-=k*h*(u<0?-1:1),j&&(D-=l*h*(p<0?-1:1)),H(b,{textAlign:g}));this.xCorr=q;this.yCorr=D}H(b,{left:e+q+"px",top:f+D+"px"});this.cTT=aa}}else this.alignOnAdd= +!0},updateTransform:function(){var a=this.translateX||0,b=this.translateY||0,c=this.inverted,d=this.rotation,e=[];c&&(a+=this.attr("width"),b+=this.attr("height"));(a||b)&&e.push("translate("+a+","+b+")");c?e.push("rotate(90) scale(-1,1)"):d&&e.push("rotate("+d+" "+(this.x||0)+" "+(this.y||0)+")");e.length&&z(this.element,"transform",e.join(" "))},toFront:function(){var a=this.element;a.parentNode.appendChild(a);return this},align:function(a,b,c){a?(this.alignOptions=a,this.alignByTranslate=b,c|| +this.renderer.alignedObjects.push(this)):(a=this.alignOptions,b=this.alignByTranslate);var c=o(c,this.renderer),d=a.align,e=a.verticalAlign,f=(c.x||0)+(a.x||0),g=(c.y||0)+(a.y||0),h={};if(d==="right"||d==="center")f+=(c.width-(a.width||0))/{right:1,center:2}[d];h[b?"translateX":"x"]=s(f);if(e==="bottom"||e==="middle")g+=(c.height-(a.height||0))/({bottom:1,middle:2}[e]||1);h[b?"translateY":"y"]=s(g);this[this.placed?"animate":"attr"](h);this.placed=!0;this.alignAttr=h;return this},getBBox:function(){var a= +this.bBox,b=this.renderer,c,d=this.rotation,e=this.element,f=this.styles,g=d*ab;if(!a){if(e.namespaceURI===pa||b.forExport){try{a=e.getBBox?r({},e.getBBox()):{width:e.offsetWidth,height:e.offsetHeight}}catch(h){}if(!a||a.width<0)a={width:0,height:0}}else a=this.htmlGetBBox();if(b.isSVG&&(b=a.width,c=a.height,d))a.width=L(c*Y(g))+L(b*V(g)),a.height=L(c*V(g))+L(b*Y(g));if(Ca&&f&&f.fontSize==="11px"&&c===22.700000762939453)a.height=14;this.bBox=a}return a},show:function(){return this.attr({visibility:"visible"})}, +hide:function(){return this.attr({visibility:"hidden"})},add:function(a){var b=this.renderer,c=a||b,d=c.element||b.box,e=d.childNodes,f=this.element,g=z(f,"zIndex"),h;if(a)this.parentGroup=a;this.parentInverted=a&&a.inverted;this.textStr!==void 0&&b.buildText(this);if(g)c.handleZ=!0,g=w(g);if(c.handleZ)for(c=0;cg||!t(g)&&t(b))){d.insertBefore(f,a);h=!0;break}h||d.appendChild(f);this.added=!0;E(this,"add");return this},safeRemoveChild:function(a){var b= +a.parentNode;b&&b.removeChild(a)},destroy:function(){var a=this,b=a.element||{},c=a.shadows,d,e;b.onclick=b.onmouseout=b.onmouseover=b.onmousemove=null;eb(a);if(a.clipPath)a.clipPath=a.clipPath.destroy();if(a.stops){for(e=0;e/g,'').replace(/<(i|em)>/g,'').replace(//g,"").split(//g),d=b.childNodes,e=/style="([^"]+)"/,f=/href="([^"]+)"/,g=z(b,"x"),h=a.styles,i=h&&h.width&&w(h.width),j=h&&h.lineHeight,k,h=d.length,l=[];h--;)b.removeChild(d[h]);i&&!a.added&&this.box.appendChild(b); +c[c.length-1]===""&&c.pop();n(c,function(c,d){var h,da=0,q,c=c.replace(//g,"|||");h=c.split("|||");n(h,function(c){if(c!==""||h.length===1){var m={},o=C.createElementNS(pa,"tspan"),n;e.test(c)&&(n=c.match(e)[1].replace(/(;| |^)color([ :])/,"$1fill$2"),z(o,"style",n));f.test(c)&&(z(o,"onclick",'location.href="'+c.match(f)[1]+'"'),H(o,{cursor:"pointer"}));c=(c.replace(/<(.|\n)*?>/g,"")||" ").replace(/</g,"<").replace(/>/g,">");o.appendChild(C.createTextNode(c)); +da?m.dx=3:m.x=g;if(!da){if(d){!Z&&a.renderer.forExport&&H(o,{display:"block"});q=K.getComputedStyle&&w(K.getComputedStyle(k,null).getPropertyValue("line-height"));if(!q||isNaN(q)){var F;if(!(F=j))if(!(F=k.offsetHeight))l[d]=b.getBBox?b.getBBox().height:a.renderer.fontMetrics(b.style.fontSize).h,F=s(l[d]-(l[d-1]||0))||18;q=F}z(o,"dy",q)}k=o}z(o,m);b.appendChild(o);da++;if(i)for(var c=c.replace(/([^\^])-/g,"$1- ").split(" "),t=[];c.length||t.length;)delete a.bBox,F=a.getBBox().width,m=F>i,!m||c.length=== +1?(c=t,t=[],c.length&&(o=C.createElementNS(pa,"tspan"),z(o,{dy:j||16,x:g}),n&&z(o,"style",n),b.appendChild(o),F>i&&(i=F))):(o.removeChild(o.firstChild),t.unshift(c.pop())),c.length&&o.appendChild(C.createTextNode(c.join(" ").replace(/- /g,"-")))}})})},button:function(a,b,c,d,e,f,g){var h=this.label(a,b,c),i=0,j,k,l,m,p,a={x1:0,y1:0,x2:0,y2:1},e=A(ka("stroke-width",1,"stroke","#999","fill",ka("linearGradient",a,"stops",[[0,"#FFF"],[1,"#DDD"]]),"r",3,"padding",3,"style",ka("color","black")),e);l=e.style; +delete e.style;f=A(e,ka("stroke","#68A","fill",ka("linearGradient",a,"stops",[[0,"#FFF"],[1,"#ACF"]])),f);m=f.style;delete f.style;g=A(e,ka("stroke","#68A","fill",ka("linearGradient",a,"stops",[[0,"#9BD"],[1,"#CDF"]])),g);p=g.style;delete g.style;I(h.element,"mouseenter",function(){h.attr(f).css(m)});I(h.element,"mouseleave",function(){j=[e,f,g][i];k=[l,m,p][i];h.attr(j).css(k)});h.setState=function(a){(i=a)?a===2&&h.attr(g).css(p):h.attr(e).css(l)};return h.on("click",function(){d.call(h)}).attr(e).css(r({cursor:"default"}, +l))},crispLine:function(a,b){a[1]===a[4]&&(a[1]=a[4]=s(a[1])-b%2/2);a[2]===a[5]&&(a[2]=a[5]=s(a[2])+b%2/2);return a},path:function(a){var b={fill:R};Ha(a)?b.d=a:X(a)&&r(b,a);return this.createElement("path").attr(b)},circle:function(a,b,c){a=X(a)?a:{x:a,y:b,r:c};return this.createElement("circle").attr(a)},arc:function(a,b,c,d,e,f){if(X(a))b=a.y,c=a.r,d=a.innerR,e=a.start,f=a.end,a=a.x;return this.symbol("arc",a||0,b||0,c||0,c||0,{innerR:d||0,start:e||0,end:f||0})},rect:function(a,b,c,d,e,f){e=X(a)? +a.r:e;e=this.createElement("rect").attr({rx:e,ry:e,fill:R});return e.attr(X(a)?a:e.crisp(f,a,b,y(c,0),y(d,0)))},setSize:function(a,b,c){var d=this.alignedObjects,e=d.length;this.width=a;this.height=b;for(this.boxWrapper[o(c,!0)?"animate":"attr"]({width:a,height:b});e--;)d[e].align()},g:function(a){var b=this.createElement("g");return t(a)?b.attr({"class":"highcharts-"+a}):b},image:function(a,b,c,d,e){var f={preserveAspectRatio:R};arguments.length>1&&r(f,{x:b,y:c,width:d,height:e});f=this.createElement("image").attr(f); +f.element.setAttributeNS?f.element.setAttributeNS("http://www.w3.org/1999/xlink","href",a):f.element.setAttribute("hc-svg-href",a);return f},symbol:function(a,b,c,d,e,f){var g,h=this.symbols[a],h=h&&h(s(b),s(c),d,e,f),i=/^url\((.*?)\)$/,j,k;h?(g=this.path(h),r(g,{symbolName:a,x:b,y:c,width:d,height:e}),f&&r(g,f)):i.test(a)&&(k=function(a,b){a.attr({width:b[0],height:b[1]});a.alignByTranslate||a.translate(-s(b[0]/2),-s(b[1]/2))},j=a.match(i)[1],a=Jb[j],g=this.image(j).attr({x:b,y:c}),a?k(g,a):(g.attr({width:0, +height:0}),Q("img",{onload:function(){k(g,Jb[j]=[this.width,this.height])},src:j})));return g},symbols:{circle:function(a,b,c,d){var e=0.166*c;return["M",a+c/2,b,"C",a+c+e,b,a+c+e,b+d,a+c/2,b+d,"C",a-e,b+d,a-e,b,a+c/2,b,"Z"]},square:function(a,b,c,d){return["M",a,b,"L",a+c,b,a+c,b+d,a,b+d,"Z"]},triangle:function(a,b,c,d){return["M",a+c/2,b,"L",a+c,b+d,a,b+d,"Z"]},"triangle-down":function(a,b,c,d){return["M",a,b,"L",a+c,b,a+c/2,b+d,"Z"]},diamond:function(a,b,c,d){return["M",a+c/2,b,"L",a+c,b+d/2,a+ +c/2,b+d,a,b+d/2,"Z"]},arc:function(a,b,c,d,e){var f=e.start,c=e.r||c||d,g=e.end-1.0E-6,d=e.innerR,h=e.open,i=V(f),j=Y(f),k=V(g),g=Y(g),e=e.end-f');if(b)c=b===ia||b==="span"||b==="img"?c.join(""):a.prepVML(c),this.element=Q(c);this.renderer=a;this.attrSetters={}},add:function(a){var b=this.renderer,c=this.element,d=b.box,d=a?a.element||a:d;a&&a.inverted&&b.invertChild(c,d);d.appendChild(c);this.added=!0;this.alignOnAdd&&!this.deferUpdateTransform&&this.updateTransform();E(this,"add"); +return this},updateTransform:va.prototype.htmlUpdateTransform,attr:function(a,b){var c,d,e,f=this.element||{},g=f.style,h=f.nodeName,i=this.renderer,j=this.symbolName,k,l=this.shadows,m,p=this.attrSetters,u=this;la(a)&&t(b)&&(c=a,a={},a[c]=b);if(la(a))c=a,u=c==="strokeWidth"||c==="stroke-width"?this.strokeweight:this[c];else for(c in a)if(d=a[c],m=!1,e=p[c]&&p[c].call(this,d,c),e!==!1&&d!==null){e!==x&&(d=e);if(j&&/^(x|y|r|start|end|width|height|innerR|anchorX|anchorY)/.test(c))k||(this.symbolAttr(a), +k=!0),m=!0;else if(c==="d"){d=d||[];this.d=d.join(" ");e=d.length;for(m=[];e--;)m[e]=Aa(d[e])?s(d[e]*10)-5:d[e]==="Z"?"x":d[e];d=m.join(" ")||"x";f.path=d;if(l)for(e=l.length;e--;)l[e].path=l[e].cutOff?this.cutOffPath(d,l[e].cutOff):d;m=!0}else if(c==="visibility"){if(l)for(e=l.length;e--;)l[e].style[c]=d;h==="DIV"&&(d=d==="hidden"?"-999em":0,c="top");g[c]=d;m=!0}else if(c==="zIndex")d&&(g[c]=d),m=!0;else if(c==="width"||c==="height")d=y(0,d),this[c]=d,this.updateClipping?(this[c]=d,this.updateClipping()): +g[c]=d,m=!0;else if(c==="x"||c==="y")this[c]=d,g[{x:"left",y:"top"}[c]]=d;else if(c==="class")f.className=d;else if(c==="stroke")d=i.color(d,f,c),c="strokecolor";else if(c==="stroke-width"||c==="strokeWidth")f.stroked=d?!0:!1,c="strokeweight",this[c]=d,Aa(d)&&(d+="px");else if(c==="dashstyle")(f.getElementsByTagName("stroke")[0]||Q(i.prepVML([""]),null,null,f))[c]=d||"solid",this.dashstyle=d,m=!0;else if(c==="fill")h==="SPAN"?g.color=d:(f.filled=d!==R?!0:!1,d=i.color(d,f,c,this),c="fillcolor"); +else if(h==="shape"&&c==="rotation")this[c]=d,f.style.left=-s(Y(d*ab)+1)+"px",f.style.top=s(V(d*ab))+"px";else if(c==="translateX"||c==="translateY"||c==="rotation")this[c]=d,this.updateTransform(),m=!0;else if(c==="text")this.bBox=null,f.innerHTML=d,m=!0;m||(Qa?f[c]=d:z(f,c,d))}return u},clip:function(a){var b=this,c,d=b.element,e=d.parentNode;a?(c=a.members,c.push(b),b.destroyClip=function(){Ba(c,b)},e&&e.className==="highcharts-tracker"&&!Qa&&H(d,{visibility:"hidden"}),a=a.getCSS(b)):(b.destroyClip&& +b.destroyClip(),a={clip:Qa?"inherit":"rect(auto)"});return b.css(a)},css:va.prototype.htmlCss,safeRemoveChild:function(a){a.parentNode&&Na(a)},destroy:function(){this.destroyClip&&this.destroyClip();return va.prototype.destroy.apply(this)},empty:function(){for(var a=this.element.childNodes,b=a.length,c;b--;)c=a[b],c.parentNode.removeChild(c)},on:function(a,b){this.element["on"+a]=function(){var a=K.event;a.target=a.srcElement;b(a)};return this},cutOffPath:function(a,b){var c,a=a.split(/[ ,]/);c=a.length; +if(c===9||c===11)a[c-4]=a[c-2]=w(a[c-2])-10*b;return a.join(" ")},shadow:function(a,b,c){var d=[],e,f=this.element,g=this.renderer,h,i=f.style,j,k=f.path,l,m,p,u;k&&typeof k.value!=="string"&&(k="x");m=k;if(a){p=o(a.width,3);u=(a.opacity||0.15)/p;for(e=1;e<=3;e++){l=p*2+1-2*e;c&&(m=this.cutOffPath(k.value,l+0.5));j=[''];h=Q(g.prepVML(j),null,{left:w(i.left)+o(a.offsetX,1),top:w(i.top)+ +o(a.offsetY,1)});if(c)h.cutOff=l+1;j=[''];Q(g.prepVML(j),null,null,h);b?b.element.appendChild(h):f.parentNode.insertBefore(h,f);d.push(h)}this.shadows=d}return this}};ja=ca(va,ja);var ha={Element:ja,isIE8:Fa.indexOf("MSIE 8.0")>-1,init:function(a,b,c){var d,e;this.alignedObjects=[];d=this.createElement(ia);e=d.element;e.style.position="relative";a.appendChild(d.element);this.box=e;this.boxWrapper=d;this.setSize(b,c,!1);if(!C.namespaces.hcv)C.namespaces.add("hcv", +"urn:schemas-microsoft-com:vml"),C.createStyleSheet().cssText="hcv\\:fill, hcv\\:path, hcv\\:shape, hcv\\:stroke{ behavior:url(#default#VML); display: inline-block; } "},isHidden:function(){return!this.box.offsetWidth},clipRect:function(a,b,c,d){var e=this.createElement(),f=X(a);return r(e,{members:[],left:f?a.x:a,top:f?a.y:b,width:f?a.width:c,height:f?a.height:d,getCSS:function(a){var b=a.inverted,c=this.top,d=this.left,e=d+this.width,f=c+this.height,c={clip:"rect("+s(b?d:c)+"px,"+s(b?f:e)+"px,"+ +s(b?e:f)+"px,"+s(b?c:d)+"px)"};!b&&Qa&&a.element.nodeName!=="IMG"&&r(c,{width:e+"px",height:f+"px"});return c},updateClipping:function(){n(e.members,function(a){a.css(e.getCSS(a))})}})},color:function(a,b,c,d){var e=this,f,g=/^rgba/,h,i,j=R;a&&a.linearGradient?i="gradient":a&&a.radialGradient&&(i="pattern");if(i){var k,l,m=a.linearGradient||a.radialGradient,p,u,o,q,D,t="",a=a.stops,s,v=[],F=function(){h=['']; +Q(e.prepVML(h),null,null,b)};p=a[0];s=a[a.length-1];p[0]>0&&a.unshift([0,p[1]]);s[0]<1&&a.push([1,s[1]]);n(a,function(a,b){g.test(a[1])?(f=qa(a[1]),k=f.get("rgb"),l=f.get("a")):(k=a[1],l=1);v.push(a[0]*100+"% "+k);b?(o=l,q=k):(u=l,D=k)});if(c==="fill")if(i==="gradient")c=m.x1||m[0]||0,a=m.y1||m[1]||0,p=m.x2||m[2]||0,m=m.y2||m[3]||0,t='angle="'+(90-J.atan((m-a)/(p-c))*180/xa)+'"',F();else{var j=m.r,r=j*2,P=j*2,y=m.cx,x=m.cy,A=b.radialReference,w,j=function(){A&&(w=d.getBBox(),y+=(A[0]-w.x)/w.width- +0.5,x+=(A[1]-w.y)/w.height-0.5,r*=A[2]/w.width,P*=A[2]/w.height);t='src="'+M.global.VMLRadialGradientURL+'" size="'+r+","+P+'" origin="0.5,0.5" position="'+y+","+x+'" color2="'+D+'" ';F()};d.added?j():I(d,"add",j);j=q}else j=k}else if(g.test(a)&&b.tagName!=="IMG")f=qa(a),h=["<",c,' opacity="',f.get("a"),'"/>'],Q(this.prepVML(h),null,null,b),j=f.get("rgb");else{j=b.getElementsByTagName(c);if(j.length)j[0].opacity=1;j=a}return j},prepVML:function(a){var b=this.isIE8,a=a.join("");b?(a=a.replace("/>", +' xmlns="urn:schemas-microsoft-com:vml" />'),a=a.indexOf('style="')===-1?a.replace("/>",' style="display:inline-block;behavior:url(#default#VML);" />'):a.replace('style="','style="display:inline-block;behavior:url(#default#VML);')):a=a.replace("<","1&&f.attr({x:b,y:c,width:d,height:e});return f},rect:function(a,b,c,d,e,f){if(X(a))b=a.y,c=a.width,d=a.height,f=a.strokeWidth,a=a.x;var g=this.symbol("rect");g.r=e;return g.attr(g.crisp(f,a,b,y(c,0),y(d,0)))},invertChild:function(a,b){var c=b.style;H(a,{flip:"x",left:w(c.width)-1,top:w(c.height)-1,rotation:-90})}, +symbols:{arc:function(a,b,c,d,e){var f=e.start,g=e.end,h=e.r||c||d,c=V(f),d=Y(f),i=V(g),j=Y(g),k=e.innerR,l=0.08/h,m=k&&0.1/k||0;if(g-f===0)return["x"];else 2*xa-g+fj&&(c=!1)):h+k>m&&(h=m-k,d&&h+l0&&b.height>0){f=A({align:c&&k&&"center",x:c?!k&&4:10,verticalAlign:!c&&k&&"middle",y:c?k?16:10:k?6:-4,rotation:c&&!k&&90},f);if(!g)a.label=g=r.text(f.text,0,0).attr({align:f.textAlign||f.align,rotation:f.rotation,zIndex:D}).css(f.style).add();b=[u[1],u[4],o(u[6],u[1])];u=[u[2],u[5],o(u[7],u[2])];c=Ma(b);k=Ma(u);g.align(f,!1,{x:c,y:k,width:Da(b)-c,height:Da(u)-k});g.show()}else g&&g.hide();return a},destroy:function(){Ba(this.axis.plotLinesAndBands,this);Ea(this,this.axis)}}; +Hb.prototype={destroy:function(){Ea(this,this.axis)},setTotal:function(a){this.cum=this.total=a},render:function(a){var b=this.options.formatter.call(this);this.label?this.label.attr({text:b,visibility:"hidden"}):this.label=this.axis.chart.renderer.text(b,0,0).css(this.options.style).attr({align:this.textAlign,rotation:this.options.rotation,visibility:"hidden"}).add(a)},setOffset:function(a,b){var c=this.axis,d=c.chart,e=d.inverted,f=this.isNegative,g=c.translate(this.percent?100:this.total,0,0,0, +1),c=c.translate(0),c=L(g-c),h=d.xAxis[0].translate(this.x)+a,i=d.plotHeight,f={x:e?f?g:g-c:h,y:e?i-h-b:f?i-g-c:i-g,width:e?c:b,height:e?b:c};if(e=this.label)e.align(this.alignOptions,null,f),f=e.alignAttr,e.attr({visibility:this.options.crop===!1||d.isInsidePlot(f.x,f.y)?Z?"inherit":"visible":"hidden"})}};ob.prototype={defaultOptions:{dateTimeLabelFormats:{millisecond:"%H:%M:%S.%L",second:"%H:%M:%S",minute:"%H:%M",hour:"%H:%M",day:"%e. %b",week:"%e. %b",month:"%b '%y",year:"%Y"},endOnTick:!1,gridLineColor:"#C0C0C0", +labels:G,lineColor:"#C0D0E0",lineWidth:1,minPadding:0.01,maxPadding:0.01,minorGridLineColor:"#E0E0E0",minorGridLineWidth:1,minorTickColor:"#A0A0A0",minorTickLength:2,minorTickPosition:"outside",startOfWeek:1,startOnTick:!1,tickColor:"#C0D0E0",tickLength:5,tickmarkPlacement:"between",tickPixelInterval:100,tickPosition:"outside",tickWidth:1,title:{align:"middle",style:{color:"#6D869F",fontWeight:"bold"}},type:"linear"},defaultYAxisOptions:{endOnTick:!0,gridLineWidth:1,tickPixelInterval:72,showLastLabel:!0, +labels:{align:"right",x:-8,y:3},lineWidth:0,maxPadding:0.05,minPadding:0.05,startOnTick:!0,tickWidth:0,title:{rotation:270,text:"Y-values"},stackLabels:{enabled:!1,formatter:function(){return this.total},style:G.style}},defaultLeftAxisOptions:{labels:{align:"right",x:-8,y:null},title:{rotation:270}},defaultRightAxisOptions:{labels:{align:"left",x:8,y:null},title:{rotation:90}},defaultBottomAxisOptions:{labels:{align:"center",x:0,y:14},title:{rotation:0}},defaultTopAxisOptions:{labels:{align:"center", +x:0,y:-5},title:{rotation:0}},init:function(a,b){var c=b.isX;this.horiz=a.inverted?!c:c;this.xOrY=(this.isXAxis=c)?"x":"y";this.opposite=b.opposite;this.side=this.horiz?this.opposite?0:2:this.opposite?1:3;this.setOptions(b);var d=this.options,e=d.type,f=e==="datetime";this.labelFormatter=d.labels.formatter||this.defaultLabelFormatter;this.staggerLines=this.horiz&&d.labels.staggerLines;this.userOptions=b;this.minPixelPadding=0;this.chart=a;this.reversed=d.reversed;this.categories=d.categories;this.isLog= +e==="logarithmic";this.isLinked=t(d.linkedTo);this.isDatetimeAxis=f;this.tickmarkOffset=d.categories&&d.tickmarkPlacement==="between"?0.5:0;this.ticks={};this.minorTicks={};this.plotLinesAndBands=[];this.alternateBands={};this.len=0;this.minRange=this.userMinRange=d.minRange||d.maxZoom;this.range=d.range;this.offset=d.offset||0;this.stacks={};this.min=this.max=null;var g,d=this.options.events;a.axes.push(this);a[c?"xAxis":"yAxis"].push(this);this.series=[];if(a.inverted&&c&&this.reversed===x)this.reversed= +!0;this.removePlotLine=this.removePlotBand=this.removePlotBandOrLine;this.addPlotLine=this.addPlotBand=this.addPlotBandOrLine;for(g in d)I(this,g,d[g]);if(this.isLog)this.val2lin=ma,this.lin2val=ba},setOptions:function(a){this.options=A(this.defaultOptions,this.isXAxis?{}:this.defaultYAxisOptions,[this.defaultTopAxisOptions,this.defaultRightAxisOptions,this.defaultBottomAxisOptions,this.defaultLeftAxisOptions][this.side],A(M[this.isXAxis?"xAxis":"yAxis"],a))},defaultLabelFormatter:function(){var a= +this.axis,b=this.value,c=this.dateTimeLabelFormat,d=M.lang.numericSymbols,e=d&&d.length,f,g=a.isLog?b:a.tickInterval;if(a.categories)f=b;else if(c)f=cb(c,b);else if(e&&g>=1E3)for(;e--&&f===x;)a=Math.pow(1E3,e+1),g>=a&&d[e]!==null&&(f=Ia(b/a,-1)+d[e]);f===x&&(f=b>=1E3?Ia(b,0):Ia(b,-1));return f},getSeriesExtremes:function(){var a=this,b=a.chart,c=a.stacks,d=[],e=[],f;a.hasVisibleSeries=!1;a.dataMin=a.dataMax=null;n(a.series,function(g){if(g.visible||!b.options.chart.ignoreHiddenSeries){var h=g.options, +i,j,k,l,m,p,u,n,q,D=h.threshold,s,r=[],v=0;a.hasVisibleSeries=!0;if(a.isLog&&D<=0)D=h.threshold=null;if(a.isXAxis){if(h=g.xData,h.length)a.dataMin=O(o(a.dataMin,h[0]),Ma(h)),a.dataMax=y(o(a.dataMax,h[0]),Da(h))}else{var F,w,P,A=g.cropped,z=g.xAxis.getExtremes(),C=!!g.modifyValue;i=h.stacking;a.usePercentage=i==="percent";if(i)m=h.stack,l=g.type+o(m,""),p="-"+l,g.stackKey=l,j=d[l]||[],d[l]=j,k=e[p]||[],e[p]=k;if(a.usePercentage)a.dataMin=0,a.dataMax=99;h=g.processedXData;u=g.processedYData;s=u.length; +for(f=0;f=z.min&&(h[f-1]||n)<=z.max))if(n=q.length)for(;n--;)q[n]!==null&&(r[v++]=q[n]);else r[v++]=q;if(!a.usePercentage&&r.length)a.dataMin=O(o(a.dataMin,r[0]),Ma(r)),a.dataMax=y(o(a.dataMax,r[0]),Da(r));if(t(D))if(a.dataMin>=D)a.dataMin=D,a.ignoreMinPadding=!0;else if(a.dataMax< +D)a.dataMax=D,a.ignoreMaxPadding=!0}}})},translate:function(a,b,c,d,e,f){var g=this.len,h=1,i=0,j=d?this.oldTransA:this.transA,d=d?this.oldMin:this.min,e=this.options.ordinal||this.isLog&&e;if(!j)j=this.transA;c&&(h*=-1,i=g);this.reversed&&(h*=-1,i-=h*g);b?(this.reversed&&(a=g-a),a=a/j+d,e&&(a=this.lin2val(a))):(e&&(a=this.val2lin(a)),a=h*(a-d)*j+i+h*this.minPixelPadding+(f?j*this.pointRange/2:0));return a},getPlotLinePath:function(a,b,c){var d=this.chart,e=this.left,f=this.top,g,h,i,a=this.translate(a, +null,null,c),j=c&&d.oldChartHeight||d.chartHeight,k=c&&d.oldChartWidth||d.chartWidth,l;g=this.transB;c=h=s(a+g);g=i=s(j-a-g);if(isNaN(a))l=!0;else if(this.horiz){if(g=f,i=j-this.bottom,ce+this.width)l=!0}else if(c=e,h=k-this.right,gf+this.height)l=!0;return l?null:d.renderer.crispLine(["M",c,g,"L",h,i],b||0)},getPlotBandPath:function(a,b){var c=this.getPlotLinePath(b),d=this.getPlotLinePath(a);d&&c?d.push(c[4],c[5],c[1],c[2]):d=null;return d},getLinearTickPositions:function(a,b,c){for(var d, +b=ea(T(b/a)*a),c=ea(wa(c/a)*a),e=[];b<=c;){e.push(b);b=ea(b+a);if(b===d)break;d=b}return e},getLogTickPositions:function(a,b,c,d){var e=this.options,f=this.len,g=[];if(!d)this._minorAutoInterval=null;if(a>=0.5)a=s(a),g=this.getLinearTickPositions(a,b,c);else if(a>=0.08)for(var f=T(b),h,i,j,k,l,e=a>0.3?[1,2,4]:a>0.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9];fb&&g.push(k),k>c&&(l=!0),k=j}else if(b=ba(b),c=ba(c),a=e[d?"minorTickInterval":"tickInterval"], +a=o(a==="auto"?null:a,this._minorAutoInterval,(c-b)*(e.tickPixelInterval/(d?5:1))/((d?f/this.tickPositions.length:f)||1)),a=hb(a,null,J.pow(10,T(J.log(a)/J.LN10))),g=Sa(this.getLinearTickPositions(a,b,c),ma),!d)this._minorAutoInterval=a/5;if(!d)this.tickInterval=a;return g},getMinorTickPositions:function(){var a=this.tickPositions,b=this.minorTickInterval,c=[],d,e;if(this.isLog){e=a.length;for(d=1;d=this.minRange,f,g,h,i,j;if(this.isXAxis&&this.minRange===x&&!this.isLog)t(a.min)||t(a.max)?this.minRange=null:(n(this.series,function(a){i=a.xData;for(g=j=a.xIncrement?1:i.length-1;g>0;g--)if(h=i[g]-i[g-1],f===x||h0||!b.ignoreMaxPadding))b.max+=c*j}b.tickInterval=b.min===b.max||b.min===void 0||b.max===void 0?1:h&&!l&&p===b.linkedParent.options.tickPixelInterval?b.linkedParent.tickInterval:o(l,u?1:(b.max-b.min)*p/(b.len||1));g&&!a&&n(b.series,function(a){a.processData(b.min!==b.oldMin||b.max!==b.oldMax)});b.setAxisTranslation(a);b.beforeSetTickPositions&&b.beforeSetTickPositions();if(b.postProcessTickInterval)b.tickInterval=b.postProcessTickInterval(b.tickInterval); +if(!l&&b.tickIntervale&&i.shift(),d.endOnTick?b.max=f:b.max+hb[d]&&this.options.alignTicks!==!1)b[d]=c.length;a.maxTicks=b},adjustTickAmount:function(){var a=this.xOrY,b=this.tickPositions,c=this.chart.maxTicks;if(c&&c[a]&&!this.isDatetimeAxis&& +!this.categories&&!this.isLinked&&this.options.alignTicks!==!1){var d=this.tickAmount,e=b.length;this.tickAmount=a=c[a];if(ea||a===null?a=c:b=a.min&&b<=a.max)j[b]||(j[b]=new Pa(a,b)),D&&j[b].isNew&&j[b].render(c,!0),j[b].isActive=!0,j[b].render(c)}),p&&n(g,function(b,c){if(c%2===0&&b1||L(b-f.y)>1))clearTimeout(this.tooltipTimeout),this.tooltipTimeout=setTimeout(function(){e&&e.move(a,b,c,d)},32)},hide:function(){if(!this.isHidden){var a=this.chart.hoverPoints;this.label.hide();a&&n(a,function(a){a.setState()});this.chart.hoverPoints=null;this.isHidden=!0}},hideCrosshairs:function(){n(this.crosshairs,function(a){a&&a.hide()})},getAnchor:function(a,b){var c,d=this.chart,e=d.inverted,f= +0,g=0,h,a=na(a);c=a[0].tooltipPos;c||(n(a,function(a){h=a.series.yAxis;f+=a.plotX;g+=(a.plotLow?(a.plotLow+a.plotHigh)/2:a.plotY)+(!e&&h?h.top-d.plotTop:0)}),f/=a.length,g/=a.length,c=[e?d.plotWidth-g:f,this.shared&&!e&&a.length>1&&b?b.chartY-d.plotTop:e?d.plotHeight-f:g]);return Sa(c,s)},getPosition:function(a,b,c){var d=this.chart,e=d.plotLeft,f=d.plotTop,g=d.plotWidth,h=d.plotHeight,i=o(this.options.distance,12),j=c.plotX,c=c.plotY,d=j+e+(d.inverted?i:-a-i),k=c-b+f+15,l;d<7&&(d=e+y(j,0)+i);d+a> +e+g&&(d-=d+a-(e+g),k=c-b+f-i,l=!0);k=k&&c<=k+b&&(k=c+f+i));k+b>f+h&&(k=y(f,f+h-b-i));return{x:d,y:k}},refresh:function(a,b){function c(){var a=this.points||na(this),b=a[0].series,c;c=[b.tooltipHeaderFormatter(a[0].key)];n(a,function(a){b=a.series;c.push(b.tooltipFormatter&&b.tooltipFormatter(a)||a.point.tooltipFormatter(b.tooltipOptions.pointFormat))});c.push(f.footerFormat||"");return c.join("")}var d=this.chart,e=this.label,f=this.options,g,h,i,j={},k,l=[];k=f.formatter||c;var j= +d.hoverPoints,m,p=f.crosshairs;i=this.shared;h=this.getAnchor(a,b);g=h[0];h=h[1];i&&(!a.series||!a.series.noSharedTooltip)?(d.hoverPoints=a,j&&n(j,function(a){a.setState()}),n(a,function(a){a.setState("hover");l.push(a.getLabelConfig())}),j={x:a[0].category,y:a[0].y},j.points=l,a=a[0]):j=a.getLabelConfig();k=k.call(j);j=a.series;i=i||!j.isCartesian||j.tooltipOutsidePlot||d.isInsidePlot(g,h);k===!1||!i?this.hide():(this.isHidden&&e.show(),e.attr({text:k}),m=f.borderColor||a.color||j.color||"#606060", +e.attr({stroke:m}),e=(f.positioner||this.getPosition).call(this,e.width,e.height,{plotX:g,plotY:h}),this.move(s(e.x),s(e.y),g+d.plotLeft,h+d.plotTop),this.isHidden=!1);if(p){p=na(p);for(e=p.length;e--;)if(i=a.series[e?"yAxis":"xAxis"],p[e]&&i)if(i=i.getPlotLinePath(e?o(a.stackY,a.y):a.x,1),this.crosshairs[e])this.crosshairs[e].attr({d:i,visibility:"visible"});else{j={"stroke-width":p[e].width||1,stroke:p[e].color||"#C0C0C0",zIndex:p[e].zIndex||2};if(p[e].dashStyle)j.dashstyle=p[e].dashStyle;this.crosshairs[e]= +d.renderer.path(i).attr(j).add()}}E(d,"tooltipRefresh",{text:k,x:g+d.plotLeft,y:h+d.plotTop,borderColor:m})}};qb.prototype={normalizeMouseEvent:function(a){var b,c,d,a=a||K.event;if(!a.target)a.target=a.srcElement;a=Lb(a);d=a.touches?a.touches.item(0):a;this.chartPosition=b=Sb(this.chart.container);d.pageX===x?(c=a.x,b=a.y):(c=d.pageX-b.left,b=d.pageY-b.top);return r(a,{chartX:s(c),chartY:s(b)})},getMouseCoordinates:function(a){var b={xAxis:[],yAxis:[]},c=this.chart;n(c.axes,function(d){var e=d.isXAxis; +b[e?"xAxis":"yAxis"].push({axis:d,value:d.translate(((c.inverted?!e:e)?a.chartX-c.plotLeft:d.top+d.len-a.chartY)-d.minPixelPadding,!0)})});return b},getIndex:function(a){var b=this.chart;return b.inverted?b.plotHeight+b.plotTop-a.chartY:a.chartX-b.plotLeft},onmousemove:function(a){var b=this.chart,c=b.series,d=b.tooltip,e,f=b.hoverPoint,g=b.hoverSeries,h,i,j=b.chartWidth,k=this.getIndex(a);if(d&&this.options.tooltip.shared&&(!g||!g.noSharedTooltip)){e=[];h=c.length;for(i=0;ij&&e.splice(h,1);if(e.length&&e[0].plotX!==this.hoverX)d.refresh(e,a),this.hoverX=e[0].plotX}if(g&&g.tracker&&(b=g.tooltipPoints[k])&&b!==f)b.onMouseOver()},resetTracker:function(a){var b=this.chart,c=b.hoverSeries,d=b.hoverPoint,e=b.tooltip,b=e&&e.shared?b.hoverPoints:d;(a=a&&e&&b)&& +na(b)[0].plotX===x&&(a=!1);if(a)e.refresh(b);else{if(d)d.onMouseOut();if(c)c.onMouseOut();e&&(e.hide(),e.hideCrosshairs());this.hoverX=null}},setDOMEvents:function(){function a(){if(b.selectionMarker){var f={xAxis:[],yAxis:[]},g=b.selectionMarker.getBBox(),h=g.x-c.plotLeft,l=g.y-c.plotTop,m;e&&(n(c.axes,function(a){if(a.options.zoomEnabled!==!1){var b=a.isXAxis,d=c.inverted?!b:b,e=a.translate(d?h:c.plotHeight-l-g.height,!0,0,0,1),d=a.translate((d?h+g.width:c.plotHeight-l)-2*a.minPixelPadding,!0,0, +0,1);!isNaN(e)&&!isNaN(d)&&(f[b?"xAxis":"yAxis"].push({axis:a,min:O(e,d),max:y(e,d)}),m=!0)}}),m&&E(c,"selection",f,function(a){c.zoom(a)}));b.selectionMarker=b.selectionMarker.destroy()}if(c)H(d,{cursor:"auto"}),c.cancelClick=e,c.mouseIsDown=e=!1;S(C,fa?"touchend":"mouseup",a)}var b=this,c=b.chart,d=c.container,e,f=b.zoomX&&!c.inverted||b.zoomY&&c.inverted,g=b.zoomY&&!c.inverted||b.zoomX&&c.inverted;b.hideTooltipOnMouseMove=function(a){a=Lb(a);b.chartPosition&&c.hoverSeries&&c.hoverSeries.isCartesian&& +!c.isInsidePlot(a.pageX-b.chartPosition.left-c.plotLeft,a.pageY-b.chartPosition.top-c.plotTop)&&b.resetTracker()};b.hideTooltipOnMouseLeave=function(){b.resetTracker();b.chartPosition=null};d.onmousedown=function(d){d=b.normalizeMouseEvent(d);!fa&&d.preventDefault&&d.preventDefault();c.mouseIsDown=!0;c.cancelClick=!1;c.mouseDownX=b.mouseDownX=d.chartX;b.mouseDownY=d.chartY;I(C,fa?"touchend":"mouseup",a)};var h=function(a){if(!a||!(a.touches&&a.touches.length>1)){a=b.normalizeMouseEvent(a);if(!fa)a.returnValue= +!1;var d=a.chartX,h=a.chartY,l=!c.isInsidePlot(d-c.plotLeft,h-c.plotTop);fa&&a.type==="touchstart"&&(z(a.target,"isTracker")?c.runTrackerClick||a.preventDefault():!c.runChartClick&&!l&&a.preventDefault());if(l)dc.plotLeft+c.plotWidth&&(d=c.plotLeft+c.plotWidth),hc.plotTop+c.plotHeight&&(h=c.plotTop+c.plotHeight);if(c.mouseIsDown&&a.type!=="touchstart"&&(e=Math.sqrt(Math.pow(b.mouseDownX-d,2)+Math.pow(b.mouseDownY-h,2)),e>10)){var m=c.isInsidePlot(b.mouseDownX- +c.plotLeft,b.mouseDownY-c.plotTop);if(c.hasCartesianSeries&&(b.zoomX||b.zoomY)&&m&&!b.selectionMarker)b.selectionMarker=c.renderer.rect(c.plotLeft,c.plotTop,f?1:c.plotWidth,g?1:c.plotHeight,0).attr({fill:b.options.chart.selectionMarkerFill||"rgba(69,114,167,0.25)",zIndex:7}).add();if(b.selectionMarker&&f){var p=d-b.mouseDownX;b.selectionMarker.attr({width:L(p),x:(p>0?0:p)+b.mouseDownX})}b.selectionMarker&&g&&(h-=b.mouseDownY,b.selectionMarker.attr({height:L(h),y:(h>0?0:h)+b.mouseDownY}));m&&!b.selectionMarker&& +b.options.chart.panning&&c.pan(d)}if(!l)b.onmousemove(a);return l||!c.hasCartesianSeries}};d.onmousemove=h;I(d,"mouseleave",b.hideTooltipOnMouseLeave);I(C,"mousemove",b.hideTooltipOnMouseMove);d.ontouchstart=function(a){if(b.zoomX||b.zoomY)d.onmousedown(a);h(a)};d.ontouchmove=h;d.ontouchend=function(){e&&b.resetTracker()};d.onclick=function(a){var d=c.hoverPoint,e,f,a=b.normalizeMouseEvent(a);a.cancelBubble=!0;if(!c.cancelClick)d&&(z(a.target,"isTracker")||z(a.target.parentNode,"isTracker"))?(e=d.plotX, +f=d.plotY,r(d,{pageX:b.chartPosition.left+c.plotLeft+(c.inverted?c.plotWidth-f:e),pageY:b.chartPosition.top+c.plotTop+(c.inverted?c.plotHeight-e:f)}),E(d.series,"click",r(a,{point:d})),d.firePointEvent("click",a)):(r(a,b.getMouseCoordinates(a)),c.isInsidePlot(a.chartX-c.plotLeft,a.chartY-c.plotTop)&&E(c,"click",a))}},destroy:function(){var a=this.chart,b=a.container;if(a.trackerGroup)a.trackerGroup=a.trackerGroup.destroy();S(b,"mouseleave",this.hideTooltipOnMouseLeave);S(C,"mousemove",this.hideTooltipOnMouseMove); +b.onclick=b.onmousedown=b.onmousemove=b.ontouchstart=b.ontouchend=b.ontouchmove=null;clearInterval(this.tooltipTimeout)},init:function(a,b){if(!a.trackerGroup)a.trackerGroup=a.renderer.g("tracker").attr({zIndex:9}).add();if(b.enabled)a.tooltip=new pb(a,b);this.setDOMEvents()}};rb.prototype={init:function(a){var b=this,c=b.options=a.options.legend;if(c.enabled){var d=c.itemStyle,e=o(c.padding,8),f=c.itemMarginTop||0;b.baseline=w(d.fontSize)+3+f;b.itemStyle=d;b.itemHiddenStyle=A(d,c.itemHiddenStyle); +b.itemMarginTop=f;b.padding=e;b.initialItemX=e;b.initialItemY=e-5;b.maxItemWidth=0;b.chart=a;b.itemHeight=0;b.lastLineHeight=0;b.render();I(b.chart,"endResize",function(){b.positionCheckboxes()})}},colorizeItem:function(a,b){var c=this.options,d=a.legendItem,e=a.legendLine,f=a.legendSymbol,g=this.itemHiddenStyle.color,c=b?c.itemStyle.color:g,h=b?a.color:g,g=a.options&&a.options.marker,i={stroke:h,fill:h},j;d&&d.css({fill:c});e&&e.attr({stroke:h});if(f){if(g)for(j in g=a.convertAttribs(g),g)d=g[j], +d!==x&&(i[j]=d);f.attr(i)}},positionItem:function(a){var b=this.options,c=b.symbolPadding,b=!b.rtl,d=a._legendItemPos,e=d[0],d=d[1],f=a.checkbox;a.legendGroup&&a.legendGroup.translate(b?e:this.legendWidth-e-2*c-4,d);if(f)f.x=e,f.y=d},destroyItem:function(a){var b=a.checkbox;n(["legendItem","legendLine","legendSymbol","legendGroup"],function(b){a[b]&&a[b].destroy()});b&&Na(a.checkbox)},destroy:function(){var a=this.group,b=this.box;if(b)this.box=b.destroy();if(a)this.group=a.destroy()},positionCheckboxes:function(){var a= +this;n(a.allItems,function(b){var c=b.checkbox,d=a.group.alignAttr;c&&H(c,{left:d.translateX+b.legendItemWidth+c.x-20+"px",top:d.translateY+c.y+3+"px"})})},renderItem:function(a){var u;var b=this,c=b.chart,d=c.renderer,e=b.options,f=e.layout==="horizontal",g=e.symbolWidth,h=e.symbolPadding,i=b.itemStyle,j=b.itemHiddenStyle,k=b.padding,l=!e.rtl,m=e.width,p=e.itemMarginBottom||0,o=b.itemMarginTop,n=b.initialItemX,q=a.legendItem,t=a.series||a,r=t.options,s=r.showCheckbox;if(!q&&(a.legendGroup=d.g("legend-item").attr({zIndex:1}).add(b.scrollGroup), +t.drawLegendSymbol(b,a),a.legendItem=q=d.text(e.labelFormatter.call(a),l?g+h:-h,b.baseline,e.useHTML).css(A(a.visible?i:j)).attr({align:l?"left":"right",zIndex:2}).add(a.legendGroup),a.legendGroup.on("mouseover",function(){a.setState("hover");q.css(b.options.itemHoverStyle)}).on("mouseout",function(){q.css(a.visible?i:j);a.setState()}).on("click",function(b){var c=function(){a.setVisible()},b={browserEvent:b};a.firePointEvent?a.firePointEvent("legendItemClick",b,c):E(a,"legendItemClick",b,c)}),b.colorizeItem(a, +a.visible),r&&s))a.checkbox=Q("input",{type:"checkbox",checked:a.selected,defaultChecked:a.selected},e.itemCheckboxStyle,c.container),I(a.checkbox,"click",function(b){E(a,"checkboxClick",{checked:b.target.checked},function(){a.select()})});d=q.getBBox();u=a.legendItemWidth=e.itemWidth||g+h+d.width+k+(s?20:0),e=u;b.itemHeight=g=d.height;if(f&&b.itemX-n+e>(m||c.chartWidth-2*k-n))b.itemX=n,b.itemY+=o+b.lastLineHeight+p,b.lastLineHeight=0;b.maxItemWidth=y(b.maxItemWidth,e);b.lastItemY=o+b.itemY+p;b.lastLineHeight= +y(g,b.lastLineHeight);a._legendItemPos=[b.itemX,b.itemY];f?b.itemX+=e:(b.itemY+=o+g+p,b.lastLineHeight=g);b.offsetWidth=m||y(f?b.itemX-n:e,b.offsetWidth)},render:function(){var a=this,b=a.chart,c=b.renderer,d=a.group,e,f,g,h,i=a.box,j=a.options,k=a.padding,l=j.borderWidth,m=j.backgroundColor;a.itemX=a.initialItemX;a.itemY=a.initialItemY;a.offsetWidth=0;a.lastItemY=0;if(!d)a.group=d=c.g("legend").attr({zIndex:7}).add(),a.contentGroup=c.g().attr({zIndex:1}).add(d),a.scrollGroup=c.g().add(a.contentGroup), +a.clipRect=c.clipRect(0,0,9999,b.chartHeight),a.contentGroup.clip(a.clipRect);e=[];n(b.series,function(a){var b=a.options;b.showInLegend&&(e=e.concat(a.legendItems||(b.legendType==="point"?a.data:a)))});Fb(e,function(a,b){return(a.options&&a.options.legendIndex||0)-(b.options&&b.options.legendIndex||0)});j.reversed&&e.reverse();a.allItems=e;a.display=f=!!e.length;n(e,function(b){a.renderItem(b)});g=j.width||a.offsetWidth;h=a.lastItemY+a.lastLineHeight;h=a.handleOverflow(h);if(l||m){g+=k;h+=k;if(i){if(g> +0&&h>0)i[i.isNew?"attr":"animate"](i.crisp(null,null,null,g,h)),i.isNew=!1}else a.box=i=c.rect(0,0,g,h,j.borderRadius,l||0).attr({stroke:j.borderColor,"stroke-width":l||0,fill:m||R}).add(d).shadow(j.shadow),i.isNew=!0;i[f?"show":"hide"]()}a.legendWidth=g;a.legendHeight=h;n(e,function(b){a.positionItem(b)});f&&d.align(r({width:g,height:h},j),!0,b.spacingBox);b.isResizing||this.positionCheckboxes()},handleOverflow:function(a){var b=this,c=this.chart,d=c.renderer,e=this.options,f=e.y,f=c.spacingBox.height+ +(e.verticalAlign==="top"?-f:f)-this.padding,g=e.maxHeight,h=this.clipRect,i=e.navigation,j=o(i.animation,!0),k=i.arrowSize||12,l=this.nav;e.layout==="horizontal"&&(f/=2);g&&(f=O(f,g));if(a>f){this.clipHeight=c=f-20;this.pageCount=wa(a/c);this.currentPage=o(this.currentPage,1);this.fullHeight=a;h.attr({height:c});if(!l)this.nav=l=d.g().attr({zIndex:1}).add(this.group),this.up=d.symbol("triangle",0,0,k,k).on("click",function(){b.scroll(-1,j)}).add(l),this.pager=d.text("",15,10).css(i.style).add(l), +this.down=d.symbol("triangle-down",0,0,k,k).on("click",function(){b.scroll(1,j)}).add(l);b.scroll(0);a=f}else l&&(h.attr({height:c.chartHeight}),l.hide(),this.scrollGroup.attr({translateY:1}));return a},scroll:function(a,b){var c=this.pageCount,d=this.currentPage+a,e=this.clipHeight,f=this.options.navigation,g=f.activeColor,f=f.inactiveColor,h=this.pager,i=this.padding;d>c&&(d=c);if(d>0)b!==x&&ua(b,this.chart),this.nav.attr({translateX:i,translateY:e+7,visibility:"visible"}),this.up.attr({fill:d=== +1?f:g}).css({cursor:d===1?"default":"pointer"}),h.attr({text:d+"/"+this.pageCount}),this.down.attr({x:18+this.pager.getBBox().width,fill:d===c?f:g}).css({cursor:d===c?"default":"pointer"}),this.scrollGroup.animate({translateY:-O(e*(d-1),this.fullHeight-e+i)+1}),h.attr({text:d+"/"+c}),this.currentPage=d}};sb.prototype={initSeries:function(a){var b=this.options.chart,b=new $[a.type||b.type||b.defaultSeriesType];b.init(this,a);return b},addSeries:function(a,b,c){var d,e=this;a&&(ua(c,e),b=o(b,!0),E(e, +"addSeries",{options:a},function(){d=e.initSeries(a);e.isDirtyLegend=!0;b&&e.redraw()}));return d},isInsidePlot:function(a,b,c){var d=c?b:a,a=c?a:b;return d>=0&&d<=this.plotWidth&&a>=0&&a<=this.plotHeight},adjustTickAmounts:function(){this.options.chart.alignTicks!==!1&&n(this.axes,function(a){a.adjustTickAmount()});this.maxTicks=null},redraw:function(a){var b=this.axes,c=this.series,d=this.tracker,e=this.legend,f=this.isDirtyLegend,g,h=this.isDirtyBox,i=c.length,j=i,k=this.renderer,l=k.isHidden(), +m=[];ua(a,this);for(l&&this.cloneRenderTo();j--;)if(a=c[j],a.isDirty&&a.options.stacking){g=!0;break}if(g)for(j=i;j--;)if(a=c[j],a.options.stacking)a.isDirty=!0;n(c,function(a){a.isDirty&&a.options.legendType==="point"&&(f=!0)});if(f&&e.options.enabled)e.render(),this.isDirtyLegend=!1;if(this.hasCartesianSeries){if(!this.isResizing)this.maxTicks=null,n(b,function(a){a.setScale()});this.adjustTickAmounts();this.getMargins();n(b,function(a){if(a.isDirtyExtremes)a.isDirtyExtremes=!1,m.push(function(){E(a, +"afterSetExtremes",a.getExtremes())});if(a.isDirty||h||g)a.redraw(),h=!0})}h&&this.drawChartBox();n(c,function(a){a.isDirty&&a.visible&&(!a.isCartesian||a.xAxis)&&a.redraw()});d&&d.resetTracker&&d.resetTracker(!0);k.draw();E(this,"redraw");l&&this.cloneRenderTo(!0);n(m,function(a){a.call()})},showLoading:function(a){var b=this.options,c=this.loadingDiv,d=b.loading;if(!c)this.loadingDiv=c=Q(ia,{className:"highcharts-loading"},r(d.style,{left:this.plotLeft+"px",top:this.plotTop+"px",width:this.plotWidth+ +"px",height:this.plotHeight+"px",zIndex:10,display:R}),this.container),this.loadingSpan=Q("span",null,d.labelStyle,c);this.loadingSpan.innerHTML=a||b.lang.loading;if(!this.loadingShown)H(c,{opacity:0,display:""}),xb(c,{opacity:d.style.opacity},{duration:d.showDuration||0}),this.loadingShown=!0},hideLoading:function(){var a=this.options,b=this.loadingDiv;b&&xb(b,{opacity:0},{duration:a.loading.hideDuration||100,complete:function(){H(b,{display:R})}});this.loadingShown=!1},get:function(a){var b=this.axes, +c=this.series,d,e;for(d=0;dO(e.dataMin,e.min)&&c19?this.containerHeight: +400)},cloneRenderTo:function(a){var b=this.renderToClone,c=this.container;a?b&&(this.renderTo.appendChild(c),Na(b),delete this.renderToClone):(c&&this.renderTo.removeChild(c),this.renderToClone=b=this.renderTo.cloneNode(0),H(b,{position:"absolute",top:"-9999px",display:"block"}),C.body.appendChild(b),c&&b.appendChild(c))},getContainer:function(){var a,b=this.options.chart,c,d,e;this.renderTo=a=b.renderTo;e="highcharts-"+ub++;if(la(a))this.renderTo=a=C.getElementById(a);a||$a(13,!0);a.innerHTML=""; +a.offsetWidth||this.cloneRenderTo();this.getChartSize();c=this.chartWidth;d=this.chartHeight;this.container=a=Q(ia,{className:"highcharts-container"+(b.className?" "+b.className:""),id:e},r({position:"relative",overflow:"hidden",width:c+"px",height:d+"px",textAlign:"left",lineHeight:"normal",zIndex:0},b.style),this.renderToClone||a);this.renderer=b.forExport?new ra(a,c,d,!0):new Ra(a,c,d);U&&this.renderer.create(this,a,c,d)},getMargins:function(){var a=this.options.chart,b=a.spacingTop,c=a.spacingRight, +d=a.spacingBottom,a=a.spacingLeft,e,f=this.legend,g=this.optionsMarginTop,h=this.optionsMarginLeft,i=this.optionsMarginRight,j=this.optionsMarginBottom,k=this.chartTitleOptions,l=this.chartSubtitleOptions,m=this.options.legend,p=o(m.margin,10),u=m.x,r=m.y,q=m.align,s=m.verticalAlign;this.resetMargins();e=this.axisOffset;if((this.title||this.subtitle)&&!t(this.optionsMarginTop))if(l=y(this.title&&!k.floating&&!k.verticalAlign&&k.y||0,this.subtitle&&!l.floating&&!l.verticalAlign&&l.y||0))this.plotTop= +y(this.plotTop,l+o(k.margin,15)+b);if(f.display&&!m.floating)if(q==="right"){if(!t(i))this.marginRight=y(this.marginRight,f.legendWidth-u+p+c)}else if(q==="left"){if(!t(h))this.plotLeft=y(this.plotLeft,f.legendWidth+u+p+a)}else if(s==="top"){if(!t(g))this.plotTop=y(this.plotTop,f.legendHeight+r+p+b)}else if(s==="bottom"&&!t(j))this.marginBottom=y(this.marginBottom,f.legendHeight-r+p+d);this.extraBottomMargin&&(this.marginBottom+=this.extraBottomMargin);this.extraTopMargin&&(this.plotTop+=this.extraTopMargin); +this.hasCartesianSeries&&n(this.axes,function(a){a.getOffset()});t(h)||(this.plotLeft+=e[3]);t(g)||(this.plotTop+=e[0]);t(j)||(this.marginBottom+=e[2]);t(i)||(this.marginRight+=e[1]);this.setChartSize()},initReflow:function(){function a(a){var g=c.width||db(d,"width"),h=c.height||db(d,"height"),a=a?a.target:K;if(g&&h&&(a===K||a===C)){if(g!==b.containerWidth||h!==b.containerHeight)clearTimeout(e),b.reflowTimeout=e=setTimeout(function(){b.container&&b.resize(g,h,!1)},100);b.containerWidth=g;b.containerHeight= +h}}var b=this,c=b.options.chart,d=b.renderTo,e;I(K,"resize",a);I(b,"destroy",function(){S(K,"resize",a)})},resize:function(a,b,c){var d=this,e,f,g=d.resetZoomButton,h=d.title,i=d.subtitle,j;d.isResizing+=1;j=function(){d&&E(d,"endResize",null,function(){d.isResizing-=1})};ua(c,d);d.oldChartHeight=d.chartHeight;d.oldChartWidth=d.chartWidth;if(t(a))d.chartWidth=e=s(a);if(t(b))d.chartHeight=f=s(b);H(d.container,{width:e+"px",height:f+"px"});d.renderer.setSize(e,f,c);d.plotWidth=e-d.plotLeft-d.marginRight; +d.plotHeight=f-d.plotTop-d.marginBottom;d.maxTicks=null;n(d.axes,function(a){a.isDirty=!0;a.setScale()});n(d.series,function(a){a.isDirty=!0});d.isDirtyLegend=!0;d.isDirtyBox=!0;d.getMargins();a=d.spacingBox;h&&h.align(null,null,a);i&&i.align(null,null,a);g&&g.align&&g.align(null,null,d[g.alignTo]);d.redraw(c);d.oldChartHeight=null;E(d,"resize");Oa===!1?j():setTimeout(j,Oa&&Oa.duration||500)},setChartSize:function(){var a=this.inverted,b=this.chartWidth,c=this.chartHeight,d=this.options.chart,e=d.spacingTop, +f=d.spacingRight,g=d.spacingBottom,h=d.spacingLeft,i,j,k,l;this.plotLeft=i=s(this.plotLeft);this.plotTop=j=s(this.plotTop);this.plotWidth=k=s(b-i-this.marginRight);this.plotHeight=l=s(c-j-this.marginBottom);this.plotSizeX=a?l:k;this.plotSizeY=a?k:l;this.plotBorderWidth=a=d.plotBorderWidth||0;this.spacingBox={x:h,y:e,width:b-h-f,height:c-e-g};this.plotBox={x:i,y:j,width:k,height:l};this.clipBox={x:a/2,y:a/2,width:this.plotSizeX-a,height:this.plotSizeY-a};n(this.axes,function(a){a.setAxisSize();a.setAxisTranslation()})}, +resetMargins:function(){var a=this.options.chart,b=a.spacingRight,c=a.spacingBottom,d=a.spacingLeft;this.plotTop=o(this.optionsMarginTop,a.spacingTop);this.marginRight=o(this.optionsMarginRight,b);this.marginBottom=o(this.optionsMarginBottom,c);this.plotLeft=o(this.optionsMarginLeft,d);this.axisOffset=[0,0,0,0]},drawChartBox:function(){var a=this.options.chart,b=this.renderer,c=this.chartWidth,d=this.chartHeight,e=this.chartBackground,f=this.plotBackground,g=this.plotBorder,h=this.plotBGImage,i=a.borderWidth|| +0,j=a.backgroundColor,k=a.plotBackgroundColor,l=a.plotBackgroundImage,m=a.plotBorderWidth||0,p,o=this.plotLeft,n=this.plotTop,q=this.plotWidth,r=this.plotHeight,t=this.plotBox,s=this.clipRect,v=this.clipBox;p=i+(a.shadow?8:0);if(i||j)if(e)e.animate(e.crisp(null,null,null,c-p,d-p));else{e={fill:j||R};if(i)e.stroke=a.borderColor,e["stroke-width"]=i;this.chartBackground=b.rect(p/2,p/2,c-p,d-p,a.borderRadius,i).attr(e).add().shadow(a.shadow)}if(k)f?f.animate(t):this.plotBackground=b.rect(o,n,q,r,0).attr({fill:k}).add().shadow(a.plotShadow); +if(l)h?h.animate(t):this.plotBGImage=b.image(l,o,n,q,r).add();s?s.animate({width:v.width,height:v.height}):this.clipRect=b.clipRect(v);if(m)g?g.animate(g.crisp(null,o,n,q,r)):this.plotBorder=b.rect(o,n,q,r,0,m).attr({stroke:a.plotBorderColor,"stroke-width":m,zIndex:1}).add();this.isDirtyBox=!1},propFromSeries:function(){var a=this,b=a.options.chart,c,d=a.options.series,e,f;n(["inverted","angular","polar"],function(g){c=$[b.type||b.defaultSeriesType];f=a[g]||b[g]||c&&c.prototype[g];for(e=d&&d.length;!f&& +e--;)(c=$[d[e].type])&&c.prototype[g]&&(f=!0);a[g]=f})},render:function(){var a=this,b=a.axes,c=a.renderer,d=a.options,e=d.labels,d=d.credits,f;a.setTitle();a.legend=new rb(a);n(b,function(a){a.setScale()});a.getMargins();a.maxTicks=null;n(b,function(a){a.setTickPositions(!0);a.setMaxTicks()});a.adjustTickAmounts();a.getMargins();a.drawChartBox();a.hasCartesianSeries&&n(b,function(a){a.render()});if(!a.seriesGroup)a.seriesGroup=c.g("series-group").attr({zIndex:3}).add();n(a.series,function(a){a.translate(); +a.setTooltipPoints();a.render()});e.items&&n(e.items,function(b){var d=r(e.style,b.style),f=w(d.left)+a.plotLeft,j=w(d.top)+a.plotTop+12;delete d.left;delete d.top;c.text(b.html,f,j).attr({zIndex:2}).css(d).add()});if(d.enabled&&!a.credits)f=d.href,a.credits=c.text(d.text,0,0).on("click",function(){if(f)location.href=f}).attr({align:d.position.align,zIndex:8}).css(d.style).add().align(d.position);a.hasRendered=!0},destroy:function(){var a=this,b=a.axes,c=a.series,d=a.container,e,f=d&&d.parentNode; +E(a,"destroy");S(a);for(e=b.length;e--;)b[e]=b[e].destroy();for(e=c.length;e--;)c[e]=c[e].destroy();n("title,subtitle,chartBackground,plotBackground,plotBGImage,plotBorder,seriesGroup,clipRect,credits,tracker,scroller,rangeSelector,legend,resetZoomButton,tooltip,renderer".split(","),function(b){var c=a[b];c&&c.destroy&&(a[b]=c.destroy())});if(d)d.innerHTML="",S(d),f&&Na(d);for(e in a)delete a[e]},firstRender:function(){var a=this,b=a.options,c=a.callback;if(!Z&&K==K.top&&C.readyState!=="complete"|| +U&&!K.canvg)U?Mb.push(function(){a.firstRender()},b.global.canvasToolsURL):C.attachEvent("onreadystatechange",function(){C.detachEvent("onreadystatechange",a.firstRender);C.readyState==="complete"&&a.firstRender()});else{a.getContainer();E(a,"init");if(Highcharts.RangeSelector&&b.rangeSelector.enabled)a.rangeSelector=new Highcharts.RangeSelector(a);a.resetMargins();a.setChartSize();a.propFromSeries();a.getAxes();n(b.series||[],function(b){a.initSeries(b)});if(Highcharts.Scroller&&(b.navigator.enabled|| +b.scrollbar.enabled))a.scroller=new Highcharts.Scroller(a);a.tracker=new qb(a,b);a.render();a.renderer.draw();c&&c.apply(a,[a]);n(a.callbacks,function(b){b.apply(a,[a])});a.cloneRenderTo(!0);E(a,"load")}},init:function(a){var b=this.options.chart,c;b.reflow!==!1&&I(this,"load",this.initReflow);if(a)for(c in a)I(this,c,a[c]);this.xAxis=[];this.yAxis=[];this.animation=U?!1:o(b.animation,!0);this.setSize=this.resize;this.pointCount=0;this.counters=new Eb;this.firstRender()}};sb.prototype.callbacks=[]; +var Ta=function(){};Ta.prototype={init:function(a,b,c){var d=a.chart.counters;this.series=a;this.applyOptions(b,c);this.pointAttr={};if(a.options.colorByPoint)b=a.chart.options.colors,this.color=this.color||b[d.color++],d.wrapColor(b.length);a.chart.pointCount++;return this},applyOptions:function(a,b){var c=this.series,d=typeof a;this.config=a;if(d==="number"||a===null)this.y=a;else if(typeof a[0]==="number")this.x=a[0],this.y=a[1];else if(d==="object"&&typeof a.length!=="number"){r(this,a);this.options= +a;if(a.dataLabels)c._hasPointLabels=!0;if(a.marker)c._hasPointMarkers=!0}else if(typeof a[0]==="string")this.name=a[0],this.y=a[1];if(this.x===x)this.x=b===x?c.autoIncrement():b},destroy:function(){var a=this.series.chart,b=a.hoverPoints,c;a.pointCount--;if(b&&(this.setState(),Ba(b,this),!b.length))a.hoverPoints=null;if(this===a.hoverPoint)this.onMouseOut();if(this.graphic||this.dataLabel)S(this),this.destroyElements();this.legendItem&&a.legend.destroyItem(this);for(c in this)this[c]=null},destroyElements:function(){for(var a= +"graphic,tracker,dataLabel,group,connector,shadowGroup".split(","),b,c=6;c--;)b=a[c],this[b]&&(this[b]=this[b].destroy())},getLabelConfig:function(){return{x:this.category,y:this.y,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}},select:function(a,b){var c=this,d=c.series.chart,a=o(a,!c.selected);c.firePointEvent(a?"select":"unselect",{accumulate:b},function(){c.selected=a;c.setState(a&&"select");b||n(d.getSelectedPoints(),function(a){if(a.selected&& +a!==c)a.selected=!1,a.setState(""),a.firePointEvent("unselect")})})},onMouseOver:function(){var a=this.series,b=a.chart,c=b.tooltip,d=b.hoverPoint;if(d&&d!==this)d.onMouseOut();this.firePointEvent("mouseOver");c&&(!c.shared||a.noSharedTooltip)&&c.refresh(this);this.setState("hover");b.hoverPoint=this},onMouseOut:function(){var a=this.series.chart,b=a.hoverPoints;if(!b||Rb(this,b)===-1)this.firePointEvent("mouseOut"),this.setState(),a.hoverPoint=null},tooltipFormatter:function(a){var b=this.series, +c=b.tooltipOptions,d=a.match(/\{(series|point)\.[a-zA-Z]+\}/g),e=/[{\.}]/,f,g,h,i,j={y:0,open:0,high:0,low:0,close:0,percentage:1,total:1};c.valuePrefix=c.valuePrefix||c.yPrefix;c.valueDecimals=c.valueDecimals||c.yDecimals;c.valueSuffix=c.valueSuffix||c.ySuffix;for(i in d)g=d[i],la(g)&&g!==a&&(h=(" "+g).split(e),f={point:this,series:b}[h[1]],h=h[2],f===this&&j.hasOwnProperty(h)?(f=j[h]?h:"value",f=(c[f+"Prefix"]||"")+Ia(this[h],o(c[f+"Decimals"],-1))+(c[f+"Suffix"]||"")):f=f[h],a=a.replace(g,f)); +return a},update:function(a,b,c){var d=this,e=d.series,f=d.graphic,g,h=e.data,i=h.length,j=e.chart,b=o(b,!0);d.firePointEvent("update",{options:a},function(){d.applyOptions(a);X(a)&&(e.getAttribs(),f&&f.attr(d.pointAttr[e.state]));for(g=0;ga+1&&b.push(d.slice(a+1,g)),a=g):g===e-1&&b.push(d.slice(a+1,g+1))});this.segments=b},setOptions:function(a){var b=this.chart.options,c=b.plotOptions,d=c[this.type],e=a.data;a.data=null;c=A(d,c.series,a);c.data=a.data=e;this.tooltipOptions=A(b.tooltip,c.tooltip);d.marker===null&&delete c.marker;return c},getColor:function(){var a=this.options,b=this.chart.options.colors,c=this.chart.counters;this.color=a.color|| +!a.colorByPoint&&b[c.color++]||"gray";c.wrapColor(b.length)},getSymbol:function(){var a=this.options.marker,b=this.chart,c=b.options.symbols,b=b.counters;this.symbol=a.symbol||c[b.symbol++];if(/^url/.test(this.symbol))a.radius=0;b.wrapSymbol(c.length)},drawLegendSymbol:function(a){var b=this.options,c=b.marker,d=a.options.symbolWidth,e=this.chart.renderer,f=this.legendGroup,a=a.baseline,g;if(b.lineWidth){g={"stroke-width":b.lineWidth};if(b.dashStyle)g.dashstyle=b.dashStyle;this.legendLine=e.path(["M", +0,a-4,"L",d,a-4]).attr(g).add(f)}if(c&&c.enabled)b=c.radius,this.legendSymbol=e.symbol(this.symbol,d/2-b,a-4-b,2*b,2*b).add(f)},addPoint:function(a,b,c,d){var e=this.data,f=this.graph,g=this.area,h=this.chart,i=this.xData,j=this.yData,k=f&&f.shift||0,l=this.options.data,m=this.pointClass.prototype;ua(d,h);if(f&&c)f.shift=k+1;if(g){if(c)g.shift=k+1;g.isArea=!0}b=o(b,!0);d={series:this};m.applyOptions.apply(d,[a]);i.push(d.x);j.push(m.toYData?m.toYData.call(d):d.y);l.push(a);c&&(e[0]&&e[0].remove?e[0].remove(!1): +(e.shift(),i.shift(),j.shift(),l.shift()));this.getAttribs();this.isDirtyData=this.isDirty=!0;b&&h.redraw()},setData:function(a,b){var c=this.points,d=this.options,e=this.initialColor,f=this.chart,g=null,h=this.xAxis,i,j=this.pointClass.prototype;this.xIncrement=null;this.pointRange=h&&h.categories?1:d.pointRange;if(t(e))f.counters.color=e;var e=[],k=[],l=a?a.length:[],m=(i=this.pointArrayMap)&&i.length;if(l>(d.turboThreshold||1E3)){for(i=0;g===null&&ik||this.forceCrop))if(a=i.getExtremes(), +i=a.min,k=a.max,b[d-1]k)b=[],c=[];else if(b[0]k){for(a=0;a=i){e=y(0,a-1);break}for(;ak){f=a+1;break}b=b.slice(e,f);c=c.slice(e,f);g=!0}for(a=b.length-1;a>0;a--)if(d=b[a]-b[a-1],d>0&&(h===x||d=0&&c<=d;)i[c++]=g}this.tooltipPoints=i}},tooltipHeaderFormatter:function(a){var b=this.tooltipOptions,c=b.xDateFormat,d=this.xAxis,e=d&&d.options.type==="datetime",f;if(e&&!c)for(f in B)if(B[f]>=d.closestPointRange){c=b.dateTimeLabelFormats[f];break}return b.headerFormat.replace("{point.key}",e&&Aa(a)? +cb(c,a):a).replace("{series.name}",this.name).replace("{series.color}",this.color)},onMouseOver:function(){var a=this.chart,b=a.hoverSeries;if(b&&b!==this)b.onMouseOut();this.options.events.mouseOver&&E(this,"mouseOver");this.setState("hover");a.hoverSeries=this},onMouseOut:function(){var a=this.options,b=this.chart,c=b.tooltip,d=b.hoverPoint;if(d)d.onMouseOut();this&&a.events.mouseOut&&E(this,"mouseOut");c&&!a.stickyTracking&&!c.shared&&c.hide();this.setState();b.hoverSeries=null},animate:function(a){var b= +this,c=b.chart,d=c.renderer,e;e=b.options.animation;var f=c.clipBox,g=c.inverted,h;if(e&&!X(e))e=W[b.type].animation;h="_sharedClip"+e.duration+e.easing;if(a)a=c[h],e=c[h+"m"],a||(c[h]=a=d.clipRect(r(f,{width:0})),c[h+"m"]=e=d.clipRect(-99,g?-c.plotLeft:-c.plotTop,99,g?c.chartWidth:c.chartHeight)),b.group.clip(a),b.markerGroup.clip(e),b.sharedClipKey=h;else{if(a=c[h])a.animate({width:c.plotSizeX},e),c[h+"m"].animate({width:c.plotSizeX+99},e);b.animate=null;b.animationTimeout=setTimeout(function(){b.afterAnimate()}, +e.duration)}},afterAnimate:function(){var a=this.chart,b=this.sharedClipKey,c=this.group;c&&this.options.clip!==!1&&(c.clip(a.clipRect),this.markerGroup.clip());setTimeout(function(){b&&a[b]&&(a[b]=a[b].destroy(),a[b+"m"]=a[b+"m"].destroy())},100)},drawPoints:function(){var a,b=this.points,c=this.chart,d,e,f,g,h,i,j,k,l=this.options.marker,m,p=this.markerGroup;if(l.enabled||this._hasPointMarkers)for(f=b.length;f--;)if(g=b[f],d=g.plotX,e=g.plotY,k=g.graphic,i=g.marker||{},a=l.enabled&&i.enabled=== +x||i.enabled,m=c.isInsidePlot(d,e,c.inverted),a&&e!==x&&!isNaN(e))if(a=g.pointAttr[g.selected?"select":""],h=a.r,i=o(i.symbol,this.symbol),j=i.indexOf("url")===0,k)k.attr({visibility:m?Z?"inherit":"visible":"hidden"}).animate(r({x:d-h,y:e-h},k.symbolName?{width:2*h,height:2*h}:{}));else{if(m&&(h>0||j))g.graphic=c.renderer.symbol(i,d-h,e-h,2*h,2*h).attr(a).add(p)}else if(k)g.graphic=k.destroy()},convertAttribs:function(a,b,c,d){var e=this.pointAttrToOptions,f,g,h={},a=a||{},b=b||{},c=c||{},d=d||{}; +for(f in e)g=e[f],h[f]=o(a[g],b[f],c[f],d[f]);return h},getAttribs:function(){var a=this,b=W[a.type].marker?a.options.marker:a.options,c=b.states,d=c.hover,e,f=a.color,g={stroke:f,fill:f},h=a.points||[],i=[],j,k=a.pointAttrToOptions,l;a.options.marker?(d.radius=d.radius||b.radius+2,d.lineWidth=d.lineWidth||b.lineWidth+1):d.color=d.color||qa(d.color||f).brighten(d.brightness).get();i[""]=a.convertAttribs(b,g);n(["hover","select"],function(b){i[b]=a.convertAttribs(c[b],i[""])});a.pointAttr=i;for(f= +h.length;f--;){g=h[f];if((b=g.options&&g.options.marker||g.options)&&b.enabled===!1)b.radius=0;e=a.options.colorByPoint;if(g.options)for(l in k)t(b[k[l]])&&(e=!0);if(e){b=b||{};j=[];c=b.states||{};e=c.hover=c.hover||{};if(!a.options.marker)e.color=qa(e.color||g.color).brighten(e.brightness||d.brightness).get();j[""]=a.convertAttribs(r({color:g.color},b),i[""]);j.hover=a.convertAttribs(c.hover,i.hover,j[""]);j.select=a.convertAttribs(c.select,i.select,j[""])}else j=i;g.pointAttr=j}},destroy:function(){var a= +this,b=a.chart,c=/AppleWebKit\/533/.test(Fa),d,e,f=a.data||[],g,h,i;E(a,"destroy");S(a);n(["xAxis","yAxis"],function(b){if(i=a[b])Ba(i.series,a),i.isDirty=!0});a.legendItem&&a.chart.legend.destroyItem(a);for(e=f.length;e--;)(g=f[e])&&g.destroy&&g.destroy();a.points=null;clearTimeout(a.animationTimeout);n("area,graph,dataLabelsGroup,group,markerGroup,tracker,trackerGroup".split(","),function(b){a[b]&&(d=c&&b==="group"?"hide":"destroy",a[b][d]())});if(b.hoverSeries===a)b.hoverSeries=null;Ba(b.series, +a);for(h in a)delete a[h]},drawDataLabels:function(){var a=this,b=a.options.dataLabels,c=a.points,d,e,f,g;if(b.enabled||a._hasPointLabels)a.dlProcessOptions&&a.dlProcessOptions(b),g=a.plotGroup("dataLabelsGroup","data-labels",a.visible?"visible":"hidden",6),e=b,n(c,function(c){var i,j=c.dataLabel,k,l=!0;d=c.options&&c.options.dataLabels;i=e.enabled||d&&d.enabled;if(j&&!i)c.dataLabel=j.destroy();else if(i){i=b.rotation;b=A(e,d);f=b.formatter.call(c.getLabelConfig(),b);b.style.color=o(b.color,b.style.color, +a.color,"black");if(j)j.attr({text:f}),l=!1;else if(t(f)){j={fill:b.backgroundColor,stroke:b.borderColor,"stroke-width":b.borderWidth,r:b.borderRadius||0,rotation:i,padding:b.padding,zIndex:1};for(k in j)j[k]===x&&delete j[k];j=c.dataLabel=a.chart.renderer[i?"text":"label"](f,0,-999,null,null,null,b.useHTML).attr(j).css(b.style).add(g).shadow(b.shadow)}j&&a.alignDataLabel(c,j,b,null,l)}})},alignDataLabel:function(a,b,c,d,e){var f=this.chart,g=f.inverted,h=o(a.plotX,-999),a=o(a.plotY,-999),i=b.getBBox(), +d=r({x:g?f.plotWidth-a:h,y:s(g?f.plotHeight-h:a),width:0,height:0},d);r(c,{width:i.width,height:i.height});c.rotation?(d={align:c.align,x:d.x+c.x+d.width/2,y:d.y+c.y+d.height/2},b[e?"attr":"animate"](d)):(b.align(c,null,d),d=b.alignAttr);b.attr({visibility:c.crop===!1||f.isInsidePlot(d.x,d.y)||f.isInsidePlot(h,a,g)?Z?"inherit":"visible":"hidden"})},getSegmentPath:function(a){var b=this,c=[];n(a,function(d,e){b.getPointSpline?c.push.apply(c,b.getPointSpline(a,d,e)):(c.push(e?"L":"M"),e&&b.options.step&& +c.push(d.plotX,a[e-1].plotY),c.push(d.plotX,d.plotY))});return c},getGraphPath:function(){var a=this,b=[],c,d=[];n(a.segments,function(e){c=a.getSegmentPath(e);e.length>1?b=b.concat(c):d.push(e[0])});a.singlePoints=d;return a.graphPath=b},drawGraph:function(){var a=this.options,b=this.graph,c=this.group,d=a.lineColor||this.color,e=a.lineWidth,f=a.dashStyle,g=this.getGraphPath();if(b)eb(b),b.animate({d:g});else if(e){b={stroke:d,"stroke-width":e,zIndex:1};if(f)b.dashstyle=f;this.graph=this.chart.renderer.path(g).attr(b).add(c).shadow(a.shadow)}}, +invertGroups:function(){function a(){var a={width:b.yAxis.len,height:b.xAxis.len};n(["group","trackerGroup","markerGroup"],function(c){b[c]&&b[c].attr(a).invert()})}var b=this,c=b.chart;I(c,"resize",a);I(b,"destroy",function(){S(c,"resize",a)});a();b.invertGroups=a},plotGroup:function(a,b,c,d,e){var f=this[a],g=this.chart,h=this.xAxis,i=this.yAxis;f||(this[a]=f=g.renderer.g(b).attr({visibility:c,zIndex:d||0.1}).add(e));f.translate(h?h.left:g.plotLeft,i?i.top:g.plotTop);return f},render:function(){var a= +this.chart,b,c=this.options,d=c.animation&&!!this.animate,e=this.visible?"visible":"hidden",f=c.zIndex,g=this.hasRendered,h=a.seriesGroup;b=this.plotGroup("group","series",e,f,h);this.markerGroup=this.plotGroup("markerGroup","markers",e,f,h);d&&this.animate(!0);this.getAttribs();b.inverted=a.inverted;this.drawGraph&&this.drawGraph();this.drawPoints();this.drawDataLabels();this.options.enableMouseTracking!==!1&&this.drawTracker();a.inverted&&this.invertGroups();c.clip!==!1&&!this.sharedClipKey&&!g&& +(b.clip(a.clipRect),this.trackerGroup&&this.trackerGroup.clip(a.clipRect));d?this.animate():g||this.afterAnimate();this.isDirty=this.isDirtyData=!1;this.hasRendered=!0},redraw:function(){var a=this.chart,b=this.isDirtyData,c=this.group;c&&(a.inverted&&c.attr({width:a.plotWidth,height:a.plotHeight}),c.animate({translateX:this.xAxis.left,translateY:this.yAxis.top}));this.translate();this.setTooltipPoints(!0);this.render();b&&E(this,"updatedData")},setState:function(a){var b=this.options,c=this.graph, +d=b.states,b=b.lineWidth,a=a||"";if(this.state!==a)this.state=a,d[a]&&d[a].enabled===!1||(a&&(b=d[a].lineWidth||b+1),c&&!c.dashstyle&&c.attr({"stroke-width":b},a?0:500))},setVisible:function(a,b){var c=this.chart,d=this.legendItem,e=this.group,f=this.tracker,g=this.dataLabelsGroup,h=this.markerGroup,i,j=this.points,k=c.options.chart.ignoreHiddenSeries;i=this.visible;i=(this.visible=a=a===x?!i:a)?"show":"hide";if(e)e[i]();if(h)h[i]();if(f)f[i]();else if(j)for(e=j.length;e--;)if(f=j[e],f.tracker)f.tracker[i](); +if(g)g[i]();d&&c.legend.colorizeItem(this,a);this.isDirty=!0;this.options.stacking&&n(c.series,function(a){if(a.options.stacking&&a.visible)a.isDirty=!0});if(k)c.isDirtyBox=!0;b!==!1&&c.redraw();E(this,i)},show:function(){this.setVisible(!0)},hide:function(){this.setVisible(!1)},select:function(a){this.selected=a=a===x?!this.selected:a;if(this.checkbox)this.checkbox.checked=a;E(this,a?"select":"unselect")},drawTracker:function(){var a=this,b=a.options,c=b.trackByArea,d=[].concat(c?a.areaPath:a.graphPath), +e=d.length,f=a.chart,g=f.renderer,h=f.options.tooltip.snap,i=a.tracker,j=b.cursor,j=j&&{cursor:j},k=a.singlePoints,l=this.isCartesian&&this.plotGroup("trackerGroup",null,"visible",b.zIndex||1,f.trackerGroup),m;if(e&&!c)for(m=e+1;m--;)d[m]==="M"&&d.splice(m+1,0,d[m+1]-h,d[m+2],"L"),(m&&d[m]==="M"||m===e)&&d.splice(m,0,"L",d[m-2]+h,d[m-1]);for(m=0;m=0;d--)da&&i>e?(i=y(a,e),k=2*e-i):ig&&k>e?(k=y(g,e),i=2*e-k):kv?g-v:z-(f<=z?v:0));c.barX= +h;c.pointWidth=q;c.shapeType="rect";c.shapeArgs=f=b.renderer.Element.prototype.crisp.call(0,e,h,i,s,j);e%2&&(f.y-=1,f.height+=1);c.trackerArgs=L(j)<3&&A(c.shapeArgs,{height:6,y:i-3})})},getSymbol:ya,drawLegendSymbol:G.prototype.drawLegendSymbol,drawGraph:ya,drawPoints:function(){var a=this,b=a.options,c=a.chart.renderer,d;n(a.points,function(e){var f=e.plotY,g=e.graphic;if(f!==x&&!isNaN(f)&&e.y!==null)d=e.shapeArgs,g?(eb(g),g.animate(A(d))):e.graphic=c[e.shapeType](d).attr(e.pointAttr[e.selected? +"select":""]).add(a.group).shadow(b.shadow,null,b.stacking&&!b.borderRadius);else if(g)e.graphic=g.destroy()})},drawTracker:function(){var a=this,b=a.chart,c=b.renderer,d,e,f=+new Date,g=a.options,h=g.cursor,i=h&&{cursor:h},j=a.isCartesian&&a.plotGroup("trackerGroup",null,"visible",g.zIndex||1,b.trackerGroup),k,l,m;n(a.points,function(h){e=h.tracker;d=h.trackerArgs||h.shapeArgs;l=h.plotY;m=!a.isCartesian||l!==x&&!isNaN(l);delete d.strokeWidth;if(h.y!==null&&m)e?e.attr(d):h.tracker=c[h.shapeType](d).attr({isTracker:f, +fill:wb,visibility:a.visible?"visible":"hidden"}).on(fa?"touchstart":"mouseover",function(c){k=c.relatedTarget||c.fromElement;if(b.hoverSeries!==a&&z(k,"isTracker")!==f)a.onMouseOver();h.onMouseOver()}).on("mouseout",function(b){if(!g.stickyTracking&&(k=b.relatedTarget||b.toElement,z(k,"isTracker")!==f))a.onMouseOut()}).css(i).add(h.group||j)})},alignDataLabel:function(a,b,c,d,e){var f=this.chart,g=f.inverted,h=a.below||a.plotY>(this.translatedThreshold||f.plotSizeY),i=this.options.stacking||c.inside; +if(a.shapeArgs&&(d=A(a.shapeArgs),g&&(d={x:f.plotWidth-d.y-d.height,y:f.plotHeight-d.x-d.width,width:d.height,height:d.width}),!i))g?(d.x+=h?0:d.width,d.width=0):(d.y+=h?d.height:0,d.height=0);c.align=o(c.align,!g||i?"center":h?"right":"left");c.verticalAlign=o(c.verticalAlign,g||i?"middle":h?"top":"bottom");N.prototype.alignDataLabel.call(this,a,b,c,d,e)},animate:function(a){var b=this,c=b.points,d=b.options;if(!a)n(c,function(a){var c=a.graphic,a=a.shapeArgs,g=b.yAxis,h=d.threshold;c&&(c.attr({height:0, +y:t(h)?g.getThreshold(h):g.translate(g.getExtremes().min,0,1,0,1)}),c.animate({height:a.height,y:a.y},d.animation))}),b.animate=null},remove:function(){var a=this,b=a.chart;b.hasRendered&&n(b.series,function(b){if(b.type===a.type)b.isDirty=!0});N.prototype.remove.apply(a,arguments)}});$.column=ha;W.bar=A(W.column);za=ca(ha,{type:"bar",inverted:!0});$.bar=za;W.scatter=A(ga,{lineWidth:0,states:{hover:{lineWidth:0}},tooltip:{headerFormat:'{series.name}
                                ', +pointFormat:"x: {point.x}
                                y: {point.y}
                                "}});za=ca(N,{type:"scatter",sorted:!1,translate:function(){var a=this;N.prototype.translate.apply(a);n(a.points,function(b){b.shapeType="circle";b.shapeArgs={x:b.plotX,y:b.plotY,r:a.chart.options.tooltip.snap}})},drawTracker:function(){for(var a=this,b=a.options.cursor,b=b&&{cursor:b},c=a.points,d=c.length,e;d--;)if(e=c[d].graphic)e.element._i=d;a._hasTracking?a._hasTracking=!0:a.markerGroup.attr({isTracker:!0}).on(fa?"touchstart":"mouseover", +function(b){a.onMouseOver();if(b.target._i!==x)c[b.target._i].onMouseOver()}).on("mouseout",function(){if(!a.options.stickyTracking)a.onMouseOut()}).css(b)}});$.scatter=za;W.pie=A(ga,{borderColor:"#FFFFFF",borderWidth:1,center:["50%","50%"],colorByPoint:!0,dataLabels:{distance:30,enabled:!0,formatter:function(){return this.point.name}},legendType:"point",marker:null,size:"75%",showInLegend:!1,slicedOffset:10,states:{hover:{brightness:0.1,shadow:!1}}});ya={type:"pie",isCartesian:!1,pointClass:ca(Ta, +{init:function(){Ta.prototype.init.apply(this,arguments);var a=this,b;r(a,{visible:a.visible!==!1,name:o(a.name,"Slice")});b=function(){a.slice()};I(a,"select",b);I(a,"unselect",b);return a},setVisible:function(a){var b=this.series,c=b.chart,d=this.tracker,e=this.dataLabel,f=this.connector,g=this.shadowGroup,h;h=(this.visible=a=a===x?!this.visible:a)?"show":"hide";this.group[h]();if(d)d[h]();if(e)e[h]();if(f)f[h]();if(g)g[h]();this.legendItem&&c.legend.colorizeItem(this,a);if(!b.isDirty&&b.options.ignoreHiddenPoint)b.isDirty= +!0,c.redraw()},slice:function(a,b,c){var d=this.series.chart,e=this.slicedTranslation;ua(c,d);o(b,!0);a=this.sliced=t(a)?a:!this.sliced;a={translateX:a?e[0]:d.plotLeft,translateY:a?e[1]:d.plotTop};this.group.animate(a);this.shadowGroup&&this.shadowGroup.animate(a)}}),pointAttrToOptions:{stroke:"borderColor","stroke-width":"borderWidth",fill:"color"},getColor:function(){this.initialColor=this.chart.counters.color},animate:function(){var a=this;n(a.points,function(b){var c=b.graphic,b=b.shapeArgs,d= +-xa/2;c&&(c.attr({r:0,start:d,end:d}),c.animate({r:b.r,start:b.start,end:b.end},a.options.animation))});a.animate=null},setData:function(a,b){N.prototype.setData.call(this,a,!1);this.processData();this.generatePoints();o(b,!0)&&this.chart.redraw()},getCenter:function(){var a=this.options,b=this.chart,c=b.plotWidth,d=b.plotHeight,a=a.center.concat([a.size,a.innerSize||0]),e=O(c,d),f;return Sa(a,function(a,b){return(f=/%$/.test(a))?[c,d,e,e][b]*w(a)/100:a})},translate:function(){this.generatePoints(); +var a=0,b=-0.25,c=this.options,d=c.slicedOffset,e=d+c.borderWidth,f,g=this.chart,h,i,j,k=this.points,l=2*xa,m=c.dataLabels.distance,o=c.ignoreHiddenPoint,n,r=k.length,q;this.center=f=this.getCenter();this.getX=function(a,b){j=J.asin((a-f[1])/(f[2]/2+m));return f[0]+(b?-1:1)*V(j)*(f[2]/2+m)};for(n=0;n0,r=[[],[]],s,q,t,w,y=2,v;if(d.enabled||this._hasPointLabels){N.prototype.drawDataLabels.apply(this);n(a,function(a){a.dataLabel&&r[a.labelPos[7]0){for(v=m-l-j;v<=m+l+j;v+=a)x.push(v);t=x.length;if(C>t){h=[].concat(z);h.sort(w);for(v=C;v--;)h[v].rank=v;for(v=C;v--;)z[v].rank>=t&&z.splice(v,1);C=z.length}for(v=0;v0){if(q=A.pop(),B=q.i,q=q.y,s>q&&x[B+1]!==null||s (info.height / maxHeight)){ + iwidth = maxWidth; + iheight = Math.round(iwidth * info.height / info.width); + } else { + iheight = maxHeight; + iwidth = Math.round(iheight * info.width / info.height); + } + with(view.style){ + height = iheight + "px"; + width = iwidth + "px"; + overflow = "hidden"; + } + if(img){ + with(img.style){ + height = width = "100%"; + } + view.innerHTML = ""; + view.appendChild(img); + } + + } + + try{ + new FileReader(); + file.addEventListener("change", function(e){ + var image = this.files[0]; + function fireError(){ + var evObj = doc.createEvent('Events'); + evObj.initEvent( 'error', true, false ); + file.dispatchEvent(evObj); + file.value = ""; + } + if(!/^image\//.test(image.type)){ + e.stopPropagation(); + e.preventDefault(); + fireError(); + return false; + } + var reader = new FileReader(), + img = new Image(); + reader.onerror = img.onerror = fireError; + img.onload = function(){ + var info = { + height: img.height, + width: img.width, + name: image.name, + size: image.size + }; + if( call(info) !== false ){ + setsize(info, img); + } + img.onload = img.onerror = null; + } + reader.onload = function (){ + img.src = reader.result; + } + reader.readAsDataURL(image); + + }, false); + }catch(ex){ + + file.attachEvent("onchange", function() { + var path = file.value, + tt = doc.createElement("tt"), + name = path.slice(path.lastIndexOf("\\") + 1 ); + + if("XMLHttpRequest" in window){ + file.select(); + path = doc.selection.createRange().text, + doc.selection.empty(); + } + + function imgloader (mode){ + return "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + path + "', sizingMethod='" + mode + "')"; + } + (doc.body || doc.documentElement).appendChild(tt); + with(tt.runtimeStyle){ + filter = imgloader("image"); + zoom = width = height = 1; + position = "absolute"; + right = "9999em"; + top = "-9999em"; + border = 0; + } + var info = { + height: tt.offsetHeight, + width: tt.offsetWidth, + name: name + }; + if( info.height > 1 || info.width > 1 ){ + if(call(info) !== false ){ + view.style.filter = imgloader("scale"); + setsize(info); + } + } else { + file.fireEvent("onerror"); + event.cancelBubble = true; + event.returnValue = false; + this.value = ""; + } + tt.parentNode.removeChild(tt); + }); + } + +} \ No newline at end of file diff --git a/src/main/webapp/js/imgpreview/imgpreview.html b/src/main/webapp/js/imgpreview/imgpreview.html new file mode 100644 index 00000000..a84d2bd2 --- /dev/null +++ b/src/main/webapp/js/imgpreview/imgpreview.html @@ -0,0 +1,110 @@ + + + + +图片上传前预览 + + + + + +
                                +
                                +
                                +
                                +
                                浏览
                                +   + + +
                                +
                                +
                                +
                                +
                                +
                                + + + + + + diff --git a/src/main/webapp/js/imgpreview/imgup.css b/src/main/webapp/js/imgpreview/imgup.css new file mode 100644 index 00000000..aa3ffa4d --- /dev/null +++ b/src/main/webapp/js/imgpreview/imgup.css @@ -0,0 +1,199 @@ +.preview { + position: relative; + display: block; + margin: auto; +} +.thumb { + border: 1px solid #ccc; + position: relative; + overflow: hidden; +} +.thumb div { + position: relative; + margin: -50px; + left: -50%; + top: -50%; + zoom: 1; +} +.cropaera * { + background: none; + float: none; + padding: 0; + margin: 0; +} +.cropaera { + -webkit-user-select: none; + -moz-user-select: none; + display: inline-block; + position: relative; + user-select: none; + margin: auto; +} +.cropmask { + position: absolute; + overflow: hidden; + height: 100%; + width: 100%; + left: 0; + top: 0; +} +.cropmask .mask_top, +.cropmask .mask_left, +.cropmask .mask_right, +.cropmask .mask_bottom { + filter: progid:DXImageTransform.Microsoft.gradient(startColorStr=#66000000,endColorStr=#66000000); + background: rgba(0,0,0,.4); + overflow: hidden; +} +.cropmask .mask_top { + height: 25%; +} +.cropmask .mask_middle { + height: 50%; +} +.cropmask .mask_middle { + display: table; + width: 100%; +} +.cropmask .mask_middle .mask_left, +.cropmask .mask_middle .mask_right { + width: 25%; +} +.cropmask .mask_middle .mask_left, +.cropmask .mask_middle .mask_right, +.cropmask .mask_middle .mask_center { + display: table-cell; +} +.cropmask .mask_center { + height: 100%; +} +.cropmask .mask_bottom { + height: 100%; + clear: both; +} +.cropmask .viewport { + border: 1px dashed #ccc; + position: relative; + cursor: move; + margin: -1px; + height: 100%; + width: 100%; +} +.cropmask .resize_n, +.cropmask .resize_e, +.cropmask .resize_s, +.cropmask .resize_w { + position: absolute; + height: 5px; + width: 5px; +} +.cropmask .resize_e, +.cropmask .resize_w { + margin: 0 -3px; + height: 100%; + top: 0; +} +.cropmask .resize_n, +.cropmask .resize_s { + margin: -3px 0; + width: 100%; + left: 0; +} +.cropmask .resize_n { + cursor: n-resize; + top: 0; +} +.cropmask .resize_e { + cursor: e-resize; + right: 0; +} +.cropmask .resize_s { + cursor: s-resize; + bottom: 0; +} +.cropmask .resize_w { + cursor: w-resize; + left: 0; +} +.cropmask .point { + border: 1px solid #fff; + position: absolute; + background: #000; + overflow: hidden; + margin: -4px; + opacity: .4; + height: 7px; + width: 7px; + filter: Alpha(Opacity=40); +} +.cropmask .resize .point { + left: 50%; + top: 50%; +} +.cropmask .point_ne { + cursor: ne-resize; + right: 0; + top: 0; +} +.cropmask .point_nw { + cursor: nw-resize; + left: 0; + top: 0; +} +.cropmask .point_se { + cursor: se-resize; + bottom: 0; + right: 0; +} +.cropmask .point_sw { + cursor: sw-resize; + bottom: 0; + left: 0; +} +.cropaera .ondrag .point, +.cropaera .ondrag .resize, +.cropaera .ondrag .viewport { + cursor: inherit; +} +.cropaera .low .resize_e .point, +.cropaera .low .resize_w .point, +.cropaera .narrow .resize_n .point, +.cropaera .narrow .resize_s .point { + display: none; +} +:root .cropmask .mask_top, +:root .cropmask .mask_left, +:root .cropmask .mask_right, +:root .cropmask .mask_bottom, +:root .cropmask .viewport .point { + filter: none; +} +.cropaera { + *height: expression(firstChild.offsetHeight); + *width: expression(firstChild.offsetWidth); + *display: inline; + *zoom: 1; +} +.cropmask { + *height: expression(offsetParent.clientHeight); + *width: expression(offsetParent.clientWidth); +} +.cropmask .mask_middle { + *overflow: hidden; +} +.cropmask .mask_left { + *float: left; + _margin-right: -3px; +} +.cropmask .mask_right { + *float: right; + _margin-left: -3px; +} +.cropmask .mask_left, +.cropmask .mask_right { + *padding-bottom: 999em; + *margin-bottom: -999em; +} +.cropmask .mask_center { + *zoom: 1; +} \ No newline at end of file diff --git a/src/main/webapp/js/imgpreview/jquery-1.8.3.min.js b/src/main/webapp/js/imgpreview/jquery-1.8.3.min.js new file mode 100644 index 00000000..83589daa --- /dev/null +++ b/src/main/webapp/js/imgpreview/jquery-1.8.3.min.js @@ -0,0 +1,2 @@ +/*! jQuery v1.8.3 jquery.com | jquery.org/license */ +(function(e,t){function _(e){var t=M[e]={};return v.each(e.split(y),function(e,n){t[n]=!0}),t}function H(e,n,r){if(r===t&&e.nodeType===1){var i="data-"+n.replace(P,"-$1").toLowerCase();r=e.getAttribute(i);if(typeof r=="string"){try{r=r==="true"?!0:r==="false"?!1:r==="null"?null:+r+""===r?+r:D.test(r)?v.parseJSON(r):r}catch(s){}v.data(e,n,r)}else r=t}return r}function B(e){var t;for(t in e){if(t==="data"&&v.isEmptyObject(e[t]))continue;if(t!=="toJSON")return!1}return!0}function et(){return!1}function tt(){return!0}function ut(e){return!e||!e.parentNode||e.parentNode.nodeType===11}function at(e,t){do e=e[t];while(e&&e.nodeType!==1);return e}function ft(e,t,n){t=t||0;if(v.isFunction(t))return v.grep(e,function(e,r){var i=!!t.call(e,r,e);return i===n});if(t.nodeType)return v.grep(e,function(e,r){return e===t===n});if(typeof t=="string"){var r=v.grep(e,function(e){return e.nodeType===1});if(it.test(t))return v.filter(t,r,!n);t=v.filter(t,r)}return v.grep(e,function(e,r){return v.inArray(e,t)>=0===n})}function lt(e){var t=ct.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}function Lt(e,t){return e.getElementsByTagName(t)[0]||e.appendChild(e.ownerDocument.createElement(t))}function At(e,t){if(t.nodeType!==1||!v.hasData(e))return;var n,r,i,s=v._data(e),o=v._data(t,s),u=s.events;if(u){delete o.handle,o.events={};for(n in u)for(r=0,i=u[n].length;r").appendTo(i.body),n=t.css("display");t.remove();if(n==="none"||n===""){Pt=i.body.appendChild(Pt||v.extend(i.createElement("iframe"),{frameBorder:0,width:0,height:0}));if(!Ht||!Pt.createElement)Ht=(Pt.contentWindow||Pt.contentDocument).document,Ht.write(""),Ht.close();t=Ht.body.appendChild(Ht.createElement(e)),n=Dt(t,"display"),i.body.removeChild(Pt)}return Wt[e]=n,n}function fn(e,t,n,r){var i;if(v.isArray(t))v.each(t,function(t,i){n||sn.test(e)?r(e,i):fn(e+"["+(typeof i=="object"?t:"")+"]",i,n,r)});else if(!n&&v.type(t)==="object")for(i in t)fn(e+"["+i+"]",t[i],n,r);else r(e,t)}function Cn(e){return function(t,n){typeof t!="string"&&(n=t,t="*");var r,i,s,o=t.toLowerCase().split(y),u=0,a=o.length;if(v.isFunction(n))for(;u)[^>]*$|#([\w\-]*)$)/,E=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,S=/^[\],:{}\s]*$/,x=/(?:^|:|,)(?:\s*\[)+/g,T=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,N=/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,C=/^-ms-/,k=/-([\da-z])/gi,L=function(e,t){return(t+"").toUpperCase()},A=function(){i.addEventListener?(i.removeEventListener("DOMContentLoaded",A,!1),v.ready()):i.readyState==="complete"&&(i.detachEvent("onreadystatechange",A),v.ready())},O={};v.fn=v.prototype={constructor:v,init:function(e,n,r){var s,o,u,a;if(!e)return this;if(e.nodeType)return this.context=this[0]=e,this.length=1,this;if(typeof e=="string"){e.charAt(0)==="<"&&e.charAt(e.length-1)===">"&&e.length>=3?s=[null,e,null]:s=w.exec(e);if(s&&(s[1]||!n)){if(s[1])return n=n instanceof v?n[0]:n,a=n&&n.nodeType?n.ownerDocument||n:i,e=v.parseHTML(s[1],a,!0),E.test(s[1])&&v.isPlainObject(n)&&this.attr.call(e,n,!0),v.merge(this,e);o=i.getElementById(s[2]);if(o&&o.parentNode){if(o.id!==s[2])return r.find(e);this.length=1,this[0]=o}return this.context=i,this.selector=e,this}return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e)}return v.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),v.makeArray(e,this))},selector:"",jquery:"1.8.3",length:0,size:function(){return this.length},toArray:function(){return l.call(this)},get:function(e){return e==null?this.toArray():e<0?this[this.length+e]:this[e]},pushStack:function(e,t,n){var r=v.merge(this.constructor(),e);return r.prevObject=this,r.context=this.context,t==="find"?r.selector=this.selector+(this.selector?" ":"")+n:t&&(r.selector=this.selector+"."+t+"("+n+")"),r},each:function(e,t){return v.each(this,e,t)},ready:function(e){return v.ready.promise().done(e),this},eq:function(e){return e=+e,e===-1?this.slice(e):this.slice(e,e+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(l.apply(this,arguments),"slice",l.call(arguments).join(","))},map:function(e){return this.pushStack(v.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:[].sort,splice:[].splice},v.fn.init.prototype=v.fn,v.extend=v.fn.extend=function(){var e,n,r,i,s,o,u=arguments[0]||{},a=1,f=arguments.length,l=!1;typeof u=="boolean"&&(l=u,u=arguments[1]||{},a=2),typeof u!="object"&&!v.isFunction(u)&&(u={}),f===a&&(u=this,--a);for(;a0)return;r.resolveWith(i,[v]),v.fn.trigger&&v(i).trigger("ready").off("ready")},isFunction:function(e){return v.type(e)==="function"},isArray:Array.isArray||function(e){return v.type(e)==="array"},isWindow:function(e){return e!=null&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return e==null?String(e):O[h.call(e)]||"object"},isPlainObject:function(e){if(!e||v.type(e)!=="object"||e.nodeType||v.isWindow(e))return!1;try{if(e.constructor&&!p.call(e,"constructor")&&!p.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}var r;for(r in e);return r===t||p.call(e,r)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw new Error(e)},parseHTML:function(e,t,n){var r;return!e||typeof e!="string"?null:(typeof t=="boolean"&&(n=t,t=0),t=t||i,(r=E.exec(e))?[t.createElement(r[1])]:(r=v.buildFragment([e],t,n?null:[]),v.merge([],(r.cacheable?v.clone(r.fragment):r.fragment).childNodes)))},parseJSON:function(t){if(!t||typeof t!="string")return null;t=v.trim(t);if(e.JSON&&e.JSON.parse)return e.JSON.parse(t);if(S.test(t.replace(T,"@").replace(N,"]").replace(x,"")))return(new Function("return "+t))();v.error("Invalid JSON: "+t)},parseXML:function(n){var r,i;if(!n||typeof n!="string")return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(s){r=t}return(!r||!r.documentElement||r.getElementsByTagName("parsererror").length)&&v.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&g.test(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(C,"ms-").replace(k,L)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,n,r){var i,s=0,o=e.length,u=o===t||v.isFunction(e);if(r){if(u){for(i in e)if(n.apply(e[i],r)===!1)break}else for(;s0&&e[0]&&e[a-1]||a===0||v.isArray(e));if(f)for(;u-1)a.splice(n,1),i&&(n<=o&&o--,n<=u&&u--)}),this},has:function(e){return v.inArray(e,a)>-1},empty:function(){return a=[],this},disable:function(){return a=f=n=t,this},disabled:function(){return!a},lock:function(){return f=t,n||c.disable(),this},locked:function(){return!f},fireWith:function(e,t){return t=t||[],t=[e,t.slice?t.slice():t],a&&(!r||f)&&(i?f.push(t):l(t)),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!r}};return c},v.extend({Deferred:function(e){var t=[["resolve","done",v.Callbacks("once memory"),"resolved"],["reject","fail",v.Callbacks("once memory"),"rejected"],["notify","progress",v.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return v.Deferred(function(n){v.each(t,function(t,r){var s=r[0],o=e[t];i[r[1]](v.isFunction(o)?function(){var e=o.apply(this,arguments);e&&v.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[s+"With"](this===i?n:this,[e])}:n[s])}),e=null}).promise()},promise:function(e){return e!=null?v.extend(e,r):r}},i={};return r.pipe=r.then,v.each(t,function(e,s){var o=s[2],u=s[3];r[s[1]]=o.add,u&&o.add(function(){n=u},t[e^1][2].disable,t[2][2].lock),i[s[0]]=o.fire,i[s[0]+"With"]=o.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=l.call(arguments),r=n.length,i=r!==1||e&&v.isFunction(e.promise)?r:0,s=i===1?e:v.Deferred(),o=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?l.call(arguments):r,n===u?s.notifyWith(t,n):--i||s.resolveWith(t,n)}},u,a,f;if(r>1){u=new Array(r),a=new Array(r),f=new Array(r);for(;t
                                a",n=p.getElementsByTagName("*"),r=p.getElementsByTagName("a")[0];if(!n||!r||!n.length)return{};s=i.createElement("select"),o=s.appendChild(i.createElement("option")),u=p.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t={leadingWhitespace:p.firstChild.nodeType===3,tbody:!p.getElementsByTagName("tbody").length,htmlSerialize:!!p.getElementsByTagName("link").length,style:/top/.test(r.getAttribute("style")),hrefNormalized:r.getAttribute("href")==="/a",opacity:/^0.5/.test(r.style.opacity),cssFloat:!!r.style.cssFloat,checkOn:u.value==="on",optSelected:o.selected,getSetAttribute:p.className!=="t",enctype:!!i.createElement("form").enctype,html5Clone:i.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",boxModel:i.compatMode==="CSS1Compat",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},u.checked=!0,t.noCloneChecked=u.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!o.disabled;try{delete p.test}catch(d){t.deleteExpando=!1}!p.addEventListener&&p.attachEvent&&p.fireEvent&&(p.attachEvent("onclick",h=function(){t.noCloneEvent=!1}),p.cloneNode(!0).fireEvent("onclick"),p.detachEvent("onclick",h)),u=i.createElement("input"),u.value="t",u.setAttribute("type","radio"),t.radioValue=u.value==="t",u.setAttribute("checked","checked"),u.setAttribute("name","t"),p.appendChild(u),a=i.createDocumentFragment(),a.appendChild(p.lastChild),t.checkClone=a.cloneNode(!0).cloneNode(!0).lastChild.checked,t.appendChecked=u.checked,a.removeChild(u),a.appendChild(p);if(p.attachEvent)for(l in{submit:!0,change:!0,focusin:!0})f="on"+l,c=f in p,c||(p.setAttribute(f,"return;"),c=typeof p[f]=="function"),t[l+"Bubbles"]=c;return v(function(){var n,r,s,o,u="padding:0;margin:0;border:0;display:block;overflow:hidden;",a=i.getElementsByTagName("body")[0];if(!a)return;n=i.createElement("div"),n.style.cssText="visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px",a.insertBefore(n,a.firstChild),r=i.createElement("div"),n.appendChild(r),r.innerHTML="
                                t
                                ",s=r.getElementsByTagName("td"),s[0].style.cssText="padding:0;margin:0;border:0;display:none",c=s[0].offsetHeight===0,s[0].style.display="",s[1].style.display="none",t.reliableHiddenOffsets=c&&s[0].offsetHeight===0,r.innerHTML="",r.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",t.boxSizing=r.offsetWidth===4,t.doesNotIncludeMarginInBodyOffset=a.offsetTop!==1,e.getComputedStyle&&(t.pixelPosition=(e.getComputedStyle(r,null)||{}).top!=="1%",t.boxSizingReliable=(e.getComputedStyle(r,null)||{width:"4px"}).width==="4px",o=i.createElement("div"),o.style.cssText=r.style.cssText=u,o.style.marginRight=o.style.width="0",r.style.width="1px",r.appendChild(o),t.reliableMarginRight=!parseFloat((e.getComputedStyle(o,null)||{}).marginRight)),typeof r.style.zoom!="undefined"&&(r.innerHTML="",r.style.cssText=u+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=r.offsetWidth===3,r.style.display="block",r.style.overflow="visible",r.innerHTML="
                                ",r.firstChild.style.width="5px",t.shrinkWrapBlocks=r.offsetWidth!==3,n.style.zoom=1),a.removeChild(n),n=r=s=o=null}),a.removeChild(p),n=r=s=o=u=a=p=null,t}();var D=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,P=/([A-Z])/g;v.extend({cache:{},deletedIds:[],uuid:0,expando:"jQuery"+(v.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(e){return e=e.nodeType?v.cache[e[v.expando]]:e[v.expando],!!e&&!B(e)},data:function(e,n,r,i){if(!v.acceptData(e))return;var s,o,u=v.expando,a=typeof n=="string",f=e.nodeType,l=f?v.cache:e,c=f?e[u]:e[u]&&u;if((!c||!l[c]||!i&&!l[c].data)&&a&&r===t)return;c||(f?e[u]=c=v.deletedIds.pop()||v.guid++:c=u),l[c]||(l[c]={},f||(l[c].toJSON=v.noop));if(typeof n=="object"||typeof n=="function")i?l[c]=v.extend(l[c],n):l[c].data=v.extend(l[c].data,n);return s=l[c],i||(s.data||(s.data={}),s=s.data),r!==t&&(s[v.camelCase(n)]=r),a?(o=s[n],o==null&&(o=s[v.camelCase(n)])):o=s,o},removeData:function(e,t,n){if(!v.acceptData(e))return;var r,i,s,o=e.nodeType,u=o?v.cache:e,a=o?e[v.expando]:v.expando;if(!u[a])return;if(t){r=n?u[a]:u[a].data;if(r){v.isArray(t)||(t in r?t=[t]:(t=v.camelCase(t),t in r?t=[t]:t=t.split(" ")));for(i=0,s=t.length;i1,null,!1))},removeData:function(e){return this.each(function(){v.removeData(this,e)})}}),v.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=v._data(e,t),n&&(!r||v.isArray(n)?r=v._data(e,t,v.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=v.queue(e,t),r=n.length,i=n.shift(),s=v._queueHooks(e,t),o=function(){v.dequeue(e,t)};i==="inprogress"&&(i=n.shift(),r--),i&&(t==="fx"&&n.unshift("inprogress"),delete s.stop,i.call(e,o,s)),!r&&s&&s.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return v._data(e,n)||v._data(e,n,{empty:v.Callbacks("once memory").add(function(){v.removeData(e,t+"queue",!0),v.removeData(e,n,!0)})})}}),v.fn.extend({queue:function(e,n){var r=2;return typeof e!="string"&&(n=e,e="fx",r--),arguments.length1)},removeAttr:function(e){return this.each(function(){v.removeAttr(this,e)})},prop:function(e,t){return v.access(this,v.prop,e,t,arguments.length>1)},removeProp:function(e){return e=v.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,s,o,u;if(v.isFunction(e))return this.each(function(t){v(this).addClass(e.call(this,t,this.className))});if(e&&typeof e=="string"){t=e.split(y);for(n=0,r=this.length;n=0)r=r.replace(" "+n[s]+" "," ");i.className=e?v.trim(r):""}}}return this},toggleClass:function(e,t){var n=typeof e,r=typeof t=="boolean";return v.isFunction(e)?this.each(function(n){v(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if(n==="string"){var i,s=0,o=v(this),u=t,a=e.split(y);while(i=a[s++])u=r?u:!o.hasClass(i),o[u?"addClass":"removeClass"](i)}else if(n==="undefined"||n==="boolean")this.className&&v._data(this,"__className__",this.className),this.className=this.className||e===!1?"":v._data(this,"__className__")||""})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;n=0)return!0;return!1},val:function(e){var n,r,i,s=this[0];if(!arguments.length){if(s)return n=v.valHooks[s.type]||v.valHooks[s.nodeName.toLowerCase()],n&&"get"in n&&(r=n.get(s,"value"))!==t?r:(r=s.value,typeof r=="string"?r.replace(R,""):r==null?"":r);return}return i=v.isFunction(e),this.each(function(r){var s,o=v(this);if(this.nodeType!==1)return;i?s=e.call(this,r,o.val()):s=e,s==null?s="":typeof s=="number"?s+="":v.isArray(s)&&(s=v.map(s,function(e){return e==null?"":e+""})),n=v.valHooks[this.type]||v.valHooks[this.nodeName.toLowerCase()];if(!n||!("set"in n)||n.set(this,s,"value")===t)this.value=s})}}),v.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,s=e.type==="select-one"||i<0,o=s?null:[],u=s?i+1:r.length,a=i<0?u:s?i:0;for(;a=0}),n.length||(e.selectedIndex=-1),n}}},attrFn:{},attr:function(e,n,r,i){var s,o,u,a=e.nodeType;if(!e||a===3||a===8||a===2)return;if(i&&v.isFunction(v.fn[n]))return v(e)[n](r);if(typeof e.getAttribute=="undefined")return v.prop(e,n,r);u=a!==1||!v.isXMLDoc(e),u&&(n=n.toLowerCase(),o=v.attrHooks[n]||(X.test(n)?F:j));if(r!==t){if(r===null){v.removeAttr(e,n);return}return o&&"set"in o&&u&&(s=o.set(e,r,n))!==t?s:(e.setAttribute(n,r+""),r)}return o&&"get"in o&&u&&(s=o.get(e,n))!==null?s:(s=e.getAttribute(n),s===null?t:s)},removeAttr:function(e,t){var n,r,i,s,o=0;if(t&&e.nodeType===1){r=t.split(y);for(;o=0}})});var $=/^(?:textarea|input|select)$/i,J=/^([^\.]*|)(?:\.(.+)|)$/,K=/(?:^|\s)hover(\.\S+|)\b/,Q=/^key/,G=/^(?:mouse|contextmenu)|click/,Y=/^(?:focusinfocus|focusoutblur)$/,Z=function(e){return v.event.special.hover?e:e.replace(K,"mouseenter$1 mouseleave$1")};v.event={add:function(e,n,r,i,s){var o,u,a,f,l,c,h,p,d,m,g;if(e.nodeType===3||e.nodeType===8||!n||!r||!(o=v._data(e)))return;r.handler&&(d=r,r=d.handler,s=d.selector),r.guid||(r.guid=v.guid++),a=o.events,a||(o.events=a={}),u=o.handle,u||(o.handle=u=function(e){return typeof v=="undefined"||!!e&&v.event.triggered===e.type?t:v.event.dispatch.apply(u.elem,arguments)},u.elem=e),n=v.trim(Z(n)).split(" ");for(f=0;f=0&&(y=y.slice(0,-1),a=!0),y.indexOf(".")>=0&&(b=y.split("."),y=b.shift(),b.sort());if((!s||v.event.customEvent[y])&&!v.event.global[y])return;n=typeof n=="object"?n[v.expando]?n:new v.Event(y,n):new v.Event(y),n.type=y,n.isTrigger=!0,n.exclusive=a,n.namespace=b.join("."),n.namespace_re=n.namespace?new RegExp("(^|\\.)"+b.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,h=y.indexOf(":")<0?"on"+y:"";if(!s){u=v.cache;for(f in u)u[f].events&&u[f].events[y]&&v.event.trigger(n,r,u[f].handle.elem,!0);return}n.result=t,n.target||(n.target=s),r=r!=null?v.makeArray(r):[],r.unshift(n),p=v.event.special[y]||{};if(p.trigger&&p.trigger.apply(s,r)===!1)return;m=[[s,p.bindType||y]];if(!o&&!p.noBubble&&!v.isWindow(s)){g=p.delegateType||y,l=Y.test(g+y)?s:s.parentNode;for(c=s;l;l=l.parentNode)m.push([l,g]),c=l;c===(s.ownerDocument||i)&&m.push([c.defaultView||c.parentWindow||e,g])}for(f=0;f=0:v.find(h,this,null,[s]).length),u[h]&&f.push(c);f.length&&w.push({elem:s,matches:f})}d.length>m&&w.push({elem:this,matches:d.slice(m)});for(r=0;r0?this.on(t,null,e,n):this.trigger(t)},Q.test(t)&&(v.event.fixHooks[t]=v.event.keyHooks),G.test(t)&&(v.event.fixHooks[t]=v.event.mouseHooks)}),function(e,t){function nt(e,t,n,r){n=n||[],t=t||g;var i,s,a,f,l=t.nodeType;if(!e||typeof e!="string")return n;if(l!==1&&l!==9)return[];a=o(t);if(!a&&!r)if(i=R.exec(e))if(f=i[1]){if(l===9){s=t.getElementById(f);if(!s||!s.parentNode)return n;if(s.id===f)return n.push(s),n}else if(t.ownerDocument&&(s=t.ownerDocument.getElementById(f))&&u(t,s)&&s.id===f)return n.push(s),n}else{if(i[2])return S.apply(n,x.call(t.getElementsByTagName(e),0)),n;if((f=i[3])&&Z&&t.getElementsByClassName)return S.apply(n,x.call(t.getElementsByClassName(f),0)),n}return vt(e.replace(j,"$1"),t,n,r,a)}function rt(e){return function(t){var n=t.nodeName.toLowerCase();return n==="input"&&t.type===e}}function it(e){return function(t){var n=t.nodeName.toLowerCase();return(n==="input"||n==="button")&&t.type===e}}function st(e){return N(function(t){return t=+t,N(function(n,r){var i,s=e([],n.length,t),o=s.length;while(o--)n[i=s[o]]&&(n[i]=!(r[i]=n[i]))})})}function ot(e,t,n){if(e===t)return n;var r=e.nextSibling;while(r){if(r===t)return-1;r=r.nextSibling}return 1}function ut(e,t){var n,r,s,o,u,a,f,l=L[d][e+" "];if(l)return t?0:l.slice(0);u=e,a=[],f=i.preFilter;while(u){if(!n||(r=F.exec(u)))r&&(u=u.slice(r[0].length)||u),a.push(s=[]);n=!1;if(r=I.exec(u))s.push(n=new m(r.shift())),u=u.slice(n.length),n.type=r[0].replace(j," ");for(o in i.filter)(r=J[o].exec(u))&&(!f[o]||(r=f[o](r)))&&(s.push(n=new m(r.shift())),u=u.slice(n.length),n.type=o,n.matches=r);if(!n)break}return t?u.length:u?nt.error(e):L(e,a).slice(0)}function at(e,t,r){var i=t.dir,s=r&&t.dir==="parentNode",o=w++;return t.first?function(t,n,r){while(t=t[i])if(s||t.nodeType===1)return e(t,n,r)}:function(t,r,u){if(!u){var a,f=b+" "+o+" ",l=f+n;while(t=t[i])if(s||t.nodeType===1){if((a=t[d])===l)return t.sizset;if(typeof a=="string"&&a.indexOf(f)===0){if(t.sizset)return t}else{t[d]=l;if(e(t,r,u))return t.sizset=!0,t;t.sizset=!1}}}else while(t=t[i])if(s||t.nodeType===1)if(e(t,r,u))return t}}function ft(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function lt(e,t,n,r,i){var s,o=[],u=0,a=e.length,f=t!=null;for(;u-1&&(s[f]=!(o[f]=c))}}else g=lt(g===o?g.splice(d,g.length):g),i?i(null,o,g,a):S.apply(o,g)})}function ht(e){var t,n,r,s=e.length,o=i.relative[e[0].type],u=o||i.relative[" "],a=o?1:0,f=at(function(e){return e===t},u,!0),l=at(function(e){return T.call(t,e)>-1},u,!0),h=[function(e,n,r){return!o&&(r||n!==c)||((t=n).nodeType?f(e,n,r):l(e,n,r))}];for(;a1&&ft(h),a>1&&e.slice(0,a-1).join("").replace(j,"$1"),n,a0,s=e.length>0,o=function(u,a,f,l,h){var p,d,v,m=[],y=0,w="0",x=u&&[],T=h!=null,N=c,C=u||s&&i.find.TAG("*",h&&a.parentNode||a),k=b+=N==null?1:Math.E;T&&(c=a!==g&&a,n=o.el);for(;(p=C[w])!=null;w++){if(s&&p){for(d=0;v=e[d];d++)if(v(p,a,f)){l.push(p);break}T&&(b=k,n=++o.el)}r&&((p=!v&&p)&&y--,u&&x.push(p))}y+=w;if(r&&w!==y){for(d=0;v=t[d];d++)v(x,m,a,f);if(u){if(y>0)while(w--)!x[w]&&!m[w]&&(m[w]=E.call(l));m=lt(m)}S.apply(l,m),T&&!u&&m.length>0&&y+t.length>1&&nt.uniqueSort(l)}return T&&(b=k,c=N),x};return o.el=0,r?N(o):o}function dt(e,t,n){var r=0,i=t.length;for(;r2&&(f=u[0]).type==="ID"&&t.nodeType===9&&!s&&i.relative[u[1].type]){t=i.find.ID(f.matches[0].replace($,""),t,s)[0];if(!t)return n;e=e.slice(u.shift().length)}for(o=J.POS.test(e)?-1:u.length-1;o>=0;o--){f=u[o];if(i.relative[l=f.type])break;if(c=i.find[l])if(r=c(f.matches[0].replace($,""),z.test(u[0].type)&&t.parentNode||t,s)){u.splice(o,1),e=r.length&&u.join("");if(!e)return S.apply(n,x.call(r,0)),n;break}}}return a(e,h)(r,t,s,n,z.test(e)),n}function mt(){}var n,r,i,s,o,u,a,f,l,c,h=!0,p="undefined",d=("sizcache"+Math.random()).replace(".",""),m=String,g=e.document,y=g.documentElement,b=0,w=0,E=[].pop,S=[].push,x=[].slice,T=[].indexOf||function(e){var t=0,n=this.length;for(;ti.cacheLength&&delete e[t.shift()],e[n+" "]=r},e)},k=C(),L=C(),A=C(),O="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",_=M.replace("w","w#"),D="([*^$|!~]?=)",P="\\["+O+"*("+M+")"+O+"*(?:"+D+O+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+_+")|)|)"+O+"*\\]",H=":("+M+")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:"+P+")|[^:]|\\\\.)*|.*))\\)|)",B=":(even|odd|eq|gt|lt|nth|first|last)(?:\\("+O+"*((?:-\\d)?\\d*)"+O+"*\\)|)(?=[^-]|$)",j=new RegExp("^"+O+"+|((?:^|[^\\\\])(?:\\\\.)*)"+O+"+$","g"),F=new RegExp("^"+O+"*,"+O+"*"),I=new RegExp("^"+O+"*([\\x20\\t\\r\\n\\f>+~])"+O+"*"),q=new RegExp(H),R=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,U=/^:not/,z=/[\x20\t\r\n\f]*[+~]/,W=/:not\($/,X=/h\d/i,V=/input|select|textarea|button/i,$=/\\(?!\\)/g,J={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),NAME:new RegExp("^\\[name=['\"]?("+M+")['\"]?\\]"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+H),POS:new RegExp(B,"i"),CHILD:new RegExp("^:(only|nth|first|last)-child(?:\\("+O+"*(even|odd|(([+-]|)(\\d*)n|)"+O+"*(?:([+-]|)"+O+"*(\\d+)|))"+O+"*\\)|)","i"),needsContext:new RegExp("^"+O+"*[>+~]|"+B,"i")},K=function(e){var t=g.createElement("div");try{return e(t)}catch(n){return!1}finally{t=null}},Q=K(function(e){return e.appendChild(g.createComment("")),!e.getElementsByTagName("*").length}),G=K(function(e){return e.innerHTML="",e.firstChild&&typeof e.firstChild.getAttribute!==p&&e.firstChild.getAttribute("href")==="#"}),Y=K(function(e){e.innerHTML="";var t=typeof e.lastChild.getAttribute("multiple");return t!=="boolean"&&t!=="string"}),Z=K(function(e){return e.innerHTML="",!e.getElementsByClassName||!e.getElementsByClassName("e").length?!1:(e.lastChild.className="e",e.getElementsByClassName("e").length===2)}),et=K(function(e){e.id=d+0,e.innerHTML="
                                ",y.insertBefore(e,y.firstChild);var t=g.getElementsByName&&g.getElementsByName(d).length===2+g.getElementsByName(d+0).length;return r=!g.getElementById(d),y.removeChild(e),t});try{x.call(y.childNodes,0)[0].nodeType}catch(tt){x=function(e){var t,n=[];for(;t=this[e];e++)n.push(t);return n}}nt.matches=function(e,t){return nt(e,null,null,t)},nt.matchesSelector=function(e,t){return nt(t,null,null,[e]).length>0},s=nt.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(i===1||i===9||i===11){if(typeof e.textContent=="string")return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=s(e)}else if(i===3||i===4)return e.nodeValue}else for(;t=e[r];r++)n+=s(t);return n},o=nt.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?t.nodeName!=="HTML":!1},u=nt.contains=y.contains?function(e,t){var n=e.nodeType===9?e.documentElement:e,r=t&&t.parentNode;return e===r||!!(r&&r.nodeType===1&&n.contains&&n.contains(r))}:y.compareDocumentPosition?function(e,t){return t&&!!(e.compareDocumentPosition(t)&16)}:function(e,t){while(t=t.parentNode)if(t===e)return!0;return!1},nt.attr=function(e,t){var n,r=o(e);return r||(t=t.toLowerCase()),(n=i.attrHandle[t])?n(e):r||Y?e.getAttribute(t):(n=e.getAttributeNode(t),n?typeof e[t]=="boolean"?e[t]?t:null:n.specified?n.value:null:null)},i=nt.selectors={cacheLength:50,createPseudo:N,match:J,attrHandle:G?{}:{href:function(e){return e.getAttribute("href",2)},type:function(e){return e.getAttribute("type")}},find:{ID:r?function(e,t,n){if(typeof t.getElementById!==p&&!n){var r=t.getElementById(e);return r&&r.parentNode?[r]:[]}}:function(e,n,r){if(typeof n.getElementById!==p&&!r){var i=n.getElementById(e);return i?i.id===e||typeof i.getAttributeNode!==p&&i.getAttributeNode("id").value===e?[i]:t:[]}},TAG:Q?function(e,t){if(typeof t.getElementsByTagName!==p)return t.getElementsByTagName(e)}:function(e,t){var n=t.getElementsByTagName(e);if(e==="*"){var r,i=[],s=0;for(;r=n[s];s++)r.nodeType===1&&i.push(r);return i}return n},NAME:et&&function(e,t){if(typeof t.getElementsByName!==p)return t.getElementsByName(name)},CLASS:Z&&function(e,t,n){if(typeof t.getElementsByClassName!==p&&!n)return t.getElementsByClassName(e)}},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace($,""),e[3]=(e[4]||e[5]||"").replace($,""),e[2]==="~="&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),e[1]==="nth"?(e[2]||nt.error(e[0]),e[3]=+(e[3]?e[4]+(e[5]||1):2*(e[2]==="even"||e[2]==="odd")),e[4]=+(e[6]+e[7]||e[2]==="odd")):e[2]&&nt.error(e[0]),e},PSEUDO:function(e){var t,n;if(J.CHILD.test(e[0]))return null;if(e[3])e[2]=e[3];else if(t=e[4])q.test(t)&&(n=ut(t,!0))&&(n=t.indexOf(")",t.length-n)-t.length)&&(t=t.slice(0,n),e[0]=e[0].slice(0,n)),e[2]=t;return e.slice(0,3)}},filter:{ID:r?function(e){return e=e.replace($,""),function(t){return t.getAttribute("id")===e}}:function(e){return e=e.replace($,""),function(t){var n=typeof t.getAttributeNode!==p&&t.getAttributeNode("id");return n&&n.value===e}},TAG:function(e){return e==="*"?function(){return!0}:(e=e.replace($,"").toLowerCase(),function(t){return t.nodeName&&t.nodeName.toLowerCase()===e})},CLASS:function(e){var t=k[d][e+" "];return t||(t=new RegExp("(^|"+O+")"+e+"("+O+"|$)"))&&k(e,function(e){return t.test(e.className||typeof e.getAttribute!==p&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r,i){var s=nt.attr(r,e);return s==null?t==="!=":t?(s+="",t==="="?s===n:t==="!="?s!==n:t==="^="?n&&s.indexOf(n)===0:t==="*="?n&&s.indexOf(n)>-1:t==="$="?n&&s.substr(s.length-n.length)===n:t==="~="?(" "+s+" ").indexOf(n)>-1:t==="|="?s===n||s.substr(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r){return e==="nth"?function(e){var t,i,s=e.parentNode;if(n===1&&r===0)return!0;if(s){i=0;for(t=s.firstChild;t;t=t.nextSibling)if(t.nodeType===1){i++;if(e===t)break}}return i-=r,i===n||i%n===0&&i/n>=0}:function(t){var n=t;switch(e){case"only":case"first":while(n=n.previousSibling)if(n.nodeType===1)return!1;if(e==="first")return!0;n=t;case"last":while(n=n.nextSibling)if(n.nodeType===1)return!1;return!0}}},PSEUDO:function(e,t){var n,r=i.pseudos[e]||i.setFilters[e.toLowerCase()]||nt.error("unsupported pseudo: "+e);return r[d]?r(t):r.length>1?(n=[e,e,"",t],i.setFilters.hasOwnProperty(e.toLowerCase())?N(function(e,n){var i,s=r(e,t),o=s.length;while(o--)i=T.call(e,s[o]),e[i]=!(n[i]=s[o])}):function(e){return r(e,0,n)}):r}},pseudos:{not:N(function(e){var t=[],n=[],r=a(e.replace(j,"$1"));return r[d]?N(function(e,t,n,i){var s,o=r(e,null,i,[]),u=e.length;while(u--)if(s=o[u])e[u]=!(t[u]=s)}):function(e,i,s){return t[0]=e,r(t,null,s,n),!n.pop()}}),has:N(function(e){return function(t){return nt(e,t).length>0}}),contains:N(function(e){return function(t){return(t.textContent||t.innerText||s(t)).indexOf(e)>-1}}),enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return t==="input"&&!!e.checked||t==="option"&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},parent:function(e){return!i.pseudos.empty(e)},empty:function(e){var t;e=e.firstChild;while(e){if(e.nodeName>"@"||(t=e.nodeType)===3||t===4)return!1;e=e.nextSibling}return!0},header:function(e){return X.test(e.nodeName)},text:function(e){var t,n;return e.nodeName.toLowerCase()==="input"&&(t=e.type)==="text"&&((n=e.getAttribute("type"))==null||n.toLowerCase()===t)},radio:rt("radio"),checkbox:rt("checkbox"),file:rt("file"),password:rt("password"),image:rt("image"),submit:it("submit"),reset:it("reset"),button:function(e){var t=e.nodeName.toLowerCase();return t==="input"&&e.type==="button"||t==="button"},input:function(e){return V.test(e.nodeName)},focus:function(e){var t=e.ownerDocument;return e===t.activeElement&&(!t.hasFocus||t.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},active:function(e){return e===e.ownerDocument.activeElement},first:st(function(){return[0]}),last:st(function(e,t){return[t-1]}),eq:st(function(e,t,n){return[n<0?n+t:n]}),even:st(function(e,t){for(var n=0;n=0;)e.push(r);return e}),gt:st(function(e,t,n){for(var r=n<0?n+t:n;++r",e.querySelectorAll("[selected]").length||i.push("\\["+O+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),e.querySelectorAll(":checked").length||i.push(":checked")}),K(function(e){e.innerHTML="

                                ",e.querySelectorAll("[test^='']").length&&i.push("[*^$]="+O+"*(?:\"\"|'')"),e.innerHTML="",e.querySelectorAll(":enabled").length||i.push(":enabled",":disabled")}),i=new RegExp(i.join("|")),vt=function(e,r,s,o,u){if(!o&&!u&&!i.test(e)){var a,f,l=!0,c=d,h=r,p=r.nodeType===9&&e;if(r.nodeType===1&&r.nodeName.toLowerCase()!=="object"){a=ut(e),(l=r.getAttribute("id"))?c=l.replace(n,"\\$&"):r.setAttribute("id",c),c="[id='"+c+"'] ",f=a.length;while(f--)a[f]=c+a[f].join("");h=z.test(e)&&r.parentNode||r,p=a.join(",")}if(p)try{return S.apply(s,x.call(h.querySelectorAll(p),0)),s}catch(v){}finally{l||r.removeAttribute("id")}}return t(e,r,s,o,u)},u&&(K(function(t){e=u.call(t,"div");try{u.call(t,"[test!='']:sizzle"),s.push("!=",H)}catch(n){}}),s=new RegExp(s.join("|")),nt.matchesSelector=function(t,n){n=n.replace(r,"='$1']");if(!o(t)&&!s.test(n)&&!i.test(n))try{var a=u.call(t,n);if(a||e||t.document&&t.document.nodeType!==11)return a}catch(f){}return nt(n,null,null,[t]).length>0})}(),i.pseudos.nth=i.pseudos.eq,i.filters=mt.prototype=i.pseudos,i.setFilters=new mt,nt.attr=v.attr,v.find=nt,v.expr=nt.selectors,v.expr[":"]=v.expr.pseudos,v.unique=nt.uniqueSort,v.text=nt.getText,v.isXMLDoc=nt.isXML,v.contains=nt.contains}(e);var nt=/Until$/,rt=/^(?:parents|prev(?:Until|All))/,it=/^.[^:#\[\.,]*$/,st=v.expr.match.needsContext,ot={children:!0,contents:!0,next:!0,prev:!0};v.fn.extend({find:function(e){var t,n,r,i,s,o,u=this;if(typeof e!="string")return v(e).filter(function(){for(t=0,n=u.length;t0)for(i=r;i=0:v.filter(e,this).length>0:this.filter(e).length>0)},closest:function(e,t){var n,r=0,i=this.length,s=[],o=st.test(e)||typeof e!="string"?v(e,t||this.context):0;for(;r-1:v.find.matchesSelector(n,e)){s.push(n);break}n=n.parentNode}}return s=s.length>1?v.unique(s):s,this.pushStack(s,"closest",e)},index:function(e){return e?typeof e=="string"?v.inArray(this[0],v(e)):v.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(e,t){var n=typeof e=="string"?v(e,t):v.makeArray(e&&e.nodeType?[e]:e),r=v.merge(this.get(),n);return this.pushStack(ut(n[0])||ut(r[0])?r:v.unique(r))},addBack:function(e){return this.add(e==null?this.prevObject:this.prevObject.filter(e))}}),v.fn.andSelf=v.fn.addBack,v.each({parent:function(e){var t=e.parentNode;return t&&t.nodeType!==11?t:null},parents:function(e){return v.dir(e,"parentNode")},parentsUntil:function(e,t,n){return v.dir(e,"parentNode",n)},next:function(e){return at(e,"nextSibling")},prev:function(e){return at(e,"previousSibling")},nextAll:function(e){return v.dir(e,"nextSibling")},prevAll:function(e){return v.dir(e,"previousSibling")},nextUntil:function(e,t,n){return v.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return v.dir(e,"previousSibling",n)},siblings:function(e){return v.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return v.sibling(e.firstChild)},contents:function(e){return v.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:v.merge([],e.childNodes)}},function(e,t){v.fn[e]=function(n,r){var i=v.map(this,t,n);return nt.test(e)||(r=n),r&&typeof r=="string"&&(i=v.filter(r,i)),i=this.length>1&&!ot[e]?v.unique(i):i,this.length>1&&rt.test(e)&&(i=i.reverse()),this.pushStack(i,e,l.call(arguments).join(","))}}),v.extend({filter:function(e,t,n){return n&&(e=":not("+e+")"),t.length===1?v.find.matchesSelector(t[0],e)?[t[0]]:[]:v.find.matches(e,t)},dir:function(e,n,r){var i=[],s=e[n];while(s&&s.nodeType!==9&&(r===t||s.nodeType!==1||!v(s).is(r)))s.nodeType===1&&i.push(s),s=s[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)e.nodeType===1&&e!==t&&n.push(e);return n}});var ct="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ht=/ jQuery\d+="(?:null|\d+)"/g,pt=/^\s+/,dt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,vt=/<([\w:]+)/,mt=/]","i"),Et=/^(?:checkbox|radio)$/,St=/checked\s*(?:[^=]|=\s*.checked.)/i,xt=/\/(java|ecma)script/i,Tt=/^\s*\s*$/g,Nt={option:[1,""],legend:[1,"
                                ","
                                "],thead:[1,"","
                                "],tr:[2,"","
                                "],td:[3,"","
                                "],col:[2,"","
                                "],area:[1,"",""],_default:[0,"",""]},Ct=lt(i),kt=Ct.appendChild(i.createElement("div"));Nt.optgroup=Nt.option,Nt.tbody=Nt.tfoot=Nt.colgroup=Nt.caption=Nt.thead,Nt.th=Nt.td,v.support.htmlSerialize||(Nt._default=[1,"X
                                ","
                                "]),v.fn.extend({text:function(e){return v.access(this,function(e){return e===t?v.text(this):this.empty().append((this[0]&&this[0].ownerDocument||i).createTextNode(e))},null,e,arguments.length)},wrapAll:function(e){if(v.isFunction(e))return this.each(function(t){v(this).wrapAll(e.call(this,t))});if(this[0]){var t=v(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&e.firstChild.nodeType===1)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return v.isFunction(e)?this.each(function(t){v(this).wrapInner(e.call(this,t))}):this.each(function(){var t=v(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=v.isFunction(e);return this.each(function(n){v(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){v.nodeName(this,"body")||v(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(e){(this.nodeType===1||this.nodeType===11)&&this.appendChild(e)})},prepend:function(){return this.domManip(arguments,!0,function(e){(this.nodeType===1||this.nodeType===11)&&this.insertBefore(e,this.firstChild)})},before:function(){if(!ut(this[0]))return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this)});if(arguments.length){var e=v.clean(arguments);return this.pushStack(v.merge(e,this),"before",this.selector)}},after:function(){if(!ut(this[0]))return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this.nextSibling)});if(arguments.length){var e=v.clean(arguments);return this.pushStack(v.merge(this,e),"after",this.selector)}},remove:function(e,t){var n,r=0;for(;(n=this[r])!=null;r++)if(!e||v.filter(e,[n]).length)!t&&n.nodeType===1&&(v.cleanData(n.getElementsByTagName("*")),v.cleanData([n])),n.parentNode&&n.parentNode.removeChild(n);return this},empty:function(){var e,t=0;for(;(e=this[t])!=null;t++){e.nodeType===1&&v.cleanData(e.getElementsByTagName("*"));while(e.firstChild)e.removeChild(e.firstChild)}return this},clone:function(e,t){return e=e==null?!1:e,t=t==null?e:t,this.map(function(){return v.clone(this,e,t)})},html:function(e){return v.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return n.nodeType===1?n.innerHTML.replace(ht,""):t;if(typeof e=="string"&&!yt.test(e)&&(v.support.htmlSerialize||!wt.test(e))&&(v.support.leadingWhitespace||!pt.test(e))&&!Nt[(vt.exec(e)||["",""])[1].toLowerCase()]){e=e.replace(dt,"<$1>");try{for(;r1&&typeof f=="string"&&St.test(f))return this.each(function(){v(this).domManip(e,n,r)});if(v.isFunction(f))return this.each(function(i){var s=v(this);e[0]=f.call(this,i,n?s.html():t),s.domManip(e,n,r)});if(this[0]){i=v.buildFragment(e,this,l),o=i.fragment,s=o.firstChild,o.childNodes.length===1&&(o=s);if(s){n=n&&v.nodeName(s,"tr");for(u=i.cacheable||c-1;a0?this.clone(!0):this).get(),v(o[i])[t](r),s=s.concat(r);return this.pushStack(s,e,o.selector)}}),v.extend({clone:function(e,t,n){var r,i,s,o;v.support.html5Clone||v.isXMLDoc(e)||!wt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(kt.innerHTML=e.outerHTML,kt.removeChild(o=kt.firstChild));if((!v.support.noCloneEvent||!v.support.noCloneChecked)&&(e.nodeType===1||e.nodeType===11)&&!v.isXMLDoc(e)){Ot(e,o),r=Mt(e),i=Mt(o);for(s=0;r[s];++s)i[s]&&Ot(r[s],i[s])}if(t){At(e,o);if(n){r=Mt(e),i=Mt(o);for(s=0;r[s];++s)At(r[s],i[s])}}return r=i=null,o},clean:function(e,t,n,r){var s,o,u,a,f,l,c,h,p,d,m,g,y=t===i&&Ct,b=[];if(!t||typeof t.createDocumentFragment=="undefined")t=i;for(s=0;(u=e[s])!=null;s++){typeof u=="number"&&(u+="");if(!u)continue;if(typeof u=="string")if(!gt.test(u))u=t.createTextNode(u);else{y=y||lt(t),c=t.createElement("div"),y.appendChild(c),u=u.replace(dt,"<$1>"),a=(vt.exec(u)||["",""])[1].toLowerCase(),f=Nt[a]||Nt._default,l=f[0],c.innerHTML=f[1]+u+f[2];while(l--)c=c.lastChild;if(!v.support.tbody){h=mt.test(u),p=a==="table"&&!h?c.firstChild&&c.firstChild.childNodes:f[1]===""&&!h?c.childNodes:[];for(o=p.length-1;o>=0;--o)v.nodeName(p[o],"tbody")&&!p[o].childNodes.length&&p[o].parentNode.removeChild(p[o])}!v.support.leadingWhitespace&&pt.test(u)&&c.insertBefore(t.createTextNode(pt.exec(u)[0]),c.firstChild),u=c.childNodes,c.parentNode.removeChild(c)}u.nodeType?b.push(u):v.merge(b,u)}c&&(u=c=y=null);if(!v.support.appendChecked)for(s=0;(u=b[s])!=null;s++)v.nodeName(u,"input")?_t(u):typeof u.getElementsByTagName!="undefined"&&v.grep(u.getElementsByTagName("input"),_t);if(n){m=function(e){if(!e.type||xt.test(e.type))return r?r.push(e.parentNode?e.parentNode.removeChild(e):e):n.appendChild(e)};for(s=0;(u=b[s])!=null;s++)if(!v.nodeName(u,"script")||!m(u))n.appendChild(u),typeof u.getElementsByTagName!="undefined"&&(g=v.grep(v.merge([],u.getElementsByTagName("script")),m),b.splice.apply(b,[s+1,0].concat(g)),s+=g.length)}return b},cleanData:function(e,t){var n,r,i,s,o=0,u=v.expando,a=v.cache,f=v.support.deleteExpando,l=v.event.special;for(;(i=e[o])!=null;o++)if(t||v.acceptData(i)){r=i[u],n=r&&a[r];if(n){if(n.events)for(s in n.events)l[s]?v.event.remove(i,s):v.removeEvent(i,s,n.handle);a[r]&&(delete a[r],f?delete i[u]:i.removeAttribute?i.removeAttribute(u):i[u]=null,v.deletedIds.push(r))}}}}),function(){var e,t;v.uaMatch=function(e){e=e.toLowerCase();var t=/(chrome)[ \/]([\w.]+)/.exec(e)||/(webkit)[ \/]([\w.]+)/.exec(e)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(e)||/(msie) ([\w.]+)/.exec(e)||e.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(e)||[];return{browser:t[1]||"",version:t[2]||"0"}},e=v.uaMatch(o.userAgent),t={},e.browser&&(t[e.browser]=!0,t.version=e.version),t.chrome?t.webkit=!0:t.webkit&&(t.safari=!0),v.browser=t,v.sub=function(){function e(t,n){return new e.fn.init(t,n)}v.extend(!0,e,this),e.superclass=this,e.fn=e.prototype=this(),e.fn.constructor=e,e.sub=this.sub,e.fn.init=function(r,i){return i&&i instanceof v&&!(i instanceof e)&&(i=e(i)),v.fn.init.call(this,r,i,t)},e.fn.init.prototype=e.fn;var t=e(i);return e}}();var Dt,Pt,Ht,Bt=/alpha\([^)]*\)/i,jt=/opacity=([^)]*)/,Ft=/^(top|right|bottom|left)$/,It=/^(none|table(?!-c[ea]).+)/,qt=/^margin/,Rt=new RegExp("^("+m+")(.*)$","i"),Ut=new RegExp("^("+m+")(?!px)[a-z%]+$","i"),zt=new RegExp("^([-+])=("+m+")","i"),Wt={BODY:"block"},Xt={position:"absolute",visibility:"hidden",display:"block"},Vt={letterSpacing:0,fontWeight:400},$t=["Top","Right","Bottom","Left"],Jt=["Webkit","O","Moz","ms"],Kt=v.fn.toggle;v.fn.extend({css:function(e,n){return v.access(this,function(e,n,r){return r!==t?v.style(e,n,r):v.css(e,n)},e,n,arguments.length>1)},show:function(){return Yt(this,!0)},hide:function(){return Yt(this)},toggle:function(e,t){var n=typeof e=="boolean";return v.isFunction(e)&&v.isFunction(t)?Kt.apply(this,arguments):this.each(function(){(n?e:Gt(this))?v(this).show():v(this).hide()})}}),v.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Dt(e,"opacity");return n===""?"1":n}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":v.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(!e||e.nodeType===3||e.nodeType===8||!e.style)return;var s,o,u,a=v.camelCase(n),f=e.style;n=v.cssProps[a]||(v.cssProps[a]=Qt(f,a)),u=v.cssHooks[n]||v.cssHooks[a];if(r===t)return u&&"get"in u&&(s=u.get(e,!1,i))!==t?s:f[n];o=typeof r,o==="string"&&(s=zt.exec(r))&&(r=(s[1]+1)*s[2]+parseFloat(v.css(e,n)),o="number");if(r==null||o==="number"&&isNaN(r))return;o==="number"&&!v.cssNumber[a]&&(r+="px");if(!u||!("set"in u)||(r=u.set(e,r,i))!==t)try{f[n]=r}catch(l){}},css:function(e,n,r,i){var s,o,u,a=v.camelCase(n);return n=v.cssProps[a]||(v.cssProps[a]=Qt(e.style,a)),u=v.cssHooks[n]||v.cssHooks[a],u&&"get"in u&&(s=u.get(e,!0,i)),s===t&&(s=Dt(e,n)),s==="normal"&&n in Vt&&(s=Vt[n]),r||i!==t?(o=parseFloat(s),r||v.isNumeric(o)?o||0:s):s},swap:function(e,t,n){var r,i,s={};for(i in t)s[i]=e.style[i],e.style[i]=t[i];r=n.call(e);for(i in t)e.style[i]=s[i];return r}}),e.getComputedStyle?Dt=function(t,n){var r,i,s,o,u=e.getComputedStyle(t,null),a=t.style;return u&&(r=u.getPropertyValue(n)||u[n],r===""&&!v.contains(t.ownerDocument,t)&&(r=v.style(t,n)),Ut.test(r)&&qt.test(n)&&(i=a.width,s=a.minWidth,o=a.maxWidth,a.minWidth=a.maxWidth=a.width=r,r=u.width,a.width=i,a.minWidth=s,a.maxWidth=o)),r}:i.documentElement.currentStyle&&(Dt=function(e,t){var n,r,i=e.currentStyle&&e.currentStyle[t],s=e.style;return i==null&&s&&s[t]&&(i=s[t]),Ut.test(i)&&!Ft.test(t)&&(n=s.left,r=e.runtimeStyle&&e.runtimeStyle.left,r&&(e.runtimeStyle.left=e.currentStyle.left),s.left=t==="fontSize"?"1em":i,i=s.pixelLeft+"px",s.left=n,r&&(e.runtimeStyle.left=r)),i===""?"auto":i}),v.each(["height","width"],function(e,t){v.cssHooks[t]={get:function(e,n,r){if(n)return e.offsetWidth===0&&It.test(Dt(e,"display"))?v.swap(e,Xt,function(){return tn(e,t,r)}):tn(e,t,r)},set:function(e,n,r){return Zt(e,n,r?en(e,t,r,v.support.boxSizing&&v.css(e,"boxSizing")==="border-box"):0)}}}),v.support.opacity||(v.cssHooks.opacity={get:function(e,t){return jt.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=v.isNumeric(t)?"alpha(opacity="+t*100+")":"",s=r&&r.filter||n.filter||"";n.zoom=1;if(t>=1&&v.trim(s.replace(Bt,""))===""&&n.removeAttribute){n.removeAttribute("filter");if(r&&!r.filter)return}n.filter=Bt.test(s)?s.replace(Bt,i):s+" "+i}}),v(function(){v.support.reliableMarginRight||(v.cssHooks.marginRight={get:function(e,t){return v.swap(e,{display:"inline-block"},function(){if(t)return Dt(e,"marginRight")})}}),!v.support.pixelPosition&&v.fn.position&&v.each(["top","left"],function(e,t){v.cssHooks[t]={get:function(e,n){if(n){var r=Dt(e,t);return Ut.test(r)?v(e).position()[t]+"px":r}}}})}),v.expr&&v.expr.filters&&(v.expr.filters.hidden=function(e){return e.offsetWidth===0&&e.offsetHeight===0||!v.support.reliableHiddenOffsets&&(e.style&&e.style.display||Dt(e,"display"))==="none"},v.expr.filters.visible=function(e){return!v.expr.filters.hidden(e)}),v.each({margin:"",padding:"",border:"Width"},function(e,t){v.cssHooks[e+t]={expand:function(n){var r,i=typeof n=="string"?n.split(" "):[n],s={};for(r=0;r<4;r++)s[e+$t[r]+t]=i[r]||i[r-2]||i[0];return s}},qt.test(e)||(v.cssHooks[e+t].set=Zt)});var rn=/%20/g,sn=/\[\]$/,on=/\r?\n/g,un=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,an=/^(?:select|textarea)/i;v.fn.extend({serialize:function(){return v.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?v.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||an.test(this.nodeName)||un.test(this.type))}).map(function(e,t){var n=v(this).val();return n==null?null:v.isArray(n)?v.map(n,function(e,n){return{name:t.name,value:e.replace(on,"\r\n")}}):{name:t.name,value:n.replace(on,"\r\n")}}).get()}}),v.param=function(e,n){var r,i=[],s=function(e,t){t=v.isFunction(t)?t():t==null?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};n===t&&(n=v.ajaxSettings&&v.ajaxSettings.traditional);if(v.isArray(e)||e.jquery&&!v.isPlainObject(e))v.each(e,function(){s(this.name,this.value)});else for(r in e)fn(r,e[r],n,s);return i.join("&").replace(rn,"+")};var ln,cn,hn=/#.*$/,pn=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,dn=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,vn=/^(?:GET|HEAD)$/,mn=/^\/\//,gn=/\?/,yn=/)<[^<]*)*<\/script>/gi,bn=/([?&])_=[^&]*/,wn=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,En=v.fn.load,Sn={},xn={},Tn=["*/"]+["*"];try{cn=s.href}catch(Nn){cn=i.createElement("a"),cn.href="",cn=cn.href}ln=wn.exec(cn.toLowerCase())||[],v.fn.load=function(e,n,r){if(typeof e!="string"&&En)return En.apply(this,arguments);if(!this.length)return this;var i,s,o,u=this,a=e.indexOf(" ");return a>=0&&(i=e.slice(a,e.length),e=e.slice(0,a)),v.isFunction(n)?(r=n,n=t):n&&typeof n=="object"&&(s="POST"),v.ajax({url:e,type:s,dataType:"html",data:n,complete:function(e,t){r&&u.each(r,o||[e.responseText,t,e])}}).done(function(e){o=arguments,u.html(i?v("
                                ").append(e.replace(yn,"")).find(i):e)}),this},v.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,t){v.fn[t]=function(e){return this.on(t,e)}}),v.each(["get","post"],function(e,n){v[n]=function(e,r,i,s){return v.isFunction(r)&&(s=s||i,i=r,r=t),v.ajax({type:n,url:e,data:r,success:i,dataType:s})}}),v.extend({getScript:function(e,n){return v.get(e,t,n,"script")},getJSON:function(e,t,n){return v.get(e,t,n,"json")},ajaxSetup:function(e,t){return t?Ln(e,v.ajaxSettings):(t=e,e=v.ajaxSettings),Ln(e,t),e},ajaxSettings:{url:cn,isLocal:dn.test(ln[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":Tn},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":e.String,"text html":!0,"text json":v.parseJSON,"text xml":v.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:Cn(Sn),ajaxTransport:Cn(xn),ajax:function(e,n){function T(e,n,s,a){var l,y,b,w,S,T=n;if(E===2)return;E=2,u&&clearTimeout(u),o=t,i=a||"",x.readyState=e>0?4:0,s&&(w=An(c,x,s));if(e>=200&&e<300||e===304)c.ifModified&&(S=x.getResponseHeader("Last-Modified"),S&&(v.lastModified[r]=S),S=x.getResponseHeader("Etag"),S&&(v.etag[r]=S)),e===304?(T="notmodified",l=!0):(l=On(c,w),T=l.state,y=l.data,b=l.error,l=!b);else{b=T;if(!T||e)T="error",e<0&&(e=0)}x.status=e,x.statusText=(n||T)+"",l?d.resolveWith(h,[y,T,x]):d.rejectWith(h,[x,T,b]),x.statusCode(g),g=t,f&&p.trigger("ajax"+(l?"Success":"Error"),[x,c,l?y:b]),m.fireWith(h,[x,T]),f&&(p.trigger("ajaxComplete",[x,c]),--v.active||v.event.trigger("ajaxStop"))}typeof e=="object"&&(n=e,e=t),n=n||{};var r,i,s,o,u,a,f,l,c=v.ajaxSetup({},n),h=c.context||c,p=h!==c&&(h.nodeType||h instanceof v)?v(h):v.event,d=v.Deferred(),m=v.Callbacks("once memory"),g=c.statusCode||{},b={},w={},E=0,S="canceled",x={readyState:0,setRequestHeader:function(e,t){if(!E){var n=e.toLowerCase();e=w[n]=w[n]||e,b[e]=t}return this},getAllResponseHeaders:function(){return E===2?i:null},getResponseHeader:function(e){var n;if(E===2){if(!s){s={};while(n=pn.exec(i))s[n[1].toLowerCase()]=n[2]}n=s[e.toLowerCase()]}return n===t?null:n},overrideMimeType:function(e){return E||(c.mimeType=e),this},abort:function(e){return e=e||S,o&&o.abort(e),T(0,e),this}};d.promise(x),x.success=x.done,x.error=x.fail,x.complete=m.add,x.statusCode=function(e){if(e){var t;if(E<2)for(t in e)g[t]=[g[t],e[t]];else t=e[x.status],x.always(t)}return this},c.url=((e||c.url)+"").replace(hn,"").replace(mn,ln[1]+"//"),c.dataTypes=v.trim(c.dataType||"*").toLowerCase().split(y),c.crossDomain==null&&(a=wn.exec(c.url.toLowerCase()),c.crossDomain=!(!a||a[1]===ln[1]&&a[2]===ln[2]&&(a[3]||(a[1]==="http:"?80:443))==(ln[3]||(ln[1]==="http:"?80:443)))),c.data&&c.processData&&typeof c.data!="string"&&(c.data=v.param(c.data,c.traditional)),kn(Sn,c,n,x);if(E===2)return x;f=c.global,c.type=c.type.toUpperCase(),c.hasContent=!vn.test(c.type),f&&v.active++===0&&v.event.trigger("ajaxStart");if(!c.hasContent){c.data&&(c.url+=(gn.test(c.url)?"&":"?")+c.data,delete c.data),r=c.url;if(c.cache===!1){var N=v.now(),C=c.url.replace(bn,"$1_="+N);c.url=C+(C===c.url?(gn.test(c.url)?"&":"?")+"_="+N:"")}}(c.data&&c.hasContent&&c.contentType!==!1||n.contentType)&&x.setRequestHeader("Content-Type",c.contentType),c.ifModified&&(r=r||c.url,v.lastModified[r]&&x.setRequestHeader("If-Modified-Since",v.lastModified[r]),v.etag[r]&&x.setRequestHeader("If-None-Match",v.etag[r])),x.setRequestHeader("Accept",c.dataTypes[0]&&c.accepts[c.dataTypes[0]]?c.accepts[c.dataTypes[0]]+(c.dataTypes[0]!=="*"?", "+Tn+"; q=0.01":""):c.accepts["*"]);for(l in c.headers)x.setRequestHeader(l,c.headers[l]);if(!c.beforeSend||c.beforeSend.call(h,x,c)!==!1&&E!==2){S="abort";for(l in{success:1,error:1,complete:1})x[l](c[l]);o=kn(xn,c,n,x);if(!o)T(-1,"No Transport");else{x.readyState=1,f&&p.trigger("ajaxSend",[x,c]),c.async&&c.timeout>0&&(u=setTimeout(function(){x.abort("timeout")},c.timeout));try{E=1,o.send(b,T)}catch(k){if(!(E<2))throw k;T(-1,k)}}return x}return x.abort()},active:0,lastModified:{},etag:{}});var Mn=[],_n=/\?/,Dn=/(=)\?(?=&|$)|\?\?/,Pn=v.now();v.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Mn.pop()||v.expando+"_"+Pn++;return this[e]=!0,e}}),v.ajaxPrefilter("json jsonp",function(n,r,i){var s,o,u,a=n.data,f=n.url,l=n.jsonp!==!1,c=l&&Dn.test(f),h=l&&!c&&typeof a=="string"&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Dn.test(a);if(n.dataTypes[0]==="jsonp"||c||h)return s=n.jsonpCallback=v.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,o=e[s],c?n.url=f.replace(Dn,"$1"+s):h?n.data=a.replace(Dn,"$1"+s):l&&(n.url+=(_n.test(f)?"&":"?")+n.jsonp+"="+s),n.converters["script json"]=function(){return u||v.error(s+" was not called"),u[0]},n.dataTypes[0]="json",e[s]=function(){u=arguments},i.always(function(){e[s]=o,n[s]&&(n.jsonpCallback=r.jsonpCallback,Mn.push(s)),u&&v.isFunction(o)&&o(u[0]),u=o=t}),"script"}),v.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(e){return v.globalEval(e),e}}}),v.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),v.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=i.head||i.getElementsByTagName("head")[0]||i.documentElement;return{send:function(s,o){n=i.createElement("script"),n.async="async",e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,i){if(i||!n.readyState||/loaded|complete/.test(n.readyState))n.onload=n.onreadystatechange=null,r&&n.parentNode&&r.removeChild(n),n=t,i||o(200,"success")},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(0,1)}}}});var Hn,Bn=e.ActiveXObject?function(){for(var e in Hn)Hn[e](0,1)}:!1,jn=0;v.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&Fn()||In()}:Fn,function(e){v.extend(v.support,{ajax:!!e,cors:!!e&&"withCredentials"in e})}(v.ajaxSettings.xhr()),v.support.ajax&&v.ajaxTransport(function(n){if(!n.crossDomain||v.support.cors){var r;return{send:function(i,s){var o,u,a=n.xhr();n.username?a.open(n.type,n.url,n.async,n.username,n.password):a.open(n.type,n.url,n.async);if(n.xhrFields)for(u in n.xhrFields)a[u]=n.xhrFields[u];n.mimeType&&a.overrideMimeType&&a.overrideMimeType(n.mimeType),!n.crossDomain&&!i["X-Requested-With"]&&(i["X-Requested-With"]="XMLHttpRequest");try{for(u in i)a.setRequestHeader(u,i[u])}catch(f){}a.send(n.hasContent&&n.data||null),r=function(e,i){var u,f,l,c,h;try{if(r&&(i||a.readyState===4)){r=t,o&&(a.onreadystatechange=v.noop,Bn&&delete Hn[o]);if(i)a.readyState!==4&&a.abort();else{u=a.status,l=a.getAllResponseHeaders(),c={},h=a.responseXML,h&&h.documentElement&&(c.xml=h);try{c.text=a.responseText}catch(p){}try{f=a.statusText}catch(p){f=""}!u&&n.isLocal&&!n.crossDomain?u=c.text?200:404:u===1223&&(u=204)}}}catch(d){i||s(-1,d)}c&&s(u,f,c,l)},n.async?a.readyState===4?setTimeout(r,0):(o=++jn,Bn&&(Hn||(Hn={},v(e).unload(Bn)),Hn[o]=r),a.onreadystatechange=r):r()},abort:function(){r&&r(0,1)}}}});var qn,Rn,Un=/^(?:toggle|show|hide)$/,zn=new RegExp("^(?:([-+])=|)("+m+")([a-z%]*)$","i"),Wn=/queueHooks$/,Xn=[Gn],Vn={"*":[function(e,t){var n,r,i=this.createTween(e,t),s=zn.exec(t),o=i.cur(),u=+o||0,a=1,f=20;if(s){n=+s[2],r=s[3]||(v.cssNumber[e]?"":"px");if(r!=="px"&&u){u=v.css(i.elem,e,!0)||n||1;do a=a||".5",u/=a,v.style(i.elem,e,u+r);while(a!==(a=i.cur()/o)&&a!==1&&--f)}i.unit=r,i.start=u,i.end=s[1]?u+(s[1]+1)*n:n}return i}]};v.Animation=v.extend(Kn,{tweener:function(e,t){v.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;r-1,f={},l={},c,h;a?(l=i.position(),c=l.top,h=l.left):(c=parseFloat(o)||0,h=parseFloat(u)||0),v.isFunction(t)&&(t=t.call(e,n,s)),t.top!=null&&(f.top=t.top-s.top+c),t.left!=null&&(f.left=t.left-s.left+h),"using"in t?t.using.call(e,f):i.css(f)}},v.fn.extend({position:function(){if(!this[0])return;var e=this[0],t=this.offsetParent(),n=this.offset(),r=er.test(t[0].nodeName)?{top:0,left:0}:t.offset();return n.top-=parseFloat(v.css(e,"marginTop"))||0,n.left-=parseFloat(v.css(e,"marginLeft"))||0,r.top+=parseFloat(v.css(t[0],"borderTopWidth"))||0,r.left+=parseFloat(v.css(t[0],"borderLeftWidth"))||0,{top:n.top-r.top,left:n.left-r.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||i.body;while(e&&!er.test(e.nodeName)&&v.css(e,"position")==="static")e=e.offsetParent;return e||i.body})}}),v.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);v.fn[e]=function(i){return v.access(this,function(e,i,s){var o=tr(e);if(s===t)return o?n in o?o[n]:o.document.documentElement[i]:e[i];o?o.scrollTo(r?v(o).scrollLeft():s,r?s:v(o).scrollTop()):e[i]=s},e,i,arguments.length,null)}}),v.each({Height:"height",Width:"width"},function(e,n){v.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){v.fn[i]=function(i,s){var o=arguments.length&&(r||typeof i!="boolean"),u=r||(i===!0||s===!0?"margin":"border");return v.access(this,function(n,r,i){var s;return v.isWindow(n)?n.document.documentElement["client"+e]:n.nodeType===9?(s=n.documentElement,Math.max(n.body["scroll"+e],s["scroll"+e],n.body["offset"+e],s["offset"+e],s["client"+e])):i===t?v.css(n,r,i,u):v.style(n,r,i,u)},n,o?i:t,o,null)}})}),e.jQuery=e.$=v,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return v})})(window); \ No newline at end of file diff --git a/src/main/webapp/js/imgpreview/jquery.crop.js b/src/main/webapp/js/imgpreview/jquery.crop.js new file mode 100644 index 00000000..09d947a0 --- /dev/null +++ b/src/main/webapp/js/imgpreview/jquery.crop.js @@ -0,0 +1,156 @@ +(function(win, $, doc){ + var islteie7 /*@cc_on = (document.documentMode || 7) < 8 @*/, + cropmask = '
                                '; + cropmask = '
                                ' + ( islteie7 ? cropmask : "" ) + '
                                ' + ( islteie7 ? "" : cropmask ) + '
                                '; + + $.fn.crop = function(onChange, thumb){ + + var aera = $("
                                ").addClass("cropaera").css("position", "relative"), + image = $(this).css("margin", "auto"), + parent = image.parent(); + + if(thumb){ + thumb = $(thumb); + setTimeout(function(){ + thumb.html(""); + thumb.append(image.clone().removeAttr("id").css({ + position: "relative" + })); + setThumb(); + }, 300); + } + + if(parent.hasClass("cropaera")){ + parent.find(".mask_top, .mask_middle, .mask_left, .mask_right").attr("style", ""); + return this; + } + + aera.insertBefore(image); + aera.append(image); + aera.append(cropmask); + + aera.bind("selectstart", function(e){ + e.stopPropagation(); + e.preventDefault(); + return false; + }); + + var drag, + size, + maskbox = aera.find(".cropmask"); + mask = { + bottom: maskbox.find(".mask_bottom"), + middle: maskbox.find(".mask_middle"), + viewport: maskbox.find(".viewport"), + right: maskbox.find(".mask_right"), + left: maskbox.find(".mask_left"), + top: maskbox.find(".mask_top"), + mask: maskbox + }; + + function posint(n){ + return Math.max(n, 0); + } + + function prec(n){ + return Math.round(n * 100) + "%"; + } + + function getSize(){ + return { + aeraHeight: mask.mask.height(), + aeraWidth: mask.mask.width(), + height: mask.middle.height(), + width: mask.viewport.width(), + right: mask.right.width(), + left: mask.left.width(), + top: mask.top.height() + }; + } + + function setThumb(){ + var cropSize = getSize(), + rx = cropSize.aeraWidth / cropSize.width * thumb.width(), + ry = cropSize.aeraHeight / cropSize.height * thumb.height(); + $(thumb.children()).css({ + width: rx, + height: ry, + left: cropSize.left / cropSize.aeraWidth * -rx, + top: cropSize.top / cropSize.aeraHeight * -ry + }); + }; + + var setSize = { + height: function(o) { + mask.middle.height(Math.min(mask.mask.height() - mask.top.height(), posint(size.height + o.y))); + }, + right: function(o) { + mask.right.width(Math.min(mask.mask.width() - mask.left.width(), posint(size.right - o.x))); + }, + left: function(o) { + mask.left.width(Math.min(mask.mask.width() - mask.right.width(), posint(size.left + o.x))); + }, + top: function(o) { + return posint(size.top + o.y); + } + }; + + aera.mousedown(function(e) { + var cursor = $(e.target).css("cursor"); + drag = { + x: e.pageX, + y: e.pageY, + type: cursor.replace(/-resize$/, "") + }; + size = getSize(); + aera.css("cursor", cursor) + mask.mask.addClass("ondrag"); + }) + $(document).bind("mouseup blur",function(e) { + if(drag){ + onChange(getSize()); + } + aera.css("cursor", "") + mask.mask.removeClass("ondrag"); + drag = null; + }).mousemove(function(e) { + if(drag){ + if(thumb){ + setThumb(); + } + var type = drag.type, + offset = { + x: e.pageX - drag.x, + y: e.pageY - drag.y + }; + if(type == "move"){ + if(mask.left.width()){ + setSize.right(offset); + } + if(mask.right.width()){ + setSize.left(offset); + } + + mask.top.height(Math.min(mask.mask.height() - mask.middle.height(), setSize.top(offset))); + } else { + if(/n/.test(type)){ + var top = Math.min(mask.bottom.position().top, setSize.top(offset)); + mask.top.height(top); + mask.middle.height(size.height + size.top - top); + } + if(/w/.test(type)){ + setSize.left(offset); + } + if(/e/.test(type)){ + setSize.right(offset); + } + if(/s/.test(type)){ + setSize.height(offset); + } + } + } + }); + + return this; + }; +})(this, this.jQuery, this.document); diff --git a/src/main/webapp/js/jdigiclock/WeatherLocationDatabase.txt b/src/main/webapp/js/jdigiclock/WeatherLocationDatabase.txt new file mode 100644 index 00000000..98859f77 --- /dev/null +++ b/src/main/webapp/js/jdigiclock/WeatherLocationDatabase.txt @@ -0,0 +1,3594 @@ +City Name = "Aachen, DE" Location = "EUR|DE|GM011|AACHEN" Country = "Germany" +City Name = "Aalborg, DK" Location = "EUR|DK|DA007|AALBORG" Country = "Denmark" +City Name = "Aalesund, NO" Location = "EUR|NO|NO007|AALESUND" Country = "Norway" +City Name = "Aare, SE" Location = "EUR|SE|SW006|AARE" Country = "Sweden" +City Name = "Aarhus, DK" Location = "EUR|DK|DA001|AARHUS" Country = "Denmark" +City Name = "Aba, NG" Location = "AFR|NG|NI008|ABA" Country = "Nigeria" +City Name = "Abadan, IR" Location = "MEA|IR|IR016|ABADAN" Country = "Iran" +City Name = "Abakan, RU" Location = "ASI|RU|RS033|ABAKAN" Country = "Russia" +City Name = "Abbotsford, CA" Location = "NAM|CA|BC|ABBOTSFORD" Country = "Canada" +City Name = "Abeokuta, NG" Location = "AFR|NG|NI000|ABEOKUTA" Country = "Nigeria" +City Name = "Aberdeen, UK" Location = "EUR|UK|UK002|ABERDEEN" Country = "United Kingdom" +City Name = "Abidjan, CI" Location = "AFR|CI|IV002|ABIDJAN" Country = "Ivory Coast" +City Name = "Abiko, JP" Location = "ASI|JP|JA004|ABIKO" Country = "Japan" +City Name = "Abilene, TX, US" Location = "NAM|US|TX|ABILENE" Country = "United States" +City Name = "Abohar, IN" Location = "ASI|IN|IN028|ABOHAR" Country = "India" +City Name = "Abu Dhabi, AE" Location = "MEA|AE|AE002|ABU DHABI" Country = "United Arab Emirates" +City Name = "Abuja, NG" Location = "AFR|NG|NI000|ABUJA" Country = "Nigeria" +City Name = "Acala De Henares, ES" Location = "EUR|ES|SP013|ALCAL DE HENARES" Country = "Spain" +City Name = "Acapulco, MX" Location = "NAM|MX|MX012|ACAPULCO" Country = "Mexico" +City Name = "Acarigua-Araure, VE" Location = "SAM|VE|VE019|ACARIGUA-ARAURE" Country = "Venezuela" +City Name = "Accra, GH" Location = "AFR|GH|GH000|ACCRA" Country = "Ghana" +City Name = "Acheng, CN" Location = "ASI|CN|CH011|ACHENG" Country = "China" +City Name = "Achinsk, RU" Location = "ASI|RU|RS041|ACHINSK" Country = "Russia" +City Name = "Adamstown, PN" Location = "OCN|PN|PC---|ADAMSTOWN" Country = "Pitcairn Islands" +City Name = "Adana, TR" Location = "MEA|TR|TU001|ADANA" Country = "Turkey" +City Name = "Addis Ababa, ET" Location = "AFR|ET|ET000|ADDIS ABABA" Country = "Ethiopia" +City Name = "Adelaide, AU" Location = "OCN|AU|SA|ADELAIDE" Country = "Australia" +City Name = "Aden, YE" Location = "MEA|YE|YM001|ADEN" Country = "Yemen" +City Name = "Adiyaman, TR" Location = "MEA|TR|TU002|ADIYAMAN" Country = "Turkey" +City Name = "Ado-Ekiti, NG" Location = "AFR|NG|NI000|ADO-EKITI" Country = "Nigeria" +City Name = "Adoni, IN" Location = "ASI|IN|IN002|ADONI" Country = "India" +City Name = "Afyon, TR" Location = "MEA|TR|TU003|AFYON" Country = "Turkey" +City Name = "Agadir, MA" Location = "AFR|MA|MO041|AGADIR" Country = "Morocco" +City Name = "Agana, GU" Location = "OCN|GU|GU000|AGANA" Country = "Guam" +City Name = "Agartala, IN" Location = "ASI|IN|IN032|AGARTALA" Country = "India" +City Name = "Ageo, JP" Location = "ASI|JP|JA035|AGEO" Country = "Japan" +City Name = "Agra, IN" Location = "ASI|IN|IN033|AGRA" Country = "India" +City Name = "Aguascalientes, MX" Location = "NAM|MX|MX001|AGUASCALIENTES" Country = "Mexico" +City Name = "Ahmedabad, IN" Location = "ASI|IN|IN012|AHMEDABAD" Country = "India" +City Name = "Ahmednagar, IN" Location = "ASI|IN|IN021|AHMEDNAGAR" Country = "India" +City Name = "Ahome, MX" Location = "NAM|MX|MX025|AHOME" Country = "Mexico" +City Name = "Ahuachapan, SV" Location = "CAC|SV|ES001|AHUACHAPAN" Country = "El Salvador" +City Name = "Ahwaz, IR" Location = "MEA|IR|IR016|AHWAZ" Country = "Iran" +City Name = "Aix-En-Provence, FR" Location = "EUR|FR|FR021|AIX-EN-PROVENCE" Country = "France" +City Name = "Aizawl, IN" Location = "ASI|IN|IN024|AIZAWL" Country = "India" +City Name = "Ajmer, IN" Location = "ASI|IN|IN029|AJMER" Country = "India" +City Name = "Akishima, JP" Location = "ASI|JP|JA041|AKISHIMA" Country = "Japan" +City Name = "Akola, IN" Location = "ASI|IN|IN021|AKOLA" Country = "India" +City Name = "Akron, OH, US" Location = "NAM|US|OH|AKRON" Country = "United States" +City Name = "Aksaray, TR" Location = "MEA|TR|TU042|AKSARAY" Country = "Turkey" +City Name = "Aktau, KZ" Location = "ASI|KZ|KZ000|AKTAU" Country = "Kazakhstan" +City Name = "Aktobe, KZ" Location = "ASI|KZ|KZ000|AKTOBE" Country = "Kazakhstan" +City Name = "Al Ain, AE" Location = "MEA|AE|AE002|AL AIN" Country = "United Arab Emirates" +City Name = "Al Fujairah, AE" Location = "MEA|AE|AE003|AL FUJAIRAH" Country = "United Arab Emirates" +City Name = "Al khobar, SA" Location = "MEA|SA|SA008|AL KHOBAR" Country = "Saudi Arabia" +City Name = "Al Khums, LY" Location = "AFR|LY|LY006|AL KHUMS" Country = "Libya" +City Name = "Alagoinhas, BR" Location = "SAM|BR|BR002|ALAGOINHAS" Country = "Brazil" +City Name = "Alajuela, CR" Location = "CAC|CR|CS001|ALAJUELA" Country = "Costa Rica" +City Name = "Albacete, ES" Location = "EUR|ES|SP006|ALBACETE" Country = "Spain" +City Name = "Albany, NY, US" Location = "NAM|US|NY|ALBANY" Country = "United States" +City Name = "Albuquerque, NM, US" Location = "NAM|US|NM|ALBUQUERQUE" Country = "United States" +City Name = "Alchevsk, UA" Location = "EUR|UA|UP012|ALCHEVSK" Country = "Ukraine" +City Name = "Alcobendas, ES" Location = "EUR|ES|SP013|ALCOBENDAS" Country = "Spain" +City Name = "Alcorcon, ES" Location = "EUR|ES|SP013|ALCORCN" Country = "Spain" +City Name = "Aleppo, SY" Location = "MEA|SY|SY009|ALEPPO" Country = "Syria" +City Name = "Alexander Bay, ZA" Location = "AFR|ZA|SF008|ALEXANDER BAY" Country = "South Africa" +City Name = "Alexandra, ZA" Location = "AFR|ZA|SF004|ALEXANDRA" Country = "South Africa" +City Name = "Alexandria, EG" Location = "AFR|EG|EG006|ALEXANDRIA" Country = "Egypt" +City Name = "Alexandria, VA, US" Location = "NAM|US|VA|ALEXANDRIA" Country = "United States" +City Name = "Algeciras, ES" Location = "EUR|ES|SP001|ALGECIRAS" Country = "Spain" +City Name = "Alger, DZ" Location = "AFR|DZ|AG004|ALGER" Country = "Algeria" +City Name = "Al-Hasakeh, SY" Location = "MEA|SY|SY001|AL-HASAKEH" Country = "Syria" +City Name = "Alicante, ES" Location = "EUR|ES|SP016|ALICANTE" Country = "Spain" +City Name = "Aligarh, IN" Location = "ASI|IN|IN033|ALIGARH" Country = "India" +City Name = "Alipur, IN" Location = "ASI|IN|IN036|ALIPUR" Country = "India" +City Name = "Aliwal North, ZA" Location = "AFR|ZA|SF002|ALIWAL NORTH" Country = "South Africa" +City Name = "Allahabad, IN" Location = "ASI|IN|IN033|ALLAHABAD" Country = "India" +City Name = "Alldays, ZA" Location = "AFR|ZA|SF009|ALLDAYS" Country = "South Africa" +City Name = "Allentown, PA, US" Location = "NAM|US|PA|ALLENTOWN" Country = "United States" +City Name = "Almalyk, UZ" Location = "ASI|UZ|UZ013|ALMALYK" Country = "Uzbekistan" +City Name = "Almaty, KZ" Location = "ASI|KZ|KZ001|ALMATY" Country = "Kazakhstan" +City Name = "Almere, NL" Location = "EUR|NL|NL002|ALMERE" Country = "Netherlands" +City Name = "Almeria, ES" Location = "EUR|ES|SP001|ALMERA" Country = "Spain" +City Name = "Alor Setar, MY" Location = "ASI|MY|MY002|ALOR SETAR" Country = "Malaysia" +City Name = "Al-Rakka, SY" Location = "MEA|SY|SY004|AL-RAKKA" Country = "Syria" +City Name = "Alvorada, BR" Location = "SAM|BR|BR004|ALVORADA" Country = "Brazil" +City Name = "Alwar, IN" Location = "ASI|IN|IN029|ALWAR" Country = "India" +City Name = "Amadora, PT" Location = "EUR|PT|PO012|AMADORA" Country = "Portugal" +City Name = "Amagasaki, JP" Location = "ASI|JP|JA013|AMAGASAKI" Country = "Japan" +City Name = "Amanzimtoti, ZA" Location = "AFR|ZA|SF005|AMANZIMTOTI" Country = "South Africa" +City Name = "Amara, IQ" Location = "MEA|IQ|IZ015|AMARA" Country = "Iraq" +City Name = "Amarillo, TX, US" Location = "NAM|US|TX|AMARILLO" Country = "United States" +City Name = "Ambala, IN" Location = "ASI|IN|IN013|AMBALA" Country = "India" +City Name = "Ambato, EC" Location = "SAM|EC|EC018|AMBATO" Country = "Ecuador" +City Name = "Ambon, ID" Location = "ASI|ID|ID015|AMBON" Country = "Indonesia" +City Name = "Americana, BR" Location = "SAM|BR|BR023|AMERICANA" Country = "Brazil" +City Name = "Amersfoort, NL" Location = "EUR|NL|NL010|AMERSFOORT" Country = "Netherlands" +City Name = "Amiens, FR" Location = "EUR|FR|FR019|AMIENS" Country = "France" +City Name = "Amman, JO" Location = "MEA|JO|JO002|AMMAN" Country = "Jordan" +City Name = "Amol, IR" Location = "MEA|IR|IR021|AMOL" Country = "Iran" +City Name = "Amravati, IN" Location = "ASI|IN|IN020|AMRAVATI" Country = "India" +City Name = "Amritsar, IN" Location = "ASI|IN|IN028|AMRITSAR" Country = "India" +City Name = "Amroha, IN" Location = "ASI|IN|IN033|AMROHA" Country = "India" +City Name = "Amsterdam, NL" Location = "EUR|NL|NL008|AMSTERDAM" Country = "Netherlands" +City Name = "Anaheim, CA, US" Location = "NAM|US|CA|ANAHEIM" Country = "United States" +City Name = "Anand, IN" Location = "ASI|IN|IN012|ANAND" Country = "India" +City Name = "Ananindeua, BR" Location = "SAM|BR|BR013|ANANINDEUA" Country = "Brazil" +City Name = "Anapolis, BR" Location = "SAM|BR|BR027|ANPOLIS" Country = "Brazil" +City Name = "Anchorage, AK, US" Location = "NAM|US|AK|ANCHORAGE" Country = "United States" +City Name = "Anda, CN" Location = "ASI|CN|CH011|ANDA" Country = "China" +City Name = "Andimeshk, IR" Location = "MEA|IR|IR016|ANDIMESHK" Country = "Iran" +City Name = "Andizhan, UZ" Location = "ASI|UZ|UZ001|ANDIZHAN" Country = "Uzbekistan" +City Name = "Andong, KR" Location = "ASI|KR|KS010|ANDONG" Country = "South Korea" +City Name = "Andorra La Vella, AD" Location = "EUR|AD|AN000|ANDORRA LA VELLA" Country = "Andorra" +City Name = "Angarsk, RU" Location = "ASI|RU|RS021|ANGARSK" Country = "Russia" +City Name = "Angeles, PH" Location = "ASI|PH|RP006|ANGELES" Country = "Philippines" +City Name = "Angers, FR" Location = "EUR|FR|FR018|ANGERS" Country = "France" +City Name = "Angren, UZ" Location = "ASI|UZ|UZ013|ANGREN" Country = "Uzbekistan" +City Name = "Anjo, JP" Location = "ASI|JP|JA001|ANJO" Country = "Japan" +City Name = "Ankang, CN" Location = "ASI|CN|CH022|ANKANG" Country = "China" +City Name = "Ankara, TR" Location = "MEA|TR|TU007|ANKARA" Country = "Turkey" +City Name = "Anlu, CN" Location = "ASI|CN|CH013|ANLU" Country = "China" +City Name = "Ann Arbor, MI, US" Location = "NAM|US|MI|ANN ARBOR" Country = "United States" +City Name = "Annaba, DZ" Location = "AFR|DZ|AG039|ANNABA" Country = "Algeria" +City Name = "Annapolis, MD, US" Location = "NAM|US|MD|ANNAPOLIS" Country = "United States" +City Name = "Annecy, FR" Location = "EUR|FR|FR022|ANNECY" Country = "France" +City Name = "Anqing, CN" Location = "ASI|CN|CH001|ANQING" Country = "China" +City Name = "Ansan, KR" Location = "ASI|KR|KS009|ANSAN" Country = "South Korea" +City Name = "Anshan, CN" Location = "ASI|CN|CH001|ANSHAN" Country = "China" +City Name = "Antalya, TR" Location = "MEA|TR|TU008|ANTALYA" Country = "Turkey" +City Name = "Antananarivo, MG" Location = "AFR|MG|MA001|ANTANANARIVO" Country = "Madagascar" +City Name = "Antofagasta, CL" Location = "SAM|CL|CI002|ANTOFAGASTA" Country = "Chile" +City Name = "Antwerpen, BE" Location = "EUR|BE|BE001|ANTWERPEN" Country = "Belgium" +City Name = "Anyang, CN" Location = "ASI|CN|CH012|ANYANG" Country = "China" +City Name = "Aomori, JP" Location = "ASI|JP|JA003|AOMORI" Country = "Japan" +City Name = "Apeldoorn, NL" Location = "EUR|NL|NL004|APELDOORN" Country = "Netherlands" +City Name = "Apia, WS" Location = "OCN|WS|WS000|APIA" Country = "Samoa" +City Name = "Apopa, SV" Location = "CAC|SV|ES010|APOPA" Country = "El Salvador" +City Name = "Apucarana, BR" Location = "SAM|BR|BR015|APUCARANA" Country = "Brazil" +City Name = "Ar Rayyan, QA" Location = "MEA|QA|QA000|AR RAYYAN" Country = "Qatar" +City Name = "Aracaju, BR" Location = "SAM|BR|BR024|ARACAJU" Country = "Brazil" +City Name = "Aracatuba, BR" Location = "SAM|BR|BR023|ARAATUBA" Country = "Brazil" +City Name = "Arad, RO" Location = "EUR|RO|RO002|ARAD" Country = "Romania" +City Name = "Araguaina, BR" Location = "SAM|BR|BR025|ARAGUAINA" Country = "Brazil" +City Name = "Arak, IR" Location = "MEA|IR|IR020|ARAK" Country = "Iran" +City Name = "Arapiraca, BR" Location = "SAM|BR|BR002|ARAPIRACA" Country = "Brazil" +City Name = "Araraquara, BR" Location = "SAM|BR|BR023|ARARAQUARA" Country = "Brazil" +City Name = "Araras, BR" Location = "SAM|BR|BR023|ARARAS" Country = "Brazil" +City Name = "Arcot, IN" Location = "ASI|IN|IN031|ARCOT" Country = "India" +City Name = "Ardabil, IR" Location = "MEA|IR|IR001|ARDABIL" Country = "Iran" +City Name = "Arecibo, PR" Location = "CAC|PR|PR000|ARECIBO" Country = "Puerto Rico" +City Name = "Arendal, NO" Location = "EUR|NO|NO002|ARENDAL" Country = "Norway" +City Name = "Arequipa, PE" Location = "SAM|PE|PE004|AREQUIPA" Country = "Peru" +City Name = "Arica, CL" Location = "SAM|CL|CI012|ARICA" Country = "Chile" +City Name = "Arkhangelsk, RU" Location = "ASI|RU|RS005|ARKHANGELSK" Country = "Russia" +City Name = "Arlington, VA, US" Location = "NAM|US|VA|ARLINGTON" Country = "United States" +City Name = "Arlington, TX, US" Location = "NAM|US|TX|ARLINGTON" Country = "United States" +City Name = "Armavir, RU" Location = "ASI|RU|RS040|ARMAVIR" Country = "Russia" +City Name = "Armenia, CO" Location = "SAM|CO|CO021|ARMENIA" Country = "Colombia" +City Name = "Arnhem, NL" Location = "EUR|NL|NL004|ARNHEM" Country = "Netherlands" +City Name = "Arrah, IN" Location = "ASI|IN|IN005|ARRAH" Country = "India" +City Name = "Arua, UG" Location = "AFR|UG|UG000|ARUA" Country = "Uganda" +City Name = "Arusha, TZ" Location = "AFR|TZ|TZ000|ARUSHA" Country = "Tanzania" +City Name = "Arvada, CO, US" Location = "NAM|US|CO|ARVADA" Country = "United States" +City Name = "Arzamas, RU" Location = "ASI|RU|RS055|ARZAMAS" Country = "Russia" +City Name = "As Salimiyah, KW" Location = "MEA|KW|KU000|AS SALIMIYAH" Country = "Kuwait" +City Name = "Asahikawa, JP" Location = "ASI|JP|JA012|ASAHIKAWA" Country = "Japan" +City Name = "Asaka, JP" Location = "ASI|JP|JA035|ASAKA" Country = "Japan" +City Name = "Asansol, IN" Location = "ASI|IN|IN005|ASANSOL" Country = "India" +City Name = "Ashdod, IL" Location = "MEA|IL|IS002|ASHDOD" Country = "Israel" +City Name = "Ashfield, UK" Location = "EUR|UK|UK001|ASHFIELD" Country = "United Kingdom" +City Name = "Ashikaga, JP" Location = "ASI|JP|JA039|ASHIKAGA" Country = "Japan" +City Name = "Ashkelon, IL" Location = "MEA|IL|IS001|ASHKELON" Country = "Israel" +City Name = "Ashkhabad, TM" Location = "ASI|TM|TX001|ASHKHABAD" Country = "Turkmenistan" +City Name = "Asmara, ER" Location = "AFR|ER|ER000|ASMARA" Country = "Eritrea" +City Name = "Astana, KZ" Location = "ASI|KZ|KZ004|ASTANA" Country = "Kazakhstan" +City Name = "Astrakhan, RU" Location = "ASI|RU|RS006|ASTRAKHAN" Country = "Russia" +City Name = "Asuncion, PY" Location = "SAM|PY|PA008|ASUNCION" Country = "Paraguay" +City Name = "Aswan, EG" Location = "AFR|EG|EG016|ASWAN" Country = "Egypt" +City Name = "Athens, GA, US" Location = "NAM|US|GA|ATHENS" Country = "United States" +City Name = "Athinai, GR" Location = "EUR|GR|GR007|ATHINAI" Country = "Greece" +City Name = "Atibaia, BR" Location = "SAM|BR|BR023|ATIBAIA" Country = "Brazil" +City Name = "Atlanta, GA, US" Location = "NAM|US|GA|ATLANTA" Country = "United States" +City Name = "Atsugi, JP" Location = "ASI|JP|JA019|ATSUGI" Country = "Japan" +City Name = "Atushi, CN" Location = "ASI|CN|CH028|ATUSHI" Country = "China" +City Name = "Auckland, NZ" Location = "OCN|NZ|NZ000|AUCKLAND" Country = "New Zealand" +City Name = "Augsburg, DE" Location = "EUR|DE|GM002|AUGSBURG" Country = "Germany" +City Name = "Augusta, GA, US" Location = "NAM|US|GA|AUGUSTA" Country = "United States" +City Name = "Aurangabad, IN" Location = "ASI|IN|IN021|AURANGABAD" Country = "India" +City Name = "Aurora, CO, US" Location = "NAM|US|CO|AURORA" Country = "United States" +City Name = "Aurora, IL, US" Location = "NAM|US|IL|AURORA" Country = "United States" +City Name = "Austin, TX, US" Location = "NAM|US|TX|AUSTIN" Country = "United States" +City Name = "Avellaneda, AR" Location = "SAM|AR|AR001|AVELLANEDA" Country = "Argentina" +City Name = "Avignon, FR" Location = "EUR|FR|FR021|AVIGNON" Country = "France" +City Name = "Ayacucho, PE" Location = "SAM|PE|PE005|AYACUCHO" Country = "Peru" +City Name = "Aydin, TR" Location = "MEA|TR|TU011|AYDIN" Country = "Turkey" +City Name = "Babol, IR" Location = "MEA|IR|IR021|BABOL" Country = "Iran" +City Name = "Bacau, RO" Location = "EUR|RO|RO004|BACAU" Country = "Romania" +City Name = "Bacolod, PH" Location = "ASI|PH|RP000|BACOLOD" Country = "Philippines" +City Name = "Badajoz, ES" Location = "EUR|ES|SP010|BADAJOZ" Country = "Spain" +City Name = "Badalona, ES" Location = "EUR|ES|SP008|BADALONA" Country = "Spain" +City Name = "Badplaas, ZA" Location = "AFR|ZA|SF006|BADPLAAS" Country = "South Africa" +City Name = "Bafoussam, CM" Location = "AFR|CM|CM008|BAFOUSSAM" Country = "Cameroon" +City Name = "Bage, BR" Location = "SAM|BR|BR019|BAG" Country = "Brazil" +City Name = "Baghdad, IQ" Location = "MEA|IQ|IZ010|BAGHDAD" Country = "Iraq" +City Name = "Bago, PH" Location = "ASI|PH|RP010|BAGO" Country = "Philippines" +City Name = "Baguio, PH" Location = "ASI|PH|RP011|BAGUIO" Country = "Philippines" +City Name = "Baharampur, IN" Location = "ASI|IN|IN036|BAHARAMPUR" Country = "India" +City Name = "Bahawalnagar, PK" Location = "ASI|PK|PK007|BAHAWALNAGAR" Country = "Pakistan" +City Name = "Bahia Blanca, AR" Location = "SAM|AR|AR001|BAHA BLANCA" Country = "Argentina" +City Name = "Bahir Dar, ET" Location = "AFR|ET|ET000|BAHIR DAR" Country = "Ethiopia" +City Name = "Bahraich, IN" Location = "ASI|IN|IN033|BAHRAICH" Country = "India" +City Name = "Baia Mare, RO" Location = "EUR|RO|RO026|BAIA MARE" Country = "Romania" +City Name = "Baicheng, CN" Location = "ASI|CN|CH028|BAICHENG" Country = "China" +City Name = "Baiyin, CN" Location = "ASI|CN|CH001|BAIYIN" Country = "China" +City Name = "Bakersfield, CA, US" Location = "NAM|US|CA|BAKERSFIELD" Country = "United States" +City Name = "Baku, AZ" Location = "ASI|AZ|AJ009|BAKU" Country = "Azerbaijan" +City Name = "Balakovo, RU" Location = "ASI|RU|RS069|BALAKOVO" Country = "Russia" +City Name = "Balashikha, RU" Location = "ASI|RU|RS051|BALASHIKHA" Country = "Russia" +City Name = "Bale, CH" Location = "EUR|CH|SZ005|BLE" Country = "Switzerland" +City Name = "Baleshwar, IN" Location = "ASI|IN|IN026|BALESHWAR" Country = "India" +City Name = "Balikesir, TR" Location = "MEA|TR|TU012|BALIKESIR" Country = "Turkey" +City Name = "Balikpapan, ID" Location = "ASI|ID|ID013|BALIKPAPAN" Country = "Indonesia" +City Name = "Bally, IN" Location = "ASI|IN|IN036|BALLY" Country = "India" +City Name = "Baltimore, MD, US" Location = "NAM|US|MD|BALTIMORE" Country = "United States" +City Name = "Balurghat, IN" Location = "ASI|IN|IN036|BALURGHAT" Country = "India" +City Name = "Bamako, ML" Location = "AFR|ML|ML000|BAMAKO" Country = "Mali" +City Name = "Bamenda, CM" Location = "AFR|CM|CM007|BAMENDA" Country = "Cameroon" +City Name = "Bandar Seri Begawan, BN" Location = "ASI|BN|BX000|BANDAR SERI BEGAWAN" Country = "Brunei" +City Name = "Bandar-E-Abbas, IR" Location = "MEA|IR|IR011|BANDAR-E-ABBAS" Country = "Iran" +City Name = "Bandjarmasin, ID" Location = "ASI|ID|ID011|BANDJARMASIN" Country = "Indonesia" +City Name = "Bandung, ID" Location = "ASI|ID|ID004|BANDUNG" Country = "Indonesia" +City Name = "Bangalore, IN" Location = "ASI|IN|IN017|BANGALORE" Country = "India" +City Name = "Bangkok, TH" Location = "ASI|TH|TH017|BANGKOK" Country = "Thailand" +City Name = "Bangui, CF" Location = "AFR|CF|CT000|BANGUI" Country = "Central African Republic" +City Name = "Banha, EG" Location = "AFR|EG|EG012|BANHA" Country = "Egypt" +City Name = "Banja Luka, BA" Location = "EUR|BA|BK002|BANJA LUKA" Country = "Bosnia And Herzegovina" +City Name = "Banjul, GM" Location = "AFR|GM|GA001|BANJUL" Country = "The Gambia" +City Name = "Bankura, IN" Location = "ASI|IN|IN036|BANKURA" Country = "India" +City Name = "Banstead, UK" Location = "EUR|UK|UK224|BANSTEAD" Country = "United Kingdom" +City Name = "Baoding, CN" Location = "ASI|CN|CH001|BAODING" Country = "China" +City Name = "Baoji, CN" Location = "ASI|CN|CH018|BAOJI" Country = "China" +City Name = "Baoshan, CN" Location = "ASI|CN|CH031|BAOSHAN" Country = "China" +City Name = "Baotou, CN" Location = "ASI|CN|CH019|BAOTOU" Country = "China" +City Name = "Baracaldo, ES" Location = "EUR|ES|SP017|BARACALDO" Country = "Spain" +City Name = "Baranagar, IN" Location = "ASI|IN|IN035|BARANAGAR" Country = "India" +City Name = "Baranovichi, BY" Location = "EUR|BY|BO001|BARANOVICHI" Country = "Belarus" +City Name = "Barbacena, BR" Location = "SAM|BR|BR012|BARBACENA" Country = "Brazil" +City Name = "Barberton, ZA" Location = "AFR|ZA|SF006|BARBERTON" Country = "South Africa" +City Name = "Barcelona, ES" Location = "EUR|ES|SP008|BARCELONA" Country = "Spain" +City Name = "Barcelona, VE" Location = "SAM|VE|VE002|BARCELONA" Country = "Venezuela" +City Name = "Barddhaman, IN" Location = "ASI|IN|IN036|BARDDHAMAN" Country = "India" +City Name = "Bareilly, IN" Location = "ASI|IN|IN033|BAREILLY" Country = "India" +City Name = "Bari, IT" Location = "EUR|IT|IT013|BARI" Country = "Italy" +City Name = "Barinas, VE" Location = "SAM|VE|VE005|BARINAS" Country = "Venezuela" +City Name = "Barisal, BD" Location = "ASI|BD|BG003|BARISAL" Country = "Bangladesh" +City Name = "Barking and Dagenham, UK" Location = "EUR|UK|UK001|BARKING AND DAGENHAM" Country = "United Kingdom" +City Name = "Barkly West, ZA" Location = "AFR|ZA|SF008|BARKLY WEST" Country = "South Africa" +City Name = "Barnaul, RU" Location = "ASI|RU|RS043|BARNAUL" Country = "Russia" +City Name = "Barnet, UK" Location = "EUR|UK|UK001|BARNET" Country = "United Kingdom" +City Name = "Barnsley, UK" Location = "EUR|UK|UK001|BARNSLEY" Country = "United Kingdom" +City Name = "Barquisimeto, VE" Location = "SAM|VE|VE014|BARQUISIMETO" Country = "Venezuela" +City Name = "Barra Mansa, BR" Location = "SAM|BR|BR017|BARRA MANSA" Country = "Brazil" +City Name = "Barrancabermeja, CO" Location = "SAM|CO|CO024|BARRANCABERMEJA" Country = "Colombia" +City Name = "Barranquilla, CO" Location = "SAM|CO|CO004|BARRANQUILLA" Country = "Colombia" +City Name = "Barreiras, BR" Location = "SAM|BR|BR005|BARREIRAS" Country = "Brazil" +City Name = "Barretos, BR" Location = "SAM|BR|BR023|BARRETOS" Country = "Brazil" +City Name = "Barrie, CA" Location = "NAM|CA|ON|BARRIE" Country = "Canada" +City Name = "Barrydale, ZA" Location = "AFR|ZA|SF011|BARRYDALE" Country = "South Africa" +City Name = "Barueri, BR" Location = "SAM|BR|BR023|BARUERI" Country = "Brazil" +City Name = "Baruta, VE" Location = "SAM|VE|VE016|BARUTA" Country = "Venezuela" +City Name = "Basildon, UK" Location = "EUR|UK|UK001|BASILDON" Country = "United Kingdom" +City Name = "Basirhat, IN" Location = "ASI|IN|IN036|BASIRHAT" Country = "India" +City Name = "Baskingstoke and Deane, UK" Location = "EUR|UK|UK001|BASKINGSTOKE AND DEANE" Country = "United Kingdom" +City Name = "Basra, IQ" Location = "MEA|IQ|IZ002|BASRA" Country = "Iraq" +City Name = "Bassein, MM" Location = "ASI|MM|BM001|BASSEIN" Country = "Burma/Myanmar" +City Name = "Basseterre, GP" Location = "CAC|KN|SC003|BASSETERRE" Country = "Saint Kitts And Nevis" +City Name = "Basse-Terre, KN" Location = "CAC|GP|GP---|BASSE-TERRE" Country = "Guadeloupe" +City Name = "Bat Dambang, KH" Location = "ASI|KH|CB002|BAT DAMBANG" Country = "Cambodia" +City Name = "Bat Yam, IL" Location = "MEA|IL|IS005|BAT YAM" Country = "Israel" +City Name = "Batala, IN" Location = "ASI|IN|IN015|BATALA" Country = "India" +City Name = "Batangas, PH" Location = "ASI|PH|RP016|BATANGAS" Country = "Philippines" +City Name = "Bath and North East Somerset, UK" Location = "EUR|UK|UK001|BATH AND NORTH EAST SOMERSET" Country = "United Kingdom" +City Name = "Batman, TR" Location = "MEA|TR|TU000|BATMAN" Country = "Turkey" +City Name = "Batna, DZ" Location = "AFR|DZ|AG006|BATNA" Country = "Algeria" +City Name = "Baton Rouge, LA, US" Location = "NAM|US|LA|BATON ROUGE" Country = "United States" +City Name = "Batumi, GE" Location = "ASI|GE|GG000|BATUMI" Country = "Georgia" +City Name = "Bauru, BR" Location = "SAM|BR|BR023|BAURU" Country = "Brazil" +City Name = "Bayamo, CU" Location = "CAC|CU|CU005|BAYAMO" Country = "Cuba" +City Name = "Bayamon, PR" Location = "CAC|PR|PR000|BAYAMN" Country = "Puerto Rico" +City Name = "Bazhou, CN" Location = "ASI|CN|CH008|BAZHOU" Country = "China" +City Name = "Beau Bassin, MU" Location = "AFR|MU|MP008|BEAU BASSIN" Country = "Mauritius" +City Name = "Beaufort West, ZA" Location = "AFR|ZA|SF011|BEAUFORT WEST" Country = "South Africa" +City Name = "Beaumont, TX, US" Location = "NAM|US|TX|BEAUMONT" Country = "United States" +City Name = "Beawar, IN" Location = "ASI|IN|IN029|BEAWAR" Country = "India" +City Name = "Bechar, DZ" Location = "AFR|DZ|AG007|BECHAR" Country = "Algeria" +City Name = "Bedford, UK" Location = "EUR|UK|UK001|BEDFORD" Country = "United Kingdom" +City Name = "Bedworth, UK" Location = "EUR|UK|UK238|BEDWORTH" Country = "United Kingdom" +City Name = "Beer Sheva, IL" Location = "MEA|IL|IS001|BE'ER SHEBA" Country = "Israel" +City Name = "Beian, CN" Location = "ASI|CN|CH016|BEIAN" Country = "China" +City Name = "Beihai, CN" Location = "ASI|CN|CH007|BEIHAI" Country = "China" +City Name = "Beijing, CN" Location = "ASI|CN|CH002|BEIJING" Country = "China" +City Name = "Beipiao, CN" Location = "ASI|CN|CH018|BEIPIAO" Country = "China" +City Name = "Beira, MZ" Location = "AFR|MZ|MZ008|BEIRA" Country = "Mozambique" +City Name = "Beirut, LB" Location = "MEA|LB|LE002|BEIRUT" Country = "Lebanon" +City Name = "Bejaia, DZ" Location = "AFR|DZ|AG008|BEJAIA" Country = "Algeria" +City Name = "Bela-Bela, ZA" Location = "AFR|ZA|SF005|BELA-BELA" Country = "South Africa" +City Name = "Belem, BR" Location = "SAM|BR|BR013|BELM" Country = "Brazil" +City Name = "Belfast, UK" Location = "EUR|UK|UK002|BELFAST" Country = "United Kingdom" +City Name = "Belfast, ZA" Location = "AFR|ZA|SF006|BELFAST" Country = "South Africa" +City Name = "Belford Roxo, BR" Location = "SAM|BR|BR017|BELFORD ROXO" Country = "Brazil" +City Name = "Belgaum, IN" Location = "ASI|IN|IN017|BELGAUM" Country = "India" +City Name = "Belgorod, RU" Location = "ASI|RU|RS008|BELGOROD" Country = "Russia" +City Name = "Bellary, IN" Location = "ASI|IN|IN017|BELLARY" Country = "India" +City Name = "Bellevue, WA, US" Location = "NAM|US|WA|BELLEVUE" Country = "United States" +City Name = "Bello, CO" Location = "SAM|CO|CO002|BELLO" Country = "Colombia" +City Name = "Belmopan, BZ" Location = "CAC|BZ|BH002|BELMOPAN" Country = "Belize" +City Name = "Belo Horizonte, BR" Location = "SAM|BR|BR012|BELO HORIZONTE" Country = "Brazil" +City Name = "Beltsy, MD" Location = "EUR|MD|MD000|BELTSY" Country = "Moldova" +City Name = "Bene Beraq, IL" Location = "MEA|IL|IS005|BENE BERAQ" Country = "Israel" +City Name = "Benghazi, LY" Location = "AFR|LY|LY012|BENGHAZI" Country = "Libya" +City Name = "Benguela, AO" Location = "AFR|AO|AO002|BENGUELA" Country = "Angola" +City Name = "Beni Mellal, MA" Location = "AFR|MA|MO006|BNI-MELLAL" Country = "Morocco" +City Name = "Benito Juarez-Cancun-Qroo, MX" Location = "NAM|MX|MX023|BENITO JUAREZ-CANCUN-QROO" Country = "Mexico" +City Name = "Benoni, ZA" Location = "AFR|ZA|SF004|BENONI" Country = "South Africa" +City Name = "Benxi, CN" Location = "ASI|CN|CH018|BENXI" Country = "China" +City Name = "Beograd, CS" Location = "EUR|CS|YI003|BEOGRAD" Country = "Serbia" +City Name = "Beppu, JP" Location = "ASI|JP|JA030|BEPPU" Country = "Japan" +City Name = "Berdyansk, UA" Location = "EUR|UA|UP004|BERDYANSK" Country = "Ukraine" +City Name = "Berezniki, RU" Location = "ASI|RU|RS062|BEREZNIKI" Country = "Russia" +City Name = "Bergamo, IT" Location = "EUR|IT|IT009|BERGAMO" Country = "Italy" +City Name = "Bergen, NO" Location = "EUR|NO|NO006|BERGEN" Country = "Norway" +City Name = "Bergisch Gladbach, DE" Location = "EUR|DE|GM011|BERGISCH GLADBACH" Country = "Germany" +City Name = "Berkeley, CA, US" Location = "NAM|US|CA|BERKELEY" Country = "United States" +City Name = "Berlin, DE" Location = "EUR|DE|GM003|BERLIN" Country = "Germany" +City Name = "Berne, CH" Location = "EUR|CH|SZ006|BERNE" Country = "Switzerland" +City Name = "Besancon, FR" Location = "EUR|FR|FR010|BESANON" Country = "France" +City Name = "Bethlehem, ZA" Location = "AFR|ZA|SF003|BETHLEHEM" Country = "South Africa" +City Name = "Betim, BR" Location = "SAM|BR|BR012|BETIM" Country = "Brazil" +City Name = "Bexley, UK" Location = "EUR|UK|UK001|BEXLEY" Country = "United Kingdom" +City Name = "Bhadravati, IN" Location = "ASI|IN|IN017|BHADRAVATI" Country = "India" +City Name = "Bhagalpur, IN" Location = "ASI|IN|IN005|BHAGALPUR" Country = "India" +City Name = "Bharatpur, IN" Location = "ASI|IN|IN020|BHARATPUR" Country = "India" +City Name = "Bharuch, IN" Location = "ASI|IN|IN012|BHARUCH" Country = "India" +City Name = "Bhatpara, IN" Location = "ASI|IN|IN036|BHATPARA" Country = "India" +City Name = "Bhavnagar, IN" Location = "ASI|IN|IN012|BHAVNAGAR" Country = "India" +City Name = "Bhilai Nagar, IN" Location = "ASI|IN|IN020|BHILAI NAGAR" Country = "India" +City Name = "Bhilwara, IN" Location = "ASI|IN|IN029|BHILWARA" Country = "India" +City Name = "Bhind, IN" Location = "ASI|IN|IN020|BHIND" Country = "India" +City Name = "Bhisho, ZA" Location = "AFR|ZA|SF002|BHISHO" Country = "South Africa" +City Name = "Bhiwandi, IN" Location = "ASI|IN|IN021|BHIWANDI" Country = "India" +City Name = "Bhiwani, IN" Location = "ASI|IN|IN013|BHIWANI" Country = "India" +City Name = "Bhopal, IN" Location = "ASI|IN|IN020|BHOPAL" Country = "India" +City Name = "Bhubaneswar, IN" Location = "ASI|IN|IN026|BHUBANESWAR" Country = "India" +City Name = "Bhuj, IN" Location = "ASI|IN|IN012|BHUJ" Country = "India" +City Name = "Bhusawal, IN" Location = "ASI|IN|IN021|BHUSAWAL" Country = "India" +City Name = "Bialystok, PL" Location = "EUR|PL|PL010|BIALYSTOK" Country = "Poland" +City Name = "Bid, IN" Location = "ASI|IN|IN021|BID" Country = "India" +City Name = "Bidar, IN" Location = "ASI|IN|IN017|BIDAR" Country = "India" +City Name = "Bielefeld, DE" Location = "EUR|DE|GM011|BIELEFELD" Country = "Germany" +City Name = "Bielsko-Biala, PL" Location = "EUR|PL|PL012|BIELSKO-BIALA" Country = "Poland" +City Name = "Bihar Sharif, IN" Location = "ASI|IN|IN005|BIHAR SHARIF" Country = "India" +City Name = "Biisk, RU" Location = "ASI|RU|RS003|BIISK" Country = "Russia" +City Name = "Bijapur, IN" Location = "ASI|IN|IN017|BIJAPUR" Country = "India" +City Name = "Bikaner, IN" Location = "ASI|IN|IN029|BIKANER" Country = "India" +City Name = "Bila Tserkva, UA" Location = "EUR|UA|UP009|BELAYA TSERKOV" Country = "Ukraine" +City Name = "Bilaspur, IN" Location = "ASI|IN|IN020|BILASPUR" Country = "India" +City Name = "Bilbao, ES" Location = "EUR|ES|SP017|BILBAO" Country = "Spain" +City Name = "Bilene, MZ" Location = "AFR|MZ|MZ002|BILENE" Country = "Mozambique" +City Name = "Binzhou, CN" Location = "ASI|CN|CH023|BINZHOU" Country = "China" +City Name = "Biratnagar, NP" Location = "ASI|NP|NP000|BIRATNAGAR" Country = "Nepal" +City Name = "Birjand, IR" Location = "MEA|IR|IR015|BIRJAND" Country = "Iran" +City Name = "Birmingham, UK" Location = "EUR|UK|UK001|BIRMINGHAM" Country = "United Kingdom" +City Name = "Birmingham, AL, US" Location = "NAM|US|AL|BIRMINGHAM" Country = "United States" +City Name = "Bishkek, KG" Location = "ASI|KG|KG002|BISHKEK" Country = "Kyrgyzstan" +City Name = "Biskra, DZ" Location = "AFR|DZ|AG009|BISKRA" Country = "Algeria" +City Name = "Bismarck, ND, US" Location = "NAM|US|ND|BISMARCK" Country = "United States" +City Name = "Bissau, GW" Location = "AFR|GW|PU000|BISSAU" Country = "Guinea-Bissau" +City Name = "Biysk, RU" Location = "ASI|RU|RS003|BIYSK" Country = "Russia" +City Name = "Bizerte, TN" Location = "AFR|TN|TS008|BIZERTE" Country = "Tunisia" +City Name = "Blackburn, UK" Location = "EUR|UK|UK001|BLACKBURN" Country = "United Kingdom" +City Name = "Blackpool, UK" Location = "EUR|UK|UK001|BLACKPOOL" Country = "United Kingdom" +City Name = "Blagoveshchensk, RU" Location = "ASI|RU|RS007|BLAGOVESHCHENSK" Country = "Russia" +City Name = "Blantyre-Limbe, MW" Location = "AFR|MW|MI000|BLANTYRE-LIMBE" Country = "Malawi" +City Name = "Blida, DZ" Location = "AFR|DZ|AG010|BLIDA" Country = "Algeria" +City Name = "Bloemfontein, ZA" Location = "AFR|ZA|SF003|BLOEMFONTEIN" Country = "South Africa" +City Name = "Boa Vista, BR" Location = "SAM|BR|BR021|BOA VISTA" Country = "Brazil" +City Name = "Bobo Dioulasso, BF" Location = "AFR|BF|UV000|BOBO DIOULASSO" Country = "Burkina Faso" +City Name = "Bobruisk, BY" Location = "EUR|BY|BO005|BOBRUISK" Country = "Belarus" +City Name = "Bochum, DE" Location = "EUR|DE|GM011|BOCHUM" Country = "Germany" +City Name = "Bodoe, NO" Location = "EUR|NO|NO009|BODOE" Country = "Norway" +City Name = "Bogor, ID" Location = "ASI|ID|ID026|BOGOR" Country = "Indonesia" +City Name = "Boise, ID, US" Location = "NAM|US|ID|BOISE" Country = "United States" +City Name = "Bojnurd, IR" Location = "MEA|IR|IR015|BOJNURD" Country = "Iran" +City Name = "Bokaro Steel City, IN" Location = "ASI|IN|IN005|BOKARO STEEL CITY" Country = "India" +City Name = "Boksburg, ZA" Location = "AFR|ZA|SF004|BOKSBURG" Country = "South Africa" +City Name = "Bolgatanga, GH" Location = "AFR|GH|GH000|BOLGATANGA" Country = "Ghana" +City Name = "Bolivar, VE" Location = "SAM|VE|VE006|CIUDAD BOLVAR" Country = "Venezuela" +City Name = "Bologna, IT" Location = "EUR|IT|IT005|BOLOGNA" Country = "Italy" +City Name = "Bolton, UK" Location = "EUR|UK|UK001|BOLTON" Country = "United Kingdom" +City Name = "Boma, CD" Location = "AFR|CD|CG002|BOMA" Country = "Kinshasa" +City Name = "Bonn, DE" Location = "EUR|DE|GM011|BONN" Country = "Germany" +City Name = "Boraas, SE" Location = "EUR|SE|SW021|BORAAS" Country = "Sweden" +City Name = "Bordeaux, FR" Location = "EUR|FR|FR002|BORDEAUX" Country = "France" +City Name = "Borisov, BY" Location = "EUR|BY|BO004|BORISOV" Country = "Belarus" +City Name = "Borujerd, IR" Location = "MEA|IR|IR019|BORUJERD" Country = "Iran" +City Name = "Boston, MA, US" Location = "NAM|US|MA|BOSTON" Country = "United States" +City Name = "Botosani, RO" Location = "EUR|RO|RO007|BOTOSANI" Country = "Romania" +City Name = "Botshabelo, ZA" Location = "AFR|ZA|SF007|BOTSHABELO" Country = "South Africa" +City Name = "Bottrop, DE" Location = "EUR|DE|GM011|BOTTROP" Country = "Germany" +City Name = "Botucatu, BR" Location = "SAM|BR|BR023|BOTUCATU" Country = "Brazil" +City Name = "Bouak, CI" Location = "AFR|CI|IV000|BOUAK" Country = "Ivory Coast" +City Name = "Boulogne-Billancourt, FR" Location = "EUR|FR|FR012|BOULOGNE-BILLANCOURT" Country = "France" +City Name = "Bourgas, BG" Location = "EUR|BG|BU002|BOURGAS" Country = "Bulgaria" +City Name = "Bournemouth, UK" Location = "EUR|UK|UK001|BOURNEMOUTH" Country = "United Kingdom" +City Name = "Bradford, UK" Location = "EUR|UK|UK001|BRADFORD" Country = "United Kingdom" +City Name = "Braganca Paulista, BR" Location = "SAM|BR|BR023|BRAGANA PAULISTA" Country = "Brazil" +City Name = "Brahmapur, IN" Location = "ASI|IN|IN026|BRAHMAPUR" Country = "India" +City Name = "Braila, RO" Location = "EUR|RO|RO008|BRAILA" Country = "Romania" +City Name = "Braintree, UK" Location = "EUR|UK|UK001|BRAINTREE" Country = "United Kingdom" +City Name = "Brampton, CA" Location = "NAM|CA|ON|BRAMPTON" Country = "Canada" +City Name = "Brantford, CA" Location = "NAM|CA|ON|BRANTFORD" Country = "Canada" +City Name = "Brasilia, BR" Location = "SAM|BR|BR007|BRASILIA" Country = "Brazil" +City Name = "Brasov, RO" Location = "EUR|RO|RO009|BRASOV" Country = "Romania" +City Name = "Bratislava, SK" Location = "EUR|SK|LO002|BRATISLAVA" Country = "Slovakia" +City Name = "Bratsk, RU" Location = "ASI|RU|RS021|BRATSK" Country = "Russia" +City Name = "Braunschweig, DE" Location = "EUR|DE|GM009|BRAUNSCHWEIG" Country = "Germany" +City Name = "Brazzaville, CG" Location = "AFR|CG|CF002|BRAZZAVILLE" Country = "Republic of Congo" +City Name = "Breda, NL" Location = "EUR|NL|NL007|BREDA" Country = "Netherlands" +City Name = "Bremen, DE" Location = "EUR|DE|GM005|BREMEN" Country = "Germany" +City Name = "Bremerhaven, DE" Location = "EUR|DE|GM005|BREMERHAVEN" Country = "Germany" +City Name = "Brent, UK" Location = "EUR|UK|UK001|BRENT" Country = "United Kingdom" +City Name = "Brescia, IT" Location = "EUR|IT|IT009|BRESCIA" Country = "Italy" +City Name = "Brest, BY" Location = "EUR|BY|BO001|BREST" Country = "Belarus" +City Name = "Brest, FR" Location = "EUR|FR|FR006|BREST" Country = "France" +City Name = "Brianon, FR" Location = "EUR|FR|FR021|BRIANON" Country = "France" +City Name = "Bridgend, UK" Location = "EUR|UK|UK003|BRIDGEND" Country = "United Kingdom" +City Name = "Bridgeport, CT, US" Location = "NAM|US|CT|BRIDGEPORT" Country = "United States" +City Name = "Bridgetown, BB" Location = "CAC|BB|BB008|BRIDGETOWN" Country = "Barbados" +City Name = "Brighton, UK" Location = "EUR|UK|UK001|BRIGHTON" Country = "United Kingdom" +City Name = "Brisbane, AU" Location = "OCN|AU|QLD|BRISBANE" Country = "Australia" +City Name = "Bristol, UK" Location = "EUR|UK|UK001|BRISTOL" Country = "United Kingdom" +City Name = "Brits, ZA" Location = "AFR|ZA|SF007|BRITS" Country = "South Africa" +City Name = "Brno, CZ" Location = "EUR|CZ|EZ007|BRNO" Country = "Czech Republic" +City Name = "Bromley, UK" Location = "EUR|UK|UK001|BROMLEY" Country = "United Kingdom" +City Name = "Brownsville, TX, US" Location = "NAM|US|TX|BROWNSVILLE" Country = "United States" +City Name = "Brugge, BE" Location = "EUR|BE|BE011|BRUGGE" Country = "Belgium" +City Name = "Bruxelles, BE" Location = "EUR|BE|BE003|BRUXELLES" Country = "Belgium" +City Name = "Bryansk, RU" Location = "ASI|RU|RS010|BRYANSK" Country = "Russia" +City Name = "Bucaramanga, CO" Location = "SAM|CO|CO024|BUCARAMANGA" Country = "Colombia" +City Name = "Bucuresti, RO" Location = "EUR|RO|RO010|BUCURESTI" Country = "Romania" +City Name = "Budapest, HU" Location = "EUR|HU|HU006|BUDAPEST" Country = "Hungary" +City Name = "Budaun, IN" Location = "ASI|IN|IN033|BUDAUN" Country = "India" +City Name = "Buenaventura, CO" Location = "SAM|CO|CO027|BUENAVENTURA" Country = "Colombia" +City Name = "Buenos Aires, AR" Location = "SAM|AR|AR007|BUENOS AIRES" Country = "Argentina" +City Name = "Buffalo, NY, US" Location = "NAM|US|NY|BUFFALO" Country = "United States" +City Name = "Buga, CO" Location = "SAM|CO|CO027|BUGA" Country = "Colombia" +City Name = "Bujumbura, BI" Location = "AFR|BI|BY000|BUJUMBURA" Country = "Burundi" +City Name = "Bukand, IR" Location = "MEA|IR|IR000|BUKAND" Country = "Iran" +City Name = "Bukavu, CD" Location = "AFR|CD|CG011|BUKAVU" Country = "Kinshasa" +City Name = "Bukhara, UZ" Location = "ASI|UZ|UZ002|BUKHARA" Country = "Uzbekistan" +City Name = "Bulandshahr, IN" Location = "ASI|IN|IN033|BULANDSHAHR" Country = "India" +City Name = "Bulawayo, ZW" Location = "AFR|ZW|ZI005|BULAWAYO" Country = "Zimbabwe" +City Name = "Burbank, CA, US" Location = "NAM|US|CA|BURBANK" Country = "United States" +City Name = "Burewala, PK" Location = "ASI|PK|PK007|BUREWALA" Country = "Pakistan" +City Name = "Burgersdorp, ZA" Location = "AFR|ZA|SF002|BURGERSDORP" Country = "South Africa" +City Name = "Burgos, ES" Location = "EUR|ES|SP007|BURGOS" Country = "Spain" +City Name = "Burhanpur, IN" Location = "ASI|IN|IN020|BURHANPUR" Country = "India" +City Name = "Burlington, CA" Location = "NAM|CA|NL|BURLINGTON" Country = "Canada" +City Name = "Burnaby, CA" Location = "NAM|CA|BC|BURNABY" Country = "Canada" +City Name = "Bursa, TR" Location = "MEA|TR|TU021|BURSA" Country = "Turkey" +City Name = "Bury, UK" Location = "EUR|UK|UK001|BURY" Country = "United Kingdom" +City Name = "Bushehr, IR" Location = "MEA|IR|IR004|BUSHEHR" Country = "Iran" +City Name = "Butuan, PH" Location = "ASI|PH|RP022|BUTUAN" Country = "Philippines" +City Name = "Buzau, RO" Location = "EUR|RO|RO011|BUZAU" Country = "Romania" +City Name = "Bydgoszcz, PL" Location = "EUR|PL|PL002|BYDGOSZCZ" Country = "Poland" +City Name = "Bytom, PL" Location = "EUR|PL|PL012|BYTOM" Country = "Poland" +City Name = "Cabanatuan, PH" Location = "ASI|PH|RP023|CABANATUAN" Country = "Philippines" +City Name = "Cabimas, VE" Location = "SAM|VE|VE025|CABIMAS" Country = "Venezuela" +City Name = "Cabo Frio, BR" Location = "SAM|BR|BR017|CABO FRIO" Country = "Brazil" +City Name = "Cacak, CS" Location = "EUR|CS|YI003|CACAK" Country = "Serbia" +City Name = "Cachoeirinha, BR" Location = "SAM|BR|BR015|CACHOEIRINHA" Country = "Brazil" +City Name = "Cachoeiro De Itapemirim, BR" Location = "SAM|BR|BR008|CACHOEIRO DE ITAPEMIRIM" Country = "Brazil" +City Name = "Cadiz, PH" Location = "ASI|PH|RP024|CADIZ" Country = "Philippines" +City Name = "Cadiz, ES" Location = "EUR|ES|SP001|CDIZ" Country = "Spain" +City Name = "Caen, FR" Location = "EUR|FR|FR004|CAEN" Country = "France" +City Name = "Caerphilly, UK" Location = "EUR|UK|UK004|CAERPHILLY" Country = "United Kingdom" +City Name = "Cagayan De Oro, PH" Location = "ASI|PH|RP026|CAGAYAN DE ORO" Country = "Philippines" +City Name = "Cagliari, IT" Location = "EUR|IT|IT014|CAGLIARI" Country = "Italy" +City Name = "Caguas, PR" Location = "CAC|PR|PR000|CAGUAS" Country = "Puerto Rico" +City Name = "Cairns, AU" Location = "OCN|AU|QLD|CAIRNS" Country = "Australia" +City Name = "Cairo, EG" Location = "AFR|EG|EG011|CAIRO" Country = "Egypt" +City Name = "Cajamarca, PE" Location = "SAM|PE|PE006|CAJAMARCA" Country = "Peru" +City Name = "Cajeme, MX" Location = "NAM|MX|MX026|CAJEME" Country = "Mexico" +City Name = "Calabar, NG" Location = "AFR|NG|NI000|CALABAR" Country = "Nigeria" +City Name = "Calama, CL" Location = "SAM|CL|CI002|CALAMA" Country = "Chile" +City Name = "Calbayog, PH" Location = "ASI|PH|RP027|CALBAYOG" Country = "Philippines" +City Name = "Calcutta, IN" Location = "ASI|IN|IN036|CALCUTTA" Country = "India" +City Name = "Calderdale, UK" Location = "EUR|UK|UK001|CALDERDALE" Country = "United Kingdom" +City Name = "Caledon, ZA" Location = "AFR|ZA|SF011|CALEDON" Country = "South Africa" +City Name = "Calgary, CA" Location = "NAM|CA|AB|CALGARY" Country = "Canada" +City Name = "Cali, CO" Location = "SAM|CO|CO027|CALI" Country = "Colombia" +City Name = "Caloocan, PH" Location = "ASI|PH|RP028|CALOOCAN" Country = "Philippines" +City Name = "Calvinia, ZA" Location = "AFR|ZA|SF008|CALVINIA" Country = "South Africa" +City Name = "Camacari, BR" Location = "SAM|BR|BR005|CAMACARI" Country = "Brazil" +City Name = "Camaguey, CU" Location = "CAC|CU|CU001|CAMAGEY" Country = "Cuba" +City Name = "Camaragibe, BR" Location = "SAM|BR|BR026|CAMARAGIBE" Country = "Brazil" +City Name = "Cambridge, CA" Location = "NAM|CA|ON|CAMBRIDGE" Country = "Canada" +City Name = "Cambridge, UK" Location = "EUR|UK|UK001|CAMBRIDGE" Country = "United Kingdom" +City Name = "Cambridge, MA, US" Location = "NAM|US|MA|CAMBRIDGE" Country = "United States" +City Name = "Camden, UK" Location = "EUR|UK|UK001|CAMDEN" Country = "United Kingdom" +City Name = "Campeche, MX" Location = "NAM|MX|MX004|CAMPECHE" Country = "Mexico" +City Name = "Campha, VN" Location = "ASI|VN|VM052|CAMPHA" Country = "Vietnam" +City Name = "Campina Grande, BR" Location = "SAM|BR|BR014|CAMPINA GRANDE" Country = "Brazil" +City Name = "Campinas, BR" Location = "SAM|BR|BR023|CAMPINAS" Country = "Brazil" +City Name = "Campo Grande, BR" Location = "SAM|BR|BR010|CAMPO GRANDE" Country = "Brazil" +City Name = "Canberra, AU" Location = "OCN|AU|ACT|CANBERRA" Country = "Australia" +City Name = "Cangzhou, CN" Location = "ASI|CN|CH004|CANGZHOU" Country = "China" +City Name = "Canoas, BR" Location = "SAM|BR|BR019|CANOAS" Country = "Brazil" +City Name = "Canterbury, UK" Location = "EUR|UK|UK001|CANTERBURY" Country = "United Kingdom" +City Name = "Cantho, VN" Location = "ASI|VN|VM041|CANTHO" Country = "Vietnam" +City Name = "Cape Coral, FL, US" Location = "NAM|US|FL|CAPE CORAL" Country = "United States" +City Name = "Cape Cost, GH" Location = "AFR|GH|GH000|CAPE COST" Country = "Ghana" +City Name = "Cape Point, ZA" Location = "AFR|ZA|SF011|CAPE POINT" Country = "South Africa" +City Name = "Cape Town , ZA" Location = "AFR|ZA|SF011|CAPE TOWN" Country = "South Africa" +City Name = "Cap-Haitien, HT" Location = "CAC|HT|HA004|CAP-HAITIEN" Country = "Haiti" +City Name = "Caracas, VE" Location = "SAM|VE|VE011|CARACAS" Country = "Venezuela" +City Name = "Carapicuiba, BR" Location = "SAM|BR|BR023|CARAPICUBA" Country = "Brazil" +City Name = "Cardiff, UK" Location = "EUR|UK|UK004|CARDIFF" Country = "United Kingdom" +City Name = "Cariacica, BR" Location = "SAM|BR|BR008|CARIACICA" Country = "Brazil" +City Name = "Carlisle, UK" Location = "EUR|UK|UK001|CARLISLE" Country = "United Kingdom" +City Name = "Carnarvon, ZA" Location = "AFR|ZA|SF008|CARNARVON" Country = "South Africa" +City Name = "Carolina, PR" Location = "CAC|PR|PR000|CAROLINA" Country = "Puerto Rico" +City Name = "Carrefour, HT" Location = "CAC|HT|HA001|CARREFOUR" Country = "Haiti" +City Name = "Carrollton, TX, US" Location = "NAM|US|TX|CARROLLTON" Country = "United States" +City Name = "Carson City, NV, US" Location = "NAM|US|NV|CARSON CITY" Country = "United States" +City Name = "Cartagena, CO" Location = "SAM|CO|CO008|CARTAGENA" Country = "Colombia" +City Name = "Cartagena, ES" Location = "EUR|ES|SP014|CARTAGENA" Country = "Spain" +City Name = "Cartago, CO" Location = "SAM|CO|CO027|CARTAGO" Country = "Colombia" +City Name = "Cartago, CR" Location = "CAC|CR|CS002|CARTAGO" Country = "Costa Rica" +City Name = "Caruaru, BR" Location = "SAM|BR|BR026|CARUARU" Country = "Brazil" +City Name = "Carupano, VE" Location = "SAM|VE|VE020|CARPANO" Country = "Venezuela" +City Name = "Casablanca, MA" Location = "AFR|MA|MO008|CASABLANCA" Country = "Morocco" +City Name = "Cascavel, BR" Location = "SAM|BR|BR006|CASCAVEL" Country = "Brazil" +City Name = "Casper, WY, US" Location = "NAM|US|WY|CASPER" Country = "United States" +City Name = "Castanhal, BR" Location = "SAM|BR|BR013|CASTANHAL" Country = "Brazil" +City Name = "Castellon, ES" Location = "EUR|ES|SP016|CASTELLN DE LA PLANA" Country = "Spain" +City Name = "Castelo Branco, PT" Location = "EUR|PT|PO006|CASTELO BRANCO" Country = "Portugal" +City Name = "Castries, LC" Location = "CAC|LC|ST002|CASTRIES" Country = "Saint Lucia" +City Name = "Catamarca, AR" Location = "SAM|AR|AR002|CATAMARCA" Country = "Argentina" +City Name = "Catanduva, BR" Location = "SAM|BR|BR023|CATANDUVA" Country = "Brazil" +City Name = "Catania, IT" Location = "EUR|IT|IT015|CATANIA" Country = "Italy" +City Name = "Catia La Mar, VE" Location = "SAM|VE|VE011|CATIA LA MAR" Country = "Venezuela" +City Name = "Caucaia, BR" Location = "SAM|BR|BR006|CAUCAIA" Country = "Brazil" +City Name = "Caxias, BR" Location = "SAM|BR|BR009|CAXIAS" Country = "Brazil" +City Name = "Caxias Do Sul, BR" Location = "SAM|BR|BR019|CAXIAS DO SUL" Country = "Brazil" +City Name = "Cayenne, GF" Location = "SAM|GF|FG001|CAYENNE" Country = "French Guiana" +City Name = "Cebu, PH" Location = "ASI|PH|RP037|CEBU" Country = "Philippines" +City Name = "Cedar Rapids, IA, US" Location = "NAM|US|IA|CEDAR RAPIDS" Country = "United States" +City Name = "Celaya, MX" Location = "NAM|MX|MX011|CELAYA" Country = "Mexico" +City Name = "Centro, MX" Location = "NAM|MX|MX010|CENTRO" Country = "Mexico" +City Name = "Ceres, ZA" Location = "AFR|ZA|SF011|CERES" Country = "South Africa" +City Name = "Chandannagar, IN" Location = "ASI|IN|IN036|CHANDAN NAGAR" Country = "India" +City Name = "Chandigarh, IN" Location = "ASI|IN|IN006|CHANDIGARH" Country = "India" +City Name = "Chandler, AZ, US" Location = "NAM|US|AZ|CHANDLER" Country = "United States" +City Name = "Chandrapur, IN" Location = "ASI|IN|IN021|CHANDRAPUR" Country = "India" +City Name = "Changchun, CN" Location = "ASI|CN|CH017|CHANGCHUN" Country = "China" +City Name = "Changde, CN" Location = "ASI|CN|CH014|CHANGDE" Country = "China" +City Name = "Changji, CN" Location = "ASI|CN|CH028|CHANGJI" Country = "China" +City Name = "Changsha, CN" Location = "ASI|CN|CH014|CHANGSHA" Country = "China" +City Name = "Changshu, CN" Location = "ASI|CN|CH015|CHANGSHU" Country = "China" +City Name = "Changzhi, CN" Location = "ASI|CN|CH023|CHANGZHI" Country = "China" +City Name = "Changzhou, CN" Location = "ASI|CN|CH015|CHANGZHOU" Country = "China" +City Name = "Chaohu, CN" Location = "ASI|CN|CH001|CHAOHU" Country = "China" +City Name = "Chaoyang, CN" Location = "ASI|CN|CH017|CHAOYANG" Country = "China" +City Name = "Chaozhou, CN" Location = "ASI|CN|CH006|CHAOZHOU" Country = "China" +City Name = "Chapeco, BR" Location = "SAM|BR|BR022|CHAPEC" Country = "Brazil" +City Name = "Chapra, IN" Location = "ASI|IN|IN005|CHAPRA" Country = "India" +City Name = "Chardzhou, TM" Location = "ASI|TM|TX004|CHARDZHOU" Country = "Turkmenistan" +City Name = "Charleroi, BE" Location = "EUR|BE|BE004|CHARLEROI" Country = "Belgium" +City Name = "Charleston, WV, US" Location = "NAM|US|WV|Charleston" Country = "United States" +City Name = "Charleston, SC, US" Location = "NAM|US|SC|Charleston" Country = "United States" +City Name = "Charlotte, NC, US" Location = "NAM|US|NC|CHARLOTTE" Country = "United States" +City Name = "Chattanooga, TN, US" Location = "NAM|US|TN|CHATTANOOGA" Country = "United States" +City Name = "Cheboksary, RU" Location = "ASI|RU|RS016|CHEBOKSARY" Country = "Russia" +City Name = "Chechon, KP" Location = "ASI|KP|KN000|CHECHON" Country = "North Korea" +City Name = "Cheju, KR" Location = "ASI|KR|KS003|CHEJU" Country = "South Korea" +City Name = "Chejung, KP" Location = "ASI|KP|KN000|CHEJUNG" Country = "North Korea" +City Name = "Chelmsford, UK" Location = "EUR|UK|UK001|CHELMSFORD" Country = "United Kingdom" +City Name = "Cheltenham, UK" Location = "EUR|UK|UK001|CHELTENHAM" Country = "United Kingdom" +City Name = "Chelyabinsk, RU" Location = "ASI|RU|RS013|CHELYABINSK" Country = "Russia" +City Name = "Chemnitz, DE" Location = "EUR|DE|GM014|CHEMNITZ" Country = "Germany" +City Name = "Chengde, CN" Location = "ASI|CN|CH010|CHENGDE" Country = "China" +City Name = "Chengdu, CN" Location = "ASI|CN|CH026|CHENGDU" Country = "China" +City Name = "Chenzhou, CN" Location = "ASI|CN|CH014|CHENZHOU" Country = "China" +City Name = "Cheongju, KR" Location = "ASI|KR|KS001|CHEONGJU" Country = "South Korea" +City Name = "Cherepovets, RU" Location = "ASI|RU|RS089|CHEREPOVETS" Country = "Russia" +City Name = "Cherkassy, UA" Location = "EUR|UA|UP024|CHERKASSY" Country = "Ukraine" +City Name = "Cherkessk, RU" Location = "ASI|RU|RS029|CHERKESSK" Country = "Russia" +City Name = "Chernigov, UA" Location = "EUR|UA|UP001|CHERNIGOV" Country = "Ukraine" +City Name = "Chernovtsy, UA" Location = "EUR|UA|UP002|CHERNOVTSY" Country = "Ukraine" +City Name = "Chesapeake, VA, US" Location = "NAM|US|VA|CHESAPEAKE" Country = "United States" +City Name = "Chester, UK" Location = "EUR|UK|UK001|CHESTER" Country = "United Kingdom" +City Name = "Chesterfield, UK" Location = "EUR|UK|UK001|CHESTERFIELD" Country = "United Kingdom" +City Name = "Cheyenne, WY, US" Location = "NAM|US|WY|CHEYENNE" Country = "United States" +City Name = "Chiang Mai, TH" Location = "ASI|TH|TH008|CHIANG MAI" Country = "Thailand" +City Name = "Chiba, JP" Location = "ASI|JP|JA004|CHIBA" Country = "Japan" +City Name = "Chicago, IL, US" Location = "NAM|US|IL|CHICAGO" Country = "United States" +City Name = "Chichester, UK" Location = "EUR|UK|UK001|CHICHESTER" Country = "United Kingdom" +City Name = "Chiclayo, PE" Location = "SAM|PE|PE014|CHICLAYO" Country = "Peru" +City Name = "Chidenguele, MZ" Location = "AFR|MZ|MZ002|CHIDENGUELE" Country = "Mozambique" +City Name = "Chifeng, CN" Location = "ASI|CN|CH019|CHIFENG" Country = "China" +City Name = "Chigasaki, JP" Location = "ASI|JP|JA019|CHIGASAKI" Country = "Japan" +City Name = "Chihuahua, MX" Location = "NAM|MX|MX006|CHIHUAHUA" Country = "Mexico" +City Name = "Chillan, CL" Location = "SAM|CL|CI005|CHILLN" Country = "Chile" +City Name = "Chimbote, PE" Location = "SAM|PE|PE002|CHIMBOTE" Country = "Peru" +City Name = "Chimoio/Beira Corridor, MZ" Location = "AFR|MZ|MZ004|CHIMOIO/BEIRA CORRIDOR" Country = "Mozambique" +City Name = "Chinandega, NI" Location = "CAC|NI|NU003|CHINANDEGA" Country = "Nicaragua" +City Name = "Chingola, ZM" Location = "AFR|ZM|ZA001|CHINGOLA" Country = "Zambia" +City Name = "Chiniot, PK" Location = "ASI|PK|PK007|CHINIOT" Country = "Pakistan" +City Name = "Chirchik, UZ" Location = "ASI|UZ|UZ013|CHIRCHIK" Country = "Uzbekistan" +City Name = "Chita, RU" Location = "ASI|RU|RS014|CHITA" Country = "Russia" +City Name = "Chitradurga, IN" Location = "ASI|IN|IN017|CHITRADURGA" Country = "India" +City Name = "Chittagong, BD" Location = "ASI|BD|BG001|CHITTAGONG" Country = "Bangladesh" +City Name = "Chittoor, IN" Location = "ASI|IN|IN002|CHITTOOR" Country = "India" +City Name = "Chitungwiza, ZW" Location = "AFR|ZW|ZI003|CHITUNGWIZA" Country = "Zimbabwe" +City Name = "Chlef, DZ" Location = "AFR|DZ|AG014|CHLEF" Country = "Algeria" +City Name = "Chofu, JP" Location = "ASI|JP|JA041|CHOFU" Country = "Japan" +City Name = "Chon Buri, TH" Location = "ASI|TH|TH010|CHON BURI" Country = "Thailand" +City Name = "Chongqing, CN" Location = "ASI|CN|CH003|CHONGQING" Country = "China" +City Name = "Chorzow, PL" Location = "EUR|PL|PL012|CHORZW" Country = "Poland" +City Name = "Chrissiesmeer, ZA" Location = "AFR|ZA|SF006|CHRISSIESMEER" Country = "South Africa" +City Name = "Christchurch, NZ" Location = "OCN|NZ|NZ000|CHRISTCHURCH" Country = "New Zealand" +City Name = "Chula Vista, CA, US" Location = "NAM|US|CA|CHULA VISTA" Country = "United States" +City Name = "Chuncheon, KR" Location = "ASI|KR|KS007|CHUNCHEON" Country = "South Korea" +City Name = "Chungju, KR" Location = "ASI|KR|KS001|CHUNGJU" Country = "South Korea" +City Name = "Chuxiong, CN" Location = "ASI|CN|CH030|CHUXIONG" Country = "China" +City Name = "Chuzhou, CN" Location = "ASI|CN|CH001|CHUZHOU" Country = "China" +City Name = "Cienfuegos, CU" Location = "CAC|CU|CU003|CIENFUEGOS" Country = "Cuba" +City Name = "Cincinnati, OH, US" Location = "NAM|US|OH|CINCINNATI" Country = "United States" +City Name = "Cirebon, ID" Location = "ASI|ID|ID026|CIREBON" Country = "Indonesia" +City Name = "Ciudad De Colon, PA" Location = "CAC|PA|PM004|CIUDAD DE COLON" Country = "Panama" +City Name = "Ciudad Del Este, PY" Location = "SAM|PY|PA001|CIUDAD DEL ESTE" Country = "Paraguay" +City Name = "Ciudad Guayana, VE" Location = "SAM|VE|VE006|CIUDAD GUAYANA" Country = "Venezuela" +City Name = "Ciudad Madero, MX" Location = "NAM|MX|MX028|CIUDAD MADERO" Country = "Mexico" +City Name = "Ciudad Victoria, MX" Location = "NAM|MX|MX002|CIUDAD VICTORIA" Country = "Mexico" +City Name = "Cixi, CN" Location = "ASI|CN|CH001|CIXI" Country = "China" +City Name = "Clanwilliam, ZA" Location = "AFR|ZA|SF011|CLANWILLIAM" Country = "South Africa" +City Name = "Clarens, ZA" Location = "AFR|ZA|SF003|CLARENS" Country = "South Africa" +City Name = "Clarksville, TN, US" Location = "NAM|US|TN|CLARKSVILLE" Country = "United States" +City Name = "Clearwater, FL, US" Location = "NAM|US|FL|CLEARWATER" Country = "United States" +City Name = "Clermont-Ferrand, FR" Location = "EUR|FR|FR003|CLERMONT-FERRAND" Country = "France" +City Name = "Cleveland, OH, US" Location = "NAM|US|OH|CLEVELAND" Country = "United States" +City Name = "Cluj-Napoca, RO" Location = "EUR|RO|RO001|CLUJ-NAPOCA" Country = "Romania" +City Name = "Coatzacoalcos, MX" Location = "NAM|MX|MX030|COATZACOALCOS" Country = "Mexico" +City Name = "Cochabamba, BO" Location = "SAM|BO|BL002|COCHABAMBA" Country = "Bolivia" +City Name = "Codo, BR" Location = "SAM|BR|BR009|CODO" Country = "Brazil" +City Name = "Coffee Bay, ZA" Location = "AFR|ZA|SF002|COFFEE BAY" Country = "South Africa" +City Name = "Coimbatore, IN" Location = "ASI|IN|IN031|COIMBATORE" Country = "India" +City Name = "Coimbra, PT" Location = "EUR|PT|PO007|COIMBRA" Country = "Portugal" +City Name = "Colchester, UK" Location = "EUR|UK|UK001|COLCHESTER" Country = "United Kingdom" +City Name = "Colesberg, ZA" Location = "AFR|ZA|SF008|COLESBERG" Country = "South Africa" +City Name = "Colimas, MX" Location = "NAM|MX|MX019|COLIMAS" Country = "Mexico" +City Name = "Colombo, BR" Location = "SAM|BR|BR015|COLOMBO" Country = "Brazil" +City Name = "Colombo, LK" Location = "ASI|LK|CE009|COLOMBO" Country = "Sri Lanka" +City Name = "Colorado Springs, CO, US" Location = "NAM|US|CO|COLORADO SPRINGS" Country = "United States" +City Name = "Columbia, SC, US" Location = "NAM|US|SC|COLUMBIA" Country = "United States" +City Name = "Columbus, OH, US" Location = "NAM|US|OH|COLUMBUS" Country = "United States" +City Name = "Columbus, GA, US" Location = "NAM|US|GA|COLUMBUS" Country = "United States" +City Name = "Comilla, BD" Location = "ASI|BD|BG001|COMILLA" Country = "Bangladesh" +City Name = "Comodoro Rivadavia, AR" Location = "SAM|AR|AR004|COMODORO RIVADAVIA" Country = "Argentina" +City Name = "Conakry, GN" Location = "AFR|GN|GV004|CONAKRY" Country = "Guinea" +City Name = "Concepcion, CL" Location = "SAM|CL|CI005|CONCEPCIN" Country = "Chile" +City Name = "Concord, CA, US" Location = "NAM|US|CA|CONCORD" Country = "United States" +City Name = "Concordia, AR" Location = "SAM|AR|AR008|CONCORDIA" Country = "Argentina" +City Name = "Constanta, RO" Location = "EUR|RO|RO015|CONSTANTA" Country = "Romania" +City Name = "Constantine, DZ" Location = "AFR|DZ|AG015|CONSTANTINE" Country = "Algeria" +City Name = "Contagem, BR" Location = "SAM|BR|BR012|CONTAGEM" Country = "Brazil" +City Name = "Conwy, UK" Location = "EUR|UK|UK004|CONWY" Country = "United Kingdom" +City Name = "Copenhagen, DK" Location = "EUR|DK|DA012|COPENHAGEN" Country = "Denmark" +City Name = "Copiapo, CL" Location = "SAM|CL|CI004|COPIAP" Country = "Chile" +City Name = "Coquimbo, CL" Location = "SAM|CL|CI006|COQUIMBO" Country = "Chile" +City Name = "Coquitlam, CA" Location = "NAM|CA|BC|COQUITLAM" Country = "Canada" +City Name = "Coral Springs, FL, US" Location = "NAM|US|FL|CORAL SPRINGS" Country = "United States" +City Name = "Cordoba, AR" Location = "SAM|AR|AR005|CRDOBA" Country = "Argentina" +City Name = "Cordoba, MX" Location = "NAM|MX|MX030|CRDOBA" Country = "Mexico" +City Name = "Cordoba, ES" Location = "EUR|ES|SP001|CRDOBA" Country = "Spain" +City Name = "Cork, IE" Location = "EUR|IE|EI004|CORK" Country = "Ireland" +City Name = "Coro, VE" Location = "SAM|VE|VE012|CORO" Country = "Venezuela" +City Name = "Corona, CA, US" Location = "NAM|US|CA|CORONA" Country = "United States" +City Name = "Corpus Christi, TX, US" Location = "NAM|US|TX|CORPUS CHRISTI" Country = "United States" +City Name = "Corrientes, AR" Location = "SAM|AR|AR006|CORRIENTES" Country = "Argentina" +City Name = "Corum, TR" Location = "MEA|TR|TU024|CORUM" Country = "Turkey" +City Name = "Costa Mesa, CA, US" Location = "NAM|US|CA|COSTA MESA" Country = "United States" +City Name = "Cotabato, PH" Location = "ASI|PH|RP039|COTABATO" Country = "Philippines" +City Name = "Cotia, BR" Location = "SAM|BR|BR023|COTIA" Country = "Brazil" +City Name = "Cotonou, BJ" Location = "AFR|BJ|BN000|COTONOU" Country = "Benin" +City Name = "Cottbus, DE" Location = "EUR|DE|GM004|COTTBUS" Country = "Germany" +City Name = "Cotyaeum, TR" Location = "MEA|TR|TU054|KTAHYA" Country = "Turkey" +City Name = "Coventry, UK" Location = "EUR|UK|UK001|COVENTRY" Country = "United Kingdom" +City Name = "Cradock, ZA" Location = "AFR|ZA|SF002|CRADOCK" Country = "South Africa" +City Name = "Craiova, RO" Location = "EUR|RO|RO018|CRAIOVA" Country = "Romania" +City Name = "Crato, BR" Location = "SAM|BR|BR006|CRATO" Country = "Brazil" +City Name = "Crewe, UK" Location = "EUR|UK|UK001|CREWE" Country = "United Kingdom" +City Name = "Criciuma, BR" Location = "SAM|BR|BR022|CRICIMA" Country = "Brazil" +City Name = "Croydon, UK" Location = "EUR|UK|UK001|CROYDON" Country = "United Kingdom" +City Name = "Cubatao, BR" Location = "SAM|BR|BR023|CUBATAO" Country = "Brazil" +City Name = "Cucuta, CO" Location = "SAM|CO|CO005|CUCUTA" Country = "Colombia" +City Name = "Cuddalore, IN" Location = "ASI|IN|IN031|CUDDALORE" Country = "India" +City Name = "Cuddapah, IN" Location = "ASI|IN|IN002|CUDDAPAH" Country = "India" +City Name = "Cuenca, EC" Location = "SAM|EC|EC001|CUENCA" Country = "Ecuador" +City Name = "Cuernavaca, MX" Location = "NAM|MX|MX017|CUERNAVACA" Country = "Mexico" +City Name = "Cuiaba, BR" Location = "SAM|BR|BR010|CUIAB" Country = "Brazil" +City Name = "Culican, MX" Location = "NAM|MX|MX025|CULIACN" Country = "Mexico" +City Name = "Cumana, VE" Location = "SAM|VE|VE020|CUMAN" Country = "Venezuela" +City Name = "Curitiba, BR" Location = "SAM|BR|BR015|CURITIBA" Country = "Brazil" +City Name = "Cuttack, IN" Location = "ASI|IN|IN026|CUTTACK" Country = "India" +City Name = "Cuzco, PE" Location = "SAM|PE|PE008|CUZCO" Country = "Peru" +City Name = "Czestochowa, PL" Location = "EUR|PL|PL012|CZESTOCHOWA" Country = "Poland" +City Name = "Da Nang, VN" Location = "ASI|VN|VM016|DA NANG" Country = "Vietnam" +City Name = "Daan, CN" Location = "ASI|CN|CH026|DAAN" Country = "China" +City Name = "Dabrowa Gornicza, PL" Location = "EUR|PL|PL012|DABROWA GRNICZA" Country = "Poland" +City Name = "Dadu, PK" Location = "ASI|PK|PK008|DADU" Country = "Pakistan" +City Name = "Dagupan, PH" Location = "ASI|PH|RP040|DAGUPAN" Country = "Philippines" +City Name = "Daito, JP" Location = "ASI|JP|JA033|DAITO" Country = "Japan" +City Name = "Dakar, SN" Location = "AFR|SN|SG001|DAKAR" Country = "Senegal" +City Name = "Dalat, VN" Location = "ASI|VN|VM037|DALAT" Country = "Vietnam" +City Name = "Dali, CN" Location = "ASI|CN|CH030|DALI" Country = "China" +City Name = "Dalian, CN" Location = "ASI|CN|CH018|DALIAN" Country = "China" +City Name = "Dallas, TX, US" Location = "NAM|US|TX|DALLAS" Country = "United States" +City Name = "Daly City, CA, US" Location = "NAM|US|CA|DALY CITY" Country = "United States" +City Name = "Damanhur, EG" Location = "AFR|EG|EG003|DAMANHR" Country = "Egypt" +City Name = "Damascus, SY" Location = "MEA|SY|SY008|DAMASCUS" Country = "Syria" +City Name = "Dammam, SA" Location = "MEA|SA|SA008|DAMMAM" Country = "Saudi Arabia" +City Name = "Damoh, IN" Location = "ASI|IN|IN020|DAMOH" Country = "India" +City Name = "Dandong, CN" Location = "ASI|CN|CH018|DANDONG" Country = "China" +City Name = "Dangyang, CN" Location = "ASI|CN|CH013|DANGYANG" Country = "China" +City Name = "Danielskuil, ZA" Location = "AFR|ZA|SF008|DANIELSKUIL" Country = "South Africa" +City Name = "Danjiangkou, CN" Location = "ASI|CN|CH013|DANJIANGKOU" Country = "China" +City Name = "Danyang, CN" Location = "ASI|CN|CH015|DANYANG" Country = "China" +City Name = "Daqing, CN" Location = "ASI|CN|CH011|DAQING" Country = "China" +City Name = "Dar Es Salaam, TZ" Location = "AFR|TZ|TZ000|DAR ES SALAAM" Country = "Tanzania" +City Name = "Darbhanga, IN" Location = "ASI|IN|IN005|DARBHANGA" Country = "India" +City Name = "Darlington, UK" Location = "EUR|UK|UK001|DARLINGTON" Country = "United Kingdom" +City Name = "Darmstadt, DE" Location = "EUR|DE|GM007|DARMSTADT" Country = "Germany" +City Name = "Darwin, AU" Location = "OCN|AU|NT|DARWIN" Country = "Australia" +City Name = "Daska, PK" Location = "ASI|PK|PK007|DASKA" Country = "Pakistan" +City Name = "Datong, CN" Location = "ASI|CN|CH001|DATONG" Country = "China" +City Name = "Daugavpils, LV" Location = "EUR|LV|LG006|DAUGAVPILS" Country = "Latvia" +City Name = "Davangere, IN" Location = "ASI|IN|IN017|DAVANGERE" Country = "India" +City Name = "Davao, PH" Location = "ASI|PH|RP133|DAVAO" Country = "Philippines" +City Name = "Daxian, CN" Location = "ASI|CN|CH026|DAXIAN" Country = "China" +City Name = "Dayton, OH, US" Location = "NAM|US|OH|DAYTON" Country = "United States" +City Name = "De Aar, ZA" Location = "AFR|ZA|SF008|DE AAR" Country = "South Africa" +City Name = "Debrecen, HU" Location = "EUR|HU|HU008|DEBRECEN" Country = "Hungary" +City Name = "Dehiwala, LK" Location = "ASI|LK|CE009|DEHIWALA-MOUNT LAVINIA" Country = "Sri Lanka" +City Name = "Dehradun, IN" Location = "ASI|IN|IN033|DEHRADUN" Country = "India" +City Name = "Delhi, IN" Location = "ASI|IN|IN010|DELHI" Country = "India" +City Name = "Delmas, HT" Location = "CAC|HT|HA003|DELMAS" Country = "Haiti" +City Name = "Dengzhou, CN" Location = "ASI|CN|CH023|DENGZHOU" Country = "China" +City Name = "Denizli, TR" Location = "MEA|TR|TU025|DENIZLI" Country = "Turkey" +City Name = "Denver, CO, US" Location = "NAM|US|CO|DENVER" Country = "United States" +City Name = "Dera Ghazi Khan, PK" Location = "ASI|PK|PK007|DERA GHAZI KHAN" Country = "Pakistan" +City Name = "Derby, UK" Location = "EUR|UK|UK001|DERBY" Country = "United Kingdom" +City Name = "Derry, IE" Location = "EUR|IE|EI000|DERRY" Country = "Ireland" +City Name = "Des Moines, IA, US" Location = "NAM|US|IA|DES MOINES" Country = "United States" +City Name = "Dessie, ET" Location = "AFR|ET|ET000|DESSIE" Country = "Ethiopia" +City Name = "Detroit, MI, US" Location = "NAM|US|MI|DETROIT" Country = "United States" +City Name = "Dewas, IN" Location = "ASI|IN|IN020|DEWAS" Country = "India" +City Name = "Dewetsdorp, ZA" Location = "AFR|ZA|SF003|DEWETSDORP" Country = "South Africa" +City Name = "Deyang, CN" Location = "ASI|CN|CH026|DEYANG" Country = "China" +City Name = "Dezful, IR" Location = "MEA|IR|IR016|DEZFUL" Country = "Iran" +City Name = "Dezhou, CN" Location = "ASI|CN|CH023|DEZHOU" Country = "China" +City Name = "Dhaka, BD" Location = "ASI|BD|BG002|DHAKA" Country = "Bangladesh" +City Name = "Dhanbad, IN" Location = "ASI|IN|IN005|DHANBAD" Country = "India" +City Name = "Dhule, IN" Location = "ASI|IN|IN021|DHULE" Country = "India" +City Name = "Diadema, BR" Location = "SAM|BR|BR023|DIADEMA" Country = "Brazil" +City Name = "Dibrugarh, IN" Location = "ASI|IN|IN004|DIBRUGARH" Country = "India" +City Name = "Dijon, FR" Location = "EUR|FR|FR005|DIJON" Country = "France" +City Name = "Dili, TL" Location = "ASI|TL|TT000|DILI" Country = "East Timor" +City Name = "Dimitrovgrad, RU" Location = "ASI|RU|RS085|DIMITROVGRAD" Country = "Russia" +City Name = "Dimona, IL" Location = "MEA|IL|IS001|DIMONA" Country = "Israel" +City Name = "Dinajpur, BD" Location = "ASI|BD|BG004|DINAJPUR" Country = "Bangladesh" +City Name = "Dindigul, IN" Location = "ASI|IN|IN031|DINDIGUL" Country = "India" +City Name = "Dingzhou, CN" Location = "ASI|CN|CH010|DINGZHOU" Country = "China" +City Name = "Dire Dawa, ET" Location = "AFR|ET|ET000|DIRE DAWA" Country = "Ethiopia" +City Name = "Divinopolis, BR" Location = "SAM|BR|BR012|DIVINPOLIS" Country = "Brazil" +City Name = "Diwaniya, IQ" Location = "MEA|IQ|IZ004|DIWANIYA" Country = "Iraq" +City Name = "Diyarbakir, TR" Location = "MEA|TR|TU026|DIYARBAKIR" Country = "Turkey" +City Name = "Djibouti, DJ" Location = "AFR|DJ|DJ003|DJIBOUTI" Country = "Djibouti" +City Name = "Dneprodzerzhinsk, UA" Location = "EUR|UA|UP003|DNEPRODZERZHINSK" Country = "Ukraine" +City Name = "Dnepropetrovsk, UA" Location = "EUR|UA|UP003|DNEPROPETROVSK" Country = "Ukraine" +City Name = "Doboj, BA" Location = "EUR|BA|BK002|DOBOJ" Country = "Bosnia And Herzegovina" +City Name = "Dobritch, BG" Location = "EUR|BG|BU003|DOBRITCH" Country = "Bulgaria" +City Name = "Dodoma, TZ" Location = "AFR|TZ|TZ000|DODOMA" Country = "Tanzania" +City Name = "Doha, QA" Location = "MEA|QA|QA001|DOHA" Country = "Qatar" +City Name = "Doncaster, UK" Location = "EUR|UK|UK001|DONCASTER" Country = "United Kingdom" +City Name = "Donetsk, UA" Location = "EUR|UA|UP006|DONETSK" Country = "Ukraine" +City Name = "Dongchuan, CN" Location = "ASI|CN|CH030|DONGCHUAN" Country = "China" +City Name = "Dongguan, CN" Location = "ASI|CN|CH016|DONGGUAN" Country = "China" +City Name = "Dongsheng, CN" Location = "ASI|CN|CH019|DONGSHENG" Country = "China" +City Name = "Dongtai, CN" Location = "ASI|CN|CH015|DONGTAI" Country = "China" +City Name = "Dongyang, CN" Location = "ASI|CN|CH011|DONGYANG" Country = "China" +City Name = "Dongying, CN" Location = "ASI|CN|CH019|DONGYING" Country = "China" +City Name = "Dordrecht, NL" Location = "EUR|NL|NL012|DORDRECHT" Country = "Netherlands" +City Name = "Dortmund, DE" Location = "EUR|DE|GM011|DORTMUND" Country = "Germany" +City Name = "Dos Quebradas, CO" Location = "SAM|CO|CO027|DOS QUEBRADAS" Country = "Colombia" +City Name = "Dothan, AL, US" Location = "NAM|US|AL|Dothan" Country = "United States" +City Name = "Douala, CM" Location = "AFR|CM|CM005|DOUALA" Country = "Cameroon" +City Name = "Douglas, IM" Location = "EUR|IM|IM---|DOUGLAS" Country = "Isle Of Man" +City Name = "Dourados, BR" Location = "SAM|BR|BR011|DOURADOS" Country = "Brazil" +City Name = "Dover, UK" Location = "EUR|UK|UK001|DOVER" Country = "United Kingdom" +City Name = "Dover, CO, US" Location = "NAM|US|CO|DOVER" Country = "United States" +City Name = "Dover, DE, US" Location = "NAM|US|DE|DOVER" Country = "United States" +City Name = "Downey, CA, US" Location = "NAM|US|CA|DOWNEY" Country = "United States" +City Name = "Drammen, NO" Location = "EUR|NO|NO003|DRAMMEN" Country = "Norway" +City Name = "Dresden, DE" Location = "EUR|DE|GM014|DRESDEN" Country = "Germany" +City Name = "Drobeta Turnu-Severin, RO" Location = "EUR|RO|RO027|DROBETA TURNU-SEVERIN" Country = "Romania" +City Name = "Dubai, AE" Location = "MEA|AE|AE005|DUBAI" Country = "United Arab Emirates" +City Name = "Dublin, IE" Location = "EUR|IE|EI006|DUBLIN" Country = "Ireland" +City Name = "Dudley, UK" Location = "EUR|UK|UK001|DUDLEY" Country = "United Kingdom" +City Name = "Duisburg, DE" Location = "EUR|DE|GM011|DUISBURG" Country = "Germany" +City Name = "Dujun, CN" Location = "ASI|CN|CH016|DUJUN" Country = "China" +City Name = "Dumfries and Galloway, UK" Location = "EUR|UK|UK002|DUMFRIES AND GALLOWAY" Country = "United Kingdom" +City Name = "Dundee, UK" Location = "EUR|UK|UK002|DUNDEE" Country = "United Kingdom" +City Name = "Dundee, ZA" Location = "AFR|ZA|SF005|DUNDEE" Country = "South Africa" +City Name = "Dunedin, NZ" Location = "OCN|NZ|NZ000|DUNEDIN" Country = "New Zealand" +City Name = "Dunhua, CN" Location = "ASI|CN|CH017|DUNHUA" Country = "China" +City Name = "Dunhuang, CN" Location = "ASI|CN|CH005|DUNHUANG" Country = "China" +City Name = "Duque De Caxias, BR" Location = "SAM|BR|BR017|DUQUE DE CAXIAS" Country = "Brazil" +City Name = "Durango, MX" Location = "NAM|MX|MX010|DURANGO" Country = "Mexico" +City Name = "Durban, ZA" Location = "AFR|ZA|SF005|DURBAN" Country = "South Africa" +City Name = "Durg, IN" Location = "ASI|IN|IN020|DURG" Country = "India" +City Name = "Durgapur, IN" Location = "ASI|IN|IN036|DURGAPUR" Country = "India" +City Name = "Durham, NC, US" Location = "NAM|US|NC|DURHAM" Country = "United States" +City Name = "Dushanbe, TJ" Location = "ASI|TJ|TI000|DUSHANBE" Country = "Tajikistan" +City Name = "Dusseldorf, DE" Location = "EUR|DE|GM011|DSSELDORF" Country = "Germany" +City Name = "Dzerzhinsk, RU" Location = "ASI|RU|RS055|DZERZHINSK" Country = "Russia" +City Name = "Ealing, UK" Location = "EUR|UK|UK001|EALING" Country = "United Kingdom" +City Name = "East London, ZA" Location = "AFR|ZA|SF002|EAST LONDON" Country = "South Africa" +City Name = "East York, CA" Location = "NAM|CA|ON|EAST YORK" Country = "Canada" +City Name = "Eastleigh, UK" Location = "EUR|UK|UK001|EASTLEIGH" Country = "United Kingdom" +City Name = "Eau Claire, WI, US" Location = "NAM|US|WI|Eau Claire" Country = "United States" +City Name = "Ebetsu, JP" Location = "ASI|JP|JA012|EBETSU" Country = "Japan" +City Name = "Ebina, JP" Location = "ASI|JP|JA019|EBINA" Country = "Japan" +City Name = "Ecatepec, MX" Location = "NAM|MX|MX015|ECATEPEC" Country = "Mexico" +City Name = "Ede, NL" Location = "EUR|NL|NL004|EDE" Country = "Netherlands" +City Name = "Ede, NG" Location = "AFR|NG|NI000|EDE" Country = "Nigeria" +City Name = "Edea, CM" Location = "AFR|CM|CM005|EDA" Country = "Cameroon" +City Name = "Edenburg, ZA" Location = "AFR|ZA|SF003|EDENBURG" Country = "South Africa" +City Name = "Edinburgh, UK" Location = "EUR|UK|UK002|EDINBURGH" Country = "United Kingdom" +City Name = "Edirne, TR" Location = "MEA|TR|TU027|EDIRNE" Country = "Turkey" +City Name = "Edmonton, CA" Location = "NAM|CA|AB|EDMONTON" Country = "Canada" +City Name = "Eilat , IL" Location = "MEA|IL|IS001|EILAT" Country = "Israel" +City Name = "Eindhoven, NL" Location = "EUR|NL|NL007|EINDHOVEN" Country = "Netherlands" +City Name = "Ekaterinburg, RU" Location = "ASI|RU|RS075|EKATERINBURG" Country = "Russia" +City Name = "Ekibastuz, KZ" Location = "ASI|KZ|KZ010|EKIBASTUZ" Country = "Kazakhstan" +City Name = "El Aaiun, EH" Location = "AFR|EH|WI---|EL AAIUN" Country = "Western Sahara" +City Name = "El Jadida, MA" Location = "AFR|MA|MO010|EL JADIDA" Country = "Morocco" +City Name = "El Monte, CA, US" Location = "NAM|US|CA|EL MONTE" Country = "United States" +City Name = "El Paso, TX, US" Location = "NAM|US|TX|EL PASO" Country = "United States" +City Name = "Elazig, TR" Location = "MEA|TR|TU028|ELAZIG" Country = "Turkey" +City Name = "Elblag, PL" Location = "EUR|PL|PL014|ELBLAG" Country = "Poland" +City Name = "Elche, ES" Location = "EUR|ES|SP016|ELCHE" Country = "Spain" +City Name = "Eldoret, KE" Location = "AFR|KE|KE007|ELDORET" Country = "Kenya" +City Name = "Elektrostal, RU" Location = "ASI|RU|RS051|ELEKTROSTAL" Country = "Russia" +City Name = "Elets, RU" Location = "ASI|RU|RS046|ELETS" Country = "Russia" +City Name = "Elista, RU" Location = "ASI|RU|RS026|ELISTA" Country = "Russia" +City Name = "Elizabeth, NJ, US" Location = "NAM|US|NJ|ELIZABETH" Country = "United States" +City Name = "Elk Grove, CA, US" Location = "NAM|US|CA|ELK GROVE" Country = "United States" +City Name = "Ellisras, ZA" Location = "AFR|ZA|SF009|ELLISRAS" Country = "South Africa" +City Name = "El-Mahalla El-Kubra, EG" Location = "AFR|EG|EG005|EL-MAHALLA EL-KUBRA" Country = "Egypt" +City Name = "Elmbridge, UK" Location = "EUR|UK|UK001|ELMBRIDGE" Country = "United Kingdom" +City Name = "Eluru, IN" Location = "ASI|IN|IN002|ELURU" Country = "India" +City Name = "Embu, BR" Location = "SAM|BR|BR023|EMBU" Country = "Brazil" +City Name = "Emmen, NL" Location = "EUR|NL|NL001|EMMEN" Country = "Netherlands" +City Name = "Empangeni, ZA" Location = "AFR|ZA|SF005|EMPANGENI" Country = "South Africa" +City Name = "Enfield, UK" Location = "EUR|UK|UK001|ENFIELD" Country = "United Kingdom" +City Name = "Engels, RU" Location = "ASI|RU|RS069|ENGELS" Country = "Russia" +City Name = "English Bazar, IN" Location = "ASI|IN|IN036|ENGLISH BAZAR" Country = "India" +City Name = "Enschede, NL" Location = "EUR|NL|NL009|ENSCHEDE" Country = "Netherlands" +City Name = "Ensenada, MX" Location = "NAM|MX|MX002|ENSENADA" Country = "Mexico" +City Name = "Enshi, CN" Location = "ASI|CN|CH013|ENSHI" Country = "China" +City Name = "Entebbe, UG" Location = "AFR|UG|UG000|ENTEBBE" Country = "Uganda" +City Name = "Enugu, NG" Location = "AFR|NG|NI000|ENUGU" Country = "Nigeria" +City Name = "Envigado, CO" Location = "SAM|CO|CO002|ENVIGADO" Country = "Colombia" +City Name = "Erbil, IQ" Location = "MEA|IQ|IZ006|ERBIL" Country = "Iraq" +City Name = "Erfurt, DE" Location = "EUR|DE|GM017|ERFURT" Country = "Germany" +City Name = "Erie, PA, US" Location = "NAM|US|PA|ERIE" Country = "United States" +City Name = "Erlangen, DE" Location = "EUR|DE|GM002|ERLANGEN" Country = "Germany" +City Name = "Ermelo, ZA" Location = "AFR|ZA|SF006|ERMELO" Country = "South Africa" +City Name = "Erode, IN" Location = "ASI|IN|IN031|ERODE" Country = "India" +City Name = "Erzurum, TR" Location = "MEA|TR|TU030|ERZURUM" Country = "Turkey" +City Name = "Esbjerg, DK" Location = "EUR|DK|DA008|ESBJERG" Country = "Denmark" +City Name = "Escondido, CA, US" Location = "NAM|US|CA|ESCONDIDO" Country = "United States" +City Name = "Esfahan, IR" Location = "MEA|IR|IR006|ESFAHAN" Country = "Iran" +City Name = "Eshowe, ZA" Location = "AFR|ZA|SF005|ESHOWE" Country = "South Africa" +City Name = "Eskisehir, TR" Location = "MEA|TR|TU031|ESKISEHIR" Country = "Turkey" +City Name = "Esmeraldas, EC" Location = "SAM|EC|EC008|ESMERALDAS" Country = "Ecuador" +City Name = "Espoo, FI" Location = "EUR|FI|FI002|ESPOO" Country = "Finland" +City Name = "Essen, DE" Location = "EUR|DE|GM011|ESSEN" Country = "Germany" +City Name = "Etawah, IN" Location = "ASI|IN|IN029|ETAWAH" Country = "India" +City Name = "Etobicoke, CA" Location = "NAM|CA|ON|ETOBICOKE" Country = "Canada" +City Name = "Eugene, OR, US" Location = "NAM|US|OR|EUGENE" Country = "United States" +City Name = "Evansville, IN, US" Location = "NAM|US|IN|EVANSVILLE" Country = "United States" +City Name = "vora, PT" Location = "EUR|PT|PO008|VORA" Country = "Portugal" +City Name = "Excelsior, ZA" Location = "AFR|ZA|SF003|EXCELSIOR" Country = "South Africa" +City Name = "Exeter, UK" Location = "EUR|UK|UK001|EXETER" Country = "United Kingdom" +City Name = "Faisalabad, PK" Location = "ASI|PK|PK007|FAISALABAD" Country = "Pakistan" +City Name = "Faiyum, EG" Location = "AFR|EG|EG004|FAIYM" Country = "Egypt" +City Name = "Faizabad, IN" Location = "ASI|IN|IN033|FAIZABAD" Country = "India" +City Name = "Falkirk, UK" Location = "EUR|UK|UK002|FALKIRK" Country = "United Kingdom" +City Name = "Fareham, UK" Location = "EUR|UK|UK001|FAREHAM" Country = "United Kingdom" +City Name = "Faridabad, IN" Location = "ASI|IN|IN013|FARIDABAD" Country = "India" +City Name = "Faro, PT" Location = "EUR|PT|PO009|FARO" Country = "Portugal" +City Name = "Farrukhabad-Cum-Fategarh, IN" Location = "ASI|IN|IN033|FARRUKHABAD-CUM-FATEGARH" Country = "India" +City Name = "Fatehpur, IN" Location = "ASI|IN|IN029|FATEHPUR" Country = "India" +City Name = "Fauresmith, ZA" Location = "AFR|ZA|SF003|FAURESMITH" Country = "South Africa" +City Name = "Fayetteville, NC, US" Location = "NAM|US|NC|FAYETTEVILLE" Country = "United States" +City Name = "Fayetteville, AR, US" Location = "NAM|US|AR|Fayetteville" Country = "United States" +City Name = "Feira De Santana, BR" Location = "SAM|BR|BR005|FEIRA DE SANTANA" Country = "Brazil" +City Name = "Fengcheng, CN" Location = "ASI|CN|CH016|FENGCHENG" Country = "China" +City Name = "Fenghua, CN" Location = "ASI|CN|CH031|FENGHUA" Country = "China" +City Name = "Fergana, UZ" Location = "ASI|UZ|UZ003|FERGANA" Country = "Uzbekistan" +City Name = "Ferrara, IT" Location = "EUR|IT|IT005|FERRARA" Country = "Italy" +City Name = "Ferraz De Vasconcelos, BR" Location = "SAM|BR|BR023|FERRAZ DE VASCONCELOS" Country = "Brazil" +City Name = "Fes, MA" Location = "AFR|MA|MO016|FS" Country = "Morocco" +City Name = "Ficksburg, ZA" Location = "AFR|ZA|SF003|FICKSBURG" Country = "South Africa" +City Name = "Firenze, IT" Location = "EUR|IT|IT016|FIRENZE" Country = "Italy" +City Name = "Firozabad, IN" Location = "ASI|IN|IN017|FIROZABAD" Country = "India" +City Name = "Flint, MI, US" Location = "NAM|US|MI|FLINT" Country = "United States" +City Name = "Florencia, CO" Location = "SAM|CO|CO005|FLORENCIA" Country = "Colombia" +City Name = "Florianopolis, BR" Location = "SAM|BR|BR022|FLORIANPOLIS" Country = "Brazil" +City Name = "Floridablanca, CO" Location = "SAM|CO|CO024|FLORIDABLANCA" Country = "Colombia" +City Name = "Foggia, IT" Location = "EUR|IT|IT013|FOGGIA" Country = "Italy" +City Name = "Fontana, CA, US" Location = "NAM|US|CA|FONTANA" Country = "United States" +City Name = "Forli, IT" Location = "EUR|IT|IT005|FORLI" Country = "Italy" +City Name = "Formosa, AR" Location = "SAM|AR|AR009|FORMOSA" Country = "Argentina" +City Name = "Fort Beaufort, ZA" Location = "AFR|ZA|SF002|FORT BEAUFORT" Country = "South Africa" +City Name = "Fort Collins, CO, US" Location = "NAM|US|CO|FORT COLLINS" Country = "United States" +City Name = "Fort Lauderdale, FL, US" Location = "NAM|US|FL|FORT LAUDERDALE" Country = "United States" +City Name = "Fort Portal, UG" Location = "AFR|UG|UG000|FORT PORTAL" Country = "Uganda" +City Name = "Fort Wayne, IN, US" Location = "NAM|US|IN|FORT WAYNE" Country = "United States" +City Name = "Fort Worth, TX, US" Location = "NAM|US|TX|FORT WORTH" Country = "United States" +City Name = "Fortaleza, BR" Location = "SAM|BR|BR006|FORTALEZA" Country = "Brazil" +City Name = "Fort-De-France, MQ" Location = "CAC|MQ|MB---|FORT-DE-FRANCE" Country = "Martinique" +City Name = "Foshan, CN" Location = "ASI|CN|CH006|FOSHAN" Country = "China" +City Name = "Foz Do Iguacu, BR" Location = "SAM|BR|BR015|FOZ DO IGUAU" Country = "Brazil" +City Name = "Franca, BR" Location = "SAM|BR|BR005|FRANCA" Country = "Brazil" +City Name = "Francisco Morato, BR" Location = "SAM|BR|BR023|FRANCISCO MORATO" Country = "Brazil" +City Name = "Francistown, BW" Location = "AFR|BW|BC000|FRANCISTOWN" Country = "Botswana" +City Name = "Franco Da Rocha, BR" Location = "SAM|BR|BR023|FRANCO DA ROCHA" Country = "Brazil" +City Name = "Frankfort, KY, US" Location = "NAM|US|KY|FRANKFORT" Country = "United States" +City Name = "Frankfurt Am Main, DE" Location = "EUR|DE|GM007|FRANKFURT AM MAIN" Country = "Germany" +City Name = "Franschhoek, ZA" Location = "AFR|ZA|SF011|FRANSCHHOEK" Country = "South Africa" +City Name = "Fraserburg, ZA" Location = "AFR|ZA|SF008|FRASERBURG" Country = "South Africa" +City Name = "Fredericia, DK" Location = "EUR|DK|DA014|FREDERICIA" Country = "Denmark" +City Name = "Frederikshavn, DK" Location = "EUR|DK|DA007|FREDERIKSHAVN" Country = "Denmark" +City Name = "Fredrikstad, NO" Location = "EUR|NO|NO012|FREDRIKSTAD" Country = "Norway" +City Name = "Freetown, SL" Location = "AFR|SL|SL004|FREETOWN" Country = "Sierra Leone" +City Name = "Freiburg Im Breisgau, DE" Location = "EUR|DE|GM001|FREIBURG IM BREISGAU" Country = "Germany" +City Name = "Fremont, CA, US" Location = "NAM|US|CA|FREMONT" Country = "United States" +City Name = "Fresno, CA, US" Location = "NAM|US|CA|FRESNO" Country = "United States" +City Name = "Fuan, CN" Location = "ASI|CN|CH004|FUAN" Country = "China" +City Name = "Fuenlabrada, ES" Location = "EUR|ES|SP013|FUENLABRADA" Country = "Spain" +City Name = "Fuji, JP" Location = "ASI|JP|JA038|FUJI" Country = "Japan" +City Name = "Fujieda, JP" Location = "ASI|JP|JA038|FUJIEDA" Country = "Japan" +City Name = "Fujimi, JP" Location = "ASI|JP|JA012|FUJIMI" Country = "Japan" +City Name = "Fujin, CN" Location = "ASI|CN|CH011|FUJIN" Country = "China" +City Name = "Fujinomiya, JP" Location = "ASI|JP|JA038|FUJINOMIYA" Country = "Japan" +City Name = "Fukaya, JP" Location = "ASI|JP|JA035|FUKAYA" Country = "Japan" +City Name = "Fukui, JP" Location = "ASI|JP|JA006|FUKUI" Country = "Japan" +City Name = "Fukuoka, JP" Location = "ASI|JP|JA009|FUKUOKA" Country = "Japan" +City Name = "Fukuyama, JP" Location = "ASI|JP|JA011|FUKUYAMA" Country = "Japan" +City Name = "Fulin, CN" Location = "ASI|CN|CH014|FULIN" Country = "China" +City Name = "Fullerton, CA, US" Location = "NAM|US|CA|FULLERTON" Country = "United States" +City Name = "Funabashi, JP" Location = "ASI|JP|JA004|FUNABASHI" Country = "Japan" +City Name = "Funchal, PT" Location = "EUR|PT|PO013|FUNCHAL" Country = "Portugal" +City Name = "Furth, DE" Location = "EUR|DE|GM002|FRTH" Country = "Germany" +City Name = "Fushun, CN" Location = "ASI|CN|CH018|FUSHUN" Country = "China" +City Name = "Fuxin, CN" Location = "ASI|CN|CH018|FUXIN" Country = "China" +City Name = "Fuyang, CN" Location = "ASI|CN|CH001|FUYANG" Country = "China" +City Name = "Fuyu, CN" Location = "ASI|CN|CH011|FUYU" Country = "China" +City Name = "Fuzhou, CN" Location = "ASI|CN|CH004|FUZHOU" Country = "China" +City Name = "Gabes, TN" Location = "AFR|TN|TS013|GABES" Country = "Tunisia" +City Name = "Gaborone, BW" Location = "AFR|BW|BC009|GABORONE" Country = "Botswana" +City Name = "Gadag, IN" Location = "ASI|IN|IN017|GADAG-BETGERI" Country = "India" +City Name = "Gadamabad, IR" Location = "MEA|IR|IR009|GONBAD-E-KAVUS" Country = "Iran" +City Name = "Gaevle, SE" Location = "EUR|SE|SW003|GAEVLE" Country = "Sweden" +City Name = "Gainesville, FL, US" Location = "NAM|US|FL|Gainesville" Country = "United States" +City Name = "Galati, RO" Location = "EUR|RO|RO019|GALATI" Country = "Romania" +City Name = "Gandhidham, IN" Location = "ASI|IN|IN012|GANDHIDHAM" Country = "India" +City Name = "Gandhinagar, IN" Location = "ASI|IN|IN012|GANDHINAGAR" Country = "India" +City Name = "Gandja, AZ" Location = "ASI|AZ|AJ020|GANDJA" Country = "Azerbaijan" +City Name = "Gansbaai, ZA" Location = "AFR|ZA|SF011|GANSBAAI" Country = "South Africa" +City Name = "Ganzhou, CN" Location = "ASI|CN|CH016|GANZHOU" Country = "China" +City Name = "Gaocheng, CN" Location = "ASI|CN|CH013|GAOCHENG" Country = "China" +City Name = "Gap, FR" Location = "EUR|FR|FR021|GAP" Country = "France" +City Name = "Garanhuns, BR" Location = "SAM|BR|BR026|GARANHUNS" Country = "Brazil" +City Name = "Garden Grove, CA, US" Location = "NAM|US|CA|GARDEN GROVE" Country = "United States" +City Name = "Garland, TX, US" Location = "NAM|US|TX|GARLAND" Country = "United States" +City Name = "Garoua, CM" Location = "AFR|CM|CM006|GAROUA" Country = "Cameroon" +City Name = "Gary, IN, US" Location = "NAM|US|IN|GARY" Country = "United States" +City Name = "Gateshead, UK" Location = "EUR|UK|UK001|GATESHEAD" Country = "United Kingdom" +City Name = "Gatineau, CA" Location = "NAM|CA|QC|GATINEAU" Country = "Canada" +City Name = "Gaya, IN" Location = "ASI|IN|IN005|GAYA" Country = "India" +City Name = "Gaziantep, TR" Location = "MEA|TR|TU032|GAZIANTEP" Country = "Turkey" +City Name = "Gdansk, PL" Location = "EUR|PL|PL011|GDANSK" Country = "Poland" +City Name = "Gdynia, PL" Location = "EUR|PL|PL011|GDYNIA" Country = "Poland" +City Name = "Gebze, TR" Location = "MEA|TR|TU052|GEBZE" Country = "Turkey" +City Name = "Gedling, UK" Location = "EUR|UK|UK001|GEDLING" Country = "United Kingdom" +City Name = "Geelong, AU" Location = "OCN|AU|VIC|GEELONG" Country = "Australia" +City Name = "Geilo, NO" Location = "EUR|NO|NO003|GEILO" Country = "Norway" +City Name = "Gejiu, CN" Location = "ASI|CN|CH030|GEJIU" Country = "China" +City Name = "Geleen-Sittard, NL" Location = "EUR|NL|NL006|GELEEN-SITTARD" Country = "Netherlands" +City Name = "Gelsenkirchen, DE" Location = "EUR|DE|GM011|GELSENKIRCHEN" Country = "Germany" +City Name = "General San Martin, AR" Location = "SAM|AR|AR011|GENERAL SAN MARTN" Country = "Argentina" +City Name = "General Santos, PH" Location = "ASI|PH|RP049|GENERAL SANTOS" Country = "Philippines" +City Name = "Geneve, CH" Location = "EUR|CH|SZ008|GENVE" Country = "Switzerland" +City Name = "Genova, IT" Location = "EUR|IT|IT008|GENOVA" Country = "Italy" +City Name = "Gent, BE" Location = "EUR|BE|BE009|GENT" Country = "Belgium" +City Name = "George, ZA" Location = "AFR|ZA|SF011|GEORGE" Country = "South Africa" +City Name = "George Town, KY" Location = "CAC|KY|CJ000|GEORGE TOWN" Country = "Cayman Islands" +City Name = "George Town, MY" Location = "ASI|MY|MY010|GEORGE TOWN" Country = "Malaysia" +City Name = "Georgetown, GY" Location = "SAM|GY|GY003|GEORGETOWN" Country = "Guyana" +City Name = "Gera, DE" Location = "EUR|DE|GM017|GERA" Country = "Germany" +City Name = "Germiston, ZA" Location = "AFR|ZA|SF004|GERMISTON" Country = "South Africa" +City Name = "Getafe, ES" Location = "EUR|ES|SP013|GETAFE" Country = "Spain" +City Name = "Ghanzi, BW" Location = "AFR|BW|BC000|GHANZI" Country = "Botswana" +City Name = "Ghaziabad, IN" Location = "ASI|IN|IN033|GHAZIABAD" Country = "India" +City Name = "Giants Castle, ZA" Location = "AFR|ZA|SF005|GIANTS CASTLE" Country = "South Africa" +City Name = "Gibraltar, GI" Location = "EUR|GI|GI---|GIBRALTAR" Country = "Gibraltar" +City Name = "Gifu, JP" Location = "ASI|JP|JA009|GIFU" Country = "Japan" +City Name = "Gijon, ES" Location = "EUR|ES|SP003|GIJN" Country = "Spain" +City Name = "Gilbert, AZ, US" Location = "NAM|US|AZ|GILBERT" Country = "United States" +City Name = "Gillette, NJ, US" Location = "NAM|US|NJ|GILLETTE" Country = "United States" +City Name = "Gillette, WY, US" Location = "NAM|US|WY|GILLETTE" Country = "United States" +City Name = "Girardot, CO" Location = "SAM|CO|CO011|GIRARDOT" Country = "Colombia" +City Name = "Giza, EG" Location = "AFR|EG|EG008|GIZA" Country = "Egypt" +City Name = "Gladbach, DE" Location = "EUR|DE|GM011|MNCHENGLADBACH" Country = "Germany" +City Name = "Glasgow, UK" Location = "EUR|UK|UK002|GLASGOW" Country = "United Kingdom" +City Name = "Glazov, RU" Location = "ASI|RU|RS084|GLAZOV" Country = "Russia" +City Name = "Glendale, CA, US" Location = "NAM|US|CA|GLENDALE" Country = "United States" +City Name = "Gliwice, PL" Location = "EUR|PL|PL012|GLIWICE" Country = "Poland" +City Name = "Gloucester, UK" Location = "EUR|UK|UK001|GLOUCESTER" Country = "United Kingdom" +City Name = "Godhra, IN" Location = "ASI|IN|IN012|GODHRA" Country = "India" +City Name = "Goiania, BR" Location = "SAM|BR|BR027|GOINIA" Country = "Brazil" +City Name = "Gojra, PK" Location = "ASI|PK|PK007|GOJRA" Country = "Pakistan" +City Name = "Gold Coast, AU" Location = "OCN|AU|QLD|GOLD COAST" Country = "Australia" +City Name = "Gomel, BY" Location = "EUR|BY|BO002|GOMEL" Country = "Belarus" +City Name = "Gomez Palacio, MX" Location = "NAM|MX|MX010|GMEZ PALACIO" Country = "Mexico" +City Name = "Gondar, ET" Location = "AFR|ET|ET000|GONDAR" Country = "Ethiopia" +City Name = "Gongzhuling, CN" Location = "ASI|CN|CH017|GONGZHULING" Country = "China" +City Name = "Gorakhpur, IN" Location = "ASI|IN|IN033|GORAKHPUR" Country = "India" +City Name = "Gordons Bay, ZA" Location = "AFR|ZA|SF011|GORDONS BAY" Country = "South Africa" +City Name = "Gorgan, IR" Location = "MEA|IR|IR002|GORGAN" Country = "Iran" +City Name = "Gorkey, RU" Location = "ASI|RU|RS055|NIZHNY NOVGOROD" Country = "Russia" +City Name = "Gorlovka, UA" Location = "EUR|UA|UP004|GORLOVKA" Country = "Ukraine" +City Name = "Gorzow Wielkopolski, PL" Location = "EUR|PL|PL005|GORZW WIELKOPOLSKI" Country = "Poland" +City Name = "Gothenburg, SE" Location = "EUR|SE|SW021|GOTHENBURG" Country = "Sweden" +City Name = "Gottingen, DE" Location = "EUR|DE|GM007|GTTINGEN" Country = "Germany" +City Name = "Governador Valadares, BR" Location = "SAM|BR|BR012|GOVERNADOR VALADARES" Country = "Brazil" +City Name = "Graaff Reinet, ZA" Location = "AFR|ZA|SF002|GRAAFF REINET" Country = "South Africa" +City Name = "Grabouw, ZA" Location = "AFR|ZA|SF011|GRABOUW" Country = "South Africa" +City Name = "Grahamstown, ZA" Location = "AFR|ZA|SF002|GRAHAMSTOWN" Country = "South Africa" +City Name = "Granada, NI" Location = "CAC|NI|NU006|GRANADA" Country = "Nicaragua" +City Name = "Granada, ES" Location = "EUR|ES|SP001|GRANADA" Country = "Spain" +City Name = "Grand Island, NE, US" Location = "NAM|US|NE|Grand Island" Country = "United States" +City Name = "Grand Prairie, TX, US" Location = "NAM|US|TX|GRAND PRAIRIE" Country = "United States" +City Name = "Grand Rapids, MI, US" Location = "NAM|US|MI|GRAND RAPIDS" Country = "United States" +City Name = "Grand Turk, TC" Location = "CAC|TC|TK---|GRAND TURK" Country = "Turks And Caicos Islands" +City Name = "Graskop, ZA" Location = "AFR|ZA|SF006|GRASKOP" Country = "South Africa" +City Name = "Gravatai, BR" Location = "SAM|BR|BR019|GRAVATAI" Country = "Brazil" +City Name = "Graz, AT" Location = "EUR|AT|AU006|GRAZ" Country = "Austria" +City Name = "Green Bay, WI, US" Location = "NAM|US|WI|GREEN BAY" Country = "United States" +City Name = "Greensboro, NC, US" Location = "NAM|US|NC|GREENSBORO" Country = "United States" +City Name = "Grenoble, FR" Location = "EUR|FR|FR022|GRENOBLE" Country = "France" +City Name = "Griekwastad, ZA" Location = "AFR|ZA|SF008|GRIEKWASTAD" Country = "South Africa" +City Name = "Groblersdal, ZA" Location = "AFR|ZA|SF006|GROBLERSDAL" Country = "South Africa" +City Name = "Grodno, BY" Location = "EUR|BY|BO003|GRODNO" Country = "Belarus" +City Name = "Groningen, NL" Location = "EUR|NL|NL005|GRONINGEN" Country = "Netherlands" +City Name = "Groznyi, RU" Location = "ASI|RU|RS012|GROZNYI" Country = "Russia" +City Name = "Guadalajara, MX" Location = "NAM|MX|MX014|GUADALAJARA" Country = "Mexico" +City Name = "Guadalupe, MX" Location = "NAM|MX|MX005|GUADALUPE" Country = "Mexico" +City Name = "Guanare, VE" Location = "SAM|VE|VE019|GUANARE" Country = "Venezuela" +City Name = "Guanghan, CN" Location = "ASI|CN|CH001|GUANGHAN" Country = "China" +City Name = "Guangshui, CN" Location = "ASI|CN|CH013|GUANGSHUI" Country = "China" +City Name = "Guangyuan, CN" Location = "ASI|CN|CH026|GUANGYUAN" Country = "China" +City Name = "Guangzhou, CN" Location = "ASI|CN|CH006|GUANGZHOU" Country = "China" +City Name = "Guantanamo, CU" Location = "CAC|CU|CU006|GUANTNAMO" Country = "Cuba" +City Name = "Guarapuava, BR" Location = "SAM|BR|BR015|GUARAPUAVA" Country = "Brazil" +City Name = "Guaratingueta, BR" Location = "SAM|BR|BR023|GUARATINGUET" Country = "Brazil" +City Name = "Guarda, PT" Location = "EUR|PT|PO010|GUARDA" Country = "Portugal" +City Name = "Guarenas, VE" Location = "SAM|VE|VE016|GUARENAS" Country = "Venezuela" +City Name = "Guaruja, BR" Location = "SAM|BR|BR023|GUARUJ" Country = "Brazil" +City Name = "Guarulhos, BR" Location = "SAM|BR|BR023|GUARULHOS" Country = "Brazil" +City Name = "Guatemala, GT" Location = "CAC|GT|GT007|GUATEMALA" Country = "Guatemala" +City Name = "Guayaquil, EC" Location = "SAM|EC|EC010|GUAYAQUIL" Country = "Ecuador" +City Name = "Guaynabo, PR" Location = "CAC|PR|PR000|GUAYNABO" Country = "Puerto Rico" +City Name = "Gudivada, IN" Location = "ASI|IN|IN002|GUDIVADA" Country = "India" +City Name = "Guelph, CA" Location = "NAM|CA|ON|GUELPH" Country = "Canada" +City Name = "Guichi, CN" Location = "ASI|CN|CH001|GUICHI" Country = "China" +City Name = "Guildford, UK" Location = "EUR|UK|UK001|GUILDFORD" Country = "United Kingdom" +City Name = "Guilin, CN" Location = "ASI|CN|CH016|GUILIN" Country = "China" +City Name = "Guiyang, CN" Location = "ASI|CN|CH007|GUIYANG" Country = "China" +City Name = "Gujranwala, PK" Location = "ASI|PK|PK007|GUJRANWALA" Country = "Pakistan" +City Name = "Gujrat, PK" Location = "ASI|PK|PK007|GUJRAT" Country = "Pakistan" +City Name = "Gulbarga, IN" Location = "ASI|IN|IN017|GULBARGA" Country = "India" +City Name = "Gulu, UG" Location = "AFR|UG|UG000|GULU" Country = "Uganda" +City Name = "Guna, IN" Location = "ASI|IN|IN020|GUNA" Country = "India" +City Name = "Guntur, IN" Location = "ASI|IN|IN002|GUNTUR" Country = "India" +City Name = "Gurgaon, IN" Location = "ASI|IN|IN013|GURGAON" Country = "India" +City Name = "Guruvayur, IN" Location = "ASI|IN|IN018|GURUVAYUR" Country = "India" +City Name = "Gwalior, IN" Location = "ASI|IN|IN020|GWALIOR" Country = "India" +City Name = "Gweru, ZW" Location = "AFR|ZW|ZI000|GWERU" Country = "Zimbabwe" +City Name = "Gyor, HU" Location = "EUR|HU|HU012|GYR" Country = "Hungary" +City Name = "Haarlem, NL" Location = "EUR|NL|NL008|HAARLEM" Country = "Netherlands" +City Name = "Haarlemmermeer, NL" Location = "EUR|NL|NL008|HAARLEMMERMEER" Country = "Netherlands" +City Name = "Habikino, JP" Location = "ASI|JP|JA033|HABIKINO" Country = "Japan" +City Name = "Habra, IN" Location = "ASI|IN|IN036|HABRA" Country = "India" +City Name = "Hachinohe, JP" Location = "ASI|JP|JA003|HACHINOHE" Country = "Japan" +City Name = "Hachioji, JP" Location = "ASI|JP|JA041|HACHIOJI" Country = "Japan" +City Name = "Hackney, UK" Location = "EUR|UK|UK001|HACKNEY" Country = "United Kingdom" +City Name = "Hadera, IL" Location = "MEA|IL|IS004|HADERA" Country = "Israel" +City Name = "Hadserslev, DK" Location = "EUR|DK|DA011|HADSERSLEV" Country = "Denmark" +City Name = "Haeju, KP" Location = "ASI|KP|KN005|HAEJU" Country = "North Korea" +City Name = "Haenertsburg, ZA" Location = "AFR|ZA|SF009|HAENERTSBURG" Country = "South Africa" +City Name = "Hafizabad, PK" Location = "ASI|PK|PK007|HAFIZABAD" Country = "Pakistan" +City Name = "Hagen, DE" Location = "EUR|DE|GM015|HAGEN" Country = "Germany" +City Name = "Haicheng, CN" Location = "ASI|CN|CH004|HAICHENG" Country = "China" +City Name = "Haifa, IL" Location = "MEA|IL|IS004|HAIFA" Country = "Israel" +City Name = "Haikou, CN" Location = "ASI|CN|CH009|HAIKOU" Country = "China" +City Name = "Haining, CN" Location = "ASI|CN|CH031|HAINING" Country = "China" +City Name = "Haiphong, VN" Location = "ASI|VN|VM029|HAIPHONG" Country = "Vietnam" +City Name = "Hakodate, JP" Location = "ASI|JP|JA012|HAKODATE" Country = "Japan" +City Name = "Halifax, CA" Location = "NAM|CA|NS|HALIFAX" Country = "Canada" +City Name = "Halle, DE" Location = "EUR|DE|GM009|HALLE" Country = "Germany" +City Name = "Halton, UK" Location = "EUR|UK|UK001|HALTON" Country = "United Kingdom" +City Name = "Hama, SY" Location = "MEA|SY|SY010|HAMA" Country = "Syria" +City Name = "Hamadan, IR" Location = "MEA|IR|IR010|HAMADAN" Country = "Iran" +City Name = "Hamamatsu, JP" Location = "ASI|JP|JA038|HAMAMATSU" Country = "Japan" +City Name = "Hamburg, DE" Location = "EUR|DE|GM006|HAMBURG" Country = "Germany" +City Name = "Hamhung, KP" Location = "ASI|KP|KN003|HAMHUNG" Country = "North Korea" +City Name = "Hami, CN" Location = "ASI|CN|CH028|HAMI" Country = "China" +City Name = "Hamilton, BM" Location = "NAM|BM|BD002|HAMILTON" Country = "Bermuda" +City Name = "Hamilton, CA" Location = "NAM|CA|ON|HAMILTON" Country = "Canada" +City Name = "Hamilton, NZ" Location = "OCN|NZ|NZ000|HAMILTON" Country = "New Zealand" +City Name = "Hamm, DE" Location = "EUR|DE|GM009|HAMM" Country = "Germany" +City Name = "Hammerfest, NO" Location = "EUR|NO|NO004|HAMMERFEST" Country = "Norway" +City Name = "Hammersmith and Fulham, UK" Location = "EUR|UK|UK001|HAMMERSMITH AND FULHAM" Country = "United Kingdom" +City Name = "Hampton, VA, US" Location = "NAM|US|VA|HAMPTON" Country = "United States" +City Name = "Hanam, KR" Location = "ASI|KR|KS009|HANAM" Country = "South Korea" +City Name = "Hancheng, CN" Location = "ASI|CN|CH022|HANCHENG" Country = "China" +City Name = "Handa, JP" Location = "ASI|JP|JA001|HANDA" Country = "Japan" +City Name = "Handan, CN" Location = "ASI|CN|CH016|HANDAN" Country = "China" +City Name = "Hangzhou, CN" Location = "ASI|CN|CH031|HANGZHOU" Country = "China" +City Name = "Hannover, DE" Location = "EUR|DE|GM009|HANNOVER" Country = "Germany" +City Name = "Hanoi, VN" Location = "ASI|VN|VM017|HANOI" Country = "Vietnam" +City Name = "Hanzhong, CN" Location = "ASI|CN|CH022|HANZHONG" Country = "China" +City Name = "Haora, IN" Location = "ASI|IN|IN036|HAORA" Country = "India" +City Name = "Hapur, IN" Location = "ASI|IN|IN033|HAPUR" Country = "India" +City Name = "Harare, ZW" Location = "AFR|ZW|ZI003|HARARE" Country = "Zimbabwe" +City Name = "Harbin, CN" Location = "ASI|CN|CH011|HARBIN" Country = "China" +City Name = "Hardwar, IN" Location = "ASI|IN|IN033|HARDWAR" Country = "India" +City Name = "Haringey, UK" Location = "EUR|UK|UK001|HARINGEY" Country = "United Kingdom" +City Name = "Harrisburg, PA, US" Location = "NAM|US|PA|HARRISBURG" Country = "United States" +City Name = "Harrismith, ZA" Location = "AFR|ZA|SF003|HARRISMITH" Country = "South Africa" +City Name = "Harrogate, UK" Location = "EUR|UK|UK001|HARROGATE" Country = "United Kingdom" +City Name = "Harrow, UK" Location = "EUR|UK|UK001|HARROW" Country = "United Kingdom" +City Name = "Hartbeespoort, ZA" Location = "AFR|ZA|SF007|HARTBEESPOORT" Country = "South Africa" +City Name = "Hartenbos, ZA" Location = "AFR|ZA|SF011|HARTENBOS" Country = "South Africa" +City Name = "Hartford, CT, US" Location = "NAM|US|CT|HARTFORD" Country = "United States" +City Name = "Hassan, IN" Location = "ASI|IN|IN017|HASSAN" Country = "India" +City Name = "Hatay, TR" Location = "MEA|TR|TU036|HATAY" Country = "Turkey" +City Name = "Hathras, IN" Location = "ASI|IN|IN033|HATHRAS" Country = "India" +City Name = "Hattiesburg, MS, US" Location = "NAM|US|MS|Hattiesburg" Country = "United States" +City Name = "Haugesund, NO" Location = "EUR|NO|NO013|HAUGESUND" Country = "Norway" +City Name = "Havant, UK" Location = "EUR|UK|UK148|HAVANT" Country = "United Kingdom" +City Name = "Havant and Waterloo, UK" Location = "EUR|UK|UK001|HAVANT AND WATERLOO" Country = "United Kingdom" +City Name = "Havering, UK" Location = "EUR|UK|UK001|HAVERING" Country = "United Kingdom" +City Name = "Hayward, CA, US" Location = "NAM|US|CA|HAYWARD" Country = "United States" +City Name = "Hazyview, ZA" Location = "AFR|ZA|SF006|HAZYVIEW" Country = "South Africa" +City Name = "Hebi, CN" Location = "ASI|CN|CH012|HEBI" Country = "China" +City Name = "Hechi, CN" Location = "ASI|CN|CH007|HECHI" Country = "China" +City Name = "Heerlen-Kerkrade, NL" Location = "EUR|NL|NL006|HEERLEN-KERKRADE" Country = "Netherlands" +City Name = "Hefei, CN" Location = "ASI|CN|CH001|HEFEI" Country = "China" +City Name = "Hegang, CN" Location = "ASI|CN|CH001|HEGANG" Country = "China" +City Name = "Heidelberg, DE" Location = "EUR|DE|GM001|HEIDELBERG" Country = "Germany" +City Name = "Heidelberg, ZA" Location = "AFR|ZA|SF004|HEIDELBERG" Country = "South Africa" +City Name = "Heihe, CN" Location = "ASI|CN|CH011|HEIHE" Country = "China" +City Name = "Heilbronn, DE" Location = "EUR|DE|GM001|HEILBRONN" Country = "Germany" +City Name = "Helena, MT, US" Location = "NAM|US|MT|HELENA" Country = "United States" +City Name = "Helsingborg, SE" Location = "EUR|SE|SW013|HELSINGBORG" Country = "Sweden" +City Name = "Helsingoer, DK" Location = "EUR|DK|DA004|HELSINGOER" Country = "Denmark" +City Name = "Helsinki, FI" Location = "EUR|FI|FI002|HELSINKI" Country = "Finland" +City Name = "Hemsedal, NO" Location = "EUR|NO|NO003|HEMSEDAL" Country = "Norway" +City Name = "Henderson, NV, US" Location = "NAM|US|NV|HENDERSON" Country = "United States" +City Name = "Hengshui, CN" Location = "ASI|CN|CH010|HENGSHUI" Country = "China" +City Name = "Hengyang, CN" Location = "ASI|CN|CH014|HENGYANG" Country = "China" +City Name = "Herat, AF" Location = "ASI|AF|AF011|HERAT" Country = "Afghanistan" +City Name = "Hermanus, ZA" Location = "AFR|ZA|SF011|HERMANUS" Country = "South Africa" +City Name = "Hermosillo, MX" Location = "NAM|MX|MX002|HERMOSILLO" Country = "Mexico" +City Name = "Herne, DE" Location = "EUR|DE|GM011|HERNE" Country = "Germany" +City Name = "Herning, DK" Location = "EUR|DK|DA009|HERNING" Country = "Denmark" +City Name = "Heshan, CN" Location = "ASI|CN|CH006|HESHAN" Country = "China" +City Name = "Hetian, CN" Location = "ASI|CN|CH004|HETIAN" Country = "China" +City Name = "Heyuan, CN" Location = "ASI|CN|CH006|HEYUAN" Country = "China" +City Name = "Heze, CN" Location = "ASI|CN|CH023|HEZE" Country = "China" +City Name = "Hialeah, FL, US" Location = "NAM|US|FL|HIALEAH" Country = "United States" +City Name = "Hibberdene, ZA" Location = "AFR|ZA|SF005|HIBBERDENE" Country = "South Africa" +City Name = "Higashihiroshima, JP" Location = "ASI|JP|JA011|HIGASHIHIROSHIMA" Country = "Japan" +City Name = "Higashikurume, JP" Location = "ASI|JP|JA041|HIGASHIKURUME" Country = "Japan" +City Name = "Higashimurayama, JP" Location = "ASI|JP|JA041|HIGASHIMURAYAMA" Country = "Japan" +City Name = "Higashiosaka, JP" Location = "ASI|JP|JA033|HIGASHIOSAKA" Country = "Japan" +City Name = "Hikone, JP" Location = "ASI|JP|JA036|HIKONE" Country = "Japan" +City Name = "Hildesheim, DE" Location = "EUR|DE|GM009|HILDESHEIM" Country = "Germany" +City Name = "Hilla, IQ" Location = "MEA|IQ|IZ009|HILLA" Country = "Iraq" +City Name = "Hilleroed, DK" Location = "EUR|DK|DA004|HILLEROED" Country = "Denmark" +City Name = "Hillingdon, UK" Location = "EUR|UK|UK001|HILLINGDON" Country = "United Kingdom" +City Name = "Himeji, JP" Location = "ASI|JP|JA013|HIMEJI" Country = "Japan" +City Name = "Hindupur, IN" Location = "ASI|IN|IN002|HINDUPUR" Country = "India" +City Name = "Hino, JP" Location = "ASI|JP|JA041|HINO" Country = "Japan" +City Name = "Hirakata, JP" Location = "ASI|JP|JA033|HIRAKATA" Country = "Japan" +City Name = "Hiratsuka, JP" Location = "ASI|JP|JA019|HIRATSUKA" Country = "Japan" +City Name = "Hirosaki, JP" Location = "ASI|JP|JA003|HIROSAKI" Country = "Japan" +City Name = "Hiroshima, JP" Location = "ASI|JP|JA011|HIROSHIMA" Country = "Japan" +City Name = "Hisar, IN" Location = "ASI|IN|IN013|HISAR" Country = "India" +City Name = "Hitachi, JP" Location = "ASI|JP|JA014|HITACHI" Country = "Japan" +City Name = "Hjoerring, DK" Location = "EUR|DK|DA007|HJOERRING" Country = "Denmark" +City Name = "Hluhluwe, ZA" Location = "AFR|ZA|SF005|HLUHLUWE" Country = "South Africa" +City Name = "Ho, GH" Location = "AFR|GH|GH000|HO" Country = "Ghana" +City Name = "Ho Chi Minh City, VN" Location = "ASI|VN|VM060|HO CHI MINH CITY" Country = "Vietnam" +City Name = "Hobart, AU" Location = "OCN|AU|TAS|HOBART" Country = "Australia" +City Name = "Hodeidah, YE" Location = "MEA|YE|YM004|HODEIDAH" Country = "Yemen" +City Name = "Hoedspruit, ZA" Location = "AFR|ZA|SF009|HOEDSPRUIT" Country = "South Africa" +City Name = "Hoenefoss, NO" Location = "EUR|NO|NO003|HOENEFOSS" Country = "Norway" +City Name = "Hoersholm, DK" Location = "EUR|DK|DA004|HOERSHOLM" Country = "Denmark" +City Name = "Hofu, JP" Location = "ASI|JP|JA046|HOFU" Country = "Japan" +City Name = "Hogsback, ZA" Location = "AFR|ZA|SF002|HOGSBACK" Country = "South Africa" +City Name = "Hohhot, CN" Location = "ASI|CN|CH019|HOHHOT" Country = "China" +City Name = "Holbaek, DK" Location = "EUR|DK|DA015|HOLBAEK" Country = "Denmark" +City Name = "Holguin, CU" Location = "CAC|CU|CU007|HOLGUN" Country = "Cuba" +City Name = "Hollywood, FL, US" Location = "NAM|US|FL|HOLLYWOOD" Country = "United States" +City Name = "Holon, IL" Location = "MEA|IL|IS005|HOLON" Country = "Israel" +City Name = "Holstebro, DK" Location = "EUR|DK|DA009|HOLSTEBRO" Country = "Denmark" +City Name = "Homs, SY" Location = "MEA|SY|SY011|HOMS" Country = "Syria" +City Name = "Hon Gai, VN" Location = "ASI|VN|VM052|HON GAI" Country = "Vietnam" +City Name = "Hondeklip Bay, ZA" Location = "AFR|ZA|SF008|HONDEKLIP BAY" Country = "South Africa" +City Name = "Hong Kong, HK" Location = "ASI|HK|HK---|HONG KONG" Country = "Hong Kong" +City Name = "Honghu, CN" Location = "ASI|CN|CH009|HONGHU" Country = "China" +City Name = "Honiara, SB" Location = "OCN|SB|BP000|HONIARA" Country = "Solomon Islands" +City Name = "Honolulu, HI, US" Location = "NAM|US|HI|HONOLULU" Country = "United States" +City Name = "Horsens, DK" Location = "EUR|DK|DA014|HORSENS" Country = "Denmark" +City Name = "Horsham, UK" Location = "EUR|UK|UK001|HORSHAM" Country = "United Kingdom" +City Name = "Hortolandia, BR" Location = "SAM|BR|BR023|HORTOLANDIA" Country = "Brazil" +City Name = "Hoshiarpur, IN" Location = "ASI|IN|IN028|HOSHIARPUR" Country = "India" +City Name = "Hospet, IN" Location = "ASI|IN|IN017|HOSPET" Country = "India" +City Name = "Houma, CN" Location = "ASI|CN|CH025|HOUMA" Country = "China" +City Name = "Hounslow, UK" Location = "EUR|UK|UK001|HOUNSLOW" Country = "United Kingdom" +City Name = "Houston, TX, US" Location = "NAM|US|TX|HOUSTON" Country = "United States" +City Name = "Howick, ZA" Location = "AFR|ZA|SF005|HOWICK" Country = "South Africa" +City Name = "Hoya, JP" Location = "ASI|JP|JA041|HOYA" Country = "Japan" +City Name = "Hsinchu, TW" Location = "ASI|TW|TW018|HSINCHU" Country = "Taiwan" +City Name = "Huadian, CN" Location = "ASI|CN|CH017|HUADIAN" Country = "China" +City Name = "Huaian, CN" Location = "ASI|CN|CH025|HUAIAN" Country = "China" +City Name = "Huaibei, CN" Location = "ASI|CN|CH001|HUAIBEI" Country = "China" +City Name = "Huaihua, CN" Location = "ASI|CN|CH014|HUAIHUA" Country = "China" +City Name = "Huainan, CN" Location = "ASI|CN|CH004|HUAINAN" Country = "China" +City Name = "Huaiyin, CN" Location = "ASI|CN|CH015|HUAIYIN" Country = "China" +City Name = "Hualien, TW" Location = "ASI|TW|TW018|HUALIEN" Country = "Taiwan" +City Name = "Huambo, AO" Location = "AFR|AO|AO002|HUAMBO" Country = "Angola" +City Name = "Huancayo, PE" Location = "SAM|PE|PE012|HUANCAYO" Country = "Peru" +City Name = "Huanghua, CN" Location = "ASI|CN|CH010|HUANGHUA" Country = "China" +City Name = "Huangshan, CN" Location = "ASI|CN|CH023|HUANGSHAN" Country = "China" +City Name = "Huangshi, CN" Location = "ASI|CN|CH001|HUANGSHI" Country = "China" +City Name = "Huanuco, PE" Location = "SAM|PE|PE010|HUNUCO" Country = "Peru" +City Name = "Huaying, CN" Location = "ASI|CN|CH026|HUAYING" Country = "China" +City Name = "Hubli, IN" Location = "ASI|IN|IN017|HUBLI-DHARWAD" Country = "India" +City Name = "Hue, VN" Location = "ASI|VN|VM044|HU" Country = "Vietnam" +City Name = "Huelva, ES" Location = "EUR|ES|SP001|HUELVA" Country = "Spain" +City Name = "Huixian, CN" Location = "ASI|CN|CH005|HUIXIAN" Country = "China" +City Name = "Huizhou, CN" Location = "ASI|CN|CH006|HUIZHOU" Country = "China" +City Name = "Huludao, CN" Location = "ASI|CN|CH018|HULUDAO" Country = "China" +City Name = "Hunjiang, CN" Location = "ASI|CN|CH017|HUNJIANG" Country = "China" +City Name = "Huntington Beach, CA, US" Location = "NAM|US|CA|HUNTINGTON BEACH" Country = "United States" +City Name = "Huntsville, AL, US" Location = "NAM|US|AL|HUNTSVILLE" Country = "United States" +City Name = "Huzhou, CN" Location = "ASI|CN|CH031|HUZHOU" Country = "China" +City Name = "Hyderabad, IN" Location = "ASI|IN|IN002|HYDERABAD" Country = "India" +City Name = "Hyderabad, PK" Location = "ASI|PK|PK007|HYDERABAD" Country = "Pakistan" +City Name = "Hyesan, KP" Location = "ASI|KP|KN013|HYESAN" Country = "North Korea" +City Name = "Iasi, RO" Location = "EUR|RO|RO025|IASI" Country = "Romania" +City Name = "Ibadan, NG" Location = "AFR|NG|NI029|IBADAN" Country = "Nigeria" +City Name = "Ibague, CO" Location = "SAM|CO|CO026|IBAGU" Country = "Colombia" +City Name = "Ibaraki, JP" Location = "ASI|JP|JA033|IBARAKI" Country = "Japan" +City Name = "Ibarra, EC" Location = "SAM|EC|EC011|IBARRA" Country = "Ecuador" +City Name = "Ibirite, BR" Location = "SAM|BR|BR012|IBIRIT" Country = "Brazil" +City Name = "Ica, PE" Location = "SAM|PE|PE011|ICA" Country = "Peru" +City Name = "Icel, TR" Location = "MEA|TR|TU037|IEL" Country = "Turkey" +City Name = "Ichihara, JP" Location = "ASI|JP|JA004|ICHIHARA" Country = "Japan" +City Name = "Ichikawa, JP" Location = "ASI|JP|JA004|ICHIKAWA" Country = "Japan" +City Name = "Ichinomiya, JP" Location = "ASI|JP|JA001|ICHINOMIYA" Country = "Japan" +City Name = "Idre, SE" Location = "EUR|SE|SW002|IDRE" Country = "Sweden" +City Name = "Ife, NG" Location = "AFR|NG|NI000|IFE" Country = "Nigeria" +City Name = "Ikeda, JP" Location = "ASI|JP|JA029|IKEDA" Country = "Japan" +City Name = "Ikere-Ekiti, NG" Location = "AFR|NG|NI000|IKERE-EKITI" Country = "Nigeria" +City Name = "Ikoma, JP" Location = "ASI|JP|JA028|IKOMA" Country = "Japan" +City Name = "Ila, NG" Location = "AFR|NG|NI000|ILA" Country = "Nigeria" +City Name = "Ilam, IR" Location = "MEA|IR|IR012|ILAM" Country = "Iran" +City Name = "Ilesha, NG" Location = "AFR|NG|NI000|ILESHA" Country = "Nigeria" +City Name = "Ilheus, BR" Location = "SAM|BR|BR005|ILHUS" Country = "Brazil" +City Name = "Iligan, PH" Location = "ASI|PH|RP052|ILIGAN" Country = "Philippines" +City Name = "Iloilo, PH" Location = "ASI|PH|RP055|ILOILO" Country = "Philippines" +City Name = "Ilopango, SV" Location = "CAC|SV|ES010|ILOPANGO" Country = "El Salvador" +City Name = "Ilorin, NG" Location = "AFR|NG|NI000|ILORIN" Country = "Nigeria" +City Name = "Imabari, JP" Location = "ASI|JP|JA005|IMABARI" Country = "Japan" +City Name = "Imbaba, EG" Location = "AFR|EG|EG008|IMBABA" Country = "Egypt" +City Name = "Imperatriz, BR" Location = "SAM|BR|BR009|IMPERATRIZ" Country = "Brazil" +City Name = "Imphal, IN" Location = "ASI|IN|IN022|IMPHAL" Country = "India" +City Name = "Inazawa, JP" Location = "ASI|JP|JA001|INAZAWA" Country = "Japan" +City Name = "Inchon, KP" Location = "ASI|KP|KN007|INCHON" Country = "North Korea" +City Name = "Indaiatuba, BR" Location = "SAM|BR|BR023|INDAIATUBA" Country = "Brazil" +City Name = "Independence, MO, US" Location = "NAM|US|MO|INDEPENDENCE" Country = "United States" +City Name = "Indianapolis, IN, US" Location = "NAM|US|IN|INDIANAPOLIS" Country = "United States" +City Name = "Indore, IN" Location = "ASI|IN|IN020|INDORE" Country = "India" +City Name = "Inglewood, CA, US" Location = "NAM|US|CA|INGLEWOOD" Country = "United States" +City Name = "Ingolstadt, DE" Location = "EUR|DE|GM002|INGOLSTADT" Country = "Germany" +City Name = "Inhaca Island, MZ" Location = "AFR|MZ|MZ005|INHACA ISLAND" Country = "Mozambique" +City Name = "Inhambane, MZ" Location = "AFR|MZ|MZ003|INHAMBANE" Country = "Mozambique" +City Name = "Inhasoro, MZ" Location = "AFR|MZ|MZ003|INHASORO" Country = "Mozambique" +City Name = "Innsbruck, AT" Location = "EUR|AT|AU007|INNSBRUCK" Country = "Austria" +City Name = "Ipatinga, BR" Location = "SAM|BR|BR012|IPATINGA" Country = "Brazil" +City Name = "Ipoh, MY" Location = "ASI|MY|MY008|IPOH" Country = "Malaysia" +City Name = "Ipswich, UK" Location = "EUR|UK|UK001|IPSWICH" Country = "United Kingdom" +City Name = "Iquique, CL" Location = "SAM|CL|CI012|IQUIQUE" Country = "Chile" +City Name = "Iquitos, PE" Location = "SAM|PE|PE016|IQUITOS" Country = "Peru" +City Name = "Iraclion, GR" Location = "EUR|GR|GR020|IRACLION" Country = "Greece" +City Name = "Irapuato, MX" Location = "NAM|MX|MX011|IRAPUATO" Country = "Mexico" +City Name = "Irbid, JO" Location = "MEA|JO|JO009|IRBID" Country = "Jordan" +City Name = "Iri, KR" Location = "ASI|KR|KS004|IRI" Country = "South Korea" +City Name = "Irkutsk, RU" Location = "ASI|RU|RS021|IRKUTSK" Country = "Russia" +City Name = "Irvine, CA, US" Location = "NAM|US|CA|IRVINE" Country = "United States" +City Name = "Irving, TX, US" Location = "NAM|US|TX|IRVING" Country = "United States" +City Name = "Ise, JP" Location = "ASI|JP|JA023|ISE" Country = "Japan" +City Name = "Isesaki, JP" Location = "ASI|JP|JA010|ISESAKI" Country = "Japan" +City Name = "Ishinomaki, JP" Location = "ASI|JP|JA024|ISHINOMAKI" Country = "Japan" +City Name = "Iskenderun, TR" Location = "MEA|TR|TU036|ISKENDERUN" Country = "Turkey" +City Name = "Islamabad, PK" Location = "ASI|PK|PK004|ISLAMABAD" Country = "Pakistan" +City Name = "Islington, UK" Location = "EUR|UK|UK001|ISLINGTON" Country = "United Kingdom" +City Name = "Ismailia, EG" Location = "AFR|EG|EG007|ISMAILIA" Country = "Egypt" +City Name = "Isparta, TR" Location = "MEA|TR|TU039|ISPARTA" Country = "Turkey" +City Name = "Istanbul, TR" Location = "MEA|TR|TU040|ISTANBUL" Country = "Turkey" +City Name = "Ist-Kamenogorsk, KZ" Location = "ASI|KZ|KZ014|IST-KAMENOGORSK" Country = "Kazakhstan" +City Name = "Itabori, BR" Location = "SAM|BR|BR017|ITABORA" Country = "Brazil" +City Name = "Itabuna, BR" Location = "SAM|BR|BR005|ITABUNA" Country = "Brazil" +City Name = "Itagui, CO" Location = "SAM|CO|CO002|ITAG" Country = "Colombia" +City Name = "Itaituba, BR" Location = "SAM|BR|BR013|ITAITUBA" Country = "Brazil" +City Name = "Itajai, BR" Location = "SAM|BR|BR022|ITAJA" Country = "Brazil" +City Name = "Itami, JP" Location = "ASI|JP|JA013|ITAMI" Country = "Japan" +City Name = "Itapecerica Da Serra, BR" Location = "SAM|BR|BR023|ITAPECERICA DA SERRA" Country = "Brazil" +City Name = "Itapetininga, BR" Location = "SAM|BR|BR026|ITAPETININGA" Country = "Brazil" +City Name = "Itapevi, BR" Location = "SAM|BR|BR023|ITAPEVI" Country = "Brazil" +City Name = "Itaquaquecetuba, BR" Location = "SAM|BR|BR023|ITAQUAQUECETUBA" Country = "Brazil" +City Name = "Itu, BR" Location = "SAM|BR|BR023|ITU" Country = "Brazil" +City Name = "Ivano-Frankovsk, UA" Location = "EUR|UA|UP005|IVANO-FRANKOVSK" Country = "Ukraine" +City Name = "Ivanovo, RU" Location = "ASI|RU|RS023|IVANOVO" Country = "Russia" +City Name = "Iwakuni, JP" Location = "ASI|JP|JA046|IWAKUNI" Country = "Japan" +City Name = "Iwatsuki, JP" Location = "ASI|JP|JA035|IWATSUKI" Country = "Japan" +City Name = "Iwo, NG" Location = "AFR|NG|NI000|IWO" Country = "Nigeria" +City Name = "Ixopo, ZA" Location = "AFR|ZA|SF005|IXOPO" Country = "South Africa" +City Name = "Izhevsk, RU" Location = "ASI|RU|RS084|IZHEVSK" Country = "Russia" +City Name = "Izmir, TR" Location = "MEA|TR|TU041|IZMIR" Country = "Turkey" +City Name = "Izumi, JP" Location = "ASI|JP|JA033|IZUMI" Country = "Japan" +City Name = "Jabalpur, IN" Location = "ASI|IN|IN020|JABALPUR" Country = "India" +City Name = "Jacarei, BR" Location = "SAM|BR|BR023|JACARE" Country = "Brazil" +City Name = "Jackson, MS, US" Location = "NAM|US|MS|JACKSON" Country = "United States" +City Name = "Jackson, WY, US" Location = "NAM|US|WY|JACKSON" Country = "United States" +City Name = "Jackson, MI, US" Location = "NAM|US|MI|Jackson" Country = "United States" +City Name = "Jacksonville, FL, US" Location = "NAM|US|FL|JACKSONVILLE" Country = "United States" +City Name = "Jacobabad, PK" Location = "ASI|PK|PK008|JACOBABAD" Country = "Pakistan" +City Name = "Jacobsdal, ZA" Location = "AFR|ZA|SF003|JACOBSDAL" Country = "South Africa" +City Name = "Jaen, ES" Location = "EUR|ES|SP001|JAN" Country = "Spain" +City Name = "Jaffna, LK" Location = "ASI|LK|CE010|JAFFNA" Country = "Sri Lanka" +City Name = "Jaipur, IN" Location = "ASI|IN|IN029|JAIPUR" Country = "India" +City Name = "Jakarta, ID" Location = "ASI|ID|ID009|JAKARTA" Country = "Indonesia" +City Name = "Jalandhar, IN" Location = "ASI|IN|IN028|JALANDHAR" Country = "India" +City Name = "Jalapa, MX" Location = "NAM|MX|MX027|JALAPA" Country = "Mexico" +City Name = "Jalgaon, IN" Location = "ASI|IN|IN021|JALGAON" Country = "India" +City Name = "Jalib as-Suyuh, KW" Location = "MEA|KW|KU000|JALIB AS-SUYUH" Country = "Kuwait" +City Name = "Jalna, IN" Location = "ASI|IN|IN021|JALNA" Country = "India" +City Name = "Jamalpur, BD" Location = "ASI|BD|BG004|JAMALPUR" Country = "Bangladesh" +City Name = "Jambi, ID" Location = "ASI|ID|ID010|JAMBI" Country = "Indonesia" +City Name = "Jamestown, SH" Location = "AFR|SH|SH000|JAMESTOWN" Country = "Saint Helena" +City Name = "Jamnagar, IN" Location = "ASI|IN|IN012|JAMNAGAR" Country = "India" +City Name = "Jamshedpur, IN" Location = "ASI|IN|IN005|JAMSHEDPUR" Country = "India" +City Name = "Jaragua, BR" Location = "SAM|BR|BR022|JARAGU DO SUL" Country = "Brazil" +City Name = "Jaranwala, PK" Location = "ASI|PK|PK007|JARANWALA" Country = "Pakistan" +City Name = "Jastrzebie, PL" Location = "EUR|PL|PL012|JASTRZEBIE-ZDRJ" Country = "Poland" +City Name = "Jau, BR" Location = "SAM|BR|BR023|JA" Country = "Brazil" +City Name = "Jaunpur, IN" Location = "ASI|IN|IN033|JAUNPUR" Country = "India" +City Name = "Jbeil, LB" Location = "MEA|LB|LE005|JBEIL" Country = "Lebanon" +City Name = "Jeddah, SA" Location = "MEA|SA|SA011|JEDDAH" Country = "Saudi Arabia" +City Name = "Jefferson City, MO, US" Location = "NAM|US|MO|JEFFERSON CITY" Country = "United States" +City Name = "Jequie, BR" Location = "SAM|BR|BR023|JEQUI" Country = "Brazil" +City Name = "Jerez, ES" Location = "EUR|ES|SP001|JREZ DE LA FRONTERA" Country = "Spain" +City Name = "Jersey City, NJ, US" Location = "NAM|US|NJ|JERSEY CITY" Country = "United States" +City Name = "Jerusalem, IL" Location = "MEA|IL|IS006|JERUSALEM" Country = "Israel" +City Name = "Jessore, BD" Location = "ASI|BD|BG003|JESSORE" Country = "Bangladesh" +City Name = "Jhang, PK" Location = "ASI|PK|PK007|JHANG" Country = "Pakistan" +City Name = "Jhansi, IN" Location = "ASI|IN|IN033|JHANSI" Country = "India" +City Name = "Jhelum, PK" Location = "ASI|PK|PK007|JHELUM" Country = "Pakistan" +City Name = "Jiageda, CN" Location = "ASI|CN|CH019|JIAGEDA" Country = "China" +City Name = "Jiamusi, CN" Location = "ASI|CN|CH011|JIAMUSI" Country = "China" +City Name = "Jian, CN" Location = "ASI|CN|CH016|JIAN" Country = "China" +City Name = "Jiangmen, CN" Location = "ASI|CN|CH006|JIANGMEN" Country = "China" +City Name = "Jiangshan, CN" Location = "ASI|CN|CH001|JIANGSHAN" Country = "China" +City Name = "Jiangyin, CN" Location = "ASI|CN|CH004|JIANGYIN" Country = "China" +City Name = "Jiangyou, CN" Location = "ASI|CN|CH026|JIANGYOU" Country = "China" +City Name = "Jiaojiang, CN" Location = "ASI|CN|CH031|JIAOJIANG" Country = "China" +City Name = "Jiaozhou, CN" Location = "ASI|CN|CH023|JIAOZHOU" Country = "China" +City Name = "Jiaozuo, CN" Location = "ASI|CN|CH012|JIAOZUO" Country = "China" +City Name = "Jiaxing, CN" Location = "ASI|CN|CH031|JIAXING" Country = "China" +City Name = "Jieshou, CN" Location = "ASI|CN|CH001|JIESHOU" Country = "China" +City Name = "Jilin, CN" Location = "ASI|CN|CH007|JILIN" Country = "China" +City Name = "Jimma, ET" Location = "AFR|ET|ET000|JIMMA" Country = "Ethiopia" +City Name = "Jimo, CN" Location = "ASI|CN|CH023|JIMO" Country = "China" +City Name = "Jinan, CN" Location = "ASI|CN|CH007|JINAN" Country = "China" +City Name = "Jinchang, CN" Location = "ASI|CN|CH005|JINCHANG" Country = "China" +City Name = "Jingdezhen, CN" Location = "ASI|CN|CH016|JINGDEZHEN" Country = "China" +City Name = "Jingmen, CN" Location = "ASI|CN|CH004|JINGMEN" Country = "China" +City Name = "Jingzhou, CN" Location = "ASI|CN|CH013|JINGZHOU" Country = "China" +City Name = "Jinhua, CN" Location = "ASI|CN|CH008|JINHUA" Country = "China" +City Name = "Jining, CN" Location = "ASI|CN|CH019|JINING" Country = "China" +City Name = "Jinja, UG" Location = "AFR|UG|UG000|JINJA" Country = "Uganda" +City Name = "Jinshi, CN" Location = "ASI|CN|CH031|JINSHI" Country = "China" +City Name = "Jinxi, CN" Location = "ASI|CN|CH016|JINXI" Country = "China" +City Name = "Jinzhou, CN" Location = "ASI|CN|CH018|JINZHOU" Country = "China" +City Name = "Jishou, CN" Location = "ASI|CN|CH014|JISHOU" Country = "China" +City Name = "Jiujiang, CN" Location = "ASI|CN|CH016|JIUJIANG" Country = "China" +City Name = "Jiuquan, CN" Location = "ASI|CN|CH005|JIUQUAN" Country = "China" +City Name = "Jiutai, CN" Location = "ASI|CN|CH008|JIUTAI" Country = "China" +City Name = "Jixi, CN" Location = "ASI|CN|CH001|JIXI" Country = "China" +City Name = "Jiyuan, CN" Location = "ASI|CN|CH012|JIYUAN" Country = "China" +City Name = "Joao Pessoa, BR" Location = "SAM|BR|BR014|JOAO PESSOA" Country = "Brazil" +City Name = "Jodhpur, IN" Location = "ASI|IN|IN029|JODHPUR" Country = "India" +City Name = "Joenkoeping, SE" Location = "EUR|SE|SW007|JOENKOEPING" Country = "Sweden" +City Name = "Joetsu, JP" Location = "ASI|JP|JA029|JOETSU" Country = "Japan" +City Name = "Johannesburg, ZA" Location = "AFR|ZA|SF004|JOHANNESBURG" Country = "South Africa" +City Name = "Johore Bharu, MY" Location = "ASI|MY|MY001|JOHORE BHARU" Country = "Malaysia" +City Name = "Joinville, BR" Location = "SAM|BR|BR022|JOINVILLE" Country = "Brazil" +City Name = "Joliet, IL, US" Location = "NAM|US|IL|JOLIET" Country = "United States" +City Name = "Jorhat, IN" Location = "ASI|IN|IN004|JORHAT" Country = "India" +City Name = "Joubertina, ZA" Location = "AFR|ZA|SF002|JOUBERTINA" Country = "South Africa" +City Name = "Juarez, MX" Location = "NAM|MX|MX015|CIUDAD JUREZ" Country = "Mexico" +City Name = "Juazeiro, BR" Location = "SAM|BR|BR005|JUAZEIRO" Country = "Brazil" +City Name = "Juazeiro do Norte, BR" Location = "SAM|BR|BR006|JUZEIRO DO NORTE" Country = "Brazil" +City Name = "Juba, SD" Location = "AFR|SD|SU027|JUBA" Country = "Sudan" +City Name = "Juiz De Fora, BR" Location = "SAM|BR|BR012|JUIZ DE FORA" Country = "Brazil" +City Name = "Juliaca, PE" Location = "SAM|PE|PE021|JULIACA" Country = "Peru" +City Name = "Junagadh, IN" Location = "ASI|IN|IN012|JUNAGADH" Country = "India" +City Name = "Jundiai, BR" Location = "SAM|BR|BR023|JUNDIA" Country = "Brazil" +City Name = "Juneau, AK, US" Location = "NAM|US|AK|JUNEAU" Country = "United States" +City Name = "Kabul, AF" Location = "ASI|AF|AF013|KABUL" Country = "Afghanistan" +City Name = "Kabwe, ZM" Location = "AFR|ZM|ZA007|KABWE" Country = "Zambia" +City Name = "Kadhimain, IQ" Location = "MEA|IQ|IZ010|KADHIMAIN" Country = "Iraq" +City Name = "Kadoma, JP" Location = "ASI|JP|JA033|KADOMA" Country = "Japan" +City Name = "Kaduna, NG" Location = "AFR|NG|NI019|KADUNA" Country = "Nigeria" +City Name = "Kaesong, KP" Location = "ASI|KR|KS001|KAESONG" Country = "North Korea" +City Name = "Kagoshima, JP" Location = "ASI|JP|JA018|KAGOSHIMA" Country = "Japan" +City Name = "Kahramanmaras, TR" Location = "MEA|TR|TU042|KAHRAMANMARAS" Country = "Turkey" +City Name = "Kaifeng, CN" Location = "ASI|CN|CH012|KAIFENG" Country = "China" +City Name = "Kaili, CN" Location = "ASI|CN|CH008|KAILI" Country = "China" +City Name = "Kairouan, TN" Location = "AFR|TN|TS005|KAIROUAN" Country = "Tunisia" +City Name = "Kaiserslautern, DE" Location = "EUR|DE|GM012|KAISERSLAUTERN" Country = "Germany" +City Name = "Kaiyuan, CN" Location = "ASI|CN|CH018|KAIYUAN" Country = "China" +City Name = "Kakamas, ZA" Location = "AFR|ZA|SF008|KAKAMAS" Country = "South Africa" +City Name = "Kakamigahara, JP" Location = "ASI|JP|JA009|KAKAMIGAHARA" Country = "Japan" +City Name = "Kakinada, IN" Location = "ASI|IN|IN002|KAKINADA" Country = "India" +City Name = "Kakogawa, JP" Location = "ASI|JP|JA013|KAKOGAWA" Country = "Japan" +City Name = "Kaliningrad, RU" Location = "ASI|RU|RS025|KALININGRAD" Country = "Russia" +City Name = "Kalisz, PL" Location = "EUR|PL|PL015|KALISZ" Country = "Poland" +City Name = "Kalmar, SE" Location = "EUR|SE|SW008|KALMAR" Country = "Sweden" +City Name = "Kaluga, RU" Location = "ASI|RU|RS027|KALUGA" Country = "Russia" +City Name = "Kalyan, IN" Location = "ASI|IN|IN021|KALYAN" Country = "India" +City Name = "Kamagaya, JP" Location = "ASI|JP|JA004|KAMAGAYA" Country = "Japan" +City Name = "Kamarhati, IN" Location = "ASI|IN|IN036|KAMARHATI" Country = "India" +City Name = "Kamenskiy, RU" Location = "ASI|RU|RS075|KAMENSK-URALSKY" Country = "Russia" +City Name = "Kamieskroon, ZA" Location = "AFR|ZA|SF008|KAMIESKROON" Country = "South Africa" +City Name = "Kamoke, PK" Location = "ASI|PK|PK007|KAMOKE" Country = "Pakistan" +City Name = "Kampala, UG" Location = "AFR|UG|UG000|KAMPALA" Country = "Uganda" +City Name = "Kampong Cham, KH" Location = "ASI|KH|CB003|KAMPONG CHAM" Country = "Cambodia" +City Name = "Kamptee, IN" Location = "ASI|IN|IN021|KAMPTEE" Country = "India" +City Name = "Kananga, CD" Location = "AFR|CD|CG004|KANANGA" Country = "Kinshasa" +City Name = "Kanazawa, JP" Location = "ASI|JP|JA015|KANAZAWA" Country = "Japan" +City Name = "Kanchanaburi, TH" Location = "ASI|TH|TH014|KANCHANABURI" Country = "Thailand" +City Name = "Kanchipuram, IN" Location = "ASI|IN|IN031|KANCHIPURAM" Country = "India" +City Name = "Kanchrapara, IN" Location = "ASI|IN|IN036|KANCHRAPARA" Country = "India" +City Name = "Kandahar, AF" Location = "ASI|AF|AF014|KANDAHAR" Country = "Afghanistan" +City Name = "Kandy, LK" Location = "ASI|LK|CE001|KANDY" Country = "Sri Lanka" +City Name = "Kanggye, KP" Location = "ASI|KP|KN001|KANGGYE" Country = "North Korea" +City Name = "Kangnung, KR" Location = "ASI|KR|KS007|KANGNUNG" Country = "South Korea" +City Name = "Kanhangad, IN" Location = "ASI|IN|IN018|KANHANGAD" Country = "India" +City Name = "Kannur, IN" Location = "ASI|IN|IN018|KANNUR" Country = "India" +City Name = "Kano, NG" Location = "AFR|NG|NI020|KANO" Country = "Nigeria" +City Name = "Kanpur, IN" Location = "ASI|IN|IN033|KANPUR" Country = "India" +City Name = "Kansas City, MO, US" Location = "NAM|US|MO|KANSAS CITY" Country = "United States" +City Name = "Kansas City, KS, US" Location = "NAM|US|KS|KANSAS CITY" Country = "United States" +City Name = "Kansk, RU" Location = "ASI|RU|RS041|KANSK" Country = "Russia" +City Name = "Kanye, BW" Location = "AFR|BW|BC000|KANYE" Country = "Botswana" +City Name = "Kao-Hsiung, TW" Location = "ASI|TW|TW006|KAO-HSIUNG" Country = "Taiwan" +City Name = "Kaolack, SN" Location = "AFR|SN|SG004|KAOLACK" Country = "Senegal" +City Name = "Karabuk, TR" Location = "MEA|TR|TU000|KARABUK" Country = "Turkey" +City Name = "Karachi, PK" Location = "ASI|PK|PK008|KARACHI" Country = "Pakistan" +City Name = "Karaganda, KZ" Location = "ASI|KZ|KZ000|KARAGANDA" Country = "Kazakhstan" +City Name = "Karaikkudi, IN" Location = "ASI|IN|IN031|KARAIKKUDI" Country = "India" +City Name = "Karaj, IR" Location = "MEA|IR|IR026|KARAJ" Country = "Iran" +City Name = "Karaman, TR" Location = "MEA|TR|TU044|KARAMAN" Country = "Turkey" +City Name = "Karimnagar, IN" Location = "ASI|IN|IN002|KARIMNAGAR" Country = "India" +City Name = "Kariya, JP" Location = "ASI|JP|JA001|KARIYA" Country = "Japan" +City Name = "Karlskrona, SE" Location = "EUR|SE|SW001|KARLSKRONA" Country = "Sweden" +City Name = "Karlsruhe, DE" Location = "EUR|DE|GM001|KARLSRUHE" Country = "Germany" +City Name = "Karlstad, SE" Location = "EUR|SE|SW017|KARLSTAD" Country = "Sweden" +City Name = "Karnal, IN" Location = "ASI|IN|IN013|KARNAL" Country = "India" +City Name = "Karradah Sharqiyah, IQ" Location = "MEA|IQ|IZ010|KARRADAH SHARQIYAH" Country = "Iraq" +City Name = "Karshi, UZ" Location = "ASI|UZ|UZ008|KARSHI" Country = "Uzbekistan" +City Name = "Karur, IN" Location = "ASI|IN|IN031|KARUR" Country = "India" +City Name = "Kasane, BW" Location = "AFR|BW|BC000|KASANE" Country = "Botswana" +City Name = "Kashan, IR" Location = "MEA|IR|IR006|KASHAN" Country = "Iran" +City Name = "Kashi, CN" Location = "ASI|CN|CH028|KASHI" Country = "China" +City Name = "Kashihara, JP" Location = "ASI|JP|JA028|KASHIHARA" Country = "Japan" +City Name = "Kashiwa, JP" Location = "ASI|JP|JA004|KASHIWA" Country = "Japan" +City Name = "Kassala, SD" Location = "AFR|SD|SU029|KASSALA" Country = "Sudan" +City Name = "Kassel, DE" Location = "EUR|DE|GM007|KASSEL" Country = "Germany" +City Name = "Kasukabe, JP" Location = "ASI|JP|JA035|KASUKABE" Country = "Japan" +City Name = "Kasur, PK" Location = "ASI|PK|PK007|KASUR" Country = "Pakistan" +City Name = "Kathmandu, NP" Location = "ASI|NP|NP000|KATHMANDU" Country = "Nepal" +City Name = "Katihar, IN" Location = "ASI|IN|IN005|KATIHAR" Country = "India" +City Name = "Katowice, PL" Location = "EUR|PL|PL012|KATOWICE" Country = "Poland" +City Name = "Kaunas, LT" Location = "EUR|LT|LH013|KAUNAS" Country = "Lithuania" +City Name = "Kawachinagano, JP" Location = "ASI|JP|JA033|KAWACHINAGANO" Country = "Japan" +City Name = "Kawagoe, JP" Location = "ASI|JP|JA035|KAWAGOE" Country = "Japan" +City Name = "Kawaguchi, JP" Location = "ASI|JP|JA035|KAWAGUCHI" Country = "Japan" +City Name = "Kawasaki, JP" Location = "ASI|JP|JA019|KAWASAKI" Country = "Japan" +City Name = "Kayseri, TR" Location = "MEA|TR|TU047|KAYSERI" Country = "Turkey" +City Name = "Kazan, RU" Location = "ASI|RU|RS077|KAZAN" Country = "Russia" +City Name = "Kecskemet, HU" Location = "EUR|HU|HU001|KECSKEMT" Country = "Hungary" +City Name = "Kediri, ID" Location = "ASI|ID|ID002|KEDIRI" Country = "Indonesia" +City Name = "Keelung, TW" Location = "ASI|TW|TW018|KEELUNG" Country = "Taiwan" +City Name = "Kelamayi, CN" Location = "ASI|CN|CH028|KELAMAYI" Country = "China" +City Name = "Kelowna, CA" Location = "NAM|CA|BC|KELOWNA" Country = "Canada" +City Name = "Kemerovo, RU" Location = "ASI|RU|RS031|KEMEROVO" Country = "Russia" +City Name = "Kempton Park, ZA" Location = "AFR|ZA|SF004|KEMPTON PARK" Country = "South Africa" +City Name = "Kena, EG" Location = "AFR|EG|EG024|KENA" Country = "Egypt" +City Name = "Kenitra, MA" Location = "AFR|MA|MO019|KNITRA" Country = "Morocco" +City Name = "Kensington and Chelsea, UK" Location = "EUR|UK|UK001|KENSINGTON AND CHELSEA" Country = "United Kingdom" +City Name = "Kerbala, IQ" Location = "MEA|IQ|IZ014|KERBALA" Country = "Iraq" +City Name = "Keriat Shmona, IL" Location = "MEA|IL|IS003|KERIAT SHMONA" Country = "Israel" +City Name = "Kerman, IR" Location = "MEA|IR|IR013|KERMAN" Country = "Iran" +City Name = "Kermanshah, IR" Location = "MEA|IR|IR014|KERMANSHAH" Country = "Iran" +City Name = "Kertch, UA" Location = "EUR|UA|UP011|KERTCH" Country = "Ukraine" +City Name = "Khabarovsk, RU" Location = "ASI|RU|RS032|KHABAROVSK" Country = "Russia" +City Name = "Khairpur, PK" Location = "ASI|PK|PK008|KHAIRPUR" Country = "Pakistan" +City Name = "Khammam, IN" Location = "ASI|IN|IN002|KHAMMAM" Country = "India" +City Name = "Khandwa, IN" Location = "ASI|IN|IN020|KHANDWA" Country = "India" +City Name = "Khanewal, PK" Location = "ASI|PK|PK007|KHANEWAL" Country = "Pakistan" +City Name = "Khanpur, PK" Location = "ASI|PK|PK007|KHANPUR" Country = "Pakistan" +City Name = "Khanty-Mansiysk, RU" Location = "ASI|RU|RS034|KHANTY-MANSIYSK" Country = "Russia" +City Name = "Kharagpur, IN" Location = "ASI|IN|IN005|KHARAGPUR" Country = "India" +City Name = "Khartoum, SD" Location = "AFR|SD|SU005|KHARTOUM" Country = "Sudan" +City Name = "Khartoum North, SD" Location = "AFR|SD|SU005|KHARTOUM NORTH" Country = "Sudan" +City Name = "Kherson, UA" Location = "EUR|UA|UP007|KHERSON" Country = "Ukraine" +City Name = "Khimki, RU" Location = "ASI|RU|RS052|KHIMKI" Country = "Russia" +City Name = "Khmelnitsky, UA" Location = "EUR|UA|UP008|KHMELNITSKY" Country = "Ukraine" +City Name = "Khon Kaen, TH" Location = "ASI|TH|TH015|KHON KAEN" Country = "Thailand" +City Name = "Khouribga, MA" Location = "AFR|MA|MO022|KHOURIBGA" Country = "Morocco" +City Name = "Khulna, BD" Location = "ASI|BD|BG003|KHULNA" Country = "Bangladesh" +City Name = "Kiel, DE" Location = "EUR|DE|GM016|KIEL" Country = "Germany" +City Name = "Kielce, PL" Location = "EUR|PL|PL013|KIELCE" Country = "Poland" +City Name = "Kiev, UA" Location = "EUR|UA|UP009|KIEV" Country = "Ukraine" +City Name = "Kigali, RW" Location = "AFR|RW|RW009|KIGALI" Country = "Rwanda" +City Name = "Kikwit, CD" Location = "AFR|CD|CG001|KIKWIT" Country = "Kinshasa" +City Name = "Kimberley, ZA" Location = "AFR|ZA|SF008|KIMBERLEY" Country = "South Africa" +City Name = "Kimhae, KR" Location = "ASI|KR|KS011|KIMHAE" Country = "South Korea" +City Name = "King Williams Town, ZA" Location = "AFR|ZA|SF002|KING WILLIAMS TOWN" Country = "South Africa" +City Name = "Kings Lynn and West Norfolk, UK" Location = "EUR|UK|UK001|KINGS LYNN AND WEST NORFOLK" Country = "United Kingdom" +City Name = "Kingston, CA" Location = "NAM|CA|ON|KINGSTON" Country = "Canada" +City Name = "Kingston, JM" Location = "CAC|JM|JM000|KINGSTON" Country = "Jamaica" +City Name = "Kingston-Upon-Hull, UK" Location = "EUR|UK|UK001|KINGSTON-UPON-HULL" Country = "United Kingdom" +City Name = "Kingston-Upon-Thames, UK" Location = "EUR|UK|UK001|KINGSTON-UPON-THAMES" Country = "United Kingdom" +City Name = "Kingstown, VC" Location = "CAC|VC|VC005|KINGSTOWN" Country = "Saint Vincent And The Grenadines" +City Name = "Kinshasa, CD" Location = "AFR|CD|CG007|KINSHASA" Country = "Democratic Republic of Congo" +City Name = "Kirikkale, TR" Location = "MEA|TR|TU000|KIRIKKALE" Country = "Turkey" +City Name = "Kirklees, UK" Location = "EUR|UK|UK001|KIRKLEES" Country = "United Kingdom" +City Name = "Kirkuk, IQ" Location = "MEA|IQ|IZ008|KIRKUK" Country = "Iraq" +City Name = "Kirov, RU" Location = "ASI|RU|RS035|KIROV" Country = "Russia" +City Name = "Kirovakan, AM" Location = "ASI|AM|AM006|KIROVAKAN" Country = "Armenia" +City Name = "Kirovograd, UA" Location = "EUR|UA|UP010|KIROVOGRAD" Country = "Ukraine" +City Name = "Kiruna, SE" Location = "EUR|SE|SW010|KIRUNA" Country = "Sweden" +City Name = "Kiryu, JP" Location = "ASI|JP|JA010|KIRYU" Country = "Japan" +City Name = "Kisangani, CD" Location = "AFR|CD|CG010|KISANGANI" Country = "Kinshasa" +City Name = "Kisarazu, JP" Location = "ASI|JP|JA004|KISARAZU" Country = "Japan" +City Name = "Kiselevsk, RU" Location = "ASI|RU|RS031|KISELEVSK" Country = "Russia" +City Name = "Kishinev, MD" Location = "EUR|MD|MD000|KISHINEV" Country = "Moldova" +City Name = "Kishiwada, JP" Location = "ASI|JP|JA033|KISHIWADA" Country = "Japan" +City Name = "Kislovodsk, RU" Location = "ASI|RU|RS074|KISLOVODSK" Country = "Russia" +City Name = "Kisumu, KE" Location = "AFR|KE|KE006|KISUMU" Country = "Kenya" +City Name = "Kitakyushu, JP" Location = "ASI|JP|JA007|KITAKYUSHU" Country = "Japan" +City Name = "Kitale, KE" Location = "AFR|KE|KE007|KITALE" Country = "Kenya" +City Name = "Kitami, JP" Location = "ASI|JP|JA012|KITAMI" Country = "Japan" +City Name = "Kitchener, CA" Location = "NAM|CA|ON|KITCHENER" Country = "Canada" +City Name = "Kitwe, ZM" Location = "AFR|ZM|ZA001|KITWE" Country = "Zambia" +City Name = "Klaipeda, LT" Location = "EUR|LT|LH017|KLAIPEDA" Country = "Lithuania" +City Name = "Klang, MY" Location = "ASI|MY|MY013|KLANG" Country = "Malaysia" +City Name = "Klerksdorp, ZA" Location = "AFR|ZA|SF007|KLERKSDORP" Country = "South Africa" +City Name = "Knoxville, TN, US" Location = "NAM|US|TN|KNOXVILLE" Country = "United States" +City Name = "Knysna, ZA" Location = "AFR|ZA|SF011|KNYSNA" Country = "South Africa" +City Name = "Kobe, JP" Location = "ASI|JP|JA013|KOBE" Country = "Japan" +City Name = "Koblenz, DE" Location = "EUR|DE|GM012|KOBLENZ" Country = "Germany" +City Name = "Kocaeli, TR" Location = "MEA|TR|TU052|KOCAELI" Country = "Turkey" +City Name = "Kochi, IN" Location = "ASI|IN|IN018|KOCHI" Country = "India" +City Name = "Kochi, JP" Location = "ASI|JP|JA038|KOCHI" Country = "Japan" +City Name = "Kodaira, JP" Location = "ASI|JP|JA041|KODAIRA" Country = "Japan" +City Name = "Koege, DK" Location = "EUR|DK|DA010|KOEGE" Country = "Denmark" +City Name = "Koforidua, GH" Location = "AFR|GH|GH000|KOFORIDUA" Country = "Ghana" +City Name = "Kofu, JP" Location = "ASI|JP|JA047|KOFU" Country = "Japan" +City Name = "Koganei, JP" Location = "ASI|JP|JA041|KOGANEI" Country = "Japan" +City Name = "Kohat, PK" Location = "ASI|PK|PK005|KOHAT" Country = "Pakistan" +City Name = "Kokand, UZ" Location = "ASI|UZ|UZ003|KOKAND" Country = "Uzbekistan" +City Name = "Kokstad, ZA" Location = "AFR|ZA|SF005|KOKSTAD" Country = "South Africa" +City Name = "Kokubunji, JP" Location = "ASI|JP|JA041|KOKUBUNJI" Country = "Japan" +City Name = "Kolar, IN" Location = "ASI|IN|IN017|KOLAR" Country = "India" +City Name = "Kolar Gold Fields, IN" Location = "ASI|IN|IN017|KOLAR GOLD FIELDS" Country = "India" +City Name = "Kolding, DK" Location = "EUR|DK|DA014|KOLDING" Country = "Denmark" +City Name = "Kolhapur, IN" Location = "ASI|IN|IN021|KOLHAPUR" Country = "India" +City Name = "Kollam, IN" Location = "ASI|IN|IN018|KOLLAM" Country = "India" +City Name = "Koln, DE" Location = "EUR|DE|GM011|KLN" Country = "Germany" +City Name = "Kolomna, RU" Location = "ASI|RU|RS010|KOLOMNA" Country = "Russia" +City Name = "Kolwezi, CD" Location = "AFR|CD|CG006|KOLWEZI" Country = "Kinshasa" +City Name = "Komaki, JP" Location = "ASI|JP|JA001|KOMAKI" Country = "Japan" +City Name = "Komatipoort, ZA" Location = "AFR|ZA|SF006|KOMATIPOORT" Country = "South Africa" +City Name = "Komatsu, JP" Location = "ASI|JP|JA015|KOMATSU" Country = "Japan" +City Name = "Komsomolsk-Na-Amure, RU" Location = "ASI|RU|RS032|KOMSOMOLSK-NA-AMURE" Country = "Russia" +City Name = "Konya, TR" Location = "MEA|TR|TU053|KONYA" Country = "Turkey" +City Name = "Korba, IN" Location = "ASI|IN|IN020|KORBA" Country = "India" +City Name = "Kord-Shahr, IR" Location = "MEA|IR|IR005|KORD-SHAHR" Country = "Iran" +City Name = "Koriyama, JP" Location = "ASI|JP|JA008|KORIYAMA" Country = "Japan" +City Name = "Korolev, RU" Location = "ASI|RU|RS051|KOROLEV" Country = "Russia" +City Name = "Koshigaya, JP" Location = "ASI|JP|JA035|KOSHIGAYA" Country = "Japan" +City Name = "Kosice, SK" Location = "EUR|SK|LO003|KOSICE" Country = "Slovakia" +City Name = "Kosti, SD" Location = "AFR|SD|SU028|KOSTI" Country = "Sudan" +City Name = "Kostroma, RU" Location = "ASI|RU|RS039|KOSTROMA" Country = "Russia" +City Name = "Koszalin, PL" Location = "EUR|PL|PL016|KOSZALIN" Country = "Poland" +City Name = "Kota, IN" Location = "ASI|IN|IN029|KOTA" Country = "India" +City Name = "Kota Bahru, MY" Location = "ASI|MY|MY003|KOTA BAHRU" Country = "Malaysia" +City Name = "Kota Kinabalu, MY" Location = "ASI|MY|MY011|KOTA KINABALU" Country = "Malaysia" +City Name = "Kotabaru, ID" Location = "ASI|ID|ID011|KOTABARU" Country = "Indonesia" +City Name = "Kothagudem, IN" Location = "ASI|IN|IN002|KOTHAGUDEM" Country = "India" +City Name = "Kottayam, IN" Location = "ASI|IN|IN018|KOTTAYAM" Country = "India" +City Name = "Kovrov, RU" Location = "ASI|RU|RS087|KOVROV" Country = "Russia" +City Name = "Kozhikode, IN" Location = "ASI|IN|IN018|KOZHIKODE" Country = "India" +City Name = "Krageroe, NO" Location = "EUR|NO|NO016|KRAGEROE" Country = "Norway" +City Name = "Kragujevac, CS" Location = "EUR|CS|YI003|KRAGUJEVAC" Country = "Serbia" +City Name = "Krakow, PL" Location = "EUR|PL|PL006|KRAKW" Country = "Poland" +City Name = "Kraljevo, CS" Location = "EUR|CS|YI003|KRALJEVO" Country = "Serbia" +City Name = "Kramatorsk, UA" Location = "EUR|UA|UP004|KRAMATORSK" Country = "Ukraine" +City Name = "Krasnodar, RU" Location = "ASI|RU|RS040|KRASNODAR" Country = "Russia" +City Name = "Krasnoyarsk, RU" Location = "ASI|RU|RS041|KRASNOYARSK" Country = "Russia" +City Name = "Krefeld, DE" Location = "EUR|DE|GM011|KREFELD" Country = "Germany" +City Name = "Krishnanagar, IN" Location = "ASI|IN|IN036|KRISHNANAGAR" Country = "India" +City Name = "Kristiansand, NO" Location = "EUR|NO|NO018|KRISTIANSAND" Country = "Norway" +City Name = "Kristianstad, SE" Location = "EUR|SE|SW013|KRISTIANSTAD" Country = "Sweden" +City Name = "Kristiansund, NO" Location = "EUR|NO|NO007|KRISTIANSUND" Country = "Norway" +City Name = "Kroonstad, ZA" Location = "AFR|ZA|SF003|KROONSTAD" Country = "South Africa" +City Name = "Krugersdorp, ZA" Location = "AFR|ZA|SF004|KRUGERSDORP" Country = "South Africa" +City Name = "Krusevac, CS" Location = "EUR|CS|YI003|KRUSEVAC" Country = "Serbia" +City Name = "Kuala Lumpur, MY" Location = "ASI|MY|MY015|KUALA LUMPUR" Country = "Malaysia" +City Name = "Kuala Terengganu, MY" Location = "ASI|MY|MY014|KUALA TERENGGANU" Country = "Malaysia" +City Name = "Kuantan, MY" Location = "ASI|MY|MY007|KUANTAN" Country = "Malaysia" +City Name = "Kuching, MY" Location = "ASI|MY|MY012|KUCHING" Country = "Malaysia" +City Name = "Kumagaya, JP" Location = "ASI|JP|JA035|KUMAGAYA" Country = "Japan" +City Name = "Kumamoto, JP" Location = "ASI|JP|JA021|KUMAMOTO" Country = "Japan" +City Name = "Kumasi, GH" Location = "AFR|GH|GH010|KUMASI" Country = "Ghana" +City Name = "Kumbakonam, IN" Location = "ASI|IN|IN031|KUMBAKONAM" Country = "India" +City Name = "Kunming, CN" Location = "ASI|CN|CH030|KUNMING" Country = "China" +City Name = "Kunsan, KR" Location = "ASI|KR|KS004|KUNSAN" Country = "South Korea" +City Name = "Kunshan, CN" Location = "ASI|CN|CH001|KUNSHAN" Country = "China" +City Name = "Kurashiki, JP" Location = "ASI|JP|JA031|KURASHIKI" Country = "Japan" +City Name = "Kure, JP" Location = "ASI|JP|JA011|KURE" Country = "Japan" +City Name = "Kurgan, RU" Location = "ASI|RU|RS043|KURGAN" Country = "Russia" +City Name = "Kurnool, IN" Location = "ASI|IN|IN002|KURNOOL" Country = "India" +City Name = "Kursk, RU" Location = "ASI|RU|RS044|KURSK" Country = "Russia" +City Name = "Kuruman, ZA" Location = "AFR|ZA|SF008|KURUMAN" Country = "South Africa" +City Name = "Kurume, JP" Location = "ASI|JP|JA007|KURUME" Country = "Japan" +City Name = "Kusatsu, JP" Location = "ASI|JP|JA010|KUSATSU" Country = "Japan" +City Name = "Kushiro, JP" Location = "ASI|JP|JA012|KUSHIRO" Country = "Japan" +City Name = "Kustanai, KZ" Location = "ASI|KZ|KZ012|KUSTANAI" Country = "Kazakhstan" +City Name = "Kut, IQ" Location = "MEA|IQ|IZ018|KUT" Country = "Iraq" +City Name = "Kutaisi, GE" Location = "ASI|GE|GG000|KUTAISI" Country = "Georgia" +City Name = "Kuwait City, KW" Location = "MEA|KW|KU000|KUWAIT CITY" Country = "Kuwait" +City Name = "Kuwana, JP" Location = "ASI|JP|JA023|KUWANA" Country = "Japan" +City Name = "Kwangchu, KR" Location = "ASI|KR|KS008|KWANGCHU" Country = "South Korea" +City Name = "Kyong Ju, KR" Location = "ASI|KR|KS010|KYONG JU" Country = "South Korea" +City Name = "Kyoto, JP" Location = "ASI|JP|JA022|KYOTO" Country = "Japan" +City Name = "Kyzylorda, KZ" Location = "ASI|KZ|KZ013|KYZYLORDA" Country = "Kazakhstan" +City Name = "La Habana, CU" Location = "CAC|CU|CU004|LA HABANA" Country = "Cuba" +City Name = "La Laguna, ES" Location = "EUR|ES|SP018|LA LAGUNA" Country = "Spain" +City Name = "La Paz, BO" Location = "SAM|BO|BL004|LA PAZ" Country = "Bolivia" +City Name = "La Paz, MX" Location = "NAM|MX|MX003|LA PAZ" Country = "Mexico" +City Name = "La Plata, AR" Location = "SAM|AR|AR001|LA PLATA" Country = "Argentina" +City Name = "La Serena, CL" Location = "SAM|CL|CI006|LA SERENA" Country = "Chile" +City Name = "La Victoria, VE" Location = "SAM|VE|VE004|LA VICTORIA" Country = "Venezuela" +City Name = "Ladysmith, ZA" Location = "AFR|ZA|SF005|LADYSMITH" Country = "South Africa" +City Name = "Lafayette, LA, US" Location = "NAM|US|LA|LAFAYETTE" Country = "United States" +City Name = "Lages, BR" Location = "SAM|BR|BR027|LAGES" Country = "Brazil" +City Name = "Lagos, NG" Location = "AFR|NG|NI024|LAGOS" Country = "Nigeria" +City Name = "Lagunillas, VE" Location = "SAM|VE|VE015|LAGUNILLAS" Country = "Venezuela" +City Name = "Lahore, PK" Location = "ASI|PK|PK007|LAHORE" Country = "Pakistan" +City Name = "Laiwu, CN" Location = "ASI|CN|CH016|LAIWU" Country = "China" +City Name = "Laiyang, CN" Location = "ASI|CN|CH023|LAIYANG" Country = "China" +City Name = "Laizhou, CN" Location = "ASI|CN|CH004|LAIZHOU" Country = "China" +City Name = "Lakewood, CO, US" Location = "NAM|US|CO|LAKEWOOD" Country = "United States" +City Name = "Lalitpur, NP" Location = "ASI|NP|NP000|LALITPUR" Country = "Nepal" +City Name = "Lambeth, UK" Location = "EUR|UK|UK001|LAMBETH" Country = "United Kingdom" +City Name = "Lancaster, UK" Location = "EUR|UK|UK001|LANCASTER" Country = "United Kingdom" +City Name = "Lancaster, CA, US" Location = "NAM|US|CA|LANCASTER" Country = "United States" +City Name = "Langebaan, ZA" Location = "AFR|ZA|SF011|LANGEBAAN" Country = "South Africa" +City Name = "Langfang, CN" Location = "ASI|CN|CH010|LANGFANG" Country = "China" +City Name = "Lansing, MI, US" Location = "NAM|US|MI|LANSING" Country = "United States" +City Name = "Lanus, AR" Location = "SAM|AR|AR001|LANUS" Country = "Argentina" +City Name = "Lanxi, CN" Location = "ASI|CN|CH001|LANXI" Country = "China" +City Name = "Lanzhou, CN" Location = "ASI|CN|CH005|LANZHOU" Country = "China" +City Name = "Laohekou, CN" Location = "ASI|CN|CH013|LAOHEKOU" Country = "China" +City Name = "Laramie, WY, US" Location = "NAM|US|WY|LARAMIE" Country = "United States" +City Name = "Laredo, TX, US" Location = "NAM|US|TX|LAREDO" Country = "United States" +City Name = "Larissa, GR" Location = "EUR|GR|GR034|LARISSA" Country = "Greece" +City Name = "Larkana, PK" Location = "ASI|PK|PK008|LARKANA" Country = "Pakistan" +City Name = "Larvik, NO" Location = "EUR|NO|NO019|LARVIK" Country = "Norway" +City Name = "Las Palmas De Gran Canaria, ES" Location = "EUR|ES|SP018|LAS PALMAS DE GRAN CANARIA" Country = "Spain" +City Name = "Las Tunas, CU" Location = "CAC|CU|CU010|LAS TUNAS" Country = "Cuba" +City Name = "Las Vegas, NV, US" Location = "NAM|US|NV|LAS VEGAS" Country = "United States" +City Name = "Latina, IT" Location = "EUR|IT|IT007|LATINA" Country = "Italy" +City Name = "Lattakia, SY" Location = "MEA|SY|SY002|LATTAKIA" Country = "Syria" +City Name = "Lausanne, CH" Location = "EUR|CH|SZ024|LAUSANNE" Country = "Switzerland" +City Name = "Laval, CA" Location = "NAM|CA|QC|LAVAL" Country = "Canada" +City Name = "Le Havre, FR" Location = "EUR|FR|FR011|LE HAVRE" Country = "France" +City Name = "Le Mans, FR" Location = "EUR|FR|FR018|LE MANS" Country = "France" +City Name = "Leeds, UK" Location = "EUR|UK|UK001|LEEDS" Country = "United Kingdom" +City Name = "Leganes, ES" Location = "EUR|ES|SP013|LEGANS" Country = "Spain" +City Name = "Legaspi, PH" Location = "ASI|PH|RP067|LEGASPI" Country = "Philippines" +City Name = "Legnica, PL" Location = "EUR|PL|PL001|LEGNICA" Country = "Poland" +City Name = "Leicester, UK" Location = "EUR|UK|UK001|LEICESTER" Country = "United Kingdom" +City Name = "Leiden, NL" Location = "EUR|NL|NL012|LEIDEN" Country = "Netherlands" +City Name = "Leipzig, DE" Location = "EUR|DE|GM014|LEIPZIG" Country = "Germany" +City Name = "Leiria, PT" Location = "EUR|PT|PO011|LEIRIA" Country = "Portugal" +City Name = "Leiyang, CN" Location = "ASI|CN|CH014|LEIYANG" Country = "China" +City Name = "Leling, CN" Location = "ASI|CN|CH023|LELING" Country = "China" +City Name = "Lengshuijiang, CN" Location = "ASI|CN|CH014|LENGSHUIJIANG" Country = "China" +City Name = "Lengshuitan, CN" Location = "ASI|CN|CH014|LENGSHUITAN" Country = "China" +City Name = "Leninakan, AM" Location = "ASI|AM|AM007|LENINAKAN" Country = "Armenia" +City Name = "Leon, MX" Location = "NAM|MX|MX011|LEN" Country = "Mexico" +City Name = "Leon, NI" Location = "CAC|NI|NU008|LEON" Country = "Nicaragua" +City Name = "Leon, ES" Location = "EUR|ES|SP007|LEN" Country = "Spain" +City Name = "Lephalale, ZA" Location = "AFR|ZA|SF009|LEPHALALE" Country = "South Africa" +City Name = "Leshan, CN" Location = "ASI|CN|CH026|LESHAN" Country = "China" +City Name = "Leskovac, CS" Location = "EUR|CS|YI003|LESKOVAC" Country = "Serbia" +City Name = "Leverkusen, DE" Location = "EUR|DE|GM011|LEVERKUSEN" Country = "Germany" +City Name = "Levubu, ZA" Location = "AFR|ZA|SF009|LEVUBU" Country = "South Africa" +City Name = "Lewisham, UK" Location = "EUR|UK|UK001|LEWISHAM" Country = "United Kingdom" +City Name = "Lexington, KY, US" Location = "NAM|US|KY|LEXINGTON" Country = "United States" +City Name = "Lhasa, CN" Location = "ASI|CN|CH029|LHASA" Country = "China" +City Name = "Lianyuan, CN" Location = "ASI|CN|CH014|LIANYUAN" Country = "China" +City Name = "LianYunGang, CN" Location = "ASI|CN|CH015|LIANYUNGANG" Country = "China" +City Name = "Liaocheng, CN" Location = "ASI|CN|CH023|LIAOCHENG" Country = "China" +City Name = "Liaoyang, CN" Location = "ASI|CN|CH018|LIAOYANG" Country = "China" +City Name = "Libreville, GA" Location = "AFR|GA|GB001|LIBREVILLE" Country = "Gabon" +City Name = "Lichinga, MZ" Location = "AFR|MZ|MZ007|LICHINGA" Country = "Mozambique" +City Name = "Lichtenburg, ZA" Location = "AFR|ZA|SF007|LICHTENBURG" Country = "South Africa" +City Name = "Lida, BY" Location = "EUR|BY|BO003|LIDA" Country = "Belarus" +City Name = "Liege, BE" Location = "EUR|BE|BE005|LIGE" Country = "Belgium" +City Name = "Likasi, CD" Location = "AFR|CD|CG006|LIKASI" Country = "Kinshasa" +City Name = "Lille, FR" Location = "EUR|FR|FR017|LILLE" Country = "France" +City Name = "Lillehammer, NO" Location = "EUR|NO|NO010|LILLEHAMMER" Country = "Norway" +City Name = "Lilongwe, MW" Location = "AFR|MW|MI000|LILONGWE" Country = "Malawi" +City Name = "Lima, PE" Location = "SAM|PE|PE015|LIMA" Country = "Peru" +City Name = "Limassol, CY" Location = "MEA|CY|CY004|LIMASSOL" Country = "Cyprus" +City Name = "Limeira, BR" Location = "SAM|BR|BR023|LIMEIRA" Country = "Brazil" +City Name = "Limoges, FR" Location = "EUR|FR|FR012|LIMOGES" Country = "France" +City Name = "Lincoln, NE, US" Location = "NAM|US|NE|LINCOLN" Country = "United States" +City Name = "Linhares, BR" Location = "SAM|BR|BR008|LINHARES" Country = "Brazil" +City Name = "Linkoeping, SE" Location = "EUR|SE|SW012|LINKOEPING" Country = "Sweden" +City Name = "Linyi, CN" Location = "ASI|CN|CH023|LINYI" Country = "China" +City Name = "Linz, AT" Location = "EUR|AT|AU004|LINZ" Country = "Austria" +City Name = "Lipa, PH" Location = "ASI|PH|RP069|LIPA" Country = "Philippines" +City Name = "Lipetsk, RU" Location = "ASI|RU|RS046|LIPETSK" Country = "Russia" +City Name = "Lira, UG" Location = "AFR|UG|UG000|LIRA" Country = "Uganda" +City Name = "Lisbon, PT" Location = "EUR|PT|PO012|LISBOA" Country = "Portugal" +City Name = "Lisburn, UK" Location = "EUR|UK|UK002|LISBURN" Country = "United Kingdom" +City Name = "Lishui, CN" Location = "ASI|CN|CH031|LISHUI" Country = "China" +City Name = "Little Rock, AR, US" Location = "NAM|US|AR|LITTLE ROCK" Country = "United States" +City Name = "Liuzhou, CN" Location = "ASI|CN|CH007|LIUZHOU" Country = "China" +City Name = "Liverpool, UK" Location = "EUR|UK|UK001|LIVERPOOL" Country = "United Kingdom" +City Name = "Livonia, MI, US" Location = "NAM|US|MI|LIVONIA" Country = "United States" +City Name = "Livorno, IT" Location = "EUR|IT|IT016|LIVORNO" Country = "Italy" +City Name = "Ljubljana, SI" Location = "EUR|SI|SI000|LJUBLJANA" Country = "Slovenia" +City Name = "Lleida, ES" Location = "EUR|ES|SP008|LLEIDA" Country = "Spain" +City Name = "Lobito, AO" Location = "AFR|AO|AO007|LOBITO" Country = "Angola" +City Name = "Lodz, PL" Location = "EUR|PL|PL003|LDZ" Country = "Poland" +City Name = "Loeriesfontein, ZA" Location = "AFR|ZA|SF008|LOERIESFONTEIN" Country = "South Africa" +City Name = "Lofoten, NO" Location = "EUR|NO|NO009|LOFOTEN" Country = "Norway" +City Name = "Logrono, ES" Location = "EUR|ES|SP012|LOGROO" Country = "Spain" +City Name = "Loja, EC" Location = "SAM|EC|EC012|LOJA" Country = "Ecuador" +City Name = "Lomas De Zamora, AR" Location = "SAM|AR|AR001|LOMAS DE ZAMORA" Country = "Argentina" +City Name = "Lome, TG" Location = "AFR|TG|TO000|LOME" Country = "Togo" +City Name = "London, CA" Location = "NAM|CA|ON|LONDON" Country = "Canada" +City Name = "London, UK" Location = "EUR|UK|UK001|LONDON" Country = "United Kingdom" +City Name = "Londrina, BR" Location = "SAM|BR|BR015|LONDRINA" Country = "Brazil" +City Name = "Long Beach, CA, US" Location = "NAM|US|CA|LONG BEACH" Country = "United States" +City Name = "Longueuil, CA" Location = "NAM|CA|QC|LONGUEUIL" Country = "Canada" +City Name = "Longxuyen, VN" Location = "ASI|VN|VM060|LONGXUYEN" Country = "Vietnam" +City Name = "Lopez Mateos, MX" Location = "NAM|MX|MX015|CIUDAD LPEZ MATEOS" Country = "Mexico" +City Name = "Los Angeles, CL" Location = "SAM|CL|CI005|LOS ANGELES" Country = "Chile" +City Name = "Los Angeles, CA, US" Location = "NAM|US|CA|LOS ANGELES" Country = "United States" +City Name = "Los Mochis, MX" Location = "NAM|MX|MX025|LOS MOCHIS" Country = "Mexico" +City Name = "Los Teques, VE" Location = "SAM|VE|VE016|LOS TEQUES" Country = "Venezuela" +City Name = "Louisville, KY, US" Location = "NAM|US|KY|LOUISVILLE" Country = "United States" +City Name = "Lowell, MA, US" Location = "NAM|US|MA|LOWELL" Country = "United States" +City Name = "Luanda, AO" Location = "AFR|AO|AO006|LUANDA" Country = "Angola" +City Name = "Luang Prabang, LA" Location = "ASI|LA|LA008|LUANG PRABANG" Country = "Laos" +City Name = "Luanshya, ZM" Location = "AFR|ZM|ZA001|LUANSHYA" Country = "Zambia" +City Name = "Lubango, AO" Location = "AFR|AO|AO010|LUBANGO" Country = "Angola" +City Name = "Lubbock, TX, US" Location = "NAM|US|TX|LUBBOCK" Country = "United States" +City Name = "Lubeck, DE" Location = "EUR|DE|GM016|LBECK" Country = "Germany" +City Name = "Lublin, PL" Location = "EUR|PL|PL004|LUBLIN" Country = "Poland" +City Name = "Lubumbashi, CD" Location = "AFR|CD|CG006|LUBUMBASHI" Country = "Kinshasa" +City Name = "Lucena City, PH" Location = "ASI|PH|RP070|LUCENA CITY" Country = "Philippines" +City Name = "Lucknow, IN" Location = "ASI|IN|IN033|LUCKNOW" Country = "India" +City Name = "Ludhiana, IN" Location = "ASI|IN|IN028|LUDHIANA" Country = "India" +City Name = "Ludwigshafen, DE" Location = "EUR|DE|GM012|LDWIGSHAFEN AM RHEIN" Country = "Germany" +City Name = "Lugansk, UA" Location = "EUR|UA|UP012|LUGANSK" Country = "Ukraine" +City Name = "Luleaa, SE" Location = "EUR|SE|SW010|LULEAA" Country = "Sweden" +City Name = "Lund, SE" Location = "EUR|SE|SW013|LUND" Country = "Sweden" +City Name = "Luoyang, CN" Location = "ASI|CN|CH012|LUOYANG" Country = "China" +City Name = "Lusaka, ZM" Location = "AFR|ZM|ZA000|LUSAKA" Country = "Zambia" +City Name = "Luton, UK" Location = "EUR|UK|UK001|LUTON" Country = "United Kingdom" +City Name = "Lutsk, UA" Location = "EUR|UA|UP020|LUTSK" Country = "Ukraine" +City Name = "Luzern, CH" Location = "EUR|CH|SZ012|LUZERN" Country = "Switzerland" +City Name = "Luziania, BR" Location = "SAM|BR|BR027|LUZINIA" Country = "Brazil" +City Name = "Lvov, UA" Location = "EUR|UA|UP013|LVOV" Country = "Ukraine" +City Name = "Lydenburg, ZA" Location = "AFR|ZA|SF006|LYDENBURG" Country = "South Africa" +City Name = "Lyon, FR" Location = "EUR|FR|FR022|LYON" Country = "France" +City Name = "Lysychansk, UA" Location = "EUR|UA|UP012|LYSYCHANSK" Country = "Ukraine" +City Name = "Maanshan, CN" Location = "ASI|CN|CH026|MAANSHAN" Country = "China" +City Name = "Maastricht, NL" Location = "EUR|NL|NL006|MAASTRICHT" Country = "Netherlands" +City Name = "Macae, BR" Location = "SAM|BR|BR017|MACAE" Country = "Brazil" +City Name = "Macao, MO" Location = "ASI|MO|MC---|MACAO" Country = "Macau" +City Name = "Macapa, BR" Location = "SAM|BR|BR003|MACAP" Country = "Brazil" +City Name = "Macclesfield, UK" Location = "EUR|UK|UK001|MACCLESFIELD" Country = "United Kingdom" +City Name = "Machakos, KE" Location = "AFR|KE|KE003|MACHAKOS" Country = "Kenya" +City Name = "Machala, EC" Location = "SAM|EC|EC007|MACHALA" Country = "Ecuador" +City Name = "Macheng, CN" Location = "ASI|CN|CH001|MACHENG" Country = "China" +City Name = "Machida, JP" Location = "ASI|JP|JA041|MACHIDA" Country = "Japan" +City Name = "Machilipatnam, IN" Location = "ASI|IN|IN002|MACHILIPATNAM" Country = "India" +City Name = "Madison, WI, US" Location = "NAM|US|WI|MADISON" Country = "United States" +City Name = "Madiun, ID" Location = "ASI|ID|ID007|MADIUN" Country = "Indonesia" +City Name = "Madras, IN" Location = "ASI|IN|IN031|MADRAS" Country = "India" +City Name = "Madrid, ES" Location = "EUR|ES|SP013|MADRID" Country = "Spain" +City Name = "Madurai, IN" Location = "ASI|IN|IN031|MADURAI" Country = "India" +City Name = "Maebashi, JP" Location = "ASI|JP|JA010|MAEBASHI" Country = "Japan" +City Name = "Mafikeng, ZA" Location = "AFR|ZA|SF007|MAFIKENG" Country = "South Africa" +City Name = "Magadan, RU" Location = "ASI|RU|RS047|MAGADAN" Country = "Russia" +City Name = "Magaliesburg, ZA" Location = "AFR|ZA|SF004|MAGALIESBURG" Country = "South Africa" +City Name = "Magdeburg, DE" Location = "EUR|DE|GM015|MAGDEBURG" Country = "Germany" +City Name = "Mage, BR" Location = "SAM|BR|BR017|MAG" Country = "Brazil" +City Name = "Magelang, ID" Location = "ASI|ID|ID004|MAGELANG" Country = "Indonesia" +City Name = "Magnitogorsk, RU" Location = "ASI|RU|RS013|MAGNITOGORSK" Country = "Russia" +City Name = "Mahabad, IR" Location = "MEA|IR|IR002|MAHABAD" Country = "Iran" +City Name = "Mahalapye, BW" Location = "AFR|BW|BC000|MAHALAPYE" Country = "Botswana" +City Name = "Mahbubnagar, IN" Location = "ASI|IN|IN002|MAHBUBNAGAR" Country = "India" +City Name = "Mahesana, IN" Location = "ASI|IN|IN012|MAHESANA" Country = "India" +City Name = "Maicao, CO" Location = "SAM|CO|CO016|MAICAO" Country = "Colombia" +City Name = "Maidstone, UK" Location = "EUR|UK|UK001|MAIDSTONE" Country = "United Kingdom" +City Name = "Maiduguri, NG" Location = "AFR|NG|NI000|MAIDUGURI" Country = "Nigeria" +City Name = "Maikop, RU" Location = "ASI|RU|RS001|MAIKOP" Country = "Russia" +City Name = "Mainz, DE" Location = "EUR|DE|GM002|MAINZ" Country = "Germany" +City Name = "Majnoon, IQ" Location = "MEA|IQ|IZ010|MAJNOON" Country = "Iraq" +City Name = "Makati, PH" Location = "ASI|PH|RP077|MAKATI" Country = "Philippines" +City Name = "Makeyevka, UA" Location = "EUR|UA|UP004|MAKEYEVKA" Country = "Ukraine" +City Name = "Makhachkala, RU" Location = "ASI|RU|RS017|MAKHACHKALA" Country = "Russia" +City Name = "Makkah, SA" Location = "MEA|SA|SA011|MAKKAH" Country = "Saudi Arabia" +City Name = "Malabo, GQ" Location = "AFR|GQ|EK000|MALABO" Country = "Equatorial Guinea" +City Name = "Malaga, ES" Location = "EUR|ES|SP001|MLAGA" Country = "Spain" +City Name = "Malang, ID" Location = "ASI|ID|ID026|MALANG" Country = "Indonesia" +City Name = "Malatya, TR" Location = "MEA|TR|TU055|MALATYA" Country = "Turkey" +City Name = "Malayer, IR" Location = "MEA|IR|IR010|MALAYER" Country = "Iran" +City Name = "Male, MV" Location = "ASI|MV|MV012|MALE" Country = "Maldives" +City Name = "Malegaon, IN" Location = "ASI|IN|IN021|MALEGAON" Country = "India" +City Name = "Malindi, KE" Location = "AFR|KE|KE002|MALINDI" Country = "Kenya" +City Name = "Malmesbury, ZA" Location = "AFR|ZA|SF011|MALMESBURY" Country = "South Africa" +City Name = "Malmoe, SE" Location = "EUR|SE|SW013|MALMOE" Country = "Sweden" +City Name = "Mamuno, BW" Location = "AFR|BW|BC000|MAMUNO" Country = "Botswana" +City Name = "Manado, ID" Location = "ASI|ID|ID022|MANADO" Country = "Indonesia" +City Name = "Managua, NI" Location = "CAC|NI|NU010|MANAGUA" Country = "Nicaragua" +City Name = "Manama, BH" Location = "MEA|BH|BA002|MANAMA" Country = "Bahrain" +City Name = "Manaus, BR" Location = "SAM|BR|BR004|MANAUS" Country = "Brazil" +City Name = "Manchester, UK" Location = "EUR|UK|UK001|MANCHESTER" Country = "United Kingdom" +City Name = "Manchester, NH, US" Location = "NAM|US|NH|MANCHESTER" Country = "United States" +City Name = "Mandalay, MM" Location = "ASI|MM|BM008|MANDALAY" Country = "Burma/Myanmar" +City Name = "Mandaluyong, PH" Location = "ASI|PH|RP035|MANDALUYONG" Country = "Philippines" +City Name = "Mandaue, PH" Location = "ASI|PH|RP072|MANDAUE" Country = "Philippines" +City Name = "Mandya, IN" Location = "ASI|IN|IN017|MANDYA" Country = "India" +City Name = "Mangalore, IN" Location = "ASI|IN|IN017|MANGALORE" Country = "India" +City Name = "Mangora, PK" Location = "ASI|PK|PK001|MANGORA" Country = "Pakistan" +City Name = "Manila, PH" Location = "ASI|PH|RP073|MANILA" Country = "Philippines" +City Name = "Manisa, TR" Location = "MEA|TR|TU056|MANISA" Country = "Turkey" +City Name = "Manizales, CO" Location = "SAM|CO|CO002|MANIZALES" Country = "Colombia" +City Name = "Mannheim, DE" Location = "EUR|DE|GM001|MANNHEIM" Country = "Germany" +City Name = "Mansfield, UK" Location = "EUR|UK|UK001|MANSFIELD" Country = "United Kingdom" +City Name = "Mansura, EG" Location = "AFR|EG|EG001|MANSRA" Country = "Egypt" +City Name = "Manta, EC" Location = "SAM|EC|EC014|MANTA" Country = "Ecuador" +City Name = "Manukau, NZ" Location = "OCN|NZ|NZ000|MANUKAU" Country = "New Zealand" +City Name = "Maoming, CN" Location = "ASI|CN|CH006|MAOMING" Country = "China" +City Name = "Maputo, MZ" Location = "AFR|MZ|MZ005|MAPUTO" Country = "Mozambique" +City Name = "Mar Del Plata, AR" Location = "SAM|AR|AR001|MAR DEL PLATA" Country = "Argentina" +City Name = "Maraba, BR" Location = "SAM|BR|BR013|MARABA" Country = "Brazil" +City Name = "Maracaibo, VE" Location = "SAM|VE|VE025|MARACAIBO" Country = "Venezuela" +City Name = "Maracanau, BR" Location = "SAM|BR|BR006|MARACANAU" Country = "Brazil" +City Name = "Maracay, VE" Location = "SAM|VE|VE004|MARACAY" Country = "Venezuela" +City Name = "Maradi, NE" Location = "AFR|NE|NG004|MARADI" Country = "Niger" +City Name = "Marawi, PH" Location = "ASI|PH|RP074|MARAWI" Country = "Philippines" +City Name = "Mardan, PK" Location = "ASI|PK|PK005|MARDAN" Country = "Pakistan" +City Name = "Mardin, TR" Location = "MEA|TR|TU047|MARDIN" Country = "Turkey" +City Name = "Margate, ZA" Location = "AFR|ZA|SF005|MARGATE" Country = "South Africa" +City Name = "Margilan, UZ" Location = "ASI|UZ|UZ003|MARGILAN" Country = "Uzbekistan" +City Name = "Marilia, BR" Location = "SAM|BR|BR023|MARLIA" Country = "Brazil" +City Name = "Maringa, BR" Location = "SAM|BR|BR015|MARING" Country = "Brazil" +City Name = "Mariupol, UA" Location = "EUR|UA|UP004|MARIUPOL" Country = "Ukraine" +City Name = "Markham, CA" Location = "NAM|CA|ON|MARKHAM" Country = "Canada" +City Name = "Maroua, CM" Location = "AFR|CM|CM004|MAROUA" Country = "Cameroon" +City Name = "Marrakech, MA" Location = "AFR|MA|MO025|MARRAKECH" Country = "Morocco" +City Name = "Marseille, FR" Location = "EUR|FR|FR021|MARSEILLE" Country = "France" +City Name = "Masaka, UG" Location = "AFR|UG|UG000|MASAKA" Country = "Uganda" +City Name = "Masan, KR" Location = "ASI|KR|KS011|MASAN" Country = "South Korea" +City Name = "Masaya, NI" Location = "CAC|NI|NU011|MASAYA" Country = "Nicaragua" +City Name = "Maseru, LS" Location = "AFR|LS|LT000|MASERU" Country = "Lesotho" +City Name = "Mashhad, IR" Location = "MEA|IR|IR015|MASHHAD" Country = "Iran" +City Name = "Masjed Soleyman, IR" Location = "MEA|IR|IR016|MASJED SOLEYMAN" Country = "Iran" +City Name = "Matadi, CD" Location = "AFR|CD|CG002|MATADI" Country = "Kinshasa" +City Name = "Matamoros, MX" Location = "NAM|MX|MX028|MATAMOROS" Country = "Mexico" +City Name = "Matanzas, CU" Location = "CAC|CU|CU011|MATANZAS" Country = "Cuba" +City Name = "Mataro, ES" Location = "EUR|ES|SP008|MATAR" Country = "Spain" +City Name = "Mathura, IN" Location = "ASI|IN|IN033|MATHURA" Country = "India" +City Name = "Matsubara, JP" Location = "ASI|JP|JA033|MATSUBARA" Country = "Japan" +City Name = "Matsudo, JP" Location = "ASI|JP|JA004|MATSUDO" Country = "Japan" +City Name = "Maturin, VE" Location = "SAM|VE|VE017|MATURN" Country = "Venezuela" +City Name = "Maua, BR" Location = "SAM|BR|BR023|MAU" Country = "Brazil" +City Name = "Maun, BW" Location = "AFR|BW|BC000|MAUN" Country = "Botswana" +City Name = "Maunath Bhanjan, IN" Location = "ASI|IN|IN033|MAUNATH BHANJAN" Country = "India" +City Name = "Mayaguez, PR" Location = "CAC|PR|PR000|MAYAGEZ" Country = "Puerto Rico" +City Name = "Mazar-I-Sharif, AF" Location = "ASI|AF|AF004|MAZAR-I-SHARIF" Country = "Afghanistan" +City Name = "Mazatlan, MX" Location = "NAM|MX|MX025|MAZATLN" Country = "Mexico" +City Name = "Mazeppa Bay, ZA" Location = "AFR|ZA|SF002|MAZEPPA BAY" Country = "South Africa" +City Name = "Mbabane, SZ" Location = "AFR|SZ|WZ000|MBABANE" Country = "Swaziland" +City Name = "Mbale, UG" Location = "AFR|UG|UG000|MBALE" Country = "Uganda" +City Name = "Mbandaka, CD" Location = "AFR|CD|CG003|MBANDAKA" Country = "Kinshasa" +City Name = "Mbarara, UG" Location = "AFR|UG|UG000|MBARARA" Country = "Uganda" +City Name = "Mbeya, TZ" Location = "AFR|TZ|TZ000|MBEYA" Country = "Tanzania" +City Name = "Mbour, SN" Location = "AFR|SN|SG009|MBOUR" Country = "Senegal" +City Name = "Mbuji-Mayi, CD" Location = "AFR|CD|CG005|MBUJI-MAYI" Country = "Kinshasa" +City Name = "Mcallen, TX, US" Location = "NAM|US|TX|MCALLEN" Country = "United States" +City Name = "Medan, ID" Location = "ASI|ID|ID027|MEDAN" Country = "Indonesia" +City Name = "Medellin, CO" Location = "SAM|CO|CO002|MEDELLN" Country = "Colombia" +City Name = "Medina, SA" Location = "MEA|SA|SA005|MEDINA" Country = "Saudi Arabia" +City Name = "Medinipur, IN" Location = "ASI|IN|IN036|MEDINIPUR" Country = "India" +City Name = "Meerut, IN" Location = "ASI|IN|IN033|MEERUT" Country = "India" +City Name = "Meihekou, CN" Location = "ASI|CN|CH017|MEIHEKOU" Country = "China" +City Name = "Meixian, CN" Location = "ASI|CN|CH004|MEIXIAN" Country = "China" +City Name = "Mejicanos, SV" Location = "CAC|SV|ES010|MEJICANOS" Country = "El Salvador" +City Name = "Mekele, ET" Location = "AFR|ET|ET000|MEKELE" Country = "Ethiopia" +City Name = "Meknes, MA" Location = "AFR|MA|MO026|MEKNS" Country = "Morocco" +City Name = "Melbourne, AU" Location = "OCN|AU|VIC|MELBOURNE" Country = "Australia" +City Name = "Melitopol, UA" Location = "EUR|UA|KZ000|MELITOPOL" Country = "Ukraine" +City Name = "Memphis, TN, US" Location = "NAM|US|TN|MEMPHIS" Country = "United States" +City Name = "Mendoza, AR" Location = "SAM|AR|AR013|MENDOZA" Country = "Argentina" +City Name = "Menia, EG" Location = "AFR|EG|EG010|MENIA" Country = "Egypt" +City Name = "Merida, MX" Location = "NAM|MX|MX002|MRIDA" Country = "Mexico" +City Name = "Merida, VE" Location = "SAM|VE|VE015|MRIDA" Country = "Venezuela" +City Name = "Merton, UK" Location = "EUR|UK|UK001|MERTON" Country = "United Kingdom" +City Name = "Mesa, AZ, US" Location = "NAM|US|AZ|MESA" Country = "United States" +City Name = "Mesquite, TX, US" Location = "NAM|US|TX|MESQUITE" Country = "United States" +City Name = "Messina, IT" Location = "EUR|IT|IT015|MESSINA" Country = "Italy" +City Name = "Messina, ZA" Location = "AFR|ZA|SF009|MESSINA" Country = "South Africa" +City Name = "Metula, IL" Location = "MEA|IL|IS003|METULA" Country = "Israel" +City Name = "Metz, FR" Location = "EUR|FR|FR015|METZ" Country = "France" +City Name = "Mexicali, MX" Location = "NAM|MX|MX002|MEXICALI" Country = "Mexico" +City Name = "Mexico City, MX" Location = "NAM|MX|MX009|MEXICO CITY" Country = "Mexico" +City Name = "Mezhdurechensk, RU" Location = "ASI|RU|RS031|MEZHDURECHENSK" Country = "Russia" +City Name = "Miami, FL, US" Location = "NAM|US|FL|MIAMI" Country = "United States" +City Name = "Mianyang, CN" Location = "ASI|CN|CH004|MIANYANG" Country = "China" +City Name = "Miass, RU" Location = "ASI|RU|RS013|MIASS" Country = "Russia" +City Name = "Michurinsk, RU" Location = "ASI|RU|RS076|MICHURINSK" Country = "Russia" +City Name = "Middelburg, ZA" Location = "AFR|ZA|SF006|MIDDELBURG" Country = "South Africa" +City Name = "Midrand, ZA" Location = "AFR|ZA|SF004|MIDRAND" Country = "South Africa" +City Name = "Milagro, EC" Location = "SAM|EC|EC010|MILAGRO" Country = "Ecuador" +City Name = "Milano, IT" Location = "EUR|IT|IT009|MILANO" Country = "Italy" +City Name = "Milton Keynes, UK" Location = "EUR|UK|UK001|MILTON KEYNES" Country = "United Kingdom" +City Name = "Miluo, CN" Location = "ASI|CN|CH014|MILUO" Country = "China" +City Name = "Milwaukee, WI, US" Location = "NAM|US|WI|MILWAUKEE" Country = "United States" +City Name = "Minatitlan, MX" Location = "NAM|MX|MX030|MINATITLN" Country = "Mexico" +City Name = "Minneapolis, MN, US" Location = "NAM|US|MN|MINNEAPOLIS" Country = "United States" +City Name = "Minsk, BY" Location = "EUR|BY|BO000|MINSK" Country = "Belarus" +City Name = "Mirpur Khas, PK" Location = "ASI|PK|PK008|MIRPUR KHAS" Country = "Pakistan" +City Name = "Mirzapur-Cum-Vindhyachal, IN" Location = "ASI|IN|IN033|MIRZAPUR-CUM-VINDHYACHAL" Country = "India" +City Name = "Mishan, CN" Location = "ASI|CN|CH011|MISHAN" Country = "China" +City Name = "Mishima, JP" Location = "ASI|JP|JA038|MISHIMA" Country = "Japan" +City Name = "Miskolc, HU" Location = "EUR|HU|HU021|MISKOLC" Country = "Hungary" +City Name = "Mississauga, CA" Location = "NAM|CA|ON|MISSISSAUGA" Country = "Canada" +City Name = "Misurata, LY" Location = "AFR|LY|LY016|MISURATA" Country = "Libya" +City Name = "Mito, JP" Location = "ASI|JP|JA014|MITO" Country = "Japan" +City Name = "Miyakonojo, JP" Location = "ASI|JP|JA025|MIYAKONOJO" Country = "Japan" +City Name = "Miyazaki, JP" Location = "ASI|JP|JA025|MIYAZAKI" Country = "Japan" +City Name = "Mmabatho, ZA" Location = "AFR|ZA|SF007|MMABATHO" Country = "South Africa" +City Name = "Mobile, AL, US" Location = "NAM|US|AL|MOBILE" Country = "United States" +City Name = "Modena, IT" Location = "EUR|IT|IT005|MODENA" Country = "Italy" +City Name = "Modesto, CA, US" Location = "NAM|US|CA|MODESTO" Country = "United States" +City Name = "Moers, DE" Location = "EUR|DE|GM011|MOERS" Country = "Germany" +City Name = "Moga, IN" Location = "ASI|IN|IN028|MOGA" Country = "India" +City Name = "Mogadishu, SO" Location = "AFR|SO|SO002|MOGADISHU" Country = "Somalia" +City Name = "Mogilev, BY" Location = "EUR|BY|BO005|MOGILEV" Country = "Belarus" +City Name = "Moji Das Cruzes, BR" Location = "SAM|BR|BR023|MOJI DAS CRUZES" Country = "Brazil" +City Name = "Mokopane, ZA" Location = "AFR|ZA|SF009|MOKOPANE" Country = "South Africa" +City Name = "Molde, NO" Location = "EUR|NO|NO007|MOLDE" Country = "Norway" +City Name = "Molepolole, BW" Location = "AFR|BW|BC000|MOLEPOLOLE" Country = "Botswana" +City Name = "Mombasa, KE" Location = "AFR|KE|KE002|MOMBASA" Country = "Kenya" +City Name = "Monaco, MC" Location = "EUR|MC|MN000|MONACO" Country = "Monaco" +City Name = "Monclova, MX" Location = "NAM|MX|MX007|MONCLOVA" Country = "Mexico" +City Name = "Moncton, CA" Location = "NAM|CA|NB|MONCTON" Country = "Canada" +City Name = "Monrovia, LR" Location = "AFR|LR|LI007|MONROVIA" Country = "Liberia" +City Name = "Montlimar, FR" Location = "EUR|FR|FR022|MONTLIMAR" Country = "France" +City Name = "Monteria, CO" Location = "SAM|CO|CO010|MONTERIA" Country = "Colombia" +City Name = "Monterrey, MX" Location = "NAM|MX|MX005|MONTERREY" Country = "Mexico" +City Name = "Montes Claros, BR" Location = "SAM|BR|BR012|MONTES CLAROS" Country = "Brazil" +City Name = "Montevideo, UY" Location = "SAM|UY|UY010|MONTEVIDEO" Country = "Uruguay" +City Name = "Montgomery, AL, US" Location = "NAM|US|AL|MONTGOMERY" Country = "United States" +City Name = "Montpelier, VT, US" Location = "NAM|US|VT|MONTPELIER" Country = "United States" +City Name = "Montpellier, FR" Location = "EUR|FR|FR013|MONTPELLIER" Country = "France" +City Name = "Montreal, CA" Location = "NAM|CA|QC|MONTRAL" Country = "Canada" +City Name = "Monywa, MM" Location = "ASI|MM|BM011|MONYWA" Country = "Burma/Myanmar" +City Name = "Monza, IT" Location = "EUR|IT|IT009|MONZA" Country = "Italy" +City Name = "Mooi River, ZA" Location = "AFR|ZA|SF005|MOOI RIVER" Country = "South Africa" +City Name = "Moradabad, IN" Location = "ASI|IN|IN033|MORADABAD" Country = "India" +City Name = "Moratuwa, LK" Location = "ASI|LK|CE009|MORATUWA" Country = "Sri Lanka" +City Name = "Morelia, MX" Location = "NAM|MX|MX016|MORELIA" Country = "Mexico" +City Name = "Morena, IN" Location = "ASI|IN|IN020|MORENA" Country = "India" +City Name = "Moreno Valley, CA, US" Location = "NAM|US|CA|MORENO VALLEY" Country = "United States" +City Name = "Moriguchi, JP" Location = "ASI|JP|JA033|MORIGUCHI" Country = "Japan" +City Name = "Morioka, JP" Location = "ASI|JP|JA016|MORIOKA" Country = "Japan" +City Name = "Morogoro, TZ" Location = "AFR|TZ|TZ000|MOROGORO" Country = "Tanzania" +City Name = "Moron, AR" Location = "SAM|AR|AR001|MORN" Country = "Argentina" +City Name = "Moroni, KM" Location = "AFR|KM|CN004|MORONI" Country = "Comoros" +City Name = "Moroto, UG" Location = "AFR|UG|UG000|MOROTO" Country = "Uganda" +City Name = "Morvi, IN" Location = "ASI|IN|IN012|MORVI" Country = "India" +City Name = "Moscow, RU" Location = "ASI|RU|RS052|MOSKVA" Country = "Russia" +City Name = "Mosoro, BR" Location = "SAM|BR|BR018|MOSSOR" Country = "Brazil" +City Name = "Mossel Bay, ZA" Location = "AFR|ZA|SF011|MOSSEL BAY" Country = "South Africa" +City Name = "Mostaganem, DZ" Location = "AFR|DZ|AG030|MOSTAGANEM" Country = "Algeria" +City Name = "Mostar, BA" Location = "EUR|BA|BK001|MOSTAR" Country = "Bosnia And Herzegovina" +City Name = "Mostoles, ES" Location = "EUR|ES|SP013|MSTOLES" Country = "Spain" +City Name = "Mosul, IQ" Location = "MEA|IQ|IZ016|MOSUL" Country = "Iraq" +City Name = "Moulmein, MM" Location = "ASI|MM|BM009|MOULMEIN" Country = "Burma/Myanmar" +City Name = "Mozambique Island, MZ" Location = "AFR|MZ|MZ006|MOZAMBIQUE ISLAND" Country = "Mozambique" +City Name = "Mthatha, ZA" Location = "AFR|ZA|SF002|MTHATHA" Country = "South Africa" +City Name = "Mudanjiang, CN" Location = "ASI|CN|CH011|MUDANJIANG" Country = "China" +City Name = "Mufulira, ZM" Location = "AFR|ZM|ZA001|MUFULIRA" Country = "Zambia" +City Name = "Mulheim, DE" Location = "EUR|DE|GM011|MLHEIM AN DER RUHR" Country = "Germany" +City Name = "Mulhouse, FR" Location = "EUR|FR|FR001|MULHOUSE" Country = "France" +City Name = "Multan, PK" Location = "ASI|PK|PK007|MULTAN" Country = "Pakistan" +City Name = "Mumbai, IN" Location = "ASI|IN|IN021|MUMBAI" Country = "India" +City Name = "Munger, IN" Location = "ASI|IN|IN005|MUNGER" Country = "India" +City Name = "Munich, DE" Location = "EUR|DE|GM002|MNCHEN" Country = "Germany" +City Name = "Munster, DE" Location = "EUR|DE|GM007|MNSTER" Country = "Germany" +City Name = "Muntinlupa, PH" Location = "ASI|PH|RP103|MUNTINLUPA" Country = "Philippines" +City Name = "Murcia, ES" Location = "EUR|ES|SP014|MURCIA" Country = "Spain" +City Name = "Muridke, PK" Location = "ASI|PK|PK007|MURIDKE" Country = "Pakistan" +City Name = "Murmansk, RU" Location = "ASI|RU|RS053|MURMANSK" Country = "Russia" +City Name = "Murom, RU" Location = "ASI|RU|RS087|MUROM" Country = "Russia" +City Name = "Muroran, JP" Location = "ASI|JP|JA012|MURORAN" Country = "Japan" +City Name = "Murwara, IN" Location = "ASI|IN|IN020|MURWARA" Country = "India" +City Name = "Musashino, JP" Location = "ASI|JP|JA041|MUSASHINO" Country = "Japan" +City Name = "Muscat, OM" Location = "MEA|OM|MU006|MUSCAT" Country = "Oman" +City Name = "Mushin, NG" Location = "AFR|NG|NI024|MUSHIN" Country = "Nigeria" +City Name = "Musina, ZA" Location = "AFR|ZA|SF009|MUSINA" Country = "South Africa" +City Name = "Mutare, ZW" Location = "AFR|ZW|ZI000|MUTARE" Country = "Zimbabwe" +City Name = "Muzaffarnagar, IN" Location = "ASI|IN|IN033|MUZAFFARNAGAR" Country = "India" +City Name = "Muzaffarpur, IN" Location = "ASI|IN|IN005|MUZAFFARPUR" Country = "India" +City Name = "Mwanza, TZ" Location = "AFR|TZ|TZ000|MWANZA" Country = "Tanzania" +City Name = "Mymensingh, BD" Location = "ASI|BD|BG002|MYMENSINGH" Country = "Bangladesh" +City Name = "Myrtle Beach, SC, US" Location = "NAM|US|SC|Myrtle Beach" Country = "United States" +City Name = "Mysore, IN" Location = "ASI|IN|IN017|MYSORE" Country = "India" +City Name = "Mytho, VN" Location = "ASI|VN|VM059|MYTHO" Country = "Vietnam" +City Name = "Mytishchi, RU" Location = "ASI|RU|RS051|MYTISHCHI" Country = "Russia" +City Name = "Nabadwip, IN" Location = "ASI|IN|IN036|NABADWIP" Country = "India" +City Name = "Naberezhnyye Chelny, RU" Location = "ASI|RU|RS077|NABEREZHNYYE CHELNY" Country = "Russia" +City Name = "Nacala, MZ" Location = "AFR|MZ|MZ006|NACALA" Country = "Mozambique" +City Name = "Nadiad, IN" Location = "ASI|IN|IN012|NADIAD" Country = "India" +City Name = "Naestved, DK" Location = "EUR|DK|DA013|NAESTVED" Country = "Denmark" +City Name = "Naga, PH" Location = "ASI|PH|RP082|NAGA" Country = "Philippines" +City Name = "Nagano, JP" Location = "ASI|JP|JA026|NAGANO" Country = "Japan" +City Name = "Nagaoka, JP" Location = "ASI|JP|JA029|NAGAOKA" Country = "Japan" +City Name = "Nagareyama, JP" Location = "ASI|JP|JA035|NAGAREYAMA" Country = "Japan" +City Name = "Nagasaki, JP" Location = "ASI|JP|JA027|NAGASAKI" Country = "Japan" +City Name = "Nagercoil, IN" Location = "ASI|IN|IN031|NAGERCOIL" Country = "India" +City Name = "Nagoya, JP" Location = "ASI|JP|JA001|NAGOYA" Country = "Japan" +City Name = "Nagpur, IN" Location = "ASI|IN|IN021|NAGPUR" Country = "India" +City Name = "Naihati, IN" Location = "ASI|IN|IN036|NAIHATI" Country = "India" +City Name = "Nairobi, KE" Location = "AFR|KE|KE004|NAIROBI" Country = "Kenya" +City Name = "Najaf, IQ" Location = "MEA|IQ|IZ005|NAJAF" Country = "Iraq" +City Name = "Najafabad, IR" Location = "MEA|IR|IR006|NAJAFABAD" Country = "Iran" +City Name = "Nakhodka, RU" Location = "ASI|RU|RS063|NAKHODKA" Country = "Russia" +City Name = "Nakhon Pathom, TH" Location = "ASI|TH|TH026|NAKHON PATHOM" Country = "Thailand" +City Name = "Nakhon Ratchasima, TH" Location = "ASI|TH|TH028|NAKHON RATCHASIMA" Country = "Thailand" +City Name = "Nakhon Sawan, TH" Location = "ASI|TH|TH029|NAKHON SAWAN" Country = "Thailand" +City Name = "Nakhon Si Thammarat, TH" Location = "ASI|TH|TH030|NAKHON SI THAMMARAT" Country = "Thailand" +City Name = "Nakuru, KE" Location = "AFR|KE|KE007|NAKURU" Country = "Kenya" +City Name = "Nalchik, RU" Location = "ASI|RU|RS024|NALCHIK" Country = "Russia" +City Name = "Namangan, UZ" Location = "ASI|UZ|UZ006|NAMANGAN" Country = "Uzbekistan" +City Name = "Namdinh, VN" Location = "ASI|VN|VM042|NAMDINH" Country = "Vietnam" +City Name = "Nampula, MZ" Location = "AFR|MZ|MZ006|NAMPULA" Country = "Mozambique" +City Name = "Namur, BE" Location = "EUR|BE|BE008|NAMUR" Country = "Belgium" +City Name = "Nanchang, CN" Location = "ASI|CN|CH016|NANCHANG" Country = "China" +City Name = "Nanchong, CN" Location = "ASI|CN|CH026|NANCHONG" Country = "China" +City Name = "Nanded, IN" Location = "ASI|IN|IN021|NANDED" Country = "India" +City Name = "Nandyal, IN" Location = "ASI|IN|IN002|NANDYAL" Country = "India" +City Name = "Nangong, CN" Location = "ASI|CN|CH010|NANGONG" Country = "China" +City Name = "Nanjing, CN" Location = "ASI|CN|CH016|NANJING" Country = "China" +City Name = "Nanning, CN" Location = "ASI|CN|CH007|NANNING" Country = "China" +City Name = "Nanping, CN" Location = "ASI|CN|CH004|NANPING" Country = "China" +City Name = "Nantes, FR" Location = "EUR|FR|FR018|NANTES" Country = "France" +City Name = "Nantong, CN" Location = "ASI|CN|CH015|NANTONG" Country = "China" +City Name = "Nanyang, CN" Location = "ASI|CN|CH004|NANYANG" Country = "China" +City Name = "Nanyuki, KE" Location = "AFR|KE|KE007|NANYUKI" Country = "Kenya" +City Name = "Naperville, IL, US" Location = "NAM|US|IL|NAPERVILLE" Country = "United States" +City Name = "Napier-Hastings, NZ" Location = "OCN|NZ|NZ000|NAPIER-HASTINGS" Country = "New Zealand" +City Name = "Napoli, IT" Location = "EUR|IT|IT004|NAPOLI" Country = "Italy" +City Name = "Nara, JP" Location = "ASI|JP|JA028|NARA" Country = "Japan" +City Name = "Narashino, JP" Location = "ASI|JP|JA004|NARASHINO" Country = "Japan" +City Name = "Narayanganj, BD" Location = "ASI|BD|BG002|NARAYANGANJ" Country = "Bangladesh" +City Name = "Naryan-Mar, RU" Location = "ASI|RU|RS054|NARYAN-MAR" Country = "Russia" +City Name = "Nashville, TN, US" Location = "NAM|US|TN|NASHVILLE" Country = "United States" +City Name = "Nassau, BS" Location = "CAC|BS|BF016|NASSAU" Country = "The Bahamas" +City Name = "Natal, BR" Location = "SAM|BR|BR018|NATAL" Country = "Brazil" +City Name = "Naucalpan, MX" Location = "NAM|MX|MX015|NAUCALPAN" Country = "Mexico" +City Name = "Navoi, UZ" Location = "ASI|UZ|UZ007|NAVOI" Country = "Uzbekistan" +City Name = "Navsari, IN" Location = "ASI|IN|IN012|NAVSARI" Country = "India" +City Name = "Nawabganj, BD" Location = "ASI|BD|BG002|NAWABGANJ" Country = "Bangladesh" +City Name = "Nawabshah, PK" Location = "ASI|PK|PK008|NAWABSHAH" Country = "Pakistan" +City Name = "N'Djamena, TD" Location = "AFR|TD|CD004|N'DJAMENA" Country = "Chad" +City Name = "Ndola, ZM" Location = "AFR|ZM|ZA001|NDOLA" Country = "Zambia" +City Name = "Neftekamsk, RU" Location = "ASI|RU|RS007|NEFTEKAMSK" Country = "Russia" +City Name = "Neijiang, CN" Location = "ASI|CN|CH026|NEIJIANG" Country = "China" +City Name = "Neiva, CO" Location = "SAM|CO|CO015|NEIVA" Country = "Colombia" +City Name = "Nellore, IN" Location = "ASI|IN|IN002|NELLORE" Country = "India" +City Name = "Nelspruit, ZA" Location = "AFR|ZA|SF006|NELSPRUIT" Country = "South Africa" +City Name = "Nepean, CA" Location = "NAM|CA|ON|NEPEAN" Country = "Canada" +City Name = "Netanya, IL" Location = "MEA|IL|IS002|NETANYA" Country = "Israel" +City Name = "Netzahualcoyotl, MX" Location = "NAM|MX|MX027|NETZAHUALCYOTL" Country = "Mexico" +City Name = "Neuquen, AR" Location = "SAM|AR|AR015|NEUQUN" Country = "Argentina" +City Name = "Neuss, DE" Location = "EUR|DE|GM011|NEUSS" Country = "Germany" +City Name = "Nevinnomyssk, RU" Location = "ASI|RU|RS074|NEVINNOMYSSK" Country = "Russia" +City Name = "New Delhi, IN" Location = "ASI|IN|IN010|NEW DELHI" Country = "India" +City Name = "New Haven, CT, US" Location = "NAM|US|CT|NEW HAVEN" Country = "United States" +City Name = "New Orleans, LA, US" Location = "NAM|US|LA|NEW ORLEANS" Country = "United States" +City Name = "New York, NY, US" Location = "NAM|US|NY|NEW YORK" Country = "United States" +City Name = "Newark, NJ, US" Location = "NAM|US|NJ|NEWARK" Country = "United States" +City Name = "Newbury, UK" Location = "EUR|UK|UK001|NEWBURY" Country = "United Kingdom" +City Name = "Newcastle, AU" Location = "OCN|AU|NSW|NEWCASTLE" Country = "Australia" +City Name = "Newcastle, ZA" Location = "AFR|ZA|SF005|NEWCASTLE" Country = "South Africa" +City Name = "Newcastle-Under-Lyme, UK" Location = "EUR|UK|UK001|NEWCASTLE-UNDER-LYME" Country = "United Kingdom" +City Name = "Newcastle-Upon-Tyne, UK" Location = "EUR|UK|UK001|NEWCASTLE-UPON-TYNE" Country = "United Kingdom" +City Name = "Newham, UK" Location = "EUR|UK|UK001|NEWHAM" Country = "United Kingdom" +City Name = "Newport, UK" Location = "EUR|UK|UK001|NEWPORT" Country = "United Kingdom" +City Name = "Newport News, VA, US" Location = "NAM|US|VA|NEWPORT NEWS" Country = "United States" +City Name = "Neyagawa, JP" Location = "ASI|JP|JA033|NEYAGAWA" Country = "Japan" +City Name = "Neyshabur, IR" Location = "MEA|IR|IR015|NEYSHABUR" Country = "Iran" +City Name = "Neyveli, IN" Location = "ASI|IN|IN031|NEYVELI" Country = "India" +City Name = "Ngaoundere, CM" Location = "AFR|CM|CM001|NGAOUNDERE" Country = "Cameroon" +City Name = "Ngqura, ZA" Location = "AFR|ZA|SF002|NGQURA" Country = "South Africa" +City Name = "Nhatrang, VN" Location = "ASI|VN|VM011|NHATRANG" Country = "Vietnam" +City Name = "Niamey, NE" Location = "AFR|NE|NG005|NIAMEY" Country = "Niger" +City Name = "Nice, FR" Location = "EUR|FR|FR021|NICE" Country = "France" +City Name = "Nicosia, CY" Location = "MEA|CY|CY005|NICOSIA" Country = "Cyprus" +City Name = "Nieu Bethesda, ZA" Location = "AFR|ZA|SF002|NIEU BETHESDA" Country = "South Africa" +City Name = "Nieuwoudtville, ZA" Location = "AFR|ZA|SF008|NIEUWOUDTVILLE" Country = "South Africa" +City Name = "Niigata, JP" Location = "ASI|JP|JA029|NIIGATA" Country = "Japan" +City Name = "Niihama, JP" Location = "ASI|JP|JA005|NIIHAMA" Country = "Japan" +City Name = "Niiza, JP" Location = "ASI|JP|JA035|NIIZA" Country = "Japan" +City Name = "Nijmegen, NL" Location = "EUR|NL|NL004|NIJMEGEN" Country = "Netherlands" +City Name = "Nikopol, BG" Location = "EUR|BG|BU012|NIKOPOL" Country = "Bulgaria" +City Name = "Nimes, FR" Location = "EUR|FR|FR013|NMES" Country = "France" +City Name = "Ningbo, CN" Location = "ASI|CN|CH031|NINGBO" Country = "China" +City Name = "Ningde, CN" Location = "ASI|CN|CH004|NINGDE" Country = "China" +City Name = "Nis, CS" Location = "EUR|CS|YI003|NIS" Country = "Serbia" +City Name = "Nishinomiya, JP" Location = "ASI|JP|JA013|NISHINOMIYA" Country = "Japan" +City Name = "Nishio, JP" Location = "ASI|JP|JA001|NISHIO" Country = "Japan" +City Name = "Niteroi, BR" Location = "SAM|BR|BR017|NITERI" Country = "Brazil" +City Name = "Nizamabad, IN" Location = "ASI|IN|IN002|NIZAMABAD" Country = "India" +City Name = "Nizhnekamsk, RU" Location = "ASI|RU|RS077|NIZHNEKAMSK" Country = "Russia" +City Name = "Nizhnevartovsk, RU" Location = "ASI|RU|RS034|NIZHNEVARTOVSK" Country = "Russia" +City Name = "Nizhniy Novgorod, RU" Location = "ASI|RU|RS055|NIZHNIY NOVGOROD" Country = "Russia" +City Name = "Nizhny Tagil, RU" Location = "ASI|RU|RS075|NIZHNY TAGIL" Country = "Russia" +City Name = "Nkongsamba, CM" Location = "AFR|CM|CM005|NKONGSAMBA" Country = "Cameroon" +City Name = "Nobeoka, JP" Location = "ASI|JP|JA025|NOBEOKA" Country = "Japan" +City Name = "Noda, JP" Location = "ASI|JP|JA004|NODA" Country = "Japan" +City Name = "Nogales, MX" Location = "NAM|MX|MX030|NOGALES" Country = "Mexico" +City Name = "Noginsk, RU" Location = "ASI|RU|RS018|NOGINSK" Country = "Russia" +City Name = "Norfolk, VA, US" Location = "NAM|US|VA|NORFOLK" Country = "United States" +City Name = "Norilsk, RU" Location = "ASI|RU|RS041|NORILSK" Country = "Russia" +City Name = "Norrkoeping, SE" Location = "EUR|SE|SW012|NORRKOEPING" Country = "Sweden" +City Name = "North Las Vegas, NV, US" Location = "NAM|US|NV|NORTH LAS VEGAS" Country = "United States" +City Name = "North York, CA" Location = "NAM|CA|ON|NORTH YORK" Country = "Canada" +City Name = "Northampton, UK" Location = "EUR|UK|UK001|NORTHAMPTON" Country = "United Kingdom" +City Name = "Northshore, NZ" Location = "OCN|NZ|NZ000|NORTHSHORE" Country = "New Zealand" +City Name = "Norwalk, CA, US" Location = "NAM|US|CA|NORWALK" Country = "United States" +City Name = "Norwich, UK" Location = "EUR|UK|UK001|NORWICH" Country = "United Kingdom" +City Name = "Nossa Senhora Do Socorro, BR" Location = "SAM|BR|BR024|NOSSA SENHORA DO SOCORRO" Country = "Brazil" +City Name = "Nottingham, UK" Location = "EUR|UK|UK001|NOTTINGHAM" Country = "United Kingdom" +City Name = "Nouakchott, MR" Location = "AFR|MR|MR005|NOUAKCHOTT" Country = "Mauritania" +City Name = "Noumea, NC" Location = "OCN|NC|NC000|NOUMEA" Country = "New Caledonia" +City Name = "Nova Friburgo, BR" Location = "SAM|BR|BR017|NOVA FRIBURGO" Country = "Brazil" +City Name = "Nova Iguacu, BR" Location = "SAM|BR|BR017|NOVA IGUAU" Country = "Brazil" +City Name = "Novara, IT" Location = "EUR|IT|IT012|NOVARA" Country = "Italy" +City Name = "Novi Sad, CS" Location = "EUR|CS|YI003|NOVI SAD" Country = "Serbia" +City Name = "Novo Hamburgo, BR" Location = "SAM|BR|BR019|NVO HAMBURGO" Country = "Brazil" +City Name = "Novocheboksarsk, RU" Location = "ASI|RU|RS016|NOVOCHEBOKSARSK" Country = "Russia" +City Name = "Novocherkassk, RU" Location = "ASI|RU|RS059|NOVOCHERKASSK" Country = "Russia" +City Name = "Novokuznetsk, RU" Location = "ASI|RU|RS031|NOVOKUZNETSK" Country = "Russia" +City Name = "Novomoskovsk, RU" Location = "ASI|RU|RS080|NOVOMOSKOVSK" Country = "Russia" +City Name = "Novopolotsk, BY" Location = "EUR|BY|BO000|NOVOPOLOTSK" Country = "Belarus" +City Name = "Novorossiysk, RU" Location = "ASI|RU|RS079|NOVOROSSIYSK" Country = "Russia" +City Name = "Novoshakhtinsk, RU" Location = "ASI|RU|RS065|NOVOSHAKHTINSK" Country = "Russia" +City Name = "Novosibirsk, RU" Location = "ASI|RU|RS057|NOVOSIBIRSK" Country = "Russia" +City Name = "Novotroitsk, RU" Location = "ASI|RU|RS057|NOVOTROITSK" Country = "Russia" +City Name = "Nueva San Salvador, SV" Location = "CAC|SV|ES005|NUEVA SAN SALVADOR" Country = "El Salvador" +City Name = "Nuevo Laredo, MX" Location = "NAM|MX|MX028|NUEVO LAREDO" Country = "Mexico" +City Name = "Nuku'Alofa, TO" Location = "OCN|TO|TO002|NUKU'ALOFA" Country = "Tonga" +City Name = "Nukus, UZ" Location = "ASI|UZ|UZ009|NUKUS" Country = "Uzbekistan" +City Name = "Numazu, JP" Location = "ASI|JP|JA038|NUMAZU" Country = "Japan" +City Name = "Nuneaton, UK" Location = "EUR|UK|UK238|NUNEATON" Country = "United Kingdom" +City Name = "Nuneaton and Bedworth, UK" Location = "EUR|UK|UK001|NUNEATON AND BEDWORTH" Country = "United Kingdom" +City Name = "Nurnberg, DE" Location = "EUR|DE|GM002|NRNBERG" Country = "Germany" +City Name = "Nuuk, GL" Location = "ARC|GL|GL003|NUUK" Country = "Greenland" +City Name = "Nyala, SD" Location = "AFR|SD|SU016|NYALA" Country = "Sudan" +City Name = "Nyiregyhaza, HU" Location = "EUR|HU|HU029|NYIREGYHAZA" Country = "Hungary" +City Name = "Nylstroom, ZA" Location = "AFR|ZA|SF009|NYLSTROOM" Country = "South Africa" +City Name = "Oakland, CA, US" Location = "NAM|US|CA|OAKLAND" Country = "United States" +City Name = "Oakville, CA" Location = "NAM|CA|ON|OAKVILLE" Country = "Canada" +City Name = "Oaxaca, MX" Location = "NAM|MX|MX020|OAXACA DE JUREZ" Country = "Mexico" +City Name = "Oberhausen, DE" Location = "EUR|DE|GM007|OBERHAUSEN" Country = "Germany" +City Name = "Obihiro, JP" Location = "ASI|JP|JA012|OBIHIRO" Country = "Japan" +City Name = "Obninsk, RU" Location = "ASI|RU|RS027|OBNINSK" Country = "Russia" +City Name = "Obregon, MX" Location = "NAM|MX|MX026|CIUDAD OBREGN" Country = "Mexico" +City Name = "Obuasi, GH" Location = "AFR|GH|GH000|OBUASI" Country = "Ghana" +City Name = "Oceanside, CA, US" Location = "NAM|US|CA|OCEANSIDE" Country = "United States" +City Name = "Odawara, JP" Location = "ASI|JP|JA019|ODAWARA" Country = "Japan" +City Name = "Odense, DK" Location = "EUR|DK|DA005|ODENSE" Country = "Denmark" +City Name = "Odessa, UA" Location = "EUR|UA|UP015|ODESSA" Country = "Ukraine" +City Name = "Odintsovo, RU" Location = "ASI|RU|RS051|ODINTSOVO" Country = "Russia" +City Name = "Oestersund, SE" Location = "EUR|SE|SW006|OESTERSUND" Country = "Sweden" +City Name = "Offenbach Am Main, DE" Location = "EUR|DE|GM007|OFFENBACH AM MAIN" Country = "Germany" +City Name = "Ogaki, JP" Location = "ASI|JP|JA009|OGAKI" Country = "Japan" +City Name = "Ogbomosho, NG" Location = "AFR|NG|NI000|OGBOMOSHO" Country = "Nigeria" +City Name = "Ohrigstad, ZA" Location = "AFR|ZA|SF006|OHRIGSTAD" Country = "South Africa" +City Name = "Oita, JP" Location = "ASI|JP|JA030|OITA" Country = "Japan" +City Name = "Okara, PK" Location = "ASI|PK|PK007|OKARA" Country = "Pakistan" +City Name = "Okayama, JP" Location = "ASI|JP|JA031|OKAYAMA" Country = "Japan" +City Name = "Okazaki, JP" Location = "ASI|JP|JA001|OKAZAKI" Country = "Japan" +City Name = "Okinawa, JP" Location = "ASI|JP|JA032|OKINAWA" Country = "Japan" +City Name = "Oklahoma City, OK, US" Location = "NAM|US|OK|OKLAHOMA CITY" Country = "United States" +City Name = "Oldenburg, DE" Location = "EUR|DE|GM009|OLDENBURG" Country = "Germany" +City Name = "Oldham, UK" Location = "EUR|UK|UK001|OLDHAM" Country = "United Kingdom" +City Name = "Olinda, BR" Location = "SAM|BR|BR026|OLINDA" Country = "Brazil" +City Name = "Olomouc, CZ" Location = "EUR|CZ|EZ004|OLOMOUC" Country = "Czech Republic" +City Name = "Olongapo, PH" Location = "ASI|PH|RP089|OLONGAPO" Country = "Philippines" +City Name = "Olsztyn, PL" Location = "EUR|PL|PL014|OLSZTYN" Country = "Poland" +City Name = "Olympia, WA, US" Location = "NAM|US|WA|OLYMPIA" Country = "United States" +City Name = "Omaha, NE, US" Location = "NAM|US|NE|OMAHA" Country = "United States" +City Name = "Omdurman, SD" Location = "AFR|SD|SU005|OMDURMAN" Country = "Sudan" +City Name = "Ome, JP" Location = "ASI|JP|JA041|OME" Country = "Japan" +City Name = "Omiya, JP" Location = "ASI|JP|JA014|OMIYA" Country = "Japan" +City Name = "Omsk, RU" Location = "ASI|RU|RS058|OMSK" Country = "Russia" +City Name = "Omuta, JP" Location = "ASI|JP|JA007|OMUTA" Country = "Japan" +City Name = "Ondal, IN" Location = "ASI|IN|IN036|ONDAL" Country = "India" +City Name = "Ongole, IN" Location = "ASI|IN|IN002|ONGOLE" Country = "India" +City Name = "Onitsha, NG" Location = "AFR|NG|NI000|ONITSHA" Country = "Nigeria" +City Name = "Ontario, CA, US" Location = "NAM|US|CA|ONTARIO" Country = "United States" +City Name = "Onyang, KR" Location = "ASI|KR|KS002|ONYANG" Country = "South Korea" +City Name = "Opole, PL" Location = "EUR|PL|PL008|OPOLE" Country = "Poland" +City Name = "Oradea, RO" Location = "EUR|RO|RO005|ORADEA" Country = "Romania" +City Name = "Oran, DZ" Location = "AFR|DZ|AG032|ORAN" Country = "Algeria" +City Name = "Orange, CA, US" Location = "NAM|US|CA|ORANGE" Country = "United States" +City Name = "Ordu, TR" Location = "MEA|TR|TU062|ORDU" Country = "Turkey" +City Name = "Orebro, SE" Location = "EUR|SE|SW011|OREBRO" Country = "Sweden" +City Name = "Orekhovo-Zuevo, RU" Location = "ASI|RU|RS051|OREKHOVO-ZUEVO" Country = "Russia" +City Name = "Orel, RU" Location = "ASI|RU|RS062|OREL" Country = "Russia" +City Name = "Orenburg, RU" Location = "ASI|RU|RS059|ORENBURG" Country = "Russia" +City Name = "Orizaba, MX" Location = "NAM|MX|MX030|ORIZABA" Country = "Mexico" +City Name = "Orlando, FL, US" Location = "NAM|US|FL|ORLANDO" Country = "United States" +City Name = "Orleans, FR" Location = "EUR|FR|FR007|ORLANS" Country = "France" +City Name = "Ormoc, PH" Location = "ASI|PH|RP090|ORMOC" Country = "Philippines" +City Name = "Orsha, BY" Location = "EUR|BY|BO007|ORSHA" Country = "Belarus" +City Name = "Orsk, RU" Location = "ASI|RU|RS059|ORSK" Country = "Russia" +City Name = "Orumiyeh, IR" Location = "MEA|IR|IR029|ORUMIYEH" Country = "Iran" +City Name = "Oruro, BO" Location = "SAM|BO|BL005|ORURO" Country = "Bolivia" +City Name = "Osaka, JP" Location = "ASI|JP|JA009|OSAKA" Country = "Japan" +City Name = "Osasco, BR" Location = "SAM|BR|BR023|OSASCO" Country = "Brazil" +City Name = "Osh, KG" Location = "ASI|KG|KG006|OSH" Country = "Kyrgyzstan" +City Name = "Oshawa, CA" Location = "NAM|CA|ON|OSHAWA" Country = "Canada" +City Name = "Oshogbo, NG" Location = "AFR|NG|NI000|OSHOGBO" Country = "Nigeria" +City Name = "Osijek, HR" Location = "EUR|HR|HR011|OSIJEK" Country = "Croatia" +City Name = "Oslo, NO" Location = "EUR|NO|NO011|OSLO" Country = "Norway" +City Name = "Osmaniye, TR" Location = "MEA|TR|TU000|OSMANIYE" Country = "Turkey" +City Name = "Osnabruck, DE" Location = "EUR|DE|GM009|OSNABRCK" Country = "Germany" +City Name = "Osorno, CL" Location = "SAM|CL|CI008|OSORNO" Country = "Chile" +City Name = "Ostrava, CZ" Location = "EUR|CZ|EZ004|OSTRAVA" Country = "Czech Republic" +City Name = "Ota, JP" Location = "ASI|JP|JA006|OTA" Country = "Japan" +City Name = "Otaru, JP" Location = "ASI|JP|JA012|OTARU" Country = "Japan" +City Name = "Otsu, JP" Location = "ASI|JP|JA036|OTSU" Country = "Japan" +City Name = "Ottawa, CA" Location = "NAM|CA|ON|OTTAWA" Country = "Canada" +City Name = "Ouagadougou, BF" Location = "AFR|BF|UV010|OUAGADOUGOU" Country = "Burkina Faso" +City Name = "Oudtshoorn, ZA" Location = "AFR|ZA|SF011|OUDTSHOORN" Country = "South Africa" +City Name = "Oujda, MA" Location = "AFR|MA|MO029|OUJDA" Country = "Morocco" +City Name = "Oulu, FI" Location = "EUR|FI|FI007|OULU" Country = "Finland" +City Name = "Ourense, ES" Location = "EUR|ES|SP011|OURENSE" Country = "Spain" +City Name = "Overland Park, KS, US" Location = "NAM|US|KS|OVERLAND PARK" Country = "United States" +City Name = "Oviedo, ES" Location = "EUR|ES|SP003|OVIEDO" Country = "Spain" +City Name = "Oxford, UK" Location = "EUR|UK|UK001|OXFORD" Country = "United Kingdom" +City Name = "Oxnard, CA, US" Location = "NAM|US|CA|OXNARD" Country = "United States" +City Name = "Oyama, JP" Location = "ASI|JP|JA038|OYAMA" Country = "Japan" +City Name = "Oyo, NG" Location = "AFR|NG|NI029|OYO" Country = "Nigeria" +City Name = "Ozamis, PH" Location = "ASI|PH|RP092|OZAMIS" Country = "Philippines" +City Name = "Paarl, ZA" Location = "AFR|ZA|SF011|PAARL" Country = "South Africa" +City Name = "Pabna, BD" Location = "ASI|BD|BG004|PABNA" Country = "Bangladesh" +City Name = "Pachuca, MX" Location = "NAM|MX|MX013|PACHUCA" Country = "Mexico" +City Name = "Padang, ID" Location = "ASI|ID|ID006|PADANG" Country = "Indonesia" +City Name = "Paderborn, DE" Location = "EUR|DE|GM011|PADERBORN" Country = "Germany" +City Name = "Padova, IT" Location = "EUR|IT|IT020|PADOVA" Country = "Italy" +City Name = "Pagadian, PH" Location = "ASI|PH|RP093|PAGADIAN" Country = "Philippines" +City Name = "Pago Pago, AS" Location = "OCN|AS|AS000|PAGO PAGO" Country = "American Samoa" +City Name = "Pakan Baru, ID" Location = "ASI|ID|ID018|PAKAN BARU" Country = "Indonesia" +City Name = "Pakpattan, PK" Location = "ASI|PK|PK007|PAKPATTAN" Country = "Pakistan" +City Name = "Palembang, ID" Location = "ASI|ID|ID024|PALEMBANG" Country = "Indonesia" +City Name = "Palermo, IT" Location = "EUR|IT|IT015|PALERMO" Country = "Italy" +City Name = "Pali, IN" Location = "ASI|IN|IN020|PALI" Country = "India" +City Name = "Palma De Mallorca, ES" Location = "EUR|ES|SP004|PALMA DE MALLORCA" Country = "Spain" +City Name = "Palmas, BR" Location = "SAM|BR|BR015|PALMAS" Country = "Brazil" +City Name = "Palmdale, CA, US" Location = "NAM|US|CA|PALMDALE" Country = "United States" +City Name = "Palmira, CO" Location = "SAM|CO|CO027|PALMIRA" Country = "Colombia" +City Name = "Pamplona, ES" Location = "EUR|ES|SP015|PAMPLONA" Country = "Spain" +City Name = "Panama, PA" Location = "CAC|PA|PM008|PANAMA" Country = "Panama" +City Name = "Panama City, FL, US" Location = "NAM|US|FL|Panama City" Country = "United States" +City Name = "Pancevo, CS" Location = "EUR|CS|YI003|PANCEVO" Country = "Serbia" +City Name = "Panevezhis, LT" Location = "EUR|LT|LH030|PANEVEZHIS" Country = "Lithuania" +City Name = "Panihati, IN" Location = "ASI|IN|IN036|PANIHATI" Country = "India" +City Name = "Panipat, IN" Location = "ASI|IN|IN013|PANIPAT" Country = "India" +City Name = "Panjin, CN" Location = "ASI|CN|CH018|PANJIN" Country = "China" +City Name = "Panzhihua, CN" Location = "ASI|CN|CH026|PANZHIHUA" Country = "China" +City Name = "Papeete, PF" Location = "OCN|PF|FP000|PAPEETE" Country = "French Polynesia" +City Name = "Parakou, BJ" Location = "AFR|BJ|BN000|PARAKOU" Country = "Benin" +City Name = "Paramaribo, SR" Location = "SAM|SR|NS007|PARAMARIBO" Country = "Suriname" +City Name = "Parana, AR" Location = "SAM|AR|AR022|PARAN" Country = "Argentina" +City Name = "Paranagua, BR" Location = "SAM|BR|BR015|PARANAGU" Country = "Brazil" +City Name = "Parbhani, IN" Location = "ASI|IN|IN021|PARBHANI" Country = "India" +City Name = "Paris, FR" Location = "EUR|FR|FR012|PARIS" Country = "France" +City Name = "Parma, IT" Location = "EUR|IT|IT005|PARMA" Country = "Italy" +City Name = "Parnaiba, BR" Location = "SAM|BR|BR016|PARNABA" Country = "Brazil" +City Name = "Pasadena, CA, US" Location = "NAM|US|CA|PASADENA" Country = "United States" +City Name = "Pasadena, TX, US" Location = "NAM|US|TX|PASADENA" Country = "United States" +City Name = "Pasay, PH" Location = "ASI|PH|RP098|PASAY" Country = "Philippines" +City Name = "Pasig, PH" Location = "ASI|PH|RP103|PASIG" Country = "Philippines" +City Name = "Passo Fundo, BR" Location = "SAM|BR|BR019|PASSO FUNDO" Country = "Brazil" +City Name = "Passos, BR" Location = "SAM|BR|BR012|PASSOS" Country = "Brazil" +City Name = "Pasto, CO" Location = "SAM|CO|CO018|PASTO" Country = "Colombia" +City Name = "Patan, IN" Location = "ASI|IN|IN012|PATAN" Country = "India" +City Name = "Paterson, NJ, US" Location = "NAM|US|NJ|PATERSON" Country = "United States" +City Name = "Pathankot, IN" Location = "ASI|IN|IN028|PATHANKOT" Country = "India" +City Name = "Pathum Thani, TH" Location = "ASI|TH|TH036|PATHUM THANI" Country = "Thailand" +City Name = "Patiala, IN" Location = "ASI|IN|IN028|PATIALA" Country = "India" +City Name = "Patos De Minas, BR" Location = "SAM|BR|BR012|PATOS DE MINAS" Country = "Brazil" +City Name = "Patrai, GR" Location = "EUR|GR|GR003|PATRAI" Country = "Greece" +City Name = "Patratu, IN" Location = "ASI|IN|IN005|PATRATU" Country = "India" +City Name = "Pattaya, TH" Location = "ASI|TH|TH010|PATTAYA" Country = "Thailand" +City Name = "Pau, FR" Location = "EUR|FR|FR022|PAU" Country = "France" +City Name = "Paulista, BR" Location = "SAM|BR|BR026|PAULISTA" Country = "Brazil" +City Name = "Pavlodar, KZ" Location = "ASI|KZ|KZ010|PAVLODAR" Country = "Kazakhstan" +City Name = "Pavlograd, UA" Location = "EUR|UA|UP003|PAVLOGRAD" Country = "Ukraine" +City Name = "Pecs, HU" Location = "EUR|HU|HU025|PCS" Country = "Hungary" +City Name = "Pegu, MM" Location = "ASI|MM|BM002|PEGU" Country = "Burma/Myanmar" +City Name = "Pelotas, BR" Location = "SAM|BR|BR019|PELOTAS" Country = "Brazil" +City Name = "Pematang Siantar, ID" Location = "ASI|ID|ID027|PEMATANG SIANTAR" Country = "Indonesia" +City Name = "Pemba, MZ" Location = "AFR|MZ|MZ001|PEMBA" Country = "Mozambique" +City Name = "Pembroke Pines, FL, US" Location = "NAM|US|FL|PEMBROKE PINES" Country = "United States" +City Name = "Penza, RU" Location = "ASI|RU|RS061|PENZA" Country = "Russia" +City Name = "Peoria, IL, US" Location = "NAM|US|IL|PEORIA" Country = "United States" +City Name = "Pereira, CO" Location = "SAM|CO|CO022|PEREIRA" Country = "Colombia" +City Name = "Perm, RU" Location = "ASI|RU|RS062|PERM" Country = "Russia" +City Name = "Perpignan, FR" Location = "EUR|FR|FR013|PERPIGNAN" Country = "France" +City Name = "Perth, AU" Location = "OCN|AU|WA|PERTH" Country = "Australia" +City Name = "Perugia, IT" Location = "EUR|IT|IT018|PERUGIA" Country = "Italy" +City Name = "Pervouralsk, RU" Location = "ASI|RU|RS075|PERVOURALSK" Country = "Russia" +City Name = "Pescara, IT" Location = "EUR|IT|IT001|PESCARA" Country = "Italy" +City Name = "Peshawar, PK" Location = "ASI|PK|PK005|PESHAWAR" Country = "Pakistan" +City Name = "Petah Tiqwa, IL" Location = "MEA|IL|IS002|PETAH TIQWA" Country = "Israel" +City Name = "Petaling Jaya, MY" Location = "ASI|MY|MY000|PETALING JAYA" Country = "Malaysia" +City Name = "Petare, VE" Location = "SAM|VE|VE016|PETARE" Country = "Venezuela" +City Name = "Peterborough, CA" Location = "NAM|CA|ON|PETERBOROUGH" Country = "Canada" +City Name = "Peterborough, UK" Location = "EUR|UK|UK001|PETERBOROUGH" Country = "United Kingdom" +City Name = "Petrolina, BR" Location = "SAM|BR|BR026|PETROLINA" Country = "Brazil" +City Name = "Petropavlovsk, KZ" Location = "ASI|KZ|KZ015|PETROPAVLOVSK" Country = "Kazakhstan" +City Name = "Petropavlovsk, RU" Location = "ASI|RU|RS028|PETROPAVLOVSK-KAMCHATSKY" Country = "Russia" +City Name = "Petropolis, BR" Location = "SAM|BR|BR017|PETRPOLIS" Country = "Brazil" +City Name = "Petrozavodsk, RU" Location = "ASI|RU|RS030|PETROZAVODSK" Country = "Russia" +City Name = "Petrusburg, ZA" Location = "AFR|ZA|SF003|PETRUSBURG" Country = "South Africa" +City Name = "Pforzheim, DE" Location = "EUR|DE|GM001|PFORZHEIM" Country = "Germany" +City Name = "Phalaborwa, ZA" Location = "AFR|ZA|SF009|PHALABORWA" Country = "South Africa" +City Name = "Philadelphia, PA, US" Location = "NAM|US|PA|PHILADELPHIA" Country = "United States" +City Name = "Philippolis, ZA" Location = "AFR|ZA|SF003|PHILIPPOLIS" Country = "South Africa" +City Name = "Phnom Penh, KH" Location = "ASI|KH|CB012|PHNOM PENH" Country = "Cambodia" +City Name = "Phoenix, AZ, US" Location = "NAM|US|AZ|PHOENIX" Country = "United States" +City Name = "Phuket, TH" Location = "ASI|TH|TH047|PHUKET" Country = "Thailand" +City Name = "Piatra Neamt, RO" Location = "EUR|RO|RO029|PIATRA NEAMT" Country = "Romania" +City Name = "Pierre, SD, US" Location = "NAM|US|SD|PIERRE" Country = "United States" +City Name = "Piet Retief, ZA" Location = "AFR|ZA|SF006|PIET RETIEF" Country = "South Africa" +City Name = "Pietermaritzburg, ZA" Location = "AFR|ZA|SF005|PIETERMARITZBURG" Country = "South Africa" +City Name = "Pietersburg, ZA" Location = "AFR|ZA|SF009|PIETERSBURG" Country = "South Africa" +City Name = "Pilgrims Rest, ZA" Location = "AFR|ZA|SF006|PILGRIMS REST" Country = "South Africa" +City Name = "Pilibhit, IN" Location = "ASI|IN|IN033|PILIBHIT" Country = "India" +City Name = "Pinar Del Rio, CU" Location = "CAC|CU|CU012|PINAR DEL RO" Country = "Cuba" +City Name = "Pindamonhangaba, BR" Location = "SAM|BR|BR023|PINDAMONHANGABA" Country = "Brazil" +City Name = "Pingdingshan, CN" Location = "ASI|CN|CH012|PINGDINGSHAN" Country = "China" +City Name = "Pingdu, CN" Location = "ASI|CN|CH016|PINGDU" Country = "China" +City Name = "Pingliang, CN" Location = "ASI|CN|CH005|PINGLIANG" Country = "China" +City Name = "Pinhais, BR" Location = "SAM|BR|BR012|PINHAIS" Country = "Brazil" +City Name = "Pinsk, BY" Location = "EUR|BY|BO001|PINSK" Country = "Belarus" +City Name = "Piracicaba, BR" Location = "SAM|BR|BR023|PIRACICABA" Country = "Brazil" +City Name = "Piraievs, GR" Location = "EUR|GR|GR007|PIRAIVS" Country = "Greece" +City Name = "Pitesti, RO" Location = "EUR|RO|RO003|PITESTI" Country = "Romania" +City Name = "Pittsburgh, PA, US" Location = "NAM|US|PA|PITTSBURGH" Country = "United States" +City Name = "Piura, PE" Location = "SAM|PE|PE020|PIURA" Country = "Peru" +City Name = "Plano, TX, US" Location = "NAM|US|TX|PLANO" Country = "United States" +City Name = "Plettenberg Bay, ZA" Location = "AFR|ZA|SF011|PLETTENBERG BAY" Country = "South Africa" +City Name = "Plock, PL" Location = "EUR|PL|PL007|PLOCK" Country = "Poland" +City Name = "Ploiesti, RO" Location = "EUR|RO|RO031|PLOIESTI" Country = "Romania" +City Name = "Plovdiv, BG" Location = "EUR|BG|BU013|PLOVDIV" Country = "Bulgaria" +City Name = "Plymouth, MS" Location = "CAC|MS|MH001|PLYMOUTH" Country = "Montserrat" +City Name = "Plymouth, UK" Location = "EUR|UK|UK001|PLYMOUTH" Country = "United Kingdom" +City Name = "Plzen, CZ" Location = "EUR|CZ|EZ008|PLZEN" Country = "Czech Republic" +City Name = "Pocos De Caldas, BR" Location = "SAM|BR|BR012|POOS DE CALDAS" Country = "Brazil" +City Name = "Podgorica, CS" Location = "EUR|CS|YI002|PODGORICA" Country = "Montenegro" +City Name = "Podolsk, RU" Location = "ASI|RU|RS051|PODOLSK" Country = "Russia" +City Name = "Pohang, KR" Location = "ASI|KR|KS010|POHANG" Country = "South Korea" +City Name = "Pointe-Noire, GA" Location = "AFR|GA|GB003|POINTE-NOIRE" Country = "Gabon" +City Name = "Pollachi, IN" Location = "ASI|IN|IN031|POLLACHI" Country = "India" +City Name = "Polokwane, ZA" Location = "AFR|ZA|SF009|POLOKWANE" Country = "South Africa" +City Name = "Poltava, UA" Location = "EUR|UA|UP026|POLTAVA" Country = "Ukraine" +City Name = "Pomona, CA, US" Location = "NAM|US|CA|POMONA" Country = "United States" +City Name = "Ponce, PR" Location = "CAC|PR|PR000|PONCE" Country = "Puerto Rico" +City Name = "Pondicherry, IN" Location = "ASI|IN|IN027|PONDICHERRY" Country = "India" +City Name = "Ponta Delgada, PT" Location = "EUR|PT|PO002|PONTA DELGADA" Country = "Portugal" +City Name = "Ponta do Ouro, MZ" Location = "AFR|MZ|MZ005|PONTA DO OURO" Country = "Mozambique" +City Name = "Ponta Grossa, BR" Location = "SAM|BR|BR015|PONTA GROSSA" Country = "Brazil" +City Name = "Pontianak, ID" Location = "ASI|ID|ID006|PONTIANAK" Country = "Indonesia" +City Name = "Poole, UK" Location = "EUR|UK|UK001|POOLE" Country = "United Kingdom" +City Name = "Popayan, CO" Location = "SAM|CO|CO007|POPAYAN" Country = "Colombia" +City Name = "Porbandar, IN" Location = "ASI|IN|IN012|PORBANDAR" Country = "India" +City Name = "Port Alfred, ZA" Location = "AFR|ZA|SF002|PORT ALFRED" Country = "South Africa" +City Name = "Port Bell, UG" Location = "AFR|UG|UG000|PORT BELL" Country = "Uganda" +City Name = "Port Elizabeth, ZA" Location = "AFR|ZA|SF002|PORT ELIZABETH" Country = "South Africa" +City Name = "Port Harcourt, NG" Location = "AFR|NG|NI031|PORT HARCOURT" Country = "Nigeria" +City Name = "Port Louis, MU" Location = "AFR|MU|MP009|PORT LOUIS" Country = "Mauritius" +City Name = "Port Moresby, PG" Location = "OCN|PG|PP013|PORT MORESBY" Country = "Papua New Guinea" +City Name = "Port Said, EG" Location = "AFR|EG|EG019|PORT SAID" Country = "Egypt" +City Name = "Port Saint Lucie, FL, US" Location = "NAM|US|FL|PORT SAINT LUCIE" Country = "United States" +City Name = "Port Shepstone, ZA" Location = "AFR|ZA|SF005|PORT SHEPSTONE" Country = "South Africa" +City Name = "Port St. Johns, ZA" Location = "AFR|ZA|SF002|PORT ST. JOHNS" Country = "South Africa" +City Name = "Port Sudan, SD" Location = "AFR|SD|SU029|PORT SUDAN" Country = "Sudan" +City Name = "Portalegre, PT" Location = "EUR|PT|PO014|PORTALEGRE" Country = "Portugal" +City Name = "Port-Au-Prince, HT" Location = "CAC|HT|HA007|PORT-AU-PRINCE" Country = "Haiti" +City Name = "Portland, OR, US" Location = "NAM|US|OR|PORTLAND" Country = "United States" +City Name = "Porto, PT" Location = "EUR|PT|PO015|PORTO" Country = "Portugal" +City Name = "Porto Alegre, BR" Location = "SAM|BR|BR019|PORTO ALEGRE" Country = "Brazil" +City Name = "Porto Velho, BR" Location = "SAM|BR|BR020|PORTO VELHO" Country = "Brazil" +City Name = "Port-of-Spain, TT" Location = "CAC|TT|TD005|PORT-OF-SPAIN" Country = "Trinidad And Tobago" +City Name = "Porto-Novo, BJ" Location = "AFR|BJ|BN000|PORTO-NOVO" Country = "Benin" +City Name = "Portoviejo, EC" Location = "SAM|EC|EC014|PORTOVIEJO" Country = "Ecuador" +City Name = "Portsmouth, UK" Location = "EUR|UK|UK001|PORTSMOUTH" Country = "United Kingdom" +City Name = "Portsmouth, VA, US" Location = "NAM|US|VA|PORTSMOUTH" Country = "United States" +City Name = "Posadas, AR" Location = "SAM|AR|AR014|POSADAS" Country = "Argentina" +City Name = "Postmasburg, ZA" Location = "AFR|ZA|SF008|POSTMASBURG" Country = "South Africa" +City Name = "Potchefstroom, ZA" Location = "AFR|ZA|SF007|POTCHEFSTROOM" Country = "South Africa" +City Name = "Potgietersrus, ZA" Location = "AFR|ZA|SF009|POTGIETERSRUS" Country = "South Africa" +City Name = "Potosi, BO" Location = "SAM|BO|BL007|POTOS" Country = "Bolivia" +City Name = "Potsdam, DE" Location = "EUR|DE|GM004|POTSDAM" Country = "Germany" +City Name = "Pouso Alegre, BR" Location = "SAM|BR|BR012|POUSO ALEGRE" Country = "Brazil" +City Name = "Poza Rica De Hidalgo, MX" Location = "NAM|MX|MX030|POZA RICA DE HIDALGO" Country = "Mexico" +City Name = "Poznan, PL" Location = "EUR|PL|PL015|POZNAN" Country = "Poland" +City Name = "Praha, CZ" Location = "EUR|CZ|EZ001|PRAHA" Country = "Czech Republic" +City Name = "Praia, CV" Location = "AFR|CV|CV000|PRAIA" Country = "Cape Verde" +City Name = "Praia Grande, BR" Location = "SAM|BR|BR023|PRAIA GRANDE" Country = "Brazil" +City Name = "Prato, IT" Location = "EUR|IT|IT016|PRATO" Country = "Italy" +City Name = "Presidente Prudente, BR" Location = "SAM|BR|BR023|PRESIDENTE PRUDENTE" Country = "Brazil" +City Name = "Preston, UK" Location = "EUR|UK|UK001|PRESTON" Country = "United Kingdom" +City Name = "Pretoria, ZA" Location = "AFR|ZA|SF004|PRETORIA" Country = "South Africa" +City Name = "Prieska, ZA" Location = "AFR|ZA|SF008|PRIESKA" Country = "South Africa" +City Name = "Prijedor, BA" Location = "EUR|BA|BK002|PRIJEDOR" Country = "Bosnia And Herzegovina" +City Name = "Probolinggo, ID" Location = "ASI|ID|ID007|PROBOLINGGO" Country = "Indonesia" +City Name = "Proddatur, IN" Location = "ASI|IN|IN002|PRODDATUR" Country = "India" +City Name = "Prokpyevsk, RU" Location = "ASI|RU|RS031|PROKPYEVSK" Country = "Russia" +City Name = "Providence, RI, US" Location = "NAM|US|RI|PROVIDENCE" Country = "United States" +City Name = "Provo, UT, US" Location = "NAM|US|UT|PROVO" Country = "United States" +City Name = "Pskov, RU" Location = "ASI|RU|RS064|PSKOV" Country = "Russia" +City Name = "Pucallpa, PE" Location = "SAM|PE|PE025|PUCALLPA" Country = "Peru" +City Name = "Puebla De Zaragoza, MX" Location = "NAM|MX|MX021|PUEBLA DE ZARAGOZA" Country = "Mexico" +City Name = "Pueblo, CO, US" Location = "NAM|US|CO|PUEBLO" Country = "United States" +City Name = "Puente Alto, CL" Location = "SAM|CL|CI011|PUENTE ALTO" Country = "Chile" +City Name = "Puerto Cabello, VE" Location = "SAM|VE|VE007|PUERTO CABELLO" Country = "Venezuela" +City Name = "Puerto Montt, CL" Location = "SAM|CL|CI008|PUERTO MONTT" Country = "Chile" +City Name = "Puerto Princesa, PH" Location = "ASI|PH|RP099|PUERTO PRINCESA" Country = "Philippines" +City Name = "Pune, IN" Location = "ASI|IN|IN021|PUNE" Country = "India" +City Name = "Punta Arenas, CL" Location = "SAM|CL|CI009|PUNTA ARENAS" Country = "Chile" +City Name = "Punto Fijo, VE" Location = "SAM|VE|VE012|PUNTO FIJO" Country = "Venezuela" +City Name = "Puqi, CN" Location = "ASI|CN|CH013|PUQI" Country = "China" +City Name = "Puri, IN" Location = "ASI|IN|IN026|PURI" Country = "India" +City Name = "Purnia, IN" Location = "ASI|IN|IN005|PURNIA" Country = "India" +City Name = "Pusan, KR" Location = "ASI|KR|KS012|PUSAN" Country = "South Korea" +City Name = "Putian, CN" Location = "ASI|CN|CH004|PUTIAN" Country = "China" +City Name = "Puyang, CN" Location = "ASI|CN|CH012|PUYANG" Country = "China" +City Name = "Pyatigorsk, RU" Location = "ASI|RU|RS074|PYATIGORSK" Country = "Russia" +City Name = "Pyongyang, KP" Location = "ASI|KP|KN000|PYONGYANG" Country = "North Korea" +City Name = "Qaem Shahr, IR" Location = "MEA|IR|IR021|QAEM SHAHR" Country = "Iran" +City Name = "Qarchak, IR" Location = "MEA|IR|IR026|QARCHAK" Country = "Iran" +City Name = "Qazvin, IR" Location = "MEA|IR|IR028|QAZVIN" Country = "Iran" +City Name = "Qianjiang, CN" Location = "ASI|CN|CH007|QIANJIANG" Country = "China" +City Name = "Qidong, CN" Location = "ASI|CN|CH014|QIDONG" Country = "China" +City Name = "Qingdao, CN" Location = "ASI|CN|CH023|QINGDAO" Country = "China" +City Name = "Qingtongxia, CN" Location = "ASI|CN|CH020|QINGTONGXIA" Country = "China" +City Name = "Qingyuan, CN" Location = "ASI|CN|CH018|QINGYUAN" Country = "China" +City Name = "Qingzhou, CN" Location = "ASI|CN|CH004|QINGZHOU" Country = "China" +City Name = "Qinhuangdao, CN" Location = "ASI|CN|CH010|QINHUANGDAO" Country = "China" +City Name = "Qinyang, CN" Location = "ASI|CN|CH012|QINYANG" Country = "China" +City Name = "Qinzhou, CN" Location = "ASI|CN|CH007|QINZHOU" Country = "China" +City Name = "Qiqihar, CN" Location = "ASI|CN|CH011|QIQIHAR" Country = "China" +City Name = "Qitaihe, CN" Location = "ASI|CN|CH011|QITAIHE" Country = "China" +City Name = "Qods, IR" Location = "MEA|IR|IR024|QODS" Country = "Iran" +City Name = "Qom, IR" Location = "MEA|IR|IR020|QOM" Country = "Iran" +City Name = "Quanzhou, CN" Location = "ASI|CN|CH004|QUANZHOU" Country = "China" +City Name = "Quebec, CA" Location = "NAM|CA|QC|QUBEC" Country = "Canada" +City Name = "Queenstown, ZA" Location = "AFR|ZA|SF002|QUEENSTOWN" Country = "South Africa" +City Name = "Queimados, BR" Location = "SAM|BR|BR017|QUEIMADOS" Country = "Brazil" +City Name = "Quelimane, MZ" Location = "AFR|MZ|MZ010|QUELIMANE" Country = "Mozambique" +City Name = "Queretaro, MX" Location = "NAM|MX|MX022|QUERTARO" Country = "Mexico" +City Name = "Quetta, PK" Location = "ASI|PK|PK002|QUETTA" Country = "Pakistan" +City Name = "Quevedo, EC" Location = "SAM|EC|EC013|QUEVEDO" Country = "Ecuador" +City Name = "Quezon City, PH" Location = "ASI|PH|RP100|QUEZON CITY" Country = "Philippines" +City Name = "Qufu, CN" Location = "ASI|CN|CH023|QUFU" Country = "China" +City Name = "Qui Nhon, VN" Location = "ASI|VN|VM019|QUI NHON" Country = "Vietnam" +City Name = "Quilmes, AR" Location = "SAM|AR|AR001|QUILMES" Country = "Argentina" +City Name = "Quilpue, CL" Location = "SAM|CL|CI013|QUILPU" Country = "Chile" +City Name = "Quito, EC" Location = "SAM|EC|EC017|QUITO" Country = "Ecuador" +City Name = "Qujing, CN" Location = "ASI|CN|CH030|QUJING" Country = "China" +City Name = "Quzhou, CN" Location = "ASI|CN|CH010|QUZHOU" Country = "China" +City Name = "Rabat, MA" Location = "AFR|MA|MO030|RABAT" Country = "Morocco" +City Name = "Rach Gia, VN" Location = "ASI|VN|VM060|RACH GIA" Country = "Vietnam" +City Name = "Radom, PL" Location = "EUR|PL|PL007|RADOM" Country = "Poland" +City Name = "Rae Bareli, IN" Location = "ASI|IN|IN033|RAE BARELI" Country = "India" +City Name = "Rahimyar Khan, PK" Location = "ASI|PK|PK007|RAHIMYAR KHAN" Country = "Pakistan" +City Name = "Raichur, IN" Location = "ASI|IN|IN017|RAICHUR" Country = "India" +City Name = "Raiganj, IN" Location = "ASI|IN|IN036|RAIGANJ" Country = "India" +City Name = "Raipur, IN" Location = "ASI|IN|IN033|RAIPUR" Country = "India" +City Name = "Rajahmundry, IN" Location = "ASI|IN|IN002|RAJAHMUNDRY" Country = "India" +City Name = "Rajapalaiyam, IN" Location = "ASI|IN|IN031|RAJAPALAIYAM" Country = "India" +City Name = "Rajkot, IN" Location = "ASI|IN|IN012|RAJKOT" Country = "India" +City Name = "Rajnandgain, IN" Location = "ASI|IN|IN020|RAJNANDGAIN" Country = "India" +City Name = "Rajshahi, BD" Location = "ASI|BD|BG004|RAJSHAHI" Country = "Bangladesh" +City Name = "Raleigh, NC, US" Location = "NAM|US|NC|RALEIGH" Country = "United States" +City Name = "Ramadi, IQ" Location = "MEA|IQ|IZ001|RAMADI" Country = "Iraq" +City Name = "Ramat Gan, IL" Location = "MEA|IL|IS005|RAMAT GAN" Country = "Israel" +City Name = "Rampur, IN" Location = "ASI|IN|IN036|RAMPUR" Country = "India" +City Name = "Ranaghat, IN" Location = "ASI|IN|IN036|RANAGHAT" Country = "India" +City Name = "Rancagua, CL" Location = "SAM|CL|CI007|RANCAGUA" Country = "Chile" +City Name = "Ranchi, IN" Location = "ASI|IN|IN005|RANCHI" Country = "India" +City Name = "Rancho Cucamonga, CA, US" Location = "NAM|US|CA|RANCHO CUCAMONGA" Country = "United States" +City Name = "Randers, DK" Location = "EUR|DK|DA001|RANDERS" Country = "Denmark" +City Name = "Rangpur, BD" Location = "ASI|BD|BG004|RANGPUR" Country = "Bangladesh" +City Name = "Rarotonga, CK" Location = "OCN|CK|CW---|RAROTONGA" Country = "Cook Islands" +City Name = "Ras Al Khaimah, AE" Location = "MEA|AE|AE006|RAS AL KHAIMAH" Country = "United Arab Emirates" +City Name = "Rasht, IR" Location = "MEA|IR|IR008|RASHT" Country = "Iran" +City Name = "Ratlam, IN" Location = "ASI|IN|IN020|RATLAM" Country = "India" +City Name = "Raurkela, IN" Location = "ASI|IN|IN026|RAURKELA" Country = "India" +City Name = "Ravenna, IT" Location = "EUR|IT|IT005|RAVENNA" Country = "Italy" +City Name = "Rawalpindi, PK" Location = "ASI|PK|PK007|RAWALPINDI" Country = "Pakistan" +City Name = "Rayong, TH" Location = "ASI|TH|TH052|RAYONG" Country = "Thailand" +City Name = "Reading, UK" Location = "EUR|UK|UK001|READING" Country = "United Kingdom" +City Name = "Recife, BR" Location = "SAM|BR|BR026|RECIFE" Country = "Brazil" +City Name = "Recklinghausen, DE" Location = "EUR|DE|GM011|RECKLINGHAUSEN" Country = "Germany" +City Name = "Redbridge, UK" Location = "EUR|UK|UK001|REDBRIDGE" Country = "United Kingdom" +City Name = "Regensburg, DE" Location = "EUR|DE|GM002|REGENSBURG" Country = "Germany" +City Name = "Reggio Di Calabria, IT" Location = "EUR|IT|IT003|REGGIO DI CALABRIA" Country = "Italy" +City Name = "Regina, CA" Location = "NAM|CA|SK|REGINA" Country = "Canada" +City Name = "Reigate, UK" Location = "EUR|UK|UK224|REIGATE" Country = "United Kingdom" +City Name = "Reigate and Banstead, UK" Location = "EUR|UK|UK001|REIGATE AND BANSTEAD" Country = "United Kingdom" +City Name = "Reims, FR" Location = "EUR|FR|FR008|REIMS" Country = "France" +City Name = "Remscheid, DE" Location = "EUR|DE|GM011|REMSCHEID" Country = "Germany" +City Name = "Rennes, FR" Location = "EUR|FR|FR006|RENNES" Country = "France" +City Name = "Reno, NV, US" Location = "NAM|US|NV|RENO" Country = "United States" +City Name = "Renqiu, CN" Location = "ASI|CN|CH010|RENQIU" Country = "China" +City Name = "Resende, BR" Location = "SAM|BR|BR017|RESENDE" Country = "Brazil" +City Name = "Resistencia, AR" Location = "SAM|AR|AR003|RESISTENCIA" Country = "Argentina" +City Name = "Reutlingen, DE" Location = "EUR|DE|GM001|REUTLINGEN" Country = "Germany" +City Name = "Rewa, IN" Location = "ASI|IN|IN020|REWA" Country = "India" +City Name = "Reykjavik, IS" Location = "ARC|IS|IC010|REYKJAVIK" Country = "Iceland" +City Name = "Reynosa, MX" Location = "NAM|MX|MX028|REYNOSA" Country = "Mexico" +City Name = "Rhondda Cynon Taff, UK" Location = "EUR|UK|UK004|RHONDDA CYNON TAFF" Country = "United Kingdom" +City Name = "Ribeirao Das Neves, BR" Location = "SAM|BR|BR012|RIBEIRAO DAS NEVES" Country = "Brazil" +City Name = "Ribeirao Pires, BR" Location = "SAM|BR|BR023|RIBEIRAO PIRES" Country = "Brazil" +City Name = "Ribeirao Preto, BR" Location = "SAM|BR|BR023|RIBEIRAO PRTO" Country = "Brazil" +City Name = "Richards Bay, ZA" Location = "AFR|ZA|SF005|RICHARDS BAY" Country = "South Africa" +City Name = "Richmond, CA" Location = "NAM|CA|BC|RICHMOND" Country = "Canada" +City Name = "Richmond, VA, US" Location = "NAM|US|VA|RICHMOND" Country = "United States" +City Name = "Richmond Hill, CA" Location = "NAM|CA|ON|RICHMOND HILL" Country = "Canada" +City Name = "Riga, LV" Location = "EUR|LV|LG026|RIGA" Country = "Latvia" +City Name = "Rijeka, HR" Location = "EUR|HR|HR013|RIJEKA" Country = "Croatia" +City Name = "Rimini, IT" Location = "EUR|IT|IT005|RIMINI" Country = "Italy" +City Name = "Rimnicu Vilcea, RO" Location = "EUR|RO|RO039|RIMNICU VILCEA" Country = "Romania" +City Name = "Rio Branco, BR" Location = "SAM|BR|BR001|RIO BRANCO" Country = "Brazil" +City Name = "Rio Claro, BR" Location = "SAM|BR|BR017|RIO CLARO" Country = "Brazil" +City Name = "Rio Cuarto, AR" Location = "SAM|AR|AR005|RO CUARTO" Country = "Argentina" +City Name = "Rio De Janeiro, BR" Location = "SAM|BR|BR017|RIO DE JANEIRO" Country = "Brazil" +City Name = "Rio Grande, BR" Location = "SAM|BR|BR019|RIO GRANDE" Country = "Brazil" +City Name = "Rio Verde, BR" Location = "SAM|BR|BR027|RIO VERDE" Country = "Brazil" +City Name = "Riobamba, EC" Location = "SAM|EC|EC005|RIOBAMBA" Country = "Ecuador" +City Name = "Rishon Leziyyon, IL" Location = "MEA|IL|IS002|RISHON LEZIYYON" Country = "Israel" +City Name = "Riversdale, ZA" Location = "AFR|ZA|SF011|RIVERSDALE" Country = "South Africa" +City Name = "Riverside, CA, US" Location = "NAM|US|CA|RIVERSIDE" Country = "United States" +City Name = "Riyadh, SA" Location = "MEA|SA|SA007|RIYADH" Country = "Saudi Arabia" +City Name = "Rizhao, CN" Location = "ASI|CN|CH023|RIZHAO" Country = "China" +City Name = "Road Town, VG" Location = "CAC|VG|VI---|ROAD TOWN" Country = "British Virgin Islands" +City Name = "Robertson, ZA" Location = "AFR|ZA|SF011|ROBERTSON" Country = "South Africa" +City Name = "Rochdale, UK" Location = "EUR|UK|UK001|ROCHDALE" Country = "United Kingdom" +City Name = "Rochester, NY, US" Location = "NAM|US|NY|ROCHESTER" Country = "United States" +City Name = "Rock Springs, MD, US" Location = "NAM|US|MD|ROCK SPRINGS" Country = "United States" +City Name = "Rock Springs, WY, US" Location = "NAM|US|WY|ROCK SPRINGS" Country = "United States" +City Name = "Rockford, IL, US" Location = "NAM|US|IL|ROCKFORD" Country = "United States" +City Name = "Rohtak, IN" Location = "ASI|IN|IN013|ROHTAK" Country = "India" +City Name = "Roma, IT" Location = "EUR|IT|IT007|ROMA" Country = "Italy" +City Name = "Rondonopolis, BR" Location = "SAM|BR|BR010|RONDONPOLIS" Country = "Brazil" +City Name = "Rongcheng, CN" Location = "ASI|CN|CH010|RONGCHENG" Country = "China" +City Name = "Roodepoort, ZA" Location = "AFR|ZA|SF004|ROODEPOORT" Country = "South Africa" +City Name = "Rosario, AR" Location = "SAM|AR|AR021|ROSARIO" Country = "Argentina" +City Name = "Roseau, DM" Location = "CAC|DM|DO003|ROSEAU" Country = "Dominica" +City Name = "Roskilde, DK" Location = "EUR|DK|DA010|ROSKILDE" Country = "Denmark" +City Name = "Rostock, DE" Location = "EUR|DE|GM010|ROSTOCK" Country = "Germany" +City Name = "Rostov-Na-Donu, RU" Location = "ASI|RU|RS065|ROSTOV-NA-DONU" Country = "Russia" +City Name = "Roswell, NM, US" Location = "NAM|US|NM|Roswell" Country = "United States" +City Name = "Rotherham, UK" Location = "EUR|UK|UK001|ROTHERHAM" Country = "United Kingdom" +City Name = "Rotterdam, NL" Location = "EUR|NL|NL012|ROTTERDAM" Country = "Netherlands" +City Name = "Rouen, FR" Location = "EUR|FR|FR011|ROUEN" Country = "France" +City Name = "Rousse, BG" Location = "EUR|BG|BU015|ROUSS" Country = "Bulgaria" +City Name = "Rovno, UA" Location = "EUR|UA|UP016|ROVNO" Country = "Ukraine" +City Name = "Roxas, PH" Location = "ASI|PH|RP027|ROXAS" Country = "Philippines" +City Name = "Rubtsovsk, RU" Location = "ASI|RU|RS003|RUBTSOVSK" Country = "Russia" +City Name = "Ruda Slaska, PL" Location = "EUR|PL|PL012|RUDA SLASKA" Country = "Poland" +City Name = "Ruian, CN" Location = "ASI|CN|CH004|RUIAN" Country = "China" +City Name = "Ruichang, CN" Location = "ASI|CN|CH016|RUICHANG" Country = "China" +City Name = "Rustavi, GE" Location = "ASI|GE|GG000|RUSTAVI" Country = "Georgia" +City Name = "Rustenburg, ZA" Location = "AFR|ZA|SF007|RUSTENBURG" Country = "South Africa" +City Name = "Ruzhou, CN" Location = "ASI|CN|CH004|RUZHOU" Country = "China" +City Name = "Rybinsk, RU" Location = "ASI|RU|RS079|RYBINSK" Country = "Russia" +City Name = "Rybnik, PL" Location = "EUR|PL|PL012|RYBNIK" Country = "Poland" +City Name = "Ryzan, RU" Location = "ASI|RU|RS066|RYZAN" Country = "Russia" +City Name = "Rzeszow, PL" Location = "EUR|PL|PL009|RZESZW" Country = "Poland" +City Name = "Saarbrucken, DE" Location = "EUR|DE|GM013|SAARBRCKEN" Country = "Germany" +City Name = "Sabadell, ES" Location = "EUR|ES|SP008|SABADELL" Country = "Spain" +City Name = "Sabara, BR" Location = "SAM|BR|BR012|SABRA" Country = "Brazil" +City Name = "Sabie, ZA" Location = "AFR|ZA|SF006|SABIE" Country = "South Africa" +City Name = "Sacramento, CA, US" Location = "NAM|US|CA|SACRAMENTO" Country = "United States" +City Name = "Sadiqabad, PK" Location = "ASI|PK|PK007|SADIQABAD" Country = "Pakistan" +City Name = "Saelen, SE" Location = "EUR|SE|SW002|SAELEN" Country = "Sweden" +City Name = "Safi, MA" Location = "AFR|MA|MO031|SAFI" Country = "Morocco" +City Name = "Saga, JP" Location = "ASI|JP|JA020|SAGA" Country = "Japan" +City Name = "Sagamihara, JP" Location = "ASI|JP|JA019|SAGAMIHARA" Country = "Japan" +City Name = "Saharanpur, IN" Location = "ASI|IN|IN033|SAHARANPUR" Country = "India" +City Name = "Sahiwal, PK" Location = "ASI|PK|PK007|SAHIWAL" Country = "Pakistan" +City Name = "Saidpur, BD" Location = "ASI|BD|BG004|SAIDPUR" Country = "Bangladesh" +City Name = "Saint Catharines, CA" Location = "NAM|CA|ON|SAINT CATHARINES" Country = "Canada" +City Name = "Saint Etienne, FR" Location = "EUR|FR|FR022|SAINT-TIENNE" Country = "France" +City Name = "Saint Francis, ZA" Location = "AFR|ZA|SF002|SAINT FRANCIS" Country = "South Africa" +City Name = "Saint George'S, GD" Location = "CAC|GD|GJ003|SAINT GEORGE'S" Country = "Grenada" +City Name = "Saint John, AG" Location = "CAC|AG|AC003|SAINT JOHN" Country = "Antigua And Barbuda" +City Name = "Saint John, CA" Location = "NAM|CA|NB|SAINT JOHN" Country = "Canada" +City Name = "Saint John'S, CA" Location = "NAM|CA|QC|SAINT JOHN'S" Country = "Canada" +City Name = "Saint Louis, SN" Location = "AFR|SN|SG000|SAINT LOUIS" Country = "Senegal" +City Name = "Saint Louis, MO, US" Location = "NAM|US|MO|SAINT LOUIS" Country = "United States" +City Name = "Saint Lucia, ZA" Location = "AFR|ZA|SF005|SAINT LUCIA" Country = "South Africa" +City Name = "Saint Paul, MN, US" Location = "NAM|US|MN|SAINT PAUL" Country = "United States" +City Name = "Saint Petersburg, RU" Location = "ASI|RU|RS073|SAINT PETERSBURG" Country = "Russia" +City Name = "Saint-Denis, RE" Location = "AFR|RE|RE---|SAINT-DENIS" Country = "Reunion" +City Name = "Saint-Pierre, PM" Location = "NAM|PM|SB000|SAINT-PIERRE" Country = "Saint Pierre And Miquelon" +City Name = "Sakai, JP" Location = "ASI|JP|JA014|SAKAI" Country = "Japan" +City Name = "Sakarya, TR" Location = "MEA|TR|TU065|SAKARYA" Country = "Turkey" +City Name = "Salamanca, MX" Location = "NAM|MX|MX011|SALAMANCA" Country = "Mexico" +City Name = "Salamanca, ES" Location = "EUR|ES|SP007|SALAMANCA" Country = "Spain" +City Name = "Salavat, RU" Location = "ASI|RU|RS007|SALAVAT" Country = "Russia" +City Name = "Saldanha, ZA" Location = "AFR|ZA|SF011|SALDANHA" Country = "South Africa" +City Name = "Sale, MA" Location = "AFR|MA|MO030|SAL" Country = "Morocco" +City Name = "Salem, IN" Location = "ASI|IN|IN031|SALEM" Country = "India" +City Name = "Salem, OR, US" Location = "NAM|US|OR|SALEM" Country = "United States" +City Name = "Salerno, IT" Location = "EUR|IT|IT003|SALERNO" Country = "Italy" +City Name = "Salford, UK" Location = "EUR|UK|UK001|SALFORD" Country = "United Kingdom" +City Name = "Salinas, CA, US" Location = "NAM|US|CA|SALINAS" Country = "United States" +City Name = "Salisbury, UK" Location = "EUR|UK|UK001|SALISBURY" Country = "United Kingdom" +City Name = "Salonika, GR" Location = "EUR|GR|GR048|SALONIKA" Country = "Greece" +City Name = "Salt Lake City, UT, US" Location = "NAM|US|UT|SALT LAKE CITY" Country = "United States" +City Name = "Salta, AR" Location = "SAM|AR|AR017|SALTA" Country = "Argentina" +City Name = "Saltillo, MX" Location = "NAM|MX|MX007|SALTILLO" Country = "Mexico" +City Name = "Salvador, BR" Location = "SAM|BR|BR005|SALVADOR" Country = "Brazil" +City Name = "Salzburg, AT" Location = "EUR|AT|AU005|SALZBURG" Country = "Austria" +City Name = "Salzgitter, DE" Location = "EUR|DE|GM009|SALZGITTER" Country = "Germany" +City Name = "Samara, RU" Location = "ASI|RU|RS068|SAMARA" Country = "Russia" +City Name = "Samarinda, ID" Location = "ASI|ID|ID013|SAMARINDA" Country = "Indonesia" +City Name = "Samarkand, UZ" Location = "ASI|UZ|UZ010|SAMARKAND" Country = "Uzbekistan" +City Name = "Sambalpur, IN" Location = "ASI|IN|IN026|SAMBALPUR" Country = "India" +City Name = "Sambhal, IN" Location = "ASI|IN|IN033|SAMBHAL" Country = "India" +City Name = "Samsun, TR" Location = "MEA|TR|TU066|SAMSUN" Country = "Turkey" +City Name = "Samut Prakan, TH" Location = "ASI|TH|TH056|SAMUT PRAKAN" Country = "Thailand" +City Name = "Samut Sakhon, TH" Location = "ASI|TH|TH057|SAMUT SAKHON" Country = "Thailand" +City Name = "San Antonio, TX, US" Location = "NAM|US|TX|SAN ANTONIO" Country = "United States" +City Name = "San Bernardino, CA, US" Location = "NAM|US|CA|SAN BERNARDINO" Country = "United States" +City Name = "San Bernardo, CL" Location = "SAM|CL|CI011|SAN BERNARDO" Country = "Chile" +City Name = "San Carlos, PH" Location = "ASI|PH|RP107|SAN CARLOS" Country = "Philippines" +City Name = "San Cristobal, VE" Location = "SAM|VE|VE021|SAN CRISTBAL" Country = "Venezuela" +City Name = "San Diego, CA, US" Location = "NAM|US|CA|SAN DIEGO" Country = "United States" +City Name = "San Fernando, AR" Location = "SAM|AR|AR001|SAN FERNANDO" Country = "Argentina" +City Name = "San Francisco, CA, US" Location = "NAM|US|CA|SAN FRANCISCO" Country = "United States" +City Name = "San Isidro, AR" Location = "SAM|AR|AR001|SAN ISIDRO" Country = "Argentina" +City Name = "San Jose, CR" Location = "CAC|CR|CS007|SAN JOSE" Country = "Costa Rica" +City Name = "San Jose, CA, US" Location = "NAM|US|CA|SAN JOSE" Country = "United States" +City Name = "San Juan, AR" Location = "SAM|AR|AR018|SAN JUAN" Country = "Argentina" +City Name = "San Juan, PR" Location = "CAC|PR|PR000|SAN JUAN" Country = "Puerto Rico" +City Name = "San Lorenzo, PY" Location = "SAM|PY|PA008|SAN LORENZO" Country = "Paraguay" +City Name = "San Luis Potosi, MX" Location = "NAM|MX|MX024|SAN LUIS POTOS" Country = "Mexico" +City Name = "San Marino, SM" Location = "EUR|SM|SM008|SAN MARINO" Country = "San Marino" +City Name = "San Martin, SV" Location = "CAC|SV|ES010|SAN MARTIN" Country = "El Salvador" +City Name = "San Miguel, SV" Location = "CAC|SV|ES010|SAN MIGUEL" Country = "El Salvador" +City Name = "San Miguelito, PA" Location = "CAC|PA|PM008|SAN MIGUELITO" Country = "Panama" +City Name = "San Nicolas, AR" Location = "SAM|AR|AR001|SAN NICOLS" Country = "Argentina" +City Name = "San Pablo, PH" Location = "ASI|PH|RP110|SAN PABLO" Country = "Philippines" +City Name = "San Pedro De Macoris, DO" Location = "CAC|DO|DR026|SAN PEDRO DE MACORIS" Country = "Dominican Republic" +City Name = "San Pedro Sula, HN" Location = "CAC|HN|HO006|SAN PEDRO SULA" Country = "Honduras" +City Name = "San Salvador, SV" Location = "CAC|SV|ES010|SAN SALVADOR" Country = "El Salvador" +City Name = "San Salvador De Jujuy, AR" Location = "SAM|AR|AR010|SAN SALVADOR DE JUJUY" Country = "Argentina" +City Name = "San Sebastian, ES" Location = "EUR|ES|SP011|SAN SEBASTIN" Country = "Spain" +City Name = "Sanaa, YE" Location = "MEA|YE|YM000|SANAA" Country = "Yemen" +City Name = "Sanandaj, IR" Location = "MEA|IR|IR018|SANANDAJ" Country = "Iran" +City Name = "Sancti Spiritus, CU" Location = "CAC|CU|CU013|SANCTI SPRITUS" Country = "Cuba" +City Name = "Sanda, JP" Location = "ASI|JP|JA013|SANDA" Country = "Japan" +City Name = "Sandakan, MY" Location = "ASI|MY|MY011|SANDAKAN" Country = "Malaysia" +City Name = "Sandton, ZA" Location = "AFR|ZA|SF004|SANDTON" Country = "South Africa" +City Name = "Sandwell, UK" Location = "EUR|UK|UK001|SANDWELL" Country = "United Kingdom" +City Name = "Sangli, IN" Location = "ASI|IN|IN021|SANGLI" Country = "India" +City Name = "Sanmenxia, CN" Location = "ASI|CN|CH012|SANMENXIA" Country = "China" +City Name = "Sanming, CN" Location = "ASI|CN|CH004|SANMING" Country = "China" +City Name = "Santa Ana, SV" Location = "CAC|SV|ES012|SANTA ANA" Country = "El Salvador" +City Name = "Santa Ana, CA, US" Location = "NAM|US|CA|SANTA ANA" Country = "United States" +City Name = "Santa Clara, CU" Location = "CAC|CU|CU015|SANTA CLARA" Country = "Cuba" +City Name = "Santa Clara, CA, US" Location = "NAM|US|CA|SANTA CLARA" Country = "United States" +City Name = "Santa Clarita, CA, US" Location = "NAM|US|CA|SANTA CLARITA" Country = "United States" +City Name = "Santa Coloma De Gramanet, ES" Location = "EUR|ES|SP008|SANTA COLOMA DE GRAMANET" Country = "Spain" +City Name = "Santa Cruz, BO" Location = "SAM|BO|BL003|SANTA CRUZ" Country = "Bolivia" +City Name = "Santa Cruz De Tenerife, ES" Location = "EUR|ES|SP018|SANTA CRUZ DE TENERIFE" Country = "Spain" +City Name = "Santa Cruz Do Sul, BR" Location = "SAM|BR|BR019|SANTA CRUZ DO SUL" Country = "Brazil" +City Name = "Santa Fe, AR" Location = "SAM|AR|AR021|SANTA F" Country = "Argentina" +City Name = "Santa Fe, NM, US" Location = "NAM|US|NM|SANTA FE" Country = "United States" +City Name = "Santa Fe De Bogota, CO" Location = "SAM|CO|CO000|SANTA FE DE BOGOTA" Country = "Colombia" +City Name = "Santa Luzia, BR" Location = "SAM|BR|BR014|SANTA LUZIA" Country = "Brazil" +City Name = "Santa Maria, BR" Location = "SAM|BR|BR019|SANTA MARIA" Country = "Brazil" +City Name = "Santa Marta, CO" Location = "SAM|CO|CO018|SANTA MARTA" Country = "Colombia" +City Name = "Santa Rita, BR" Location = "SAM|BR|BR014|SANTA RITA" Country = "Brazil" +City Name = "Santa Rosa, CA, US" Location = "NAM|US|CA|SANTA ROSA" Country = "United States" +City Name = "Santander, ES" Location = "EUR|ES|SP005|SANTANDER" Country = "Spain" +City Name = "Santarem, BR" Location = "SAM|BR|BR013|SANTARM" Country = "Brazil" +City Name = "Santarm, PT" Location = "EUR|PT|PO016|SANTARM" Country = "Portugal" +City Name = "Santiago, CL" Location = "SAM|CL|CI011|SANTIAGO" Country = "Chile" +City Name = "Santiago De Cuba, CU" Location = "CAC|CU|CU014|SANTIAGO DE CUBA" Country = "Cuba" +City Name = "Santiago De Los Caballeros, DO" Location = "CAC|DO|DR028|SANTIAGO DE LOS CABALLEROS" Country = "Dominican Republic" +City Name = "Santiago Del Estero, AR" Location = "SAM|AR|AR022|SANTIAGO DEL ESTERO" Country = "Argentina" +City Name = "Santipur, IN" Location = "ASI|IN|IN036|SANTIPUR" Country = "India" +City Name = "Santo Andre, BR" Location = "SAM|BR|BR023|SANTO ANDR" Country = "Brazil" +City Name = "Santo Domingo, DO" Location = "CAC|DO|DR005|SANTO DOMINGO" Country = "Dominican Republic" +City Name = "Santo Domingo De Los Colorados, EC" Location = "SAM|EC|EC017|SANTO DOMINGO DE LOS COLORADOS" Country = "Ecuador" +City Name = "Santos, BR" Location = "SAM|BR|BR023|SANTOS" Country = "Brazil" +City Name = "Sanya, CN" Location = "ASI|CN|CH009|SANYA" Country = "China" +City Name = "Sao Bernardo Do Campo, BR" Location = "SAM|BR|BR023|SAO BERNARDO DO CAMPO" Country = "Brazil" +City Name = "Sao Caetano Do Sul, BR" Location = "SAM|BR|BR023|SAO CAETANO DO SUL" Country = "Brazil" +City Name = "Sao Goncalo, BR" Location = "SAM|BR|BR014|SAO GONALO" Country = "Brazil" +City Name = "Sao Joao De Meriti, BR" Location = "SAM|BR|BR017|SAO JOAO DE MERITI" Country = "Brazil" +City Name = "Sao Jose Do Rio Preto, BR" Location = "SAM|BR|BR017|SAO JOS DO RIO PRTO" Country = "Brazil" +City Name = "Sao Jose Dos Campos, BR" Location = "SAM|BR|BR012|SAO JOS DOS CAMPOS" Country = "Brazil" +City Name = "Sao Jose Dos Pinhais, BR" Location = "SAM|BR|BR015|SAO JOS DOS PINHAIS" Country = "Brazil" +City Name = "Sao Leopoldo, BR" Location = "SAM|BR|BR019|SAO LEOPOLDO" Country = "Brazil" +City Name = "Sao Paulo, BR" Location = "SAM|BR|BR023|SAO PAULO" Country = "Brazil" +City Name = "Sao Tome, ST" Location = "AFR|ST|TP002|SAO TOME" Country = "Sao Tome And Principe" +City Name = "Sao Vicente, BR" Location = "SAM|BR|BR023|SAO VICENTE" Country = "Brazil" +City Name = "Sapporo, JP" Location = "ASI|JP|JA012|SAPPORO" Country = "Japan" +City Name = "Saraburi, TH" Location = "ASI|TH|TH059|SARABURI" Country = "Thailand" +City Name = "Sarajevo, BA" Location = "EUR|BA|BK001|SARAJEVO" Country = "Bosnia And Herzegovina" +City Name = "Saransk, RU" Location = "ASI|RU|RS050|SARANSK" Country = "Russia" +City Name = "Saratov, RU" Location = "ASI|RU|RS059|SARATOV" Country = "Russia" +City Name = "Sargodha, PK" Location = "ASI|PK|PK007|SARGODHA" Country = "Pakistan" +City Name = "Sari, IR" Location = "MEA|IR|IR021|SARI" Country = "Iran" +City Name = "Sariwon, KP" Location = "ASI|KP|KN004|SARIWON" Country = "North Korea" +City Name = "Sasebo, JP" Location = "ASI|JP|JA027|SASEBO" Country = "Japan" +City Name = "Saskatoon, CA" Location = "NAM|CA|SK|SASKATOON" Country = "Canada" +City Name = "Sasolburg, ZA" Location = "AFR|ZA|SF003|SASOLBURG" Country = "South Africa" +City Name = "Sassari, IT" Location = "EUR|IT|IT014|SASSARI" Country = "Italy" +City Name = "Satna, IN" Location = "ASI|IN|IN020|SATNA" Country = "India" +City Name = "Satu-Mare, RO" Location = "EUR|RO|RO033|SATU-MARE" Country = "Romania" +City Name = "Savannah, GA, US" Location = "NAM|US|GA|SAVANNAH" Country = "United States" +City Name = "Sayama, JP" Location = "ASI|JP|JA035|SAYAMA" Country = "Japan" +City Name = "Scarborough, CA" Location = "NAM|CA|ON|SCARBOROUGH" Country = "Canada" +City Name = "Scarborough, UK" Location = "EUR|UK|UK001|SCARBOROUGH" Country = "United Kingdom" +City Name = "Schwerin, DE" Location = "EUR|DE|GM010|SCHWERIN" Country = "Germany" +City Name = "Scottsdale, AZ, US" Location = "NAM|US|AZ|SCOTTSDALE" Country = "United States" +City Name = "Seattle, WA, US" Location = "NAM|US|WA|SEATTLE" Country = "United States" +City Name = "Sebha, LY" Location = "AFR|LY|LY018|SEBHA" Country = "Libya" +City Name = "Sedgefield, ZA" Location = "AFR|ZA|SF011|SEDGEFIELD" Country = "South Africa" +City Name = "Sefton, UK" Location = "EUR|UK|UK001|SEFTON" Country = "United Kingdom" +City Name = "Sekondi-Takoradi, GH" Location = "AFR|GH|GH000|SEKONDI-TAKORADI" Country = "Ghana" +City Name = "Selebi-Phikwe, BW" Location = "AFR|BW|BC001|SELEBI-PHIKWE" Country = "Botswana" +City Name = "Semarang, ID" Location = "ASI|ID|ID004|SEMARANG" Country = "Indonesia" +City Name = "Semipalatinsk, KZ" Location = "ASI|KZ|KZ014|SEMIPALATINSK" Country = "Kazakhstan" +City Name = "Sendai, JP" Location = "ASI|JP|JA018|SENDAI" Country = "Japan" +City Name = "Seoul, KR" Location = "ASI|KR|KS013|SEOUL" Country = "South Korea" +City Name = "Serampore, IN" Location = "ASI|IN|IN036|SERAMPORE" Country = "India" +City Name = "Seremban, MY" Location = "ASI|MY|MY006|SEREMBAN" Country = "Malaysia" +City Name = "Serowe, BW" Location = "AFR|BW|BC000|SEROWE" Country = "Botswana" +City Name = "Serpukhov, RU" Location = "ASI|RU|RS051|SERPUKHOV" Country = "Russia" +City Name = "Serra, BR" Location = "SAM|BR|BR023|SERRA" Country = "Brazil" +City Name = "Sertaozinho, BR" Location = "SAM|BR|BR023|SERTAOZINHO" Country = "Brazil" +City Name = "Sete Lagoas, BR" Location = "SAM|BR|BR012|SETE LAGOAS" Country = "Brazil" +City Name = "Setif, DZ" Location = "AFR|DZ|AG037|SETIF" Country = "Algeria" +City Name = "Seto, JP" Location = "ASI|JP|JA001|SETO" Country = "Japan" +City Name = "Setbal, PT" Location = "EUR|PT|PO017|SETBAL" Country = "Portugal" +City Name = "Sevastopol, UA" Location = "EUR|UA|UP011|SEVASTOPOL" Country = "Ukraine" +City Name = "Sevenoaks, UK" Location = "EUR|UK|UK001|SEVENOAKS" Country = "United Kingdom" +City Name = "Severodonetsk, UA" Location = "EUR|UA|UP012|SEVERODONETSK" Country = "Ukraine" +City Name = "Severodvinsk, RU" Location = "ASI|RU|RS005|SEVERODVINSK" Country = "Russia" +City Name = "Seversk, RU" Location = "ASI|RU|RS079|SEVERSK" Country = "Russia" +City Name = "Sevilla, ES" Location = "EUR|ES|SP001|SEVILLA" Country = "Spain" +City Name = "Sfax, TN" Location = "AFR|TN|TS015|SFAX" Country = "Tunisia" +City Name = "S-Gravenhage, NL" Location = "EUR|NL|NL012|S-GRAVENHAGE" Country = "Netherlands" +City Name = "Shah Alam, MY" Location = "ASI|MY|MY000|SHAH ALAM" Country = "Malaysia" +City Name = "Shahe, CN" Location = "ASI|CN|CH001|SHAHE" Country = "China" +City Name = "Shahjahanpur, IN" Location = "ASI|IN|IN033|SHAHJAHANPUR" Country = "India" +City Name = "Shahrud, IR" Location = "MEA|IR|IR024|SHAHRUD" Country = "Iran" +City Name = "Shakhty, RU" Location = "ASI|RU|RS065|SHAKHTY" Country = "Russia" +City Name = "Shanghai, CN" Location = "ASI|CN|CH024|SHANGHAI" Country = "China" +City Name = "Shangluo, CN" Location = "ASI|CN|CH022|SHANGLUO" Country = "China" +City Name = "Shangqiu, CN" Location = "ASI|CN|CH012|SHANGQIU" Country = "China" +City Name = "Shangrao, CN" Location = "ASI|CN|CH016|SHANGRAO" Country = "China" +City Name = "Shangzhi, CN" Location = "ASI|CN|CH011|SHANGZHI" Country = "China" +City Name = "Shangzhou, CN" Location = "ASI|CN|CH026|SHANGZHOU" Country = "China" +City Name = "Shantou, CN" Location = "ASI|CN|CH006|SHANTOU" Country = "China" +City Name = "Shanwei, CN" Location = "ASI|CN|CH004|SHANWEI" Country = "China" +City Name = "Shaoguan, CN" Location = "ASI|CN|CH006|SHAOGUAN" Country = "China" +City Name = "Shaowu, CN" Location = "ASI|CN|CH004|SHAOWU" Country = "China" +City Name = "Shaoxing, CN" Location = "ASI|CN|CH031|SHAOXING" Country = "China" +City Name = "Shaoyang, CN" Location = "ASI|CN|CH014|SHAOYANG" Country = "China" +City Name = "Sharjah, AE" Location = "MEA|AE|AE004|SHARJAH" Country = "United Arab Emirates" +City Name = "Shashi, CN" Location = "ASI|CN|CH001|SHASHI" Country = "China" +City Name = "Shchelkovo, RU" Location = "ASI|RU|RS051|SHCHELKOVO" Country = "Russia" +City Name = "Sheffield, UK" Location = "EUR|UK|UK001|SHEFFIELD" Country = "United Kingdom" +City Name = "Shenyang, CN" Location = "ASI|CN|CH018|SHENYANG" Country = "China" +City Name = "Shenzhen, CN" Location = "ASI|CN|CH031|SHENZHEN" Country = "China" +City Name = "Sherbrooke, CA" Location = "NAM|CA|NS|SHERBROOKE" Country = "Canada" +City Name = "S-Hertogenbosch, NL" Location = "EUR|NL|NL007|S-HERTOGENBOSCH" Country = "Netherlands" +City Name = "Shihezi, CN" Location = "ASI|CN|CH028|SHIHEZI" Country = "China" +City Name = "Shijiazhuang, CN" Location = "ASI|CN|CH010|SHIJIAZHUANG" Country = "China" +City Name = "Shillong, IN" Location = "ASI|IN|IN023|SHILLONG" Country = "India" +City Name = "Shimizu, JP" Location = "ASI|JP|JA029|SHIMIZU" Country = "Japan" +City Name = "Shimoga, IN" Location = "ASI|IN|IN017|SHIMOGA" Country = "India" +City Name = "Shimonoseki, JP" Location = "ASI|JP|JA046|SHIMONOSEKI" Country = "Japan" +City Name = "Shinyanga, TZ" Location = "AFR|TZ|TZ000|SHINYANGA" Country = "Tanzania" +City Name = "Shiraz, IR" Location = "MEA|IR|IR007|SHIRAZ" Country = "Iran" +City Name = "Shishi, CN" Location = "ASI|CN|CH004|SHISHI" Country = "China" +City Name = "Shishou, CN" Location = "ASI|CN|CH013|SHISHOU" Country = "China" +City Name = "Shiyan, CN" Location = "ASI|CN|CH013|SHIYAN" Country = "China" +City Name = "Shizuishan, CN" Location = "ASI|CN|CH020|SHIZUISHAN" Country = "China" +City Name = "Shizuoka, JP" Location = "ASI|JP|JA038|SHIZUOKA" Country = "Japan" +City Name = "Shreveport, LA, US" Location = "NAM|US|LA|SHREVEPORT" Country = "United States" +City Name = "Shuangcheng, CN" Location = "ASI|CN|CH011|SHUANGCHENG" Country = "China" +City Name = "Sibiu, RO" Location = "EUR|RO|RO034|SIBIU" Country = "Romania" +City Name = "Sibu, MY" Location = "ASI|MY|MY012|SIBU" Country = "Malaysia" +City Name = "Sidi-Bel-Abbes, DZ" Location = "AFR|DZ|AG038|SIDI-BEL-ABBES" Country = "Algeria" +City Name = "Sidon, LB" Location = "MEA|LB|LE000|SIDON" Country = "Lebanon" +City Name = "Siegen, DE" Location = "EUR|DE|GM011|SIEGEN" Country = "Germany" +City Name = "Siirt, TR" Location = "MEA|TR|TU000|SIIRT" Country = "Turkey" +City Name = "Sikar, IN" Location = "ASI|IN|IN029|SIKAR" Country = "India" +City Name = "Silay, PH" Location = "ASI|PH|RP111|SILAY" Country = "Philippines" +City Name = "Silchar, IN" Location = "ASI|IN|IN004|SILCHAR" Country = "India" +City Name = "Siliguri, IN" Location = "ASI|IN|IN036|SILIGURI" Country = "India" +City Name = "Silkeborg, DK" Location = "EUR|DK|DA001|SILKEBORG" Country = "Denmark" +City Name = "Simferopol, UA" Location = "EUR|UA|UP011|SIMFEROPOL" Country = "Ukraine" +City Name = "Simi Valley, CA, US" Location = "NAM|US|CA|SIMI VALLEY" Country = "United States" +City Name = "Sincelejo, CO" Location = "SAM|CO|CO025|SINCELEJO" Country = "Colombia" +City Name = "Singapore, SG" Location = "ASI|SG|SN---|SINGAPORE" Country = "Singapore" +City Name = "Sioux Falls, SD, US" Location = "NAM|US|SD|SIOUX FALLS" Country = "United States" +City Name = "Siracusa, IT" Location = "EUR|IT|IT015|SIRACUSA" Country = "Italy" +City Name = "Sirjan, IR" Location = "MEA|IR|IR013|SIRJAN" Country = "Iran" +City Name = "Sirsa, IN" Location = "ASI|IN|IN013|SIRSA" Country = "India" +City Name = "Sitapur, IN" Location = "ASI|IN|IN033|SITAPUR" Country = "India" +City Name = "Sittwe, MM" Location = "ASI|MM|BM010|SITTWE" Country = "Burma/Myanmar" +City Name = "Sivakasi, IN" Location = "ASI|IN|IN031|SIVAKASI" Country = "India" +City Name = "Sivas, TR" Location = "MEA|TR|TU071|SIVAS" Country = "Turkey" +City Name = "Skikda, DZ" Location = "AFR|DZ|AG015|SKIKDA" Country = "Algeria" +City Name = "Skive, DK" Location = "EUR|DK|DA016|SKIVE" Country = "Denmark" +City Name = "Skoevde, SE" Location = "EUR|SE|SW021|SKOEVDE" Country = "Sweden" +City Name = "Skoplje, MK" Location = "EUR|MK|MK000|SKOPLJE" Country = "Macedonia" +City Name = "Skukuza, ZA" Location = "AFR|ZA|SF006|SKUKUZA" Country = "South Africa" +City Name = "Slagelse, DK" Location = "EUR|DK|DA015|SLAGELSE" Country = "Denmark" +City Name = "Slangkop, ZA" Location = "AFR|ZA|SF011|SLANGKOP" Country = "South Africa" +City Name = "Slavyansk, UA" Location = "EUR|UA|UP004|SLAVYANSK" Country = "Ukraine" +City Name = "Slough, UK" Location = "EUR|UK|UK001|SLOUGH" Country = "United Kingdom" +City Name = "Slupsk, PL" Location = "EUR|PL|PL011|SLUPSK" Country = "Poland" +City Name = "Smederevo, CS" Location = "EUR|CS|YI003|SMEDEREVO" Country = "Serbia" +City Name = "Smithfield, ZA" Location = "AFR|ZA|SF003|SMITHFIELD" Country = "South Africa" +City Name = "Smolensk, RU" Location = "ASI|RU|RS072|SMOLENSK" Country = "Russia" +City Name = "Soacha, CO" Location = "SAM|CO|CO011|SOACHA" Country = "Colombia" +City Name = "Sobral, BR" Location = "SAM|BR|BR006|SOBRAL" Country = "Brazil" +City Name = "Sochi, RU" Location = "ASI|RU|RS040|SOCHI" Country = "Russia" +City Name = "Soenderborg, DK" Location = "EUR|DK|DA011|SOENDERBORG" Country = "Denmark" +City Name = "Sofia, BG" Location = "EUR|BG|BU021|SOFIA" Country = "Bulgaria" +City Name = "Sogamoso, CO" Location = "SAM|CO|CO000|SOGAMOSO" Country = "Colombia" +City Name = "Sohag, EG" Location = "AFR|EG|EG023|SOHAG" Country = "Egypt" +City Name = "Soka, JP" Location = "ASI|JP|JA035|SOKA" Country = "Japan" +City Name = "Solapur, IN" Location = "ASI|IN|IN021|SOLAPUR" Country = "India" +City Name = "Soledad, CO" Location = "SAM|CO|CO004|SOLEDAD" Country = "Colombia" +City Name = "Soligorsk, BY" Location = "EUR|BY|BO004|SOLIGORSK" Country = "Belarus" +City Name = "Solihull, UK" Location = "EUR|UK|UK001|SOLIHULL" Country = "United Kingdom" +City Name = "Solikamsk, RU" Location = "ASI|RU|RS062|SOLIKAMSK" Country = "Russia" +City Name = "Solingen, DE" Location = "EUR|DE|GM011|SOLINGEN" Country = "Germany" +City Name = "Somerset East, ZA" Location = "AFR|ZA|SF002|SOMERSET EAST" Country = "South Africa" +City Name = "Somerset West, ZA" Location = "AFR|ZA|SF011|SOMERSET WEST" Country = "South Africa" +City Name = "Songkhla, TH" Location = "ASI|TH|TH063|SONGKHLA" Country = "Thailand" +City Name = "Sonipat, IN" Location = "ASI|IN|IN013|SONIPAT" Country = "India" +City Name = "Sorocaba, BR" Location = "SAM|BR|BR023|SOROCABA" Country = "Brazil" +City Name = "Soroti, UG" Location = "AFR|UG|UG000|SOROTI" Country = "Uganda" +City Name = "Sosnowiec, PL" Location = "EUR|PL|PL012|SOSNOWIEC" Country = "Poland" +City Name = "South Bend, IN, US" Location = "NAM|US|IN|SOUTH BEND" Country = "United States" +City Name = "South Dum Dum, IN" Location = "ASI|IN|IN036|SOUTH DUM DUM" Country = "India" +City Name = "Southampton, UK" Location = "EUR|UK|UK001|SOUTHAMPTON" Country = "United Kingdom" +City Name = "Southend-On-Sea, UK" Location = "EUR|UK|UK001|SOUTHEND-ON-SEA" Country = "United Kingdom" +City Name = "Southwark, UK" Location = "EUR|UK|UK001|SOUTHWARK" Country = "United Kingdom" +City Name = "Soweto, ZA" Location = "AFR|ZA|SF004|SOWETO" Country = "South Africa" +City Name = "Soyapango, SV" Location = "CAC|SV|ES010|SOYAPANGO" Country = "El Salvador" +City Name = "Split, HR" Location = "EUR|HR|HR016|SPLIT" Country = "Croatia" +City Name = "Spokane, WA, US" Location = "NAM|US|WA|SPOKANE" Country = "United States" +City Name = "Springbok, ZA" Location = "AFR|ZA|SF008|SPRINGBOK" Country = "South Africa" +City Name = "Springfield, IL, US" Location = "NAM|US|IL|SPRINGFIELD" Country = "United States" +City Name = "Springfield, MA, US" Location = "NAM|US|MA|SPRINGFIELD" Country = "United States" +City Name = "Springfield, MO, US" Location = "NAM|US|MO|SPRINGFIELD" Country = "United States" +City Name = "Springs, ZA" Location = "AFR|ZA|SF004|SPRINGS" Country = "South Africa" +City Name = "St Albans, UK" Location = "EUR|UK|UK001|ST ALBANS" Country = "United Kingdom" +City Name = "St Helens, UK" Location = "EUR|UK|UK001|ST HELENS" Country = "United Kingdom" +City Name = "St Petersburg, FL, US" Location = "NAM|US|FL|ST PETERSBURG" Country = "United States" +City Name = "Stafford, UK" Location = "EUR|UK|UK001|STAFFORD" Country = "United Kingdom" +City Name = "Stakhanov, UA" Location = "EUR|UA|UP012|STAKHANOV" Country = "Ukraine" +City Name = "Stamford, CT, US" Location = "NAM|US|CT|STAMFORD" Country = "United States" +City Name = "Standerton, ZA" Location = "AFR|ZA|SF006|STANDERTON" Country = "South Africa" +City Name = "Standerton, ZA" Location = "AFR|ZA|SF006|STANDERTON" Country = "South Africa" +City Name = "Stanley, FK" Location = "SAM|FK|FK---|STANLEY" Country = "Falkland Islands" +City Name = "Stara Zagora, BG" Location = "EUR|BG|BU022|STARA ZAGORA" Country = "Bulgaria" +City Name = "Stary Oskol, RU" Location = "ASI|RU|RS008|STARY OSKOL" Country = "Russia" +City Name = "Stavanger, NO" Location = "EUR|NO|NO013|STAVANGER" Country = "Norway" +City Name = "Stavropol, RU" Location = "ASI|RU|RS074|STAVROPOL" Country = "Russia" +City Name = "Steamboat Springs, CO, US" Location = "NAM|US|CO|STEAMBOAT SPRINGS" Country = "United States" +City Name = "Stellenbosch, ZA" Location = "AFR|ZA|SF011|STELLENBOSCH" Country = "South Africa" +City Name = "Sterling Heights, MI, US" Location = "NAM|US|MI|STERLING HEIGHTS" Country = "United States" +City Name = "Sterlitamak, RU" Location = "ASI|RU|RS041|STERLITAMAK" Country = "Russia" +City Name = "Stillbaai, ZA" Location = "AFR|ZA|SF011|STILLBAAI" Country = "South Africa" +City Name = "Stockholm, SE" Location = "EUR|SE|SW015|STOCKHOLM" Country = "Sweden" +City Name = "Stockport, UK" Location = "EUR|UK|UK001|STOCKPORT" Country = "United Kingdom" +City Name = "Stockton, CA, US" Location = "NAM|US|CA|STOCKTON" Country = "United States" +City Name = "Stockton-On-Tees, UK" Location = "EUR|UK|UK001|STOCKTON-ON-TEES" Country = "United Kingdom" +City Name = "Stoke-On-Trent, UK" Location = "EUR|UK|UK001|STOKE-ON-TRENT" Country = "United Kingdom" +City Name = "Strand, ZA" Location = "AFR|ZA|SF011|STRAND" Country = "South Africa" +City Name = "Strasbourg, FR" Location = "EUR|FR|FR001|STRASBOURG" Country = "France" +City Name = "Stratford-On-Avon, UK" Location = "EUR|UK|UK001|STRATFORD-ON-AVON" Country = "United Kingdom" +City Name = "Stroud, UK" Location = "EUR|UK|UK001|STROUD" Country = "United Kingdom" +City Name = "Stuhlweissenburg, HU" Location = "EUR|HU|HU011|SZKESFEHRVAR" Country = "Hungary" +City Name = "Stuttgart, DE" Location = "EUR|DE|GM001|STUTTGART" Country = "Germany" +City Name = "Subotica, CS" Location = "EUR|CS|YI003|SUBOTICA" Country = "Serbia" +City Name = "Suceava, RO" Location = "EUR|RO|RO035|SUCEAVA" Country = "Romania" +City Name = "Sucre, BO" Location = "SAM|BO|BL001|SUCRE" Country = "Bolivia" +City Name = "Sudbury, CA" Location = "NAM|CA|ON|SUDBURY" Country = "Canada" +City Name = "Suez, EG" Location = "AFR|EG|EG014|SUEZ" Country = "Egypt" +City Name = "Suihua, CN" Location = "ASI|CN|CH011|SUIHUA" Country = "China" +City Name = "Suining, CN" Location = "ASI|CN|CH014|SUINING" Country = "China" +City Name = "Suita, JP" Location = "ASI|JP|JA033|SUITA" Country = "Japan" +City Name = "Suizhou, CN" Location = "ASI|CN|CH013|SUIZHOU" Country = "China" +City Name = "Sukabumi, ID" Location = "ASI|ID|ID026|SUKABUMI" Country = "Indonesia" +City Name = "Sukhothai, TH" Location = "ASI|TH|TH064|SUKHOTHAI" Country = "Thailand" +City Name = "Sukhumi, GE" Location = "ASI|GE|GG000|SUKHUMI" Country = "Georgia" +City Name = "Sukkur, PK" Location = "ASI|PK|PK008|SUKKUR" Country = "Pakistan" +City Name = "Sullana, PE" Location = "SAM|PE|PE020|SULLANA" Country = "Peru" +City Name = "Sumare, BR" Location = "SAM|BR|BR023|SUMAR" Country = "Brazil" +City Name = "Sumgait, AZ" Location = "ASI|AZ|AJ052|SUMGAIT" Country = "Azerbaijan" +City Name = "Sumy, UA" Location = "EUR|UA|UP017|SUMY" Country = "Ukraine" +City Name = "Sunderland, UK" Location = "EUR|UK|UK001|SUNDERLAND" Country = "United Kingdom" +City Name = "Sundsvall, SE" Location = "EUR|SE|SW019|SUNDSVALL" Country = "Sweden" +City Name = "Sungai Petani, MY" Location = "ASI|MY|MY002|SUNGAI PETANI" Country = "Malaysia" +City Name = "Sunnyvale, CA, US" Location = "NAM|US|CA|SUNNYVALE" Country = "United States" +City Name = "Sunyani, GH" Location = "AFR|GH|GH000|SUNYANI" Country = "Ghana" +City Name = "Suqian, CN" Location = "ASI|CN|CH015|SUQIAN" Country = "China" +City Name = "Surabaya, ID" Location = "ASI|ID|ID026|SURABAYA" Country = "Indonesia" +City Name = "Surakarta, ID" Location = "ASI|ID|ID004|SURAKARTA" Country = "Indonesia" +City Name = "Surat, IN" Location = "ASI|IN|IN012|SURAT" Country = "India" +City Name = "Surat Thani, TH" Location = "ASI|TH|TH066|SURAT THANI" Country = "Thailand" +City Name = "Surgut, RU" Location = "ASI|RU|RS068|SURGUT" Country = "Russia" +City Name = "Surigao, PH" Location = "ASI|PH|RP118|SURIGAO" Country = "Philippines" +City Name = "Surrey, CA" Location = "NAM|CA|PE|SURREY" Country = "Canada" +City Name = "Susano, BR" Location = "SAM|BR|BR023|SUSANO" Country = "Brazil" +City Name = "Sutherland, ZA" Location = "AFR|ZA|SF005|SUTHERLAND" Country = "South Africa" +City Name = "Sutton, UK" Location = "EUR|UK|UK001|SUTTON" Country = "United Kingdom" +City Name = "Suva, FJ" Location = "OCN|FJ|FJ001|SUVA" Country = "Fiji" +City Name = "Suwon, KR" Location = "ASI|KR|KS002|SUWON" Country = "South Korea" +City Name = "Suzhou, CN" Location = "ASI|CN|CH015|SUZHOU" Country = "China" +City Name = "Suzuka, JP" Location = "ASI|JP|JA023|SUZUKA" Country = "Japan" +City Name = "Svendborg, DK" Location = "EUR|DK|DA005|SVENDBORG" Country = "Denmark" +City Name = "Swansea, UK" Location = "EUR|UK|UK004|SWANSEA" Country = "United Kingdom" +City Name = "Swellendam, ZA" Location = "AFR|ZA|SF011|SWELLENDAM" Country = "South Africa" +City Name = "Sydney, AU" Location = "OCN|AU|NSW|SYDNEY" Country = "Australia" +City Name = "Syktyvkar, RU" Location = "ASI|RU|RS036|SYKTYVKAR" Country = "Russia" +City Name = "Syracuse, NY, US" Location = "NAM|US|NY|SYRACUSE" Country = "United States" +City Name = "Syzran, RU" Location = "ASI|RU|RS085|SYZRAN" Country = "Russia" +City Name = "Szczecin, PL" Location = "EUR|PL|PL016|SZCZECIN" Country = "Poland" +City Name = "Szeged, HU" Location = "EUR|HU|HU030|SZEGED" Country = "Hungary" +City Name = "Taastrup, DK" Location = "EUR|DK|DA006|TAASTRUP" Country = "Denmark" +City Name = "Taboao Da Serra, BR" Location = "SAM|BR|BR023|TABOAO DA SERRA" Country = "Brazil" +City Name = "Tabriz, IR" Location = "MEA|IR|IR002|TABRIZ" Country = "Iran" +City Name = "Tacheng, CN" Location = "ASI|CN|CH028|TACHENG" Country = "China" +City Name = "Tachikawa, JP" Location = "ASI|JP|JA041|TACHIKAWA" Country = "Japan" +City Name = "Tacloban, PH" Location = "ASI|PH|RP121|TACLOBAN" Country = "Philippines" +City Name = "Tacna, PE" Location = "SAM|PE|PE023|TACNA" Country = "Peru" +City Name = "Tacoma, WA, US" Location = "NAM|US|WA|TACOMA" Country = "United States" +City Name = "Taebaek, KR" Location = "ASI|KR|KS007|TAEBAEK" Country = "South Korea" +City Name = "Taegu, KR" Location = "ASI|KR|KS002|TAEGU" Country = "South Korea" +City Name = "Taejon, KP" Location = "ASI|KP|KN010|TAEJON" Country = "North Korea" +City Name = "Taganrog, RU" Location = "ASI|RU|RS065|TAGANROG" Country = "Russia" +City Name = "Taian, CN" Location = "ASI|CN|CH018|TAIAN" Country = "China" +City Name = "Taichung, TW" Location = "ASI|TW|TW018|TAICHUNG" Country = "Taiwan" +City Name = "Ta'if, SA" Location = "MEA|SA|SA011|TA'IF" Country = "Saudi Arabia" +City Name = "Tainan, TW" Location = "ASI|TW|TW018|TAINAN" Country = "Taiwan" +City Name = "Taipei, TW" Location = "ASI|TW|TW018|TAIPEI" Country = "Taiwan" +City Name = "Taiping, MY" Location = "ASI|MY|MY008|TAIPING" Country = "Malaysia" +City Name = "Taitung, TW" Location = "ASI|TW|TW018|TAITUNG" Country = "Taiwan" +City Name = "Taiyuan, CN" Location = "ASI|CN|CH025|TAIYUAN" Country = "China" +City Name = "Taiz, YE" Location = "MEA|YE|YM008|TAIZ" Country = "Yemen" +City Name = "Taizhou, CN" Location = "ASI|CN|CH015|TAIZHOU" Country = "China" +City Name = "Taizhou, CN" Location = "ASI|CN|CH015|TAIZHOU" Country = "China" +City Name = "Tajimi, JP" Location = "ASI|JP|JA009|TAJIMI" Country = "Japan" +City Name = "Takamatsu, JP" Location = "ASI|JP|JA017|TAKAMATSU" Country = "Japan" +City Name = "Takaoka, JP" Location = "ASI|JP|JA043|TAKAOKA" Country = "Japan" +City Name = "Takarazuka, JP" Location = "ASI|JP|JA013|TAKARAZUKA" Country = "Japan" +City Name = "Takasaki, JP" Location = "ASI|JP|JA010|TAKASAKI" Country = "Japan" +City Name = "Takatsuki, JP" Location = "ASI|JP|JA033|TAKATSUKI" Country = "Japan" +City Name = "Talca, CL" Location = "SAM|CL|CI010|TALCA" Country = "Chile" +City Name = "Talcahuano, CL" Location = "SAM|CL|CI005|TALCAHUANO" Country = "Chile" +City Name = "Tallahassee, FL, US" Location = "NAM|US|FL|TALLAHASSEE" Country = "United States" +City Name = "Tallinn, EE" Location = "EUR|EE|EN001|TALLINN" Country = "Estonia" +City Name = "Tama, JP" Location = "ASI|JP|JA031|TAMA" Country = "Japan" +City Name = "Tamale, GH" Location = "AFR|GH|GH000|TAMALE" Country = "Ghana" +City Name = "Tambov, RU" Location = "ASI|RU|RS076|TAMBOV" Country = "Russia" +City Name = "Tampa, FL, US" Location = "NAM|US|FL|TAMPA" Country = "United States" +City Name = "Tampere, FI" Location = "EUR|FI|FI005|TAMPERE" Country = "Finland" +City Name = "Tampico, MX" Location = "NAM|MX|MX028|TAMPICO" Country = "Mexico" +City Name = "Tandoadam, PK" Location = "ASI|PK|PK008|TANDOADAM" Country = "Pakistan" +City Name = "Tanga, TZ" Location = "AFR|TZ|TZ000|TANGA" Country = "Tanzania" +City Name = "Tangail, BD" Location = "ASI|BD|BG002|TANGAIL" Country = "Bangladesh" +City Name = "Tanger, MA" Location = "AFR|MA|MO035|TANGER" Country = "Morocco" +City Name = "Tangshan, CN" Location = "ASI|CN|CH010|TANGSHAN" Country = "China" +City Name = "Tanta, EG" Location = "AFR|EG|EG005|TANTA" Country = "Egypt" +City Name = "Taonan, CN" Location = "ASI|CN|CH017|TAONAN" Country = "China" +City Name = "Tapachula, MX" Location = "NAM|MX|MX005|TAPACHULA" Country = "Mexico" +City Name = "Taranto, IT" Location = "EUR|IT|IT013|TARANTO" Country = "Italy" +City Name = "Tarawa, KI" Location = "OCN|KI|KR000|TARAWA" Country = "Kiribati" +City Name = "Taraz, KZ" Location = "ASI|KZ|KZ016|TARAZ" Country = "Kazakhstan" +City Name = "Tarija, BO" Location = "SAM|BO|BL009|TARIJA" Country = "Bolivia" +City Name = "Tarnow, PL" Location = "EUR|PL|PL004|TARNW" Country = "Poland" +City Name = "Tarragona, ES" Location = "EUR|ES|SP008|TARRAGONA" Country = "Spain" +City Name = "Tarrasa, ES" Location = "EUR|ES|SP008|TARRASA" Country = "Spain" +City Name = "Tarsus, TR" Location = "MEA|TR|TU037|TARSUS" Country = "Turkey" +City Name = "Tartu, EE" Location = "EUR|EE|EN012|TARTU" Country = "Estonia" +City Name = "Tashauz, TM" Location = "ASI|TM|TX003|TASHAUZ" Country = "Turkmenistan" +City Name = "Tashkent, UZ" Location = "ASI|UZ|UZ013|TASHKENT" Country = "Uzbekistan" +City Name = "Taubate, BR" Location = "SAM|BR|BR023|TAUBAT" Country = "Brazil" +City Name = "Taung, ZA" Location = "AFR|ZA|SF007|TAUNG" Country = "South Africa" +City Name = "Taunggyi, MM" Location = "ASI|MM|BM012|TAUNGGYI" Country = "Burma/Myanmar" +City Name = "Tbilisi, GE" Location = "ASI|GE|GG000|TBILISI" Country = "Georgia" +City Name = "Tebessa, DZ" Location = "AFR|DZ|AG042|TEBESSA" Country = "Algeria" +City Name = "Tegal, ID" Location = "ASI|ID|ID004|TEGAL" Country = "Indonesia" +City Name = "Tegucigalpa, HN" Location = "CAC|HN|HO008|TEGUCIGALPA" Country = "Honduras" +City Name = "Tehran, IR" Location = "MEA|IR|IR026|TEHRAN" Country = "Iran" +City Name = "Tehuacan, MX" Location = "NAM|MX|MX021|TEHUACN" Country = "Mexico" +City Name = "Tekirdag, TR" Location = "MEA|TR|TU072|TEKIRDAG" Country = "Turkey" +City Name = "Tel Aviv-Yafo, IL" Location = "MEA|IL|IS005|TEL AVIV-YAFO" Country = "Israel" +City Name = "Tema, GH" Location = "AFR|GH|GH000|TEMA" Country = "Ghana" +City Name = "Tembisa, ZA" Location = "AFR|ZA|SF004|TEMBISA" Country = "South Africa" +City Name = "Temirtau, KZ" Location = "ASI|KZ|KZ011|TEMIRTAU" Country = "Kazakhstan" +City Name = "Tempe, AZ, US" Location = "NAM|US|AZ|TEMPE" Country = "United States" +City Name = "Temuco, CL" Location = "SAM|CL|CI003|TEMUCO" Country = "Chile" +City Name = "Tenali, IN" Location = "ASI|IN|IN002|TENALI" Country = "India" +City Name = "Tendring, UK" Location = "EUR|UK|UK001|TENDRING" Country = "United Kingdom" +City Name = "Tengzhou, CN" Location = "ASI|CN|CH023|TENGZHOU" Country = "China" +City Name = "Teofilo Otoni, BR" Location = "SAM|BR|BR012|TEFILO OTONI" Country = "Brazil" +City Name = "Tepic, MX" Location = "NAM|MX|MX018|TEPIC" Country = "Mexico" +City Name = "Teresina, BR" Location = "SAM|BR|BR016|TERESINA" Country = "Brazil" +City Name = "Teresopolis, BR" Location = "SAM|BR|BR017|TERESPOLIS" Country = "Brazil" +City Name = "Termez, UZ" Location = "ASI|UZ|UZ012|TERMEZ" Country = "Uzbekistan" +City Name = "Terni, IT" Location = "EUR|IT|IT018|TERNI" Country = "Italy" +City Name = "Ternopol, UA" Location = "EUR|UA|UP018|TERNOPOL" Country = "Ukraine" +City Name = "Tetouan, MA" Location = "AFR|MA|MO040|TTOUAN" Country = "Morocco" +City Name = "Thabazimbi, ZA" Location = "AFR|ZA|SF009|THABAZIMBI" Country = "South Africa" +City Name = "Thai Nguyen, VN" Location = "ASI|VN|VM057|THAI NGUYEN" Country = "Vietnam" +City Name = "Thamesdown, UK" Location = "EUR|UK|UK001|THAMESDOWN" Country = "United Kingdom" +City Name = "Thane, IN" Location = "ASI|IN|IN021|THANE" Country = "India" +City Name = "Thanet, UK" Location = "EUR|UK|UK001|THANET" Country = "United Kingdom" +City Name = "Thanjavur, IN" Location = "ASI|IN|IN031|THANJAVUR" Country = "India" +City Name = "The Groyne, ES" Location = "EUR|ES|SP011|LA CORUA" Country = "Spain" +City Name = "Thies, SN" Location = "AFR|SN|SG009|THIS" Country = "Senegal" +City Name = "Thimphu, BT" Location = "ASI|BT|BT016|THIMPHU" Country = "Bhutan" +City Name = "Thiruvananthapuram, IN" Location = "ASI|IN|IN018|THIRUVANANTHAPURAM" Country = "India" +City Name = "Thohoyandou, ZA" Location = "AFR|ZA|SF009|THOHOYANDOU" Country = "South Africa" +City Name = "Thorshavn, FO" Location = "EUR|FO|FO---|THORSHAVN" Country = "Faroe Islands" +City Name = "Thousand Oaks, CA, US" Location = "NAM|US|CA|THOUSAND OAKS" Country = "United States" +City Name = "Three Rivers, CA" Location = "NAM|CA|QC|TROIS-RIVIRES" Country = "Canada" +City Name = "Thrissur, IN" Location = "ASI|IN|IN018|THRISSUR" Country = "India" +City Name = "Thunder Bay, CA" Location = "NAM|CA|ON|THUNDER BAY" Country = "Canada" +City Name = "Tianjin, CN" Location = "ASI|CN|CH027|TIANJIN" Country = "China" +City Name = "Tianmen, CN" Location = "ASI|CN|CH011|TIANMEN" Country = "China" +City Name = "Tianshui, CN" Location = "ASI|CN|CH005|TIANSHUI" Country = "China" +City Name = "Tiaret, DZ" Location = "AFR|DZ|AG043|TIARET" Country = "Algeria" +City Name = "Tiefa, CN" Location = "ASI|CN|CH018|TIEFA" Country = "China" +City Name = "Tieli, CN" Location = "ASI|CN|CH011|TIELI" Country = "China" +City Name = "Tieling, CN" Location = "ASI|CN|CH018|TIELING" Country = "China" +City Name = "Tijuana, MX" Location = "NAM|MX|MX002|TIJUANA" Country = "Mexico" +City Name = "Tilburg, NL" Location = "EUR|NL|NL007|TILBURG" Country = "Netherlands" +City Name = "Timbuktu, ML" Location = "AFR|ML|ML000|TIMBUKTU" Country = "Mali" +City Name = "Timisoara, RO" Location = "EUR|RO|RO037|TIMISOARA" Country = "Romania" +City Name = "Timon, BR" Location = "SAM|BR|BR009|TIMON" Country = "Brazil" +City Name = "Tirana, AL" Location = "EUR|AL|AL024|TIRANA" Country = "Albania" +City Name = "Tirgu-Mures, RO" Location = "EUR|RO|RO028|TIRGU-MURES" Country = "Romania" +City Name = "Tiruchchirappalli, IN" Location = "ASI|IN|IN031|TIRUCHCHIRAPPALLI" Country = "India" +City Name = "Tirunelveli, IN" Location = "ASI|IN|IN031|TIRUNELVELI" Country = "India" +City Name = "Tirupati, IN" Location = "ASI|IN|IN002|TIRUPATI" Country = "India" +City Name = "Tiruppur, IN" Location = "ASI|IN|IN031|TIRUPPUR" Country = "India" +City Name = "Tiruvannamalai, IN" Location = "ASI|IN|IN031|TIRUVANNAMALAI" Country = "India" +City Name = "Titagarh, IN" Location = "ASI|IN|IN036|TITAGARH" Country = "India" +City Name = "Tlalnepantla, MX" Location = "NAM|MX|MX015|TLALNEPANTLA" Country = "Mexico" +City Name = "Tlalpan, MX" Location = "NAM|MX|MX009|TLALPAN" Country = "Mexico" +City Name = "Tlaquepaque, MX" Location = "NAM|MX|MX014|TLAQUEPAQUE" Country = "Mexico" +City Name = "Tlaxcala, MX" Location = "NAM|MX|MX029|TLAXCALA" Country = "Mexico" +City Name = "Toda, JP" Location = "ASI|JP|JA035|TODA" Country = "Japan" +City Name = "Toensberg, NO" Location = "EUR|NO|NO019|TOENSBERG" Country = "Norway" +City Name = "Tokorozawa, JP" Location = "ASI|JP|JA035|TOKOROZAWA" Country = "Japan" +City Name = "Tokushima, JP" Location = "ASI|JP|JA040|TOKUSHIMA" Country = "Japan" +City Name = "Tokuyama, JP" Location = "ASI|JP|JA046|TOKUYAMA" Country = "Japan" +City Name = "Tokyo, JP" Location = "ASI|JP|JA041|TOKYO" Country = "Japan" +City Name = "Toledo, BR" Location = "SAM|BR|BR012|TOLEDO" Country = "Brazil" +City Name = "Toledo, PH" Location = "ASI|PH|RP127|TOLEDO" Country = "Philippines" +City Name = "Toledo, OH, US" Location = "NAM|US|OH|TOLEDO" Country = "United States" +City Name = "Toluca, MX" Location = "NAM|MX|MX015|TOLUCA" Country = "Mexico" +City Name = "Tolyatti, RU" Location = "ASI|RU|RS068|TOLYATTI" Country = "Russia" +City Name = "Tomakomai, JP" Location = "ASI|JP|JA012|TOMAKOMAI" Country = "Japan" +City Name = "Tomsk, RU" Location = "ASI|RU|RS079|TOMSK" Country = "Russia" +City Name = "Tonbridge, UK" Location = "EUR|UK|UK160|TONBRIDGE" Country = "United Kingdom" +City Name = "Tonbridge and Malling, UK" Location = "EUR|UK|UK001|TONBRIDGE AND MALLING" Country = "United Kingdom" +City Name = "Tondabayashi, JP" Location = "ASI|JP|JA033|TONDABAYASHI" Country = "Japan" +City Name = "Tongchuan, CN" Location = "ASI|CN|CH022|TONGCHUAN" Country = "China" +City Name = "Tonghua, CN" Location = "ASI|CN|CH017|TONGHUA" Country = "China" +City Name = "Tongi, BD" Location = "ASI|BD|BG002|TONGI" Country = "Bangladesh" +City Name = "Tongjiang, CN" Location = "ASI|CN|CH011|TONGJIANG" Country = "China" +City Name = "Tongliao, CN" Location = "ASI|CN|CH019|TONGLIAO" Country = "China" +City Name = "Tongling, CN" Location = "ASI|CN|CH001|TONGLING" Country = "China" +City Name = "Tongren, CN" Location = "ASI|CN|CH008|TONGREN" Country = "China" +City Name = "Tonk, IN" Location = "ASI|IN|IN029|TONK" Country = "India" +City Name = "Topeka, KS, US" Location = "NAM|US|KS|TOPEKA" Country = "United States" +City Name = "Torbay, UK" Location = "EUR|UK|UK001|TORBAY" Country = "United Kingdom" +City Name = "Torino, IT" Location = "EUR|IT|IT012|TORINO" Country = "Italy" +City Name = "Toronto, CA" Location = "NAM|CA|ON|TORONTO" Country = "Canada" +City Name = "Torrance, CA, US" Location = "NAM|US|CA|TORRANCE" Country = "United States" +City Name = "Torreon, MX" Location = "NAM|MX|MX006|TORREN" Country = "Mexico" +City Name = "Torun, PL" Location = "EUR|PL|PL007|TORUN" Country = "Poland" +City Name = "Tottori, JP" Location = "ASI|JP|JA042|TOTTORI" Country = "Japan" +City Name = "Toulon, FR" Location = "EUR|FR|FR021|TOULON" Country = "France" +City Name = "Toulouse, FR" Location = "EUR|FR|FR016|TOULOUSE" Country = "France" +City Name = "Tours, FR" Location = "EUR|FR|FR007|TOURS" Country = "France" +City Name = "Townsville, AU" Location = "OCN|AU|QLD|TOWNSVILLE" Country = "Australia" +City Name = "Toyama, JP" Location = "ASI|JP|JA043|TOYAMA" Country = "Japan" +City Name = "Toyohashi, JP" Location = "ASI|JP|JA001|TOYOHASHI" Country = "Japan" +City Name = "Toyokawa, JP" Location = "ASI|JP|JA001|TOYOKAWA" Country = "Japan" +City Name = "Toyonaka, JP" Location = "ASI|JP|JA033|TOYONAKA" Country = "Japan" +City Name = "Toyota, JP" Location = "ASI|JP|JA001|TOYOTA" Country = "Japan" +City Name = "Trabzon, TR" Location = "MEA|TR|TU074|TRABZON" Country = "Turkey" +City Name = "Traverse City, MI, US" Location = "NAM|US|MI|Traverse City" Country = "United States" +City Name = "Trelleborg, SE" Location = "EUR|SE|SW013|TRELLEBORG" Country = "Sweden" +City Name = "Trento, IT" Location = "EUR|IT|IT017|TRENTO" Country = "Italy" +City Name = "Trenton, NJ, US" Location = "NAM|US|NJ|TRENTON" Country = "United States" +City Name = "Trieste, IT" Location = "EUR|IT|IT006|TRIESTE" Country = "Italy" +City Name = "Tripoli, LB" Location = "MEA|LB|LE003|TRIPOLI" Country = "Lebanon" +City Name = "Tripoli, LY" Location = "AFR|LY|LY021|TRIPOLI" Country = "Libya" +City Name = "Trollhaettan, SE" Location = "EUR|SE|SW021|TROLLHAETTAN" Country = "Sweden" +City Name = "Tromsoe, NO" Location = "EUR|NO|NO017|TROMSOE" Country = "Norway" +City Name = "Trondheim, NO" Location = "EUR|NO|NO015|TRONDHEIM" Country = "Norway" +City Name = "Trujillo, PE" Location = "SAM|PE|PE013|TRUJILLO" Country = "Peru" +City Name = "Trysil, NO" Location = "EUR|NO|NO005|TRYSIL" Country = "Norway" +City Name = "Tshabong, BW" Location = "AFR|BW|BC000|TSHABONG" Country = "Botswana" +City Name = "Tsu, JP" Location = "ASI|JP|JA023|TSU" Country = "Japan" +City Name = "Tsuchiura, JP" Location = "ASI|JP|JA014|TSUCHIURA" Country = "Japan" +City Name = "Tsukuba, JP" Location = "ASI|JP|JA014|TSUKUBA" Country = "Japan" +City Name = "Tsuruoka, JP" Location = "ASI|JP|JA045|TSURUOKA" Country = "Japan" +City Name = "Tucson, AZ, US" Location = "NAM|US|AZ|TUCSON" Country = "United States" +City Name = "Tucuman, AR" Location = "SAM|AR|AR024|SAN MIGUEL DE TUCUMN" Country = "Argentina" +City Name = "Tula, RU" Location = "ASI|RU|RS080|TULA" Country = "Russia" +City Name = "Tulsa, OK, US" Location = "NAM|US|OK|TULSA" Country = "United States" +City Name = "Tulua, CO" Location = "SAM|CO|CO027|TULUA" Country = "Colombia" +City Name = "Tulufan, CN" Location = "ASI|CN|CH028|TULUFAN" Country = "China" +City Name = "Tumen, CN" Location = "ASI|CN|CH017|TUMEN" Country = "China" +City Name = "Tumkur, IN" Location = "ASI|IN|IN017|TUMKUR" Country = "India" +City Name = "Tunbridge Wells, UK" Location = "EUR|UK|UK001|TUNBRIDGE WELLS" Country = "United Kingdom" +City Name = "Tunis, TN" Location = "AFR|TN|TS000|TUNIS" Country = "Tunisia" +City Name = "Tunja, CO" Location = "SAM|CO|CO019|TUNJA" Country = "Colombia" +City Name = "Turku, FI" Location = "EUR|FI|FI005|TURKU" Country = "Finland" +City Name = "Turmero, VE" Location = "SAM|VE|VE002|TURMERO" Country = "Venezuela" +City Name = "Tuticorin, IN" Location = "ASI|IN|IN031|TUTICORIN" Country = "India" +City Name = "Tuzla, BA" Location = "EUR|BA|BK001|TUZLA" Country = "Bosnia And Herzegovina" +City Name = "Tver, RU" Location = "ASI|RU|RS082|TVER" Country = "Russia" +City Name = "Tychy, PL" Location = "EUR|PL|PL012|TYCHY" Country = "Poland" +City Name = "Tyre, LB" Location = "MEA|LB|LE000|TYRE" Country = "Lebanon" +City Name = "Tyumen, RU" Location = "ASI|RU|RS083|TYUMEN" Country = "Russia" +City Name = "Tyumen, RU" Location = "ASI|RU|RS083|TYUMEN" Country = "Russia" +City Name = "Tzaneen, ZA" Location = "AFR|ZA|SF009|TZANEEN" Country = "South Africa" +City Name = "Ube, JP" Location = "ASI|JP|JA046|UBE" Country = "Japan" +City Name = "Uberaba, BR" Location = "SAM|BR|BR012|UBERABA" Country = "Brazil" +City Name = "Uberlandia, BR" Location = "SAM|BR|BR012|UBERLNDIA" Country = "Brazil" +City Name = "Ubon Ratchathani, TH" Location = "ASI|TH|TH071|UBON RATCHATHANI" Country = "Thailand" +City Name = "Udaipur, IN" Location = "ASI|IN|IN029|UDAIPUR" Country = "India" +City Name = "Uddevalla, SE" Location = "EUR|SE|SW021|UDDEVALLA" Country = "Sweden" +City Name = "Udon Thani, TH" Location = "ASI|TH|TH072|UDON THANI" Country = "Thailand" +City Name = "Udupi, IN" Location = "ASI|IN|IN017|UDUPI" Country = "India" +City Name = "Ueda, JP" Location = "ASI|JP|JA026|UEDA" Country = "Japan" +City Name = "Ufa, RU" Location = "ASI|RU|RS007|UFA" Country = "Russia" +City Name = "Uijeongbu, KR" Location = "ASI|KR|KS009|UIJEONGBU" Country = "South Korea" +City Name = "Uitenhage, ZA" Location = "AFR|ZA|SF002|UITENHAGE" Country = "South Africa" +City Name = "Uji, JP" Location = "ASI|JP|JA022|UJI" Country = "Japan" +City Name = "Ujjain, IN" Location = "ASI|IN|IN020|UJJAIN" Country = "India" +City Name = "Ujungpandang, ID" Location = "ASI|ID|ID019|UJUNGPANDANG" Country = "Indonesia" +City Name = "Ulaanbaatar, MN" Location = "ASI|MN|MG021|ULAANBAATAR" Country = "Mongolia" +City Name = "Ulan-Ude, RU" Location = "ASI|RU|RS086|ULAN-UDE" Country = "Russia" +City Name = "Ulhasnagar, IN" Location = "ASI|IN|IN021|ULHASNAGAR" Country = "India" +City Name = "Ulm, DE" Location = "EUR|DE|GM001|ULM" Country = "Germany" +City Name = "Ulsan, KR" Location = "ASI|KR|KS016|ULSAN" Country = "South Korea" +City Name = "Ulundi, ZA" Location = "AFR|ZA|SF005|ULUNDI" Country = "South Africa" +City Name = "Ulyanovsk, RU" Location = "ASI|RU|RS085|ULYANOVSK" Country = "Russia" +City Name = "Umeaa, SE" Location = "EUR|SE|SW018|UMEAA" Country = "Sweden" +City Name = "Umhlanga Rock, ZA" Location = "AFR|ZA|SF005|UMHLANGA ROCK" Country = "South Africa" +City Name = "Umlazi, ZA" Location = "AFR|ZA|SF005|UMLAZI" Country = "South Africa" +City Name = "Umtata, ZA" Location = "AFR|ZA|SF002|UMTATA" Country = "South Africa" +City Name = "Underburg, ZA" Location = "AFR|ZA|SF005|UNDERBURG" Country = "South Africa" +City Name = "Unnao, IN" Location = "ASI|IN|IN033|UNNAO" Country = "India" +City Name = "Upington, ZA" Location = "AFR|ZA|SF008|UPINGTON" Country = "South Africa" +City Name = "Uppsala, SE" Location = "EUR|SE|SW016|UPPSALA" Country = "Sweden" +City Name = "Uralsk, KZ" Location = "ASI|KZ|KZ006|URALSK" Country = "Kazakhstan" +City Name = "Urasoe, JP" Location = "ASI|JP|JA032|URASOE" Country = "Japan" +City Name = "Urawa, JP" Location = "ASI|JP|JA035|URAWA" Country = "Japan" +City Name = "Urayasu, JP" Location = "ASI|JP|JA041|URAYASU" Country = "Japan" +City Name = "Urfa, TR" Location = "MEA|TR|TU067|URFA" Country = "Turkey" +City Name = "Uruapan, MX" Location = "NAM|MX|MX016|URUAPAN" Country = "Mexico" +City Name = "Uruguaiana, BR" Location = "SAM|BR|BR019|URUGUAIANA" Country = "Brazil" +City Name = "Usak, TR" Location = "MEA|TR|TU076|USAK" Country = "Turkey" +City Name = "Utrecht, NL" Location = "EUR|NL|NL010|UTRECHT" Country = "Netherlands" +City Name = "Utsunomiya, JP" Location = "ASI|JP|JA039|UTSUNOMIYA" Country = "Japan" +City Name = "Uvongo, ZA" Location = "AFR|ZA|SF005|UVONGO" Country = "South Africa" +City Name = "Uzhgorod, UA" Location = "EUR|UA|UP021|UZHGOROD" Country = "Ukraine" +City Name = "Vaalwater, ZA" Location = "AFR|ZA|SF009|VAALWATER" Country = "South Africa" +City Name = "Vadodara, IN" Location = "ASI|IN|IN012|VADODARA" Country = "India" +City Name = "Vaduz, LI" Location = "EUR|LI|LS000|VADUZ" Country = "Liechtenstein" +City Name = "Vaesteraas, SE" Location = "EUR|SE|SW020|VAESTERAAS" Country = "Sweden" +City Name = "Valdivia, CL" Location = "SAM|CL|CI008|VALDIVIA" Country = "Chile" +City Name = "Valdosta, GA, US" Location = "NAM|US|GA|Valdosta" Country = "United States" +City Name = "Valencia, ES" Location = "EUR|ES|SP016|VALENCIA" Country = "Spain" +City Name = "Valencia, VE" Location = "SAM|VE|VE007|VALENCIA" Country = "Venezuela" +City Name = "Valera, VE" Location = "SAM|VE|VE022|VALERA" Country = "Venezuela" +City Name = "Valladolid, ES" Location = "EUR|ES|SP007|VALLADOLID" Country = "Spain" +City Name = "Valledupar, CO" Location = "SAM|CO|CO008|VALLEDUPAR" Country = "Colombia" +City Name = "Vallejo, CA, US" Location = "NAM|US|CA|VALLEJO" Country = "United States" +City Name = "Valletta, MT" Location = "EUR|MT|MT---|VALLETTA" Country = "Malta" +City Name = "Valparai, IN" Location = "ASI|IN|IN031|VALPARAI" Country = "India" +City Name = "Valparaiso, CL" Location = "SAM|CL|CI013|VALPARASO" Country = "Chile" +City Name = "Valsad, IN" Location = "ASI|IN|IN012|VALSAD" Country = "India" +City Name = "Van, TR" Location = "MEA|TR|TU077|VAN" Country = "Turkey" +City Name = "Vancouver, CA" Location = "NAM|CA|BC|VANCOUVER" Country = "Canada" +City Name = "Vancouver, WA, US" Location = "NAM|US|WA|VANCOUVER" Country = "United States" +City Name = "Vanderbijlpark, ZA" Location = "AFR|ZA|SF004|VANDERBIJLPARK" Country = "South Africa" +City Name = "Vantaa, FI" Location = "EUR|FI|FI002|VANTAA" Country = "Finland" +City Name = "Varamin, IR" Location = "MEA|IR|IR026|VARAMIN" Country = "Iran" +City Name = "Varanasi, IN" Location = "ASI|IN|IN033|VARANASI" Country = "India" +City Name = "Varginha, BR" Location = "SAM|BR|BR012|VARGINHA" Country = "Brazil" +City Name = "Varna, BG" Location = "EUR|BG|BU024|VARNA" Country = "Bulgaria" +City Name = "Varzea Grande, BR" Location = "SAM|BR|BR010|VARZEA GRANDE" Country = "Brazil" +City Name = "Vatican City, VA" Location = "EUR|VA|-|VATICAN CITY" Country = "Vatican City" +City Name = "Vaughan, CA" Location = "NAM|CA|AC003|VAUGHAN" Country = "Canada" +City Name = "Vejle, DK" Location = "EUR|DK|DA014|VEJLE" Country = "Denmark" +City Name = "Velikiy Novgorod, RU" Location = "ASI|RU|RS056|VELIKIY NOVGOROD" Country = "Russia" +City Name = "Vellore, IN" Location = "ASI|IN|IN031|VELLORE" Country = "India" +City Name = "Venezia, IT" Location = "EUR|IT|IT020|VENEZIA" Country = "Italy" +City Name = "Ventura, CA, US" Location = "NAM|US|CA|VENTURA" Country = "United States" +City Name = "Veracruz Llave, MX" Location = "NAM|MX|MX030|VERACRUZ LLAVE" Country = "Mexico" +City Name = "Vereeniging, ZA" Location = "AFR|ZA|SF004|VEREENIGING" Country = "South Africa" +City Name = "Verona, IT" Location = "EUR|IT|IT020|VERONA" Country = "Italy" +City Name = "Viamao, BR" Location = "SAM|BR|BR019|VIAMAO" Country = "Brazil" +City Name = "Viana do Castelo, PT" Location = "EUR|PT|PO018|VIANA DO CASTELO" Country = "Portugal" +City Name = "Viborg, DK" Location = "EUR|DK|DA005|VIBORG" Country = "Denmark" +City Name = "Vicente Lopez, AR" Location = "SAM|AR|AR001|VICENTE LPEZ" Country = "Argentina" +City Name = "Vicenza, IT" Location = "EUR|IT|IT020|VICENZA" Country = "Italy" +City Name = "Victoria, CA" Location = "NAM|CA|BC|VICTORIA" Country = "Canada" +City Name = "Victoria, SC" Location = "AFR|SC|SE000|VICTORIA" Country = "Seychelles" +City Name = "Vienna, AT" Location = "EUR|AT|AU009|WIEN" Country = "Austria" +City Name = "Vientiane, LA" Location = "ASI|LA|LA017|VIENTIANE" Country = "Laos" +City Name = "Vigo, ES" Location = "EUR|ES|SP011|VIGO" Country = "Spain" +City Name = "Vijayawada, IN" Location = "ASI|IN|IN002|VIJAYAWADA" Country = "India" +City Name = "Vila, VU" Location = "OCN|VU|NH009|VILA" Country = "Vanuatu" +City Name = "Vila Real, PT" Location = "EUR|PT|PO019|VILA REAL" Country = "Portugal" +City Name = "Vila Velha, BR" Location = "SAM|BR|BR026|VILA VELHA" Country = "Brazil" +City Name = "Vilanculos, MZ" Location = "AFR|MZ|MZ003|VILANCULOS" Country = "Mozambique" +City Name = "Villahermosa, MX" Location = "NAM|MX|MX027|VILLAHERMOSA" Country = "Mexico" +City Name = "Villavicencio, CO" Location = "SAM|CO|CO017|VILLAVICENCIO" Country = "Colombia" +City Name = "Villeurbanne, FR" Location = "EUR|FR|FR012|VILLEURBANNE" Country = "France" +City Name = "Vilnius, LT" Location = "EUR|LT|LH054|VILNIUS" Country = "Lithuania" +City Name = "Vina Del Mar, CL" Location = "SAM|CL|CI013|VIA DEL MAR" Country = "Chile" +City Name = "Vinh, VN" Location = "ASI|VN|VM060|VINH" Country = "Vietnam" +City Name = "Virginia, ZA" Location = "AFR|ZA|SF003|VIRGINIA" Country = "South Africa" +City Name = "Virginia Beach, VA, US" Location = "NAM|US|VA|VIRGINIA BEACH" Country = "United States" +City Name = "Visakhapatnam, IN" Location = "ASI|IN|IN002|VISAKHAPATNAM" Country = "India" +City Name = "Visby, SE" Location = "EUR|SE|SW004|VISBY" Country = "Sweden" +City Name = "Viseu, PT" Location = "EUR|PT|PO020|VISEU" Country = "Portugal" +City Name = "Vitebsk, BY" Location = "EUR|BY|BO007|VITEBSK" Country = "Belarus" +City Name = "Vitoria, BR" Location = "SAM|BR|BR015|VITRIA" Country = "Brazil" +City Name = "Vitoria Da Conquista, BR" Location = "SAM|BR|BR005|VITRIA DA CONQUISTA" Country = "Brazil" +City Name = "Vitoria De Santo Antao, BR" Location = "SAM|BR|BR026|VITRIA DE SANTO ANTAO" Country = "Brazil" +City Name = "Vladikavkaz, RU" Location = "ASI|RU|RS070|VLADIKAVKAZ" Country = "Russia" +City Name = "Vladimir, RU" Location = "ASI|RU|RS087|VLADIMIR" Country = "Russia" +City Name = "Vladivostok, RU" Location = "ASI|RU|RS063|VLADIVOSTOK" Country = "Russia" +City Name = "Volgodonsk, RU" Location = "ASI|RU|RS065|VOLGODONSK" Country = "Russia" +City Name = "Volgograd, RU" Location = "ASI|RU|RS088|VOLGOGRAD" Country = "Russia" +City Name = "Volksrust, ZA" Location = "AFR|ZA|SF006|VOLKSRUST" Country = "South Africa" +City Name = "Vologda, RU" Location = "ASI|RU|RS089|VOLOGDA" Country = "Russia" +City Name = "Volos, GR" Location = "EUR|GR|GR038|VOLOS" Country = "Greece" +City Name = "Volta Redonda, BR" Location = "SAM|BR|BR017|VOLTA REDONDA" Country = "Brazil" +City Name = "Volzhskiy, RU" Location = "ASI|RU|RS088|VOLZHSKIY" Country = "Russia" +City Name = "Voronezh, RU" Location = "ASI|RU|RS090|VORONEZH" Country = "Russia" +City Name = "Votkinsk, RU" Location = "ASI|RU|RS084|VOTKINSK" Country = "Russia" +City Name = "Vredendal, ZA" Location = "AFR|ZA|SF011|VREDENDAL" Country = "South Africa" +City Name = "Vryburg, ZA" Location = "AFR|ZA|SF007|VRYBURG" Country = "South Africa" +City Name = "Vryheid, ZA" Location = "AFR|ZA|SF005|VRYHEID" Country = "South Africa" +City Name = "Waco, TX, US" Location = "NAM|US|TX|WACO" Country = "United States" +City Name = "Wadhwan, IN" Location = "ASI|IN|IN012|WADHWAN" Country = "India" +City Name = "Wafangdian, CN" Location = "ASI|CN|CH022|WAFANGDIAN" Country = "China" +City Name = "Waitakere, NZ" Location = "OCN|NZ|NZ000|WAITAKERE" Country = "New Zealand" +City Name = "Wakayama, JP" Location = "ASI|JP|JA044|WAKAYAMA" Country = "Japan" +City Name = "Wakefield, UK" Location = "EUR|UK|UK001|WAKEFIELD" Country = "United Kingdom" +City Name = "Walbrzych, PL" Location = "EUR|PL|PL001|WALBRZYCH" Country = "Poland" +City Name = "Walsall, UK" Location = "EUR|UK|UK001|WALSALL" Country = "United Kingdom" +City Name = "Wanxian, CN" Location = "ASI|CN|CH003|WANXIAN" Country = "China" +City Name = "Warangal, IN" Location = "ASI|IN|IN002|WARANGAL" Country = "India" +City Name = "Wardha, IN" Location = "ASI|IN|IN021|WARDHA" Country = "India" +City Name = "Warren, MI, US" Location = "NAM|US|MI|WARREN" Country = "United States" +City Name = "Warrington, UK" Location = "EUR|UK|UK001|WARRINGTON" Country = "United Kingdom" +City Name = "Warszawa, PL" Location = "EUR|PL|PL007|WARSZAWA" Country = "Poland" +City Name = "Warwick, UK" Location = "EUR|UK|UK001|WARWICK" Country = "United Kingdom" +City Name = "Washington, DC, US" Location = "NAM|US|DC|WASHINGTON" Country = "United States" +City Name = "Waterbury, CT, US" Location = "NAM|US|CT|WATERBURY" Country = "United States" +City Name = "Waterloo, UK" Location = "EUR|UK|UK148|WATERLOO" Country = "United Kingdom" +City Name = "Weifang, CN" Location = "ASI|CN|CH023|WEIFANG" Country = "China" +City Name = "Weihai, CN" Location = "ASI|CN|CH023|WEIHAI" Country = "China" +City Name = "Weihui, CN" Location = "ASI|CN|CH012|WEIHUI" Country = "China" +City Name = "Weinan, CN" Location = "ASI|CN|CH022|WEINAN" Country = "China" +City Name = "Welkom, ZA" Location = "AFR|ZA|SF003|WELKOM" Country = "South Africa" +City Name = "Wellington, NZ" Location = "OCN|NZ|NZ000|WELLINGTON" Country = "New Zealand" +City Name = "Wellington, ZA" Location = "AFR|ZA|SF011|WELLINGTON" Country = "South Africa" +City Name = "Wendeng, CN" Location = "ASI|CN|CH023|WENDENG" Country = "China" +City Name = "Wenzhou, CN" Location = "ASI|CN|CH031|WENZHOU" Country = "China" +City Name = "Wepener, ZA" Location = "AFR|ZA|SF003|WEPENER" Country = "South Africa" +City Name = "West Covina, CA, US" Location = "NAM|US|CA|WEST COVINA" Country = "United States" +City Name = "West Valley City, UT, US" Location = "NAM|US|UT|WEST VALLEY CITY" Country = "United States" +City Name = "Westminster, UK" Location = "EUR|UK|UK001|WESTMINSTER" Country = "United Kingdom" +City Name = "Westminster, CO, US" Location = "NAM|US|CO|WESTMINSTER" Country = "United States" +City Name = "White River, ZA" Location = "AFR|ZA|SF006|WHITE RIVER" Country = "South Africa" +City Name = "Wichita, KS, US" Location = "NAM|US|KS|WICHITA" Country = "United States" +City Name = "Wichita Falls, TX, US" Location = "NAM|US|TX|WICHITA FALLS" Country = "United States" +City Name = "Wiesbaden, DE" Location = "EUR|DE|GM007|WIESBADEN" Country = "Germany" +City Name = "Wigan, UK" Location = "EUR|UK|UK001|WIGAN" Country = "United Kingdom" +City Name = "Wilderness, ZA" Location = "AFR|ZA|SF011|WILDERNESS" Country = "South Africa" +City Name = "Willemstad, AN" Location = "CAC|AN|NT---|WILLEMSTAD" Country = "Netherlands Antilles" +City Name = "Winburg, ZA" Location = "AFR|ZA|SF003|WINBURG" Country = "South Africa" +City Name = "Winchester, UK" Location = "EUR|UK|UK001|WINCHESTER" Country = "United Kingdom" +City Name = "Windhoek, NA" Location = "AFR|NA|WA005|WINDHOEK" Country = "Namibia" +City Name = "Windsor, CA" Location = "NAM|CA|NL|WINDSOR" Country = "Canada" +City Name = "Windsor and Maidenhead, UK" Location = "EUR|UK|UK001|WINDSOR AND MAIDENHEAD" Country = "United Kingdom" +City Name = "Winnipeg, CA" Location = "NAM|CA|MB|WINNIPEG" Country = "Canada" +City Name = "Winston-Salem, NC, US" Location = "NAM|US|NC|WINSTON-SALEM" Country = "United States" +City Name = "Winterthur, CH" Location = "EUR|CH|SZ026|WINTERTHUR" Country = "Switzerland" +City Name = "Wirral, UK" Location = "EUR|UK|UK001|WIRRAL" Country = "United Kingdom" +City Name = "Witbank, ZA" Location = "AFR|ZA|SF006|WITBANK" Country = "South Africa" +City Name = "Witten, DE" Location = "EUR|DE|GM011|WITTEN" Country = "Germany" +City Name = "Wloclawek, PL" Location = "EUR|PL|PL002|WLOCLAWEK" Country = "Poland" +City Name = "Wokingham, UK" Location = "EUR|UK|UK001|WOKINGHAM" Country = "United Kingdom" +City Name = "Wolfsburg, DE" Location = "EUR|DE|GM009|WOLFSBURG" Country = "Germany" +City Name = "Wollongong, AU" Location = "OCN|AU|NSW|WOLLONGONG" Country = "Australia" +City Name = "Wolverhampton, UK" Location = "EUR|UK|UK001|WOLVERHAMPTON" Country = "United Kingdom" +City Name = "Wonju, KR" Location = "ASI|KR|KS007|WONJU" Country = "South Korea" +City Name = "Wonsan, KP" Location = "ASI|KR|KS009|WONSAN" Country = "North Korea" +City Name = "Worcester, MA, US" Location = "NAM|US|MA|WORCESTER" Country = "United States" +City Name = "Worcester, ZA" Location = "AFR|ZA|SF011|WORCESTER" Country = "South Africa" +City Name = "Wroclaw, PL" Location = "EUR|PL|PL001|WROCLAW" Country = "Poland" +City Name = "Wuan, CN" Location = "ASI|CN|CH014|WUAN" Country = "China" +City Name = "Wugang, CN" Location = "ASI|CN|CH014|WUGANG" Country = "China" +City Name = "Wuhai, CN" Location = "ASI|CN|CH019|WUHAI" Country = "China" +City Name = "Wuhan, CN" Location = "ASI|CN|CH013|WUHAN" Country = "China" +City Name = "Wuhu, CN" Location = "ASI|CN|CH001|WUHU" Country = "China" +City Name = "Wulumuqi, CN" Location = "ASI|CN|CH028|WULUMUQI" Country = "China" +City Name = "Wuppertal, DE" Location = "EUR|DE|GM011|WUPPERTAL" Country = "Germany" +City Name = "Wurzburg, DE" Location = "EUR|DE|GM002|WRZBURG" Country = "Germany" +City Name = "Wuxi, CN" Location = "ASI|CN|CH003|WUXI" Country = "China" +City Name = "Wuxue, CN" Location = "ASI|CN|CH013|WUXUE" Country = "China" +City Name = "Wuyishan, CN" Location = "ASI|CN|CH004|WUYISHAN" Country = "China" +City Name = "Wuzhong, CN" Location = "ASI|CN|CH020|WUZHONG" Country = "China" +City Name = "Wuzhou, CN" Location = "ASI|CN|CH007|WUZHOU" Country = "China" +City Name = "Wycombe, UK" Location = "EUR|UK|UK001|WYCOMBE" Country = "United Kingdom" +City Name = "Xai Xai, MZ" Location = "AFR|MZ|MZ002|XAI XAI" Country = "Mozambique" +City Name = "Xiamen, CN" Location = "ASI|CN|CH004|XIAMEN" Country = "China" +City Name = "Xian, CN" Location = "ASI|CN|CH010|XIAN" Country = "China" +City Name = "Xiangfan, CN" Location = "ASI|CN|CH013|XIANGFAN" Country = "China" +City Name = "Xiangtan, CN" Location = "ASI|CN|CH026|XIANGTAN" Country = "China" +City Name = "Xiangxiang, CN" Location = "ASI|CN|CH014|XIANGXIANG" Country = "China" +City Name = "Xianning, CN" Location = "ASI|CN|CH013|XIANNING" Country = "China" +City Name = "Xiantao, CN" Location = "ASI|CN|CH013|XIANTAO" Country = "China" +City Name = "Xianyang, CN" Location = "ASI|CN|CH004|XIANYANG" Country = "China" +City Name = "Xiaogan, CN" Location = "ASI|CN|CH013|XIAOGAN" Country = "China" +City Name = "Xiaoshan, CN" Location = "ASI|CN|CH031|XIAOSHAN" Country = "China" +City Name = "Xichang, CN" Location = "ASI|CN|CH026|XICHANG" Country = "China" +City Name = "Xifeng, CN" Location = "ASI|CN|CH023|XIFENG" Country = "China" +City Name = "Xingcheng, CN" Location = "ASI|CN|CH025|XINGCHENG" Country = "China" +City Name = "Xinghua, CN" Location = "ASI|CN|CH015|XINGHUA" Country = "China" +City Name = "Xingtai, CN" Location = "ASI|CN|CH010|XINGTAI" Country = "China" +City Name = "Xingyi, CN" Location = "ASI|CN|CH008|XINGYI" Country = "China" +City Name = "Xining, CN" Location = "ASI|CN|CH021|XINING" Country = "China" +City Name = "Xinji, CN" Location = "ASI|CN|CH010|XINJI" Country = "China" +City Name = "Xintai, CN" Location = "ASI|CN|CH008|XINTAI" Country = "China" +City Name = "Xinxiang, CN" Location = "ASI|CN|CH012|XINXIANG" Country = "China" +City Name = "Xinyang, CN" Location = "ASI|CN|CH012|XINYANG" Country = "China" +City Name = "Xinyi, CN" Location = "ASI|CN|CH006|XINYI" Country = "China" +City Name = "Xinyu, CN" Location = "ASI|CN|CH012|XINYU" Country = "China" +City Name = "Xinzhou, CN" Location = "ASI|CN|CH001|XINZHOU" Country = "China" +City Name = "Xochimilco, MX" Location = "NAM|MX|MX009|XOCHIMILCO" Country = "Mexico" +City Name = "Xuchang, CN" Location = "ASI|CN|CH001|XUCHANG" Country = "China" +City Name = "Xuzhou, CN" Location = "ASI|CN|CH015|XUZHOU" Country = "China" +City Name = "Yaan, CN" Location = "ASI|CN|CH026|YAAN" Country = "China" +City Name = "Yachiyo, JP" Location = "ASI|JP|JA012|YACHIYO" Country = "Japan" +City Name = "Yaizu, JP" Location = "ASI|JP|JA038|YAIZU" Country = "Japan" +City Name = "Yakeshi, CN" Location = "ASI|CN|CH019|YAKESHI" Country = "China" +City Name = "Yakutsk, RU" Location = "ASI|RU|RS091|YAKUTSK" Country = "Russia" +City Name = "Yamagata, JP" Location = "ASI|JP|JA045|YAMAGATA" Country = "Japan" +City Name = "Yamaguchi, JP" Location = "ASI|JP|JA046|YAMAGUCHI" Country = "Japan" +City Name = "Yamato, JP" Location = "ASI|JP|JA028|YAMATO" Country = "Japan" +City Name = "Yamoussoukro, CI" Location = "AFR|CI|IV057|YAMOUSSOUKRO" Country = "Ivory Coast" +City Name = "Yamunanagar, IN" Location = "ASI|IN|IN013|YAMUNANAGAR" Country = "India" +City Name = "Yanan, CN" Location = "ASI|CN|CH022|YANAN" Country = "China" +City Name = "Yancheng, CN" Location = "ASI|CN|CH023|YANCHENG" Country = "China" +City Name = "Yangjiang, CN" Location = "ASI|CN|CH006|YANGJIANG" Country = "China" +City Name = "Yangon, MM" Location = "ASI|MM|BM014|YANGON" Country = "Burma/Myanmar" +City Name = "Yangquan, CN" Location = "ASI|CN|CH025|YANGQUAN" Country = "China" +City Name = "Yangzhou, CN" Location = "ASI|CN|CH015|YANGZHOU" Country = "China" +City Name = "Yanji, CN" Location = "ASI|CN|CH012|YANJI" Country = "China" +City Name = "Yantai, CN" Location = "ASI|CN|CH023|YANTAI" Country = "China" +City Name = "Yao, JP" Location = "ASI|JP|JA033|YAO" Country = "Japan" +City Name = "Yaounde, CM" Location = "AFR|CM|CM002|YAOUNDE" Country = "Cameroon" +City Name = "Yaroslavl, RU" Location = "ASI|RU|RS093|YAROSLAVL" Country = "Russia" +City Name = "Yatsushiro, JP" Location = "ASI|JP|JA021|YATSUSHIRO" Country = "Japan" +City Name = "Yavatmal, IN" Location = "ASI|IN|IN021|YAVATMAL" Country = "India" +City Name = "Yazd, IR" Location = "MEA|IR|IR027|YAZD" Country = "Iran" +City Name = "Yerevan, AM" Location = "ASI|AM|AM011|YEREVAN" Country = "Armenia" +City Name = "Yibin, CN" Location = "ASI|CN|CH026|YIBIN" Country = "China" +City Name = "Yichang, CN" Location = "ASI|CN|CH013|YICHANG" Country = "China" +City Name = "Yichun, CN" Location = "ASI|CN|CH011|YICHUN" Country = "China" +City Name = "Yinchuan, CN" Location = "ASI|CN|CH020|YINCHUAN" Country = "China" +City Name = "Yingcheng, CN" Location = "ASI|CN|CH013|YINGCHENG" Country = "China" +City Name = "Yingkou, CN" Location = "ASI|CN|CH018|YINGKOU" Country = "China" +City Name = "Yingtan, CN" Location = "ASI|CN|CH016|YINGTAN" Country = "China" +City Name = "Yining, CN" Location = "ASI|CN|CH016|YINING" Country = "China" +City Name = "Yiwu, CN" Location = "ASI|CN|CH028|YIWU" Country = "China" +City Name = "Yixing, CN" Location = "ASI|CN|CH015|YIXING" Country = "China" +City Name = "Yiyang, CN" Location = "ASI|CN|CH012|YIYANG" Country = "China" +City Name = "Yizhou, CN" Location = "ASI|CN|CH010|YIZHOU" Country = "China" +City Name = "Yogyakarta, ID" Location = "ASI|ID|ID005|YOGYAKARTA" Country = "Indonesia" +City Name = "Yokkaichi, JP" Location = "ASI|JP|JA030|YOKKAICHI" Country = "Japan" +City Name = "Yokohama, JP" Location = "ASI|JP|JA019|YOKOHAMA" Country = "Japan" +City Name = "Yokosuka, JP" Location = "ASI|JP|JA019|YOKOSUKA" Country = "Japan" +City Name = "Yonago, JP" Location = "ASI|JP|JA042|YONAGO" Country = "Japan" +City Name = "Yongan, CN" Location = "ASI|CN|CH025|YONGAN" Country = "China" +City Name = "Yongzhou, CN" Location = "ASI|CN|CH014|YONGZHOU" Country = "China" +City Name = "Yonkers, NY, US" Location = "NAM|US|NY|YONKERS" Country = "United States" +City Name = "York, CA" Location = "NAM|CA|QC|YORK" Country = "Canada" +City Name = "York, UK" Location = "EUR|UK|UK001|YORK" Country = "United Kingdom" +City Name = "Yoshkar-Ola, RU" Location = "ASI|RU|RS049|YOSHKAR-OLA" Country = "Russia" +City Name = "Yosu, KR" Location = "ASI|KR|KS005|YOSU" Country = "South Korea" +City Name = "Ystad, SE" Location = "EUR|SE|SW013|YSTAD" Country = "Sweden" +City Name = "Yuanjiang, CN" Location = "ASI|CN|CH030|YUANJIANG" Country = "China" +City Name = "Yuci, CN" Location = "ASI|CN|CH025|YUCI" Country = "China" +City Name = "Yueyang, CN" Location = "ASI|CN|CH014|YUEYANG" Country = "China" +City Name = "Yulin, Guangxi, CN" Location = "ASI|CN|CH007|YULIN" Country = "China" +City Name = "Yulin, Shaanxi, CN" Location = "ASI|CN|CH022|YULIN" Country = "China" +City Name = "Yumen, CN" Location = "ASI|CN|CH005|YUMEN" Country = "China" +City Name = "Yuncheng, CN" Location = "ASI|CN|CH025|YUNCHENG" Country = "China" +City Name = "Yutian, CN" Location = "ASI|CN|CH010|YUTIAN" Country = "China" +City Name = "Yuxi, CN" Location = "ASI|CN|CH004|YUXI" Country = "China" +City Name = "Yuyao, CN" Location = "ASI|CN|CH004|YUYAO" Country = "China" +City Name = "Yuzhno-Sahalinsk, RU" Location = "ASI|RU|RS067|YUZHNO-SAHALINSK" Country = "Russia" +City Name = "Yuzhou, CN" Location = "ASI|CN|CH012|YUZHOU" Country = "China" +City Name = "Zaanstad, NL" Location = "EUR|NL|NL008|ZAANSTAD" Country = "Netherlands" +City Name = "Zabol, IR" Location = "MEA|IR|IR025|ZABOL" Country = "Iran" +City Name = "Zabrze, PL" Location = "EUR|PL|PL012|ZABRZE" Country = "Poland" +City Name = "Zacatecas, MX" Location = "NAM|MX|MX032|ZACATECAS" Country = "Mexico" +City Name = "Zagazig, EG" Location = "AFR|EG|EG015|ZAGAZIG" Country = "Egypt" +City Name = "Zagreb, HR" Location = "EUR|HR|HR004|ZAGREB" Country = "Croatia" +City Name = "Zahedan, IR" Location = "MEA|IR|IR025|ZAHEDAN" Country = "Iran" +City Name = "Zama, JP" Location = "ASI|JP|JA019|ZAMA" Country = "Japan" +City Name = "Zamboanga, PH" Location = "ASI|PH|RP130|ZAMBOANGA" Country = "Philippines" +City Name = "Zamora De Hidalgo, MX" Location = "NAM|MX|MX016|ZAMORA DE HIDALGO" Country = "Mexico" +City Name = "Zanjan, IR" Location = "MEA|IR|IR028|ZANJAN" Country = "Iran" +City Name = "Zanzibar, TZ" Location = "AFR|TZ|TZ000|ZANZIBAR" Country = "Tanzania" +City Name = "Zaozhuang, CN" Location = "ASI|CN|CH023|ZAOZHUANG" Country = "China" +City Name = "Zapopan, MX" Location = "NAM|MX|MX014|ZAPOPAN" Country = "Mexico" +City Name = "Zaporozhye, UA" Location = "EUR|UA|UP022|ZAPOROZHYE" Country = "Ukraine" +City Name = "Zaragoza, ES" Location = "EUR|ES|SP002|ZARAGOZA" Country = "Spain" +City Name = "Zaria, NG" Location = "AFR|NG|NI000|ZARIA" Country = "Nigeria" +City Name = "Zastron, ZA" Location = "AFR|ZA|SF003|ZASTRON" Country = "South Africa" +City Name = "Zelenograd, RU" Location = "ASI|RU|RS052|ZELENOGRAD" Country = "Russia" +City Name = "Zenica, BA" Location = "EUR|BA|BK001|ZENICA" Country = "Bosnia And Herzegovina" +City Name = "Zhalantun, CN" Location = "ASI|CN|CH019|ZHALANTUN" Country = "China" +City Name = "Zhangjiagang, CN" Location = "ASI|CN|CH015|ZHANGJIAGANG" Country = "China" +City Name = "Zhangjiakou, CN" Location = "ASI|CN|CH010|ZHANGJIAKOU" Country = "China" +City Name = "Zhangshu, CN" Location = "ASI|CN|CH015|ZHANGSHU" Country = "China" +City Name = "Zhangye, CN" Location = "ASI|CN|CH005|ZHANGYE" Country = "China" +City Name = "Zhangzhou, CN" Location = "ASI|CN|CH004|ZHANGZHOU" Country = "China" +City Name = "Zhanjiang, CN" Location = "ASI|CN|CH006|ZHANJIANG" Country = "China" +City Name = "Zhaodong, CN" Location = "ASI|CN|CH011|ZHAODONG" Country = "China" +City Name = "Zhaoqing, CN" Location = "ASI|CN|CH006|ZHAOQING" Country = "China" +City Name = "Zhaotong, CN" Location = "ASI|CN|CH030|ZHAOTONG" Country = "China" +City Name = "Zhaoyang, CN" Location = "ASI|CN|CH015|ZHAOYANG" Country = "China" +City Name = "Zhengzhou, CN" Location = "ASI|CN|CH012|ZHENGZHOU" Country = "China" +City Name = "Zhenjiang, CN" Location = "ASI|CN|CH015|ZHENJIANG" Country = "China" +City Name = "Zhicheng, CN" Location = "ASI|CN|CH031|ZHICHENG" Country = "China" +City Name = "Zhitomir, UA" Location = "EUR|UA|UP023|ZHITOMIR" Country = "Ukraine" +City Name = "Zhongshan, CN" Location = "ASI|CN|CH004|ZHONGSHAN" Country = "China" +City Name = "Zhoushan, CN" Location = "ASI|CN|CH031|ZHOUSHAN" Country = "China" +City Name = "Zhucheng, CN" Location = "ASI|CN|CH015|ZHUCHENG" Country = "China" +City Name = "Zhuhai, CN" Location = "ASI|CN|CH006|ZHUHAI" Country = "China" +City Name = "Zhuji, CN" Location = "ASI|CN|CH023|ZHUJI" Country = "China" +City Name = "Zhumadian, CN" Location = "ASI|CN|CH012|ZHUMADIAN" Country = "China" +City Name = "Zhuozhou, CN" Location = "ASI|CN|CH010|ZHUOZHOU" Country = "China" +City Name = "Zhuzhou, CN" Location = "ASI|CN|CH014|ZHUZHOU" Country = "China" +City Name = "Zibo, CN" Location = "ASI|CN|CH023|ZIBO" Country = "China" +City Name = "Zielona Gora, PL" Location = "EUR|PL|PL005|ZIELONA GRA" Country = "Poland" +City Name = "Zigong, CN" Location = "ASI|CN|CH026|ZIGONG" Country = "China" +City Name = "Ziguinchor, SN" Location = "AFR|SN|SG010|ZIGUINCHOR" Country = "Senegal" +City Name = "Zinder, NE" Location = "AFR|NE|NG008|ZINDER" Country = "Niger" +City Name = "Zixing, CN" Location = "ASI|CN|CH014|ZIXING" Country = "China" +City Name = "Zlatoust, RU" Location = "ASI|RU|RS013|ZLATOUST" Country = "Russia" +City Name = "Zoetermeer, NL" Location = "EUR|NL|NL012|ZOETERMEER" Country = "Netherlands" +City Name = "Zonguldak, TR" Location = "MEA|TR|TU000|ZONGULDAK" Country = "Turkey" +City Name = "Zrenjanin, CS" Location = "EUR|CS|YI003|ZRENJANIN" Country = "Serbia" +City Name = "Zunyi, CN" Location = "ASI|CN|CH008|ZUNYI" Country = "China" +City Name = "Zurich, CH" Location = "EUR|CH|SZ026|ZRICH" Country = "Switzerland" +City Name = "Zuwarah, LY" Location = "AFR|LY|LY008|ZUWARAH" Country = "Libya" +City Name = "Zwickau, DE" Location = "EUR|DE|GM014|ZWICKAU" Country = "Germany" +City Name = "Zwolle, NL" Location = "EUR|NL|NL009|ZWOLLE" Country = "Netherlands" diff --git a/src/main/webapp/js/jdigiclock/changelog.html b/src/main/webapp/js/jdigiclock/changelog.html new file mode 100644 index 00000000..d9fc2f07 --- /dev/null +++ b/src/main/webapp/js/jdigiclock/changelog.html @@ -0,0 +1,30 @@ + + + + + jDigiClock - Digital Clock (HTC Hero inspired). + + + +
                                +

                                jDigiClock

                                +

                                Digital Clock (HTC Hero inspired)

                                +

                                Changelog

                                +

                                Version 2.1.0 - 2010-02-24

                                +
                                  +
                                • Fixed bug with configuration option weatherImagesPath reported by Alessandro Benedetti
                                • +
                                • Animation method rewriting
                                • +
                                • New configuration option proxyType
                                • +
                                • Added .NET proxy. Thanks to Alessandro Benedetti
                                • +
                                +

                                Version 2.0.0 - 2009-12-06

                                +
                                  +
                                • Add 5-day forecast panel.
                                • +
                                +

                                Version 1.0.0 - 2009-11-28

                                +
                                  +
                                • Initial release.
                                • +
                                +
                                + + diff --git a/src/main/webapp/js/jdigiclock/css/jquery.jdigiclock.css b/src/main/webapp/js/jdigiclock/css/jquery.jdigiclock.css new file mode 100644 index 00000000..d73370b0 --- /dev/null +++ b/src/main/webapp/js/jdigiclock/css/jquery.jdigiclock.css @@ -0,0 +1,227 @@ +#plugin_container { + width:500px; + height:420px; + position:relative; + background:url(../images/htc_hero_wallpaper_02.jpg); + overflow:hidden; + font-family:Arial, Verdana, Tahoma, Helvetica, sans-serif; + color:#fff; +} + +#plugin_container p { + margin:0; + padding:0; +} + +#left_arrow, #right_arrow { + position:absolute; + top:200px; + z-index:200; + cursor:pointer; +} + +#left_arrow { + left:5px; +} + +#right_arrow { + right:5px; +} + +#digital_container { + width:500px; + height:360px; + background:url(../images/background.png) 50% 40px no-repeat; + position:absolute; + top:40px; + left:0; + z-index:98; +} + + +#clock { + float:left; + margin-left:48px; +} + +#hours, #minutes { + width:200px; + height:200px; + float:left; + position:relative; +} + +#minutes { + margin-left:4px; +} + +#hours_bg, #minutes_bg { + width:100%; + height:100%; + position:absolute; + top:0; + left:0; + z-index:99; +} + +.first_digit { + width:80px; + height:100%; + position:absolute; + top:0; + left:20px; + z-index:100; +} + +.second_digit { + width:80px; + height:100%; + position:absolute; + top:0; + left:100px; + z-index:100; +} + +.line { + width:175px; + height:2px; + background:#efefef; + position:absolute; + top:97px; + left:12px; + z-index:101; + font-size:1px; +} + +#am_pm { + position:absolute; + top:156px; + left:130px; + z-index:110; +} + +#weather { + width:100%; + height:206px; + position:absolute; + top:140px; + left:0; + z-index:105; + color:#fff; +} + +#weather #local, #weather .loading { + float:left; + margin:65px 0 0 45px; +} + +.city { + font-weight:bold; + font-size:12pt; +} + +.temp { + font-size:30pt; + padding:0; +} + +.temp .metric { + margin-left:-3px; +} + +#weather #temp { + float:right; + margin:65px 45px 0 0; + text-align:right; +} + +#weather #date { + font-size:11pt; + padding-right:2px; +} + +#forecast_container { + width:500px; + height:400px; + background:url(../images/background_forecast.png) 50% 100% no-repeat; + position:absolute; + top:0; + left:500px; + z-index:98; +} + +#forecast_container #current { + width:400px; + height:240px; + margin-left:50px; + position:relative; +} + +#forecast_container .loading { + margin:130px 0 0 70px; +} + +#forecast_container #current .temp, #forecast_container #current .high_low { + width:116px; + text-align:center; +} + +#forecast_container #current .temp { + font-size:32pt; + margin-top:110px; + float:left +} + +#forecast_container #current .high_low { + font-size:12pt; + clear:both; +} + +#forecast_container #current .city, #forecast_container #current .text { + width:100%; + text-align:center; +} + +#forecast_container #current .text { + margin-top:6px; +} + +#forecast_container #forecast { + width:400px; + height:122px; + list-style:none; + margin:0 0 0 50px; + padding:0; +} + +#forecast_container #forecast li { + width:25%; + height:100%; + float:left; + text-align:center; +} + +#forecast_container #forecast li p { + width:100%; + height:30px; + margin:0; + padding:0; + font-size:11pt; + line-height:30px; +} + +#forecast_container #forecast li img { + width:96px; +} + +#forecast_container #update { + text-align:center; + margin-top:10px; + font-size:11px; +} + +#forecast_container #update img { + margin:-2px 4px 0 0; + vertical-align:middle; + cursor:pointer; +} diff --git a/src/main/webapp/js/jdigiclock/css/style.css b/src/main/webapp/js/jdigiclock/css/style.css new file mode 100644 index 00000000..4394bf80 --- /dev/null +++ b/src/main/webapp/js/jdigiclock/css/style.css @@ -0,0 +1,101 @@ +html, body { + min-height: 100%; + height: auto !important; + height: 100%; +} + +body { + font: 100.01% "Trebuchet MS", Trebuchet, Tahoma, Verdana, Arial, sans-serif; + color: #333; + padding: 0; +} + +body * { + line-height:1.22em; +} + +h1, h2, h3, h4, h5, h6 { + font-family: Georgia, "Times New Roman", Times, serif; + color:#4088b8; + clear: both; +} + +h1 { +} + +h2 { + color: #c8c8c8; + margin-top: -25px; +} + +h3 { +} + +h4 { + color: #333; + margin-bottom: -10px; +} + +p { + +} + + +ul, ol { + margin-left: 0; +} + +ul ul { + margin-bottom: 20px; +} + +#wrap { + color: #404040; + margin: 20px 40px; +} + +a { + color: #4088b8; +} + +table { + font-size: inherit; + border: 1px solid #c8c8c8; +} + +th { + background: #d8d8d8; + text-align: left; + padding: 5px; + white-space: nowrap; +} + +td { + background: #f8f8f8; + text-align: left; + padding: 5px; + vertical-align: top; +} + +select, input, textarea { + font: 80% "Trebuchet MS", Trebuchet, Tahoma, Verdana, Arial, sans-serif; +} + +pre, code, tt, dt { + font: 100% monospace; + margin: 20px 0; +} + +pre, blockquote { + padding: 15px; + background-color: #f0f0f0; + margin: 20px 0; + -moz-border-radius: 10px; + -webkit-border-radius: 10px; +} + +td pre { + font: 85% monospace; + padding: 5px; + margin: 5px 0; +} diff --git a/src/main/webapp/js/jdigiclock/images/background.png b/src/main/webapp/js/jdigiclock/images/background.png new file mode 100644 index 00000000..c8ee78d8 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/background.png differ diff --git a/src/main/webapp/js/jdigiclock/images/background_forecast.png b/src/main/webapp/js/jdigiclock/images/background_forecast.png new file mode 100644 index 00000000..a375d729 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/background_forecast.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/0-1.png b/src/main/webapp/js/jdigiclock/images/clock/0-1.png new file mode 100644 index 00000000..88c39094 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/0-1.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/0-2.png b/src/main/webapp/js/jdigiclock/images/clock/0-2.png new file mode 100644 index 00000000..4e8196df Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/0-2.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/0-3.png b/src/main/webapp/js/jdigiclock/images/clock/0-3.png new file mode 100644 index 00000000..2246c397 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/0-3.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/0.png b/src/main/webapp/js/jdigiclock/images/clock/0.png new file mode 100644 index 00000000..de75b0cf Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/0.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/001-1.png b/src/main/webapp/js/jdigiclock/images/clock/001-1.png new file mode 100644 index 00000000..13d75cb8 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/001-1.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/001-2.png b/src/main/webapp/js/jdigiclock/images/clock/001-2.png new file mode 100644 index 00000000..914ed679 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/001-2.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/001-3.png b/src/main/webapp/js/jdigiclock/images/clock/001-3.png new file mode 100644 index 00000000..08220e41 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/001-3.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/01-1.png b/src/main/webapp/js/jdigiclock/images/clock/01-1.png new file mode 100644 index 00000000..bf811b67 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/01-1.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/01-2.png b/src/main/webapp/js/jdigiclock/images/clock/01-2.png new file mode 100644 index 00000000..8ad91d6a Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/01-2.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/01-3.png b/src/main/webapp/js/jdigiclock/images/clock/01-3.png new file mode 100644 index 00000000..b7c1137e Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/01-3.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/1-1.png b/src/main/webapp/js/jdigiclock/images/clock/1-1.png new file mode 100644 index 00000000..5ba23368 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/1-1.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/1-2.png b/src/main/webapp/js/jdigiclock/images/clock/1-2.png new file mode 100644 index 00000000..5b2bbcd0 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/1-2.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/1-3.png b/src/main/webapp/js/jdigiclock/images/clock/1-3.png new file mode 100644 index 00000000..9fc65a51 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/1-3.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/1.png b/src/main/webapp/js/jdigiclock/images/clock/1.png new file mode 100644 index 00000000..f6426c8d Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/1.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/11-1.png b/src/main/webapp/js/jdigiclock/images/clock/11-1.png new file mode 100644 index 00000000..bf2781ce Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/11-1.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/11-2.png b/src/main/webapp/js/jdigiclock/images/clock/11-2.png new file mode 100644 index 00000000..4f805bc6 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/11-2.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/11-3.png b/src/main/webapp/js/jdigiclock/images/clock/11-3.png new file mode 100644 index 00000000..13d1f45b Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/11-3.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/111-1.png b/src/main/webapp/js/jdigiclock/images/clock/111-1.png new file mode 100644 index 00000000..e4d3ad9f Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/111-1.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/111-2.png b/src/main/webapp/js/jdigiclock/images/clock/111-2.png new file mode 100644 index 00000000..2720f833 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/111-2.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/111-3.png b/src/main/webapp/js/jdigiclock/images/clock/111-3.png new file mode 100644 index 00000000..e21232c9 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/111-3.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/2-1.png b/src/main/webapp/js/jdigiclock/images/clock/2-1.png new file mode 100644 index 00000000..a55a1250 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/2-1.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/2-2.png b/src/main/webapp/js/jdigiclock/images/clock/2-2.png new file mode 100644 index 00000000..ab29332d Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/2-2.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/2-3.png b/src/main/webapp/js/jdigiclock/images/clock/2-3.png new file mode 100644 index 00000000..4860e714 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/2-3.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/2.png b/src/main/webapp/js/jdigiclock/images/clock/2.png new file mode 100644 index 00000000..5f8f6799 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/2.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/21-1.png b/src/main/webapp/js/jdigiclock/images/clock/21-1.png new file mode 100644 index 00000000..415933a9 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/21-1.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/21-2.png b/src/main/webapp/js/jdigiclock/images/clock/21-2.png new file mode 100644 index 00000000..f6637f37 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/21-2.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/21-3.png b/src/main/webapp/js/jdigiclock/images/clock/21-3.png new file mode 100644 index 00000000..da2b10c4 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/21-3.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/211-1.png b/src/main/webapp/js/jdigiclock/images/clock/211-1.png new file mode 100644 index 00000000..85c4a8d3 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/211-1.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/211-2.png b/src/main/webapp/js/jdigiclock/images/clock/211-2.png new file mode 100644 index 00000000..b7de7a70 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/211-2.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/211-3.png b/src/main/webapp/js/jdigiclock/images/clock/211-3.png new file mode 100644 index 00000000..33c896c1 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/211-3.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/3-1.png b/src/main/webapp/js/jdigiclock/images/clock/3-1.png new file mode 100644 index 00000000..11dbd3c1 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/3-1.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/3-2.png b/src/main/webapp/js/jdigiclock/images/clock/3-2.png new file mode 100644 index 00000000..c32c20f4 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/3-2.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/3-3.png b/src/main/webapp/js/jdigiclock/images/clock/3-3.png new file mode 100644 index 00000000..8d764ce7 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/3-3.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/3.png b/src/main/webapp/js/jdigiclock/images/clock/3.png new file mode 100644 index 00000000..a7f3a645 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/3.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/31-1.png b/src/main/webapp/js/jdigiclock/images/clock/31-1.png new file mode 100644 index 00000000..c47ff4d0 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/31-1.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/31-2.png b/src/main/webapp/js/jdigiclock/images/clock/31-2.png new file mode 100644 index 00000000..f7c22f9e Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/31-2.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/31-3.png b/src/main/webapp/js/jdigiclock/images/clock/31-3.png new file mode 100644 index 00000000..ffc43551 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/31-3.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/311-1.png b/src/main/webapp/js/jdigiclock/images/clock/311-1.png new file mode 100644 index 00000000..9beccc3c Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/311-1.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/311-2.png b/src/main/webapp/js/jdigiclock/images/clock/311-2.png new file mode 100644 index 00000000..007e5110 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/311-2.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/311-3.png b/src/main/webapp/js/jdigiclock/images/clock/311-3.png new file mode 100644 index 00000000..08680f90 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/311-3.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/4-1.png b/src/main/webapp/js/jdigiclock/images/clock/4-1.png new file mode 100644 index 00000000..53adea03 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/4-1.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/4-2.png b/src/main/webapp/js/jdigiclock/images/clock/4-2.png new file mode 100644 index 00000000..09748fa1 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/4-2.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/4-3.png b/src/main/webapp/js/jdigiclock/images/clock/4-3.png new file mode 100644 index 00000000..b7340ec1 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/4-3.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/4.png b/src/main/webapp/js/jdigiclock/images/clock/4.png new file mode 100644 index 00000000..514d8a9f Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/4.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/41-1.png b/src/main/webapp/js/jdigiclock/images/clock/41-1.png new file mode 100644 index 00000000..44caa770 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/41-1.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/41-2.png b/src/main/webapp/js/jdigiclock/images/clock/41-2.png new file mode 100644 index 00000000..3d47374c Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/41-2.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/41-3.png b/src/main/webapp/js/jdigiclock/images/clock/41-3.png new file mode 100644 index 00000000..36c2c185 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/41-3.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/5-1.png b/src/main/webapp/js/jdigiclock/images/clock/5-1.png new file mode 100644 index 00000000..890bf243 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/5-1.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/5-2.png b/src/main/webapp/js/jdigiclock/images/clock/5-2.png new file mode 100644 index 00000000..2e96b34b Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/5-2.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/5-3.png b/src/main/webapp/js/jdigiclock/images/clock/5-3.png new file mode 100644 index 00000000..041864ba Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/5-3.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/5.png b/src/main/webapp/js/jdigiclock/images/clock/5.png new file mode 100644 index 00000000..2199a201 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/5.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/51-1.png b/src/main/webapp/js/jdigiclock/images/clock/51-1.png new file mode 100644 index 00000000..3a265a73 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/51-1.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/51-2.png b/src/main/webapp/js/jdigiclock/images/clock/51-2.png new file mode 100644 index 00000000..cdff72cf Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/51-2.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/51-3.png b/src/main/webapp/js/jdigiclock/images/clock/51-3.png new file mode 100644 index 00000000..dba6cece Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/51-3.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/511-1.png b/src/main/webapp/js/jdigiclock/images/clock/511-1.png new file mode 100644 index 00000000..a81c3c18 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/511-1.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/511-2.png b/src/main/webapp/js/jdigiclock/images/clock/511-2.png new file mode 100644 index 00000000..eda1eb28 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/511-2.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/511-3.png b/src/main/webapp/js/jdigiclock/images/clock/511-3.png new file mode 100644 index 00000000..1385b005 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/511-3.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/6-1.png b/src/main/webapp/js/jdigiclock/images/clock/6-1.png new file mode 100644 index 00000000..0e8c1c66 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/6-1.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/6-2.png b/src/main/webapp/js/jdigiclock/images/clock/6-2.png new file mode 100644 index 00000000..4a8000bc Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/6-2.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/6-3.png b/src/main/webapp/js/jdigiclock/images/clock/6-3.png new file mode 100644 index 00000000..0aefa2ef Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/6-3.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/6.png b/src/main/webapp/js/jdigiclock/images/clock/6.png new file mode 100644 index 00000000..85ebec24 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/6.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/7-1.png b/src/main/webapp/js/jdigiclock/images/clock/7-1.png new file mode 100644 index 00000000..2d889357 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/7-1.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/7-2.png b/src/main/webapp/js/jdigiclock/images/clock/7-2.png new file mode 100644 index 00000000..eecf8fbd Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/7-2.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/7-3.png b/src/main/webapp/js/jdigiclock/images/clock/7-3.png new file mode 100644 index 00000000..76120891 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/7-3.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/7.png b/src/main/webapp/js/jdigiclock/images/clock/7.png new file mode 100644 index 00000000..007acd8e Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/7.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/8-1.png b/src/main/webapp/js/jdigiclock/images/clock/8-1.png new file mode 100644 index 00000000..a7861299 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/8-1.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/8-2.png b/src/main/webapp/js/jdigiclock/images/clock/8-2.png new file mode 100644 index 00000000..069bbe20 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/8-2.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/8-3.png b/src/main/webapp/js/jdigiclock/images/clock/8-3.png new file mode 100644 index 00000000..0dba24f2 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/8-3.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/8.png b/src/main/webapp/js/jdigiclock/images/clock/8.png new file mode 100644 index 00000000..e020265c Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/8.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/9-1.png b/src/main/webapp/js/jdigiclock/images/clock/9-1.png new file mode 100644 index 00000000..91224234 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/9-1.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/9-2.png b/src/main/webapp/js/jdigiclock/images/clock/9-2.png new file mode 100644 index 00000000..3e2681af Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/9-2.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/9-3.png b/src/main/webapp/js/jdigiclock/images/clock/9-3.png new file mode 100644 index 00000000..e3c4c09f Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/9-3.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/9.png b/src/main/webapp/js/jdigiclock/images/clock/9.png new file mode 100644 index 00000000..ba438568 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/9.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/am.png b/src/main/webapp/js/jdigiclock/images/clock/am.png new file mode 100644 index 00000000..0d853371 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/am.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/apm.png b/src/main/webapp/js/jdigiclock/images/clock/apm.png new file mode 100644 index 00000000..baa7a76b Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/apm.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/clockbg-blank.png b/src/main/webapp/js/jdigiclock/images/clock/clockbg-blank.png new file mode 100644 index 00000000..c575e21d Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/clockbg-blank.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/clockbg1.png b/src/main/webapp/js/jdigiclock/images/clock/clockbg1.png new file mode 100644 index 00000000..34e5aaa1 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/clockbg1.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/clockbg2.png b/src/main/webapp/js/jdigiclock/images/clock/clockbg2.png new file mode 100644 index 00000000..f8061ab1 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/clockbg2.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/clockbg3.png b/src/main/webapp/js/jdigiclock/images/clock/clockbg3.png new file mode 100644 index 00000000..3552b512 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/clockbg3.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/clockbg4.png b/src/main/webapp/js/jdigiclock/images/clock/clockbg4.png new file mode 100644 index 00000000..a1f94874 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/clockbg4.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/clockbg5.png b/src/main/webapp/js/jdigiclock/images/clock/clockbg5.png new file mode 100644 index 00000000..f894d195 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/clockbg5.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/clockbg6.png b/src/main/webapp/js/jdigiclock/images/clock/clockbg6.png new file mode 100644 index 00000000..4c06587e Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/clockbg6.png differ diff --git a/src/main/webapp/js/jdigiclock/images/clock/pm.png b/src/main/webapp/js/jdigiclock/images/clock/pm.png new file mode 100644 index 00000000..9dcf1093 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/clock/pm.png differ diff --git a/src/main/webapp/js/jdigiclock/images/htc_hero_wallpaper_01.jpg b/src/main/webapp/js/jdigiclock/images/htc_hero_wallpaper_01.jpg new file mode 100644 index 00000000..004cf893 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/htc_hero_wallpaper_01.jpg differ diff --git a/src/main/webapp/js/jdigiclock/images/htc_hero_wallpaper_02.jpg b/src/main/webapp/js/jdigiclock/images/htc_hero_wallpaper_02.jpg new file mode 100644 index 00000000..1445fb78 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/htc_hero_wallpaper_02.jpg differ diff --git a/src/main/webapp/js/jdigiclock/images/icon_left.png b/src/main/webapp/js/jdigiclock/images/icon_left.png new file mode 100644 index 00000000..eeac4cad Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/icon_left.png differ diff --git a/src/main/webapp/js/jdigiclock/images/icon_right.png b/src/main/webapp/js/jdigiclock/images/icon_right.png new file mode 100644 index 00000000..624c1c08 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/icon_right.png differ diff --git a/src/main/webapp/js/jdigiclock/images/refresh_01.png b/src/main/webapp/js/jdigiclock/images/refresh_01.png new file mode 100644 index 00000000..4bdbd0c2 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/refresh_01.png differ diff --git a/src/main/webapp/js/jdigiclock/images/weather/1.png b/src/main/webapp/js/jdigiclock/images/weather/1.png new file mode 100644 index 00000000..203bac1b Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/weather/1.png differ diff --git a/src/main/webapp/js/jdigiclock/images/weather/11.png b/src/main/webapp/js/jdigiclock/images/weather/11.png new file mode 100644 index 00000000..309c6f1a Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/weather/11.png differ diff --git a/src/main/webapp/js/jdigiclock/images/weather/12.png b/src/main/webapp/js/jdigiclock/images/weather/12.png new file mode 100644 index 00000000..92ca1ab0 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/weather/12.png differ diff --git a/src/main/webapp/js/jdigiclock/images/weather/13.png b/src/main/webapp/js/jdigiclock/images/weather/13.png new file mode 100644 index 00000000..cc4ef617 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/weather/13.png differ diff --git a/src/main/webapp/js/jdigiclock/images/weather/14.png b/src/main/webapp/js/jdigiclock/images/weather/14.png new file mode 100644 index 00000000..8c8df843 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/weather/14.png differ diff --git a/src/main/webapp/js/jdigiclock/images/weather/15.png b/src/main/webapp/js/jdigiclock/images/weather/15.png new file mode 100644 index 00000000..a79a0348 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/weather/15.png differ diff --git a/src/main/webapp/js/jdigiclock/images/weather/16.png b/src/main/webapp/js/jdigiclock/images/weather/16.png new file mode 100644 index 00000000..e1b2e5b6 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/weather/16.png differ diff --git a/src/main/webapp/js/jdigiclock/images/weather/17.png b/src/main/webapp/js/jdigiclock/images/weather/17.png new file mode 100644 index 00000000..8e5096fd Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/weather/17.png differ diff --git a/src/main/webapp/js/jdigiclock/images/weather/18.png b/src/main/webapp/js/jdigiclock/images/weather/18.png new file mode 100644 index 00000000..b6d05c51 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/weather/18.png differ diff --git a/src/main/webapp/js/jdigiclock/images/weather/19.png b/src/main/webapp/js/jdigiclock/images/weather/19.png new file mode 100644 index 00000000..8ae5ec55 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/weather/19.png differ diff --git a/src/main/webapp/js/jdigiclock/images/weather/2.png b/src/main/webapp/js/jdigiclock/images/weather/2.png new file mode 100644 index 00000000..bd1fc342 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/weather/2.png differ diff --git a/src/main/webapp/js/jdigiclock/images/weather/20.png b/src/main/webapp/js/jdigiclock/images/weather/20.png new file mode 100644 index 00000000..d5270bda Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/weather/20.png differ diff --git a/src/main/webapp/js/jdigiclock/images/weather/21.png b/src/main/webapp/js/jdigiclock/images/weather/21.png new file mode 100644 index 00000000..f53cca93 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/weather/21.png differ diff --git a/src/main/webapp/js/jdigiclock/images/weather/22.png b/src/main/webapp/js/jdigiclock/images/weather/22.png new file mode 100644 index 00000000..c588e847 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/weather/22.png differ diff --git a/src/main/webapp/js/jdigiclock/images/weather/23.png b/src/main/webapp/js/jdigiclock/images/weather/23.png new file mode 100644 index 00000000..d04c858b Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/weather/23.png differ diff --git a/src/main/webapp/js/jdigiclock/images/weather/24.png b/src/main/webapp/js/jdigiclock/images/weather/24.png new file mode 100644 index 00000000..23f7a4ca Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/weather/24.png differ diff --git a/src/main/webapp/js/jdigiclock/images/weather/25.png b/src/main/webapp/js/jdigiclock/images/weather/25.png new file mode 100644 index 00000000..3c3e8005 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/weather/25.png differ diff --git a/src/main/webapp/js/jdigiclock/images/weather/26.png b/src/main/webapp/js/jdigiclock/images/weather/26.png new file mode 100644 index 00000000..810d72fa Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/weather/26.png differ diff --git a/src/main/webapp/js/jdigiclock/images/weather/27.png b/src/main/webapp/js/jdigiclock/images/weather/27.png new file mode 100644 index 00000000..2751b5bb Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/weather/27.png differ diff --git a/src/main/webapp/js/jdigiclock/images/weather/29.png b/src/main/webapp/js/jdigiclock/images/weather/29.png new file mode 100644 index 00000000..452cd4a9 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/weather/29.png differ diff --git a/src/main/webapp/js/jdigiclock/images/weather/3.png b/src/main/webapp/js/jdigiclock/images/weather/3.png new file mode 100644 index 00000000..87b0827b Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/weather/3.png differ diff --git a/src/main/webapp/js/jdigiclock/images/weather/30.png b/src/main/webapp/js/jdigiclock/images/weather/30.png new file mode 100644 index 00000000..99cec73b Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/weather/30.png differ diff --git a/src/main/webapp/js/jdigiclock/images/weather/31.png b/src/main/webapp/js/jdigiclock/images/weather/31.png new file mode 100644 index 00000000..7ae2cd4f Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/weather/31.png differ diff --git a/src/main/webapp/js/jdigiclock/images/weather/32.png b/src/main/webapp/js/jdigiclock/images/weather/32.png new file mode 100644 index 00000000..80c07ea7 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/weather/32.png differ diff --git a/src/main/webapp/js/jdigiclock/images/weather/33.png b/src/main/webapp/js/jdigiclock/images/weather/33.png new file mode 100644 index 00000000..9e6e3b0f Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/weather/33.png differ diff --git a/src/main/webapp/js/jdigiclock/images/weather/34.png b/src/main/webapp/js/jdigiclock/images/weather/34.png new file mode 100644 index 00000000..d8ada090 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/weather/34.png differ diff --git a/src/main/webapp/js/jdigiclock/images/weather/35.png b/src/main/webapp/js/jdigiclock/images/weather/35.png new file mode 100644 index 00000000..854b604f Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/weather/35.png differ diff --git a/src/main/webapp/js/jdigiclock/images/weather/36.png b/src/main/webapp/js/jdigiclock/images/weather/36.png new file mode 100644 index 00000000..e00dee50 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/weather/36.png differ diff --git a/src/main/webapp/js/jdigiclock/images/weather/37.png b/src/main/webapp/js/jdigiclock/images/weather/37.png new file mode 100644 index 00000000..0b657e76 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/weather/37.png differ diff --git a/src/main/webapp/js/jdigiclock/images/weather/38.png b/src/main/webapp/js/jdigiclock/images/weather/38.png new file mode 100644 index 00000000..b4279fcc Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/weather/38.png differ diff --git a/src/main/webapp/js/jdigiclock/images/weather/39.png b/src/main/webapp/js/jdigiclock/images/weather/39.png new file mode 100644 index 00000000..106bd782 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/weather/39.png differ diff --git a/src/main/webapp/js/jdigiclock/images/weather/4.png b/src/main/webapp/js/jdigiclock/images/weather/4.png new file mode 100644 index 00000000..551a8485 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/weather/4.png differ diff --git a/src/main/webapp/js/jdigiclock/images/weather/40.png b/src/main/webapp/js/jdigiclock/images/weather/40.png new file mode 100644 index 00000000..5a3d8283 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/weather/40.png differ diff --git a/src/main/webapp/js/jdigiclock/images/weather/41.png b/src/main/webapp/js/jdigiclock/images/weather/41.png new file mode 100644 index 00000000..3caecb35 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/weather/41.png differ diff --git a/src/main/webapp/js/jdigiclock/images/weather/42.png b/src/main/webapp/js/jdigiclock/images/weather/42.png new file mode 100644 index 00000000..4833e77e Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/weather/42.png differ diff --git a/src/main/webapp/js/jdigiclock/images/weather/43.png b/src/main/webapp/js/jdigiclock/images/weather/43.png new file mode 100644 index 00000000..900859e9 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/weather/43.png differ diff --git a/src/main/webapp/js/jdigiclock/images/weather/44.png b/src/main/webapp/js/jdigiclock/images/weather/44.png new file mode 100644 index 00000000..6282ba7a Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/weather/44.png differ diff --git a/src/main/webapp/js/jdigiclock/images/weather/5.png b/src/main/webapp/js/jdigiclock/images/weather/5.png new file mode 100644 index 00000000..c36639de Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/weather/5.png differ diff --git a/src/main/webapp/js/jdigiclock/images/weather/6.png b/src/main/webapp/js/jdigiclock/images/weather/6.png new file mode 100644 index 00000000..9d583069 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/weather/6.png differ diff --git a/src/main/webapp/js/jdigiclock/images/weather/7.png b/src/main/webapp/js/jdigiclock/images/weather/7.png new file mode 100644 index 00000000..64f42edb Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/weather/7.png differ diff --git a/src/main/webapp/js/jdigiclock/images/weather/8.png b/src/main/webapp/js/jdigiclock/images/weather/8.png new file mode 100644 index 00000000..b6acc62b Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/weather/8.png differ diff --git a/src/main/webapp/js/jdigiclock/images/weather/blank.png b/src/main/webapp/js/jdigiclock/images/weather/blank.png new file mode 100644 index 00000000..b61ad8bb Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/weather/blank.png differ diff --git a/src/main/webapp/js/jdigiclock/images/weather/na.png b/src/main/webapp/js/jdigiclock/images/weather/na.png new file mode 100644 index 00000000..674e7bc8 Binary files /dev/null and b/src/main/webapp/js/jdigiclock/images/weather/na.png differ diff --git a/src/main/webapp/js/jdigiclock/index.html b/src/main/webapp/js/jdigiclock/index.html new file mode 100644 index 00000000..f1238a47 --- /dev/null +++ b/src/main/webapp/js/jdigiclock/index.html @@ -0,0 +1,155 @@ + + + + + jDigiClock - Digital Clock (HTC Hero inspired). + + + + + + + +
                                +

                                jDigiClock

                                +

                                Digital Clock (HTC Hero inspired)

                                +

                                + Author: Radoslav Dimov
                                + Version: 2.1 (Changelog)
                                + Download: jdigiclock.zip
                                + Licence: Dual licensed under the MIT and GPL licenses. +

                                +

                                Contents

                                +
                                  +
                                1. Introduction
                                2. +
                                3. Examples
                                4. +
                                5. Getting started
                                6. +
                                7. Configuration
                                8. +
                                9. Compatibility
                                10. +
                                + +

                                Introduction

                                +

                                + jDigiClock is a jQuery plugin inspired from HTC Hero Clock Widget. +

                                + +

                                Examples

                                +
                                +

                                + +

                                Getting started

                                +

                                + To use the jDigiClock plugin, include the jQuery + library, the jDigiClock source file and jDigiClock core stylesheet file inside the <head> tag + of your HTML document: +

                                +
                                +<link rel="stylesheet" type="text/css" href="css/jquery.jdigiclock.css" />
                                +<script type="text/javascript" src="lib/jquery-1.3.2.min.js"></script>
                                +<script type="text/javascript" src="lib/jquery.jdigiclock.js"></script>
                                +
                                +

                                + To setup jDigiClock, add the following code inside the <head> + tag of your HTML document: +

                                +
                                +<script type="text/javascript">
                                +    $(document).ready(function() {
                                +        $('#digiclock').jdigiclock({
                                +            // Configuration goes here
                                +        });
                                +    });
                                +</script>
                                +
                                +

                                + jDigiClock accepts a lot of configuration options, see chapter "Configuration" + for further informations. +

                                + +

                                jDigiClock expects a very basic HTML markup structure inside your HTML document:

                                +
                                +<div id="digiclock"></div>
                                +
                                + +

                                Configuration

                                +

                                + jDigiClock accepts a list of options to control the appearance and behaviour + of the Digital Clock. Here is the list of options you may set: +

                                +
                                + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                PropertyTypeDefaultDescription
                                clockImagesPathstring"images/clock/"Clock images path.
                                weatherImagesPathstring"images/weather/"Weather images path.
                                am_pmbooleanfalseSpecifies the AM/PM option.
                                weatherLocationCodestring"EUR|BG|BU002|BOURGAS"Weather location code (see: WeatherLocationDatabase.txt).
                                weatherMetricstring"C"Specifies the weather metric mode: C or F.
                                weatherUpdateinteger0Weather update in minutes.
                                proxyTypestring"php"Specifies proxy type: php or asp (see: README.txt).
                                + +

                                Compatibility

                                +

                                jDigiClock has been tested and works on the following browsers:

                                +
                                  +
                                • Internet Explorer 7 (PC)
                                • +
                                • FireFox 3.5 (PC/Linux)
                                • +
                                • Google Chrome 3.0 (PC)
                                • +
                                • Safari 4.0 (PC)
                                • +
                                + +
                                + + diff --git a/src/main/webapp/js/jdigiclock/lib/jquery-1.3.2.min.js b/src/main/webapp/js/jdigiclock/lib/jquery-1.3.2.min.js new file mode 100644 index 00000000..b1ae21d8 --- /dev/null +++ b/src/main/webapp/js/jdigiclock/lib/jquery-1.3.2.min.js @@ -0,0 +1,19 @@ +/* + * jQuery JavaScript Library v1.3.2 + * http://jquery.com/ + * + * Copyright (c) 2009 John Resig + * Dual licensed under the MIT and GPL licenses. + * http://docs.jquery.com/License + * + * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009) + * Revision: 6246 + */ +(function(){var l=this,g,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new o.fn.init(E,F)},D=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],"events");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;function K(N,O){return M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getElementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}return o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("div");o.each(F,function(P,S){if(typeof S==="number"){S+=""}if(!S){return}if(typeof S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("",""]||!O.indexOf("",""]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"","
                                "]||!O.indexOf("",""]||(!O.indexOf("",""]||!O.indexOf("",""]||!o.support.htmlSerialize&&[1,"div
                                ","
                                "]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/"&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeof E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"queue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}}); +/* + * Sizzle CSS Selector Engine - v0.9.3 + * Copyright 2009, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * More information: http://sizzlejs.com/ + */ +(function(){var R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!=="string"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax error, unrecognized expression: "+(ah||Y)}if(H.call(ai)==="[object Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa":function(Z,U,aa){var X=typeof U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]=" "+X[4]+" "}return X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!=="hidden"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"submit"===T.type},image:function(T){return"image"===T.type},reset:function(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return UT[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var Y=V[3];for(var W=0,T=Y.length;W=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(" "+(U.className||U.getAttribute("class"))+" ").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?(" "+Z+" ").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)==="[object Array]"){Array.prototype.push.apply(U,X)}else{if(typeof X.length==="number"){for(var V=0,T=X.length;V";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="";if(T.firstChild&&typeof T.firstChild.getAttribute!=="undefined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=function(U){return U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement("div");U.innerHTML="

                                ";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement("div");T.innerHTML="
                                ";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!=="undefined"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.relative[T]?T+"*":T;for(var Z=0,U=V.length;Z0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort().join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0){I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F=0){var E=G.slice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("
                                ").append(M.responseText.replace(//g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof M.data!=="string"){M.data=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var E=e();var U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.host)){var H=document.getElementsByTagName("head")[0];var T=document.createElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+", */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var N=function(X){if(J.readyState==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader("Last-Modified");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunction(E[F])?E[F]():E[F])}}}return G.join("&").replace(/%20/g,"+")}});var m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function(){G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}o.data(this[H],"olddisplay",K)}}for(var H=0,F=this.length;H=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var K=o.timers;for(var J=0;J=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.elem)}return false}else{var J=G-this.startTime;this.state=J/this.options.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset={initialize:function(){if(this.initialized){return}var L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='
                                ';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:function(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return o(E)}});o.each(["Left","Top"],function(F,E){var G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||this[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&document.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(I,G){var E=I?"Left":"Top",H=I?"Right":"Bottom",F=G.toLowerCase();o.fn["inner"+G]=function(){return this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=function(K){return this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var J=G.toLowerCase();o.fn[J]=function(K){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+G]||document.body["client"+G]:this[0]==document?Math.max(document.documentElement["client"+G],document.body["scroll"+G],document.documentElement["scroll"+G],document.body["offset"+G],document.documentElement["offset"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof K==="string"?K:K+"px")}})})(); \ No newline at end of file diff --git a/src/main/webapp/js/jdigiclock/lib/jquery.jdigiclock.js b/src/main/webapp/js/jdigiclock/lib/jquery.jdigiclock.js new file mode 100644 index 00000000..b5742471 --- /dev/null +++ b/src/main/webapp/js/jdigiclock/lib/jquery.jdigiclock.js @@ -0,0 +1,272 @@ +/* + * jDigiClock plugin 2.1 + * + * http://www.radoslavdimov.com/jquery-plugins/jquery-plugin-digiclock/ + * + * Copyright (c) 2009 Radoslav Dimov + * + * Dual licensed under the MIT and GPL licenses: + * http://www.opensource.org/licenses/mit-license.php + * http://www.gnu.org/licenses/gpl.html + * + */ + + +(function($) { + $.fn.extend({ + + jdigiclock: function(options) { + + var defaults = { + clockImagesPath: 'images/clock/', + weatherImagesPath: 'images/weather/', + lang: 'en', + am_pm: false, + weatherLocationCode: 'EUR|BG|BU002|BOURGAS', + weatherMetric: 'C', + weatherUpdate: 0, + proxyType: 'php' + + }; + + var regional = []; + regional['en'] = { + monthNames: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + dayNames: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'] + } + + + var options = $.extend(defaults, options); + + return this.each(function() { + + var $this = $(this); + var o = options; + $this.clockImagesPath = o.clockImagesPath; + $this.weatherImagesPath = o.weatherImagesPath; + $this.lang = regional[o.lang] == undefined ? regional['en'] : regional[o.lang]; + $this.am_pm = o.am_pm; + $this.weatherLocationCode = o.weatherLocationCode; + $this.weatherMetric = o.weatherMetric == 'C' ? 1 : 0; + $this.weatherUpdate = o.weatherUpdate; + $this.proxyType = o.proxyType; + $this.currDate = ''; + $this.timeUpdate = ''; + + + var html = '
                                '; + html += '
                                '; + html += '
                                '; + html += '
                                '; + html += '
                                '; + html += '
                                '; + + $this.html(html); + + $this.displayClock($this); + + $this.displayWeather($this); + + var panel_pos = ($('#plugin_container > div').length - 1) * 500; + var next = function() { + $('#right_arrow').unbind('click', next); + $('#plugin_container > div').filter(function(i) { + $(this).animate({'left': (i * 500) - 500 + 'px'}, 400, function() { + if (i == 0) { + $(this).appendTo('#plugin_container').css({'left':panel_pos + 'px'}); + } + $('#right_arrow').bind('click', next); + }); + }); + }; + $('#right_arrow').bind('click', next); + + var prev = function() { + $('#left_arrow').unbind('click', prev); + $('#plugin_container > div:last').prependTo('#plugin_container').css({'left':'-500px'}); + $('#plugin_container > div').filter(function(i) { + $(this).animate({'left': i * 500 + 'px'}, 400, function() { + $('#left_arrow').bind('click', prev); + }); + }); + }; + $('#left_arrow').bind('click', prev); + + }); + } + }); + + + $.fn.displayClock = function(el) { + $.fn.getTime(el); + setTimeout(function() {$.fn.displayClock(el)}, $.fn.delay()); + } + + $.fn.displayWeather = function(el) { + $.fn.getWeather(el); + if (el.weatherUpdate > 0) { + setTimeout(function() {$.fn.displayWeather(el)}, (el.weatherUpdate * 60 * 1000)); + } + } + + $.fn.delay = function() { + var now = new Date(); + var delay = (60 - now.getSeconds()) * 1000; + + return delay; + } + + $.fn.getTime = function(el) { + var now = new Date(); + var old = new Date(); + old.setTime(now.getTime() - 60000); + + var now_hours, now_minutes, old_hours, old_minutes, timeOld = ''; + now_hours = now.getHours(); + now_minutes = now.getMinutes(); + old_hours = old.getHours(); + old_minutes = old.getMinutes(); + + if (el.am_pm) { + var am_pm = now_hours > 11 ? 'pm' : 'am'; + now_hours = ((now_hours > 12) ? now_hours - 12 : now_hours); + old_hours = ((old_hours > 12) ? old_hours - 12 : old_hours); + } + + now_hours = ((now_hours < 10) ? "0" : "") + now_hours; + now_minutes = ((now_minutes < 10) ? "0" : "") + now_minutes; + old_hours = ((old_hours < 10) ? "0" : "") + old_hours; + old_minutes = ((old_minutes < 10) ? "0" : "") + old_minutes; + // date + el.currDate = el.lang.dayNames[now.getDay()] + ', ' + now.getDate() + ' ' + el.lang.monthNames[now.getMonth()]; + // time update + el.timeUpdate = el.currDate + ', ' + now_hours + ':' + now_minutes; + + var firstHourDigit = old_hours.substr(0,1); + var secondHourDigit = old_hours.substr(1,1); + var firstMinuteDigit = old_minutes.substr(0,1); + var secondMinuteDigit = old_minutes.substr(1,1); + + timeOld += '
                                '; + timeOld += '
                                '; + timeOld += ''; + timeOld += ''; + timeOld += '
                                '; + timeOld += '
                                '; + if (el.am_pm) { + timeOld += '
                                '; + } + timeOld += '
                                '; + timeOld += ''; + timeOld += ''; + timeOld += '
                                '; + + el.find('#clock').html(timeOld); + + // set minutes + if (secondMinuteDigit != '9') { + firstMinuteDigit = firstMinuteDigit + '1'; + } + + if (old_minutes == '59') { + firstMinuteDigit = '511'; + } + + setTimeout(function() { + $('#fmd').attr('src', el.clockImagesPath + firstMinuteDigit + '-1.png'); + $('#minutes_bg img').attr('src', el.clockImagesPath + 'clockbg2.png'); + },200); + setTimeout(function() { $('#minutes_bg img').attr('src', el.clockImagesPath + 'clockbg3.png')},250); + setTimeout(function() { + $('#fmd').attr('src', el.clockImagesPath + firstMinuteDigit + '-2.png'); + $('#minutes_bg img').attr('src', el.clockImagesPath + 'clockbg4.png'); + },400); + setTimeout(function() { $('#minutes_bg img').attr('src', el.clockImagesPath + 'clockbg5.png')},450); + setTimeout(function() { + $('#fmd').attr('src', el.clockImagesPath + firstMinuteDigit + '-3.png'); + $('#minutes_bg img').attr('src', el.clockImagesPath + 'clockbg6.png'); + },600); + + setTimeout(function() { + $('#smd').attr('src', el.clockImagesPath + secondMinuteDigit + '-1.png'); + $('#minutes_bg img').attr('src', el.clockImagesPath + 'clockbg2.png'); + },200); + setTimeout(function() { $('#minutes_bg img').attr('src', el.clockImagesPath + 'clockbg3.png')},250); + setTimeout(function() { + $('#smd').attr('src', el.clockImagesPath + secondMinuteDigit + '-2.png'); + $('#minutes_bg img').attr('src', el.clockImagesPath + 'clockbg4.png'); + },400); + setTimeout(function() { $('#minutes_bg img').attr('src', el.clockImagesPath + 'clockbg5.png')},450); + setTimeout(function() { + $('#smd').attr('src', el.clockImagesPath + secondMinuteDigit + '-3.png'); + $('#minutes_bg img').attr('src', el.clockImagesPath + 'clockbg6.png'); + },600); + + setTimeout(function() {$('#fmd').attr('src', el.clockImagesPath + now_minutes.substr(0,1) + '.png')},800); + setTimeout(function() {$('#smd').attr('src', el.clockImagesPath + now_minutes.substr(1,1) + '.png')},800); + setTimeout(function() { $('#minutes_bg img').attr('src', el.clockImagesPath + 'clockbg1.png')},850); + + // set hours + if (now_minutes == '00') { + + if (el.am_pm) { + if (now_hours == '00') { + firstHourDigit = firstHourDigit + '1'; + now_hours = '12'; + } else if (now_hours == '01') { + firstHourDigit = '001'; + secondHourDigit = '111'; + } else { + firstHourDigit = firstHourDigit + '1'; + } + } else { + if (now_hours != '10') { + firstHourDigit = firstHourDigit + '1'; + } + + if (now_hours == '20') { + firstHourDigit = '1'; + } + + if (now_hours == '00') { + firstHourDigit = firstHourDigit + '1'; + secondHourDigit = secondHourDigit + '11'; + } + } + + setTimeout(function() { + $('#fhd').attr('src', el.clockImagesPath + firstHourDigit + '-1.png'); + $('#hours_bg img').attr('src', el.clockImagesPath + 'clockbg2.png'); + },200); + setTimeout(function() { $('#hours_bg img').attr('src', el.clockImagesPath + 'clockbg3.png')},250); + setTimeout(function() { + $('#fhd').attr('src', el.clockImagesPath + firstHourDigit + '-2.png'); + $('#hours_bg img').attr('src', el.clockImagesPath + 'clockbg4.png'); + },400); + setTimeout(function() { $('#hours_bg img').attr('src', el.clockImagesPath + 'clockbg5.png')},450); + setTimeout(function() { + $('#fhd').attr('src', el.clockImagesPath + firstHourDigit + '-3.png'); + $('#hours_bg img').attr('src', el.clockImagesPath + 'clockbg6.png'); + },600); + + setTimeout(function() { + $('#shd').attr('src', el.clockImagesPath + secondHourDigit + '-1.png'); + $('#hours_bg img').attr('src', el.clockImagesPath + 'clockbg2.png'); + },200); + setTimeout(function() { $('#hours_bg img').attr('src', el.clockImagesPath + 'clockbg3.png')},250); + setTimeout(function() { + $('#shd').attr('src', el.clockImagesPath + secondHourDigit + '-2.png'); + $('#hours_bg img').attr('src', el.clockImagesPath + 'clockbg4.png'); + },400); + setTimeout(function() { $('#hours_bg img').attr('src', el.clockImagesPath + 'clockbg5.png')},450); + setTimeout(function() { + $('#shd').attr('src', el.clockImagesPath + secondHourDigit + '-3.png'); + $('#hours_bg img').attr('src', el.clockImagesPath + 'clockbg6.png'); + },600); + + setTimeout(function() {$('#fhd').attr('src', el.clockImagesPath + now_hours.substr(0,1) + '.png')},800); + setTimeout(function() {$('#shd').attr('src', el.clockImagesPath + now_hours.substr(1,1) + '.png')},800); + setTimeout(function() { $('#hours_bg img').attr('src', el.clockImagesPath + 'clockbg1.png')},850); + } + } +})(jQuery); \ No newline at end of file diff --git a/src/main/webapp/js/jdigiclock/lib/proxy/asp/README.txt b/src/main/webapp/js/jdigiclock/lib/proxy/asp/README.txt new file mode 100644 index 00000000..40ada8c1 --- /dev/null +++ b/src/main/webapp/js/jdigiclock/lib/proxy/asp/README.txt @@ -0,0 +1,4 @@ +.NET proxy version +written by Alessandro Benedetti + +You need the open source Newtonsoft.Json to compile. \ No newline at end of file diff --git a/src/main/webapp/js/jdigiclock/lib/proxy/asp/WeatherProxy.aspx b/src/main/webapp/js/jdigiclock/lib/proxy/asp/WeatherProxy.aspx new file mode 100644 index 00000000..bdbd67c0 --- /dev/null +++ b/src/main/webapp/js/jdigiclock/lib/proxy/asp/WeatherProxy.aspx @@ -0,0 +1 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WeatherProxy.aspx.cs" Inherits="MultiConsultCRM.Web.Resources.WeatherProxy" %> \ No newline at end of file diff --git a/src/main/webapp/js/jdigiclock/lib/proxy/asp/WeatherProxy.aspx.cs b/src/main/webapp/js/jdigiclock/lib/proxy/asp/WeatherProxy.aspx.cs new file mode 100644 index 00000000..e0e35336 --- /dev/null +++ b/src/main/webapp/js/jdigiclock/lib/proxy/asp/WeatherProxy.aspx.cs @@ -0,0 +1,127 @@ +using System; +using System.Collections; +using System.Configuration; +using System.Data; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.HtmlControls; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Xml; +using System.Collections.Generic; +using System.Net; +using System.IO; + +namespace MultiConsultCRM.Web.Resources +{ + public partial class WeatherProxy : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + string _location = Request.QueryString["location"]; + string _metric = Request.QueryString["metric"]; + + //string _url = string.Format("http://rainmeter.accu-weather.com/widget/rainmeter/weather-data.asp?location={0}&metric={1}", _location, _metric); + string _url = string.Format("http://wwwa.accuweather.com/adcbin/forecastfox/weather_data.asp?location={0}&metric={1}", _location, _metric); + + string _xml = DownloadWebPage(_url); + + XmlDocument _xmlDocument = new XmlDocument(); + _xmlDocument.LoadXml(_xml); + + XmlNamespaceManager _mgr = new XmlNamespaceManager(_xmlDocument.NameTable); + _mgr.AddNamespace("pf", _xmlDocument.DocumentElement.NamespaceURI); + + Weather _weather = new Weather(); + + _weather.city = + _xmlDocument.SelectSingleNode("/pf:adc_database/pf:local/pf:city", _mgr).InnerText; + _weather.curr_temp = Convert.ToInt32( + _xmlDocument.SelectSingleNode("/pf:adc_database/pf:currentconditions/pf:temperature", _mgr).InnerText); + _weather.curr_text = + _xmlDocument.SelectSingleNode("/pf:adc_database/pf:currentconditions/pf:weathertext", _mgr).InnerText; + _weather.curr_icon = Convert.ToInt32( + _xmlDocument.SelectSingleNode("/pf:adc_database/pf:currentconditions/pf:weathericon", _mgr).InnerText); + + XmlNodeList _xmlNodeList = _xmlDocument.SelectNodes("/pf:adc_database/pf:forecast/pf:day", _mgr); + int _day = _xmlNodeList.Count; + int i = 0; + foreach (XmlNode _dayItem in _xmlNodeList) + { + Forecast _forecast = new Forecast(); + + _forecast.day_date = _dayItem["obsdate"].InnerXml; + _forecast.day_text = _dayItem.SelectSingleNode("pf:daytime", _mgr)["txtshort"].InnerXml; + _forecast.day_icon = + Convert.ToInt32(_dayItem.SelectSingleNode("pf:daytime", _mgr)["weathericon"].InnerXml); + _forecast.day_htemp = + Convert.ToInt32(_dayItem.SelectSingleNode("pf:daytime", _mgr)["hightemperature"].InnerXml); + _forecast.day_ltemp = + Convert.ToInt32(_dayItem.SelectSingleNode("pf:daytime", _mgr)["lowtemperature"].InnerXml); + + _weather.forecast.Add(_forecast); + + i++; + // 5 day forecast + if (i == 5) break; + } + + Response.Write(Newtonsoft.Json.JsonConvert.SerializeObject(_weather)); + } + + /// + /// Returns the content of a given web adress as string. + /// + /// URL of the webpage + /// Website content + public string DownloadWebPage(string Url) + { + // Open a connection + HttpWebRequest WebRequestObject = (HttpWebRequest)HttpWebRequest.Create(Url); + + // You can also specify additional header values like + // the user agent or the referer: + WebRequestObject.UserAgent = ".NET Framework/2.0"; + WebRequestObject.Referer = "http://www.example.com/"; + + // Request response: + WebResponse Response = WebRequestObject.GetResponse(); + + // Open data stream: + Stream WebStream = Response.GetResponseStream(); + + // Create reader object: + StreamReader Reader = new StreamReader(WebStream); + + // Read the entire stream content: + string PageContent = Reader.ReadToEnd(); + + // Cleanup + Reader.Close(); + WebStream.Close(); + Response.Close(); + + return PageContent; + } + } + + public class Weather + { + public string city; + public int curr_temp; + public string curr_text; + public int curr_icon; + + public List forecast = new List(); + } + + public class Forecast + { + public string day_date; + public string day_text; + public int day_icon; + public int day_htemp; + public int day_ltemp; + } +} diff --git a/src/main/webapp/js/jdigiclock/lib/proxy/asp/WeatherProxy.aspx.designer.cs b/src/main/webapp/js/jdigiclock/lib/proxy/asp/WeatherProxy.aspx.designer.cs new file mode 100644 index 00000000..acdc2a28 --- /dev/null +++ b/src/main/webapp/js/jdigiclock/lib/proxy/asp/WeatherProxy.aspx.designer.cs @@ -0,0 +1,16 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.4927 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace MultiConsultCRM.Web.Resources { + + + public partial class WeatherProxy { + } +} diff --git a/src/main/webapp/js/jdigiclock/lib/proxy/empty.gitkeep b/src/main/webapp/js/jdigiclock/lib/proxy/empty.gitkeep new file mode 100644 index 00000000..0e639dfb --- /dev/null +++ b/src/main/webapp/js/jdigiclock/lib/proxy/empty.gitkeep @@ -0,0 +1,3 @@ +# Ignore everything in this directory +* +# Except this file !.gitkeep \ No newline at end of file diff --git a/src/main/webapp/js/jdigiclock/lib/proxy/php/proxy.php b/src/main/webapp/js/jdigiclock/lib/proxy/php/proxy.php new file mode 100644 index 00000000..c2af9a73 --- /dev/null +++ b/src/main/webapp/js/jdigiclock/lib/proxy/php/proxy.php @@ -0,0 +1,40 @@ +local->city; +$weather['curr_temp'] = (int)$xml->currentconditions->temperature; +$weather['curr_text'] = (string)$xml->currentconditions->weathertext; +$weather['curr_icon'] = (int)$xml->currentconditions->weathericon; + +// forecast +//$day = count($xml->forecast->day); +$day = 5; +for ($i = 0; $i < $day; $i++) { + $weather['forecast'][$i]['day_date'] = (string)$xml->forecast->day[$i]->obsdate; + $weather['forecast'][$i]['day_text'] = (string)$xml->forecast->day[$i]->daytime->txtshort; + $weather['forecast'][$i]['day_icon'] = (int)$xml->forecast->day[$i]->daytime->weathericon; + $weather['forecast'][$i]['day_htemp'] = (int)$xml->forecast->day[$i]->daytime->hightemperature; + $weather['forecast'][$i]['day_ltemp'] = (int)$xml->forecast->day[$i]->daytime->lowtemperature; +} + + +echo json_encode($weather); + + + +?> \ No newline at end of file diff --git a/src/main/webapp/js/jquery-1.8.0-vsdoc.js b/src/main/webapp/js/jquery-1.8.0-vsdoc.js new file mode 100644 index 00000000..6eb373c5 --- /dev/null +++ b/src/main/webapp/js/jquery-1.8.0-vsdoc.js @@ -0,0 +1,6981 @@ +/* +* This file has been generated to support Visual Studio IntelliSense. +* You should not use this file at runtime inside the browser--it is only +* intended to be used only for design-time IntelliSense. Please use the +* standard jQuery library for all production use. +* +* Comment version: 1.8.0 +*/ + +/*! +* jQuery JavaScript Library v1.8.0 +* http://jquery.com/ +* +* Distributed in whole under the terms of the MIT +* +* Copyright 2010, John Resig +* +* Permission is hereby granted, free of charge, to any person obtaining +* a copy of this software and associated documentation files (the +* "Software"), to deal in the Software without restriction, including +* without limitation the rights to use, copy, modify, merge, publish, +* distribute, sublicense, and/or sell copies of the Software, and to +* permit persons to whom the Software is furnished to do so, subject to +* the following conditions: +* +* The above copyright notice and this permission notice shall be +* included in all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +* +* Includes Sizzle.js +* http://sizzlejs.com/ +* Copyright 2010, The Dojo Foundation +* Released under the MIT and BSD Licenses. +*/ + +(function ( window, undefined ) { + var jQuery = function ( selector, context ) { + /// + /// 1: Accepts a string containing a CSS selector which is then used to match a set of elements. + /// 1.1 - $(selector, context) + /// 1.2 - $(element) + /// 1.3 - $(object) + /// 1.4 - $(elementArray) + /// 1.5 - $(jQuery object) + /// 1.6 - $() + /// 2: Creates DOM elements on the fly from the provided string of raw HTML. + /// 2.1 - $(html, ownerDocument) + /// 2.2 - $(html, props) + /// 3: Binds a function to be executed when the DOM has finished loading. + /// 3.1 - $(callback) + /// + /// + /// A string containing a selector expression + /// + /// + /// A DOM Element, Document, or jQuery to use as context + /// + /// + + // The jQuery object is actually just the init constructor 'enhanced' + return new jQuery.fn.init( selector, context, rootjQuery ); + }; + jQuery.Animation = function Animation( elem, properties, options ) { + + var result, + index = 0, + tweenerIndex = 0, + length = animationPrefilters.length, + deferred = jQuery.Deferred().always( function() { + // don't match elem in the :animated selector + delete tick.elem; + }), + tick = function() { + var currentTime = fxNow || createFxNow(), + remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ), + percent = 1 - ( remaining / animation.duration || 0 ), + index = 0, + length = animation.tweens.length; + + for ( ; index < length ; index++ ) { + animation.tweens[ index ].run( percent ); + } + + deferred.notifyWith( elem, [ animation, percent, remaining ]); + + if ( percent < 1 && length ) { + return remaining; + } else { + deferred.resolveWith( elem, [ animation ] ); + return false; + } + }, + animation = deferred.promise({ + elem: elem, + props: jQuery.extend( {}, properties ), + opts: jQuery.extend( true, { specialEasing: {} }, options ), + originalProperties: properties, + originalOptions: options, + startTime: fxNow || createFxNow(), + duration: options.duration, + tweens: [], + createTween: function( prop, end, easing ) { + var tween = jQuery.Tween( elem, animation.opts, prop, end, + animation.opts.specialEasing[ prop ] || animation.opts.easing ); + animation.tweens.push( tween ); + return tween; + }, + stop: function( gotoEnd ) { + var index = 0, + // if we are going to the end, we want to run all the tweens + // otherwise we skip this part + length = gotoEnd ? animation.tweens.length : 0; + + for ( ; index < length ; index++ ) { + animation.tweens[ index ].run( 1 ); + } + + // resolve when we played the last frame + // otherwise, reject + if ( gotoEnd ) { + deferred.resolveWith( elem, [ animation, gotoEnd ] ); + } else { + deferred.rejectWith( elem, [ animation, gotoEnd ] ); + } + return this; + } + }), + props = animation.props; + + propFilter( props, animation.opts.specialEasing ); + + for ( ; index < length ; index++ ) { + result = animationPrefilters[ index ].call( animation, elem, props, animation.opts ); + if ( result ) { + return result; + } + } + + createTweens( animation, props ); + + if ( jQuery.isFunction( animation.opts.start ) ) { + animation.opts.start.call( elem, animation ); + } + + jQuery.fx.timer( + jQuery.extend( tick, { + anim: animation, + queue: animation.opts.queue, + elem: elem + }) + ); + + // attach callbacks from options + return animation.progress( animation.opts.progress ) + .done( animation.opts.done, animation.opts.complete ) + .fail( animation.opts.fail ) + .always( animation.opts.always ); + }; + jQuery.Callbacks = function ( options ) { + /// + /// A multi-purpose callbacks list object that provides a powerful way to manage callback lists. + /// + /// + /// An optional list of space-separated flags that change how the callback list behaves. + /// + + + // Convert options from String-formatted to Object-formatted if needed + // (we check in cache first) + options = typeof options === "string" ? + ( optionsCache[ options ] || createOptions( options ) ) : + jQuery.extend( {}, options ); + + var // Last fire value (for non-forgettable lists) + memory, + // Flag to know if list was already fired + fired, + // Flag to know if list is currently firing + firing, + // First callback to fire (used internally by add and fireWith) + firingStart, + // End of the loop when firing + firingLength, + // Index of currently firing callback (modified by remove if needed) + firingIndex, + // Actual callback list + list = [], + // Stack of fire calls for repeatable lists + stack = !options.once && [], + // Fire callbacks + fire = function( data ) { + memory = options.memory && data; + fired = true; + firingIndex = firingStart || 0; + firingStart = 0; + firingLength = list.length; + firing = true; + for ( ; list && firingIndex < firingLength; firingIndex++ ) { + if ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) { + memory = false; // To prevent further calls using add + break; + } + } + firing = false; + if ( list ) { + if ( stack ) { + if ( stack.length ) { + fire( stack.shift() ); + } + } else if ( memory ) { + list = []; + } else { + self.disable(); + } + } + }, + // Actual Callbacks object + self = { + // Add a callback or a collection of callbacks to the list + add: function() { + if ( list ) { + // First, we save the current length + var start = list.length; + (function add( args ) { + jQuery.each( args, function( _, arg ) { + if ( jQuery.isFunction( arg ) && ( !options.unique || !self.has( arg ) ) ) { + list.push( arg ); + } else if ( arg && arg.length ) { + // Inspect recursively + add( arg ); + } + }); + })( arguments ); + // Do we need to add the callbacks to the + // current firing batch? + if ( firing ) { + firingLength = list.length; + // With memory, if we're not firing then + // we should call right away + } else if ( memory ) { + firingStart = start; + fire( memory ); + } + } + return this; + }, + // Remove a callback from the list + remove: function() { + if ( list ) { + jQuery.each( arguments, function( _, arg ) { + var index; + while( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { + list.splice( index, 1 ); + // Handle firing indexes + if ( firing ) { + if ( index <= firingLength ) { + firingLength--; + } + if ( index <= firingIndex ) { + firingIndex--; + } + } + } + }); + } + return this; + }, + // Control if a given callback is in the list + has: function( fn ) { + return jQuery.inArray( fn, list ) > -1; + }, + // Remove all callbacks from the list + empty: function() { + list = []; + return this; + }, + // Have the list do nothing anymore + disable: function() { + list = stack = memory = undefined; + return this; + }, + // Is it disabled? + disabled: function() { + return !list; + }, + // Lock the list in its current state + lock: function() { + stack = undefined; + if ( !memory ) { + self.disable(); + } + return this; + }, + // Is it locked? + locked: function() { + return !stack; + }, + // Call all callbacks with the given context and arguments + fireWith: function( context, args ) { + args = args || []; + args = [ context, args.slice ? args.slice() : args ]; + if ( list && ( !fired || stack ) ) { + if ( firing ) { + stack.push( args ); + } else { + fire( args ); + } + } + return this; + }, + // Call all the callbacks with the given arguments + fire: function() { + self.fireWith( this, arguments ); + return this; + }, + // To know if the callbacks have already been called at least once + fired: function() { + return !!fired; + } + }; + + return self; + }; + jQuery.Deferred = function ( func ) { + + var tuples = [ + // action, add listener, listener list, final state + [ "resolve", "done", jQuery.Callbacks("once memory"), "resolved" ], + [ "reject", "fail", jQuery.Callbacks("once memory"), "rejected" ], + [ "notify", "progress", jQuery.Callbacks("memory") ] + ], + state = "pending", + promise = { + state: function() { + return state; + }, + always: function() { + deferred.done( arguments ).fail( arguments ); + return this; + }, + then: function( /* fnDone, fnFail, fnProgress */ ) { + var fns = arguments; + return jQuery.Deferred(function( newDefer ) { + jQuery.each( tuples, function( i, tuple ) { + var action = tuple[ 0 ], + fn = fns[ i ]; + // deferred[ done | fail | progress ] for forwarding actions to newDefer + deferred[ tuple[1] ]( jQuery.isFunction( fn ) ? + function() { + var returned = fn.apply( this, arguments ); + if ( returned && jQuery.isFunction( returned.promise ) ) { + returned.promise() + .done( newDefer.resolve ) + .fail( newDefer.reject ) + .progress( newDefer.notify ); + } else { + newDefer[ action + "With" ]( this === deferred ? newDefer : this, [ returned ] ); + } + } : + newDefer[ action ] + ); + }); + fns = null; + }).promise(); + }, + // Get a promise for this deferred + // If obj is provided, the promise aspect is added to the object + promise: function( obj ) { + return typeof obj === "object" ? jQuery.extend( obj, promise ) : promise; + } + }, + deferred = {}; + + // Keep pipe for back-compat + promise.pipe = promise.then; + + // Add list-specific methods + jQuery.each( tuples, function( i, tuple ) { + var list = tuple[ 2 ], + stateString = tuple[ 3 ]; + + // promise[ done | fail | progress ] = list.add + promise[ tuple[1] ] = list.add; + + // Handle state + if ( stateString ) { + list.add(function() { + // state = [ resolved | rejected ] + state = stateString; + + // [ reject_list | resolve_list ].disable; progress_list.lock + }, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock ); + } + + // deferred[ resolve | reject | notify ] = list.fire + deferred[ tuple[0] ] = list.fire; + deferred[ tuple[0] + "With" ] = list.fireWith; + }); + + // Make the deferred a promise + promise.promise( deferred ); + + // Call given func if any + if ( func ) { + func.call( deferred, deferred ); + } + + // All done! + return deferred; + }; + jQuery.Event = function ( src, props ) { + + // Allow instantiation without the 'new' keyword + if ( !(this instanceof jQuery.Event) ) { + return new jQuery.Event( src, props ); + } + + // Event object + if ( src && src.type ) { + this.originalEvent = src; + this.type = src.type; + + // Events bubbling up the document may have been marked as prevented + // by a handler lower down the tree; reflect the correct value. + this.isDefaultPrevented = ( src.defaultPrevented || src.returnValue === false || + src.getPreventDefault && src.getPreventDefault() ) ? returnTrue : returnFalse; + + // Event type + } else { + this.type = src; + } + + // Put explicitly provided properties onto the event object + if ( props ) { + jQuery.extend( this, props ); + } + + // Create a timestamp if incoming event doesn't have one + this.timeStamp = src && src.timeStamp || jQuery.now(); + + // Mark it as fixed + this[ jQuery.expando ] = true; + }; + jQuery.Tween = function Tween( elem, options, prop, end, easing ) { + + return new Tween.prototype.init( elem, options, prop, end, easing ); + }; + jQuery._data = function ( elem, name, data ) { + + return jQuery.data( elem, name, data, true ); + }; + jQuery._queueHooks = function ( elem, type ) { + + var key = type + "queueHooks"; + return jQuery._data( elem, key ) || jQuery._data( elem, key, { + empty: jQuery.Callbacks("once memory").add(function() { + jQuery.removeData( elem, type + "queue", true ); + jQuery.removeData( elem, key, true ); + }) + }); + }; + jQuery.acceptData = function ( elem ) { + + var noData = elem.nodeName && jQuery.noData[ elem.nodeName.toLowerCase() ]; + + // nodes accept data unless otherwise specified; rejection can be conditional + return !noData || noData !== true && elem.getAttribute("classid") === noData; + }; + jQuery.access = function ( elems, fn, key, value, chainable, emptyGet, pass ) { + + var exec, + bulk = key == null, + i = 0, + length = elems.length; + + // Sets many values + if ( key && typeof key === "object" ) { + for ( i in key ) { + jQuery.access( elems, fn, i, key[i], 1, emptyGet, value ); + } + chainable = 1; + + // Sets one value + } else if ( value !== undefined ) { + // Optionally, function values get executed if exec is true + exec = pass === undefined && jQuery.isFunction( value ); + + if ( bulk ) { + // Bulk operations only iterate when executing function values + if ( exec ) { + exec = fn; + fn = function( elem, key, value ) { + return exec.call( jQuery( elem ), value ); + }; + + // Otherwise they run against the entire set + } else { + fn.call( elems, value ); + fn = null; + } + } + + if ( fn ) { + for (; i < length; i++ ) { + fn( elems[i], key, exec ? value.call( elems[i], i, fn( elems[i], key ) ) : value, pass ); + } + } + + chainable = 1; + } + + return chainable ? + elems : + + // Gets + bulk ? + fn.call( elems ) : + length ? fn( elems[0], key ) : emptyGet; + }; + jQuery.active = 0; + jQuery.ajax = function ( url, options ) { + /// + /// Perform an asynchronous HTTP (Ajax) request. + /// 1 - jQuery.ajax(url, settings) + /// 2 - jQuery.ajax(settings) + /// + /// + /// A string containing the URL to which the request is sent. + /// + /// + /// A set of key/value pairs that configure the Ajax request. All settings are optional. A default can be set for any option with $.ajaxSetup(). See jQuery.ajax( settings ) below for a complete list of all settings. + /// + + + // If url is an object, simulate pre-1.5 signature + if ( typeof url === "object" ) { + options = url; + url = undefined; + } + + // Force options to be an object + options = options || {}; + + var // ifModified key + ifModifiedKey, + // Response headers + responseHeadersString, + responseHeaders, + // transport + transport, + // timeout handle + timeoutTimer, + // Cross-domain detection vars + parts, + // To know if global events are to be dispatched + fireGlobals, + // Loop variable + i, + // Create the final options object + s = jQuery.ajaxSetup( {}, options ), + // Callbacks context + callbackContext = s.context || s, + // Context for global events + // It's the callbackContext if one was provided in the options + // and if it's a DOM node or a jQuery collection + globalEventContext = callbackContext !== s && + ( callbackContext.nodeType || callbackContext instanceof jQuery ) ? + jQuery( callbackContext ) : jQuery.event, + // Deferreds + deferred = jQuery.Deferred(), + completeDeferred = jQuery.Callbacks( "once memory" ), + // Status-dependent callbacks + statusCode = s.statusCode || {}, + // Headers (they are sent all at once) + requestHeaders = {}, + requestHeadersNames = {}, + // The jqXHR state + state = 0, + // Default abort message + strAbort = "canceled", + // Fake xhr + jqXHR = { + + readyState: 0, + + // Caches the header + setRequestHeader: function( name, value ) { + if ( !state ) { + var lname = name.toLowerCase(); + name = requestHeadersNames[ lname ] = requestHeadersNames[ lname ] || name; + requestHeaders[ name ] = value; + } + return this; + }, + + // Raw string + getAllResponseHeaders: function() { + return state === 2 ? responseHeadersString : null; + }, + + // Builds headers hashtable if needed + getResponseHeader: function( key ) { + var match; + if ( state === 2 ) { + if ( !responseHeaders ) { + responseHeaders = {}; + while( ( match = rheaders.exec( responseHeadersString ) ) ) { + responseHeaders[ match[1].toLowerCase() ] = match[ 2 ]; + } + } + match = responseHeaders[ key.toLowerCase() ]; + } + return match === undefined ? null : match; + }, + + // Overrides response content-type header + overrideMimeType: function( type ) { + if ( !state ) { + s.mimeType = type; + } + return this; + }, + + // Cancel the request + abort: function( statusText ) { + statusText = statusText || strAbort; + if ( transport ) { + transport.abort( statusText ); + } + done( 0, statusText ); + return this; + } + }; + + // Callback for when everything is done + // It is defined here because jslint complains if it is declared + // at the end of the function (which would be more logical and readable) + function done( status, nativeStatusText, responses, headers ) { + var isSuccess, success, error, response, modified, + statusText = nativeStatusText; + + // Called once + if ( state === 2 ) { + return; + } + + // State is "done" now + state = 2; + + // Clear timeout if it exists + if ( timeoutTimer ) { + clearTimeout( timeoutTimer ); + } + + // Dereference transport for early garbage collection + // (no matter how long the jqXHR object will be used) + transport = undefined; + + // Cache response headers + responseHeadersString = headers || ""; + + // Set readyState + jqXHR.readyState = status > 0 ? 4 : 0; + + // Get response data + if ( responses ) { + response = ajaxHandleResponses( s, jqXHR, responses ); + } + + // If successful, handle type chaining + if ( status >= 200 && status < 300 || status === 304 ) { + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + + modified = jqXHR.getResponseHeader("Last-Modified"); + if ( modified ) { + jQuery.lastModified[ ifModifiedKey ] = modified; + } + modified = jqXHR.getResponseHeader("Etag"); + if ( modified ) { + jQuery.etag[ ifModifiedKey ] = modified; + } + } + + // If not modified + if ( status === 304 ) { + + statusText = "notmodified"; + isSuccess = true; + + // If we have data + } else { + + isSuccess = ajaxConvert( s, response ); + statusText = isSuccess.state; + success = isSuccess.data; + error = isSuccess.error; + isSuccess = !error; + } + } else { + // We extract error from statusText + // then normalize statusText and status for non-aborts + error = statusText; + if ( !statusText || status ) { + statusText = "error"; + if ( status < 0 ) { + status = 0; + } + } + } + + // Set data for the fake xhr object + jqXHR.status = status; + jqXHR.statusText = "" + ( nativeStatusText || statusText ); + + // Success/Error + if ( isSuccess ) { + deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] ); + } else { + deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] ); + } + + // Status-dependent callbacks + jqXHR.statusCode( statusCode ); + statusCode = undefined; + + if ( fireGlobals ) { + globalEventContext.trigger( "ajax" + ( isSuccess ? "Success" : "Error" ), + [ jqXHR, s, isSuccess ? success : error ] ); + } + + // Complete + completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] ); + + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] ); + // Handle the global AJAX counter + if ( !( --jQuery.active ) ) { + jQuery.event.trigger( "ajaxStop" ); + } + } + } + + // Attach deferreds + deferred.promise( jqXHR ); + jqXHR.success = jqXHR.done; + jqXHR.error = jqXHR.fail; + jqXHR.complete = completeDeferred.add; + + // Status-dependent callbacks + jqXHR.statusCode = function( map ) { + if ( map ) { + var tmp; + if ( state < 2 ) { + for ( tmp in map ) { + statusCode[ tmp ] = [ statusCode[tmp], map[tmp] ]; + } + } else { + tmp = map[ jqXHR.status ]; + jqXHR.always( tmp ); + } + } + return this; + }; + + // Remove hash character (#7531: and string promotion) + // Add protocol if not provided (#5866: IE7 issue with protocol-less urls) + // We also use the url parameter if available + s.url = ( ( url || s.url ) + "" ).replace( rhash, "" ).replace( rprotocol, ajaxLocParts[ 1 ] + "//" ); + + // Extract dataTypes list + s.dataTypes = jQuery.trim( s.dataType || "*" ).toLowerCase().split( core_rspace ); + + // Determine if a cross-domain request is in order + if ( s.crossDomain == null ) { + parts = rurl.exec( s.url.toLowerCase() ); + s.crossDomain = !!( parts && + ( parts[ 1 ] != ajaxLocParts[ 1 ] || parts[ 2 ] != ajaxLocParts[ 2 ] || + ( parts[ 3 ] || ( parts[ 1 ] === "http:" ? 80 : 443 ) ) != + ( ajaxLocParts[ 3 ] || ( ajaxLocParts[ 1 ] === "http:" ? 80 : 443 ) ) ) + ); + } + + // Convert data if not already a string + if ( s.data && s.processData && typeof s.data !== "string" ) { + s.data = jQuery.param( s.data, s.traditional ); + } + + // Apply prefilters + inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); + + // If request was aborted inside a prefilter, stop there + if ( state === 2 ) { + return jqXHR; + } + + // We can fire global events as of now if asked to + fireGlobals = s.global; + + // Uppercase the type + s.type = s.type.toUpperCase(); + + // Determine if request has content + s.hasContent = !rnoContent.test( s.type ); + + // Watch for a new set of requests + if ( fireGlobals && jQuery.active++ === 0 ) { + jQuery.event.trigger( "ajaxStart" ); + } + + // More options handling for requests with no content + if ( !s.hasContent ) { + + // If data is available, append data to url + if ( s.data ) { + s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.data; + // #9682: remove data so that it's not used in an eventual retry + delete s.data; + } + + // Get ifModifiedKey before adding the anti-cache parameter + ifModifiedKey = s.url; + + // Add anti-cache in url if needed + if ( s.cache === false ) { + + var ts = jQuery.now(), + // try replacing _= if it is there + ret = s.url.replace( rts, "$1_=" + ts ); + + // if nothing was replaced, add timestamp to the end + s.url = ret + ( ( ret === s.url ) ? ( rquery.test( s.url ) ? "&" : "?" ) + "_=" + ts : "" ); + } + } + + // Set the correct header, if data is being sent + if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { + jqXHR.setRequestHeader( "Content-Type", s.contentType ); + } + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + ifModifiedKey = ifModifiedKey || s.url; + if ( jQuery.lastModified[ ifModifiedKey ] ) { + jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ ifModifiedKey ] ); + } + if ( jQuery.etag[ ifModifiedKey ] ) { + jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ ifModifiedKey ] ); + } + } + + // Set the Accepts header for the server, depending on the dataType + jqXHR.setRequestHeader( + "Accept", + s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ? + s.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) : + s.accepts[ "*" ] + ); + + // Check for headers option + for ( i in s.headers ) { + jqXHR.setRequestHeader( i, s.headers[ i ] ); + } + + // Allow custom headers/mimetypes and early abort + if ( s.beforeSend && ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) { + // Abort if not done already and return + return jqXHR.abort(); + + } + + // aborting is no longer a cancellation + strAbort = "abort"; + + // Install callbacks on deferreds + for ( i in { success: 1, error: 1, complete: 1 } ) { + jqXHR[ i ]( s[ i ] ); + } + + // Get transport + transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); + + // If no transport, we auto-abort + if ( !transport ) { + done( -1, "No Transport" ); + } else { + jqXHR.readyState = 1; + // Send global event + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); + } + // Timeout + if ( s.async && s.timeout > 0 ) { + timeoutTimer = setTimeout( function(){ + jqXHR.abort( "timeout" ); + }, s.timeout ); + } + + try { + state = 1; + transport.send( requestHeaders, done ); + } catch (e) { + // Propagate exception as error if not done + if ( state < 2 ) { + done( -1, e ); + // Simply rethrow otherwise + } else { + throw e; + } + } + } + + return jqXHR; + }; + jQuery.ajaxPrefilter = function ( dataTypeExpression, func ) { + /// + /// Handle custom Ajax options or modify existing options before each request is sent and before they are processed by $.ajax(). + /// + /// + /// An optional string containing one or more space-separated dataTypes + /// + /// + /// A handler to set default values for future Ajax requests. + /// + /// + + + if ( typeof dataTypeExpression !== "string" ) { + func = dataTypeExpression; + dataTypeExpression = "*"; + } + + var dataType, list, placeBefore, + dataTypes = dataTypeExpression.toLowerCase().split( core_rspace ), + i = 0, + length = dataTypes.length; + + if ( jQuery.isFunction( func ) ) { + // For each dataType in the dataTypeExpression + for ( ; i < length; i++ ) { + dataType = dataTypes[ i ]; + // We control if we're asked to add before + // any existing element + placeBefore = /^\+/.test( dataType ); + if ( placeBefore ) { + dataType = dataType.substr( 1 ) || "*"; + } + list = structure[ dataType ] = structure[ dataType ] || []; + // then we add to the structure accordingly + list[ placeBefore ? "unshift" : "push" ]( func ); + } + } + }; + jQuery.ajaxSettings = { "url": 'http://localhost:25813/', + "isLocal": false, + "global": true, + "type": 'GET', + "contentType": 'application/x-www-form-urlencoded; charset=UTF-8', + "processData": true, + "async": true, + "accepts": {}, + "contents": {}, + "responseFields": {}, + "converters": {}, + "flatOptions": {}, + "jsonp": 'callback' }; + jQuery.ajaxSetup = function ( target, settings ) { + /// + /// Set default values for future Ajax requests. + /// + /// + /// A set of key/value pairs that configure the default Ajax request. All options are optional. + /// + + if ( settings ) { + // Building a settings object + ajaxExtend( target, jQuery.ajaxSettings ); + } else { + // Extending ajaxSettings + settings = target; + target = jQuery.ajaxSettings; + } + ajaxExtend( target, settings ); + return target; + }; + jQuery.ajaxTransport = function ( dataTypeExpression, func ) { + + + if ( typeof dataTypeExpression !== "string" ) { + func = dataTypeExpression; + dataTypeExpression = "*"; + } + + var dataType, list, placeBefore, + dataTypes = dataTypeExpression.toLowerCase().split( core_rspace ), + i = 0, + length = dataTypes.length; + + if ( jQuery.isFunction( func ) ) { + // For each dataType in the dataTypeExpression + for ( ; i < length; i++ ) { + dataType = dataTypes[ i ]; + // We control if we're asked to add before + // any existing element + placeBefore = /^\+/.test( dataType ); + if ( placeBefore ) { + dataType = dataType.substr( 1 ) || "*"; + } + list = structure[ dataType ] = structure[ dataType ] || []; + // then we add to the structure accordingly + list[ placeBefore ? "unshift" : "push" ]( func ); + } + } + }; + jQuery.attr = function ( elem, name, value, pass ) { + + var ret, hooks, notxml, + nType = elem.nodeType; + + // don't get/set attributes on text, comment and attribute nodes + if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + if ( pass && jQuery.isFunction( jQuery.fn[ name ] ) ) { + return jQuery( elem )[ name ]( value ); + } + + // Fallback to prop when attributes are not supported + if ( typeof elem.getAttribute === "undefined" ) { + return jQuery.prop( elem, name, value ); + } + + notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); + + // All attributes are lowercase + // Grab necessary hook if one is defined + if ( notxml ) { + name = name.toLowerCase(); + hooks = jQuery.attrHooks[ name ] || ( rboolean.test( name ) ? boolHook : nodeHook ); + } + + if ( value !== undefined ) { + + if ( value === null ) { + jQuery.removeAttr( elem, name ); + return; + + } else if ( hooks && "set" in hooks && notxml && (ret = hooks.set( elem, value, name )) !== undefined ) { + return ret; + + } else { + elem.setAttribute( name, "" + value ); + return value; + } + + } else if ( hooks && "get" in hooks && notxml && (ret = hooks.get( elem, name )) !== null ) { + return ret; + + } else { + + ret = elem.getAttribute( name ); + + // Non-existent attributes return null, we normalize to undefined + return ret === null ? + undefined : + ret; + } + }; + jQuery.attrFn = {}; + jQuery.attrHooks = { "type": {}, + "value": {} }; + jQuery.browser = { "chrome": true, + "version": '21.0.1180.60' }; + jQuery.buildFragment = function ( args, context, scripts ) { + + var fragment, cacheable, cachehit, + first = args[ 0 ]; + + // Set context from what may come in as undefined or a jQuery collection or a node + context = context || document; + context = (context[0] || context).ownerDocument || context[0] || context; + + // Ensure that an attr object doesn't incorrectly stand in as a document object + // Chrome and Firefox seem to allow this to occur and will throw exception + // Fixes #8950 + if ( typeof context.createDocumentFragment === "undefined" ) { + context = document; + } + + // Only cache "small" (1/2 KB) HTML strings that are associated with the main document + // Cloning options loses the selected state, so don't cache them + // IE 6 doesn't like it when you put or elements in a fragment + // Also, WebKit does not clone 'checked' attributes on cloneNode, so don't cache + // Lastly, IE6,7,8 will not correctly reuse cached fragments that were created from unknown elems #10501 + if ( args.length === 1 && typeof first === "string" && first.length < 512 && context === document && + first.charAt(0) === "<" && !rnocache.test( first ) && + (jQuery.support.checkClone || !rchecked.test( first )) && + (jQuery.support.html5Clone || !rnoshimcache.test( first )) ) { + + // Mark cacheable and look for a hit + cacheable = true; + fragment = jQuery.fragments[ first ]; + cachehit = fragment !== undefined; + } + + if ( !fragment ) { + fragment = context.createDocumentFragment(); + jQuery.clean( args, context, fragment, scripts ); + + // Update the cache, but only store false + // unless this is a second parsing of the same content + if ( cacheable ) { + jQuery.fragments[ first ] = cachehit && fragment; + } + } + + return { fragment: fragment, cacheable: cacheable }; + }; + jQuery.cache = {}; + jQuery.camelCase = function ( string ) { + + return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); + }; + jQuery.clean = function ( elems, context, fragment, scripts ) { + + var j, safe, elem, tag, wrap, depth, div, hasBody, tbody, len, handleScript, jsTags, + i = 0, + ret = []; + + // Ensure that context is a document + if ( !context || typeof context.createDocumentFragment === "undefined" ) { + context = document; + } + + // Use the already-created safe fragment if context permits + for ( safe = context === document && safeFragment; (elem = elems[i]) != null; i++ ) { + if ( typeof elem === "number" ) { + elem += ""; + } + + if ( !elem ) { + continue; + } + + // Convert html string into DOM nodes + if ( typeof elem === "string" ) { + if ( !rhtml.test( elem ) ) { + elem = context.createTextNode( elem ); + } else { + // Ensure a safe container in which to render the html + safe = safe || createSafeFragment( context ); + div = div || safe.appendChild( context.createElement("div") ); + + // Fix "XHTML"-style tags in all browsers + elem = elem.replace(rxhtmlTag, "<$1>"); + + // Go to html and back, then peel off extra wrappers + tag = ( rtagName.exec( elem ) || ["", ""] )[1].toLowerCase(); + wrap = wrapMap[ tag ] || wrapMap._default; + depth = wrap[0]; + div.innerHTML = wrap[1] + elem + wrap[2]; + + // Move to the right depth + while ( depth-- ) { + div = div.lastChild; + } + + // Remove IE's autoinserted from table fragments + if ( !jQuery.support.tbody ) { + + // String was a , *may* have spurious + hasBody = rtbody.test(elem); + tbody = tag === "table" && !hasBody ? + div.firstChild && div.firstChild.childNodes : + + // String was a bare or + wrap[1] === "
                                " && !hasBody ? + div.childNodes : + []; + + for ( j = tbody.length - 1; j >= 0 ; --j ) { + if ( jQuery.nodeName( tbody[ j ], "tbody" ) && !tbody[ j ].childNodes.length ) { + tbody[ j ].parentNode.removeChild( tbody[ j ] ); + } + } + } + + // IE completely kills leading whitespace when innerHTML is used + if ( !jQuery.support.leadingWhitespace && rleadingWhitespace.test( elem ) ) { + div.insertBefore( context.createTextNode( rleadingWhitespace.exec(elem)[0] ), div.firstChild ); + } + + elem = div.childNodes; + + // Remember the top-level container for proper cleanup + div = safe.lastChild; + } + } + + if ( elem.nodeType ) { + ret.push( elem ); + } else { + ret = jQuery.merge( ret, elem ); + } + } + + // Fix #11356: Clear elements from safeFragment + if ( div ) { + safe.removeChild( div ); + elem = div = safe = null; + } + + // Reset defaultChecked for any radios and checkboxes + // about to be appended to the DOM in IE 6/7 (#8060) + if ( !jQuery.support.appendChecked ) { + for ( i = 0; (elem = ret[i]) != null; i++ ) { + if ( jQuery.nodeName( elem, "input" ) ) { + fixDefaultChecked( elem ); + } else if ( typeof elem.getElementsByTagName !== "undefined" ) { + jQuery.grep( elem.getElementsByTagName("input"), fixDefaultChecked ); + } + } + } + + // Append elements to a provided document fragment + if ( fragment ) { + // Special handling of each script element + handleScript = function( elem ) { + // Check if we consider it executable + if ( !elem.type || rscriptType.test( elem.type ) ) { + // Detach the script and store it in the scripts array (if provided) or the fragment + // Return truthy to indicate that it has been handled + return scripts ? + scripts.push( elem.parentNode ? elem.parentNode.removeChild( elem ) : elem ) : + fragment.appendChild( elem ); + } + }; + + for ( i = 0; (elem = ret[i]) != null; i++ ) { + // Check if we're done after handling an executable script + if ( !( jQuery.nodeName( elem, "script" ) && handleScript( elem ) ) ) { + // Append to fragment and handle embedded scripts + fragment.appendChild( elem ); + if ( typeof elem.getElementsByTagName !== "undefined" ) { + // handleScript alters the DOM, so use jQuery.merge to ensure snapshot iteration + jsTags = jQuery.grep( jQuery.merge( [], elem.getElementsByTagName("script") ), handleScript ); + + // Splice the scripts into ret after their former ancestor and advance our index beyond them + ret.splice.apply( ret, [i + 1, 0].concat( jsTags ) ); + i += jsTags.length; + } + } + } + } + + return ret; + }; + jQuery.cleanData = function ( elems, /* internal */ acceptData ) { + + var data, id, elem, type, + i = 0, + internalKey = jQuery.expando, + cache = jQuery.cache, + deleteExpando = jQuery.support.deleteExpando, + special = jQuery.event.special; + + for ( ; (elem = elems[i]) != null; i++ ) { + + if ( acceptData || jQuery.acceptData( elem ) ) { + + id = elem[ internalKey ]; + data = id && cache[ id ]; + + if ( data ) { + if ( data.events ) { + for ( type in data.events ) { + if ( special[ type ] ) { + jQuery.event.remove( elem, type ); + + // This is a shortcut to avoid jQuery.event.remove's overhead + } else { + jQuery.removeEvent( elem, type, data.handle ); + } + } + } + + // Remove cache only if it was not already removed by jQuery.event.remove + if ( cache[ id ] ) { + + delete cache[ id ]; + + // IE does not allow us to delete expando properties from nodes, + // nor does it have a removeAttribute function on Document nodes; + // we must handle all of these cases + if ( deleteExpando ) { + delete elem[ internalKey ]; + + } else if ( elem.removeAttribute ) { + elem.removeAttribute( internalKey ); + + } else { + elem[ internalKey ] = null; + } + + jQuery.deletedIds.push( id ); + } + } + } + } + }; + jQuery.clone = function ( elem, dataAndEvents, deepDataAndEvents ) { + + var srcElements, + destElements, + i, + clone; + + if ( jQuery.support.html5Clone || jQuery.isXMLDoc(elem) || !rnoshimcache.test( "<" + elem.nodeName + ">" ) ) { + clone = elem.cloneNode( true ); + + // IE<=8 does not properly clone detached, unknown element nodes + } else { + fragmentDiv.innerHTML = elem.outerHTML; + fragmentDiv.removeChild( clone = fragmentDiv.firstChild ); + } + + if ( (!jQuery.support.noCloneEvent || !jQuery.support.noCloneChecked) && + (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) { + // IE copies events bound via attachEvent when using cloneNode. + // Calling detachEvent on the clone will also remove the events + // from the original. In order to get around this, we use some + // proprietary methods to clear the events. Thanks to MooTools + // guys for this hotness. + + cloneFixAttributes( elem, clone ); + + // Using Sizzle here is crazy slow, so we use getElementsByTagName instead + srcElements = getAll( elem ); + destElements = getAll( clone ); + + // Weird iteration because IE will replace the length property + // with an element if you are cloning the body and one of the + // elements on the page has a name or id of "length" + for ( i = 0; srcElements[i]; ++i ) { + // Ensure that the destination node is not null; Fixes #9587 + if ( destElements[i] ) { + cloneFixAttributes( srcElements[i], destElements[i] ); + } + } + } + + // Copy the events from the original to the clone + if ( dataAndEvents ) { + cloneCopyEvent( elem, clone ); + + if ( deepDataAndEvents ) { + srcElements = getAll( elem ); + destElements = getAll( clone ); + + for ( i = 0; srcElements[i]; ++i ) { + cloneCopyEvent( srcElements[i], destElements[i] ); + } + } + } + + srcElements = destElements = null; + + // Return the cloned set + return clone; + }; + jQuery.contains = function ( a, b ) { + /// + /// Check to see if a DOM element is within another DOM element. + /// + /// + /// The DOM element that may contain the other element. + /// + /// + /// The DOM element that may be contained by the other element. + /// + /// + + return !!( a.compareDocumentPosition( b ) & 16 ); + }; + jQuery.css = function ( elem, name, numeric, extra ) { + + var val, num, hooks, + origName = jQuery.camelCase( name ); + + // Make sure that we're working with the right name + name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( elem.style, origName ) ); + + // gets hook for the prefixed version + // followed by the unprefixed version + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // If a hook was provided get the computed value from there + if ( hooks && "get" in hooks ) { + val = hooks.get( elem, true, extra ); + } + + // Otherwise, if a way to get the computed value exists, use that + if ( val === undefined ) { + val = curCSS( elem, name ); + } + + //convert "normal" to computed value + if ( val === "normal" && name in cssNormalTransform ) { + val = cssNormalTransform[ name ]; + } + + // Return, converting to number if forced or a qualifier was provided and val looks numeric + if ( numeric || extra !== undefined ) { + num = parseFloat( val ); + return numeric || jQuery.isNumeric( num ) ? num || 0 : val; + } + return val; + }; + jQuery.cssHooks = { "opacity": {}, + "height": {}, + "width": {}, + "margin": {}, + "padding": {}, + "borderWidth": {}, + "top": {}, + "left": {} }; + jQuery.cssNumber = { "fillOpacity": true, + "fontWeight": true, + "lineHeight": true, + "opacity": true, + "orphans": true, + "widows": true, + "zIndex": true, + "zoom": true }; + jQuery.cssProps = { "float": 'cssFloat', + "display": 'display', + "visibility": 'visibility', + "opacity": 'opacity' }; + jQuery.data = function ( elem, name, data, pvt /* Internal Use Only */ ) { + /// + /// 1: Store arbitrary data associated with the specified element. Returns the value that was set. + /// 1.1 - jQuery.data(element, key, value) + /// 2: Returns value at named data store for the element, as set by jQuery.data(element, name, value), or the full data store for the element. + /// 2.1 - jQuery.data(element, key) + /// 2.2 - jQuery.data(element) + /// + /// + /// The DOM element to associate with the data. + /// + /// + /// A string naming the piece of data to set. + /// + /// + /// The new data value. + /// + /// + + if ( !jQuery.acceptData( elem ) ) { + return; + } + + var thisCache, ret, + internalKey = jQuery.expando, + getByName = typeof name === "string", + + // We have to handle DOM nodes and JS objects differently because IE6-7 + // can't GC object references properly across the DOM-JS boundary + isNode = elem.nodeType, + + // Only DOM nodes need the global jQuery cache; JS object data is + // attached directly to the object so GC can occur automatically + cache = isNode ? jQuery.cache : elem, + + // Only defining an ID for JS objects if its cache already exists allows + // the code to shortcut on the same path as a DOM node with no cache + id = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey; + + // Avoid doing any more work than we need to when trying to get data on an + // object that has no data at all + if ( (!id || !cache[id] || (!pvt && !cache[id].data)) && getByName && data === undefined ) { + return; + } + + if ( !id ) { + // Only DOM nodes need a new unique ID for each element since their data + // ends up in the global cache + if ( isNode ) { + elem[ internalKey ] = id = jQuery.deletedIds.pop() || ++jQuery.uuid; + } else { + id = internalKey; + } + } + + if ( !cache[ id ] ) { + cache[ id ] = {}; + + // Avoids exposing jQuery metadata on plain JS objects when the object + // is serialized using JSON.stringify + if ( !isNode ) { + cache[ id ].toJSON = jQuery.noop; + } + } + + // An object can be passed to jQuery.data instead of a key/value pair; this gets + // shallow copied over onto the existing cache + if ( typeof name === "object" || typeof name === "function" ) { + if ( pvt ) { + cache[ id ] = jQuery.extend( cache[ id ], name ); + } else { + cache[ id ].data = jQuery.extend( cache[ id ].data, name ); + } + } + + thisCache = cache[ id ]; + + // jQuery data() is stored in a separate object inside the object's internal data + // cache in order to avoid key collisions between internal data and user-defined + // data. + if ( !pvt ) { + if ( !thisCache.data ) { + thisCache.data = {}; + } + + thisCache = thisCache.data; + } + + if ( data !== undefined ) { + thisCache[ jQuery.camelCase( name ) ] = data; + } + + // Check for both converted-to-camel and non-converted data property names + // If a data property was specified + if ( getByName ) { + + // First Try to find as-is property data + ret = thisCache[ name ]; + + // Test for null|undefined property data + if ( ret == null ) { + + // Try to find the camelCased property + ret = thisCache[ jQuery.camelCase( name ) ]; + } + } else { + ret = thisCache; + } + + return ret; + }; + jQuery.dequeue = function ( elem, type ) { + /// + /// Execute the next function on the queue for the matched element. + /// + /// + /// A DOM element from which to remove and execute a queued function. + /// + /// + /// A string containing the name of the queue. Defaults to fx, the standard effects queue. + /// + /// + + type = type || "fx"; + + var queue = jQuery.queue( elem, type ), + fn = queue.shift(), + hooks = jQuery._queueHooks( elem, type ), + next = function() { + jQuery.dequeue( elem, type ); + }; + + // If the fx queue is dequeued, always remove the progress sentinel + if ( fn === "inprogress" ) { + fn = queue.shift(); + } + + if ( fn ) { + + // Add a progress sentinel to prevent the fx queue from being + // automatically dequeued + if ( type === "fx" ) { + queue.unshift( "inprogress" ); + } + + // clear up the last queue stop function + delete hooks.stop; + fn.call( elem, next, hooks ); + } + if ( !queue.length && hooks ) { + hooks.empty.fire(); + } + }; + jQuery.dir = function ( elem, dir, until ) { + + var matched = [], + cur = elem[ dir ]; + + while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) { + if ( cur.nodeType === 1 ) { + matched.push( cur ); + } + cur = cur[dir]; + } + return matched; + }; + jQuery.each = function ( obj, callback, args ) { + /// + /// A generic iterator function, which can be used to seamlessly iterate over both objects and arrays. Arrays and array-like objects with a length property (such as a function's arguments object) are iterated by numeric index, from 0 to length-1. Other objects are iterated via their named properties. + /// + /// + /// The object or array to iterate over. + /// + /// + /// The function that will be executed on every object. + /// + /// + + var name, + i = 0, + length = obj.length, + isObj = length === undefined || jQuery.isFunction( obj ); + + if ( args ) { + if ( isObj ) { + for ( name in obj ) { + if ( callback.apply( obj[ name ], args ) === false ) { + break; + } + } + } else { + for ( ; i < length; ) { + if ( callback.apply( obj[ i++ ], args ) === false ) { + break; + } + } + } + + // A special, fast, case for the most common use of each + } else { + if ( isObj ) { + for ( name in obj ) { + if ( callback.call( obj[ name ], name, obj[ name ] ) === false ) { + break; + } + } + } else { + for ( ; i < length; ) { + if ( callback.call( obj[ i ], i, obj[ i++ ] ) === false ) { + break; + } + } + } + } + + return obj; + }; + jQuery.easing = {}; + jQuery.error = function ( msg ) { + /// + /// Takes a string and throws an exception containing it. + /// + /// + /// The message to send out. + /// + + throw new Error( msg ); + }; + jQuery.etag = {}; + jQuery.event = { "global": {}, + "customEvent": {}, + "props": ['attrChange','attrName','relatedNode','srcElement','altKey','bubbles','cancelable','ctrlKey','currentTarget','eventPhase','metaKey','relatedTarget','shiftKey','target','timeStamp','view','which'], + "fixHooks": {}, + "keyHooks": {}, + "mouseHooks": {}, + "special": {}, + "triggered": false }; + jQuery.expr = { "cacheLength": 50, + "match": {}, + "order": ['ID','CLASS','TAG','NAME'], + "attrHandle": {}, + "find": {}, + "relative": {}, + "preFilter": {}, + "filter": {}, + "pseudos": {}, + "setFilters": {}, + "filters": {}, + ":": {} }; + jQuery.extend = function () { + /// + /// Merge the contents of two or more objects together into the first object. + /// 1 - jQuery.extend(target, object1, objectN) + /// 2 - jQuery.extend(deep, target, object1, objectN) + /// + /// + /// If true, the merge becomes recursive (aka. deep copy). + /// + /// + /// The object to extend. It will receive the new properties. + /// + /// + /// An object containing additional properties to merge in. + /// + /// + /// Additional objects containing properties to merge in. + /// + /// + + var options, name, src, copy, copyIsArray, clone, + target = arguments[0] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + target = arguments[1] || {}; + // skip the boolean and the target + i = 2; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !jQuery.isFunction(target) ) { + target = {}; + } + + // extend jQuery itself if only one argument is passed + if ( length === i ) { + target = this; + --i; + } + + for ( ; i < length; i++ ) { + // Only deal with non-null/undefined values + if ( (options = arguments[ i ]) != null ) { + // Extend the base object + for ( name in options ) { + src = target[ name ]; + copy = options[ name ]; + + // Prevent never-ending loop + if ( target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) { + if ( copyIsArray ) { + copyIsArray = false; + clone = src && jQuery.isArray(src) ? src : []; + + } else { + clone = src && jQuery.isPlainObject(src) ? src : {}; + } + + // Never move original objects, clone them + target[ name ] = jQuery.extend( deep, clone, copy ); + + // Don't bring in undefined values + } else if ( copy !== undefined ) { + target[ name ] = copy; + } + } + } + } + + // Return the modified object + return target; + }; + jQuery.filter = function ( expr, elems, not ) { + + if ( not ) { + expr = ":not(" + expr + ")"; + } + + return elems.length === 1 ? + jQuery.find.matchesSelector(elems[0], expr) ? [ elems[0] ] : [] : + jQuery.find.matches(expr, elems); + }; + jQuery.find = function ( selector, context, results, seed ) { + + results = results || []; + context = context || document; + var match, elem, xml, m, + nodeType = context.nodeType; + + if ( nodeType !== 1 && nodeType !== 9 ) { + return []; + } + + if ( !selector || typeof selector !== "string" ) { + return results; + } + + xml = isXML( context ); + + if ( !xml && !seed ) { + if ( (match = rquickExpr.exec( selector )) ) { + // Speed-up: Sizzle("#ID") + if ( (m = match[1]) ) { + if ( nodeType === 9 ) { + elem = context.getElementById( m ); + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + if ( elem && elem.parentNode ) { + // Handle the case where IE, Opera, and Webkit return items + // by name instead of ID + if ( elem.id === m ) { + results.push( elem ); + return results; + } + } else { + return results; + } + } else { + // Context is not a document + if ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) && + contains( context, elem ) && elem.id === m ) { + results.push( elem ); + return results; + } + } + + // Speed-up: Sizzle("TAG") + } else if ( match[2] ) { + push.apply( results, slice.call(context.getElementsByTagName( selector ), 0) ); + return results; + + // Speed-up: Sizzle(".CLASS") + } else if ( (m = match[3]) && assertUsableClassName && context.getElementsByClassName ) { + push.apply( results, slice.call(context.getElementsByClassName( m ), 0) ); + return results; + } + } + } + + // All others + return select( selector, context, results, seed, xml ); + }; + jQuery.fn = { "selector": '', + "jquery": '1.8.0', + "length": 0 }; + jQuery.fragments = {}; + jQuery.fx = function ( elem, options, prop, end, easing, unit ) { + + this.elem = elem; + this.prop = prop; + this.easing = easing || "swing"; + this.options = options; + this.start = this.now = this.cur(); + this.end = end; + this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" ); + }; + jQuery.get = function ( url, data, callback, type ) { + /// + /// Load data from the server using a HTTP GET request. + /// + /// + /// A string containing the URL to which the request is sent. + /// + /// + /// A map or string that is sent to the server with the request. + /// + /// + /// A callback function that is executed if the request succeeds. + /// + /// + /// The type of data expected from the server. Default: Intelligent Guess (xml, json, script, or html). + /// + + // shift arguments if data argument was omitted + if ( jQuery.isFunction( data ) ) { + type = type || callback; + callback = data; + data = undefined; + } + + return jQuery.ajax({ + type: method, + url: url, + data: data, + success: callback, + dataType: type + }); + }; + jQuery.getJSON = function ( url, data, callback ) { + /// + /// Load JSON-encoded data from the server using a GET HTTP request. + /// + /// + /// A string containing the URL to which the request is sent. + /// + /// + /// A map or string that is sent to the server with the request. + /// + /// + /// A callback function that is executed if the request succeeds. + /// + + return jQuery.get( url, data, callback, "json" ); + }; + jQuery.getScript = function ( url, callback ) { + /// + /// Load a JavaScript file from the server using a GET HTTP request, then execute it. + /// + /// + /// A string containing the URL to which the request is sent. + /// + /// + /// A callback function that is executed if the request succeeds. + /// + + return jQuery.get( url, undefined, callback, "script" ); + }; + jQuery.globalEval = function ( data ) { + /// + /// Execute some JavaScript code globally. + /// + /// + /// The JavaScript code to execute. + /// + + if ( data && core_rnotwhite.test( data ) ) { + // We use execScript on Internet Explorer + // We use an anonymous function so that context is window + // rather than jQuery in Firefox + ( window.execScript || function( data ) { + window[ "eval" ].call( window, data ); + } )( data ); + } + }; + jQuery.grep = function ( elems, callback, inv ) { + /// + /// Finds the elements of an array which satisfy a filter function. The original array is not affected. + /// + /// + /// The array to search through. + /// + /// + /// The function to process each item against. The first argument to the function is the item, and the second argument is the index. The function should return a Boolean value. this will be the global window object. + /// + /// + /// If "invert" is false, or not provided, then the function returns an array consisting of all elements for which "callback" returns true. If "invert" is true, then the function returns an array consisting of all elements for which "callback" returns false. + /// + /// + + var retVal, + ret = [], + i = 0, + length = elems.length; + inv = !!inv; + + // Go through the array, only saving the items + // that pass the validator function + for ( ; i < length; i++ ) { + retVal = !!callback( elems[ i ], i ); + if ( inv !== retVal ) { + ret.push( elems[ i ] ); + } + } + + return ret; + }; + jQuery.guid = 1; + jQuery.hasData = function ( elem ) { + /// + /// Determine whether an element has any jQuery data associated with it. + /// + /// + /// A DOM element to be checked for data. + /// + /// + + elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ]; + return !!elem && !isEmptyDataObject( elem ); + }; + jQuery.holdReady = function ( hold ) { + /// + /// Holds or releases the execution of jQuery's ready event. + /// + /// + /// Indicates whether the ready hold is being requested or released + /// + /// + + if ( hold ) { + jQuery.readyWait++; + } else { + jQuery.ready( true ); + } + }; + jQuery.inArray = function ( elem, arr, i ) { + /// + /// Search for a specified value within an array and return its index (or -1 if not found). + /// + /// + /// The value to search for. + /// + /// + /// An array through which to search. + /// + /// + /// The index of the array at which to begin the search. The default is 0, which will search the whole array. + /// + /// + + var len; + + if ( arr ) { + if ( core_indexOf ) { + return core_indexOf.call( arr, elem, i ); + } + + len = arr.length; + i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0; + + for ( ; i < len; i++ ) { + // Skip accessing in sparse arrays + if ( i in arr && arr[ i ] === elem ) { + return i; + } + } + } + + return -1; + }; + jQuery.isEmptyObject = function ( obj ) { + /// + /// Check to see if an object is empty (contains no properties). + /// + /// + /// The object that will be checked to see if it's empty. + /// + /// + + var name; + for ( name in obj ) { + return false; + } + return true; + }; + jQuery.isFunction = function ( obj ) { + /// + /// Determine if the argument passed is a Javascript function object. + /// + /// + /// Object to test whether or not it is a function. + /// + /// + + return jQuery.type(obj) === "function"; + }; + jQuery.isNumeric = function ( obj ) { + /// + /// Determines whether its argument is a number. + /// + /// + /// The value to be tested. + /// + /// + + return !isNaN( parseFloat(obj) ) && isFinite( obj ); + }; + jQuery.isPlainObject = function ( obj ) { + /// + /// Check to see if an object is a plain object (created using "{}" or "new Object"). + /// + /// + /// The object that will be checked to see if it's a plain object. + /// + /// + + // Must be an Object. + // Because of IE, we also have to check the presence of the constructor property. + // Make sure that DOM nodes and window objects don't pass through, as well + if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) { + return false; + } + + try { + // Not own constructor property must be Object + if ( obj.constructor && + !core_hasOwn.call(obj, "constructor") && + !core_hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) { + return false; + } + } catch ( e ) { + // IE8,9 Will throw exceptions on certain host objects #9897 + return false; + } + + // Own properties are enumerated firstly, so to speed up, + // if last one is own, then all properties are own. + + var key; + for ( key in obj ) {} + + return key === undefined || core_hasOwn.call( obj, key ); + }; + jQuery.isReady = true; + jQuery.isWindow = function ( obj ) { + /// + /// Determine whether the argument is a window. + /// + /// + /// Object to test whether or not it is a window. + /// + /// + + return obj != null && obj == obj.window; + }; + jQuery.isXMLDoc = function ( elem ) { + /// + /// Check to see if a DOM node is within an XML document (or is an XML document). + /// + /// + /// The DOM node that will be checked to see if it's in an XML document. + /// + /// + + // documentElement is verified for cases where it doesn't yet exist + // (such as loading iframes in IE - #4833) + var documentElement = elem && (elem.ownerDocument || elem).documentElement; + return documentElement ? documentElement.nodeName !== "HTML" : false; + }; + jQuery.lastModified = {}; + jQuery.makeArray = function ( arr, results ) { + /// + /// Convert an array-like object into a true JavaScript array. + /// + /// + /// Any object to turn into a native Array. + /// + /// + + var type, + ret = results || []; + + if ( arr != null ) { + // The window, strings (and functions) also have 'length' + // Tweaked logic slightly to handle Blackberry 4.7 RegExp issues #6930 + type = jQuery.type( arr ); + + if ( arr.length == null || type === "string" || type === "function" || type === "regexp" || jQuery.isWindow( arr ) ) { + core_push.call( ret, arr ); + } else { + jQuery.merge( ret, arr ); + } + } + + return ret; + }; + jQuery.map = function ( elems, callback, arg ) { + /// + /// Translate all items in an array or object to new array of items. + /// 1 - jQuery.map(array, callback(elementOfArray, indexInArray)) + /// 2 - jQuery.map(arrayOrObject, callback( value, indexOrKey )) + /// + /// + /// The Array to translate. + /// + /// + /// The function to process each item against. The first argument to the function is the array item, the second argument is the index in array The function can return any value. Within the function, this refers to the global (window) object. + /// + /// + + var value, key, + ret = [], + i = 0, + length = elems.length, + // jquery objects are treated as arrays + isArray = elems instanceof jQuery || length !== undefined && typeof length === "number" && ( ( length > 0 && elems[ 0 ] && elems[ length -1 ] ) || length === 0 || jQuery.isArray( elems ) ) ; + + // Go through the array, translating each of the items to their + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret[ ret.length ] = value; + } + } + + // Go through every key on the object, + } else { + for ( key in elems ) { + value = callback( elems[ key ], key, arg ); + + if ( value != null ) { + ret[ ret.length ] = value; + } + } + } + + // Flatten any nested arrays + return ret.concat.apply( [], ret ); + }; + jQuery.merge = function ( first, second ) { + /// + /// Merge the contents of two arrays together into the first array. + /// + /// + /// The first array to merge, the elements of second added. + /// + /// + /// The second array to merge into the first, unaltered. + /// + /// + + var l = second.length, + i = first.length, + j = 0; + + if ( typeof l === "number" ) { + for ( ; j < l; j++ ) { + first[ i++ ] = second[ j ]; + } + + } else { + while ( second[j] !== undefined ) { + first[ i++ ] = second[ j++ ]; + } + } + + first.length = i; + + return first; + }; + jQuery.noConflict = function ( deep ) { + /// + /// Relinquish jQuery's control of the $ variable. + /// + /// + /// A Boolean indicating whether to remove all jQuery variables from the global scope (including jQuery itself). + /// + /// + + if ( window.$ === jQuery ) { + window.$ = _$; + } + + if ( deep && window.jQuery === jQuery ) { + window.jQuery = _jQuery; + } + + return jQuery; + }; + jQuery.noData = { "embed": true, + "object": 'clsid:D27CDB6E-AE6D-11cf-96B8-444553540000', + "applet": true }; + jQuery.nodeName = function ( elem, name ) { + + return elem.nodeName && elem.nodeName.toUpperCase() === name.toUpperCase(); + }; + jQuery.noop = function () { + /// + /// An empty function. + /// + /// + }; + jQuery.now = function () { + /// + /// Return a number representing the current time. + /// + /// + + return ( new Date() ).getTime(); + }; + jQuery.offset = {}; + jQuery.param = function ( a, traditional ) { + /// + /// Create a serialized representation of an array or object, suitable for use in a URL query string or Ajax request. + /// 1 - jQuery.param(obj) + /// 2 - jQuery.param(obj, traditional) + /// + /// + /// An array or object to serialize. + /// + /// + /// A Boolean indicating whether to perform a traditional "shallow" serialization. + /// + /// + + var prefix, + s = [], + add = function( key, value ) { + // If value is a function, invoke it and return its value + value = jQuery.isFunction( value ) ? value() : ( value == null ? "" : value ); + s[ s.length ] = encodeURIComponent( key ) + "=" + encodeURIComponent( value ); + }; + + // Set traditional to true for jQuery <= 1.3.2 behavior. + if ( traditional === undefined ) { + traditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional; + } + + // If an array was passed in, assume that it is an array of form elements. + if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { + // Serialize the form elements + jQuery.each( a, function() { + add( this.name, this.value ); + }); + + } else { + // If traditional, encode the "old" way (the way 1.3.2 or older + // did it), otherwise encode params recursively. + for ( prefix in a ) { + buildParams( prefix, a[ prefix ], traditional, add ); + } + } + + // Return the resulting serialization + return s.join( "&" ).replace( r20, "+" ); + }; + jQuery.parseHTML = function ( data, context, scripts ) { + + var parsed; + if ( !data || typeof data !== "string" ) { + return null; + } + if ( typeof context === "boolean" ) { + scripts = context; + context = 0; + } + context = context || document; + + // Single tag + if ( (parsed = rsingleTag.exec( data )) ) { + return [ context.createElement( parsed[1] ) ]; + } + + parsed = jQuery.buildFragment( [ data ], context, scripts ? null : [] ); + return jQuery.merge( [], + (parsed.cacheable ? jQuery.clone( parsed.fragment ) : parsed.fragment).childNodes ); + }; + jQuery.parseJSON = function ( data ) { + /// + /// Takes a well-formed JSON string and returns the resulting JavaScript object. + /// + /// + /// The JSON string to parse. + /// + /// + + if ( !data || typeof data !== "string") { + return null; + } + + // Make sure leading/trailing whitespace is removed (IE can't handle it) + data = jQuery.trim( data ); + + // Attempt to parse using the native JSON parser first + if ( window.JSON && window.JSON.parse ) { + return window.JSON.parse( data ); + } + + // Make sure the incoming data is actual JSON + // Logic borrowed from http://json.org/json2.js + if ( rvalidchars.test( data.replace( rvalidescape, "@" ) + .replace( rvalidtokens, "]" ) + .replace( rvalidbraces, "")) ) { + + return ( new Function( "return " + data ) )(); + + } + jQuery.error( "Invalid JSON: " + data ); + }; + jQuery.parseXML = function ( data ) { + /// + /// Parses a string into an XML document. + /// + /// + /// a well-formed XML string to be parsed + /// + /// + + var xml, tmp; + if ( !data || typeof data !== "string" ) { + return null; + } + try { + if ( window.DOMParser ) { // Standard + tmp = new DOMParser(); + xml = tmp.parseFromString( data , "text/xml" ); + } else { // IE + xml = new ActiveXObject( "Microsoft.XMLDOM" ); + xml.async = "false"; + xml.loadXML( data ); + } + } catch( e ) { + xml = undefined; + } + if ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) { + jQuery.error( "Invalid XML: " + data ); + } + return xml; + }; + jQuery.post = function ( url, data, callback, type ) { + /// + /// Load data from the server using a HTTP POST request. + /// + /// + /// A string containing the URL to which the request is sent. + /// + /// + /// A map or string that is sent to the server with the request. + /// + /// + /// A callback function that is executed if the request succeeds. + /// + /// + /// The type of data expected from the server. Default: Intelligent Guess (xml, json, script, or html). + /// + + // shift arguments if data argument was omitted + if ( jQuery.isFunction( data ) ) { + type = type || callback; + callback = data; + data = undefined; + } + + return jQuery.ajax({ + type: method, + url: url, + data: data, + success: callback, + dataType: type + }); + }; + jQuery.prop = function ( elem, name, value ) { + + var ret, hooks, notxml, + nType = elem.nodeType; + + // don't get/set properties on text, comment and attribute nodes + if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); + + if ( notxml ) { + // Fix name and attach hooks + name = jQuery.propFix[ name ] || name; + hooks = jQuery.propHooks[ name ]; + } + + if ( value !== undefined ) { + if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) { + return ret; + + } else { + return ( elem[ name ] = value ); + } + + } else { + if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) { + return ret; + + } else { + return elem[ name ]; + } + } + }; + jQuery.propFix = { "tabindex": 'tabIndex', + "readonly": 'readOnly', + "for": 'htmlFor', + "class": 'className', + "maxlength": 'maxLength', + "cellspacing": 'cellSpacing', + "cellpadding": 'cellPadding', + "rowspan": 'rowSpan', + "colspan": 'colSpan', + "usemap": 'useMap', + "frameborder": 'frameBorder', + "contenteditable": 'contentEditable' }; + jQuery.propHooks = { "tabIndex": {} }; + jQuery.proxy = function ( fn, context ) { + /// + /// Takes a function and returns a new one that will always have a particular context. + /// 1 - jQuery.proxy(function, context) + /// 2 - jQuery.proxy(context, name) + /// + /// + /// The function whose context will be changed. + /// + /// + /// The object to which the context (this) of the function should be set. + /// + /// + + var tmp, args, proxy; + + if ( typeof context === "string" ) { + tmp = fn[ context ]; + context = fn; + fn = tmp; + } + + // Quick check to determine if target is callable, in the spec + // this throws a TypeError, but we will just return undefined. + if ( !jQuery.isFunction( fn ) ) { + return undefined; + } + + // Simulated bind + args = core_slice.call( arguments, 2 ); + proxy = function() { + return fn.apply( context, args.concat( core_slice.call( arguments ) ) ); + }; + + // Set the guid of unique handler to the same of original handler, so it can be removed + proxy.guid = fn.guid = fn.guid || proxy.guid || jQuery.guid++; + + return proxy; + }; + jQuery.queue = function ( elem, type, data ) { + /// + /// 1: Show the queue of functions to be executed on the matched element. + /// 1.1 - jQuery.queue(element, queueName) + /// 2: Manipulate the queue of functions to be executed on the matched element. + /// 2.1 - jQuery.queue(element, queueName, newQueue) + /// 2.2 - jQuery.queue(element, queueName, callback()) + /// + /// + /// A DOM element where the array of queued functions is attached. + /// + /// + /// A string containing the name of the queue. Defaults to fx, the standard effects queue. + /// + /// + /// An array of functions to replace the current queue contents. + /// + /// + + var queue; + + if ( elem ) { + type = ( type || "fx" ) + "queue"; + queue = jQuery._data( elem, type ); + + // Speed up dequeue by getting out quickly if this is just a lookup + if ( data ) { + if ( !queue || jQuery.isArray(data) ) { + queue = jQuery._data( elem, type, jQuery.makeArray(data) ); + } else { + queue.push( data ); + } + } + return queue || []; + } + }; + jQuery.ready = function ( wait ) { + + + // Abort if there are pending holds or we're already ready + if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { + return; + } + + // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). + if ( !document.body ) { + return setTimeout( jQuery.ready, 1 ); + } + + // Remember that the DOM is ready + jQuery.isReady = true; + + // If a normal DOM Ready event fired, decrement, and wait if need be + if ( wait !== true && --jQuery.readyWait > 0 ) { + return; + } + + // If there are functions bound, to execute + readyList.resolveWith( document, [ jQuery ] ); + + // Trigger any bound ready events + if ( jQuery.fn.trigger ) { + jQuery( document ).trigger("ready").off("ready"); + } + }; + jQuery.readyWait = 0; + jQuery.removeAttr = function ( elem, value ) { + + var propName, attrNames, name, isBool, + i = 0; + + if ( value && elem.nodeType === 1 ) { + + attrNames = value.split( core_rspace ); + + for ( ; i < attrNames.length; i++ ) { + name = attrNames[ i ]; + + if ( name ) { + propName = jQuery.propFix[ name ] || name; + isBool = rboolean.test( name ); + + // See #9699 for explanation of this approach (setting first, then removal) + // Do not do this for boolean attributes (see #10870) + if ( !isBool ) { + jQuery.attr( elem, name, "" ); + } + elem.removeAttribute( getSetAttribute ? name : propName ); + + // Set corresponding property to false for boolean attributes + if ( isBool && propName in elem ) { + elem[ propName ] = false; + } + } + } + } + }; + jQuery.removeData = function ( elem, name, pvt /* Internal Use Only */ ) { + /// + /// Remove a previously-stored piece of data. + /// + /// + /// A DOM element from which to remove data. + /// + /// + /// A string naming the piece of data to remove. + /// + /// + + if ( !jQuery.acceptData( elem ) ) { + return; + } + + var thisCache, i, l, + + isNode = elem.nodeType, + + // See jQuery.data for more information + cache = isNode ? jQuery.cache : elem, + id = isNode ? elem[ jQuery.expando ] : jQuery.expando; + + // If there is already no cache entry for this object, there is no + // purpose in continuing + if ( !cache[ id ] ) { + return; + } + + if ( name ) { + + thisCache = pvt ? cache[ id ] : cache[ id ].data; + + if ( thisCache ) { + + // Support array or space separated string names for data keys + if ( !jQuery.isArray( name ) ) { + + // try the string as a key before any manipulation + if ( name in thisCache ) { + name = [ name ]; + } else { + + // split the camel cased version by spaces unless a key with the spaces exists + name = jQuery.camelCase( name ); + if ( name in thisCache ) { + name = [ name ]; + } else { + name = name.split(" "); + } + } + } + + for ( i = 0, l = name.length; i < l; i++ ) { + delete thisCache[ name[i] ]; + } + + // If there is no data left in the cache, we want to continue + // and let the cache object itself get destroyed + if ( !( pvt ? isEmptyDataObject : jQuery.isEmptyObject )( thisCache ) ) { + return; + } + } + } + + // See jQuery.data for more information + if ( !pvt ) { + delete cache[ id ].data; + + // Don't destroy the parent cache unless the internal data object + // had been the only thing left in it + if ( !isEmptyDataObject( cache[ id ] ) ) { + return; + } + } + + // Destroy the cache + if ( isNode ) { + jQuery.cleanData( [ elem ], true ); + + // Use delete when supported for expandos or `cache` is not a window per isWindow (#10080) + } else if ( jQuery.support.deleteExpando || cache != cache.window ) { + delete cache[ id ]; + + // When all else fails, null + } else { + cache[ id ] = null; + } + }; + jQuery.removeEvent = function ( elem, type, handle ) { + + if ( elem.removeEventListener ) { + elem.removeEventListener( type, handle, false ); + } + }; + jQuery.sibling = function ( n, elem ) { + + var r = []; + + for ( ; n; n = n.nextSibling ) { + if ( n.nodeType === 1 && n !== elem ) { + r.push( n ); + } + } + + return r; + }; + jQuery.speed = function ( speed, easing, fn ) { + + var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { + complete: fn || !fn && easing || + jQuery.isFunction( speed ) && speed, + duration: speed, + easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing + }; + + opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ? opt.duration : + opt.duration in jQuery.fx.speeds ? jQuery.fx.speeds[ opt.duration ] : jQuery.fx.speeds._default; + + // normalize opt.queue - true/undefined/null -> "fx" + if ( opt.queue == null || opt.queue === true ) { + opt.queue = "fx"; + } + + // Queueing + opt.old = opt.complete; + + opt.complete = function() { + if ( jQuery.isFunction( opt.old ) ) { + opt.old.call( this ); + } + + if ( opt.queue ) { + jQuery.dequeue( this, opt.queue ); + } + }; + + return opt; + }; + jQuery.style = function ( elem, name, value, extra ) { + + // Don't set styles on text and comment nodes + if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { + return; + } + + // Make sure that we're working with the right name + var ret, type, hooks, + origName = jQuery.camelCase( name ), + style = elem.style; + + name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( style, origName ) ); + + // gets hook for the prefixed version + // followed by the unprefixed version + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // Check if we're setting a value + if ( value !== undefined ) { + type = typeof value; + + // convert relative number strings (+= or -=) to relative numbers. #7345 + if ( type === "string" && (ret = rrelNum.exec( value )) ) { + value = ( ret[1] + 1 ) * ret[2] + parseFloat( jQuery.css( elem, name ) ); + // Fixes bug #9237 + type = "number"; + } + + // Make sure that NaN and null values aren't set. See: #7116 + if ( value == null || type === "number" && isNaN( value ) ) { + return; + } + + // If a number was passed in, add 'px' to the (except for certain CSS properties) + if ( type === "number" && !jQuery.cssNumber[ origName ] ) { + value += "px"; + } + + // If a hook was provided, use that value, otherwise just set the specified value + if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value, extra )) !== undefined ) { + // Wrapped to prevent IE from throwing errors when 'invalid' values are provided + // Fixes bug #5509 + try { + style[ name ] = value; + } catch(e) {} + } + + } else { + // If a hook was provided get the non-computed value from there + if ( hooks && "get" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) { + return ret; + } + + // Otherwise just get the value from the style object + return style[ name ]; + } + }; + jQuery.sub = function () { + /// + /// Creates a new copy of jQuery whose properties and methods can be modified without affecting the original jQuery object. + /// + /// + + function jQuerySub( selector, context ) { + return new jQuerySub.fn.init( selector, context ); + } + jQuery.extend( true, jQuerySub, this ); + jQuerySub.superclass = this; + jQuerySub.fn = jQuerySub.prototype = this(); + jQuerySub.fn.constructor = jQuerySub; + jQuerySub.sub = this.sub; + jQuerySub.fn.init = function init( selector, context ) { + if ( context && context instanceof jQuery && !(context instanceof jQuerySub) ) { + context = jQuerySub( context ); + } + + return jQuery.fn.init.call( this, selector, context, rootjQuerySub ); + }; + jQuerySub.fn.init.prototype = jQuerySub.fn; + var rootjQuerySub = jQuerySub(document); + return jQuerySub; + }; + jQuery.support = { "leadingWhitespace": true, + "tbody": true, + "htmlSerialize": true, + "style": true, + "hrefNormalized": true, + "opacity": true, + "cssFloat": true, + "checkOn": true, + "optSelected": true, + "getSetAttribute": true, + "enctype": true, + "html5Clone": true, + "boxModel": true, + "submitBubbles": true, + "changeBubbles": true, + "focusinBubbles": false, + "deleteExpando": true, + "noCloneEvent": true, + "inlineBlockNeedsLayout": false, + "shrinkWrapBlocks": false, + "reliableMarginRight": true, + "boxSizingReliable": true, + "pixelPosition": false, + "noCloneChecked": true, + "optDisabled": true, + "radioValue": true, + "checkClone": true, + "appendChecked": true, + "ajax": true, + "cors": true, + "reliableHiddenOffsets": true, + "boxSizing": true, + "doesNotIncludeMarginInBodyOffset": true }; + jQuery.swap = function ( elem, options, callback ) { + + var ret, name, + old = {}; + + // Remember the old values, and insert the new ones + for ( name in options ) { + old[ name ] = elem.style[ name ]; + elem.style[ name ] = options[ name ]; + } + + ret = callback.call( elem ); + + // Revert the old values + for ( name in options ) { + elem.style[ name ] = old[ name ]; + } + + return ret; + }; + jQuery.text = function ( elem ) { + + var node, + ret = "", + i = 0, + nodeType = elem.nodeType; + + if ( nodeType ) { + if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { + // Use textContent for elements + // innerText usage removed for consistency of new lines (see #11153) + if ( typeof elem.textContent === "string" ) { + return elem.textContent; + } else { + // Traverse its children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + ret += getText( elem ); + } + } + } else if ( nodeType === 3 || nodeType === 4 ) { + return elem.nodeValue; + } + // Do not include comment or processing instruction nodes + } else { + + // If no nodeType, this is expected to be an array + for ( ; (node = elem[i]); i++ ) { + // Do not traverse comment nodes + ret += getText( node ); + } + } + return ret; + }; + jQuery.trim = function ( text ) { + /// + /// Remove the whitespace from the beginning and end of a string. + /// + /// + /// The string to trim. + /// + /// + + return text == null ? + "" : + core_trim.call( text ); + }; + jQuery.type = function ( obj ) { + /// + /// Determine the internal JavaScript [[Class]] of an object. + /// + /// + /// Object to get the internal JavaScript [[Class]] of. + /// + /// + + return obj == null ? + String( obj ) : + class2type[ core_toString.call(obj) ] || "object"; + }; + jQuery.uaMatch = function ( ua ) { + + ua = ua.toLowerCase(); + + var match = /(chrome)[ \/]([\w.]+)/.exec( ua ) || + /(webkit)[ \/]([\w.]+)/.exec( ua ) || + /(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua ) || + /(msie) ([\w.]+)/.exec( ua ) || + ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec( ua ) || + []; + + return { + browser: match[ 1 ] || "", + version: match[ 2 ] || "0" + }; + }; + jQuery.unique = function ( results ) { + /// + /// Sorts an array of DOM elements, in place, with the duplicates removed. Note that this only works on arrays of DOM elements, not strings or numbers. + /// + /// + /// The Array of DOM elements. + /// + /// + + var elem, + i = 1; + + if ( sortOrder ) { + hasDuplicate = baseHasDuplicate; + results.sort( sortOrder ); + + if ( hasDuplicate ) { + for ( ; (elem = results[i]); i++ ) { + if ( elem === results[ i - 1 ] ) { + results.splice( i--, 1 ); + } + } + } + } + + return results; + }; + jQuery.uuid = 0; + jQuery.valHooks = { "option": {}, + "select": {}, + "radio": {}, + "checkbox": {} }; + jQuery.when = function ( subordinate /* , ..., subordinateN */ ) { + /// + /// Provides a way to execute callback functions based on one or more objects, usually Deferred objects that represent asynchronous events. + /// + /// + /// One or more Deferred objects, or plain JavaScript objects. + /// + /// + + var i = 0, + resolveValues = core_slice.call( arguments ), + length = resolveValues.length, + + // the count of uncompleted subordinates + remaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0, + + // the master Deferred. If resolveValues consist of only a single Deferred, just use that. + deferred = remaining === 1 ? subordinate : jQuery.Deferred(), + + // Update function for both resolve and progress values + updateFunc = function( i, contexts, values ) { + return function( value ) { + contexts[ i ] = this; + values[ i ] = arguments.length > 1 ? core_slice.call( arguments ) : value; + if( values === progressValues ) { + deferred.notifyWith( contexts, values ); + } else if ( !( --remaining ) ) { + deferred.resolveWith( contexts, values ); + } + }; + }, + + progressValues, progressContexts, resolveContexts; + + // add listeners to Deferred subordinates; treat others as resolved + if ( length > 1 ) { + progressValues = new Array( length ); + progressContexts = new Array( length ); + resolveContexts = new Array( length ); + for ( ; i < length; i++ ) { + if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) { + resolveValues[ i ].promise() + .done( updateFunc( i, resolveContexts, resolveValues ) ) + .fail( deferred.reject ) + .progress( updateFunc( i, progressContexts, progressValues ) ); + } else { + --remaining; + } + } + } + + // if we're not waiting on anything, resolve the master + if ( !remaining ) { + deferred.resolveWith( resolveContexts, resolveValues ); + } + + return deferred.promise(); + }; + jQuery.Event.prototype.isDefaultPrevented = function returnFalse() { + /// + /// Returns whether event.preventDefault() was ever called on this event object. + /// + /// + + return false; + }; + jQuery.Event.prototype.isImmediatePropagationStopped = function returnFalse() { + /// + /// Returns whether event.stopImmediatePropagation() was ever called on this event object. + /// + /// + + return false; + }; + jQuery.Event.prototype.isPropagationStopped = function returnFalse() { + /// + /// Returns whether event.stopPropagation() was ever called on this event object. + /// + /// + + return false; + }; + jQuery.Event.prototype.preventDefault = function () { + /// + /// If this method is called, the default action of the event will not be triggered. + /// + /// + + this.isDefaultPrevented = returnTrue; + + var e = this.originalEvent; + if ( !e ) { + return; + } + + // if preventDefault exists run it on the original event + if ( e.preventDefault ) { + e.preventDefault(); + + // otherwise set the returnValue property of the original event to false (IE) + } else { + e.returnValue = false; + } + }; + jQuery.Event.prototype.stopImmediatePropagation = function () { + /// + /// Keeps the rest of the handlers from being executed and prevents the event from bubbling up the DOM tree. + /// + + this.isImmediatePropagationStopped = returnTrue; + this.stopPropagation(); + }; + jQuery.Event.prototype.stopPropagation = function () { + /// + /// Prevents the event from bubbling up the DOM tree, preventing any parent handlers from being notified of the event. + /// + + this.isPropagationStopped = returnTrue; + + var e = this.originalEvent; + if ( !e ) { + return; + } + // if stopPropagation exists run it on the original event + if ( e.stopPropagation ) { + e.stopPropagation(); + } + // otherwise set the cancelBubble property of the original event to true (IE) + e.cancelBubble = true; + }; + jQuery.prototype.add = function ( selector, context ) { + /// + /// Add elements to the set of matched elements. + /// 1 - add(selector) + /// 2 - add(elements) + /// 3 - add(html) + /// 4 - add(jQuery object) + /// 5 - add(selector, context) + /// + /// + /// A string representing a selector expression to find additional elements to add to the set of matched elements. + /// + /// + /// The point in the document at which the selector should begin matching; similar to the context argument of the $(selector, context) method. + /// + /// + + var set = typeof selector === "string" ? + jQuery( selector, context ) : + jQuery.makeArray( selector && selector.nodeType ? [ selector ] : selector ), + all = jQuery.merge( this.get(), set ); + + return this.pushStack( isDisconnected( set[0] ) || isDisconnected( all[0] ) ? + all : + jQuery.unique( all ) ); + }; + jQuery.prototype.addBack = function ( selector ) { + + return this.add( selector == null ? + this.prevObject : this.prevObject.filter(selector) + ); + }; + jQuery.prototype.addClass = function ( value ) { + /// + /// Adds the specified class(es) to each of the set of matched elements. + /// 1 - addClass(className) + /// 2 - addClass(function(index, currentClass)) + /// + /// + /// One or more class names to be added to the class attribute of each matched element. + /// + /// + + var classNames, i, l, elem, + setClass, c, cl; + + if ( jQuery.isFunction( value ) ) { + return this.each(function( j ) { + jQuery( this ).addClass( value.call(this, j, this.className) ); + }); + } + + if ( value && typeof value === "string" ) { + classNames = value.split( core_rspace ); + + for ( i = 0, l = this.length; i < l; i++ ) { + elem = this[ i ]; + + if ( elem.nodeType === 1 ) { + if ( !elem.className && classNames.length === 1 ) { + elem.className = value; + + } else { + setClass = " " + elem.className + " "; + + for ( c = 0, cl = classNames.length; c < cl; c++ ) { + if ( !~setClass.indexOf( " " + classNames[ c ] + " " ) ) { + setClass += classNames[ c ] + " "; + } + } + elem.className = jQuery.trim( setClass ); + } + } + } + } + + return this; + }; + jQuery.prototype.after = function () { + /// + /// Insert content, specified by the parameter, after each element in the set of matched elements. + /// 1 - after(content, content) + /// 2 - after(function(index)) + /// + /// + /// HTML string, DOM element, or jQuery object to insert after each element in the set of matched elements. + /// + /// + /// One or more additional DOM elements, arrays of elements, HTML strings, or jQuery objects to insert after each element in the set of matched elements. + /// + /// + + if ( !isDisconnected( this[0] ) ) { + return this.domManip(arguments, false, function( elem ) { + this.parentNode.insertBefore( elem, this.nextSibling ); + }); + } + + if ( arguments.length ) { + var set = jQuery.clean( arguments ); + return this.pushStack( jQuery.merge( this, set ), "after", this.selector ); + } + }; + jQuery.prototype.ajaxComplete = function ( f ){ + /// + /// Register a handler to be called when Ajax requests complete. This is an Ajax Event. + /// + /// + /// The function to be invoked. + /// + /// + + return this.on( o, f ); + }; + jQuery.prototype.ajaxError = function ( f ){ + /// + /// Register a handler to be called when Ajax requests complete with an error. This is an Ajax Event. + /// + /// + /// The function to be invoked. + /// + /// + + return this.on( o, f ); + }; + jQuery.prototype.ajaxSend = function ( f ){ + /// + /// Attach a function to be executed before an Ajax request is sent. This is an Ajax Event. + /// + /// + /// The function to be invoked. + /// + /// + + return this.on( o, f ); + }; + jQuery.prototype.ajaxStart = function ( f ){ + /// + /// Register a handler to be called when the first Ajax request begins. This is an Ajax Event. + /// + /// + /// The function to be invoked. + /// + /// + + return this.on( o, f ); + }; + jQuery.prototype.ajaxStop = function ( f ){ + /// + /// Register a handler to be called when all Ajax requests have completed. This is an Ajax Event. + /// + /// + /// The function to be invoked. + /// + /// + + return this.on( o, f ); + }; + jQuery.prototype.ajaxSuccess = function ( f ){ + /// + /// Attach a function to be executed whenever an Ajax request completes successfully. This is an Ajax Event. + /// + /// + /// The function to be invoked. + /// + /// + + return this.on( o, f ); + }; + jQuery.prototype.andSelf = function ( selector ) { + /// + /// Add the previous set of elements on the stack to the current set. + /// + /// + + return this.add( selector == null ? + this.prevObject : this.prevObject.filter(selector) + ); + }; + jQuery.prototype.animate = function ( prop, speed, easing, callback ) { + /// + /// Perform a custom animation of a set of CSS properties. + /// 1 - animate(properties, duration, easing, complete) + /// 2 - animate(properties, options) + /// + /// + /// A map of CSS properties that the animation will move toward. + /// + /// + /// A string or number determining how long the animation will run. + /// + /// + /// A string indicating which easing function to use for the transition. + /// + /// + /// A function to call once the animation is complete. + /// + /// + + var empty = jQuery.isEmptyObject( prop ), + optall = jQuery.speed( speed, easing, callback ), + doAnimation = function() { + // Operate on a copy of prop so per-property easing won't be lost + var anim = Animation( this, jQuery.extend( {}, prop ), optall ); + + // Empty animations resolve immediately + if ( empty ) { + anim.stop( true ); + } + }; + + return empty || optall.queue === false ? + this.each( doAnimation ) : + this.queue( optall.queue, doAnimation ); + }; + jQuery.prototype.append = function () { + /// + /// Insert content, specified by the parameter, to the end of each element in the set of matched elements. + /// 1 - append(content, content) + /// 2 - append(function(index, html)) + /// + /// + /// DOM element, HTML string, or jQuery object to insert at the end of each element in the set of matched elements. + /// + /// + /// One or more additional DOM elements, arrays of elements, HTML strings, or jQuery objects to insert at the end of each element in the set of matched elements. + /// + /// + + return this.domManip(arguments, true, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 ) { + this.appendChild( elem ); + } + }); + }; + jQuery.prototype.appendTo = function ( selector ) { + /// + /// Insert every element in the set of matched elements to the end of the target. + /// + /// + /// A selector, element, HTML string, or jQuery object; the matched set of elements will be inserted at the end of the element(s) specified by this parameter. + /// + /// + + var elems, + i = 0, + ret = [], + insert = jQuery( selector ), + l = insert.length, + parent = this.length === 1 && this[0].parentNode; + + if ( (parent == null || parent && parent.nodeType === 11 && parent.childNodes.length === 1) && l === 1 ) { + insert[ original ]( this[0] ); + return this; + } else { + for ( ; i < l; i++ ) { + elems = ( i > 0 ? this.clone(true) : this ).get(); + jQuery( insert[i] )[ original ]( elems ); + ret = ret.concat( elems ); + } + + return this.pushStack( ret, name, insert.selector ); + } + }; + jQuery.prototype.attr = function ( name, value ) { + /// + /// 1: Get the value of an attribute for the first element in the set of matched elements. + /// 1.1 - attr(attributeName) + /// 2: Set one or more attributes for the set of matched elements. + /// 2.1 - attr(attributeName, value) + /// 2.2 - attr(map) + /// 2.3 - attr(attributeName, function(index, attr)) + /// + /// + /// The name of the attribute to set. + /// + /// + /// A value to set for the attribute. + /// + /// + + return jQuery.access( this, jQuery.attr, name, value, arguments.length > 1 ); + }; + jQuery.prototype.before = function () { + /// + /// Insert content, specified by the parameter, before each element in the set of matched elements. + /// 1 - before(content, content) + /// 2 - before(function) + /// + /// + /// HTML string, DOM element, or jQuery object to insert before each element in the set of matched elements. + /// + /// + /// One or more additional DOM elements, arrays of elements, HTML strings, or jQuery objects to insert before each element in the set of matched elements. + /// + /// + + if ( !isDisconnected( this[0] ) ) { + return this.domManip(arguments, false, function( elem ) { + this.parentNode.insertBefore( elem, this ); + }); + } + + if ( arguments.length ) { + var set = jQuery.clean( arguments ); + return this.pushStack( jQuery.merge( set, this ), "before", this.selector ); + } + }; + jQuery.prototype.bind = function ( types, data, fn ) { + /// + /// Attach a handler to an event for the elements. + /// 1 - bind(eventType, eventData, handler(eventObject)) + /// 2 - bind(eventType, eventData, preventBubble) + /// 3 - bind(events) + /// + /// + /// A string containing one or more DOM event types, such as "click" or "submit," or custom event names. + /// + /// + /// A map of data that will be passed to the event handler. + /// + /// + /// A function to execute each time the event is triggered. + /// + /// + + return this.on( types, null, data, fn ); + }; + jQuery.prototype.blur = function ( data, fn ) { + /// + /// Bind an event handler to the "blur" JavaScript event, or trigger that event on an element. + /// 1 - blur(handler(eventObject)) + /// 2 - blur(eventData, handler(eventObject)) + /// 3 - blur() + /// + /// + /// A map of data that will be passed to the event handler. + /// + /// + /// A function to execute each time the event is triggered. + /// + /// + + if ( fn == null ) { + fn = data; + data = null; + } + + return arguments.length > 0 ? + this.on( name, null, data, fn ) : + this.trigger( name ); + }; + jQuery.prototype.change = function ( data, fn ) { + /// + /// Bind an event handler to the "change" JavaScript event, or trigger that event on an element. + /// 1 - change(handler(eventObject)) + /// 2 - change(eventData, handler(eventObject)) + /// 3 - change() + /// + /// + /// A map of data that will be passed to the event handler. + /// + /// + /// A function to execute each time the event is triggered. + /// + /// + + if ( fn == null ) { + fn = data; + data = null; + } + + return arguments.length > 0 ? + this.on( name, null, data, fn ) : + this.trigger( name ); + }; + jQuery.prototype.children = function ( until, selector ) { + /// + /// Get the children of each element in the set of matched elements, optionally filtered by a selector. + /// + /// + /// A string containing a selector expression to match elements against. + /// + /// + + var ret = jQuery.map( this, fn, until ); + + if ( !runtil.test( name ) ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + ret = jQuery.filter( selector, ret ); + } + + ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret; + + if ( this.length > 1 && rparentsprev.test( name ) ) { + ret = ret.reverse(); + } + + return this.pushStack( ret, name, core_slice.call( arguments ).join(",") ); + }; + jQuery.prototype.clearQueue = function ( type ) { + /// + /// Remove from the queue all items that have not yet been run. + /// + /// + /// A string containing the name of the queue. Defaults to fx, the standard effects queue. + /// + /// + + return this.queue( type || "fx", [] ); + }; + jQuery.prototype.click = function ( data, fn ) { + /// + /// Bind an event handler to the "click" JavaScript event, or trigger that event on an element. + /// 1 - click(handler(eventObject)) + /// 2 - click(eventData, handler(eventObject)) + /// 3 - click() + /// + /// + /// A map of data that will be passed to the event handler. + /// + /// + /// A function to execute each time the event is triggered. + /// + /// + + if ( fn == null ) { + fn = data; + data = null; + } + + return arguments.length > 0 ? + this.on( name, null, data, fn ) : + this.trigger( name ); + }; + jQuery.prototype.clone = function ( dataAndEvents, deepDataAndEvents ) { + /// + /// Create a deep copy of the set of matched elements. + /// 1 - clone(withDataAndEvents) + /// 2 - clone(withDataAndEvents, deepWithDataAndEvents) + /// + /// + /// A Boolean indicating whether event handlers and data should be copied along with the elements. The default value is false. *In jQuery 1.5.0 the default value was incorrectly true; it was changed back to false in 1.5.1 and up. + /// + /// + /// A Boolean indicating whether event handlers and data for all children of the cloned element should be copied. By default its value matches the first argument's value (which defaults to false). + /// + /// + + dataAndEvents = dataAndEvents == null ? false : dataAndEvents; + deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; + + return this.map( function () { + return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); + }); + }; + jQuery.prototype.closest = function ( selectors, context ) { + /// + /// 1: Get the first element that matches the selector, beginning at the current element and progressing up through the DOM tree. + /// 1.1 - closest(selector) + /// 1.2 - closest(selector, context) + /// 1.3 - closest(jQuery object) + /// 1.4 - closest(element) + /// 2: Gets an array of all the elements and selectors matched against the current element up through the DOM tree. + /// 2.1 - closest(selectors, context) + /// + /// + /// A string containing a selector expression to match elements against. + /// + /// + /// A DOM element within which a matching element may be found. If no context is passed in then the context of the jQuery set will be used instead. + /// + /// + + var cur, + i = 0, + l = this.length, + ret = [], + pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ? + jQuery( selectors, context || this.context ) : + 0; + + for ( ; i < l; i++ ) { + cur = this[i]; + + while ( cur && cur.ownerDocument && cur !== context && cur.nodeType !== 11 ) { + if ( pos ? pos.index(cur) > -1 : jQuery.find.matchesSelector(cur, selectors) ) { + ret.push( cur ); + break; + } + cur = cur.parentNode; + } + } + + ret = ret.length > 1 ? jQuery.unique( ret ) : ret; + + return this.pushStack( ret, "closest", selectors ); + }; + jQuery.prototype.constructor = function ( selector, context ) { + + // The jQuery object is actually just the init constructor 'enhanced' + return new jQuery.fn.init( selector, context, rootjQuery ); + }; + jQuery.prototype.contents = function ( until, selector ) { + /// + /// Get the children of each element in the set of matched elements, including text and comment nodes. + /// + /// + + var ret = jQuery.map( this, fn, until ); + + if ( !runtil.test( name ) ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + ret = jQuery.filter( selector, ret ); + } + + ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret; + + if ( this.length > 1 && rparentsprev.test( name ) ) { + ret = ret.reverse(); + } + + return this.pushStack( ret, name, core_slice.call( arguments ).join(",") ); + }; + jQuery.prototype.contextmenu = function ( data, fn ) { + + if ( fn == null ) { + fn = data; + data = null; + } + + return arguments.length > 0 ? + this.on( name, null, data, fn ) : + this.trigger( name ); + }; + jQuery.prototype.css = function ( name, value ) { + /// + /// 1: Get the value of a style property for the first element in the set of matched elements. + /// 1.1 - css(propertyName) + /// 2: Set one or more CSS properties for the set of matched elements. + /// 2.1 - css(propertyName, value) + /// 2.2 - css(propertyName, function(index, value)) + /// 2.3 - css(map) + /// + /// + /// A CSS property name. + /// + /// + /// A value to set for the property. + /// + /// + + return jQuery.access( this, function( elem, name, value ) { + return value !== undefined ? + jQuery.style( elem, name, value ) : + jQuery.css( elem, name ); + }, name, value, arguments.length > 1 ); + }; + jQuery.prototype.data = function ( key, value ) { + /// + /// 1: Store arbitrary data associated with the matched elements. + /// 1.1 - data(key, value) + /// 1.2 - data(obj) + /// 2: Returns value at named data store for the first element in the jQuery collection, as set by data(name, value). + /// 2.1 - data(key) + /// 2.2 - data() + /// + /// + /// A string naming the piece of data to set. + /// + /// + /// The new data value; it can be any Javascript type including Array or Object. + /// + /// + + var parts, part, attr, name, l, + elem = this[0], + i = 0, + data = null; + + // Gets all values + if ( key === undefined ) { + if ( this.length ) { + data = jQuery.data( elem ); + + if ( elem.nodeType === 1 && !jQuery._data( elem, "parsedAttrs" ) ) { + attr = elem.attributes; + for ( l = attr.length; i < l; i++ ) { + name = attr[i].name; + + if ( name.indexOf( "data-" ) === 0 ) { + name = jQuery.camelCase( name.substring(5) ); + + dataAttr( elem, name, data[ name ] ); + } + } + jQuery._data( elem, "parsedAttrs", true ); + } + } + + return data; + } + + // Sets multiple values + if ( typeof key === "object" ) { + return this.each(function() { + jQuery.data( this, key ); + }); + } + + parts = key.split( ".", 2 ); + parts[1] = parts[1] ? "." + parts[1] : ""; + part = parts[1] + "!"; + + return jQuery.access( this, function( value ) { + + if ( value === undefined ) { + data = this.triggerHandler( "getData" + part, [ parts[0] ] ); + + // Try to fetch any internally stored data first + if ( data === undefined && elem ) { + data = jQuery.data( elem, key ); + data = dataAttr( elem, key, data ); + } + + return data === undefined && parts[1] ? + this.data( parts[0] ) : + data; + } + + parts[1] = value; + this.each(function() { + var self = jQuery( this ); + + self.triggerHandler( "setData" + part, parts ); + jQuery.data( this, key, value ); + self.triggerHandler( "changeData" + part, parts ); + }); + }, null, value, arguments.length > 1, null, false ); + }; + jQuery.prototype.dblclick = function ( data, fn ) { + /// + /// Bind an event handler to the "dblclick" JavaScript event, or trigger that event on an element. + /// 1 - dblclick(handler(eventObject)) + /// 2 - dblclick(eventData, handler(eventObject)) + /// 3 - dblclick() + /// + /// + /// A map of data that will be passed to the event handler. + /// + /// + /// A function to execute each time the event is triggered. + /// + /// + + if ( fn == null ) { + fn = data; + data = null; + } + + return arguments.length > 0 ? + this.on( name, null, data, fn ) : + this.trigger( name ); + }; + jQuery.prototype.delay = function ( time, type ) { + /// + /// Set a timer to delay execution of subsequent items in the queue. + /// + /// + /// An integer indicating the number of milliseconds to delay execution of the next item in the queue. + /// + /// + /// A string containing the name of the queue. Defaults to fx, the standard effects queue. + /// + /// + + time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; + type = type || "fx"; + + return this.queue( type, function( next, hooks ) { + var timeout = setTimeout( next, time ); + hooks.stop = function() { + clearTimeout( timeout ); + }; + }); + }; + jQuery.prototype.delegate = function ( selector, types, data, fn ) { + /// + /// Attach a handler to one or more events for all elements that match the selector, now or in the future, based on a specific set of root elements. + /// 1 - delegate(selector, eventType, handler) + /// 2 - delegate(selector, eventType, eventData, handler) + /// 3 - delegate(selector, events) + /// + /// + /// A selector to filter the elements that trigger the event. + /// + /// + /// A string containing one or more space-separated JavaScript event types, such as "click" or "keydown," or custom event names. + /// + /// + /// A map of data that will be passed to the event handler. + /// + /// + /// A function to execute at the time the event is triggered. + /// + /// + + return this.on( types, selector, data, fn ); + }; + jQuery.prototype.dequeue = function ( type ) { + /// + /// Execute the next function on the queue for the matched elements. + /// + /// + /// A string containing the name of the queue. Defaults to fx, the standard effects queue. + /// + /// + + return this.each(function() { + jQuery.dequeue( this, type ); + }); + }; + jQuery.prototype.detach = function ( selector ) { + /// + /// Remove the set of matched elements from the DOM. + /// + /// + /// A selector expression that filters the set of matched elements to be removed. + /// + /// + + return this.remove( selector, true ); + }; + jQuery.prototype.die = function ( types, fn ) { + /// + /// 1: Remove all event handlers previously attached using .live() from the elements. + /// 1.1 - die() + /// 2: Remove an event handler previously attached using .live() from the elements. + /// 2.1 - die(eventType, handler) + /// 2.2 - die(eventTypes) + /// + /// + /// A string containing a JavaScript event type, such as click or keydown. + /// + /// + /// The function that is no longer to be executed. + /// + /// + + jQuery( this.context ).off( types, this.selector || "**", fn ); + return this; + }; + jQuery.prototype.domManip = function ( args, table, callback ) { + + + // Flatten any nested arrays + args = [].concat.apply( [], args ); + + var results, first, fragment, iNoClone, + i = 0, + value = args[0], + scripts = [], + l = this.length; + + // We can't cloneNode fragments that contain checked, in WebKit + if ( !jQuery.support.checkClone && l > 1 && typeof value === "string" && rchecked.test( value ) ) { + return this.each(function() { + jQuery(this).domManip( args, table, callback ); + }); + } + + if ( jQuery.isFunction(value) ) { + return this.each(function(i) { + var self = jQuery(this); + args[0] = value.call( this, i, table ? self.html() : undefined ); + self.domManip( args, table, callback ); + }); + } + + if ( this[0] ) { + results = jQuery.buildFragment( args, this, scripts ); + fragment = results.fragment; + first = fragment.firstChild; + + if ( fragment.childNodes.length === 1 ) { + fragment = first; + } + + if ( first ) { + table = table && jQuery.nodeName( first, "tr" ); + + // Use the original fragment for the last item instead of the first because it can end up + // being emptied incorrectly in certain situations (#8070). + // Fragments from the fragment cache must always be cloned and never used in place. + for ( iNoClone = results.cacheable || l - 1; i < l; i++ ) { + callback.call( + table && jQuery.nodeName( this[i], "table" ) ? + findOrAppend( this[i], "tbody" ) : + this[i], + i === iNoClone ? + fragment : + jQuery.clone( fragment, true, true ) + ); + } + } + + // Fix #11809: Avoid leaking memory + fragment = first = null; + + if ( scripts.length ) { + jQuery.each( scripts, function( i, elem ) { + if ( elem.src ) { + if ( jQuery.ajax ) { + jQuery.ajax({ + url: elem.src, + type: "GET", + dataType: "script", + async: false, + global: false, + "throws": true + }); + } else { + jQuery.error("no ajax"); + } + } else { + jQuery.globalEval( ( elem.text || elem.textContent || elem.innerHTML || "" ).replace( rcleanScript, "" ) ); + } + + if ( elem.parentNode ) { + elem.parentNode.removeChild( elem ); + } + }); + } + } + + return this; + }; + jQuery.prototype.each = function ( callback, args ) { + /// + /// Iterate over a jQuery object, executing a function for each matched element. + /// + /// + /// A function to execute for each matched element. + /// + /// + + return jQuery.each( this, callback, args ); + }; + jQuery.prototype.empty = function () { + /// + /// Remove all child nodes of the set of matched elements from the DOM. + /// + /// + + var elem, + i = 0; + + for ( ; (elem = this[i]) != null; i++ ) { + // Remove element nodes and prevent memory leaks + if ( elem.nodeType === 1 ) { + jQuery.cleanData( elem.getElementsByTagName("*") ); + } + + // Remove any remaining nodes + while ( elem.firstChild ) { + elem.removeChild( elem.firstChild ); + } + } + + return this; + }; + jQuery.prototype.end = function () { + /// + /// End the most recent filtering operation in the current chain and return the set of matched elements to its previous state. + /// + /// + + return this.prevObject || this.constructor(null); + }; + jQuery.prototype.eq = function ( i ) { + /// + /// Reduce the set of matched elements to the one at the specified index. + /// 1 - eq(index) + /// 2 - eq(-index) + /// + /// + /// An integer indicating the 0-based position of the element. + /// + /// + + i = +i; + return i === -1 ? + this.slice( i ) : + this.slice( i, i + 1 ); + }; + jQuery.prototype.error = function ( data, fn ) { + /// + /// Bind an event handler to the "error" JavaScript event. + /// 1 - error(handler(eventObject)) + /// 2 - error(eventData, handler(eventObject)) + /// + /// + /// A map of data that will be passed to the event handler. + /// + /// + /// A function to execute each time the event is triggered. + /// + /// + + if ( fn == null ) { + fn = data; + data = null; + } + + return arguments.length > 0 ? + this.on( name, null, data, fn ) : + this.trigger( name ); + }; + jQuery.prototype.extend = function () { + + var options, name, src, copy, copyIsArray, clone, + target = arguments[0] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + target = arguments[1] || {}; + // skip the boolean and the target + i = 2; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !jQuery.isFunction(target) ) { + target = {}; + } + + // extend jQuery itself if only one argument is passed + if ( length === i ) { + target = this; + --i; + } + + for ( ; i < length; i++ ) { + // Only deal with non-null/undefined values + if ( (options = arguments[ i ]) != null ) { + // Extend the base object + for ( name in options ) { + src = target[ name ]; + copy = options[ name ]; + + // Prevent never-ending loop + if ( target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) { + if ( copyIsArray ) { + copyIsArray = false; + clone = src && jQuery.isArray(src) ? src : []; + + } else { + clone = src && jQuery.isPlainObject(src) ? src : {}; + } + + // Never move original objects, clone them + target[ name ] = jQuery.extend( deep, clone, copy ); + + // Don't bring in undefined values + } else if ( copy !== undefined ) { + target[ name ] = copy; + } + } + } + } + + // Return the modified object + return target; + }; + jQuery.prototype.fadeIn = function ( speed, easing, callback ) { + /// + /// Display the matched elements by fading them to opaque. + /// 1 - fadeIn(duration, callback) + /// 2 - fadeIn(duration, easing, callback) + /// + /// + /// A string or number determining how long the animation will run. + /// + /// + /// A string indicating which easing function to use for the transition. + /// + /// + /// A function to call once the animation is complete. + /// + /// + + return this.animate( props, speed, easing, callback ); + }; + jQuery.prototype.fadeOut = function ( speed, easing, callback ) { + /// + /// Hide the matched elements by fading them to transparent. + /// 1 - fadeOut(duration, callback) + /// 2 - fadeOut(duration, easing, callback) + /// + /// + /// A string or number determining how long the animation will run. + /// + /// + /// A string indicating which easing function to use for the transition. + /// + /// + /// A function to call once the animation is complete. + /// + /// + + return this.animate( props, speed, easing, callback ); + }; + jQuery.prototype.fadeTo = function ( speed, to, easing, callback ) { + /// + /// Adjust the opacity of the matched elements. + /// 1 - fadeTo(duration, opacity, callback) + /// 2 - fadeTo(duration, opacity, easing, callback) + /// + /// + /// A string or number determining how long the animation will run. + /// + /// + /// A number between 0 and 1 denoting the target opacity. + /// + /// + /// A string indicating which easing function to use for the transition. + /// + /// + /// A function to call once the animation is complete. + /// + /// + + + // show any hidden elements after setting opacity to 0 + return this.filter( isHidden ).css( "opacity", 0 ).show() + + // animate to the value specified + .end().animate({ opacity: to }, speed, easing, callback ); + }; + jQuery.prototype.fadeToggle = function ( speed, easing, callback ) { + /// + /// Display or hide the matched elements by animating their opacity. + /// + /// + /// A string or number determining how long the animation will run. + /// + /// + /// A string indicating which easing function to use for the transition. + /// + /// + /// A function to call once the animation is complete. + /// + /// + + return this.animate( props, speed, easing, callback ); + }; + jQuery.prototype.filter = function ( selector ) { + /// + /// Reduce the set of matched elements to those that match the selector or pass the function's test. + /// 1 - filter(selector) + /// 2 - filter(function(index)) + /// 3 - filter(element) + /// 4 - filter(jQuery object) + /// + /// + /// A string containing a selector expression to match the current set of elements against. + /// + /// + + return this.pushStack( winnow(this, selector, true), "filter", selector ); + }; + jQuery.prototype.find = function ( selector ) { + /// + /// Get the descendants of each element in the current set of matched elements, filtered by a selector, jQuery object, or element. + /// 1 - find(selector) + /// 2 - find(jQuery object) + /// 3 - find(element) + /// + /// + /// A string containing a selector expression to match elements against. + /// + /// + + var i, l, length, n, r, ret, + self = this; + + if ( typeof selector !== "string" ) { + return jQuery( selector ).filter(function() { + for ( i = 0, l = self.length; i < l; i++ ) { + if ( jQuery.contains( self[ i ], this ) ) { + return true; + } + } + }); + } + + ret = this.pushStack( "", "find", selector ); + + for ( i = 0, l = this.length; i < l; i++ ) { + length = ret.length; + jQuery.find( selector, this[i], ret ); + + if ( i > 0 ) { + // Make sure that the results are unique + for ( n = length; n < ret.length; n++ ) { + for ( r = 0; r < length; r++ ) { + if ( ret[r] === ret[n] ) { + ret.splice(n--, 1); + break; + } + } + } + } + } + + return ret; + }; + jQuery.prototype.first = function () { + /// + /// Reduce the set of matched elements to the first in the set. + /// + /// + + return this.eq( 0 ); + }; + jQuery.prototype.focus = function ( data, fn ) { + /// + /// Bind an event handler to the "focus" JavaScript event, or trigger that event on an element. + /// 1 - focus(handler(eventObject)) + /// 2 - focus(eventData, handler(eventObject)) + /// 3 - focus() + /// + /// + /// A map of data that will be passed to the event handler. + /// + /// + /// A function to execute each time the event is triggered. + /// + /// + + if ( fn == null ) { + fn = data; + data = null; + } + + return arguments.length > 0 ? + this.on( name, null, data, fn ) : + this.trigger( name ); + }; + jQuery.prototype.focusin = function ( data, fn ) { + /// + /// Bind an event handler to the "focusin" event. + /// 1 - focusin(handler(eventObject)) + /// 2 - focusin(eventData, handler(eventObject)) + /// + /// + /// A map of data that will be passed to the event handler. + /// + /// + /// A function to execute each time the event is triggered. + /// + /// + + if ( fn == null ) { + fn = data; + data = null; + } + + return arguments.length > 0 ? + this.on( name, null, data, fn ) : + this.trigger( name ); + }; + jQuery.prototype.focusout = function ( data, fn ) { + /// + /// Bind an event handler to the "focusout" JavaScript event. + /// 1 - focusout(handler(eventObject)) + /// 2 - focusout(eventData, handler(eventObject)) + /// + /// + /// A map of data that will be passed to the event handler. + /// + /// + /// A function to execute each time the event is triggered. + /// + /// + + if ( fn == null ) { + fn = data; + data = null; + } + + return arguments.length > 0 ? + this.on( name, null, data, fn ) : + this.trigger( name ); + }; + jQuery.prototype.get = function ( num ) { + /// + /// Retrieve the DOM elements matched by the jQuery object. + /// + /// + /// A zero-based integer indicating which element to retrieve. + /// + /// + + return num == null ? + + // Return a 'clean' array + this.toArray() : + + // Return just the object + ( num < 0 ? this[ this.length + num ] : this[ num ] ); + }; + jQuery.prototype.has = function ( target ) { + /// + /// Reduce the set of matched elements to those that have a descendant that matches the selector or DOM element. + /// 1 - has(selector) + /// 2 - has(contained) + /// + /// + /// A string containing a selector expression to match elements against. + /// + /// + + var i, + targets = jQuery( target, this ), + len = targets.length; + + return this.filter(function() { + for ( i = 0; i < len; i++ ) { + if ( jQuery.contains( this, targets[i] ) ) { + return true; + } + } + }); + }; + jQuery.prototype.hasClass = function ( selector ) { + /// + /// Determine whether any of the matched elements are assigned the given class. + /// + /// + /// The class name to search for. + /// + /// + + var className = " " + selector + " ", + i = 0, + l = this.length; + for ( ; i < l; i++ ) { + if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) > -1 ) { + return true; + } + } + + return false; + }; + jQuery.prototype.height = function ( margin, value ) { + /// + /// 1: Get the current computed height for the first element in the set of matched elements. + /// 1.1 - height() + /// 2: Set the CSS height of every matched element. + /// 2.1 - height(value) + /// 2.2 - height(function(index, height)) + /// + /// + /// An integer representing the number of pixels, or an integer with an optional unit of measure appended (as a string). + /// + /// + + var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ), + extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" ); + + return jQuery.access( this, function( elem, type, value ) { + var doc; + + if ( jQuery.isWindow( elem ) ) { + // As of 5/8/2012 this will yield incorrect results for Mobile Safari, but there + // isn't a whole lot we can do. See pull request at this URL for discussion: + // https://github.com/jquery/jquery/pull/764 + return elem.document.documentElement[ "client" + name ]; + } + + // Get document width or height + if ( elem.nodeType === 9 ) { + doc = elem.documentElement; + + // Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height], whichever is greatest + // unfortunately, this causes bug #3838 in IE6/8 only, but there is currently no good, small way to fix it. + return Math.max( + elem.body[ "scroll" + name ], doc[ "scroll" + name ], + elem.body[ "offset" + name ], doc[ "offset" + name ], + doc[ "client" + name ] + ); + } + + return value === undefined ? + // Get width or height on the element, requesting but not forcing parseFloat + jQuery.css( elem, type, value, extra ) : + + // Set width or height on the element + jQuery.style( elem, type, value, extra ); + }, type, chainable ? margin : undefined, chainable ); + }; + jQuery.prototype.hide = function ( speed, easing, callback ) { + /// + /// Hide the matched elements. + /// 1 - hide() + /// 2 - hide(duration, callback) + /// 3 - hide(duration, easing, callback) + /// + /// + /// A string or number determining how long the animation will run. + /// + /// + /// A string indicating which easing function to use for the transition. + /// + /// + /// A function to call once the animation is complete. + /// + /// + + return speed == null || typeof speed === "boolean" || + // special check for .toggle( handler, handler, ... ) + ( !i && jQuery.isFunction( speed ) && jQuery.isFunction( easing ) ) ? + cssFn.apply( this, arguments ) : + this.animate( genFx( name, true ), speed, easing, callback ); + }; + jQuery.prototype.hover = function ( fnOver, fnOut ) { + /// + /// 1: Bind two handlers to the matched elements, to be executed when the mouse pointer enters and leaves the elements. + /// 1.1 - hover(handlerIn(eventObject), handlerOut(eventObject)) + /// 2: Bind a single handler to the matched elements, to be executed when the mouse pointer enters or leaves the elements. + /// 2.1 - hover(handlerInOut(eventObject)) + /// + /// + /// A function to execute when the mouse pointer enters the element. + /// + /// + /// A function to execute when the mouse pointer leaves the element. + /// + /// + + return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); + }; + jQuery.prototype.html = function ( value ) { + /// + /// 1: Get the HTML contents of the first element in the set of matched elements. + /// 1.1 - html() + /// 2: Set the HTML contents of each element in the set of matched elements. + /// 2.1 - html(htmlString) + /// 2.2 - html(function(index, oldhtml)) + /// + /// + /// A string of HTML to set as the content of each matched element. + /// + /// + + return jQuery.access( this, function( value ) { + var elem = this[0] || {}, + i = 0, + l = this.length; + + if ( value === undefined ) { + return elem.nodeType === 1 ? + elem.innerHTML.replace( rinlinejQuery, "" ) : + undefined; + } + + // See if we can take a shortcut and just use innerHTML + if ( typeof value === "string" && !rnoInnerhtml.test( value ) && + ( jQuery.support.htmlSerialize || !rnoshimcache.test( value ) ) && + ( jQuery.support.leadingWhitespace || !rleadingWhitespace.test( value ) ) && + !wrapMap[ ( rtagName.exec( value ) || ["", ""] )[1].toLowerCase() ] ) { + + value = value.replace( rxhtmlTag, "<$1>" ); + + try { + for (; i < l; i++ ) { + // Remove element nodes and prevent memory leaks + elem = this[i] || {}; + if ( elem.nodeType === 1 ) { + jQuery.cleanData( elem.getElementsByTagName( "*" ) ); + elem.innerHTML = value; + } + } + + elem = 0; + + // If using innerHTML throws an exception, use the fallback method + } catch(e) {} + } + + if ( elem ) { + this.empty().append( value ); + } + }, null, value, arguments.length ); + }; + jQuery.prototype.index = function ( elem ) { + /// + /// Search for a given element from among the matched elements. + /// 1 - index() + /// 2 - index(selector) + /// 3 - index(element) + /// + /// + /// A selector representing a jQuery collection in which to look for an element. + /// + /// + + + // No argument, return index in parent + if ( !elem ) { + return ( this[0] && this[0].parentNode ) ? this.prevAll().length : -1; + } + + // index in selector + if ( typeof elem === "string" ) { + return jQuery.inArray( this[0], jQuery( elem ) ); + } + + // Locate the position of the desired element + return jQuery.inArray( + // If it receives a jQuery object, the first element is used + elem.jquery ? elem[0] : elem, this ); + }; + jQuery.prototype.init = function ( selector, context, rootjQuery ) { + + var match, elem, ret, doc; + + // Handle $(""), $(null), $(undefined), $(false) + if ( !selector ) { + return this; + } + + // Handle $(DOMElement) + if ( selector.nodeType ) { + this.context = this[0] = selector; + this.length = 1; + return this; + } + + // Handle HTML strings + if ( typeof selector === "string" ) { + if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) { + // Assume that strings that start and end with <> are HTML and skip the regex check + match = [ null, selector, null ]; + + } else { + match = rquickExpr.exec( selector ); + } + + // Match html or make sure no context is specified for #id + if ( match && (match[1] || !context) ) { + + // HANDLE: $(html) -> $(array) + if ( match[1] ) { + context = context instanceof jQuery ? context[0] : context; + doc = ( context && context.nodeType ? context.ownerDocument || context : document ); + + // scripts is true for back-compat + selector = jQuery.parseHTML( match[1], doc, true ); + if ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) { + this.attr.call( selector, context, true ); + } + + return jQuery.merge( this, selector ); + + // HANDLE: $(#id) + } else { + elem = document.getElementById( match[2] ); + + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + if ( elem && elem.parentNode ) { + // Handle the case where IE and Opera return items + // by name instead of ID + if ( elem.id !== match[2] ) { + return rootjQuery.find( selector ); + } + + // Otherwise, we inject the element directly into the jQuery object + this.length = 1; + this[0] = elem; + } + + this.context = document; + this.selector = selector; + return this; + } + + // HANDLE: $(expr, $(...)) + } else if ( !context || context.jquery ) { + return ( context || rootjQuery ).find( selector ); + + // HANDLE: $(expr, context) + // (which is just equivalent to: $(context).find(expr) + } else { + return this.constructor( context ).find( selector ); + } + + // HANDLE: $(function) + // Shortcut for document ready + } else if ( jQuery.isFunction( selector ) ) { + return rootjQuery.ready( selector ); + } + + if ( selector.selector !== undefined ) { + this.selector = selector.selector; + this.context = selector.context; + } + + return jQuery.makeArray( selector, this ); + }; + jQuery.prototype.innerHeight = function ( margin, value ) { + /// + /// Get the current computed height for the first element in the set of matched elements, including padding but not border. + /// + /// + + var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ), + extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" ); + + return jQuery.access( this, function( elem, type, value ) { + var doc; + + if ( jQuery.isWindow( elem ) ) { + // As of 5/8/2012 this will yield incorrect results for Mobile Safari, but there + // isn't a whole lot we can do. See pull request at this URL for discussion: + // https://github.com/jquery/jquery/pull/764 + return elem.document.documentElement[ "client" + name ]; + } + + // Get document width or height + if ( elem.nodeType === 9 ) { + doc = elem.documentElement; + + // Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height], whichever is greatest + // unfortunately, this causes bug #3838 in IE6/8 only, but there is currently no good, small way to fix it. + return Math.max( + elem.body[ "scroll" + name ], doc[ "scroll" + name ], + elem.body[ "offset" + name ], doc[ "offset" + name ], + doc[ "client" + name ] + ); + } + + return value === undefined ? + // Get width or height on the element, requesting but not forcing parseFloat + jQuery.css( elem, type, value, extra ) : + + // Set width or height on the element + jQuery.style( elem, type, value, extra ); + }, type, chainable ? margin : undefined, chainable ); + }; + jQuery.prototype.innerWidth = function ( margin, value ) { + /// + /// Get the current computed width for the first element in the set of matched elements, including padding but not border. + /// + /// + + var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ), + extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" ); + + return jQuery.access( this, function( elem, type, value ) { + var doc; + + if ( jQuery.isWindow( elem ) ) { + // As of 5/8/2012 this will yield incorrect results for Mobile Safari, but there + // isn't a whole lot we can do. See pull request at this URL for discussion: + // https://github.com/jquery/jquery/pull/764 + return elem.document.documentElement[ "client" + name ]; + } + + // Get document width or height + if ( elem.nodeType === 9 ) { + doc = elem.documentElement; + + // Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height], whichever is greatest + // unfortunately, this causes bug #3838 in IE6/8 only, but there is currently no good, small way to fix it. + return Math.max( + elem.body[ "scroll" + name ], doc[ "scroll" + name ], + elem.body[ "offset" + name ], doc[ "offset" + name ], + doc[ "client" + name ] + ); + } + + return value === undefined ? + // Get width or height on the element, requesting but not forcing parseFloat + jQuery.css( elem, type, value, extra ) : + + // Set width or height on the element + jQuery.style( elem, type, value, extra ); + }, type, chainable ? margin : undefined, chainable ); + }; + jQuery.prototype.insertAfter = function ( selector ) { + /// + /// Insert every element in the set of matched elements after the target. + /// + /// + /// A selector, element, HTML string, or jQuery object; the matched set of elements will be inserted after the element(s) specified by this parameter. + /// + /// + + var elems, + i = 0, + ret = [], + insert = jQuery( selector ), + l = insert.length, + parent = this.length === 1 && this[0].parentNode; + + if ( (parent == null || parent && parent.nodeType === 11 && parent.childNodes.length === 1) && l === 1 ) { + insert[ original ]( this[0] ); + return this; + } else { + for ( ; i < l; i++ ) { + elems = ( i > 0 ? this.clone(true) : this ).get(); + jQuery( insert[i] )[ original ]( elems ); + ret = ret.concat( elems ); + } + + return this.pushStack( ret, name, insert.selector ); + } + }; + jQuery.prototype.insertBefore = function ( selector ) { + /// + /// Insert every element in the set of matched elements before the target. + /// + /// + /// A selector, element, HTML string, or jQuery object; the matched set of elements will be inserted before the element(s) specified by this parameter. + /// + /// + + var elems, + i = 0, + ret = [], + insert = jQuery( selector ), + l = insert.length, + parent = this.length === 1 && this[0].parentNode; + + if ( (parent == null || parent && parent.nodeType === 11 && parent.childNodes.length === 1) && l === 1 ) { + insert[ original ]( this[0] ); + return this; + } else { + for ( ; i < l; i++ ) { + elems = ( i > 0 ? this.clone(true) : this ).get(); + jQuery( insert[i] )[ original ]( elems ); + ret = ret.concat( elems ); + } + + return this.pushStack( ret, name, insert.selector ); + } + }; + jQuery.prototype.is = function ( selector ) { + /// + /// Check the current matched set of elements against a selector, element, or jQuery object and return true if at least one of these elements matches the given arguments. + /// 1 - is(selector) + /// 2 - is(function(index)) + /// 3 - is(jQuery object) + /// 4 - is(element) + /// + /// + /// A string containing a selector expression to match elements against. + /// + /// + + return !!selector && ( + typeof selector === "string" ? + // If this is a positional/relative selector, check membership in the returned set + // so $("p:first").is("p:last") won't return true for a doc with two "p". + rneedsContext.test( selector ) ? + jQuery( selector, this.context ).index( this[0] ) >= 0 : + jQuery.filter( selector, this ).length > 0 : + this.filter( selector ).length > 0 ); + }; + jQuery.prototype.keydown = function ( data, fn ) { + /// + /// Bind an event handler to the "keydown" JavaScript event, or trigger that event on an element. + /// 1 - keydown(handler(eventObject)) + /// 2 - keydown(eventData, handler(eventObject)) + /// 3 - keydown() + /// + /// + /// A map of data that will be passed to the event handler. + /// + /// + /// A function to execute each time the event is triggered. + /// + /// + + if ( fn == null ) { + fn = data; + data = null; + } + + return arguments.length > 0 ? + this.on( name, null, data, fn ) : + this.trigger( name ); + }; + jQuery.prototype.keypress = function ( data, fn ) { + /// + /// Bind an event handler to the "keypress" JavaScript event, or trigger that event on an element. + /// 1 - keypress(handler(eventObject)) + /// 2 - keypress(eventData, handler(eventObject)) + /// 3 - keypress() + /// + /// + /// A map of data that will be passed to the event handler. + /// + /// + /// A function to execute each time the event is triggered. + /// + /// + + if ( fn == null ) { + fn = data; + data = null; + } + + return arguments.length > 0 ? + this.on( name, null, data, fn ) : + this.trigger( name ); + }; + jQuery.prototype.keyup = function ( data, fn ) { + /// + /// Bind an event handler to the "keyup" JavaScript event, or trigger that event on an element. + /// 1 - keyup(handler(eventObject)) + /// 2 - keyup(eventData, handler(eventObject)) + /// 3 - keyup() + /// + /// + /// A map of data that will be passed to the event handler. + /// + /// + /// A function to execute each time the event is triggered. + /// + /// + + if ( fn == null ) { + fn = data; + data = null; + } + + return arguments.length > 0 ? + this.on( name, null, data, fn ) : + this.trigger( name ); + }; + jQuery.prototype.last = function () { + /// + /// Reduce the set of matched elements to the final one in the set. + /// + /// + + return this.eq( -1 ); + }; + jQuery.prototype.length = 0; + jQuery.prototype.live = function ( types, data, fn ) { + /// + /// Attach an event handler for all elements which match the current selector, now and in the future. + /// 1 - live(events, handler) + /// 2 - live(events, data, handler) + /// 3 - live(events-map) + /// + /// + /// A string containing a JavaScript event type, such as "click" or "keydown." As of jQuery 1.4 the string can contain multiple, space-separated event types or custom event names. + /// + /// + /// A map of data that will be passed to the event handler. + /// + /// + /// A function to execute at the time the event is triggered. + /// + /// + + jQuery( this.context ).on( types, this.selector, data, fn ); + return this; + }; + jQuery.prototype.load = function ( url, params, callback ) { + /// + /// 1: Bind an event handler to the "load" JavaScript event. + /// 1.1 - load(handler(eventObject)) + /// 1.2 - load(eventData, handler(eventObject)) + /// 2: Load data from the server and place the returned HTML into the matched element. + /// 2.1 - load(url, data, complete(responseText, textStatus, XMLHttpRequest)) + /// + /// + /// A string containing the URL to which the request is sent. + /// + /// + /// A map or string that is sent to the server with the request. + /// + /// + /// A callback function that is executed when the request completes. + /// + /// + + if ( typeof url !== "string" && _load ) { + return _load.apply( this, arguments ); + } + + // Don't do a request if no elements are being requested + if ( !this.length ) { + return this; + } + + var selector, type, response, + self = this, + off = url.indexOf(" "); + + if ( off >= 0 ) { + selector = url.slice( off, url.length ); + url = url.slice( 0, off ); + } + + // If it's a function + if ( jQuery.isFunction( params ) ) { + + // We assume that it's the callback + callback = params; + params = undefined; + + // Otherwise, build a param string + } else if ( typeof params === "object" ) { + type = "POST"; + } + + // Request the remote document + jQuery.ajax({ + url: url, + + // if "type" variable is undefined, then "GET" method will be used + type: type, + dataType: "html", + data: params, + complete: function( jqXHR, status ) { + if ( callback ) { + self.each( callback, response || [ jqXHR.responseText, status, jqXHR ] ); + } + } + }).done(function( responseText ) { + + // Save response for use in complete callback + response = arguments; + + // See if a selector was specified + self.html( selector ? + + // Create a dummy div to hold the results + jQuery("
                                ") + + // inject the contents of the document in, removing the scripts + // to avoid any 'Permission Denied' errors in IE + .append( responseText.replace( rscript, "" ) ) + + // Locate the specified elements + .find( selector ) : + + // If not, just inject the full result + responseText ); + + }); + + return this; + }; + jQuery.prototype.map = function ( callback ) { + /// + /// Pass each element in the current matched set through a function, producing a new jQuery object containing the return values. + /// + /// + /// A function object that will be invoked for each element in the current set. + /// + /// + + return this.pushStack( jQuery.map(this, function( elem, i ) { + return callback.call( elem, i, elem ); + })); + }; + jQuery.prototype.mousedown = function ( data, fn ) { + /// + /// Bind an event handler to the "mousedown" JavaScript event, or trigger that event on an element. + /// 1 - mousedown(handler(eventObject)) + /// 2 - mousedown(eventData, handler(eventObject)) + /// 3 - mousedown() + /// + /// + /// A map of data that will be passed to the event handler. + /// + /// + /// A function to execute each time the event is triggered. + /// + /// + + if ( fn == null ) { + fn = data; + data = null; + } + + return arguments.length > 0 ? + this.on( name, null, data, fn ) : + this.trigger( name ); + }; + jQuery.prototype.mouseenter = function ( data, fn ) { + /// + /// Bind an event handler to be fired when the mouse enters an element, or trigger that handler on an element. + /// 1 - mouseenter(handler(eventObject)) + /// 2 - mouseenter(eventData, handler(eventObject)) + /// 3 - mouseenter() + /// + /// + /// A map of data that will be passed to the event handler. + /// + /// + /// A function to execute each time the event is triggered. + /// + /// + + if ( fn == null ) { + fn = data; + data = null; + } + + return arguments.length > 0 ? + this.on( name, null, data, fn ) : + this.trigger( name ); + }; + jQuery.prototype.mouseleave = function ( data, fn ) { + /// + /// Bind an event handler to be fired when the mouse leaves an element, or trigger that handler on an element. + /// 1 - mouseleave(handler(eventObject)) + /// 2 - mouseleave(eventData, handler(eventObject)) + /// 3 - mouseleave() + /// + /// + /// A map of data that will be passed to the event handler. + /// + /// + /// A function to execute each time the event is triggered. + /// + /// + + if ( fn == null ) { + fn = data; + data = null; + } + + return arguments.length > 0 ? + this.on( name, null, data, fn ) : + this.trigger( name ); + }; + jQuery.prototype.mousemove = function ( data, fn ) { + /// + /// Bind an event handler to the "mousemove" JavaScript event, or trigger that event on an element. + /// 1 - mousemove(handler(eventObject)) + /// 2 - mousemove(eventData, handler(eventObject)) + /// 3 - mousemove() + /// + /// + /// A map of data that will be passed to the event handler. + /// + /// + /// A function to execute each time the event is triggered. + /// + /// + + if ( fn == null ) { + fn = data; + data = null; + } + + return arguments.length > 0 ? + this.on( name, null, data, fn ) : + this.trigger( name ); + }; + jQuery.prototype.mouseout = function ( data, fn ) { + /// + /// Bind an event handler to the "mouseout" JavaScript event, or trigger that event on an element. + /// 1 - mouseout(handler(eventObject)) + /// 2 - mouseout(eventData, handler(eventObject)) + /// 3 - mouseout() + /// + /// + /// A map of data that will be passed to the event handler. + /// + /// + /// A function to execute each time the event is triggered. + /// + /// + + if ( fn == null ) { + fn = data; + data = null; + } + + return arguments.length > 0 ? + this.on( name, null, data, fn ) : + this.trigger( name ); + }; + jQuery.prototype.mouseover = function ( data, fn ) { + /// + /// Bind an event handler to the "mouseover" JavaScript event, or trigger that event on an element. + /// 1 - mouseover(handler(eventObject)) + /// 2 - mouseover(eventData, handler(eventObject)) + /// 3 - mouseover() + /// + /// + /// A map of data that will be passed to the event handler. + /// + /// + /// A function to execute each time the event is triggered. + /// + /// + + if ( fn == null ) { + fn = data; + data = null; + } + + return arguments.length > 0 ? + this.on( name, null, data, fn ) : + this.trigger( name ); + }; + jQuery.prototype.mouseup = function ( data, fn ) { + /// + /// Bind an event handler to the "mouseup" JavaScript event, or trigger that event on an element. + /// 1 - mouseup(handler(eventObject)) + /// 2 - mouseup(eventData, handler(eventObject)) + /// 3 - mouseup() + /// + /// + /// A map of data that will be passed to the event handler. + /// + /// + /// A function to execute each time the event is triggered. + /// + /// + + if ( fn == null ) { + fn = data; + data = null; + } + + return arguments.length > 0 ? + this.on( name, null, data, fn ) : + this.trigger( name ); + }; + jQuery.prototype.next = function ( until, selector ) { + /// + /// Get the immediately following sibling of each element in the set of matched elements. If a selector is provided, it retrieves the next sibling only if it matches that selector. + /// + /// + /// A string containing a selector expression to match elements against. + /// + /// + + var ret = jQuery.map( this, fn, until ); + + if ( !runtil.test( name ) ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + ret = jQuery.filter( selector, ret ); + } + + ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret; + + if ( this.length > 1 && rparentsprev.test( name ) ) { + ret = ret.reverse(); + } + + return this.pushStack( ret, name, core_slice.call( arguments ).join(",") ); + }; + jQuery.prototype.nextAll = function ( until, selector ) { + /// + /// Get all following siblings of each element in the set of matched elements, optionally filtered by a selector. + /// + /// + /// A string containing a selector expression to match elements against. + /// + /// + + var ret = jQuery.map( this, fn, until ); + + if ( !runtil.test( name ) ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + ret = jQuery.filter( selector, ret ); + } + + ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret; + + if ( this.length > 1 && rparentsprev.test( name ) ) { + ret = ret.reverse(); + } + + return this.pushStack( ret, name, core_slice.call( arguments ).join(",") ); + }; + jQuery.prototype.nextUntil = function ( until, selector ) { + /// + /// Get all following siblings of each element up to but not including the element matched by the selector, DOM node, or jQuery object passed. + /// 1 - nextUntil(selector, filter) + /// 2 - nextUntil(element, filter) + /// + /// + /// A string containing a selector expression to indicate where to stop matching following sibling elements. + /// + /// + /// A string containing a selector expression to match elements against. + /// + /// + + var ret = jQuery.map( this, fn, until ); + + if ( !runtil.test( name ) ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + ret = jQuery.filter( selector, ret ); + } + + ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret; + + if ( this.length > 1 && rparentsprev.test( name ) ) { + ret = ret.reverse(); + } + + return this.pushStack( ret, name, core_slice.call( arguments ).join(",") ); + }; + jQuery.prototype.not = function ( selector ) { + /// + /// Remove elements from the set of matched elements. + /// 1 - not(selector) + /// 2 - not(elements) + /// 3 - not(function(index)) + /// + /// + /// A string containing a selector expression to match elements against. + /// + /// + + return this.pushStack( winnow(this, selector, false), "not", selector); + }; + jQuery.prototype.off = function ( types, selector, fn ) { + /// + /// Remove an event handler. + /// 1 - off(events, selector, handler) + /// 2 - off(events-map, selector) + /// + /// + /// One or more space-separated event types and optional namespaces, or just namespaces, such as "click", "keydown.myPlugin", or ".myPlugin". + /// + /// + /// A selector which should match the one originally passed to .on() when attaching event handlers. + /// + /// + /// A handler function previously attached for the event(s), or the special value false. + /// + /// + + var handleObj, type; + if ( types && types.preventDefault && types.handleObj ) { + // ( event ) dispatched jQuery.Event + handleObj = types.handleObj; + jQuery( types.delegateTarget ).off( + handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType, + handleObj.selector, + handleObj.handler + ); + return this; + } + if ( typeof types === "object" ) { + // ( types-object [, selector] ) + for ( type in types ) { + this.off( type, selector, types[ type ] ); + } + return this; + } + if ( selector === false || typeof selector === "function" ) { + // ( types [, fn] ) + fn = selector; + selector = undefined; + } + if ( fn === false ) { + fn = returnFalse; + } + return this.each(function() { + jQuery.event.remove( this, types, fn, selector ); + }); + }; + jQuery.prototype.offset = function ( options ) { + /// + /// 1: Get the current coordinates of the first element in the set of matched elements, relative to the document. + /// 1.1 - offset() + /// 2: Set the current coordinates of every element in the set of matched elements, relative to the document. + /// 2.1 - offset(coordinates) + /// 2.2 - offset(function(index, coords)) + /// + /// + /// An object containing the properties top and left, which are integers indicating the new top and left coordinates for the elements. + /// + /// + + if ( arguments.length ) { + return options === undefined ? + this : + this.each(function( i ) { + jQuery.offset.setOffset( this, options, i ); + }); + } + + var box, docElem, body, win, clientTop, clientLeft, scrollTop, scrollLeft, top, left, + elem = this[ 0 ], + doc = elem && elem.ownerDocument; + + if ( !doc ) { + return; + } + + if ( (body = doc.body) === elem ) { + return jQuery.offset.bodyOffset( elem ); + } + + docElem = doc.documentElement; + + // Make sure we're not dealing with a disconnected DOM node + if ( !jQuery.contains( docElem, elem ) ) { + return { top: 0, left: 0 }; + } + + box = elem.getBoundingClientRect(); + win = getWindow( doc ); + clientTop = docElem.clientTop || body.clientTop || 0; + clientLeft = docElem.clientLeft || body.clientLeft || 0; + scrollTop = win.pageYOffset || docElem.scrollTop; + scrollLeft = win.pageXOffset || docElem.scrollLeft; + top = box.top + scrollTop - clientTop; + left = box.left + scrollLeft - clientLeft; + + return { top: top, left: left }; + }; + jQuery.prototype.offsetParent = function () { + /// + /// Get the closest ancestor element that is positioned. + /// + /// + + return this.map(function() { + var offsetParent = this.offsetParent || document.body; + while ( offsetParent && (!rroot.test(offsetParent.nodeName) && jQuery.css(offsetParent, "position") === "static") ) { + offsetParent = offsetParent.offsetParent; + } + return offsetParent || document.body; + }); + }; + jQuery.prototype.on = function ( types, selector, data, fn, /*INTERNAL*/ one ) { + /// + /// Attach an event handler function for one or more events to the selected elements. + /// 1 - on(events, selector, data, handler) + /// 2 - on(events-map, selector, data) + /// + /// + /// One or more space-separated event types and optional namespaces, such as "click" or "keydown.myPlugin". + /// + /// + /// A selector string to filter the descendants of the selected elements that trigger the event. If the selector is null or omitted, the event is always triggered when it reaches the selected element. + /// + /// + /// Data to be passed to the handler in event.data when an event is triggered. + /// + /// + /// A function to execute when the event is triggered. The value false is also allowed as a shorthand for a function that simply does return false. + /// + /// + + var origFn, type; + + // Types can be a map of types/handlers + if ( typeof types === "object" ) { + // ( types-Object, selector, data ) + if ( typeof selector !== "string" ) { // && selector != null + // ( types-Object, data ) + data = data || selector; + selector = undefined; + } + for ( type in types ) { + this.on( type, selector, data, types[ type ], one ); + } + return this; + } + + if ( data == null && fn == null ) { + // ( types, fn ) + fn = selector; + data = selector = undefined; + } else if ( fn == null ) { + if ( typeof selector === "string" ) { + // ( types, selector, fn ) + fn = data; + data = undefined; + } else { + // ( types, data, fn ) + fn = data; + data = selector; + selector = undefined; + } + } + if ( fn === false ) { + fn = returnFalse; + } else if ( !fn ) { + return this; + } + + if ( one === 1 ) { + origFn = fn; + fn = function( event ) { + // Can use an empty set, since event contains the info + jQuery().off( event ); + return origFn.apply( this, arguments ); + }; + // Use same guid so caller can remove using origFn + fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); + } + return this.each( function() { + jQuery.event.add( this, types, fn, data, selector ); + }); + }; + jQuery.prototype.one = function ( types, selector, data, fn ) { + /// + /// Attach a handler to an event for the elements. The handler is executed at most once per element. + /// 1 - one(events, data, handler) + /// 2 - one(events, selector, data, handler) + /// 3 - one(events-map, selector, data) + /// + /// + /// One or more space-separated event types and optional namespaces, such as "click" or "keydown.myPlugin". + /// + /// + /// A selector string to filter the descendants of the selected elements that trigger the event. If the selector is null or omitted, the event is always triggered when it reaches the selected element. + /// + /// + /// Data to be passed to the handler in event.data when an event is triggered. + /// + /// + /// A function to execute when the event is triggered. The value false is also allowed as a shorthand for a function that simply does return false. + /// + /// + + return this.on( types, selector, data, fn, 1 ); + }; + jQuery.prototype.outerHeight = function ( margin, value ) { + /// + /// Get the current computed height for the first element in the set of matched elements, including padding, border, and optionally margin. Returns an integer (without "px") representation of the value or null if called on an empty set of elements. + /// + /// + /// A Boolean indicating whether to include the element's margin in the calculation. + /// + /// + + var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ), + extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" ); + + return jQuery.access( this, function( elem, type, value ) { + var doc; + + if ( jQuery.isWindow( elem ) ) { + // As of 5/8/2012 this will yield incorrect results for Mobile Safari, but there + // isn't a whole lot we can do. See pull request at this URL for discussion: + // https://github.com/jquery/jquery/pull/764 + return elem.document.documentElement[ "client" + name ]; + } + + // Get document width or height + if ( elem.nodeType === 9 ) { + doc = elem.documentElement; + + // Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height], whichever is greatest + // unfortunately, this causes bug #3838 in IE6/8 only, but there is currently no good, small way to fix it. + return Math.max( + elem.body[ "scroll" + name ], doc[ "scroll" + name ], + elem.body[ "offset" + name ], doc[ "offset" + name ], + doc[ "client" + name ] + ); + } + + return value === undefined ? + // Get width or height on the element, requesting but not forcing parseFloat + jQuery.css( elem, type, value, extra ) : + + // Set width or height on the element + jQuery.style( elem, type, value, extra ); + }, type, chainable ? margin : undefined, chainable ); + }; + jQuery.prototype.outerWidth = function ( margin, value ) { + /// + /// Get the current computed width for the first element in the set of matched elements, including padding and border. + /// + /// + /// A Boolean indicating whether to include the element's margin in the calculation. + /// + /// + + var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ), + extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" ); + + return jQuery.access( this, function( elem, type, value ) { + var doc; + + if ( jQuery.isWindow( elem ) ) { + // As of 5/8/2012 this will yield incorrect results for Mobile Safari, but there + // isn't a whole lot we can do. See pull request at this URL for discussion: + // https://github.com/jquery/jquery/pull/764 + return elem.document.documentElement[ "client" + name ]; + } + + // Get document width or height + if ( elem.nodeType === 9 ) { + doc = elem.documentElement; + + // Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height], whichever is greatest + // unfortunately, this causes bug #3838 in IE6/8 only, but there is currently no good, small way to fix it. + return Math.max( + elem.body[ "scroll" + name ], doc[ "scroll" + name ], + elem.body[ "offset" + name ], doc[ "offset" + name ], + doc[ "client" + name ] + ); + } + + return value === undefined ? + // Get width or height on the element, requesting but not forcing parseFloat + jQuery.css( elem, type, value, extra ) : + + // Set width or height on the element + jQuery.style( elem, type, value, extra ); + }, type, chainable ? margin : undefined, chainable ); + }; + jQuery.prototype.parent = function ( until, selector ) { + /// + /// Get the parent of each element in the current set of matched elements, optionally filtered by a selector. + /// + /// + /// A string containing a selector expression to match elements against. + /// + /// + + var ret = jQuery.map( this, fn, until ); + + if ( !runtil.test( name ) ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + ret = jQuery.filter( selector, ret ); + } + + ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret; + + if ( this.length > 1 && rparentsprev.test( name ) ) { + ret = ret.reverse(); + } + + return this.pushStack( ret, name, core_slice.call( arguments ).join(",") ); + }; + jQuery.prototype.parents = function ( until, selector ) { + /// + /// Get the ancestors of each element in the current set of matched elements, optionally filtered by a selector. + /// + /// + /// A string containing a selector expression to match elements against. + /// + /// + + var ret = jQuery.map( this, fn, until ); + + if ( !runtil.test( name ) ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + ret = jQuery.filter( selector, ret ); + } + + ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret; + + if ( this.length > 1 && rparentsprev.test( name ) ) { + ret = ret.reverse(); + } + + return this.pushStack( ret, name, core_slice.call( arguments ).join(",") ); + }; + jQuery.prototype.parentsUntil = function ( until, selector ) { + /// + /// Get the ancestors of each element in the current set of matched elements, up to but not including the element matched by the selector, DOM node, or jQuery object. + /// 1 - parentsUntil(selector, filter) + /// 2 - parentsUntil(element, filter) + /// + /// + /// A string containing a selector expression to indicate where to stop matching ancestor elements. + /// + /// + /// A string containing a selector expression to match elements against. + /// + /// + + var ret = jQuery.map( this, fn, until ); + + if ( !runtil.test( name ) ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + ret = jQuery.filter( selector, ret ); + } + + ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret; + + if ( this.length > 1 && rparentsprev.test( name ) ) { + ret = ret.reverse(); + } + + return this.pushStack( ret, name, core_slice.call( arguments ).join(",") ); + }; + jQuery.prototype.position = function () { + /// + /// Get the current coordinates of the first element in the set of matched elements, relative to the offset parent. + /// + /// + + if ( !this[0] ) { + return; + } + + var elem = this[0], + + // Get *real* offsetParent + offsetParent = this.offsetParent(), + + // Get correct offsets + offset = this.offset(), + parentOffset = rroot.test(offsetParent[0].nodeName) ? { top: 0, left: 0 } : offsetParent.offset(); + + // Subtract element margins + // note: when an element has margin: auto the offsetLeft and marginLeft + // are the same in Safari causing offset.left to incorrectly be 0 + offset.top -= parseFloat( jQuery.css(elem, "marginTop") ) || 0; + offset.left -= parseFloat( jQuery.css(elem, "marginLeft") ) || 0; + + // Add offsetParent borders + parentOffset.top += parseFloat( jQuery.css(offsetParent[0], "borderTopWidth") ) || 0; + parentOffset.left += parseFloat( jQuery.css(offsetParent[0], "borderLeftWidth") ) || 0; + + // Subtract the two offsets + return { + top: offset.top - parentOffset.top, + left: offset.left - parentOffset.left + }; + }; + jQuery.prototype.prepend = function () { + /// + /// Insert content, specified by the parameter, to the beginning of each element in the set of matched elements. + /// 1 - prepend(content, content) + /// 2 - prepend(function(index, html)) + /// + /// + /// DOM element, array of elements, HTML string, or jQuery object to insert at the beginning of each element in the set of matched elements. + /// + /// + /// One or more additional DOM elements, arrays of elements, HTML strings, or jQuery objects to insert at the beginning of each element in the set of matched elements. + /// + /// + + return this.domManip(arguments, true, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 ) { + this.insertBefore( elem, this.firstChild ); + } + }); + }; + jQuery.prototype.prependTo = function ( selector ) { + /// + /// Insert every element in the set of matched elements to the beginning of the target. + /// + /// + /// A selector, element, HTML string, or jQuery object; the matched set of elements will be inserted at the beginning of the element(s) specified by this parameter. + /// + /// + + var elems, + i = 0, + ret = [], + insert = jQuery( selector ), + l = insert.length, + parent = this.length === 1 && this[0].parentNode; + + if ( (parent == null || parent && parent.nodeType === 11 && parent.childNodes.length === 1) && l === 1 ) { + insert[ original ]( this[0] ); + return this; + } else { + for ( ; i < l; i++ ) { + elems = ( i > 0 ? this.clone(true) : this ).get(); + jQuery( insert[i] )[ original ]( elems ); + ret = ret.concat( elems ); + } + + return this.pushStack( ret, name, insert.selector ); + } + }; + jQuery.prototype.prev = function ( until, selector ) { + /// + /// Get the immediately preceding sibling of each element in the set of matched elements, optionally filtered by a selector. + /// + /// + /// A string containing a selector expression to match elements against. + /// + /// + + var ret = jQuery.map( this, fn, until ); + + if ( !runtil.test( name ) ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + ret = jQuery.filter( selector, ret ); + } + + ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret; + + if ( this.length > 1 && rparentsprev.test( name ) ) { + ret = ret.reverse(); + } + + return this.pushStack( ret, name, core_slice.call( arguments ).join(",") ); + }; + jQuery.prototype.prevAll = function ( until, selector ) { + /// + /// Get all preceding siblings of each element in the set of matched elements, optionally filtered by a selector. + /// + /// + /// A string containing a selector expression to match elements against. + /// + /// + + var ret = jQuery.map( this, fn, until ); + + if ( !runtil.test( name ) ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + ret = jQuery.filter( selector, ret ); + } + + ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret; + + if ( this.length > 1 && rparentsprev.test( name ) ) { + ret = ret.reverse(); + } + + return this.pushStack( ret, name, core_slice.call( arguments ).join(",") ); + }; + jQuery.prototype.prevUntil = function ( until, selector ) { + /// + /// Get all preceding siblings of each element up to but not including the element matched by the selector, DOM node, or jQuery object. + /// 1 - prevUntil(selector, filter) + /// 2 - prevUntil(element, filter) + /// + /// + /// A string containing a selector expression to indicate where to stop matching preceding sibling elements. + /// + /// + /// A string containing a selector expression to match elements against. + /// + /// + + var ret = jQuery.map( this, fn, until ); + + if ( !runtil.test( name ) ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + ret = jQuery.filter( selector, ret ); + } + + ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret; + + if ( this.length > 1 && rparentsprev.test( name ) ) { + ret = ret.reverse(); + } + + return this.pushStack( ret, name, core_slice.call( arguments ).join(",") ); + }; + jQuery.prototype.promise = function ( type, obj ) { + /// + /// Return a Promise object to observe when all actions of a certain type bound to the collection, queued or not, have finished. + /// + /// + /// The type of queue that needs to be observed. + /// + /// + /// Object onto which the promise methods have to be attached + /// + /// + + var tmp, + count = 1, + defer = jQuery.Deferred(), + elements = this, + i = this.length, + resolve = function() { + if ( !( --count ) ) { + defer.resolveWith( elements, [ elements ] ); + } + }; + + if ( typeof type !== "string" ) { + obj = type; + type = undefined; + } + type = type || "fx"; + + while( i-- ) { + if ( (tmp = jQuery._data( elements[ i ], type + "queueHooks" )) && tmp.empty ) { + count++; + tmp.empty.add( resolve ); + } + } + resolve(); + return defer.promise( obj ); + }; + jQuery.prototype.prop = function ( name, value ) { + /// + /// 1: Get the value of a property for the first element in the set of matched elements. + /// 1.1 - prop(propertyName) + /// 2: Set one or more properties for the set of matched elements. + /// 2.1 - prop(propertyName, value) + /// 2.2 - prop(map) + /// 2.3 - prop(propertyName, function(index, oldPropertyValue)) + /// + /// + /// The name of the property to set. + /// + /// + /// A value to set for the property. + /// + /// + + return jQuery.access( this, jQuery.prop, name, value, arguments.length > 1 ); + }; + jQuery.prototype.pushStack = function ( elems, name, selector ) { + /// + /// Add a collection of DOM elements onto the jQuery stack. + /// 1 - pushStack(elements) + /// 2 - pushStack(elements, name, arguments) + /// + /// + /// An array of elements to push onto the stack and make into a new jQuery object. + /// + /// + /// The name of a jQuery method that generated the array of elements. + /// + /// + /// The arguments that were passed in to the jQuery method (for serialization). + /// + /// + + + // Build a new jQuery matched element set + var ret = jQuery.merge( this.constructor(), elems ); + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + + ret.context = this.context; + + if ( name === "find" ) { + ret.selector = this.selector + ( this.selector ? " " : "" ) + selector; + } else if ( name ) { + ret.selector = this.selector + "." + name + "(" + selector + ")"; + } + + // Return the newly-formed element set + return ret; + }; + jQuery.prototype.queue = function ( type, data ) { + /// + /// 1: Show the queue of functions to be executed on the matched elements. + /// 1.1 - queue(queueName) + /// 2: Manipulate the queue of functions to be executed on the matched elements. + /// 2.1 - queue(queueName, newQueue) + /// 2.2 - queue(queueName, callback( next )) + /// + /// + /// A string containing the name of the queue. Defaults to fx, the standard effects queue. + /// + /// + /// An array of functions to replace the current queue contents. + /// + /// + + var setter = 2; + + if ( typeof type !== "string" ) { + data = type; + type = "fx"; + setter--; + } + + if ( arguments.length < setter ) { + return jQuery.queue( this[0], type ); + } + + return data === undefined ? + this : + this.each(function() { + var queue = jQuery.queue( this, type, data ); + + // ensure a hooks for this queue + jQuery._queueHooks( this, type ); + + if ( type === "fx" && queue[0] !== "inprogress" ) { + jQuery.dequeue( this, type ); + } + }); + }; + jQuery.prototype.ready = function ( fn ) { + /// + /// Specify a function to execute when the DOM is fully loaded. + /// + /// + /// A function to execute after the DOM is ready. + /// + /// + + // Add the callback + jQuery.ready.promise().done( fn ); + + return this; + }; + jQuery.prototype.remove = function ( selector, keepData ) { + /// + /// Remove the set of matched elements from the DOM. + /// + /// + /// A selector expression that filters the set of matched elements to be removed. + /// + /// + + var elem, + i = 0; + + for ( ; (elem = this[i]) != null; i++ ) { + if ( !selector || jQuery.filter( selector, [ elem ] ).length ) { + if ( !keepData && elem.nodeType === 1 ) { + jQuery.cleanData( elem.getElementsByTagName("*") ); + jQuery.cleanData( [ elem ] ); + } + + if ( elem.parentNode ) { + elem.parentNode.removeChild( elem ); + } + } + } + + return this; + }; + jQuery.prototype.removeAttr = function ( name ) { + /// + /// Remove an attribute from each element in the set of matched elements. + /// + /// + /// An attribute to remove; as of version 1.7, it can be a space-separated list of attributes. + /// + /// + + return this.each(function() { + jQuery.removeAttr( this, name ); + }); + }; + jQuery.prototype.removeClass = function ( value ) { + /// + /// Remove a single class, multiple classes, or all classes from each element in the set of matched elements. + /// 1 - removeClass(className) + /// 2 - removeClass(function(index, class)) + /// + /// + /// One or more space-separated classes to be removed from the class attribute of each matched element. + /// + /// + + var removes, className, elem, c, cl, i, l; + + if ( jQuery.isFunction( value ) ) { + return this.each(function( j ) { + jQuery( this ).removeClass( value.call(this, j, this.className) ); + }); + } + if ( (value && typeof value === "string") || value === undefined ) { + removes = ( value || "" ).split( core_rspace ); + + for ( i = 0, l = this.length; i < l; i++ ) { + elem = this[ i ]; + if ( elem.nodeType === 1 && elem.className ) { + + className = (" " + elem.className + " ").replace( rclass, " " ); + + // loop over each item in the removal list + for ( c = 0, cl = removes.length; c < cl; c++ ) { + // Remove until there is nothing to remove, + while ( className.indexOf(" " + removes[ c ] + " ") > -1 ) { + className = className.replace( " " + removes[ c ] + " " , " " ); + } + } + elem.className = value ? jQuery.trim( className ) : ""; + } + } + } + + return this; + }; + jQuery.prototype.removeData = function ( key ) { + /// + /// Remove a previously-stored piece of data. + /// 1 - removeData(name) + /// 2 - removeData(list) + /// + /// + /// A string naming the piece of data to delete. + /// + /// + + return this.each(function() { + jQuery.removeData( this, key ); + }); + }; + jQuery.prototype.removeProp = function ( name ) { + /// + /// Remove a property for the set of matched elements. + /// + /// + /// The name of the property to set. + /// + /// + + name = jQuery.propFix[ name ] || name; + return this.each(function() { + // try/catch handles cases where IE balks (such as removing a property on window) + try { + this[ name ] = undefined; + delete this[ name ]; + } catch( e ) {} + }); + }; + jQuery.prototype.replaceAll = function ( selector ) { + /// + /// Replace each target element with the set of matched elements. + /// + /// + /// A selector expression indicating which element(s) to replace. + /// + /// + + var elems, + i = 0, + ret = [], + insert = jQuery( selector ), + l = insert.length, + parent = this.length === 1 && this[0].parentNode; + + if ( (parent == null || parent && parent.nodeType === 11 && parent.childNodes.length === 1) && l === 1 ) { + insert[ original ]( this[0] ); + return this; + } else { + for ( ; i < l; i++ ) { + elems = ( i > 0 ? this.clone(true) : this ).get(); + jQuery( insert[i] )[ original ]( elems ); + ret = ret.concat( elems ); + } + + return this.pushStack( ret, name, insert.selector ); + } + }; + jQuery.prototype.replaceWith = function ( value ) { + /// + /// Replace each element in the set of matched elements with the provided new content. + /// 1 - replaceWith(newContent) + /// 2 - replaceWith(function) + /// + /// + /// The content to insert. May be an HTML string, DOM element, or jQuery object. + /// + /// + + if ( !isDisconnected( this[0] ) ) { + // Make sure that the elements are removed from the DOM before they are inserted + // this can help fix replacing a parent with child elements + if ( jQuery.isFunction( value ) ) { + return this.each(function(i) { + var self = jQuery(this), old = self.html(); + self.replaceWith( value.call( this, i, old ) ); + }); + } + + if ( typeof value !== "string" ) { + value = jQuery( value ).detach(); + } + + return this.each(function() { + var next = this.nextSibling, + parent = this.parentNode; + + jQuery( this ).remove(); + + if ( next ) { + jQuery(next).before( value ); + } else { + jQuery(parent).append( value ); + } + }); + } + + return this.length ? + this.pushStack( jQuery(jQuery.isFunction(value) ? value() : value), "replaceWith", value ) : + this; + }; + jQuery.prototype.resize = function ( data, fn ) { + /// + /// Bind an event handler to the "resize" JavaScript event, or trigger that event on an element. + /// 1 - resize(handler(eventObject)) + /// 2 - resize(eventData, handler(eventObject)) + /// 3 - resize() + /// + /// + /// A map of data that will be passed to the event handler. + /// + /// + /// A function to execute each time the event is triggered. + /// + /// + + if ( fn == null ) { + fn = data; + data = null; + } + + return arguments.length > 0 ? + this.on( name, null, data, fn ) : + this.trigger( name ); + }; + jQuery.prototype.scroll = function ( data, fn ) { + /// + /// Bind an event handler to the "scroll" JavaScript event, or trigger that event on an element. + /// 1 - scroll(handler(eventObject)) + /// 2 - scroll(eventData, handler(eventObject)) + /// 3 - scroll() + /// + /// + /// A map of data that will be passed to the event handler. + /// + /// + /// A function to execute each time the event is triggered. + /// + /// + + if ( fn == null ) { + fn = data; + data = null; + } + + return arguments.length > 0 ? + this.on( name, null, data, fn ) : + this.trigger( name ); + }; + jQuery.prototype.scrollLeft = function ( val ) { + /// + /// 1: Get the current horizontal position of the scroll bar for the first element in the set of matched elements. + /// 1.1 - scrollLeft() + /// 2: Set the current horizontal position of the scroll bar for each of the set of matched elements. + /// 2.1 - scrollLeft(value) + /// + /// + /// An integer indicating the new position to set the scroll bar to. + /// + /// + + return jQuery.access( this, function( elem, method, val ) { + var win = getWindow( elem ); + + if ( val === undefined ) { + return win ? (prop in win) ? win[ prop ] : + win.document.documentElement[ method ] : + elem[ method ]; + } + + if ( win ) { + win.scrollTo( + !top ? val : jQuery( win ).scrollLeft(), + top ? val : jQuery( win ).scrollTop() + ); + + } else { + elem[ method ] = val; + } + }, method, val, arguments.length, null ); + }; + jQuery.prototype.scrollTop = function ( val ) { + /// + /// 1: Get the current vertical position of the scroll bar for the first element in the set of matched elements. + /// 1.1 - scrollTop() + /// 2: Set the current vertical position of the scroll bar for each of the set of matched elements. + /// 2.1 - scrollTop(value) + /// + /// + /// An integer indicating the new position to set the scroll bar to. + /// + /// + + return jQuery.access( this, function( elem, method, val ) { + var win = getWindow( elem ); + + if ( val === undefined ) { + return win ? (prop in win) ? win[ prop ] : + win.document.documentElement[ method ] : + elem[ method ]; + } + + if ( win ) { + win.scrollTo( + !top ? val : jQuery( win ).scrollLeft(), + top ? val : jQuery( win ).scrollTop() + ); + + } else { + elem[ method ] = val; + } + }, method, val, arguments.length, null ); + }; + jQuery.prototype.select = function ( data, fn ) { + /// + /// Bind an event handler to the "select" JavaScript event, or trigger that event on an element. + /// 1 - select(handler(eventObject)) + /// 2 - select(eventData, handler(eventObject)) + /// 3 - select() + /// + /// + /// A map of data that will be passed to the event handler. + /// + /// + /// A function to execute each time the event is triggered. + /// + /// + + if ( fn == null ) { + fn = data; + data = null; + } + + return arguments.length > 0 ? + this.on( name, null, data, fn ) : + this.trigger( name ); + }; + jQuery.prototype.serialize = function () { + /// + /// Encode a set of form elements as a string for submission. + /// + /// + + return jQuery.param( this.serializeArray() ); + }; + jQuery.prototype.serializeArray = function () { + /// + /// Encode a set of form elements as an array of names and values. + /// + /// + + return this.map(function(){ + return this.elements ? jQuery.makeArray( this.elements ) : this; + }) + .filter(function(){ + return this.name && !this.disabled && + ( this.checked || rselectTextarea.test( this.nodeName ) || + rinput.test( this.type ) ); + }) + .map(function( i, elem ){ + var val = jQuery( this ).val(); + + return val == null ? + null : + jQuery.isArray( val ) ? + jQuery.map( val, function( val, i ){ + return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + }) : + { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + }).get(); + }; + jQuery.prototype.show = function ( speed, easing, callback ) { + /// + /// Display the matched elements. + /// 1 - show() + /// 2 - show(duration, callback) + /// 3 - show(duration, easing, callback) + /// + /// + /// A string or number determining how long the animation will run. + /// + /// + /// A string indicating which easing function to use for the transition. + /// + /// + /// A function to call once the animation is complete. + /// + /// + + return speed == null || typeof speed === "boolean" || + // special check for .toggle( handler, handler, ... ) + ( !i && jQuery.isFunction( speed ) && jQuery.isFunction( easing ) ) ? + cssFn.apply( this, arguments ) : + this.animate( genFx( name, true ), speed, easing, callback ); + }; + jQuery.prototype.siblings = function ( until, selector ) { + /// + /// Get the siblings of each element in the set of matched elements, optionally filtered by a selector. + /// + /// + /// A string containing a selector expression to match elements against. + /// + /// + + var ret = jQuery.map( this, fn, until ); + + if ( !runtil.test( name ) ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + ret = jQuery.filter( selector, ret ); + } + + ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret; + + if ( this.length > 1 && rparentsprev.test( name ) ) { + ret = ret.reverse(); + } + + return this.pushStack( ret, name, core_slice.call( arguments ).join(",") ); + }; + jQuery.prototype.size = function () { + /// + /// Return the number of elements in the jQuery object. + /// + /// + + return this.length; + }; + jQuery.prototype.slice = function () { + /// + /// Reduce the set of matched elements to a subset specified by a range of indices. + /// + /// + /// An integer indicating the 0-based position at which the elements begin to be selected. If negative, it indicates an offset from the end of the set. + /// + /// + /// An integer indicating the 0-based position at which the elements stop being selected. If negative, it indicates an offset from the end of the set. If omitted, the range continues until the end of the set. + /// + /// + + return this.pushStack( core_slice.apply( this, arguments ), + "slice", core_slice.call(arguments).join(",") ); + }; + jQuery.prototype.slideDown = function ( speed, easing, callback ) { + /// + /// Display the matched elements with a sliding motion. + /// 1 - slideDown(duration, callback) + /// 2 - slideDown(duration, easing, callback) + /// + /// + /// A string or number determining how long the animation will run. + /// + /// + /// A string indicating which easing function to use for the transition. + /// + /// + /// A function to call once the animation is complete. + /// + /// + + return this.animate( props, speed, easing, callback ); + }; + jQuery.prototype.slideToggle = function ( speed, easing, callback ) { + /// + /// Display or hide the matched elements with a sliding motion. + /// 1 - slideToggle(duration, callback) + /// 2 - slideToggle(duration, easing, callback) + /// + /// + /// A string or number determining how long the animation will run. + /// + /// + /// A string indicating which easing function to use for the transition. + /// + /// + /// A function to call once the animation is complete. + /// + /// + + return this.animate( props, speed, easing, callback ); + }; + jQuery.prototype.slideUp = function ( speed, easing, callback ) { + /// + /// Hide the matched elements with a sliding motion. + /// 1 - slideUp(duration, callback) + /// 2 - slideUp(duration, easing, callback) + /// + /// + /// A string or number determining how long the animation will run. + /// + /// + /// A string indicating which easing function to use for the transition. + /// + /// + /// A function to call once the animation is complete. + /// + /// + + return this.animate( props, speed, easing, callback ); + }; + jQuery.prototype.stop = function ( type, clearQueue, gotoEnd ) { + /// + /// Stop the currently-running animation on the matched elements. + /// 1 - stop(clearQueue, jumpToEnd) + /// 2 - stop(queue, clearQueue, jumpToEnd) + /// + /// + /// The name of the queue in which to stop animations. + /// + /// + /// A Boolean indicating whether to remove queued animation as well. Defaults to false. + /// + /// + /// A Boolean indicating whether to complete the current animation immediately. Defaults to false. + /// + /// + + var stopQueue = function( hooks ) { + var stop = hooks.stop; + delete hooks.stop; + stop( gotoEnd ); + }; + + if ( typeof type !== "string" ) { + gotoEnd = clearQueue; + clearQueue = type; + type = undefined; + } + if ( clearQueue && type !== false ) { + this.queue( type || "fx", [] ); + } + + return this.each(function() { + var dequeue = true, + index = type != null && type + "queueHooks", + timers = jQuery.timers, + data = jQuery._data( this ); + + if ( index ) { + if ( data[ index ] && data[ index ].stop ) { + stopQueue( data[ index ] ); + } + } else { + for ( index in data ) { + if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) { + stopQueue( data[ index ] ); + } + } + } + + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && (type == null || timers[ index ].queue === type) ) { + timers[ index ].anim.stop( gotoEnd ); + dequeue = false; + timers.splice( index, 1 ); + } + } + + // start the next in the queue if the last step wasn't forced + // timers currently will call their complete callbacks, which will dequeue + // but only if they were gotoEnd + if ( dequeue || !gotoEnd ) { + jQuery.dequeue( this, type ); + } + }); + }; + jQuery.prototype.submit = function ( data, fn ) { + /// + /// Bind an event handler to the "submit" JavaScript event, or trigger that event on an element. + /// 1 - submit(handler(eventObject)) + /// 2 - submit(eventData, handler(eventObject)) + /// 3 - submit() + /// + /// + /// A map of data that will be passed to the event handler. + /// + /// + /// A function to execute each time the event is triggered. + /// + /// + + if ( fn == null ) { + fn = data; + data = null; + } + + return arguments.length > 0 ? + this.on( name, null, data, fn ) : + this.trigger( name ); + }; + jQuery.prototype.text = function ( value ) { + /// + /// 1: Get the combined text contents of each element in the set of matched elements, including their descendants. + /// 1.1 - text() + /// 2: Set the content of each element in the set of matched elements to the specified text. + /// 2.1 - text(textString) + /// 2.2 - text(function(index, text)) + /// + /// + /// A string of text to set as the content of each matched element. + /// + /// + + return jQuery.access( this, function( value ) { + return value === undefined ? + jQuery.text( this ) : + this.empty().append( ( this[0] && this[0].ownerDocument || document ).createTextNode( value ) ); + }, null, value, arguments.length ); + }; + jQuery.prototype.toArray = function () { + /// + /// Retrieve all the DOM elements contained in the jQuery set, as an array. + /// + /// + + return core_slice.call( this ); + }; + jQuery.prototype.toggle = function ( speed, easing, callback ) { + /// + /// 1: Bind two or more handlers to the matched elements, to be executed on alternate clicks. + /// 1.1 - toggle(handler(eventObject), handler(eventObject), handler(eventObject)) + /// 2: Display or hide the matched elements. + /// 2.1 - toggle(duration, callback) + /// 2.2 - toggle(duration, easing, callback) + /// 2.3 - toggle(showOrHide) + /// + /// + /// A function to execute every even time the element is clicked. + /// + /// + /// A function to execute every odd time the element is clicked. + /// + /// + /// Additional handlers to cycle through after clicks. + /// + /// + + return speed == null || typeof speed === "boolean" || + // special check for .toggle( handler, handler, ... ) + ( !i && jQuery.isFunction( speed ) && jQuery.isFunction( easing ) ) ? + cssFn.apply( this, arguments ) : + this.animate( genFx( name, true ), speed, easing, callback ); + }; + jQuery.prototype.toggleClass = function ( value, stateVal ) { + /// + /// Add or remove one or more classes from each element in the set of matched elements, depending on either the class's presence or the value of the switch argument. + /// 1 - toggleClass(className) + /// 2 - toggleClass(className, switch) + /// 3 - toggleClass(switch) + /// 4 - toggleClass(function(index, class, switch), switch) + /// + /// + /// One or more class names (separated by spaces) to be toggled for each element in the matched set. + /// + /// + /// A Boolean (not just truthy/falsy) value to determine whether the class should be added or removed. + /// + /// + + var type = typeof value, + isBool = typeof stateVal === "boolean"; + + if ( jQuery.isFunction( value ) ) { + return this.each(function( i ) { + jQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal ); + }); + } + + return this.each(function() { + if ( type === "string" ) { + // toggle individual class names + var className, + i = 0, + self = jQuery( this ), + state = stateVal, + classNames = value.split( core_rspace ); + + while ( (className = classNames[ i++ ]) ) { + // check each className given, space separated list + state = isBool ? state : !self.hasClass( className ); + self[ state ? "addClass" : "removeClass" ]( className ); + } + + } else if ( type === "undefined" || type === "boolean" ) { + if ( this.className ) { + // store className if set + jQuery._data( this, "__className__", this.className ); + } + + // toggle whole className + this.className = this.className || value === false ? "" : jQuery._data( this, "__className__" ) || ""; + } + }); + }; + jQuery.prototype.trigger = function ( type, data ) { + /// + /// Execute all handlers and behaviors attached to the matched elements for the given event type. + /// 1 - trigger(eventType, extraParameters) + /// 2 - trigger(event) + /// + /// + /// A string containing a JavaScript event type, such as click or submit. + /// + /// + /// Additional parameters to pass along to the event handler. + /// + /// + + return this.each(function() { + jQuery.event.trigger( type, data, this ); + }); + }; + jQuery.prototype.triggerHandler = function ( type, data ) { + /// + /// Execute all handlers attached to an element for an event. + /// + /// + /// A string containing a JavaScript event type, such as click or submit. + /// + /// + /// An array of additional parameters to pass along to the event handler. + /// + /// + + if ( this[0] ) { + return jQuery.event.trigger( type, data, this[0], true ); + } + }; + jQuery.prototype.unbind = function ( types, fn ) { + /// + /// Remove a previously-attached event handler from the elements. + /// 1 - unbind(eventType, handler(eventObject)) + /// 2 - unbind(eventType, false) + /// 3 - unbind(event) + /// + /// + /// A string containing a JavaScript event type, such as click or submit. + /// + /// + /// The function that is to be no longer executed. + /// + /// + + return this.off( types, null, fn ); + }; + jQuery.prototype.undelegate = function ( selector, types, fn ) { + /// + /// Remove a handler from the event for all elements which match the current selector, based upon a specific set of root elements. + /// 1 - undelegate() + /// 2 - undelegate(selector, eventType) + /// 3 - undelegate(selector, eventType, handler) + /// 4 - undelegate(selector, events) + /// 5 - undelegate(namespace) + /// + /// + /// A selector which will be used to filter the event results. + /// + /// + /// A string containing a JavaScript event type, such as "click" or "keydown" + /// + /// + /// A function to execute at the time the event is triggered. + /// + /// + + // ( namespace ) or ( selector, types [, fn] ) + return arguments.length == 1? this.off( selector, "**" ) : this.off( types, selector || "**", fn ); + }; + jQuery.prototype.unload = function ( data, fn ) { + /// + /// Bind an event handler to the "unload" JavaScript event. + /// 1 - unload(handler(eventObject)) + /// 2 - unload(eventData, handler(eventObject)) + /// + /// + /// A map of data that will be passed to the event handler. + /// + /// + /// A function to execute each time the event is triggered. + /// + /// + + if ( fn == null ) { + fn = data; + data = null; + } + + return arguments.length > 0 ? + this.on( name, null, data, fn ) : + this.trigger( name ); + }; + jQuery.prototype.unwrap = function () { + /// + /// Remove the parents of the set of matched elements from the DOM, leaving the matched elements in their place. + /// + /// + + return this.parent().each(function() { + if ( !jQuery.nodeName( this, "body" ) ) { + jQuery( this ).replaceWith( this.childNodes ); + } + }).end(); + }; + jQuery.prototype.val = function ( value ) { + /// + /// 1: Get the current value of the first element in the set of matched elements. + /// 1.1 - val() + /// 2: Set the value of each element in the set of matched elements. + /// 2.1 - val(value) + /// 2.2 - val(function(index, value)) + /// + /// + /// A string of text or an array of strings corresponding to the value of each matched element to set as selected/checked. + /// + /// + + var hooks, ret, isFunction, + elem = this[0]; + + if ( !arguments.length ) { + if ( elem ) { + hooks = jQuery.valHooks[ elem.type ] || jQuery.valHooks[ elem.nodeName.toLowerCase() ]; + + if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) { + return ret; + } + + ret = elem.value; + + return typeof ret === "string" ? + // handle most common string cases + ret.replace(rreturn, "") : + // handle cases where value is null/undef or number + ret == null ? "" : ret; + } + + return; + } + + isFunction = jQuery.isFunction( value ); + + return this.each(function( i ) { + var val, + self = jQuery(this); + + if ( this.nodeType !== 1 ) { + return; + } + + if ( isFunction ) { + val = value.call( this, i, self.val() ); + } else { + val = value; + } + + // Treat null/undefined as ""; convert numbers to string + if ( val == null ) { + val = ""; + } else if ( typeof val === "number" ) { + val += ""; + } else if ( jQuery.isArray( val ) ) { + val = jQuery.map(val, function ( value ) { + return value == null ? "" : value + ""; + }); + } + + hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; + + // If set returns undefined, fall back to normal setting + if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) { + this.value = val; + } + }); + }; + jQuery.prototype.width = function ( margin, value ) { + /// + /// 1: Get the current computed width for the first element in the set of matched elements. + /// 1.1 - width() + /// 2: Set the CSS width of each element in the set of matched elements. + /// 2.1 - width(value) + /// 2.2 - width(function(index, width)) + /// + /// + /// An integer representing the number of pixels, or an integer along with an optional unit of measure appended (as a string). + /// + /// + + var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ), + extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" ); + + return jQuery.access( this, function( elem, type, value ) { + var doc; + + if ( jQuery.isWindow( elem ) ) { + // As of 5/8/2012 this will yield incorrect results for Mobile Safari, but there + // isn't a whole lot we can do. See pull request at this URL for discussion: + // https://github.com/jquery/jquery/pull/764 + return elem.document.documentElement[ "client" + name ]; + } + + // Get document width or height + if ( elem.nodeType === 9 ) { + doc = elem.documentElement; + + // Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height], whichever is greatest + // unfortunately, this causes bug #3838 in IE6/8 only, but there is currently no good, small way to fix it. + return Math.max( + elem.body[ "scroll" + name ], doc[ "scroll" + name ], + elem.body[ "offset" + name ], doc[ "offset" + name ], + doc[ "client" + name ] + ); + } + + return value === undefined ? + // Get width or height on the element, requesting but not forcing parseFloat + jQuery.css( elem, type, value, extra ) : + + // Set width or height on the element + jQuery.style( elem, type, value, extra ); + }, type, chainable ? margin : undefined, chainable ); + }; + jQuery.prototype.wrap = function ( html ) { + /// + /// Wrap an HTML structure around each element in the set of matched elements. + /// 1 - wrap(wrappingElement) + /// 2 - wrap(function(index)) + /// + /// + /// An HTML snippet, selector expression, jQuery object, or DOM element specifying the structure to wrap around the matched elements. + /// + /// + + var isFunction = jQuery.isFunction( html ); + + return this.each(function(i) { + jQuery( this ).wrapAll( isFunction ? html.call(this, i) : html ); + }); + }; + jQuery.prototype.wrapAll = function ( html ) { + /// + /// Wrap an HTML structure around all elements in the set of matched elements. + /// + /// + /// An HTML snippet, selector expression, jQuery object, or DOM element specifying the structure to wrap around the matched elements. + /// + /// + + if ( jQuery.isFunction( html ) ) { + return this.each(function(i) { + jQuery(this).wrapAll( html.call(this, i) ); + }); + } + + if ( this[0] ) { + // The elements to wrap the target around + var wrap = jQuery( html, this[0].ownerDocument ).eq(0).clone(true); + + if ( this[0].parentNode ) { + wrap.insertBefore( this[0] ); + } + + wrap.map(function() { + var elem = this; + + while ( elem.firstChild && elem.firstChild.nodeType === 1 ) { + elem = elem.firstChild; + } + + return elem; + }).append( this ); + } + + return this; + }; + jQuery.prototype.wrapInner = function ( html ) { + /// + /// Wrap an HTML structure around the content of each element in the set of matched elements. + /// 1 - wrapInner(wrappingElement) + /// 2 - wrapInner(function(index)) + /// + /// + /// An HTML snippet, selector expression, jQuery object, or DOM element specifying the structure to wrap around the content of the matched elements. + /// + /// + + if ( jQuery.isFunction( html ) ) { + return this.each(function(i) { + jQuery(this).wrapInner( html.call(this, i) ); + }); + } + + return this.each(function() { + var self = jQuery( this ), + contents = self.contents(); + + if ( contents.length ) { + contents.wrapAll( html ); + + } else { + self.append( html ); + } + }); + }; + jQuery.fn = jQuery.prototype; + jQuery.fn.init.prototype = jQuery.fn; + window.jQuery = window.$ = jQuery; +})(window); \ No newline at end of file diff --git a/src/main/webapp/js/jquery-1.8.0.js b/src/main/webapp/js/jquery-1.8.0.js new file mode 100644 index 00000000..07706829 --- /dev/null +++ b/src/main/webapp/js/jquery-1.8.0.js @@ -0,0 +1,9227 @@ +/*! + * jQuery JavaScript Library v1.8.0 + * http://jquery.com/ + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * + * Copyright 2012 jQuery Foundation and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: Thu Aug 09 2012 16:24:48 GMT-0400 (Eastern Daylight Time) + */ +(function( window, undefined ) { +var + // A central reference to the root jQuery(document) + rootjQuery, + + // The deferred used on DOM ready + readyList, + + // Use the correct document accordingly with window argument (sandbox) + document = window.document, + location = window.location, + navigator = window.navigator, + + // Map over jQuery in case of overwrite + _jQuery = window.jQuery, + + // Map over the $ in case of overwrite + _$ = window.$, + + // Save a reference to some core methods + core_push = Array.prototype.push, + core_slice = Array.prototype.slice, + core_indexOf = Array.prototype.indexOf, + core_toString = Object.prototype.toString, + core_hasOwn = Object.prototype.hasOwnProperty, + core_trim = String.prototype.trim, + + // Define a local copy of jQuery + jQuery = function( selector, context ) { + // The jQuery object is actually just the init constructor 'enhanced' + return new jQuery.fn.init( selector, context, rootjQuery ); + }, + + // Used for matching numbers + core_pnum = /[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source, + + // Used for detecting and trimming whitespace + core_rnotwhite = /\S/, + core_rspace = /\s+/, + + // IE doesn't match non-breaking spaces with \s + rtrim = core_rnotwhite.test("\xA0") ? (/^[\s\xA0]+|[\s\xA0]+$/g) : /^\s+|\s+$/g, + + // A simple way to check for HTML strings + // Prioritize #id over to avoid XSS via location.hash (#9521) + rquickExpr = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/, + + // Match a standalone tag + rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>|)$/, + + // JSON RegExp + rvalidchars = /^[\],:{}\s]*$/, + rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g, + rvalidescape = /\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g, + rvalidtokens = /"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g, + + // Matches dashed string for camelizing + rmsPrefix = /^-ms-/, + rdashAlpha = /-([\da-z])/gi, + + // Used by jQuery.camelCase as callback to replace() + fcamelCase = function( all, letter ) { + return ( letter + "" ).toUpperCase(); + }, + + // The ready event handler and self cleanup method + DOMContentLoaded = function() { + if ( document.addEventListener ) { + document.removeEventListener( "DOMContentLoaded", DOMContentLoaded, false ); + jQuery.ready(); + } else if ( document.readyState === "complete" ) { + // we're here because readyState === "complete" in oldIE + // which is good enough for us to call the dom ready! + document.detachEvent( "onreadystatechange", DOMContentLoaded ); + jQuery.ready(); + } + }, + + // [[Class]] -> type pairs + class2type = {}; + +jQuery.fn = jQuery.prototype = { + constructor: jQuery, + init: function( selector, context, rootjQuery ) { + var match, elem, ret, doc; + + // Handle $(""), $(null), $(undefined), $(false) + if ( !selector ) { + return this; + } + + // Handle $(DOMElement) + if ( selector.nodeType ) { + this.context = this[0] = selector; + this.length = 1; + return this; + } + + // Handle HTML strings + if ( typeof selector === "string" ) { + if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) { + // Assume that strings that start and end with <> are HTML and skip the regex check + match = [ null, selector, null ]; + + } else { + match = rquickExpr.exec( selector ); + } + + // Match html or make sure no context is specified for #id + if ( match && (match[1] || !context) ) { + + // HANDLE: $(html) -> $(array) + if ( match[1] ) { + context = context instanceof jQuery ? context[0] : context; + doc = ( context && context.nodeType ? context.ownerDocument || context : document ); + + // scripts is true for back-compat + selector = jQuery.parseHTML( match[1], doc, true ); + if ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) { + this.attr.call( selector, context, true ); + } + + return jQuery.merge( this, selector ); + + // HANDLE: $(#id) + } else { + elem = document.getElementById( match[2] ); + + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + if ( elem && elem.parentNode ) { + // Handle the case where IE and Opera return items + // by name instead of ID + if ( elem.id !== match[2] ) { + return rootjQuery.find( selector ); + } + + // Otherwise, we inject the element directly into the jQuery object + this.length = 1; + this[0] = elem; + } + + this.context = document; + this.selector = selector; + return this; + } + + // HANDLE: $(expr, $(...)) + } else if ( !context || context.jquery ) { + return ( context || rootjQuery ).find( selector ); + + // HANDLE: $(expr, context) + // (which is just equivalent to: $(context).find(expr) + } else { + return this.constructor( context ).find( selector ); + } + + // HANDLE: $(function) + // Shortcut for document ready + } else if ( jQuery.isFunction( selector ) ) { + return rootjQuery.ready( selector ); + } + + if ( selector.selector !== undefined ) { + this.selector = selector.selector; + this.context = selector.context; + } + + return jQuery.makeArray( selector, this ); + }, + + // Start with an empty selector + selector: "", + + // The current version of jQuery being used + jquery: "1.8.0", + + // The default length of a jQuery object is 0 + length: 0, + + // The number of elements contained in the matched element set + size: function() { + return this.length; + }, + + toArray: function() { + return core_slice.call( this ); + }, + + // Get the Nth element in the matched element set OR + // Get the whole matched element set as a clean array + get: function( num ) { + return num == null ? + + // Return a 'clean' array + this.toArray() : + + // Return just the object + ( num < 0 ? this[ this.length + num ] : this[ num ] ); + }, + + // Take an array of elements and push it onto the stack + // (returning the new matched element set) + pushStack: function( elems, name, selector ) { + + // Build a new jQuery matched element set + var ret = jQuery.merge( this.constructor(), elems ); + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + + ret.context = this.context; + + if ( name === "find" ) { + ret.selector = this.selector + ( this.selector ? " " : "" ) + selector; + } else if ( name ) { + ret.selector = this.selector + "." + name + "(" + selector + ")"; + } + + // Return the newly-formed element set + return ret; + }, + + // Execute a callback for every element in the matched set. + // (You can seed the arguments with an array of args, but this is + // only used internally.) + each: function( callback, args ) { + return jQuery.each( this, callback, args ); + }, + + ready: function( fn ) { + // Add the callback + jQuery.ready.promise().done( fn ); + + return this; + }, + + eq: function( i ) { + i = +i; + return i === -1 ? + this.slice( i ) : + this.slice( i, i + 1 ); + }, + + first: function() { + return this.eq( 0 ); + }, + + last: function() { + return this.eq( -1 ); + }, + + slice: function() { + return this.pushStack( core_slice.apply( this, arguments ), + "slice", core_slice.call(arguments).join(",") ); + }, + + map: function( callback ) { + return this.pushStack( jQuery.map(this, function( elem, i ) { + return callback.call( elem, i, elem ); + })); + }, + + end: function() { + return this.prevObject || this.constructor(null); + }, + + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: core_push, + sort: [].sort, + splice: [].splice +}; + +// Give the init function the jQuery prototype for later instantiation +jQuery.fn.init.prototype = jQuery.fn; + +jQuery.extend = jQuery.fn.extend = function() { + var options, name, src, copy, copyIsArray, clone, + target = arguments[0] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + target = arguments[1] || {}; + // skip the boolean and the target + i = 2; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !jQuery.isFunction(target) ) { + target = {}; + } + + // extend jQuery itself if only one argument is passed + if ( length === i ) { + target = this; + --i; + } + + for ( ; i < length; i++ ) { + // Only deal with non-null/undefined values + if ( (options = arguments[ i ]) != null ) { + // Extend the base object + for ( name in options ) { + src = target[ name ]; + copy = options[ name ]; + + // Prevent never-ending loop + if ( target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) { + if ( copyIsArray ) { + copyIsArray = false; + clone = src && jQuery.isArray(src) ? src : []; + + } else { + clone = src && jQuery.isPlainObject(src) ? src : {}; + } + + // Never move original objects, clone them + target[ name ] = jQuery.extend( deep, clone, copy ); + + // Don't bring in undefined values + } else if ( copy !== undefined ) { + target[ name ] = copy; + } + } + } + } + + // Return the modified object + return target; +}; + +jQuery.extend({ + noConflict: function( deep ) { + if ( window.$ === jQuery ) { + window.$ = _$; + } + + if ( deep && window.jQuery === jQuery ) { + window.jQuery = _jQuery; + } + + return jQuery; + }, + + // Is the DOM ready to be used? Set to true once it occurs. + isReady: false, + + // A counter to track how many items to wait for before + // the ready event fires. See #6781 + readyWait: 1, + + // Hold (or release) the ready event + holdReady: function( hold ) { + if ( hold ) { + jQuery.readyWait++; + } else { + jQuery.ready( true ); + } + }, + + // Handle when the DOM is ready + ready: function( wait ) { + + // Abort if there are pending holds or we're already ready + if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { + return; + } + + // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). + if ( !document.body ) { + return setTimeout( jQuery.ready, 1 ); + } + + // Remember that the DOM is ready + jQuery.isReady = true; + + // If a normal DOM Ready event fired, decrement, and wait if need be + if ( wait !== true && --jQuery.readyWait > 0 ) { + return; + } + + // If there are functions bound, to execute + readyList.resolveWith( document, [ jQuery ] ); + + // Trigger any bound ready events + if ( jQuery.fn.trigger ) { + jQuery( document ).trigger("ready").off("ready"); + } + }, + + // See test/unit/core.js for details concerning isFunction. + // Since version 1.3, DOM methods and functions like alert + // aren't supported. They return false on IE (#2968). + isFunction: function( obj ) { + return jQuery.type(obj) === "function"; + }, + + isArray: Array.isArray || function( obj ) { + return jQuery.type(obj) === "array"; + }, + + isWindow: function( obj ) { + return obj != null && obj == obj.window; + }, + + isNumeric: function( obj ) { + return !isNaN( parseFloat(obj) ) && isFinite( obj ); + }, + + type: function( obj ) { + return obj == null ? + String( obj ) : + class2type[ core_toString.call(obj) ] || "object"; + }, + + isPlainObject: function( obj ) { + // Must be an Object. + // Because of IE, we also have to check the presence of the constructor property. + // Make sure that DOM nodes and window objects don't pass through, as well + if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) { + return false; + } + + try { + // Not own constructor property must be Object + if ( obj.constructor && + !core_hasOwn.call(obj, "constructor") && + !core_hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) { + return false; + } + } catch ( e ) { + // IE8,9 Will throw exceptions on certain host objects #9897 + return false; + } + + // Own properties are enumerated firstly, so to speed up, + // if last one is own, then all properties are own. + + var key; + for ( key in obj ) {} + + return key === undefined || core_hasOwn.call( obj, key ); + }, + + isEmptyObject: function( obj ) { + var name; + for ( name in obj ) { + return false; + } + return true; + }, + + error: function( msg ) { + throw new Error( msg ); + }, + + // data: string of html + // context (optional): If specified, the fragment will be created in this context, defaults to document + // scripts (optional): If true, will include scripts passed in the html string + parseHTML: function( data, context, scripts ) { + var parsed; + if ( !data || typeof data !== "string" ) { + return null; + } + if ( typeof context === "boolean" ) { + scripts = context; + context = 0; + } + context = context || document; + + // Single tag + if ( (parsed = rsingleTag.exec( data )) ) { + return [ context.createElement( parsed[1] ) ]; + } + + parsed = jQuery.buildFragment( [ data ], context, scripts ? null : [] ); + return jQuery.merge( [], + (parsed.cacheable ? jQuery.clone( parsed.fragment ) : parsed.fragment).childNodes ); + }, + + parseJSON: function( data ) { + if ( !data || typeof data !== "string") { + return null; + } + + // Make sure leading/trailing whitespace is removed (IE can't handle it) + data = jQuery.trim( data ); + + // Attempt to parse using the native JSON parser first + if ( window.JSON && window.JSON.parse ) { + return window.JSON.parse( data ); + } + + // Make sure the incoming data is actual JSON + // Logic borrowed from http://json.org/json2.js + if ( rvalidchars.test( data.replace( rvalidescape, "@" ) + .replace( rvalidtokens, "]" ) + .replace( rvalidbraces, "")) ) { + + return ( new Function( "return " + data ) )(); + + } + jQuery.error( "Invalid JSON: " + data ); + }, + + // Cross-browser xml parsing + parseXML: function( data ) { + var xml, tmp; + if ( !data || typeof data !== "string" ) { + return null; + } + try { + if ( window.DOMParser ) { // Standard + tmp = new DOMParser(); + xml = tmp.parseFromString( data , "text/xml" ); + } else { // IE + xml = new ActiveXObject( "Microsoft.XMLDOM" ); + xml.async = "false"; + xml.loadXML( data ); + } + } catch( e ) { + xml = undefined; + } + if ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) { + jQuery.error( "Invalid XML: " + data ); + } + return xml; + }, + + noop: function() {}, + + // Evaluates a script in a global context + // Workarounds based on findings by Jim Driscoll + // http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context + globalEval: function( data ) { + if ( data && core_rnotwhite.test( data ) ) { + // We use execScript on Internet Explorer + // We use an anonymous function so that context is window + // rather than jQuery in Firefox + ( window.execScript || function( data ) { + window[ "eval" ].call( window, data ); + } )( data ); + } + }, + + // Convert dashed to camelCase; used by the css and data modules + // Microsoft forgot to hump their vendor prefix (#9572) + camelCase: function( string ) { + return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); + }, + + nodeName: function( elem, name ) { + return elem.nodeName && elem.nodeName.toUpperCase() === name.toUpperCase(); + }, + + // args is for internal usage only + each: function( obj, callback, args ) { + var name, + i = 0, + length = obj.length, + isObj = length === undefined || jQuery.isFunction( obj ); + + if ( args ) { + if ( isObj ) { + for ( name in obj ) { + if ( callback.apply( obj[ name ], args ) === false ) { + break; + } + } + } else { + for ( ; i < length; ) { + if ( callback.apply( obj[ i++ ], args ) === false ) { + break; + } + } + } + + // A special, fast, case for the most common use of each + } else { + if ( isObj ) { + for ( name in obj ) { + if ( callback.call( obj[ name ], name, obj[ name ] ) === false ) { + break; + } + } + } else { + for ( ; i < length; ) { + if ( callback.call( obj[ i ], i, obj[ i++ ] ) === false ) { + break; + } + } + } + } + + return obj; + }, + + // Use native String.trim function wherever possible + trim: core_trim ? + function( text ) { + return text == null ? + "" : + core_trim.call( text ); + } : + + // Otherwise use our own trimming functionality + function( text ) { + return text == null ? + "" : + text.toString().replace( rtrim, "" ); + }, + + // results is for internal usage only + makeArray: function( arr, results ) { + var type, + ret = results || []; + + if ( arr != null ) { + // The window, strings (and functions) also have 'length' + // Tweaked logic slightly to handle Blackberry 4.7 RegExp issues #6930 + type = jQuery.type( arr ); + + if ( arr.length == null || type === "string" || type === "function" || type === "regexp" || jQuery.isWindow( arr ) ) { + core_push.call( ret, arr ); + } else { + jQuery.merge( ret, arr ); + } + } + + return ret; + }, + + inArray: function( elem, arr, i ) { + var len; + + if ( arr ) { + if ( core_indexOf ) { + return core_indexOf.call( arr, elem, i ); + } + + len = arr.length; + i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0; + + for ( ; i < len; i++ ) { + // Skip accessing in sparse arrays + if ( i in arr && arr[ i ] === elem ) { + return i; + } + } + } + + return -1; + }, + + merge: function( first, second ) { + var l = second.length, + i = first.length, + j = 0; + + if ( typeof l === "number" ) { + for ( ; j < l; j++ ) { + first[ i++ ] = second[ j ]; + } + + } else { + while ( second[j] !== undefined ) { + first[ i++ ] = second[ j++ ]; + } + } + + first.length = i; + + return first; + }, + + grep: function( elems, callback, inv ) { + var retVal, + ret = [], + i = 0, + length = elems.length; + inv = !!inv; + + // Go through the array, only saving the items + // that pass the validator function + for ( ; i < length; i++ ) { + retVal = !!callback( elems[ i ], i ); + if ( inv !== retVal ) { + ret.push( elems[ i ] ); + } + } + + return ret; + }, + + // arg is for internal usage only + map: function( elems, callback, arg ) { + var value, key, + ret = [], + i = 0, + length = elems.length, + // jquery objects are treated as arrays + isArray = elems instanceof jQuery || length !== undefined && typeof length === "number" && ( ( length > 0 && elems[ 0 ] && elems[ length -1 ] ) || length === 0 || jQuery.isArray( elems ) ) ; + + // Go through the array, translating each of the items to their + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret[ ret.length ] = value; + } + } + + // Go through every key on the object, + } else { + for ( key in elems ) { + value = callback( elems[ key ], key, arg ); + + if ( value != null ) { + ret[ ret.length ] = value; + } + } + } + + // Flatten any nested arrays + return ret.concat.apply( [], ret ); + }, + + // A global GUID counter for objects + guid: 1, + + // Bind a function to a context, optionally partially applying any + // arguments. + proxy: function( fn, context ) { + var tmp, args, proxy; + + if ( typeof context === "string" ) { + tmp = fn[ context ]; + context = fn; + fn = tmp; + } + + // Quick check to determine if target is callable, in the spec + // this throws a TypeError, but we will just return undefined. + if ( !jQuery.isFunction( fn ) ) { + return undefined; + } + + // Simulated bind + args = core_slice.call( arguments, 2 ); + proxy = function() { + return fn.apply( context, args.concat( core_slice.call( arguments ) ) ); + }; + + // Set the guid of unique handler to the same of original handler, so it can be removed + proxy.guid = fn.guid = fn.guid || proxy.guid || jQuery.guid++; + + return proxy; + }, + + // Multifunctional method to get and set values of a collection + // The value/s can optionally be executed if it's a function + access: function( elems, fn, key, value, chainable, emptyGet, pass ) { + var exec, + bulk = key == null, + i = 0, + length = elems.length; + + // Sets many values + if ( key && typeof key === "object" ) { + for ( i in key ) { + jQuery.access( elems, fn, i, key[i], 1, emptyGet, value ); + } + chainable = 1; + + // Sets one value + } else if ( value !== undefined ) { + // Optionally, function values get executed if exec is true + exec = pass === undefined && jQuery.isFunction( value ); + + if ( bulk ) { + // Bulk operations only iterate when executing function values + if ( exec ) { + exec = fn; + fn = function( elem, key, value ) { + return exec.call( jQuery( elem ), value ); + }; + + // Otherwise they run against the entire set + } else { + fn.call( elems, value ); + fn = null; + } + } + + if ( fn ) { + for (; i < length; i++ ) { + fn( elems[i], key, exec ? value.call( elems[i], i, fn( elems[i], key ) ) : value, pass ); + } + } + + chainable = 1; + } + + return chainable ? + elems : + + // Gets + bulk ? + fn.call( elems ) : + length ? fn( elems[0], key ) : emptyGet; + }, + + now: function() { + return ( new Date() ).getTime(); + } +}); + +jQuery.ready.promise = function( obj ) { + if ( !readyList ) { + + readyList = jQuery.Deferred(); + + // Catch cases where $(document).ready() is called after the + // browser event has already occurred. + if ( document.readyState === "complete" || ( document.readyState !== "loading" && document.addEventListener ) ) { + // Handle it asynchronously to allow scripts the opportunity to delay ready + setTimeout( jQuery.ready, 1 ); + + // Standards-based browsers support DOMContentLoaded + } else if ( document.addEventListener ) { + // Use the handy event callback + document.addEventListener( "DOMContentLoaded", DOMContentLoaded, false ); + + // A fallback to window.onload, that will always work + window.addEventListener( "load", jQuery.ready, false ); + + // If IE event model is used + } else { + // Ensure firing before onload, maybe late but safe also for iframes + document.attachEvent( "onreadystatechange", DOMContentLoaded ); + + // A fallback to window.onload, that will always work + window.attachEvent( "onload", jQuery.ready ); + + // If IE and not a frame + // continually check to see if the document is ready + var top = false; + + try { + top = window.frameElement == null && document.documentElement; + } catch(e) {} + + if ( top && top.doScroll ) { + (function doScrollCheck() { + if ( !jQuery.isReady ) { + + try { + // Use the trick by Diego Perini + // http://javascript.nwbox.com/IEContentLoaded/ + top.doScroll("left"); + } catch(e) { + return setTimeout( doScrollCheck, 50 ); + } + + // and execute any waiting functions + jQuery.ready(); + } + })(); + } + } + } + return readyList.promise( obj ); +}; + +// Populate the class2type map +jQuery.each("Boolean Number String Function Array Date RegExp Object".split(" "), function(i, name) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); +}); + +// All jQuery objects should point back to these +rootjQuery = jQuery(document); +// String to Object options format cache +var optionsCache = {}; + +// Convert String-formatted options into Object-formatted ones and store in cache +function createOptions( options ) { + var object = optionsCache[ options ] = {}; + jQuery.each( options.split( core_rspace ), function( _, flag ) { + object[ flag ] = true; + }); + return object; +} + +/* + * Create a callback list using the following parameters: + * + * options: an optional list of space-separated options that will change how + * the callback list behaves or a more traditional option object + * + * By default a callback list will act like an event callback list and can be + * "fired" multiple times. + * + * Possible options: + * + * once: will ensure the callback list can only be fired once (like a Deferred) + * + * memory: will keep track of previous values and will call any callback added + * after the list has been fired right away with the latest "memorized" + * values (like a Deferred) + * + * unique: will ensure a callback can only be added once (no duplicate in the list) + * + * stopOnFalse: interrupt callings when a callback returns false + * + */ +jQuery.Callbacks = function( options ) { + + // Convert options from String-formatted to Object-formatted if needed + // (we check in cache first) + options = typeof options === "string" ? + ( optionsCache[ options ] || createOptions( options ) ) : + jQuery.extend( {}, options ); + + var // Last fire value (for non-forgettable lists) + memory, + // Flag to know if list was already fired + fired, + // Flag to know if list is currently firing + firing, + // First callback to fire (used internally by add and fireWith) + firingStart, + // End of the loop when firing + firingLength, + // Index of currently firing callback (modified by remove if needed) + firingIndex, + // Actual callback list + list = [], + // Stack of fire calls for repeatable lists + stack = !options.once && [], + // Fire callbacks + fire = function( data ) { + memory = options.memory && data; + fired = true; + firingIndex = firingStart || 0; + firingStart = 0; + firingLength = list.length; + firing = true; + for ( ; list && firingIndex < firingLength; firingIndex++ ) { + if ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) { + memory = false; // To prevent further calls using add + break; + } + } + firing = false; + if ( list ) { + if ( stack ) { + if ( stack.length ) { + fire( stack.shift() ); + } + } else if ( memory ) { + list = []; + } else { + self.disable(); + } + } + }, + // Actual Callbacks object + self = { + // Add a callback or a collection of callbacks to the list + add: function() { + if ( list ) { + // First, we save the current length + var start = list.length; + (function add( args ) { + jQuery.each( args, function( _, arg ) { + if ( jQuery.isFunction( arg ) && ( !options.unique || !self.has( arg ) ) ) { + list.push( arg ); + } else if ( arg && arg.length ) { + // Inspect recursively + add( arg ); + } + }); + })( arguments ); + // Do we need to add the callbacks to the + // current firing batch? + if ( firing ) { + firingLength = list.length; + // With memory, if we're not firing then + // we should call right away + } else if ( memory ) { + firingStart = start; + fire( memory ); + } + } + return this; + }, + // Remove a callback from the list + remove: function() { + if ( list ) { + jQuery.each( arguments, function( _, arg ) { + var index; + while( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { + list.splice( index, 1 ); + // Handle firing indexes + if ( firing ) { + if ( index <= firingLength ) { + firingLength--; + } + if ( index <= firingIndex ) { + firingIndex--; + } + } + } + }); + } + return this; + }, + // Control if a given callback is in the list + has: function( fn ) { + return jQuery.inArray( fn, list ) > -1; + }, + // Remove all callbacks from the list + empty: function() { + list = []; + return this; + }, + // Have the list do nothing anymore + disable: function() { + list = stack = memory = undefined; + return this; + }, + // Is it disabled? + disabled: function() { + return !list; + }, + // Lock the list in its current state + lock: function() { + stack = undefined; + if ( !memory ) { + self.disable(); + } + return this; + }, + // Is it locked? + locked: function() { + return !stack; + }, + // Call all callbacks with the given context and arguments + fireWith: function( context, args ) { + args = args || []; + args = [ context, args.slice ? args.slice() : args ]; + if ( list && ( !fired || stack ) ) { + if ( firing ) { + stack.push( args ); + } else { + fire( args ); + } + } + return this; + }, + // Call all the callbacks with the given arguments + fire: function() { + self.fireWith( this, arguments ); + return this; + }, + // To know if the callbacks have already been called at least once + fired: function() { + return !!fired; + } + }; + + return self; +}; +jQuery.extend({ + + Deferred: function( func ) { + var tuples = [ + // action, add listener, listener list, final state + [ "resolve", "done", jQuery.Callbacks("once memory"), "resolved" ], + [ "reject", "fail", jQuery.Callbacks("once memory"), "rejected" ], + [ "notify", "progress", jQuery.Callbacks("memory") ] + ], + state = "pending", + promise = { + state: function() { + return state; + }, + always: function() { + deferred.done( arguments ).fail( arguments ); + return this; + }, + then: function( /* fnDone, fnFail, fnProgress */ ) { + var fns = arguments; + return jQuery.Deferred(function( newDefer ) { + jQuery.each( tuples, function( i, tuple ) { + var action = tuple[ 0 ], + fn = fns[ i ]; + // deferred[ done | fail | progress ] for forwarding actions to newDefer + deferred[ tuple[1] ]( jQuery.isFunction( fn ) ? + function() { + var returned = fn.apply( this, arguments ); + if ( returned && jQuery.isFunction( returned.promise ) ) { + returned.promise() + .done( newDefer.resolve ) + .fail( newDefer.reject ) + .progress( newDefer.notify ); + } else { + newDefer[ action + "With" ]( this === deferred ? newDefer : this, [ returned ] ); + } + } : + newDefer[ action ] + ); + }); + fns = null; + }).promise(); + }, + // Get a promise for this deferred + // If obj is provided, the promise aspect is added to the object + promise: function( obj ) { + return typeof obj === "object" ? jQuery.extend( obj, promise ) : promise; + } + }, + deferred = {}; + + // Keep pipe for back-compat + promise.pipe = promise.then; + + // Add list-specific methods + jQuery.each( tuples, function( i, tuple ) { + var list = tuple[ 2 ], + stateString = tuple[ 3 ]; + + // promise[ done | fail | progress ] = list.add + promise[ tuple[1] ] = list.add; + + // Handle state + if ( stateString ) { + list.add(function() { + // state = [ resolved | rejected ] + state = stateString; + + // [ reject_list | resolve_list ].disable; progress_list.lock + }, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock ); + } + + // deferred[ resolve | reject | notify ] = list.fire + deferred[ tuple[0] ] = list.fire; + deferred[ tuple[0] + "With" ] = list.fireWith; + }); + + // Make the deferred a promise + promise.promise( deferred ); + + // Call given func if any + if ( func ) { + func.call( deferred, deferred ); + } + + // All done! + return deferred; + }, + + // Deferred helper + when: function( subordinate /* , ..., subordinateN */ ) { + var i = 0, + resolveValues = core_slice.call( arguments ), + length = resolveValues.length, + + // the count of uncompleted subordinates + remaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0, + + // the master Deferred. If resolveValues consist of only a single Deferred, just use that. + deferred = remaining === 1 ? subordinate : jQuery.Deferred(), + + // Update function for both resolve and progress values + updateFunc = function( i, contexts, values ) { + return function( value ) { + contexts[ i ] = this; + values[ i ] = arguments.length > 1 ? core_slice.call( arguments ) : value; + if( values === progressValues ) { + deferred.notifyWith( contexts, values ); + } else if ( !( --remaining ) ) { + deferred.resolveWith( contexts, values ); + } + }; + }, + + progressValues, progressContexts, resolveContexts; + + // add listeners to Deferred subordinates; treat others as resolved + if ( length > 1 ) { + progressValues = new Array( length ); + progressContexts = new Array( length ); + resolveContexts = new Array( length ); + for ( ; i < length; i++ ) { + if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) { + resolveValues[ i ].promise() + .done( updateFunc( i, resolveContexts, resolveValues ) ) + .fail( deferred.reject ) + .progress( updateFunc( i, progressContexts, progressValues ) ); + } else { + --remaining; + } + } + } + + // if we're not waiting on anything, resolve the master + if ( !remaining ) { + deferred.resolveWith( resolveContexts, resolveValues ); + } + + return deferred.promise(); + } +}); +jQuery.support = (function() { + + var support, + all, + a, + select, + opt, + input, + fragment, + eventName, + i, + isSupported, + clickFn, + div = document.createElement("div"); + + // Preliminary tests + div.setAttribute( "className", "t" ); + div.innerHTML = "
                                a"; + + all = div.getElementsByTagName("*"); + a = div.getElementsByTagName("a")[ 0 ]; + a.style.cssText = "top:1px;float:left;opacity:.5"; + + // Can't get basic test support + if ( !all || !all.length || !a ) { + return {}; + } + + // First batch of supports tests + select = document.createElement("select"); + opt = select.appendChild( document.createElement("option") ); + input = div.getElementsByTagName("input")[ 0 ]; + + support = { + // IE strips leading whitespace when .innerHTML is used + leadingWhitespace: ( div.firstChild.nodeType === 3 ), + + // Make sure that tbody elements aren't automatically inserted + // IE will insert them into empty tables + tbody: !div.getElementsByTagName("tbody").length, + + // Make sure that link elements get serialized correctly by innerHTML + // This requires a wrapper element in IE + htmlSerialize: !!div.getElementsByTagName("link").length, + + // Get the style information from getAttribute + // (IE uses .cssText instead) + style: /top/.test( a.getAttribute("style") ), + + // Make sure that URLs aren't manipulated + // (IE normalizes it by default) + hrefNormalized: ( a.getAttribute("href") === "/a" ), + + // Make sure that element opacity exists + // (IE uses filter instead) + // Use a regex to work around a WebKit issue. See #5145 + opacity: /^0.5/.test( a.style.opacity ), + + // Verify style float existence + // (IE uses styleFloat instead of cssFloat) + cssFloat: !!a.style.cssFloat, + + // Make sure that if no value is specified for a checkbox + // that it defaults to "on". + // (WebKit defaults to "" instead) + checkOn: ( input.value === "on" ), + + // Make sure that a selected-by-default option has a working selected property. + // (WebKit defaults to false instead of true, IE too, if it's in an optgroup) + optSelected: opt.selected, + + // Test setAttribute on camelCase class. If it works, we need attrFixes when doing get/setAttribute (ie6/7) + getSetAttribute: div.className !== "t", + + // Tests for enctype support on a form(#6743) + enctype: !!document.createElement("form").enctype, + + // Makes sure cloning an html5 element does not cause problems + // Where outerHTML is undefined, this still works + html5Clone: document.createElement("nav").cloneNode( true ).outerHTML !== "<:nav>", + + // jQuery.support.boxModel DEPRECATED in 1.8 since we don't support Quirks Mode + boxModel: ( document.compatMode === "CSS1Compat" ), + + // Will be defined later + submitBubbles: true, + changeBubbles: true, + focusinBubbles: false, + deleteExpando: true, + noCloneEvent: true, + inlineBlockNeedsLayout: false, + shrinkWrapBlocks: false, + reliableMarginRight: true, + boxSizingReliable: true, + pixelPosition: false + }; + + // Make sure checked status is properly cloned + input.checked = true; + support.noCloneChecked = input.cloneNode( true ).checked; + + // Make sure that the options inside disabled selects aren't marked as disabled + // (WebKit marks them as disabled) + select.disabled = true; + support.optDisabled = !opt.disabled; + + // Test to see if it's possible to delete an expando from an element + // Fails in Internet Explorer + try { + delete div.test; + } catch( e ) { + support.deleteExpando = false; + } + + if ( !div.addEventListener && div.attachEvent && div.fireEvent ) { + div.attachEvent( "onclick", clickFn = function() { + // Cloning a node shouldn't copy over any + // bound event handlers (IE does this) + support.noCloneEvent = false; + }); + div.cloneNode( true ).fireEvent("onclick"); + div.detachEvent( "onclick", clickFn ); + } + + // Check if a radio maintains its value + // after being appended to the DOM + input = document.createElement("input"); + input.value = "t"; + input.setAttribute( "type", "radio" ); + support.radioValue = input.value === "t"; + + input.setAttribute( "checked", "checked" ); + + // #11217 - WebKit loses check when the name is after the checked attribute + input.setAttribute( "name", "t" ); + + div.appendChild( input ); + fragment = document.createDocumentFragment(); + fragment.appendChild( div.lastChild ); + + // WebKit doesn't clone checked state correctly in fragments + support.checkClone = fragment.cloneNode( true ).cloneNode( true ).lastChild.checked; + + // Check if a disconnected checkbox will retain its checked + // value of true after appended to the DOM (IE6/7) + support.appendChecked = input.checked; + + fragment.removeChild( input ); + fragment.appendChild( div ); + + // Technique from Juriy Zaytsev + // http://perfectionkills.com/detecting-event-support-without-browser-sniffing/ + // We only care about the case where non-standard event systems + // are used, namely in IE. Short-circuiting here helps us to + // avoid an eval call (in setAttribute) which can cause CSP + // to go haywire. See: https://developer.mozilla.org/en/Security/CSP + if ( div.attachEvent ) { + for ( i in { + submit: true, + change: true, + focusin: true + }) { + eventName = "on" + i; + isSupported = ( eventName in div ); + if ( !isSupported ) { + div.setAttribute( eventName, "return;" ); + isSupported = ( typeof div[ eventName ] === "function" ); + } + support[ i + "Bubbles" ] = isSupported; + } + } + + // Run tests that need a body at doc ready + jQuery(function() { + var container, div, tds, marginDiv, + divReset = "padding:0;margin:0;border:0;display:block;overflow:hidden;", + body = document.getElementsByTagName("body")[0]; + + if ( !body ) { + // Return for frameset docs that don't have a body + return; + } + + container = document.createElement("div"); + container.style.cssText = "visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px"; + body.insertBefore( container, body.firstChild ); + + // Construct the test element + div = document.createElement("div"); + container.appendChild( div ); + + // Check if table cells still have offsetWidth/Height when they are set + // to display:none and there are still other visible table cells in a + // table row; if so, offsetWidth/Height are not reliable for use when + // determining if an element has been hidden directly using + // display:none (it is still safe to use offsets if a parent element is + // hidden; don safety goggles and see bug #4512 for more information). + // (only IE 8 fails this test) + div.innerHTML = "
                                t
                                "; + tds = div.getElementsByTagName("td"); + tds[ 0 ].style.cssText = "padding:0;margin:0;border:0;display:none"; + isSupported = ( tds[ 0 ].offsetHeight === 0 ); + + tds[ 0 ].style.display = ""; + tds[ 1 ].style.display = "none"; + + // Check if empty table cells still have offsetWidth/Height + // (IE <= 8 fail this test) + support.reliableHiddenOffsets = isSupported && ( tds[ 0 ].offsetHeight === 0 ); + + // Check box-sizing and margin behavior + div.innerHTML = ""; + div.style.cssText = "box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;"; + support.boxSizing = ( div.offsetWidth === 4 ); + support.doesNotIncludeMarginInBodyOffset = ( body.offsetTop !== 1 ); + + // NOTE: To any future maintainer, window.getComputedStyle was used here + // instead of getComputedStyle because it gave a better gzip size. + // The difference between window.getComputedStyle and getComputedStyle is + // 7 bytes + if ( window.getComputedStyle ) { + support.pixelPosition = ( window.getComputedStyle( div, null ) || {} ).top !== "1%"; + support.boxSizingReliable = ( window.getComputedStyle( div, null ) || { width: "4px" } ).width === "4px"; + + // Check if div with explicit width and no margin-right incorrectly + // gets computed margin-right based on width of container. For more + // info see bug #3333 + // Fails in WebKit before Feb 2011 nightlies + // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right + marginDiv = document.createElement("div"); + marginDiv.style.cssText = div.style.cssText = divReset; + marginDiv.style.marginRight = marginDiv.style.width = "0"; + div.style.width = "1px"; + div.appendChild( marginDiv ); + support.reliableMarginRight = + !parseFloat( ( window.getComputedStyle( marginDiv, null ) || {} ).marginRight ); + } + + if ( typeof div.style.zoom !== "undefined" ) { + // Check if natively block-level elements act like inline-block + // elements when setting their display to 'inline' and giving + // them layout + // (IE < 8 does this) + div.innerHTML = ""; + div.style.cssText = divReset + "width:1px;padding:1px;display:inline;zoom:1"; + support.inlineBlockNeedsLayout = ( div.offsetWidth === 3 ); + + // Check if elements with layout shrink-wrap their children + // (IE 6 does this) + div.style.display = "block"; + div.style.overflow = "visible"; + div.innerHTML = "
                                "; + div.firstChild.style.width = "5px"; + support.shrinkWrapBlocks = ( div.offsetWidth !== 3 ); + + container.style.zoom = 1; + } + + // Null elements to avoid leaks in IE + body.removeChild( container ); + container = div = tds = marginDiv = null; + }); + + // Null elements to avoid leaks in IE + fragment.removeChild( div ); + all = a = select = opt = input = fragment = div = null; + + return support; +})(); +var rbrace = /^(?:\{.*\}|\[.*\])$/, + rmultiDash = /([A-Z])/g; + +jQuery.extend({ + cache: {}, + + deletedIds: [], + + // Please use with caution + uuid: 0, + + // Unique for each copy of jQuery on the page + // Non-digits removed to match rinlinejQuery + expando: "jQuery" + ( jQuery.fn.jquery + Math.random() ).replace( /\D/g, "" ), + + // The following elements throw uncatchable exceptions if you + // attempt to add expando properties to them. + noData: { + "embed": true, + // Ban all objects except for Flash (which handle expandos) + "object": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000", + "applet": true + }, + + hasData: function( elem ) { + elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ]; + return !!elem && !isEmptyDataObject( elem ); + }, + + data: function( elem, name, data, pvt /* Internal Use Only */ ) { + if ( !jQuery.acceptData( elem ) ) { + return; + } + + var thisCache, ret, + internalKey = jQuery.expando, + getByName = typeof name === "string", + + // We have to handle DOM nodes and JS objects differently because IE6-7 + // can't GC object references properly across the DOM-JS boundary + isNode = elem.nodeType, + + // Only DOM nodes need the global jQuery cache; JS object data is + // attached directly to the object so GC can occur automatically + cache = isNode ? jQuery.cache : elem, + + // Only defining an ID for JS objects if its cache already exists allows + // the code to shortcut on the same path as a DOM node with no cache + id = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey; + + // Avoid doing any more work than we need to when trying to get data on an + // object that has no data at all + if ( (!id || !cache[id] || (!pvt && !cache[id].data)) && getByName && data === undefined ) { + return; + } + + if ( !id ) { + // Only DOM nodes need a new unique ID for each element since their data + // ends up in the global cache + if ( isNode ) { + elem[ internalKey ] = id = jQuery.deletedIds.pop() || ++jQuery.uuid; + } else { + id = internalKey; + } + } + + if ( !cache[ id ] ) { + cache[ id ] = {}; + + // Avoids exposing jQuery metadata on plain JS objects when the object + // is serialized using JSON.stringify + if ( !isNode ) { + cache[ id ].toJSON = jQuery.noop; + } + } + + // An object can be passed to jQuery.data instead of a key/value pair; this gets + // shallow copied over onto the existing cache + if ( typeof name === "object" || typeof name === "function" ) { + if ( pvt ) { + cache[ id ] = jQuery.extend( cache[ id ], name ); + } else { + cache[ id ].data = jQuery.extend( cache[ id ].data, name ); + } + } + + thisCache = cache[ id ]; + + // jQuery data() is stored in a separate object inside the object's internal data + // cache in order to avoid key collisions between internal data and user-defined + // data. + if ( !pvt ) { + if ( !thisCache.data ) { + thisCache.data = {}; + } + + thisCache = thisCache.data; + } + + if ( data !== undefined ) { + thisCache[ jQuery.camelCase( name ) ] = data; + } + + // Check for both converted-to-camel and non-converted data property names + // If a data property was specified + if ( getByName ) { + + // First Try to find as-is property data + ret = thisCache[ name ]; + + // Test for null|undefined property data + if ( ret == null ) { + + // Try to find the camelCased property + ret = thisCache[ jQuery.camelCase( name ) ]; + } + } else { + ret = thisCache; + } + + return ret; + }, + + removeData: function( elem, name, pvt /* Internal Use Only */ ) { + if ( !jQuery.acceptData( elem ) ) { + return; + } + + var thisCache, i, l, + + isNode = elem.nodeType, + + // See jQuery.data for more information + cache = isNode ? jQuery.cache : elem, + id = isNode ? elem[ jQuery.expando ] : jQuery.expando; + + // If there is already no cache entry for this object, there is no + // purpose in continuing + if ( !cache[ id ] ) { + return; + } + + if ( name ) { + + thisCache = pvt ? cache[ id ] : cache[ id ].data; + + if ( thisCache ) { + + // Support array or space separated string names for data keys + if ( !jQuery.isArray( name ) ) { + + // try the string as a key before any manipulation + if ( name in thisCache ) { + name = [ name ]; + } else { + + // split the camel cased version by spaces unless a key with the spaces exists + name = jQuery.camelCase( name ); + if ( name in thisCache ) { + name = [ name ]; + } else { + name = name.split(" "); + } + } + } + + for ( i = 0, l = name.length; i < l; i++ ) { + delete thisCache[ name[i] ]; + } + + // If there is no data left in the cache, we want to continue + // and let the cache object itself get destroyed + if ( !( pvt ? isEmptyDataObject : jQuery.isEmptyObject )( thisCache ) ) { + return; + } + } + } + + // See jQuery.data for more information + if ( !pvt ) { + delete cache[ id ].data; + + // Don't destroy the parent cache unless the internal data object + // had been the only thing left in it + if ( !isEmptyDataObject( cache[ id ] ) ) { + return; + } + } + + // Destroy the cache + if ( isNode ) { + jQuery.cleanData( [ elem ], true ); + + // Use delete when supported for expandos or `cache` is not a window per isWindow (#10080) + } else if ( jQuery.support.deleteExpando || cache != cache.window ) { + delete cache[ id ]; + + // When all else fails, null + } else { + cache[ id ] = null; + } + }, + + // For internal use only. + _data: function( elem, name, data ) { + return jQuery.data( elem, name, data, true ); + }, + + // A method for determining if a DOM node can handle the data expando + acceptData: function( elem ) { + var noData = elem.nodeName && jQuery.noData[ elem.nodeName.toLowerCase() ]; + + // nodes accept data unless otherwise specified; rejection can be conditional + return !noData || noData !== true && elem.getAttribute("classid") === noData; + } +}); + +jQuery.fn.extend({ + data: function( key, value ) { + var parts, part, attr, name, l, + elem = this[0], + i = 0, + data = null; + + // Gets all values + if ( key === undefined ) { + if ( this.length ) { + data = jQuery.data( elem ); + + if ( elem.nodeType === 1 && !jQuery._data( elem, "parsedAttrs" ) ) { + attr = elem.attributes; + for ( l = attr.length; i < l; i++ ) { + name = attr[i].name; + + if ( name.indexOf( "data-" ) === 0 ) { + name = jQuery.camelCase( name.substring(5) ); + + dataAttr( elem, name, data[ name ] ); + } + } + jQuery._data( elem, "parsedAttrs", true ); + } + } + + return data; + } + + // Sets multiple values + if ( typeof key === "object" ) { + return this.each(function() { + jQuery.data( this, key ); + }); + } + + parts = key.split( ".", 2 ); + parts[1] = parts[1] ? "." + parts[1] : ""; + part = parts[1] + "!"; + + return jQuery.access( this, function( value ) { + + if ( value === undefined ) { + data = this.triggerHandler( "getData" + part, [ parts[0] ] ); + + // Try to fetch any internally stored data first + if ( data === undefined && elem ) { + data = jQuery.data( elem, key ); + data = dataAttr( elem, key, data ); + } + + return data === undefined && parts[1] ? + this.data( parts[0] ) : + data; + } + + parts[1] = value; + this.each(function() { + var self = jQuery( this ); + + self.triggerHandler( "setData" + part, parts ); + jQuery.data( this, key, value ); + self.triggerHandler( "changeData" + part, parts ); + }); + }, null, value, arguments.length > 1, null, false ); + }, + + removeData: function( key ) { + return this.each(function() { + jQuery.removeData( this, key ); + }); + } +}); + +function dataAttr( elem, key, data ) { + // If nothing was found internally, try to fetch any + // data from the HTML5 data-* attribute + if ( data === undefined && elem.nodeType === 1 ) { + + var name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase(); + + data = elem.getAttribute( name ); + + if ( typeof data === "string" ) { + try { + data = data === "true" ? true : + data === "false" ? false : + data === "null" ? null : + // Only convert to a number if it doesn't change the string + +data + "" === data ? +data : + rbrace.test( data ) ? jQuery.parseJSON( data ) : + data; + } catch( e ) {} + + // Make sure we set the data so it isn't changed later + jQuery.data( elem, key, data ); + + } else { + data = undefined; + } + } + + return data; +} + +// checks a cache object for emptiness +function isEmptyDataObject( obj ) { + var name; + for ( name in obj ) { + + // if the public data object is empty, the private is still empty + if ( name === "data" && jQuery.isEmptyObject( obj[name] ) ) { + continue; + } + if ( name !== "toJSON" ) { + return false; + } + } + + return true; +} +jQuery.extend({ + queue: function( elem, type, data ) { + var queue; + + if ( elem ) { + type = ( type || "fx" ) + "queue"; + queue = jQuery._data( elem, type ); + + // Speed up dequeue by getting out quickly if this is just a lookup + if ( data ) { + if ( !queue || jQuery.isArray(data) ) { + queue = jQuery._data( elem, type, jQuery.makeArray(data) ); + } else { + queue.push( data ); + } + } + return queue || []; + } + }, + + dequeue: function( elem, type ) { + type = type || "fx"; + + var queue = jQuery.queue( elem, type ), + fn = queue.shift(), + hooks = jQuery._queueHooks( elem, type ), + next = function() { + jQuery.dequeue( elem, type ); + }; + + // If the fx queue is dequeued, always remove the progress sentinel + if ( fn === "inprogress" ) { + fn = queue.shift(); + } + + if ( fn ) { + + // Add a progress sentinel to prevent the fx queue from being + // automatically dequeued + if ( type === "fx" ) { + queue.unshift( "inprogress" ); + } + + // clear up the last queue stop function + delete hooks.stop; + fn.call( elem, next, hooks ); + } + if ( !queue.length && hooks ) { + hooks.empty.fire(); + } + }, + + // not intended for public consumption - generates a queueHooks object, or returns the current one + _queueHooks: function( elem, type ) { + var key = type + "queueHooks"; + return jQuery._data( elem, key ) || jQuery._data( elem, key, { + empty: jQuery.Callbacks("once memory").add(function() { + jQuery.removeData( elem, type + "queue", true ); + jQuery.removeData( elem, key, true ); + }) + }); + } +}); + +jQuery.fn.extend({ + queue: function( type, data ) { + var setter = 2; + + if ( typeof type !== "string" ) { + data = type; + type = "fx"; + setter--; + } + + if ( arguments.length < setter ) { + return jQuery.queue( this[0], type ); + } + + return data === undefined ? + this : + this.each(function() { + var queue = jQuery.queue( this, type, data ); + + // ensure a hooks for this queue + jQuery._queueHooks( this, type ); + + if ( type === "fx" && queue[0] !== "inprogress" ) { + jQuery.dequeue( this, type ); + } + }); + }, + dequeue: function( type ) { + return this.each(function() { + jQuery.dequeue( this, type ); + }); + }, + // Based off of the plugin by Clint Helfers, with permission. + // http://blindsignals.com/index.php/2009/07/jquery-delay/ + delay: function( time, type ) { + time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; + type = type || "fx"; + + return this.queue( type, function( next, hooks ) { + var timeout = setTimeout( next, time ); + hooks.stop = function() { + clearTimeout( timeout ); + }; + }); + }, + clearQueue: function( type ) { + return this.queue( type || "fx", [] ); + }, + // Get a promise resolved when queues of a certain type + // are emptied (fx is the type by default) + promise: function( type, obj ) { + var tmp, + count = 1, + defer = jQuery.Deferred(), + elements = this, + i = this.length, + resolve = function() { + if ( !( --count ) ) { + defer.resolveWith( elements, [ elements ] ); + } + }; + + if ( typeof type !== "string" ) { + obj = type; + type = undefined; + } + type = type || "fx"; + + while( i-- ) { + if ( (tmp = jQuery._data( elements[ i ], type + "queueHooks" )) && tmp.empty ) { + count++; + tmp.empty.add( resolve ); + } + } + resolve(); + return defer.promise( obj ); + } +}); +var nodeHook, boolHook, fixSpecified, + rclass = /[\t\r\n]/g, + rreturn = /\r/g, + rtype = /^(?:button|input)$/i, + rfocusable = /^(?:button|input|object|select|textarea)$/i, + rclickable = /^a(?:rea|)$/i, + rboolean = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i, + getSetAttribute = jQuery.support.getSetAttribute; + +jQuery.fn.extend({ + attr: function( name, value ) { + return jQuery.access( this, jQuery.attr, name, value, arguments.length > 1 ); + }, + + removeAttr: function( name ) { + return this.each(function() { + jQuery.removeAttr( this, name ); + }); + }, + + prop: function( name, value ) { + return jQuery.access( this, jQuery.prop, name, value, arguments.length > 1 ); + }, + + removeProp: function( name ) { + name = jQuery.propFix[ name ] || name; + return this.each(function() { + // try/catch handles cases where IE balks (such as removing a property on window) + try { + this[ name ] = undefined; + delete this[ name ]; + } catch( e ) {} + }); + }, + + addClass: function( value ) { + var classNames, i, l, elem, + setClass, c, cl; + + if ( jQuery.isFunction( value ) ) { + return this.each(function( j ) { + jQuery( this ).addClass( value.call(this, j, this.className) ); + }); + } + + if ( value && typeof value === "string" ) { + classNames = value.split( core_rspace ); + + for ( i = 0, l = this.length; i < l; i++ ) { + elem = this[ i ]; + + if ( elem.nodeType === 1 ) { + if ( !elem.className && classNames.length === 1 ) { + elem.className = value; + + } else { + setClass = " " + elem.className + " "; + + for ( c = 0, cl = classNames.length; c < cl; c++ ) { + if ( !~setClass.indexOf( " " + classNames[ c ] + " " ) ) { + setClass += classNames[ c ] + " "; + } + } + elem.className = jQuery.trim( setClass ); + } + } + } + } + + return this; + }, + + removeClass: function( value ) { + var removes, className, elem, c, cl, i, l; + + if ( jQuery.isFunction( value ) ) { + return this.each(function( j ) { + jQuery( this ).removeClass( value.call(this, j, this.className) ); + }); + } + if ( (value && typeof value === "string") || value === undefined ) { + removes = ( value || "" ).split( core_rspace ); + + for ( i = 0, l = this.length; i < l; i++ ) { + elem = this[ i ]; + if ( elem.nodeType === 1 && elem.className ) { + + className = (" " + elem.className + " ").replace( rclass, " " ); + + // loop over each item in the removal list + for ( c = 0, cl = removes.length; c < cl; c++ ) { + // Remove until there is nothing to remove, + while ( className.indexOf(" " + removes[ c ] + " ") > -1 ) { + className = className.replace( " " + removes[ c ] + " " , " " ); + } + } + elem.className = value ? jQuery.trim( className ) : ""; + } + } + } + + return this; + }, + + toggleClass: function( value, stateVal ) { + var type = typeof value, + isBool = typeof stateVal === "boolean"; + + if ( jQuery.isFunction( value ) ) { + return this.each(function( i ) { + jQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal ); + }); + } + + return this.each(function() { + if ( type === "string" ) { + // toggle individual class names + var className, + i = 0, + self = jQuery( this ), + state = stateVal, + classNames = value.split( core_rspace ); + + while ( (className = classNames[ i++ ]) ) { + // check each className given, space separated list + state = isBool ? state : !self.hasClass( className ); + self[ state ? "addClass" : "removeClass" ]( className ); + } + + } else if ( type === "undefined" || type === "boolean" ) { + if ( this.className ) { + // store className if set + jQuery._data( this, "__className__", this.className ); + } + + // toggle whole className + this.className = this.className || value === false ? "" : jQuery._data( this, "__className__" ) || ""; + } + }); + }, + + hasClass: function( selector ) { + var className = " " + selector + " ", + i = 0, + l = this.length; + for ( ; i < l; i++ ) { + if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) > -1 ) { + return true; + } + } + + return false; + }, + + val: function( value ) { + var hooks, ret, isFunction, + elem = this[0]; + + if ( !arguments.length ) { + if ( elem ) { + hooks = jQuery.valHooks[ elem.type ] || jQuery.valHooks[ elem.nodeName.toLowerCase() ]; + + if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) { + return ret; + } + + ret = elem.value; + + return typeof ret === "string" ? + // handle most common string cases + ret.replace(rreturn, "") : + // handle cases where value is null/undef or number + ret == null ? "" : ret; + } + + return; + } + + isFunction = jQuery.isFunction( value ); + + return this.each(function( i ) { + var val, + self = jQuery(this); + + if ( this.nodeType !== 1 ) { + return; + } + + if ( isFunction ) { + val = value.call( this, i, self.val() ); + } else { + val = value; + } + + // Treat null/undefined as ""; convert numbers to string + if ( val == null ) { + val = ""; + } else if ( typeof val === "number" ) { + val += ""; + } else if ( jQuery.isArray( val ) ) { + val = jQuery.map(val, function ( value ) { + return value == null ? "" : value + ""; + }); + } + + hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; + + // If set returns undefined, fall back to normal setting + if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) { + this.value = val; + } + }); + } +}); + +jQuery.extend({ + valHooks: { + option: { + get: function( elem ) { + // attributes.value is undefined in Blackberry 4.7 but + // uses .value. See #6932 + var val = elem.attributes.value; + return !val || val.specified ? elem.value : elem.text; + } + }, + select: { + get: function( elem ) { + var value, i, max, option, + index = elem.selectedIndex, + values = [], + options = elem.options, + one = elem.type === "select-one"; + + // Nothing was selected + if ( index < 0 ) { + return null; + } + + // Loop through all the selected options + i = one ? index : 0; + max = one ? index + 1 : options.length; + for ( ; i < max; i++ ) { + option = options[ i ]; + + // Don't return options that are disabled or in a disabled optgroup + if ( option.selected && (jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null) && + (!option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" )) ) { + + // Get the specific value for the option + value = jQuery( option ).val(); + + // We don't need an array for one selects + if ( one ) { + return value; + } + + // Multi-Selects return an array + values.push( value ); + } + } + + // Fixes Bug #2551 -- select.val() broken in IE after form.reset() + if ( one && !values.length && options.length ) { + return jQuery( options[ index ] ).val(); + } + + return values; + }, + + set: function( elem, value ) { + var values = jQuery.makeArray( value ); + + jQuery(elem).find("option").each(function() { + this.selected = jQuery.inArray( jQuery(this).val(), values ) >= 0; + }); + + if ( !values.length ) { + elem.selectedIndex = -1; + } + return values; + } + } + }, + + // Unused in 1.8, left in so attrFn-stabbers won't die; remove in 1.9 + attrFn: {}, + + attr: function( elem, name, value, pass ) { + var ret, hooks, notxml, + nType = elem.nodeType; + + // don't get/set attributes on text, comment and attribute nodes + if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + if ( pass && jQuery.isFunction( jQuery.fn[ name ] ) ) { + return jQuery( elem )[ name ]( value ); + } + + // Fallback to prop when attributes are not supported + if ( typeof elem.getAttribute === "undefined" ) { + return jQuery.prop( elem, name, value ); + } + + notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); + + // All attributes are lowercase + // Grab necessary hook if one is defined + if ( notxml ) { + name = name.toLowerCase(); + hooks = jQuery.attrHooks[ name ] || ( rboolean.test( name ) ? boolHook : nodeHook ); + } + + if ( value !== undefined ) { + + if ( value === null ) { + jQuery.removeAttr( elem, name ); + return; + + } else if ( hooks && "set" in hooks && notxml && (ret = hooks.set( elem, value, name )) !== undefined ) { + return ret; + + } else { + elem.setAttribute( name, "" + value ); + return value; + } + + } else if ( hooks && "get" in hooks && notxml && (ret = hooks.get( elem, name )) !== null ) { + return ret; + + } else { + + ret = elem.getAttribute( name ); + + // Non-existent attributes return null, we normalize to undefined + return ret === null ? + undefined : + ret; + } + }, + + removeAttr: function( elem, value ) { + var propName, attrNames, name, isBool, + i = 0; + + if ( value && elem.nodeType === 1 ) { + + attrNames = value.split( core_rspace ); + + for ( ; i < attrNames.length; i++ ) { + name = attrNames[ i ]; + + if ( name ) { + propName = jQuery.propFix[ name ] || name; + isBool = rboolean.test( name ); + + // See #9699 for explanation of this approach (setting first, then removal) + // Do not do this for boolean attributes (see #10870) + if ( !isBool ) { + jQuery.attr( elem, name, "" ); + } + elem.removeAttribute( getSetAttribute ? name : propName ); + + // Set corresponding property to false for boolean attributes + if ( isBool && propName in elem ) { + elem[ propName ] = false; + } + } + } + } + }, + + attrHooks: { + type: { + set: function( elem, value ) { + // We can't allow the type property to be changed (since it causes problems in IE) + if ( rtype.test( elem.nodeName ) && elem.parentNode ) { + jQuery.error( "type property can't be changed" ); + } else if ( !jQuery.support.radioValue && value === "radio" && jQuery.nodeName(elem, "input") ) { + // Setting the type on a radio button after the value resets the value in IE6-9 + // Reset value to it's default in case type is set after value + // This is for element creation + var val = elem.value; + elem.setAttribute( "type", value ); + if ( val ) { + elem.value = val; + } + return value; + } + } + }, + // Use the value property for back compat + // Use the nodeHook for button elements in IE6/7 (#1954) + value: { + get: function( elem, name ) { + if ( nodeHook && jQuery.nodeName( elem, "button" ) ) { + return nodeHook.get( elem, name ); + } + return name in elem ? + elem.value : + null; + }, + set: function( elem, value, name ) { + if ( nodeHook && jQuery.nodeName( elem, "button" ) ) { + return nodeHook.set( elem, value, name ); + } + // Does not return so that setAttribute is also used + elem.value = value; + } + } + }, + + propFix: { + tabindex: "tabIndex", + readonly: "readOnly", + "for": "htmlFor", + "class": "className", + maxlength: "maxLength", + cellspacing: "cellSpacing", + cellpadding: "cellPadding", + rowspan: "rowSpan", + colspan: "colSpan", + usemap: "useMap", + frameborder: "frameBorder", + contenteditable: "contentEditable" + }, + + prop: function( elem, name, value ) { + var ret, hooks, notxml, + nType = elem.nodeType; + + // don't get/set properties on text, comment and attribute nodes + if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); + + if ( notxml ) { + // Fix name and attach hooks + name = jQuery.propFix[ name ] || name; + hooks = jQuery.propHooks[ name ]; + } + + if ( value !== undefined ) { + if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) { + return ret; + + } else { + return ( elem[ name ] = value ); + } + + } else { + if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) { + return ret; + + } else { + return elem[ name ]; + } + } + }, + + propHooks: { + tabIndex: { + get: function( elem ) { + // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set + // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ + var attributeNode = elem.getAttributeNode("tabindex"); + + return attributeNode && attributeNode.specified ? + parseInt( attributeNode.value, 10 ) : + rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ? + 0 : + undefined; + } + } + } +}); + +// Hook for boolean attributes +boolHook = { + get: function( elem, name ) { + // Align boolean attributes with corresponding properties + // Fall back to attribute presence where some booleans are not supported + var attrNode, + property = jQuery.prop( elem, name ); + return property === true || typeof property !== "boolean" && ( attrNode = elem.getAttributeNode(name) ) && attrNode.nodeValue !== false ? + name.toLowerCase() : + undefined; + }, + set: function( elem, value, name ) { + var propName; + if ( value === false ) { + // Remove boolean attributes when set to false + jQuery.removeAttr( elem, name ); + } else { + // value is true since we know at this point it's type boolean and not false + // Set boolean attributes to the same name and set the DOM property + propName = jQuery.propFix[ name ] || name; + if ( propName in elem ) { + // Only set the IDL specifically if it already exists on the element + elem[ propName ] = true; + } + + elem.setAttribute( name, name.toLowerCase() ); + } + return name; + } +}; + +// IE6/7 do not support getting/setting some attributes with get/setAttribute +if ( !getSetAttribute ) { + + fixSpecified = { + name: true, + id: true, + coords: true + }; + + // Use this for any attribute in IE6/7 + // This fixes almost every IE6/7 issue + nodeHook = jQuery.valHooks.button = { + get: function( elem, name ) { + var ret; + ret = elem.getAttributeNode( name ); + return ret && ( fixSpecified[ name ] ? ret.value !== "" : ret.specified ) ? + ret.value : + undefined; + }, + set: function( elem, value, name ) { + // Set the existing or create a new attribute node + var ret = elem.getAttributeNode( name ); + if ( !ret ) { + ret = document.createAttribute( name ); + elem.setAttributeNode( ret ); + } + return ( ret.value = value + "" ); + } + }; + + // Set width and height to auto instead of 0 on empty string( Bug #8150 ) + // This is for removals + jQuery.each([ "width", "height" ], function( i, name ) { + jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], { + set: function( elem, value ) { + if ( value === "" ) { + elem.setAttribute( name, "auto" ); + return value; + } + } + }); + }); + + // Set contenteditable to false on removals(#10429) + // Setting to empty string throws an error as an invalid value + jQuery.attrHooks.contenteditable = { + get: nodeHook.get, + set: function( elem, value, name ) { + if ( value === "" ) { + value = "false"; + } + nodeHook.set( elem, value, name ); + } + }; +} + + +// Some attributes require a special call on IE +if ( !jQuery.support.hrefNormalized ) { + jQuery.each([ "href", "src", "width", "height" ], function( i, name ) { + jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], { + get: function( elem ) { + var ret = elem.getAttribute( name, 2 ); + return ret === null ? undefined : ret; + } + }); + }); +} + +if ( !jQuery.support.style ) { + jQuery.attrHooks.style = { + get: function( elem ) { + // Return undefined in the case of empty string + // Normalize to lowercase since IE uppercases css property names + return elem.style.cssText.toLowerCase() || undefined; + }, + set: function( elem, value ) { + return ( elem.style.cssText = "" + value ); + } + }; +} + +// Safari mis-reports the default selected property of an option +// Accessing the parent's selectedIndex property fixes it +if ( !jQuery.support.optSelected ) { + jQuery.propHooks.selected = jQuery.extend( jQuery.propHooks.selected, { + get: function( elem ) { + var parent = elem.parentNode; + + if ( parent ) { + parent.selectedIndex; + + // Make sure that it also works with optgroups, see #5701 + if ( parent.parentNode ) { + parent.parentNode.selectedIndex; + } + } + return null; + } + }); +} + +// IE6/7 call enctype encoding +if ( !jQuery.support.enctype ) { + jQuery.propFix.enctype = "encoding"; +} + +// Radios and checkboxes getter/setter +if ( !jQuery.support.checkOn ) { + jQuery.each([ "radio", "checkbox" ], function() { + jQuery.valHooks[ this ] = { + get: function( elem ) { + // Handle the case where in Webkit "" is returned instead of "on" if a value isn't specified + return elem.getAttribute("value") === null ? "on" : elem.value; + } + }; + }); +} +jQuery.each([ "radio", "checkbox" ], function() { + jQuery.valHooks[ this ] = jQuery.extend( jQuery.valHooks[ this ], { + set: function( elem, value ) { + if ( jQuery.isArray( value ) ) { + return ( elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0 ); + } + } + }); +}); +var rformElems = /^(?:textarea|input|select)$/i, + rtypenamespace = /^([^\.]*|)(?:\.(.+)|)$/, + rhoverHack = /(?:^|\s)hover(\.\S+|)\b/, + rkeyEvent = /^key/, + rmouseEvent = /^(?:mouse|contextmenu)|click/, + rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, + hoverHack = function( events ) { + return jQuery.event.special.hover ? events : events.replace( rhoverHack, "mouseenter$1 mouseleave$1" ); + }; + +/* + * Helper functions for managing events -- not part of the public interface. + * Props to Dean Edwards' addEvent library for many of the ideas. + */ +jQuery.event = { + + add: function( elem, types, handler, data, selector ) { + + var elemData, eventHandle, events, + t, tns, type, namespaces, handleObj, + handleObjIn, handlers, special; + + // Don't attach events to noData or text/comment nodes (allow plain objects tho) + if ( elem.nodeType === 3 || elem.nodeType === 8 || !types || !handler || !(elemData = jQuery._data( elem )) ) { + return; + } + + // Caller can pass in an object of custom data in lieu of the handler + if ( handler.handler ) { + handleObjIn = handler; + handler = handleObjIn.handler; + selector = handleObjIn.selector; + } + + // Make sure that the handler has a unique ID, used to find/remove it later + if ( !handler.guid ) { + handler.guid = jQuery.guid++; + } + + // Init the element's event structure and main handler, if this is the first + events = elemData.events; + if ( !events ) { + elemData.events = events = {}; + } + eventHandle = elemData.handle; + if ( !eventHandle ) { + elemData.handle = eventHandle = function( e ) { + // Discard the second event of a jQuery.event.trigger() and + // when an event is called after a page has unloaded + return typeof jQuery !== "undefined" && (!e || jQuery.event.triggered !== e.type) ? + jQuery.event.dispatch.apply( eventHandle.elem, arguments ) : + undefined; + }; + // Add elem as a property of the handle fn to prevent a memory leak with IE non-native events + eventHandle.elem = elem; + } + + // Handle multiple events separated by a space + // jQuery(...).bind("mouseover mouseout", fn); + types = jQuery.trim( hoverHack(types) ).split( " " ); + for ( t = 0; t < types.length; t++ ) { + + tns = rtypenamespace.exec( types[t] ) || []; + type = tns[1]; + namespaces = ( tns[2] || "" ).split( "." ).sort(); + + // If event changes its type, use the special event handlers for the changed type + special = jQuery.event.special[ type ] || {}; + + // If selector defined, determine special event api type, otherwise given type + type = ( selector ? special.delegateType : special.bindType ) || type; + + // Update special based on newly reset type + special = jQuery.event.special[ type ] || {}; + + // handleObj is passed to all event handlers + handleObj = jQuery.extend({ + type: type, + origType: tns[1], + data: data, + handler: handler, + guid: handler.guid, + selector: selector, + namespace: namespaces.join(".") + }, handleObjIn ); + + // Init the event handler queue if we're the first + handlers = events[ type ]; + if ( !handlers ) { + handlers = events[ type ] = []; + handlers.delegateCount = 0; + + // Only use addEventListener/attachEvent if the special events handler returns false + if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) { + // Bind the global event handler to the element + if ( elem.addEventListener ) { + elem.addEventListener( type, eventHandle, false ); + + } else if ( elem.attachEvent ) { + elem.attachEvent( "on" + type, eventHandle ); + } + } + } + + if ( special.add ) { + special.add.call( elem, handleObj ); + + if ( !handleObj.handler.guid ) { + handleObj.handler.guid = handler.guid; + } + } + + // Add to the element's handler list, delegates in front + if ( selector ) { + handlers.splice( handlers.delegateCount++, 0, handleObj ); + } else { + handlers.push( handleObj ); + } + + // Keep track of which events have ever been used, for event optimization + jQuery.event.global[ type ] = true; + } + + // Nullify elem to prevent memory leaks in IE + elem = null; + }, + + global: {}, + + // Detach an event or set of events from an element + remove: function( elem, types, handler, selector, mappedTypes ) { + + var t, tns, type, origType, namespaces, origCount, + j, events, special, eventType, handleObj, + elemData = jQuery.hasData( elem ) && jQuery._data( elem ); + + if ( !elemData || !(events = elemData.events) ) { + return; + } + + // Once for each type.namespace in types; type may be omitted + types = jQuery.trim( hoverHack( types || "" ) ).split(" "); + for ( t = 0; t < types.length; t++ ) { + tns = rtypenamespace.exec( types[t] ) || []; + type = origType = tns[1]; + namespaces = tns[2]; + + // Unbind all events (on this namespace, if provided) for the element + if ( !type ) { + for ( type in events ) { + jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); + } + continue; + } + + special = jQuery.event.special[ type ] || {}; + type = ( selector? special.delegateType : special.bindType ) || type; + eventType = events[ type ] || []; + origCount = eventType.length; + namespaces = namespaces ? new RegExp("(^|\\.)" + namespaces.split(".").sort().join("\\.(?:.*\\.|)") + "(\\.|$)") : null; + + // Remove matching events + for ( j = 0; j < eventType.length; j++ ) { + handleObj = eventType[ j ]; + + if ( ( mappedTypes || origType === handleObj.origType ) && + ( !handler || handler.guid === handleObj.guid ) && + ( !namespaces || namespaces.test( handleObj.namespace ) ) && + ( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) { + eventType.splice( j--, 1 ); + + if ( handleObj.selector ) { + eventType.delegateCount--; + } + if ( special.remove ) { + special.remove.call( elem, handleObj ); + } + } + } + + // Remove generic event handler if we removed something and no more handlers exist + // (avoids potential for endless recursion during removal of special event handlers) + if ( eventType.length === 0 && origCount !== eventType.length ) { + if ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) { + jQuery.removeEvent( elem, type, elemData.handle ); + } + + delete events[ type ]; + } + } + + // Remove the expando if it's no longer used + if ( jQuery.isEmptyObject( events ) ) { + delete elemData.handle; + + // removeData also checks for emptiness and clears the expando if empty + // so use it instead of delete + jQuery.removeData( elem, "events", true ); + } + }, + + // Events that are safe to short-circuit if no handlers are attached. + // Native DOM events should not be added, they may have inline handlers. + customEvent: { + "getData": true, + "setData": true, + "changeData": true + }, + + trigger: function( event, data, elem, onlyHandlers ) { + // Don't do events on text and comment nodes + if ( elem && (elem.nodeType === 3 || elem.nodeType === 8) ) { + return; + } + + // Event object or event type + var cache, exclusive, i, cur, old, ontype, special, handle, eventPath, bubbleType, + type = event.type || event, + namespaces = []; + + // focus/blur morphs to focusin/out; ensure we're not firing them right now + if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { + return; + } + + if ( type.indexOf( "!" ) >= 0 ) { + // Exclusive events trigger only for the exact event (no namespaces) + type = type.slice(0, -1); + exclusive = true; + } + + if ( type.indexOf( "." ) >= 0 ) { + // Namespaced trigger; create a regexp to match event type in handle() + namespaces = type.split("."); + type = namespaces.shift(); + namespaces.sort(); + } + + if ( (!elem || jQuery.event.customEvent[ type ]) && !jQuery.event.global[ type ] ) { + // No jQuery handlers for this event type, and it can't have inline handlers + return; + } + + // Caller can pass in an Event, Object, or just an event type string + event = typeof event === "object" ? + // jQuery.Event object + event[ jQuery.expando ] ? event : + // Object literal + new jQuery.Event( type, event ) : + // Just the event type (string) + new jQuery.Event( type ); + + event.type = type; + event.isTrigger = true; + event.exclusive = exclusive; + event.namespace = namespaces.join( "." ); + event.namespace_re = event.namespace? new RegExp("(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)") : null; + ontype = type.indexOf( ":" ) < 0 ? "on" + type : ""; + + // Handle a global trigger + if ( !elem ) { + + // TODO: Stop taunting the data cache; remove global events and always attach to document + cache = jQuery.cache; + for ( i in cache ) { + if ( cache[ i ].events && cache[ i ].events[ type ] ) { + jQuery.event.trigger( event, data, cache[ i ].handle.elem, true ); + } + } + return; + } + + // Clean up the event in case it is being reused + event.result = undefined; + if ( !event.target ) { + event.target = elem; + } + + // Clone any incoming data and prepend the event, creating the handler arg list + data = data != null ? jQuery.makeArray( data ) : []; + data.unshift( event ); + + // Allow special events to draw outside the lines + special = jQuery.event.special[ type ] || {}; + if ( special.trigger && special.trigger.apply( elem, data ) === false ) { + return; + } + + // Determine event propagation path in advance, per W3C events spec (#9951) + // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) + eventPath = [[ elem, special.bindType || type ]]; + if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) { + + bubbleType = special.delegateType || type; + cur = rfocusMorph.test( bubbleType + type ) ? elem : elem.parentNode; + for ( old = elem; cur; cur = cur.parentNode ) { + eventPath.push([ cur, bubbleType ]); + old = cur; + } + + // Only add window if we got to document (e.g., not plain obj or detached DOM) + if ( old === (elem.ownerDocument || document) ) { + eventPath.push([ old.defaultView || old.parentWindow || window, bubbleType ]); + } + } + + // Fire handlers on the event path + for ( i = 0; i < eventPath.length && !event.isPropagationStopped(); i++ ) { + + cur = eventPath[i][0]; + event.type = eventPath[i][1]; + + handle = ( jQuery._data( cur, "events" ) || {} )[ event.type ] && jQuery._data( cur, "handle" ); + if ( handle ) { + handle.apply( cur, data ); + } + // Note that this is a bare JS function and not a jQuery handler + handle = ontype && cur[ ontype ]; + if ( handle && jQuery.acceptData( cur ) && handle.apply( cur, data ) === false ) { + event.preventDefault(); + } + } + event.type = type; + + // If nobody prevented the default action, do it now + if ( !onlyHandlers && !event.isDefaultPrevented() ) { + + if ( (!special._default || special._default.apply( elem.ownerDocument, data ) === false) && + !(type === "click" && jQuery.nodeName( elem, "a" )) && jQuery.acceptData( elem ) ) { + + // Call a native DOM method on the target with the same name name as the event. + // Can't use an .isFunction() check here because IE6/7 fails that test. + // Don't do default actions on window, that's where global variables be (#6170) + // IE<9 dies on focus/blur to hidden element (#1486) + if ( ontype && elem[ type ] && ((type !== "focus" && type !== "blur") || event.target.offsetWidth !== 0) && !jQuery.isWindow( elem ) ) { + + // Don't re-trigger an onFOO event when we call its FOO() method + old = elem[ ontype ]; + + if ( old ) { + elem[ ontype ] = null; + } + + // Prevent re-triggering of the same event, since we already bubbled it above + jQuery.event.triggered = type; + elem[ type ](); + jQuery.event.triggered = undefined; + + if ( old ) { + elem[ ontype ] = old; + } + } + } + } + + return event.result; + }, + + dispatch: function( event ) { + + // Make a writable jQuery.Event from the native event object + event = jQuery.event.fix( event || window.event ); + + var i, j, cur, jqcur, ret, selMatch, matched, matches, handleObj, sel, related, + handlers = ( (jQuery._data( this, "events" ) || {} )[ event.type ] || []), + delegateCount = handlers.delegateCount, + args = [].slice.call( arguments ), + run_all = !event.exclusive && !event.namespace, + special = jQuery.event.special[ event.type ] || {}, + handlerQueue = []; + + // Use the fix-ed jQuery.Event rather than the (read-only) native event + args[0] = event; + event.delegateTarget = this; + + // Call the preDispatch hook for the mapped type, and let it bail if desired + if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { + return; + } + + // Determine handlers that should run if there are delegated events + // Avoid non-left-click bubbling in Firefox (#3861) + if ( delegateCount && !(event.button && event.type === "click") ) { + + // Pregenerate a single jQuery object for reuse with .is() + jqcur = jQuery(this); + jqcur.context = this; + + for ( cur = event.target; cur != this; cur = cur.parentNode || this ) { + + // Don't process clicks (ONLY) on disabled elements (#6911, #8165, #xxxx) + if ( cur.disabled !== true || event.type !== "click" ) { + selMatch = {}; + matches = []; + jqcur[0] = cur; + for ( i = 0; i < delegateCount; i++ ) { + handleObj = handlers[ i ]; + sel = handleObj.selector; + + if ( selMatch[ sel ] === undefined ) { + selMatch[ sel ] = jqcur.is( sel ); + } + if ( selMatch[ sel ] ) { + matches.push( handleObj ); + } + } + if ( matches.length ) { + handlerQueue.push({ elem: cur, matches: matches }); + } + } + } + } + + // Add the remaining (directly-bound) handlers + if ( handlers.length > delegateCount ) { + handlerQueue.push({ elem: this, matches: handlers.slice( delegateCount ) }); + } + + // Run delegates first; they may want to stop propagation beneath us + for ( i = 0; i < handlerQueue.length && !event.isPropagationStopped(); i++ ) { + matched = handlerQueue[ i ]; + event.currentTarget = matched.elem; + + for ( j = 0; j < matched.matches.length && !event.isImmediatePropagationStopped(); j++ ) { + handleObj = matched.matches[ j ]; + + // Triggered event must either 1) be non-exclusive and have no namespace, or + // 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace). + if ( run_all || (!event.namespace && !handleObj.namespace) || event.namespace_re && event.namespace_re.test( handleObj.namespace ) ) { + + event.data = handleObj.data; + event.handleObj = handleObj; + + ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler ) + .apply( matched.elem, args ); + + if ( ret !== undefined ) { + event.result = ret; + if ( ret === false ) { + event.preventDefault(); + event.stopPropagation(); + } + } + } + } + } + + // Call the postDispatch hook for the mapped type + if ( special.postDispatch ) { + special.postDispatch.call( this, event ); + } + + return event.result; + }, + + // Includes some event props shared by KeyEvent and MouseEvent + // *** attrChange attrName relatedNode srcElement are not normalized, non-W3C, deprecated, will be removed in 1.8 *** + props: "attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "), + + fixHooks: {}, + + keyHooks: { + props: "char charCode key keyCode".split(" "), + filter: function( event, original ) { + + // Add which for key events + if ( event.which == null ) { + event.which = original.charCode != null ? original.charCode : original.keyCode; + } + + return event; + } + }, + + mouseHooks: { + props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "), + filter: function( event, original ) { + var eventDoc, doc, body, + button = original.button, + fromElement = original.fromElement; + + // Calculate pageX/Y if missing and clientX/Y available + if ( event.pageX == null && original.clientX != null ) { + eventDoc = event.target.ownerDocument || document; + doc = eventDoc.documentElement; + body = eventDoc.body; + + event.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 ); + event.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 ); + } + + // Add relatedTarget, if necessary + if ( !event.relatedTarget && fromElement ) { + event.relatedTarget = fromElement === event.target ? original.toElement : fromElement; + } + + // Add which for click: 1 === left; 2 === middle; 3 === right + // Note: button is not normalized, so don't use it + if ( !event.which && button !== undefined ) { + event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) ); + } + + return event; + } + }, + + fix: function( event ) { + if ( event[ jQuery.expando ] ) { + return event; + } + + // Create a writable copy of the event object and normalize some properties + var i, prop, + originalEvent = event, + fixHook = jQuery.event.fixHooks[ event.type ] || {}, + copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props; + + event = jQuery.Event( originalEvent ); + + for ( i = copy.length; i; ) { + prop = copy[ --i ]; + event[ prop ] = originalEvent[ prop ]; + } + + // Fix target property, if necessary (#1925, IE 6/7/8 & Safari2) + if ( !event.target ) { + event.target = originalEvent.srcElement || document; + } + + // Target should not be a text node (#504, Safari) + if ( event.target.nodeType === 3 ) { + event.target = event.target.parentNode; + } + + // For mouse/key events, metaKey==false if it's undefined (#3368, #11328; IE6/7/8) + event.metaKey = !!event.metaKey; + + return fixHook.filter? fixHook.filter( event, originalEvent ) : event; + }, + + special: { + ready: { + // Make sure the ready event is setup + setup: jQuery.bindReady + }, + + load: { + // Prevent triggered image.load events from bubbling to window.load + noBubble: true + }, + + focus: { + delegateType: "focusin" + }, + blur: { + delegateType: "focusout" + }, + + beforeunload: { + setup: function( data, namespaces, eventHandle ) { + // We only want to do this special case on windows + if ( jQuery.isWindow( this ) ) { + this.onbeforeunload = eventHandle; + } + }, + + teardown: function( namespaces, eventHandle ) { + if ( this.onbeforeunload === eventHandle ) { + this.onbeforeunload = null; + } + } + } + }, + + simulate: function( type, elem, event, bubble ) { + // Piggyback on a donor event to simulate a different one. + // Fake originalEvent to avoid donor's stopPropagation, but if the + // simulated event prevents default then we do the same on the donor. + var e = jQuery.extend( + new jQuery.Event(), + event, + { type: type, + isSimulated: true, + originalEvent: {} + } + ); + if ( bubble ) { + jQuery.event.trigger( e, null, elem ); + } else { + jQuery.event.dispatch.call( elem, e ); + } + if ( e.isDefaultPrevented() ) { + event.preventDefault(); + } + } +}; + +// Some plugins are using, but it's undocumented/deprecated and will be removed. +// The 1.7 special event interface should provide all the hooks needed now. +jQuery.event.handle = jQuery.event.dispatch; + +jQuery.removeEvent = document.removeEventListener ? + function( elem, type, handle ) { + if ( elem.removeEventListener ) { + elem.removeEventListener( type, handle, false ); + } + } : + function( elem, type, handle ) { + var name = "on" + type; + + if ( elem.detachEvent ) { + + // #8545, #7054, preventing memory leaks for custom events in IE6-8 – + // detachEvent needed property on element, by name of that event, to properly expose it to GC + if ( typeof elem[ name ] === "undefined" ) { + elem[ name ] = null; + } + + elem.detachEvent( name, handle ); + } + }; + +jQuery.Event = function( src, props ) { + // Allow instantiation without the 'new' keyword + if ( !(this instanceof jQuery.Event) ) { + return new jQuery.Event( src, props ); + } + + // Event object + if ( src && src.type ) { + this.originalEvent = src; + this.type = src.type; + + // Events bubbling up the document may have been marked as prevented + // by a handler lower down the tree; reflect the correct value. + this.isDefaultPrevented = ( src.defaultPrevented || src.returnValue === false || + src.getPreventDefault && src.getPreventDefault() ) ? returnTrue : returnFalse; + + // Event type + } else { + this.type = src; + } + + // Put explicitly provided properties onto the event object + if ( props ) { + jQuery.extend( this, props ); + } + + // Create a timestamp if incoming event doesn't have one + this.timeStamp = src && src.timeStamp || jQuery.now(); + + // Mark it as fixed + this[ jQuery.expando ] = true; +}; + +function returnFalse() { + return false; +} +function returnTrue() { + return true; +} + +// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding +// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html +jQuery.Event.prototype = { + preventDefault: function() { + this.isDefaultPrevented = returnTrue; + + var e = this.originalEvent; + if ( !e ) { + return; + } + + // if preventDefault exists run it on the original event + if ( e.preventDefault ) { + e.preventDefault(); + + // otherwise set the returnValue property of the original event to false (IE) + } else { + e.returnValue = false; + } + }, + stopPropagation: function() { + this.isPropagationStopped = returnTrue; + + var e = this.originalEvent; + if ( !e ) { + return; + } + // if stopPropagation exists run it on the original event + if ( e.stopPropagation ) { + e.stopPropagation(); + } + // otherwise set the cancelBubble property of the original event to true (IE) + e.cancelBubble = true; + }, + stopImmediatePropagation: function() { + this.isImmediatePropagationStopped = returnTrue; + this.stopPropagation(); + }, + isDefaultPrevented: returnFalse, + isPropagationStopped: returnFalse, + isImmediatePropagationStopped: returnFalse +}; + +// Create mouseenter/leave events using mouseover/out and event-time checks +jQuery.each({ + mouseenter: "mouseover", + mouseleave: "mouseout" +}, function( orig, fix ) { + jQuery.event.special[ orig ] = { + delegateType: fix, + bindType: fix, + + handle: function( event ) { + var ret, + target = this, + related = event.relatedTarget, + handleObj = event.handleObj, + selector = handleObj.selector; + + // For mousenter/leave call the handler if related is outside the target. + // NB: No relatedTarget if the mouse left/entered the browser window + if ( !related || (related !== target && !jQuery.contains( target, related )) ) { + event.type = handleObj.origType; + ret = handleObj.handler.apply( this, arguments ); + event.type = fix; + } + return ret; + } + }; +}); + +// IE submit delegation +if ( !jQuery.support.submitBubbles ) { + + jQuery.event.special.submit = { + setup: function() { + // Only need this for delegated form submit events + if ( jQuery.nodeName( this, "form" ) ) { + return false; + } + + // Lazy-add a submit handler when a descendant form may potentially be submitted + jQuery.event.add( this, "click._submit keypress._submit", function( e ) { + // Node name check avoids a VML-related crash in IE (#9807) + var elem = e.target, + form = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ? elem.form : undefined; + if ( form && !jQuery._data( form, "_submit_attached" ) ) { + jQuery.event.add( form, "submit._submit", function( event ) { + event._submit_bubble = true; + }); + jQuery._data( form, "_submit_attached", true ); + } + }); + // return undefined since we don't need an event listener + }, + + postDispatch: function( event ) { + // If form was submitted by the user, bubble the event up the tree + if ( event._submit_bubble ) { + delete event._submit_bubble; + if ( this.parentNode && !event.isTrigger ) { + jQuery.event.simulate( "submit", this.parentNode, event, true ); + } + } + }, + + teardown: function() { + // Only need this for delegated form submit events + if ( jQuery.nodeName( this, "form" ) ) { + return false; + } + + // Remove delegated handlers; cleanData eventually reaps submit handlers attached above + jQuery.event.remove( this, "._submit" ); + } + }; +} + +// IE change delegation and checkbox/radio fix +if ( !jQuery.support.changeBubbles ) { + + jQuery.event.special.change = { + + setup: function() { + + if ( rformElems.test( this.nodeName ) ) { + // IE doesn't fire change on a check/radio until blur; trigger it on click + // after a propertychange. Eat the blur-change in special.change.handle. + // This still fires onchange a second time for check/radio after blur. + if ( this.type === "checkbox" || this.type === "radio" ) { + jQuery.event.add( this, "propertychange._change", function( event ) { + if ( event.originalEvent.propertyName === "checked" ) { + this._just_changed = true; + } + }); + jQuery.event.add( this, "click._change", function( event ) { + if ( this._just_changed && !event.isTrigger ) { + this._just_changed = false; + } + // Allow triggered, simulated change events (#11500) + jQuery.event.simulate( "change", this, event, true ); + }); + } + return false; + } + // Delegated event; lazy-add a change handler on descendant inputs + jQuery.event.add( this, "beforeactivate._change", function( e ) { + var elem = e.target; + + if ( rformElems.test( elem.nodeName ) && !jQuery._data( elem, "_change_attached" ) ) { + jQuery.event.add( elem, "change._change", function( event ) { + if ( this.parentNode && !event.isSimulated && !event.isTrigger ) { + jQuery.event.simulate( "change", this.parentNode, event, true ); + } + }); + jQuery._data( elem, "_change_attached", true ); + } + }); + }, + + handle: function( event ) { + var elem = event.target; + + // Swallow native change events from checkbox/radio, we already triggered them above + if ( this !== elem || event.isSimulated || event.isTrigger || (elem.type !== "radio" && elem.type !== "checkbox") ) { + return event.handleObj.handler.apply( this, arguments ); + } + }, + + teardown: function() { + jQuery.event.remove( this, "._change" ); + + return rformElems.test( this.nodeName ); + } + }; +} + +// Create "bubbling" focus and blur events +if ( !jQuery.support.focusinBubbles ) { + jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) { + + // Attach a single capturing handler while someone wants focusin/focusout + var attaches = 0, + handler = function( event ) { + jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true ); + }; + + jQuery.event.special[ fix ] = { + setup: function() { + if ( attaches++ === 0 ) { + document.addEventListener( orig, handler, true ); + } + }, + teardown: function() { + if ( --attaches === 0 ) { + document.removeEventListener( orig, handler, true ); + } + } + }; + }); +} + +jQuery.fn.extend({ + + on: function( types, selector, data, fn, /*INTERNAL*/ one ) { + var origFn, type; + + // Types can be a map of types/handlers + if ( typeof types === "object" ) { + // ( types-Object, selector, data ) + if ( typeof selector !== "string" ) { // && selector != null + // ( types-Object, data ) + data = data || selector; + selector = undefined; + } + for ( type in types ) { + this.on( type, selector, data, types[ type ], one ); + } + return this; + } + + if ( data == null && fn == null ) { + // ( types, fn ) + fn = selector; + data = selector = undefined; + } else if ( fn == null ) { + if ( typeof selector === "string" ) { + // ( types, selector, fn ) + fn = data; + data = undefined; + } else { + // ( types, data, fn ) + fn = data; + data = selector; + selector = undefined; + } + } + if ( fn === false ) { + fn = returnFalse; + } else if ( !fn ) { + return this; + } + + if ( one === 1 ) { + origFn = fn; + fn = function( event ) { + // Can use an empty set, since event contains the info + jQuery().off( event ); + return origFn.apply( this, arguments ); + }; + // Use same guid so caller can remove using origFn + fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); + } + return this.each( function() { + jQuery.event.add( this, types, fn, data, selector ); + }); + }, + one: function( types, selector, data, fn ) { + return this.on( types, selector, data, fn, 1 ); + }, + off: function( types, selector, fn ) { + var handleObj, type; + if ( types && types.preventDefault && types.handleObj ) { + // ( event ) dispatched jQuery.Event + handleObj = types.handleObj; + jQuery( types.delegateTarget ).off( + handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType, + handleObj.selector, + handleObj.handler + ); + return this; + } + if ( typeof types === "object" ) { + // ( types-object [, selector] ) + for ( type in types ) { + this.off( type, selector, types[ type ] ); + } + return this; + } + if ( selector === false || typeof selector === "function" ) { + // ( types [, fn] ) + fn = selector; + selector = undefined; + } + if ( fn === false ) { + fn = returnFalse; + } + return this.each(function() { + jQuery.event.remove( this, types, fn, selector ); + }); + }, + + bind: function( types, data, fn ) { + return this.on( types, null, data, fn ); + }, + unbind: function( types, fn ) { + return this.off( types, null, fn ); + }, + + live: function( types, data, fn ) { + jQuery( this.context ).on( types, this.selector, data, fn ); + return this; + }, + die: function( types, fn ) { + jQuery( this.context ).off( types, this.selector || "**", fn ); + return this; + }, + + delegate: function( selector, types, data, fn ) { + return this.on( types, selector, data, fn ); + }, + undelegate: function( selector, types, fn ) { + // ( namespace ) or ( selector, types [, fn] ) + return arguments.length == 1? this.off( selector, "**" ) : this.off( types, selector || "**", fn ); + }, + + trigger: function( type, data ) { + return this.each(function() { + jQuery.event.trigger( type, data, this ); + }); + }, + triggerHandler: function( type, data ) { + if ( this[0] ) { + return jQuery.event.trigger( type, data, this[0], true ); + } + }, + + toggle: function( fn ) { + // Save reference to arguments for access in closure + var args = arguments, + guid = fn.guid || jQuery.guid++, + i = 0, + toggler = function( event ) { + // Figure out which function to execute + var lastToggle = ( jQuery._data( this, "lastToggle" + fn.guid ) || 0 ) % i; + jQuery._data( this, "lastToggle" + fn.guid, lastToggle + 1 ); + + // Make sure that clicks stop + event.preventDefault(); + + // and execute the function + return args[ lastToggle ].apply( this, arguments ) || false; + }; + + // link all the functions, so any of them can unbind this click handler + toggler.guid = guid; + while ( i < args.length ) { + args[ i++ ].guid = guid; + } + + return this.click( toggler ); + }, + + hover: function( fnOver, fnOut ) { + return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); + } +}); + +jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " + + "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + + "change select submit keydown keypress keyup error contextmenu").split(" "), function( i, name ) { + + // Handle event binding + jQuery.fn[ name ] = function( data, fn ) { + if ( fn == null ) { + fn = data; + data = null; + } + + return arguments.length > 0 ? + this.on( name, null, data, fn ) : + this.trigger( name ); + }; + + if ( rkeyEvent.test( name ) ) { + jQuery.event.fixHooks[ name ] = jQuery.event.keyHooks; + } + + if ( rmouseEvent.test( name ) ) { + jQuery.event.fixHooks[ name ] = jQuery.event.mouseHooks; + } +}); +/*! + * Sizzle CSS Selector Engine + * Copyright 2012 jQuery Foundation and other contributors + * Released under the MIT license + * http://sizzlejs.com/ + */ +(function( window, undefined ) { + +var cachedruns, + dirruns, + sortOrder, + siblingCheck, + assertGetIdNotName, + + document = window.document, + docElem = document.documentElement, + + strundefined = "undefined", + hasDuplicate = false, + baseHasDuplicate = true, + done = 0, + slice = [].slice, + push = [].push, + + expando = ( "sizcache" + Math.random() ).replace( ".", "" ), + + // Regex + + // Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace + whitespace = "[\\x20\\t\\r\\n\\f]", + // http://www.w3.org/TR/css3-syntax/#characters + characterEncoding = "(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+", + + // Loosely modeled on CSS identifier characters + // An unquoted value should be a CSS identifier (http://www.w3.org/TR/css3-selectors/#attribute-selectors) + // Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier + identifier = characterEncoding.replace( "w", "w#" ), + + // Acceptable operators http://www.w3.org/TR/selectors/#attribute-selectors + operators = "([*^$|!~]?=)", + attributes = "\\[" + whitespace + "*(" + characterEncoding + ")" + whitespace + + "*(?:" + operators + whitespace + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + identifier + ")|)|)" + whitespace + "*\\]", + pseudos = ":(" + characterEncoding + ")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|((?:[^,]|\\\\,|(?:,(?=[^\\[]*\\]))|(?:,(?=[^\\(]*\\))))*))\\)|)", + pos = ":(nth|eq|gt|lt|first|last|even|odd)(?:\\((\\d*)\\)|)(?=[^-]|$)", + combinators = whitespace + "*([\\x20\\t\\r\\n\\f>+~])" + whitespace + "*", + groups = "(?=[^\\x20\\t\\r\\n\\f])(?:\\\\.|" + attributes + "|" + pseudos.replace( 2, 7 ) + "|[^\\\\(),])+", + + // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter + rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), + + rcombinators = new RegExp( "^" + combinators ), + + // All simple (non-comma) selectors, excluding insignifant trailing whitespace + rgroups = new RegExp( groups + "?(?=" + whitespace + "*,|$)", "g" ), + + // A selector, or everything after leading whitespace + // Optionally followed in either case by a ")" for terminating sub-selectors + rselector = new RegExp( "^(?:(?!,)(?:(?:^|,)" + whitespace + "*" + groups + ")*?|" + whitespace + "*(.*?))(\\)|$)" ), + + // All combinators and selector components (attribute test, tag, pseudo, etc.), the latter appearing together when consecutive + rtokens = new RegExp( groups.slice( 19, -6 ) + "\\x20\\t\\r\\n\\f>+~])+|" + combinators, "g" ), + + // Easily-parseable/retrievable ID or TAG or CLASS selectors + rquickExpr = /^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/, + + rsibling = /[\x20\t\r\n\f]*[+~]/, + rendsWithNot = /:not\($/, + + rheader = /h\d/i, + rinputs = /input|select|textarea|button/i, + + rbackslash = /\\(?!\\)/g, + + matchExpr = { + "ID": new RegExp( "^#(" + characterEncoding + ")" ), + "CLASS": new RegExp( "^\\.(" + characterEncoding + ")" ), + "NAME": new RegExp( "^\\[name=['\"]?(" + characterEncoding + ")['\"]?\\]" ), + "TAG": new RegExp( "^(" + characterEncoding.replace( "[-", "[-\\*" ) + ")" ), + "ATTR": new RegExp( "^" + attributes ), + "PSEUDO": new RegExp( "^" + pseudos ), + "CHILD": new RegExp( "^:(only|nth|last|first)-child(?:\\(" + whitespace + + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + "POS": new RegExp( pos, "ig" ), + // For use in libraries implementing .is() + "needsContext": new RegExp( "^" + whitespace + "*[>+~]|" + pos, "i" ) + }, + + classCache = {}, + cachedClasses = [], + compilerCache = {}, + cachedSelectors = [], + + // Mark a function for use in filtering + markFunction = function( fn ) { + fn.sizzleFilter = true; + return fn; + }, + + // Returns a function to use in pseudos for input types + createInputFunction = function( type ) { + return function( elem ) { + // Check the input's nodeName and type + return elem.nodeName.toLowerCase() === "input" && elem.type === type; + }; + }, + + // Returns a function to use in pseudos for buttons + createButtonFunction = function( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return (name === "input" || name === "button") && elem.type === type; + }; + }, + + // Used for testing something on an element + assert = function( fn ) { + var pass = false, + div = document.createElement("div"); + try { + pass = fn( div ); + } catch (e) {} + // release memory in IE + div = null; + return pass; + }, + + // Check if attributes should be retrieved by attribute nodes + assertAttributes = assert(function( div ) { + div.innerHTML = ""; + var type = typeof div.lastChild.getAttribute("multiple"); + // IE8 returns a string for some attributes even when not present + return type !== "boolean" && type !== "string"; + }), + + // Check if getElementById returns elements by name + // Check if getElementsByName privileges form controls or returns elements by ID + assertUsableName = assert(function( div ) { + // Inject content + div.id = expando + 0; + div.innerHTML = "
                                "; + docElem.insertBefore( div, docElem.firstChild ); + + // Test + var pass = document.getElementsByName && + // buggy browsers will return fewer than the correct 2 + document.getElementsByName( expando ).length === + // buggy browsers will return more than the correct 0 + 2 + document.getElementsByName( expando + 0 ).length; + assertGetIdNotName = !document.getElementById( expando ); + + // Cleanup + docElem.removeChild( div ); + + return pass; + }), + + // Check if the browser returns only elements + // when doing getElementsByTagName("*") + assertTagNameNoComments = assert(function( div ) { + div.appendChild( document.createComment("") ); + return div.getElementsByTagName("*").length === 0; + }), + + // Check if getAttribute returns normalized href attributes + assertHrefNotNormalized = assert(function( div ) { + div.innerHTML = ""; + return div.firstChild && typeof div.firstChild.getAttribute !== strundefined && + div.firstChild.getAttribute("href") === "#"; + }), + + // Check if getElementsByClassName can be trusted + assertUsableClassName = assert(function( div ) { + // Opera can't find a second classname (in 9.6) + div.innerHTML = ""; + if ( !div.getElementsByClassName || div.getElementsByClassName("e").length === 0 ) { + return false; + } + + // Safari caches class attributes, doesn't catch changes (in 3.2) + div.lastChild.className = "e"; + return div.getElementsByClassName("e").length !== 1; + }); + +var Sizzle = function( selector, context, results, seed ) { + results = results || []; + context = context || document; + var match, elem, xml, m, + nodeType = context.nodeType; + + if ( nodeType !== 1 && nodeType !== 9 ) { + return []; + } + + if ( !selector || typeof selector !== "string" ) { + return results; + } + + xml = isXML( context ); + + if ( !xml && !seed ) { + if ( (match = rquickExpr.exec( selector )) ) { + // Speed-up: Sizzle("#ID") + if ( (m = match[1]) ) { + if ( nodeType === 9 ) { + elem = context.getElementById( m ); + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + if ( elem && elem.parentNode ) { + // Handle the case where IE, Opera, and Webkit return items + // by name instead of ID + if ( elem.id === m ) { + results.push( elem ); + return results; + } + } else { + return results; + } + } else { + // Context is not a document + if ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) && + contains( context, elem ) && elem.id === m ) { + results.push( elem ); + return results; + } + } + + // Speed-up: Sizzle("TAG") + } else if ( match[2] ) { + push.apply( results, slice.call(context.getElementsByTagName( selector ), 0) ); + return results; + + // Speed-up: Sizzle(".CLASS") + } else if ( (m = match[3]) && assertUsableClassName && context.getElementsByClassName ) { + push.apply( results, slice.call(context.getElementsByClassName( m ), 0) ); + return results; + } + } + } + + // All others + return select( selector, context, results, seed, xml ); +}; + +var Expr = Sizzle.selectors = { + + // Can be adjusted by the user + cacheLength: 50, + + match: matchExpr, + + order: [ "ID", "TAG" ], + + attrHandle: {}, + + createPseudo: markFunction, + + find: { + "ID": assertGetIdNotName ? + function( id, context, xml ) { + if ( typeof context.getElementById !== strundefined && !xml ) { + var m = context.getElementById( id ); + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + return m && m.parentNode ? [m] : []; + } + } : + function( id, context, xml ) { + if ( typeof context.getElementById !== strundefined && !xml ) { + var m = context.getElementById( id ); + + return m ? + m.id === id || typeof m.getAttributeNode !== strundefined && m.getAttributeNode("id").value === id ? + [m] : + undefined : + []; + } + }, + + "TAG": assertTagNameNoComments ? + function( tag, context ) { + if ( typeof context.getElementsByTagName !== strundefined ) { + return context.getElementsByTagName( tag ); + } + } : + function( tag, context ) { + var results = context.getElementsByTagName( tag ); + + // Filter out possible comments + if ( tag === "*" ) { + var elem, + tmp = [], + i = 0; + + for ( ; (elem = results[i]); i++ ) { + if ( elem.nodeType === 1 ) { + tmp.push( elem ); + } + } + + return tmp; + } + return results; + } + }, + + relative: { + ">": { dir: "parentNode", first: true }, + " ": { dir: "parentNode" }, + "+": { dir: "previousSibling", first: true }, + "~": { dir: "previousSibling" } + }, + + preFilter: { + "ATTR": function( match ) { + match[1] = match[1].replace( rbackslash, "" ); + + // Move the given value to match[3] whether quoted or unquoted + match[3] = ( match[4] || match[5] || "" ).replace( rbackslash, "" ); + + if ( match[2] === "~=" ) { + match[3] = " " + match[3] + " "; + } + + return match.slice( 0, 4 ); + }, + + "CHILD": function( match ) { + /* matches from matchExpr.CHILD + 1 type (only|nth|...) + 2 argument (even|odd|\d*|\d*n([+-]\d+)?|...) + 3 xn-component of xn+y argument ([+-]?\d*n|) + 4 sign of xn-component + 5 x of xn-component + 6 sign of y-component + 7 y of y-component + */ + match[1] = match[1].toLowerCase(); + + if ( match[1] === "nth" ) { + // nth-child requires argument + if ( !match[2] ) { + Sizzle.error( match[0] ); + } + + // numeric x and y parameters for Expr.filter.CHILD + // remember that false/true cast respectively to 0/1 + match[3] = +( match[3] ? match[4] + (match[5] || 1) : 2 * ( match[2] === "even" || match[2] === "odd" ) ); + match[4] = +( ( match[6] + match[7] ) || match[2] === "odd" ); + + // other types prohibit arguments + } else if ( match[2] ) { + Sizzle.error( match[0] ); + } + + return match; + }, + + "PSEUDO": function( match ) { + var argument, + unquoted = match[4]; + + if ( matchExpr["CHILD"].test( match[0] ) ) { + return null; + } + + // Relinquish our claim on characters in `unquoted` from a closing parenthesis on + if ( unquoted && (argument = rselector.exec( unquoted )) && argument.pop() ) { + + match[0] = match[0].slice( 0, argument[0].length - unquoted.length - 1 ); + unquoted = argument[0].slice( 0, -1 ); + } + + // Quoted or unquoted, we have the full argument + // Return only captures needed by the pseudo filter method (type and argument) + match.splice( 2, 3, unquoted || match[3] ); + return match; + } + }, + + filter: { + "ID": assertGetIdNotName ? + function( id ) { + id = id.replace( rbackslash, "" ); + return function( elem ) { + return elem.getAttribute("id") === id; + }; + } : + function( id ) { + id = id.replace( rbackslash, "" ); + return function( elem ) { + var node = typeof elem.getAttributeNode !== strundefined && elem.getAttributeNode("id"); + return node && node.value === id; + }; + }, + + "TAG": function( nodeName ) { + if ( nodeName === "*" ) { + return function() { return true; }; + } + nodeName = nodeName.replace( rbackslash, "" ).toLowerCase(); + + return function( elem ) { + return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; + }; + }, + + "CLASS": function( className ) { + var pattern = classCache[ className ]; + if ( !pattern ) { + pattern = classCache[ className ] = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" ); + cachedClasses.push( className ); + // Avoid too large of a cache + if ( cachedClasses.length > Expr.cacheLength ) { + delete classCache[ cachedClasses.shift() ]; + } + } + return function( elem ) { + return pattern.test( elem.className || (typeof elem.getAttribute !== strundefined && elem.getAttribute("class")) || "" ); + }; + }, + + "ATTR": function( name, operator, check ) { + if ( !operator ) { + return function( elem ) { + return Sizzle.attr( elem, name ) != null; + }; + } + + return function( elem ) { + var result = Sizzle.attr( elem, name ), + value = result + ""; + + if ( result == null ) { + return operator === "!="; + } + + switch ( operator ) { + case "=": + return value === check; + case "!=": + return value !== check; + case "^=": + return check && value.indexOf( check ) === 0; + case "*=": + return check && value.indexOf( check ) > -1; + case "$=": + return check && value.substr( value.length - check.length ) === check; + case "~=": + return ( " " + value + " " ).indexOf( check ) > -1; + case "|=": + return value === check || value.substr( 0, check.length + 1 ) === check + "-"; + } + }; + }, + + "CHILD": function( type, argument, first, last ) { + + if ( type === "nth" ) { + var doneName = done++; + + return function( elem ) { + var parent, diff, + count = 0, + node = elem; + + if ( first === 1 && last === 0 ) { + return true; + } + + parent = elem.parentNode; + + if ( parent && (parent[ expando ] !== doneName || !elem.sizset) ) { + for ( node = parent.firstChild; node; node = node.nextSibling ) { + if ( node.nodeType === 1 ) { + node.sizset = ++count; + if ( node === elem ) { + break; + } + } + } + + parent[ expando ] = doneName; + } + + diff = elem.sizset - last; + + if ( first === 0 ) { + return diff === 0; + + } else { + return ( diff % first === 0 && diff / first >= 0 ); + } + }; + } + + return function( elem ) { + var node = elem; + + switch ( type ) { + case "only": + case "first": + while ( (node = node.previousSibling) ) { + if ( node.nodeType === 1 ) { + return false; + } + } + + if ( type === "first" ) { + return true; + } + + node = elem; + + /* falls through */ + case "last": + while ( (node = node.nextSibling) ) { + if ( node.nodeType === 1 ) { + return false; + } + } + + return true; + } + }; + }, + + "PSEUDO": function( pseudo, argument, context, xml ) { + // pseudo-class names are case-insensitive + // http://www.w3.org/TR/selectors/#pseudo-classes + // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters + var fn = Expr.pseudos[ pseudo ] || Expr.pseudos[ pseudo.toLowerCase() ]; + + if ( !fn ) { + Sizzle.error( "unsupported pseudo: " + pseudo ); + } + + // The user may set fn.sizzleFilter to indicate + // that arguments are needed to create the filter function + // just as Sizzle does + if ( !fn.sizzleFilter ) { + return fn; + } + + return fn( argument, context, xml ); + } + }, + + pseudos: { + "not": markFunction(function( selector, context, xml ) { + // Trim the selector passed to compile + // to avoid treating leading and trailing + // spaces as combinators + var matcher = compile( selector.replace( rtrim, "$1" ), context, xml ); + return function( elem ) { + return !matcher( elem ); + }; + }), + + "enabled": function( elem ) { + return elem.disabled === false; + }, + + "disabled": function( elem ) { + return elem.disabled === true; + }, + + "checked": function( elem ) { + // In CSS3, :checked should return both checked and selected elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + var nodeName = elem.nodeName.toLowerCase(); + return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); + }, + + "selected": function( elem ) { + // Accessing this property makes selected-by-default + // options in Safari work properly + if ( elem.parentNode ) { + elem.parentNode.selectedIndex; + } + + return elem.selected === true; + }, + + "parent": function( elem ) { + return !Expr.pseudos["empty"]( elem ); + }, + + "empty": function( elem ) { + // http://www.w3.org/TR/selectors/#empty-pseudo + // :empty is only affected by element nodes and content nodes(including text(3), cdata(4)), + // not comment, processing instructions, or others + // Thanks to Diego Perini for the nodeName shortcut + // Greater than "@" means alpha characters (specifically not starting with "#" or "?") + var nodeType; + elem = elem.firstChild; + while ( elem ) { + if ( elem.nodeName > "@" || (nodeType = elem.nodeType) === 3 || nodeType === 4 ) { + return false; + } + elem = elem.nextSibling; + } + return true; + }, + + "contains": markFunction(function( text ) { + return function( elem ) { + return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; + }; + }), + + "has": markFunction(function( selector ) { + return function( elem ) { + return Sizzle( selector, elem ).length > 0; + }; + }), + + "header": function( elem ) { + return rheader.test( elem.nodeName ); + }, + + "text": function( elem ) { + var type, attr; + // IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc) + // use getAttribute instead to test this case + return elem.nodeName.toLowerCase() === "input" && + (type = elem.type) === "text" && + ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === type ); + }, + + // Input types + "radio": createInputFunction("radio"), + "checkbox": createInputFunction("checkbox"), + "file": createInputFunction("file"), + "password": createInputFunction("password"), + "image": createInputFunction("image"), + + "submit": createButtonFunction("submit"), + "reset": createButtonFunction("reset"), + + "button": function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === "button" || name === "button"; + }, + + "input": function( elem ) { + return rinputs.test( elem.nodeName ); + }, + + "focus": function( elem ) { + var doc = elem.ownerDocument; + return elem === doc.activeElement && (!doc.hasFocus || doc.hasFocus()) && !!(elem.type || elem.href); + }, + + "active": function( elem ) { + return elem === elem.ownerDocument.activeElement; + } + }, + + setFilters: { + "first": function( elements, argument, not ) { + return not ? elements.slice( 1 ) : [ elements[0] ]; + }, + + "last": function( elements, argument, not ) { + var elem = elements.pop(); + return not ? elements : [ elem ]; + }, + + "even": function( elements, argument, not ) { + var results = [], + i = not ? 1 : 0, + len = elements.length; + for ( ; i < len; i = i + 2 ) { + results.push( elements[i] ); + } + return results; + }, + + "odd": function( elements, argument, not ) { + var results = [], + i = not ? 0 : 1, + len = elements.length; + for ( ; i < len; i = i + 2 ) { + results.push( elements[i] ); + } + return results; + }, + + "lt": function( elements, argument, not ) { + return not ? elements.slice( +argument ) : elements.slice( 0, +argument ); + }, + + "gt": function( elements, argument, not ) { + return not ? elements.slice( 0, +argument + 1 ) : elements.slice( +argument + 1 ); + }, + + "eq": function( elements, argument, not ) { + var elem = elements.splice( +argument, 1 ); + return not ? elements : elem; + } + } +}; + +// Deprecated +Expr.setFilters["nth"] = Expr.setFilters["eq"]; + +// Back-compat +Expr.filters = Expr.pseudos; + +// IE6/7 return a modified href +if ( !assertHrefNotNormalized ) { + Expr.attrHandle = { + "href": function( elem ) { + return elem.getAttribute( "href", 2 ); + }, + "type": function( elem ) { + return elem.getAttribute("type"); + } + }; +} + +// Add getElementsByName if usable +if ( assertUsableName ) { + Expr.order.push("NAME"); + Expr.find["NAME"] = function( name, context ) { + if ( typeof context.getElementsByName !== strundefined ) { + return context.getElementsByName( name ); + } + }; +} + +// Add getElementsByClassName if usable +if ( assertUsableClassName ) { + Expr.order.splice( 1, 0, "CLASS" ); + Expr.find["CLASS"] = function( className, context, xml ) { + if ( typeof context.getElementsByClassName !== strundefined && !xml ) { + return context.getElementsByClassName( className ); + } + }; +} + +// If slice is not available, provide a backup +try { + slice.call( docElem.childNodes, 0 )[0].nodeType; +} catch ( e ) { + slice = function( i ) { + var elem, results = []; + for ( ; (elem = this[i]); i++ ) { + results.push( elem ); + } + return results; + }; +} + +var isXML = Sizzle.isXML = function( elem ) { + // documentElement is verified for cases where it doesn't yet exist + // (such as loading iframes in IE - #4833) + var documentElement = elem && (elem.ownerDocument || elem).documentElement; + return documentElement ? documentElement.nodeName !== "HTML" : false; +}; + +// Element contains another +var contains = Sizzle.contains = docElem.compareDocumentPosition ? + function( a, b ) { + return !!( a.compareDocumentPosition( b ) & 16 ); + } : + docElem.contains ? + function( a, b ) { + var adown = a.nodeType === 9 ? a.documentElement : a, + bup = b.parentNode; + return a === bup || !!( bup && bup.nodeType === 1 && adown.contains && adown.contains(bup) ); + } : + function( a, b ) { + while ( (b = b.parentNode) ) { + if ( b === a ) { + return true; + } + } + return false; + }; + +/** + * Utility function for retrieving the text value of an array of DOM nodes + * @param {Array|Element} elem + */ +var getText = Sizzle.getText = function( elem ) { + var node, + ret = "", + i = 0, + nodeType = elem.nodeType; + + if ( nodeType ) { + if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { + // Use textContent for elements + // innerText usage removed for consistency of new lines (see #11153) + if ( typeof elem.textContent === "string" ) { + return elem.textContent; + } else { + // Traverse its children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + ret += getText( elem ); + } + } + } else if ( nodeType === 3 || nodeType === 4 ) { + return elem.nodeValue; + } + // Do not include comment or processing instruction nodes + } else { + + // If no nodeType, this is expected to be an array + for ( ; (node = elem[i]); i++ ) { + // Do not traverse comment nodes + ret += getText( node ); + } + } + return ret; +}; + +Sizzle.attr = function( elem, name ) { + var attr, + xml = isXML( elem ); + + if ( !xml ) { + name = name.toLowerCase(); + } + if ( Expr.attrHandle[ name ] ) { + return Expr.attrHandle[ name ]( elem ); + } + if ( assertAttributes || xml ) { + return elem.getAttribute( name ); + } + attr = elem.getAttributeNode( name ); + return attr ? + typeof elem[ name ] === "boolean" ? + elem[ name ] ? name : null : + attr.specified ? attr.value : null : + null; +}; + +Sizzle.error = function( msg ) { + throw new Error( "Syntax error, unrecognized expression: " + msg ); +}; + +// Check if the JavaScript engine is using some sort of +// optimization where it does not always call our comparision +// function. If that is the case, discard the hasDuplicate value. +// Thus far that includes Google Chrome. +[0, 0].sort(function() { + return (baseHasDuplicate = 0); +}); + + +if ( docElem.compareDocumentPosition ) { + sortOrder = function( a, b ) { + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + return ( !a.compareDocumentPosition || !b.compareDocumentPosition ? + a.compareDocumentPosition : + a.compareDocumentPosition(b) & 4 + ) ? -1 : 1; + }; + +} else { + sortOrder = function( a, b ) { + // The nodes are identical, we can exit early + if ( a === b ) { + hasDuplicate = true; + return 0; + + // Fallback to using sourceIndex (in IE) if it's available on both nodes + } else if ( a.sourceIndex && b.sourceIndex ) { + return a.sourceIndex - b.sourceIndex; + } + + var al, bl, + ap = [], + bp = [], + aup = a.parentNode, + bup = b.parentNode, + cur = aup; + + // If the nodes are siblings (or identical) we can do a quick check + if ( aup === bup ) { + return siblingCheck( a, b ); + + // If no parents were found then the nodes are disconnected + } else if ( !aup ) { + return -1; + + } else if ( !bup ) { + return 1; + } + + // Otherwise they're somewhere else in the tree so we need + // to build up a full list of the parentNodes for comparison + while ( cur ) { + ap.unshift( cur ); + cur = cur.parentNode; + } + + cur = bup; + + while ( cur ) { + bp.unshift( cur ); + cur = cur.parentNode; + } + + al = ap.length; + bl = bp.length; + + // Start walking down the tree looking for a discrepancy + for ( var i = 0; i < al && i < bl; i++ ) { + if ( ap[i] !== bp[i] ) { + return siblingCheck( ap[i], bp[i] ); + } + } + + // We ended someplace up the tree so do a sibling check + return i === al ? + siblingCheck( a, bp[i], -1 ) : + siblingCheck( ap[i], b, 1 ); + }; + + siblingCheck = function( a, b, ret ) { + if ( a === b ) { + return ret; + } + + var cur = a.nextSibling; + + while ( cur ) { + if ( cur === b ) { + return -1; + } + + cur = cur.nextSibling; + } + + return 1; + }; +} + +// Document sorting and removing duplicates +Sizzle.uniqueSort = function( results ) { + var elem, + i = 1; + + if ( sortOrder ) { + hasDuplicate = baseHasDuplicate; + results.sort( sortOrder ); + + if ( hasDuplicate ) { + for ( ; (elem = results[i]); i++ ) { + if ( elem === results[ i - 1 ] ) { + results.splice( i--, 1 ); + } + } + } + } + + return results; +}; + +function multipleContexts( selector, contexts, results, seed ) { + var i = 0, + len = contexts.length; + for ( ; i < len; i++ ) { + Sizzle( selector, contexts[i], results, seed ); + } +} + +function handlePOSGroup( selector, posfilter, argument, contexts, seed, not ) { + var results, + fn = Expr.setFilters[ posfilter.toLowerCase() ]; + + if ( !fn ) { + Sizzle.error( posfilter ); + } + + if ( selector || !(results = seed) ) { + multipleContexts( selector || "*", contexts, (results = []), seed ); + } + + return results.length > 0 ? fn( results, argument, not ) : []; +} + +function handlePOS( selector, context, results, seed, groups ) { + var match, not, anchor, ret, elements, currentContexts, part, lastIndex, + i = 0, + len = groups.length, + rpos = matchExpr["POS"], + // This is generated here in case matchExpr["POS"] is extended + rposgroups = new RegExp( "^" + rpos.source + "(?!" + whitespace + ")", "i" ), + // This is for making sure non-participating + // matching groups are represented cross-browser (IE6-8) + setUndefined = function() { + var i = 1, + len = arguments.length - 2; + for ( ; i < len; i++ ) { + if ( arguments[i] === undefined ) { + match[i] = undefined; + } + } + }; + + for ( ; i < len; i++ ) { + // Reset regex index to 0 + rpos.exec(""); + selector = groups[i]; + ret = []; + anchor = 0; + elements = seed; + while ( (match = rpos.exec( selector )) ) { + lastIndex = rpos.lastIndex = match.index + match[0].length; + if ( lastIndex > anchor ) { + part = selector.slice( anchor, match.index ); + anchor = lastIndex; + currentContexts = [ context ]; + + if ( rcombinators.test(part) ) { + if ( elements ) { + currentContexts = elements; + } + elements = seed; + } + + if ( (not = rendsWithNot.test( part )) ) { + part = part.slice( 0, -5 ).replace( rcombinators, "$&*" ); + } + + if ( match.length > 1 ) { + match[0].replace( rposgroups, setUndefined ); + } + elements = handlePOSGroup( part, match[1], match[2], currentContexts, elements, not ); + } + } + + if ( elements ) { + ret = ret.concat( elements ); + + if ( (part = selector.slice( anchor )) && part !== ")" ) { + if ( rcombinators.test(part) ) { + multipleContexts( part, ret, results, seed ); + } else { + Sizzle( part, context, results, seed ? seed.concat(elements) : elements ); + } + } else { + push.apply( results, ret ); + } + } else { + Sizzle( selector, context, results, seed ); + } + } + + // Do not sort if this is a single filter + return len === 1 ? results : Sizzle.uniqueSort( results ); +} + +function tokenize( selector, context, xml ) { + var tokens, soFar, type, + groups = [], + i = 0, + + // Catch obvious selector issues: terminal ")"; nonempty fallback match + // rselector never fails to match *something* + match = rselector.exec( selector ), + matched = !match.pop() && !match.pop(), + selectorGroups = matched && selector.match( rgroups ) || [""], + + preFilters = Expr.preFilter, + filters = Expr.filter, + checkContext = !xml && context !== document; + + for ( ; (soFar = selectorGroups[i]) != null && matched; i++ ) { + groups.push( tokens = [] ); + + // Need to make sure we're within a narrower context if necessary + // Adding a descendant combinator will generate what is needed + if ( checkContext ) { + soFar = " " + soFar; + } + + while ( soFar ) { + matched = false; + + // Combinators + if ( (match = rcombinators.exec( soFar )) ) { + soFar = soFar.slice( match[0].length ); + + // Cast descendant combinators to space + matched = tokens.push({ part: match.pop().replace( rtrim, " " ), captures: match }); + } + + // Filters + for ( type in filters ) { + if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || + (match = preFilters[ type ]( match, context, xml )) ) ) { + + soFar = soFar.slice( match.shift().length ); + matched = tokens.push({ part: type, captures: match }); + } + } + + if ( !matched ) { + break; + } + } + } + + if ( !matched ) { + Sizzle.error( selector ); + } + + return groups; +} + +function addCombinator( matcher, combinator, context ) { + var dir = combinator.dir, + doneName = done++; + + if ( !matcher ) { + // If there is no matcher to check, check against the context + matcher = function( elem ) { + return elem === context; + }; + } + return combinator.first ? + function( elem, context ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 ) { + return matcher( elem, context ) && elem; + } + } + } : + function( elem, context ) { + var cache, + dirkey = doneName + "." + dirruns, + cachedkey = dirkey + "." + cachedruns; + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 ) { + if ( (cache = elem[ expando ]) === cachedkey ) { + return elem.sizset; + } else if ( typeof cache === "string" && cache.indexOf(dirkey) === 0 ) { + if ( elem.sizset ) { + return elem; + } + } else { + elem[ expando ] = cachedkey; + if ( matcher( elem, context ) ) { + elem.sizset = true; + return elem; + } + elem.sizset = false; + } + } + } + }; +} + +function addMatcher( higher, deeper ) { + return higher ? + function( elem, context ) { + var result = deeper( elem, context ); + return result && higher( result === true ? elem : result, context ); + } : + deeper; +} + +// ["TAG", ">", "ID", " ", "CLASS"] +function matcherFromTokens( tokens, context, xml ) { + var token, matcher, + i = 0; + + for ( ; (token = tokens[i]); i++ ) { + if ( Expr.relative[ token.part ] ) { + matcher = addCombinator( matcher, Expr.relative[ token.part ], context ); + } else { + token.captures.push( context, xml ); + matcher = addMatcher( matcher, Expr.filter[ token.part ].apply( null, token.captures ) ); + } + } + + return matcher; +} + +function matcherFromGroupMatchers( matchers ) { + return function( elem, context ) { + var matcher, + j = 0; + for ( ; (matcher = matchers[j]); j++ ) { + if ( matcher(elem, context) ) { + return true; + } + } + return false; + }; +} + +var compile = Sizzle.compile = function( selector, context, xml ) { + var tokens, group, i, + cached = compilerCache[ selector ]; + + // Return a cached group function if already generated (context dependent) + if ( cached && cached.context === context ) { + return cached; + } + + // Generate a function of recursive functions that can be used to check each element + group = tokenize( selector, context, xml ); + for ( i = 0; (tokens = group[i]); i++ ) { + group[i] = matcherFromTokens( tokens, context, xml ); + } + + // Cache the compiled function + cached = compilerCache[ selector ] = matcherFromGroupMatchers( group ); + cached.context = context; + cached.runs = cached.dirruns = 0; + cachedSelectors.push( selector ); + // Ensure only the most recent are cached + if ( cachedSelectors.length > Expr.cacheLength ) { + delete compilerCache[ cachedSelectors.shift() ]; + } + return cached; +}; + +Sizzle.matches = function( expr, elements ) { + return Sizzle( expr, null, null, elements ); +}; + +Sizzle.matchesSelector = function( elem, expr ) { + return Sizzle( expr, null, null, [ elem ] ).length > 0; +}; + +var select = function( selector, context, results, seed, xml ) { + // Remove excessive whitespace + selector = selector.replace( rtrim, "$1" ); + var elements, matcher, i, len, elem, token, + type, findContext, notTokens, + match = selector.match( rgroups ), + tokens = selector.match( rtokens ), + contextNodeType = context.nodeType; + + // POS handling + if ( matchExpr["POS"].test(selector) ) { + return handlePOS( selector, context, results, seed, match ); + } + + if ( seed ) { + elements = slice.call( seed, 0 ); + + // To maintain document order, only narrow the + // set if there is one group + } else if ( match && match.length === 1 ) { + + // Take a shortcut and set the context if the root selector is an ID + if ( tokens.length > 1 && contextNodeType === 9 && !xml && + (match = matchExpr["ID"].exec( tokens[0] )) ) { + + context = Expr.find["ID"]( match[1], context, xml )[0]; + if ( !context ) { + return results; + } + + selector = selector.slice( tokens.shift().length ); + } + + findContext = ( (match = rsibling.exec( tokens[0] )) && !match.index && context.parentNode ) || context; + + // Get the last token, excluding :not + notTokens = tokens.pop(); + token = notTokens.split(":not")[0]; + + for ( i = 0, len = Expr.order.length; i < len; i++ ) { + type = Expr.order[i]; + + if ( (match = matchExpr[ type ].exec( token )) ) { + elements = Expr.find[ type ]( (match[1] || "").replace( rbackslash, "" ), findContext, xml ); + + if ( elements == null ) { + continue; + } + + if ( token === notTokens ) { + selector = selector.slice( 0, selector.length - notTokens.length ) + + token.replace( matchExpr[ type ], "" ); + + if ( !selector ) { + push.apply( results, slice.call(elements, 0) ); + } + } + break; + } + } + } + + // Only loop over the given elements once + // If selector is empty, we're already done + if ( selector ) { + matcher = compile( selector, context, xml ); + dirruns = matcher.dirruns++; + + if ( elements == null ) { + elements = Expr.find["TAG"]( "*", (rsibling.test( selector ) && context.parentNode) || context ); + } + for ( i = 0; (elem = elements[i]); i++ ) { + cachedruns = matcher.runs++; + if ( matcher(elem, context) ) { + results.push( elem ); + } + } + } + + return results; +}; + +if ( document.querySelectorAll ) { + (function() { + var disconnectedMatch, + oldSelect = select, + rescape = /'|\\/g, + rattributeQuotes = /\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g, + rbuggyQSA = [], + // matchesSelector(:active) reports false when true (IE9/Opera 11.5) + // A support test would require too much code (would include document ready) + // just skip matchesSelector for :active + rbuggyMatches = [":active"], + matches = docElem.matchesSelector || + docElem.mozMatchesSelector || + docElem.webkitMatchesSelector || + docElem.oMatchesSelector || + docElem.msMatchesSelector; + + // Build QSA regex + // Regex strategy adopted from Diego Perini + assert(function( div ) { + div.innerHTML = ""; + + // IE8 - Some boolean attributes are not treated correctly + if ( !div.querySelectorAll("[selected]").length ) { + rbuggyQSA.push( "\\[" + whitespace + "*(?:checked|disabled|ismap|multiple|readonly|selected|value)" ); + } + + // Webkit/Opera - :checked should return selected option elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + // IE8 throws error here (do not put tests after this one) + if ( !div.querySelectorAll(":checked").length ) { + rbuggyQSA.push(":checked"); + } + }); + + assert(function( div ) { + + // Opera 10-12/IE9 - ^= $= *= and empty values + // Should not select anything + div.innerHTML = "

                                "; + if ( div.querySelectorAll("[test^='']").length ) { + rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:\"\"|'')" ); + } + + // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) + // IE8 throws error here (do not put tests after this one) + div.innerHTML = ""; + if ( !div.querySelectorAll(":enabled").length ) { + rbuggyQSA.push(":enabled", ":disabled"); + } + }); + + rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") ); + + select = function( selector, context, results, seed, xml ) { + // Only use querySelectorAll when not filtering, + // when this is not xml, + // and when no QSA bugs apply + if ( !seed && !xml && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) { + if ( context.nodeType === 9 ) { + try { + push.apply( results, slice.call(context.querySelectorAll( selector ), 0) ); + return results; + } catch(qsaError) {} + // qSA works strangely on Element-rooted queries + // We can work around this by specifying an extra ID on the root + // and working up from there (Thanks to Andrew Dupont for the technique) + // IE 8 doesn't work on object elements + } else if ( context.nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) { + var old = context.getAttribute("id"), + nid = old || expando, + newContext = rsibling.test( selector ) && context.parentNode || context; + + if ( old ) { + nid = nid.replace( rescape, "\\$&" ); + } else { + context.setAttribute( "id", nid ); + } + + try { + push.apply( results, slice.call( newContext.querySelectorAll( + selector.replace( rgroups, "[id='" + nid + "'] $&" ) + ), 0 ) ); + return results; + } catch(qsaError) { + } finally { + if ( !old ) { + context.removeAttribute("id"); + } + } + } + } + + return oldSelect( selector, context, results, seed, xml ); + }; + + if ( matches ) { + assert(function( div ) { + // Check to see if it's possible to do matchesSelector + // on a disconnected node (IE 9) + disconnectedMatch = matches.call( div, "div" ); + + // This should fail with an exception + // Gecko does not error, returns false instead + try { + matches.call( div, "[test!='']:sizzle" ); + rbuggyMatches.push( Expr.match.PSEUDO ); + } catch ( e ) {} + }); + + // rbuggyMatches always contains :active, so no need for a length check + rbuggyMatches = /* rbuggyMatches.length && */ new RegExp( rbuggyMatches.join("|") ); + + Sizzle.matchesSelector = function( elem, expr ) { + // Make sure that attribute selectors are quoted + expr = expr.replace( rattributeQuotes, "='$1']" ); + + // rbuggyMatches always contains :active, so no need for an existence check + if ( !isXML( elem ) && !rbuggyMatches.test( expr ) && (!rbuggyQSA || !rbuggyQSA.test( expr )) ) { + try { + var ret = matches.call( elem, expr ); + + // IE 9's matchesSelector returns false on disconnected nodes + if ( ret || disconnectedMatch || + // As well, disconnected nodes are said to be in a document + // fragment in IE 9 + elem.document && elem.document.nodeType !== 11 ) { + return ret; + } + } catch(e) {} + } + + return Sizzle( expr, null, null, [ elem ] ).length > 0; + }; + } + })(); +} + +// Override sizzle attribute retrieval +Sizzle.attr = jQuery.attr; +jQuery.find = Sizzle; +jQuery.expr = Sizzle.selectors; +jQuery.expr[":"] = jQuery.expr.pseudos; +jQuery.unique = Sizzle.uniqueSort; +jQuery.text = Sizzle.getText; +jQuery.isXMLDoc = Sizzle.isXML; +jQuery.contains = Sizzle.contains; + + +})( window ); +var runtil = /Until$/, + rparentsprev = /^(?:parents|prev(?:Until|All))/, + isSimple = /^.[^:#\[\.,]*$/, + rneedsContext = jQuery.expr.match.needsContext, + // methods guaranteed to produce a unique set when starting from a unique set + guaranteedUnique = { + children: true, + contents: true, + next: true, + prev: true + }; + +jQuery.fn.extend({ + find: function( selector ) { + var i, l, length, n, r, ret, + self = this; + + if ( typeof selector !== "string" ) { + return jQuery( selector ).filter(function() { + for ( i = 0, l = self.length; i < l; i++ ) { + if ( jQuery.contains( self[ i ], this ) ) { + return true; + } + } + }); + } + + ret = this.pushStack( "", "find", selector ); + + for ( i = 0, l = this.length; i < l; i++ ) { + length = ret.length; + jQuery.find( selector, this[i], ret ); + + if ( i > 0 ) { + // Make sure that the results are unique + for ( n = length; n < ret.length; n++ ) { + for ( r = 0; r < length; r++ ) { + if ( ret[r] === ret[n] ) { + ret.splice(n--, 1); + break; + } + } + } + } + } + + return ret; + }, + + has: function( target ) { + var i, + targets = jQuery( target, this ), + len = targets.length; + + return this.filter(function() { + for ( i = 0; i < len; i++ ) { + if ( jQuery.contains( this, targets[i] ) ) { + return true; + } + } + }); + }, + + not: function( selector ) { + return this.pushStack( winnow(this, selector, false), "not", selector); + }, + + filter: function( selector ) { + return this.pushStack( winnow(this, selector, true), "filter", selector ); + }, + + is: function( selector ) { + return !!selector && ( + typeof selector === "string" ? + // If this is a positional/relative selector, check membership in the returned set + // so $("p:first").is("p:last") won't return true for a doc with two "p". + rneedsContext.test( selector ) ? + jQuery( selector, this.context ).index( this[0] ) >= 0 : + jQuery.filter( selector, this ).length > 0 : + this.filter( selector ).length > 0 ); + }, + + closest: function( selectors, context ) { + var cur, + i = 0, + l = this.length, + ret = [], + pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ? + jQuery( selectors, context || this.context ) : + 0; + + for ( ; i < l; i++ ) { + cur = this[i]; + + while ( cur && cur.ownerDocument && cur !== context && cur.nodeType !== 11 ) { + if ( pos ? pos.index(cur) > -1 : jQuery.find.matchesSelector(cur, selectors) ) { + ret.push( cur ); + break; + } + cur = cur.parentNode; + } + } + + ret = ret.length > 1 ? jQuery.unique( ret ) : ret; + + return this.pushStack( ret, "closest", selectors ); + }, + + // Determine the position of an element within + // the matched set of elements + index: function( elem ) { + + // No argument, return index in parent + if ( !elem ) { + return ( this[0] && this[0].parentNode ) ? this.prevAll().length : -1; + } + + // index in selector + if ( typeof elem === "string" ) { + return jQuery.inArray( this[0], jQuery( elem ) ); + } + + // Locate the position of the desired element + return jQuery.inArray( + // If it receives a jQuery object, the first element is used + elem.jquery ? elem[0] : elem, this ); + }, + + add: function( selector, context ) { + var set = typeof selector === "string" ? + jQuery( selector, context ) : + jQuery.makeArray( selector && selector.nodeType ? [ selector ] : selector ), + all = jQuery.merge( this.get(), set ); + + return this.pushStack( isDisconnected( set[0] ) || isDisconnected( all[0] ) ? + all : + jQuery.unique( all ) ); + }, + + addBack: function( selector ) { + return this.add( selector == null ? + this.prevObject : this.prevObject.filter(selector) + ); + } +}); + +jQuery.fn.andSelf = jQuery.fn.addBack; + +// A painfully simple check to see if an element is disconnected +// from a document (should be improved, where feasible). +function isDisconnected( node ) { + return !node || !node.parentNode || node.parentNode.nodeType === 11; +} + +function sibling( cur, dir ) { + do { + cur = cur[ dir ]; + } while ( cur && cur.nodeType !== 1 ); + + return cur; +} + +jQuery.each({ + parent: function( elem ) { + var parent = elem.parentNode; + return parent && parent.nodeType !== 11 ? parent : null; + }, + parents: function( elem ) { + return jQuery.dir( elem, "parentNode" ); + }, + parentsUntil: function( elem, i, until ) { + return jQuery.dir( elem, "parentNode", until ); + }, + next: function( elem ) { + return sibling( elem, "nextSibling" ); + }, + prev: function( elem ) { + return sibling( elem, "previousSibling" ); + }, + nextAll: function( elem ) { + return jQuery.dir( elem, "nextSibling" ); + }, + prevAll: function( elem ) { + return jQuery.dir( elem, "previousSibling" ); + }, + nextUntil: function( elem, i, until ) { + return jQuery.dir( elem, "nextSibling", until ); + }, + prevUntil: function( elem, i, until ) { + return jQuery.dir( elem, "previousSibling", until ); + }, + siblings: function( elem ) { + return jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem ); + }, + children: function( elem ) { + return jQuery.sibling( elem.firstChild ); + }, + contents: function( elem ) { + return jQuery.nodeName( elem, "iframe" ) ? + elem.contentDocument || elem.contentWindow.document : + jQuery.merge( [], elem.childNodes ); + } +}, function( name, fn ) { + jQuery.fn[ name ] = function( until, selector ) { + var ret = jQuery.map( this, fn, until ); + + if ( !runtil.test( name ) ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + ret = jQuery.filter( selector, ret ); + } + + ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret; + + if ( this.length > 1 && rparentsprev.test( name ) ) { + ret = ret.reverse(); + } + + return this.pushStack( ret, name, core_slice.call( arguments ).join(",") ); + }; +}); + +jQuery.extend({ + filter: function( expr, elems, not ) { + if ( not ) { + expr = ":not(" + expr + ")"; + } + + return elems.length === 1 ? + jQuery.find.matchesSelector(elems[0], expr) ? [ elems[0] ] : [] : + jQuery.find.matches(expr, elems); + }, + + dir: function( elem, dir, until ) { + var matched = [], + cur = elem[ dir ]; + + while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) { + if ( cur.nodeType === 1 ) { + matched.push( cur ); + } + cur = cur[dir]; + } + return matched; + }, + + sibling: function( n, elem ) { + var r = []; + + for ( ; n; n = n.nextSibling ) { + if ( n.nodeType === 1 && n !== elem ) { + r.push( n ); + } + } + + return r; + } +}); + +// Implement the identical functionality for filter and not +function winnow( elements, qualifier, keep ) { + + // Can't pass null or undefined to indexOf in Firefox 4 + // Set to 0 to skip string check + qualifier = qualifier || 0; + + if ( jQuery.isFunction( qualifier ) ) { + return jQuery.grep(elements, function( elem, i ) { + var retVal = !!qualifier.call( elem, i, elem ); + return retVal === keep; + }); + + } else if ( qualifier.nodeType ) { + return jQuery.grep(elements, function( elem, i ) { + return ( elem === qualifier ) === keep; + }); + + } else if ( typeof qualifier === "string" ) { + var filtered = jQuery.grep(elements, function( elem ) { + return elem.nodeType === 1; + }); + + if ( isSimple.test( qualifier ) ) { + return jQuery.filter(qualifier, filtered, !keep); + } else { + qualifier = jQuery.filter( qualifier, filtered ); + } + } + + return jQuery.grep(elements, function( elem, i ) { + return ( jQuery.inArray( elem, qualifier ) >= 0 ) === keep; + }); +} +function createSafeFragment( document ) { + var list = nodeNames.split( "|" ), + safeFrag = document.createDocumentFragment(); + + if ( safeFrag.createElement ) { + while ( list.length ) { + safeFrag.createElement( + list.pop() + ); + } + } + return safeFrag; +} + +var nodeNames = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|" + + "header|hgroup|mark|meter|nav|output|progress|section|summary|time|video", + rinlinejQuery = / jQuery\d+="(?:null|\d+)"/g, + rleadingWhitespace = /^\s+/, + rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi, + rtagName = /<([\w:]+)/, + rtbody = /]", "i"), + rcheckableType = /^(?:checkbox|radio)$/, + // checked="checked" or checked + rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i, + rscriptType = /\/(java|ecma)script/i, + rcleanScript = /^\s*\s*$/g, + wrapMap = { + option: [ 1, "" ], + legend: [ 1, "
                                ", "
                                " ], + thead: [ 1, "", "
                                " ], + tr: [ 2, "", "
                                " ], + td: [ 3, "", "
                                " ], + col: [ 2, "", "
                                " ], + area: [ 1, "", "" ], + _default: [ 0, "", "" ] + }, + safeFragment = createSafeFragment( document ), + fragmentDiv = safeFragment.appendChild( document.createElement("div") ); + +wrapMap.optgroup = wrapMap.option; +wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; +wrapMap.th = wrapMap.td; + +// IE6-8 can't serialize link, script, style, or any html5 (NoScope) tags, +// unless wrapped in a div with non-breaking characters in front of it. +if ( !jQuery.support.htmlSerialize ) { + wrapMap._default = [ 1, "X
                                ", "
                                " ]; +} + +jQuery.fn.extend({ + text: function( value ) { + return jQuery.access( this, function( value ) { + return value === undefined ? + jQuery.text( this ) : + this.empty().append( ( this[0] && this[0].ownerDocument || document ).createTextNode( value ) ); + }, null, value, arguments.length ); + }, + + wrapAll: function( html ) { + if ( jQuery.isFunction( html ) ) { + return this.each(function(i) { + jQuery(this).wrapAll( html.call(this, i) ); + }); + } + + if ( this[0] ) { + // The elements to wrap the target around + var wrap = jQuery( html, this[0].ownerDocument ).eq(0).clone(true); + + if ( this[0].parentNode ) { + wrap.insertBefore( this[0] ); + } + + wrap.map(function() { + var elem = this; + + while ( elem.firstChild && elem.firstChild.nodeType === 1 ) { + elem = elem.firstChild; + } + + return elem; + }).append( this ); + } + + return this; + }, + + wrapInner: function( html ) { + if ( jQuery.isFunction( html ) ) { + return this.each(function(i) { + jQuery(this).wrapInner( html.call(this, i) ); + }); + } + + return this.each(function() { + var self = jQuery( this ), + contents = self.contents(); + + if ( contents.length ) { + contents.wrapAll( html ); + + } else { + self.append( html ); + } + }); + }, + + wrap: function( html ) { + var isFunction = jQuery.isFunction( html ); + + return this.each(function(i) { + jQuery( this ).wrapAll( isFunction ? html.call(this, i) : html ); + }); + }, + + unwrap: function() { + return this.parent().each(function() { + if ( !jQuery.nodeName( this, "body" ) ) { + jQuery( this ).replaceWith( this.childNodes ); + } + }).end(); + }, + + append: function() { + return this.domManip(arguments, true, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 ) { + this.appendChild( elem ); + } + }); + }, + + prepend: function() { + return this.domManip(arguments, true, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 ) { + this.insertBefore( elem, this.firstChild ); + } + }); + }, + + before: function() { + if ( !isDisconnected( this[0] ) ) { + return this.domManip(arguments, false, function( elem ) { + this.parentNode.insertBefore( elem, this ); + }); + } + + if ( arguments.length ) { + var set = jQuery.clean( arguments ); + return this.pushStack( jQuery.merge( set, this ), "before", this.selector ); + } + }, + + after: function() { + if ( !isDisconnected( this[0] ) ) { + return this.domManip(arguments, false, function( elem ) { + this.parentNode.insertBefore( elem, this.nextSibling ); + }); + } + + if ( arguments.length ) { + var set = jQuery.clean( arguments ); + return this.pushStack( jQuery.merge( this, set ), "after", this.selector ); + } + }, + + // keepData is for internal use only--do not document + remove: function( selector, keepData ) { + var elem, + i = 0; + + for ( ; (elem = this[i]) != null; i++ ) { + if ( !selector || jQuery.filter( selector, [ elem ] ).length ) { + if ( !keepData && elem.nodeType === 1 ) { + jQuery.cleanData( elem.getElementsByTagName("*") ); + jQuery.cleanData( [ elem ] ); + } + + if ( elem.parentNode ) { + elem.parentNode.removeChild( elem ); + } + } + } + + return this; + }, + + empty: function() { + var elem, + i = 0; + + for ( ; (elem = this[i]) != null; i++ ) { + // Remove element nodes and prevent memory leaks + if ( elem.nodeType === 1 ) { + jQuery.cleanData( elem.getElementsByTagName("*") ); + } + + // Remove any remaining nodes + while ( elem.firstChild ) { + elem.removeChild( elem.firstChild ); + } + } + + return this; + }, + + clone: function( dataAndEvents, deepDataAndEvents ) { + dataAndEvents = dataAndEvents == null ? false : dataAndEvents; + deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; + + return this.map( function () { + return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); + }); + }, + + html: function( value ) { + return jQuery.access( this, function( value ) { + var elem = this[0] || {}, + i = 0, + l = this.length; + + if ( value === undefined ) { + return elem.nodeType === 1 ? + elem.innerHTML.replace( rinlinejQuery, "" ) : + undefined; + } + + // See if we can take a shortcut and just use innerHTML + if ( typeof value === "string" && !rnoInnerhtml.test( value ) && + ( jQuery.support.htmlSerialize || !rnoshimcache.test( value ) ) && + ( jQuery.support.leadingWhitespace || !rleadingWhitespace.test( value ) ) && + !wrapMap[ ( rtagName.exec( value ) || ["", ""] )[1].toLowerCase() ] ) { + + value = value.replace( rxhtmlTag, "<$1>" ); + + try { + for (; i < l; i++ ) { + // Remove element nodes and prevent memory leaks + elem = this[i] || {}; + if ( elem.nodeType === 1 ) { + jQuery.cleanData( elem.getElementsByTagName( "*" ) ); + elem.innerHTML = value; + } + } + + elem = 0; + + // If using innerHTML throws an exception, use the fallback method + } catch(e) {} + } + + if ( elem ) { + this.empty().append( value ); + } + }, null, value, arguments.length ); + }, + + replaceWith: function( value ) { + if ( !isDisconnected( this[0] ) ) { + // Make sure that the elements are removed from the DOM before they are inserted + // this can help fix replacing a parent with child elements + if ( jQuery.isFunction( value ) ) { + return this.each(function(i) { + var self = jQuery(this), old = self.html(); + self.replaceWith( value.call( this, i, old ) ); + }); + } + + if ( typeof value !== "string" ) { + value = jQuery( value ).detach(); + } + + return this.each(function() { + var next = this.nextSibling, + parent = this.parentNode; + + jQuery( this ).remove(); + + if ( next ) { + jQuery(next).before( value ); + } else { + jQuery(parent).append( value ); + } + }); + } + + return this.length ? + this.pushStack( jQuery(jQuery.isFunction(value) ? value() : value), "replaceWith", value ) : + this; + }, + + detach: function( selector ) { + return this.remove( selector, true ); + }, + + domManip: function( args, table, callback ) { + + // Flatten any nested arrays + args = [].concat.apply( [], args ); + + var results, first, fragment, iNoClone, + i = 0, + value = args[0], + scripts = [], + l = this.length; + + // We can't cloneNode fragments that contain checked, in WebKit + if ( !jQuery.support.checkClone && l > 1 && typeof value === "string" && rchecked.test( value ) ) { + return this.each(function() { + jQuery(this).domManip( args, table, callback ); + }); + } + + if ( jQuery.isFunction(value) ) { + return this.each(function(i) { + var self = jQuery(this); + args[0] = value.call( this, i, table ? self.html() : undefined ); + self.domManip( args, table, callback ); + }); + } + + if ( this[0] ) { + results = jQuery.buildFragment( args, this, scripts ); + fragment = results.fragment; + first = fragment.firstChild; + + if ( fragment.childNodes.length === 1 ) { + fragment = first; + } + + if ( first ) { + table = table && jQuery.nodeName( first, "tr" ); + + // Use the original fragment for the last item instead of the first because it can end up + // being emptied incorrectly in certain situations (#8070). + // Fragments from the fragment cache must always be cloned and never used in place. + for ( iNoClone = results.cacheable || l - 1; i < l; i++ ) { + callback.call( + table && jQuery.nodeName( this[i], "table" ) ? + findOrAppend( this[i], "tbody" ) : + this[i], + i === iNoClone ? + fragment : + jQuery.clone( fragment, true, true ) + ); + } + } + + // Fix #11809: Avoid leaking memory + fragment = first = null; + + if ( scripts.length ) { + jQuery.each( scripts, function( i, elem ) { + if ( elem.src ) { + if ( jQuery.ajax ) { + jQuery.ajax({ + url: elem.src, + type: "GET", + dataType: "script", + async: false, + global: false, + "throws": true + }); + } else { + jQuery.error("no ajax"); + } + } else { + jQuery.globalEval( ( elem.text || elem.textContent || elem.innerHTML || "" ).replace( rcleanScript, "" ) ); + } + + if ( elem.parentNode ) { + elem.parentNode.removeChild( elem ); + } + }); + } + } + + return this; + } +}); + +function findOrAppend( elem, tag ) { + return elem.getElementsByTagName( tag )[0] || elem.appendChild( elem.ownerDocument.createElement( tag ) ); +} + +function cloneCopyEvent( src, dest ) { + + if ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) { + return; + } + + var type, i, l, + oldData = jQuery._data( src ), + curData = jQuery._data( dest, oldData ), + events = oldData.events; + + if ( events ) { + delete curData.handle; + curData.events = {}; + + for ( type in events ) { + for ( i = 0, l = events[ type ].length; i < l; i++ ) { + jQuery.event.add( dest, type, events[ type ][ i ] ); + } + } + } + + // make the cloned public data object a copy from the original + if ( curData.data ) { + curData.data = jQuery.extend( {}, curData.data ); + } +} + +function cloneFixAttributes( src, dest ) { + var nodeName; + + // We do not need to do anything for non-Elements + if ( dest.nodeType !== 1 ) { + return; + } + + // clearAttributes removes the attributes, which we don't want, + // but also removes the attachEvent events, which we *do* want + if ( dest.clearAttributes ) { + dest.clearAttributes(); + } + + // mergeAttributes, in contrast, only merges back on the + // original attributes, not the events + if ( dest.mergeAttributes ) { + dest.mergeAttributes( src ); + } + + nodeName = dest.nodeName.toLowerCase(); + + if ( nodeName === "object" ) { + // IE6-10 improperly clones children of object elements using classid. + // IE10 throws NoModificationAllowedError if parent is null, #12132. + if ( dest.parentNode ) { + dest.outerHTML = src.outerHTML; + } + + // This path appears unavoidable for IE9. When cloning an object + // element in IE9, the outerHTML strategy above is not sufficient. + // If the src has innerHTML and the destination does not, + // copy the src.innerHTML into the dest.innerHTML. #10324 + if ( jQuery.support.html5Clone && (src.innerHTML && !jQuery.trim(dest.innerHTML)) ) { + dest.innerHTML = src.innerHTML; + } + + } else if ( nodeName === "input" && rcheckableType.test( src.type ) ) { + // IE6-8 fails to persist the checked state of a cloned checkbox + // or radio button. Worse, IE6-7 fail to give the cloned element + // a checked appearance if the defaultChecked value isn't also set + + dest.defaultChecked = dest.checked = src.checked; + + // IE6-7 get confused and end up setting the value of a cloned + // checkbox/radio button to an empty string instead of "on" + if ( dest.value !== src.value ) { + dest.value = src.value; + } + + // IE6-8 fails to return the selected option to the default selected + // state when cloning options + } else if ( nodeName === "option" ) { + dest.selected = src.defaultSelected; + + // IE6-8 fails to set the defaultValue to the correct value when + // cloning other types of input fields + } else if ( nodeName === "input" || nodeName === "textarea" ) { + dest.defaultValue = src.defaultValue; + + // IE blanks contents when cloning scripts + } else if ( nodeName === "script" && dest.text !== src.text ) { + dest.text = src.text; + } + + // Event data gets referenced instead of copied if the expando + // gets copied too + dest.removeAttribute( jQuery.expando ); +} + +jQuery.buildFragment = function( args, context, scripts ) { + var fragment, cacheable, cachehit, + first = args[ 0 ]; + + // Set context from what may come in as undefined or a jQuery collection or a node + context = context || document; + context = (context[0] || context).ownerDocument || context[0] || context; + + // Ensure that an attr object doesn't incorrectly stand in as a document object + // Chrome and Firefox seem to allow this to occur and will throw exception + // Fixes #8950 + if ( typeof context.createDocumentFragment === "undefined" ) { + context = document; + } + + // Only cache "small" (1/2 KB) HTML strings that are associated with the main document + // Cloning options loses the selected state, so don't cache them + // IE 6 doesn't like it when you put or elements in a fragment + // Also, WebKit does not clone 'checked' attributes on cloneNode, so don't cache + // Lastly, IE6,7,8 will not correctly reuse cached fragments that were created from unknown elems #10501 + if ( args.length === 1 && typeof first === "string" && first.length < 512 && context === document && + first.charAt(0) === "<" && !rnocache.test( first ) && + (jQuery.support.checkClone || !rchecked.test( first )) && + (jQuery.support.html5Clone || !rnoshimcache.test( first )) ) { + + // Mark cacheable and look for a hit + cacheable = true; + fragment = jQuery.fragments[ first ]; + cachehit = fragment !== undefined; + } + + if ( !fragment ) { + fragment = context.createDocumentFragment(); + jQuery.clean( args, context, fragment, scripts ); + + // Update the cache, but only store false + // unless this is a second parsing of the same content + if ( cacheable ) { + jQuery.fragments[ first ] = cachehit && fragment; + } + } + + return { fragment: fragment, cacheable: cacheable }; +}; + +jQuery.fragments = {}; + +jQuery.each({ + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith" +}, function( name, original ) { + jQuery.fn[ name ] = function( selector ) { + var elems, + i = 0, + ret = [], + insert = jQuery( selector ), + l = insert.length, + parent = this.length === 1 && this[0].parentNode; + + if ( (parent == null || parent && parent.nodeType === 11 && parent.childNodes.length === 1) && l === 1 ) { + insert[ original ]( this[0] ); + return this; + } else { + for ( ; i < l; i++ ) { + elems = ( i > 0 ? this.clone(true) : this ).get(); + jQuery( insert[i] )[ original ]( elems ); + ret = ret.concat( elems ); + } + + return this.pushStack( ret, name, insert.selector ); + } + }; +}); + +function getAll( elem ) { + if ( typeof elem.getElementsByTagName !== "undefined" ) { + return elem.getElementsByTagName( "*" ); + + } else if ( typeof elem.querySelectorAll !== "undefined" ) { + return elem.querySelectorAll( "*" ); + + } else { + return []; + } +} + +// Used in clean, fixes the defaultChecked property +function fixDefaultChecked( elem ) { + if ( rcheckableType.test( elem.type ) ) { + elem.defaultChecked = elem.checked; + } +} + +jQuery.extend({ + clone: function( elem, dataAndEvents, deepDataAndEvents ) { + var srcElements, + destElements, + i, + clone; + + if ( jQuery.support.html5Clone || jQuery.isXMLDoc(elem) || !rnoshimcache.test( "<" + elem.nodeName + ">" ) ) { + clone = elem.cloneNode( true ); + + // IE<=8 does not properly clone detached, unknown element nodes + } else { + fragmentDiv.innerHTML = elem.outerHTML; + fragmentDiv.removeChild( clone = fragmentDiv.firstChild ); + } + + if ( (!jQuery.support.noCloneEvent || !jQuery.support.noCloneChecked) && + (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) { + // IE copies events bound via attachEvent when using cloneNode. + // Calling detachEvent on the clone will also remove the events + // from the original. In order to get around this, we use some + // proprietary methods to clear the events. Thanks to MooTools + // guys for this hotness. + + cloneFixAttributes( elem, clone ); + + // Using Sizzle here is crazy slow, so we use getElementsByTagName instead + srcElements = getAll( elem ); + destElements = getAll( clone ); + + // Weird iteration because IE will replace the length property + // with an element if you are cloning the body and one of the + // elements on the page has a name or id of "length" + for ( i = 0; srcElements[i]; ++i ) { + // Ensure that the destination node is not null; Fixes #9587 + if ( destElements[i] ) { + cloneFixAttributes( srcElements[i], destElements[i] ); + } + } + } + + // Copy the events from the original to the clone + if ( dataAndEvents ) { + cloneCopyEvent( elem, clone ); + + if ( deepDataAndEvents ) { + srcElements = getAll( elem ); + destElements = getAll( clone ); + + for ( i = 0; srcElements[i]; ++i ) { + cloneCopyEvent( srcElements[i], destElements[i] ); + } + } + } + + srcElements = destElements = null; + + // Return the cloned set + return clone; + }, + + clean: function( elems, context, fragment, scripts ) { + var j, safe, elem, tag, wrap, depth, div, hasBody, tbody, len, handleScript, jsTags, + i = 0, + ret = []; + + // Ensure that context is a document + if ( !context || typeof context.createDocumentFragment === "undefined" ) { + context = document; + } + + // Use the already-created safe fragment if context permits + for ( safe = context === document && safeFragment; (elem = elems[i]) != null; i++ ) { + if ( typeof elem === "number" ) { + elem += ""; + } + + if ( !elem ) { + continue; + } + + // Convert html string into DOM nodes + if ( typeof elem === "string" ) { + if ( !rhtml.test( elem ) ) { + elem = context.createTextNode( elem ); + } else { + // Ensure a safe container in which to render the html + safe = safe || createSafeFragment( context ); + div = div || safe.appendChild( context.createElement("div") ); + + // Fix "XHTML"-style tags in all browsers + elem = elem.replace(rxhtmlTag, "<$1>"); + + // Go to html and back, then peel off extra wrappers + tag = ( rtagName.exec( elem ) || ["", ""] )[1].toLowerCase(); + wrap = wrapMap[ tag ] || wrapMap._default; + depth = wrap[0]; + div.innerHTML = wrap[1] + elem + wrap[2]; + + // Move to the right depth + while ( depth-- ) { + div = div.lastChild; + } + + // Remove IE's autoinserted from table fragments + if ( !jQuery.support.tbody ) { + + // String was a , *may* have spurious + hasBody = rtbody.test(elem); + tbody = tag === "table" && !hasBody ? + div.firstChild && div.firstChild.childNodes : + + // String was a bare or + wrap[1] === "
                                " && !hasBody ? + div.childNodes : + []; + + for ( j = tbody.length - 1; j >= 0 ; --j ) { + if ( jQuery.nodeName( tbody[ j ], "tbody" ) && !tbody[ j ].childNodes.length ) { + tbody[ j ].parentNode.removeChild( tbody[ j ] ); + } + } + } + + // IE completely kills leading whitespace when innerHTML is used + if ( !jQuery.support.leadingWhitespace && rleadingWhitespace.test( elem ) ) { + div.insertBefore( context.createTextNode( rleadingWhitespace.exec(elem)[0] ), div.firstChild ); + } + + elem = div.childNodes; + + // Remember the top-level container for proper cleanup + div = safe.lastChild; + } + } + + if ( elem.nodeType ) { + ret.push( elem ); + } else { + ret = jQuery.merge( ret, elem ); + } + } + + // Fix #11356: Clear elements from safeFragment + if ( div ) { + safe.removeChild( div ); + elem = div = safe = null; + } + + // Reset defaultChecked for any radios and checkboxes + // about to be appended to the DOM in IE 6/7 (#8060) + if ( !jQuery.support.appendChecked ) { + for ( i = 0; (elem = ret[i]) != null; i++ ) { + if ( jQuery.nodeName( elem, "input" ) ) { + fixDefaultChecked( elem ); + } else if ( typeof elem.getElementsByTagName !== "undefined" ) { + jQuery.grep( elem.getElementsByTagName("input"), fixDefaultChecked ); + } + } + } + + // Append elements to a provided document fragment + if ( fragment ) { + // Special handling of each script element + handleScript = function( elem ) { + // Check if we consider it executable + if ( !elem.type || rscriptType.test( elem.type ) ) { + // Detach the script and store it in the scripts array (if provided) or the fragment + // Return truthy to indicate that it has been handled + return scripts ? + scripts.push( elem.parentNode ? elem.parentNode.removeChild( elem ) : elem ) : + fragment.appendChild( elem ); + } + }; + + for ( i = 0; (elem = ret[i]) != null; i++ ) { + // Check if we're done after handling an executable script + if ( !( jQuery.nodeName( elem, "script" ) && handleScript( elem ) ) ) { + // Append to fragment and handle embedded scripts + fragment.appendChild( elem ); + if ( typeof elem.getElementsByTagName !== "undefined" ) { + // handleScript alters the DOM, so use jQuery.merge to ensure snapshot iteration + jsTags = jQuery.grep( jQuery.merge( [], elem.getElementsByTagName("script") ), handleScript ); + + // Splice the scripts into ret after their former ancestor and advance our index beyond them + ret.splice.apply( ret, [i + 1, 0].concat( jsTags ) ); + i += jsTags.length; + } + } + } + } + + return ret; + }, + + cleanData: function( elems, /* internal */ acceptData ) { + var data, id, elem, type, + i = 0, + internalKey = jQuery.expando, + cache = jQuery.cache, + deleteExpando = jQuery.support.deleteExpando, + special = jQuery.event.special; + + for ( ; (elem = elems[i]) != null; i++ ) { + + if ( acceptData || jQuery.acceptData( elem ) ) { + + id = elem[ internalKey ]; + data = id && cache[ id ]; + + if ( data ) { + if ( data.events ) { + for ( type in data.events ) { + if ( special[ type ] ) { + jQuery.event.remove( elem, type ); + + // This is a shortcut to avoid jQuery.event.remove's overhead + } else { + jQuery.removeEvent( elem, type, data.handle ); + } + } + } + + // Remove cache only if it was not already removed by jQuery.event.remove + if ( cache[ id ] ) { + + delete cache[ id ]; + + // IE does not allow us to delete expando properties from nodes, + // nor does it have a removeAttribute function on Document nodes; + // we must handle all of these cases + if ( deleteExpando ) { + delete elem[ internalKey ]; + + } else if ( elem.removeAttribute ) { + elem.removeAttribute( internalKey ); + + } else { + elem[ internalKey ] = null; + } + + jQuery.deletedIds.push( id ); + } + } + } + } + } +}); +// Limit scope pollution from any deprecated API +(function() { + +var matched, browser; + +// Use of jQuery.browser is frowned upon. +// More details: http://api.jquery.com/jQuery.browser +// jQuery.uaMatch maintained for back-compat +jQuery.uaMatch = function( ua ) { + ua = ua.toLowerCase(); + + var match = /(chrome)[ \/]([\w.]+)/.exec( ua ) || + /(webkit)[ \/]([\w.]+)/.exec( ua ) || + /(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua ) || + /(msie) ([\w.]+)/.exec( ua ) || + ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec( ua ) || + []; + + return { + browser: match[ 1 ] || "", + version: match[ 2 ] || "0" + }; +}; + +matched = jQuery.uaMatch( navigator.userAgent ); +browser = {}; + +if ( matched.browser ) { + browser[ matched.browser ] = true; + browser.version = matched.version; +} + +// Deprecated, use jQuery.browser.webkit instead +// Maintained for back-compat only +if ( browser.webkit ) { + browser.safari = true; +} + +jQuery.browser = browser; + +jQuery.sub = function() { + function jQuerySub( selector, context ) { + return new jQuerySub.fn.init( selector, context ); + } + jQuery.extend( true, jQuerySub, this ); + jQuerySub.superclass = this; + jQuerySub.fn = jQuerySub.prototype = this(); + jQuerySub.fn.constructor = jQuerySub; + jQuerySub.sub = this.sub; + jQuerySub.fn.init = function init( selector, context ) { + if ( context && context instanceof jQuery && !(context instanceof jQuerySub) ) { + context = jQuerySub( context ); + } + + return jQuery.fn.init.call( this, selector, context, rootjQuerySub ); + }; + jQuerySub.fn.init.prototype = jQuerySub.fn; + var rootjQuerySub = jQuerySub(document); + return jQuerySub; +}; + +})(); +var curCSS, iframe, iframeDoc, + ralpha = /alpha\([^)]*\)/i, + ropacity = /opacity=([^)]*)/, + rposition = /^(top|right|bottom|left)$/, + rmargin = /^margin/, + rnumsplit = new RegExp( "^(" + core_pnum + ")(.*)$", "i" ), + rnumnonpx = new RegExp( "^(" + core_pnum + ")(?!px)[a-z%]+$", "i" ), + rrelNum = new RegExp( "^([-+])=(" + core_pnum + ")", "i" ), + elemdisplay = {}, + + cssShow = { position: "absolute", visibility: "hidden", display: "block" }, + cssNormalTransform = { + letterSpacing: 0, + fontWeight: 400, + lineHeight: 1 + }, + + cssExpand = [ "Top", "Right", "Bottom", "Left" ], + cssPrefixes = [ "Webkit", "O", "Moz", "ms" ], + + eventsToggle = jQuery.fn.toggle; + +// return a css property mapped to a potentially vendor prefixed property +function vendorPropName( style, name ) { + + // shortcut for names that are not vendor prefixed + if ( name in style ) { + return name; + } + + // check for vendor prefixed names + var capName = name.charAt(0).toUpperCase() + name.slice(1), + origName = name, + i = cssPrefixes.length; + + while ( i-- ) { + name = cssPrefixes[ i ] + capName; + if ( name in style ) { + return name; + } + } + + return origName; +} + +function isHidden( elem, el ) { + elem = el || elem; + return jQuery.css( elem, "display" ) === "none" || !jQuery.contains( elem.ownerDocument, elem ); +} + +function showHide( elements, show ) { + var elem, display, + values = [], + index = 0, + length = elements.length; + + for ( ; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + values[ index ] = jQuery._data( elem, "olddisplay" ); + if ( show ) { + // Reset the inline display of this element to learn if it is + // being hidden by cascaded rules or not + if ( !values[ index ] && elem.style.display === "none" ) { + elem.style.display = ""; + } + + // Set elements which have been overridden with display: none + // in a stylesheet to whatever the default browser style is + // for such an element + if ( elem.style.display === "" && isHidden( elem ) ) { + values[ index ] = jQuery._data( elem, "olddisplay", css_defaultDisplay(elem.nodeName) ); + } + } else { + display = curCSS( elem, "display" ); + + if ( !values[ index ] && display !== "none" ) { + jQuery._data( elem, "olddisplay", display ); + } + } + } + + // Set the display of most of the elements in a second loop + // to avoid the constant reflow + for ( index = 0; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + if ( !show || elem.style.display === "none" || elem.style.display === "" ) { + elem.style.display = show ? values[ index ] || "" : "none"; + } + } + + return elements; +} + +jQuery.fn.extend({ + css: function( name, value ) { + return jQuery.access( this, function( elem, name, value ) { + return value !== undefined ? + jQuery.style( elem, name, value ) : + jQuery.css( elem, name ); + }, name, value, arguments.length > 1 ); + }, + show: function() { + return showHide( this, true ); + }, + hide: function() { + return showHide( this ); + }, + toggle: function( state, fn2 ) { + var bool = typeof state === "boolean"; + + if ( jQuery.isFunction( state ) && jQuery.isFunction( fn2 ) ) { + return eventsToggle.apply( this, arguments ); + } + + return this.each(function() { + if ( bool ? state : isHidden( this ) ) { + jQuery( this ).show(); + } else { + jQuery( this ).hide(); + } + }); + } +}); + +jQuery.extend({ + // Add in style property hooks for overriding the default + // behavior of getting and setting a style property + cssHooks: { + opacity: { + get: function( elem, computed ) { + if ( computed ) { + // We should always get a number back from opacity + var ret = curCSS( elem, "opacity" ); + return ret === "" ? "1" : ret; + + } + } + } + }, + + // Exclude the following css properties to add px + cssNumber: { + "fillOpacity": true, + "fontWeight": true, + "lineHeight": true, + "opacity": true, + "orphans": true, + "widows": true, + "zIndex": true, + "zoom": true + }, + + // Add in properties whose names you wish to fix before + // setting or getting the value + cssProps: { + // normalize float css property + "float": jQuery.support.cssFloat ? "cssFloat" : "styleFloat" + }, + + // Get and set the style property on a DOM Node + style: function( elem, name, value, extra ) { + // Don't set styles on text and comment nodes + if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { + return; + } + + // Make sure that we're working with the right name + var ret, type, hooks, + origName = jQuery.camelCase( name ), + style = elem.style; + + name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( style, origName ) ); + + // gets hook for the prefixed version + // followed by the unprefixed version + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // Check if we're setting a value + if ( value !== undefined ) { + type = typeof value; + + // convert relative number strings (+= or -=) to relative numbers. #7345 + if ( type === "string" && (ret = rrelNum.exec( value )) ) { + value = ( ret[1] + 1 ) * ret[2] + parseFloat( jQuery.css( elem, name ) ); + // Fixes bug #9237 + type = "number"; + } + + // Make sure that NaN and null values aren't set. See: #7116 + if ( value == null || type === "number" && isNaN( value ) ) { + return; + } + + // If a number was passed in, add 'px' to the (except for certain CSS properties) + if ( type === "number" && !jQuery.cssNumber[ origName ] ) { + value += "px"; + } + + // If a hook was provided, use that value, otherwise just set the specified value + if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value, extra )) !== undefined ) { + // Wrapped to prevent IE from throwing errors when 'invalid' values are provided + // Fixes bug #5509 + try { + style[ name ] = value; + } catch(e) {} + } + + } else { + // If a hook was provided get the non-computed value from there + if ( hooks && "get" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) { + return ret; + } + + // Otherwise just get the value from the style object + return style[ name ]; + } + }, + + css: function( elem, name, numeric, extra ) { + var val, num, hooks, + origName = jQuery.camelCase( name ); + + // Make sure that we're working with the right name + name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( elem.style, origName ) ); + + // gets hook for the prefixed version + // followed by the unprefixed version + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // If a hook was provided get the computed value from there + if ( hooks && "get" in hooks ) { + val = hooks.get( elem, true, extra ); + } + + // Otherwise, if a way to get the computed value exists, use that + if ( val === undefined ) { + val = curCSS( elem, name ); + } + + //convert "normal" to computed value + if ( val === "normal" && name in cssNormalTransform ) { + val = cssNormalTransform[ name ]; + } + + // Return, converting to number if forced or a qualifier was provided and val looks numeric + if ( numeric || extra !== undefined ) { + num = parseFloat( val ); + return numeric || jQuery.isNumeric( num ) ? num || 0 : val; + } + return val; + }, + + // A method for quickly swapping in/out CSS properties to get correct calculations + swap: function( elem, options, callback ) { + var ret, name, + old = {}; + + // Remember the old values, and insert the new ones + for ( name in options ) { + old[ name ] = elem.style[ name ]; + elem.style[ name ] = options[ name ]; + } + + ret = callback.call( elem ); + + // Revert the old values + for ( name in options ) { + elem.style[ name ] = old[ name ]; + } + + return ret; + } +}); + +// NOTE: To any future maintainer, we've used both window.getComputedStyle +// and getComputedStyle here to produce a better gzip size +if ( window.getComputedStyle ) { + curCSS = function( elem, name ) { + var ret, width, minWidth, maxWidth, + computed = getComputedStyle( elem, null ), + style = elem.style; + + if ( computed ) { + + ret = computed[ name ]; + if ( ret === "" && !jQuery.contains( elem.ownerDocument.documentElement, elem ) ) { + ret = jQuery.style( elem, name ); + } + + // A tribute to the "awesome hack by Dean Edwards" + // Chrome < 17 and Safari 5.0 uses "computed value" instead of "used value" for margin-right + // Safari 5.1.7 (at least) returns percentage for a larger set of values, but width seems to be reliably pixels + // this is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values + if ( rnumnonpx.test( ret ) && rmargin.test( name ) ) { + width = style.width; + minWidth = style.minWidth; + maxWidth = style.maxWidth; + + style.minWidth = style.maxWidth = style.width = ret; + ret = computed.width; + + style.width = width; + style.minWidth = minWidth; + style.maxWidth = maxWidth; + } + } + + return ret; + }; +} else if ( document.documentElement.currentStyle ) { + curCSS = function( elem, name ) { + var left, rsLeft, + ret = elem.currentStyle && elem.currentStyle[ name ], + style = elem.style; + + // Avoid setting ret to empty string here + // so we don't default to auto + if ( ret == null && style && style[ name ] ) { + ret = style[ name ]; + } + + // From the awesome hack by Dean Edwards + // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291 + + // If we're not dealing with a regular pixel number + // but a number that has a weird ending, we need to convert it to pixels + // but not position css attributes, as those are proportional to the parent element instead + // and we can't measure the parent instead because it might trigger a "stacking dolls" problem + if ( rnumnonpx.test( ret ) && !rposition.test( name ) ) { + + // Remember the original values + left = style.left; + rsLeft = elem.runtimeStyle && elem.runtimeStyle.left; + + // Put in the new values to get a computed value out + if ( rsLeft ) { + elem.runtimeStyle.left = elem.currentStyle.left; + } + style.left = name === "fontSize" ? "1em" : ret; + ret = style.pixelLeft + "px"; + + // Revert the changed values + style.left = left; + if ( rsLeft ) { + elem.runtimeStyle.left = rsLeft; + } + } + + return ret === "" ? "auto" : ret; + }; +} + +function setPositiveNumber( elem, value, subtract ) { + var matches = rnumsplit.exec( value ); + return matches ? + Math.max( 0, matches[ 1 ] - ( subtract || 0 ) ) + ( matches[ 2 ] || "px" ) : + value; +} + +function augmentWidthOrHeight( elem, name, extra, isBorderBox ) { + var i = extra === ( isBorderBox ? "border" : "content" ) ? + // If we already have the right measurement, avoid augmentation + 4 : + // Otherwise initialize for horizontal or vertical properties + name === "width" ? 1 : 0, + + val = 0; + + for ( ; i < 4; i += 2 ) { + // both box models exclude margin, so add it if we want it + if ( extra === "margin" ) { + // we use jQuery.css instead of curCSS here + // because of the reliableMarginRight CSS hook! + val += jQuery.css( elem, extra + cssExpand[ i ], true ); + } + + // From this point on we use curCSS for maximum performance (relevant in animations) + if ( isBorderBox ) { + // border-box includes padding, so remove it if we want content + if ( extra === "content" ) { + val -= parseFloat( curCSS( elem, "padding" + cssExpand[ i ] ) ) || 0; + } + + // at this point, extra isn't border nor margin, so remove border + if ( extra !== "margin" ) { + val -= parseFloat( curCSS( elem, "border" + cssExpand[ i ] + "Width" ) ) || 0; + } + } else { + // at this point, extra isn't content, so add padding + val += parseFloat( curCSS( elem, "padding" + cssExpand[ i ] ) ) || 0; + + // at this point, extra isn't content nor padding, so add border + if ( extra !== "padding" ) { + val += parseFloat( curCSS( elem, "border" + cssExpand[ i ] + "Width" ) ) || 0; + } + } + } + + return val; +} + +function getWidthOrHeight( elem, name, extra ) { + + // Start with offset property, which is equivalent to the border-box value + var val = name === "width" ? elem.offsetWidth : elem.offsetHeight, + valueIsBorderBox = true, + isBorderBox = jQuery.support.boxSizing && jQuery.css( elem, "boxSizing" ) === "border-box"; + + if ( val <= 0 ) { + // Fall back to computed then uncomputed css if necessary + val = curCSS( elem, name ); + if ( val < 0 || val == null ) { + val = elem.style[ name ]; + } + + // Computed unit is not pixels. Stop here and return. + if ( rnumnonpx.test(val) ) { + return val; + } + + // we need the check for style in case a browser which returns unreliable values + // for getComputedStyle silently falls back to the reliable elem.style + valueIsBorderBox = isBorderBox && ( jQuery.support.boxSizingReliable || val === elem.style[ name ] ); + + // Normalize "", auto, and prepare for extra + val = parseFloat( val ) || 0; + } + + // use the active box-sizing model to add/subtract irrelevant styles + return ( val + + augmentWidthOrHeight( + elem, + name, + extra || ( isBorderBox ? "border" : "content" ), + valueIsBorderBox + ) + ) + "px"; +} + + +// Try to determine the default display value of an element +function css_defaultDisplay( nodeName ) { + if ( elemdisplay[ nodeName ] ) { + return elemdisplay[ nodeName ]; + } + + var elem = jQuery( "<" + nodeName + ">" ).appendTo( document.body ), + display = elem.css("display"); + elem.remove(); + + // If the simple way fails, + // get element's real default display by attaching it to a temp iframe + if ( display === "none" || display === "" ) { + // Use the already-created iframe if possible + iframe = document.body.appendChild( + iframe || jQuery.extend( document.createElement("iframe"), { + frameBorder: 0, + width: 0, + height: 0 + }) + ); + + // Create a cacheable copy of the iframe document on first call. + // IE and Opera will allow us to reuse the iframeDoc without re-writing the fake HTML + // document to it; WebKit & Firefox won't allow reusing the iframe document. + if ( !iframeDoc || !iframe.createElement ) { + iframeDoc = ( iframe.contentWindow || iframe.contentDocument ).document; + iframeDoc.write(""); + iframeDoc.close(); + } + + elem = iframeDoc.body.appendChild( iframeDoc.createElement(nodeName) ); + + display = curCSS( elem, "display" ); + document.body.removeChild( iframe ); + } + + // Store the correct default display + elemdisplay[ nodeName ] = display; + + return display; +} + +jQuery.each([ "height", "width" ], function( i, name ) { + jQuery.cssHooks[ name ] = { + get: function( elem, computed, extra ) { + if ( computed ) { + if ( elem.offsetWidth !== 0 || curCSS( elem, "display" ) !== "none" ) { + return getWidthOrHeight( elem, name, extra ); + } else { + return jQuery.swap( elem, cssShow, function() { + return getWidthOrHeight( elem, name, extra ); + }); + } + } + }, + + set: function( elem, value, extra ) { + return setPositiveNumber( elem, value, extra ? + augmentWidthOrHeight( + elem, + name, + extra, + jQuery.support.boxSizing && jQuery.css( elem, "boxSizing" ) === "border-box" + ) : 0 + ); + } + }; +}); + +if ( !jQuery.support.opacity ) { + jQuery.cssHooks.opacity = { + get: function( elem, computed ) { + // IE uses filters for opacity + return ropacity.test( (computed && elem.currentStyle ? elem.currentStyle.filter : elem.style.filter) || "" ) ? + ( 0.01 * parseFloat( RegExp.$1 ) ) + "" : + computed ? "1" : ""; + }, + + set: function( elem, value ) { + var style = elem.style, + currentStyle = elem.currentStyle, + opacity = jQuery.isNumeric( value ) ? "alpha(opacity=" + value * 100 + ")" : "", + filter = currentStyle && currentStyle.filter || style.filter || ""; + + // IE has trouble with opacity if it does not have layout + // Force it by setting the zoom level + style.zoom = 1; + + // if setting opacity to 1, and no other filters exist - attempt to remove filter attribute #6652 + if ( value >= 1 && jQuery.trim( filter.replace( ralpha, "" ) ) === "" && + style.removeAttribute ) { + + // Setting style.filter to null, "" & " " still leave "filter:" in the cssText + // if "filter:" is present at all, clearType is disabled, we want to avoid this + // style.removeAttribute is IE Only, but so apparently is this code path... + style.removeAttribute( "filter" ); + + // if there there is no filter style applied in a css rule, we are done + if ( currentStyle && !currentStyle.filter ) { + return; + } + } + + // otherwise, set new filter values + style.filter = ralpha.test( filter ) ? + filter.replace( ralpha, opacity ) : + filter + " " + opacity; + } + }; +} + +// These hooks cannot be added until DOM ready because the support test +// for it is not run until after DOM ready +jQuery(function() { + if ( !jQuery.support.reliableMarginRight ) { + jQuery.cssHooks.marginRight = { + get: function( elem, computed ) { + // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right + // Work around by temporarily setting element display to inline-block + return jQuery.swap( elem, { "display": "inline-block" }, function() { + if ( computed ) { + return curCSS( elem, "marginRight" ); + } + }); + } + }; + } + + // Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084 + // getComputedStyle returns percent when specified for top/left/bottom/right + // rather than make the css module depend on the offset module, we just check for it here + if ( !jQuery.support.pixelPosition && jQuery.fn.position ) { + jQuery.each( [ "top", "left" ], function( i, prop ) { + jQuery.cssHooks[ prop ] = { + get: function( elem, computed ) { + if ( computed ) { + var ret = curCSS( elem, prop ); + // if curCSS returns percentage, fallback to offset + return rnumnonpx.test( ret ) ? jQuery( elem ).position()[ prop ] + "px" : ret; + } + } + }; + }); + } + +}); + +if ( jQuery.expr && jQuery.expr.filters ) { + jQuery.expr.filters.hidden = function( elem ) { + return ( elem.offsetWidth === 0 && elem.offsetHeight === 0 ) || (!jQuery.support.reliableHiddenOffsets && ((elem.style && elem.style.display) || curCSS( elem, "display" )) === "none"); + }; + + jQuery.expr.filters.visible = function( elem ) { + return !jQuery.expr.filters.hidden( elem ); + }; +} + +// These hooks are used by animate to expand properties +jQuery.each({ + margin: "", + padding: "", + border: "Width" +}, function( prefix, suffix ) { + jQuery.cssHooks[ prefix + suffix ] = { + expand: function( value ) { + var i, + + // assumes a single number if not a string + parts = typeof value === "string" ? value.split(" ") : [ value ], + expanded = {}; + + for ( i = 0; i < 4; i++ ) { + expanded[ prefix + cssExpand[ i ] + suffix ] = + parts[ i ] || parts[ i - 2 ] || parts[ 0 ]; + } + + return expanded; + } + }; + + if ( !rmargin.test( prefix ) ) { + jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber; + } +}); +var r20 = /%20/g, + rbracket = /\[\]$/, + rCRLF = /\r?\n/g, + rinput = /^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i, + rselectTextarea = /^(?:select|textarea)/i; + +jQuery.fn.extend({ + serialize: function() { + return jQuery.param( this.serializeArray() ); + }, + serializeArray: function() { + return this.map(function(){ + return this.elements ? jQuery.makeArray( this.elements ) : this; + }) + .filter(function(){ + return this.name && !this.disabled && + ( this.checked || rselectTextarea.test( this.nodeName ) || + rinput.test( this.type ) ); + }) + .map(function( i, elem ){ + var val = jQuery( this ).val(); + + return val == null ? + null : + jQuery.isArray( val ) ? + jQuery.map( val, function( val, i ){ + return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + }) : + { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + }).get(); + } +}); + +//Serialize an array of form elements or a set of +//key/values into a query string +jQuery.param = function( a, traditional ) { + var prefix, + s = [], + add = function( key, value ) { + // If value is a function, invoke it and return its value + value = jQuery.isFunction( value ) ? value() : ( value == null ? "" : value ); + s[ s.length ] = encodeURIComponent( key ) + "=" + encodeURIComponent( value ); + }; + + // Set traditional to true for jQuery <= 1.3.2 behavior. + if ( traditional === undefined ) { + traditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional; + } + + // If an array was passed in, assume that it is an array of form elements. + if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { + // Serialize the form elements + jQuery.each( a, function() { + add( this.name, this.value ); + }); + + } else { + // If traditional, encode the "old" way (the way 1.3.2 or older + // did it), otherwise encode params recursively. + for ( prefix in a ) { + buildParams( prefix, a[ prefix ], traditional, add ); + } + } + + // Return the resulting serialization + return s.join( "&" ).replace( r20, "+" ); +}; + +function buildParams( prefix, obj, traditional, add ) { + var name; + + if ( jQuery.isArray( obj ) ) { + // Serialize array item. + jQuery.each( obj, function( i, v ) { + if ( traditional || rbracket.test( prefix ) ) { + // Treat each array item as a scalar. + add( prefix, v ); + + } else { + // If array item is non-scalar (array or object), encode its + // numeric index to resolve deserialization ambiguity issues. + // Note that rack (as of 1.0.0) can't currently deserialize + // nested arrays properly, and attempting to do so may cause + // a server error. Possible fixes are to modify rack's + // deserialization algorithm or to provide an option or flag + // to force array serialization to be shallow. + buildParams( prefix + "[" + ( typeof v === "object" ? i : "" ) + "]", v, traditional, add ); + } + }); + + } else if ( !traditional && jQuery.type( obj ) === "object" ) { + // Serialize object item. + for ( name in obj ) { + buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); + } + + } else { + // Serialize scalar item. + add( prefix, obj ); + } +} +var // Document location + ajaxLocation, + // Document location segments + ajaxLocParts, + + rhash = /#.*$/, + rheaders = /^(.*?):[ \t]*([^\r\n]*)\r?$/mg, // IE leaves an \r character at EOL + // #7653, #8125, #8152: local protocol detection + rlocalProtocol = /^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/, + rnoContent = /^(?:GET|HEAD)$/, + rprotocol = /^\/\//, + rquery = /\?/, + rscript = /)<[^<]*)*<\/script>/gi, + rts = /([?&])_=[^&]*/, + rurl = /^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/, + + // Keep a copy of the old load method + _load = jQuery.fn.load, + + /* Prefilters + * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) + * 2) These are called: + * - BEFORE asking for a transport + * - AFTER param serialization (s.data is a string if s.processData is true) + * 3) key is the dataType + * 4) the catchall symbol "*" can be used + * 5) execution will start with transport dataType and THEN continue down to "*" if needed + */ + prefilters = {}, + + /* Transports bindings + * 1) key is the dataType + * 2) the catchall symbol "*" can be used + * 3) selection will start with transport dataType and THEN go to "*" if needed + */ + transports = {}, + + // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression + allTypes = ["*/"] + ["*"]; + +// #8138, IE may throw an exception when accessing +// a field from window.location if document.domain has been set +try { + ajaxLocation = location.href; +} catch( e ) { + // Use the href attribute of an A element + // since IE will modify it given document.location + ajaxLocation = document.createElement( "a" ); + ajaxLocation.href = ""; + ajaxLocation = ajaxLocation.href; +} + +// Segment location into parts +ajaxLocParts = rurl.exec( ajaxLocation.toLowerCase() ) || []; + +// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport +function addToPrefiltersOrTransports( structure ) { + + // dataTypeExpression is optional and defaults to "*" + return function( dataTypeExpression, func ) { + + if ( typeof dataTypeExpression !== "string" ) { + func = dataTypeExpression; + dataTypeExpression = "*"; + } + + var dataType, list, placeBefore, + dataTypes = dataTypeExpression.toLowerCase().split( core_rspace ), + i = 0, + length = dataTypes.length; + + if ( jQuery.isFunction( func ) ) { + // For each dataType in the dataTypeExpression + for ( ; i < length; i++ ) { + dataType = dataTypes[ i ]; + // We control if we're asked to add before + // any existing element + placeBefore = /^\+/.test( dataType ); + if ( placeBefore ) { + dataType = dataType.substr( 1 ) || "*"; + } + list = structure[ dataType ] = structure[ dataType ] || []; + // then we add to the structure accordingly + list[ placeBefore ? "unshift" : "push" ]( func ); + } + } + }; +} + +// Base inspection function for prefilters and transports +function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR, + dataType /* internal */, inspected /* internal */ ) { + + dataType = dataType || options.dataTypes[ 0 ]; + inspected = inspected || {}; + + inspected[ dataType ] = true; + + var selection, + list = structure[ dataType ], + i = 0, + length = list ? list.length : 0, + executeOnly = ( structure === prefilters ); + + for ( ; i < length && ( executeOnly || !selection ); i++ ) { + selection = list[ i ]( options, originalOptions, jqXHR ); + // If we got redirected to another dataType + // we try there if executing only and not done already + if ( typeof selection === "string" ) { + if ( !executeOnly || inspected[ selection ] ) { + selection = undefined; + } else { + options.dataTypes.unshift( selection ); + selection = inspectPrefiltersOrTransports( + structure, options, originalOptions, jqXHR, selection, inspected ); + } + } + } + // If we're only executing or nothing was selected + // we try the catchall dataType if not done already + if ( ( executeOnly || !selection ) && !inspected[ "*" ] ) { + selection = inspectPrefiltersOrTransports( + structure, options, originalOptions, jqXHR, "*", inspected ); + } + // unnecessary when only executing (prefilters) + // but it'll be ignored by the caller in that case + return selection; +} + +// A special extend for ajax options +// that takes "flat" options (not to be deep extended) +// Fixes #9887 +function ajaxExtend( target, src ) { + var key, deep, + flatOptions = jQuery.ajaxSettings.flatOptions || {}; + for ( key in src ) { + if ( src[ key ] !== undefined ) { + ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ]; + } + } + if ( deep ) { + jQuery.extend( true, target, deep ); + } +} + +jQuery.fn.load = function( url, params, callback ) { + if ( typeof url !== "string" && _load ) { + return _load.apply( this, arguments ); + } + + // Don't do a request if no elements are being requested + if ( !this.length ) { + return this; + } + + var selector, type, response, + self = this, + off = url.indexOf(" "); + + if ( off >= 0 ) { + selector = url.slice( off, url.length ); + url = url.slice( 0, off ); + } + + // If it's a function + if ( jQuery.isFunction( params ) ) { + + // We assume that it's the callback + callback = params; + params = undefined; + + // Otherwise, build a param string + } else if ( typeof params === "object" ) { + type = "POST"; + } + + // Request the remote document + jQuery.ajax({ + url: url, + + // if "type" variable is undefined, then "GET" method will be used + type: type, + dataType: "html", + data: params, + complete: function( jqXHR, status ) { + if ( callback ) { + self.each( callback, response || [ jqXHR.responseText, status, jqXHR ] ); + } + } + }).done(function( responseText ) { + + // Save response for use in complete callback + response = arguments; + + // See if a selector was specified + self.html( selector ? + + // Create a dummy div to hold the results + jQuery("
                                ") + + // inject the contents of the document in, removing the scripts + // to avoid any 'Permission Denied' errors in IE + .append( responseText.replace( rscript, "" ) ) + + // Locate the specified elements + .find( selector ) : + + // If not, just inject the full result + responseText ); + + }); + + return this; +}; + +// Attach a bunch of functions for handling common AJAX events +jQuery.each( "ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split( " " ), function( i, o ){ + jQuery.fn[ o ] = function( f ){ + return this.on( o, f ); + }; +}); + +jQuery.each( [ "get", "post" ], function( i, method ) { + jQuery[ method ] = function( url, data, callback, type ) { + // shift arguments if data argument was omitted + if ( jQuery.isFunction( data ) ) { + type = type || callback; + callback = data; + data = undefined; + } + + return jQuery.ajax({ + type: method, + url: url, + data: data, + success: callback, + dataType: type + }); + }; +}); + +jQuery.extend({ + + getScript: function( url, callback ) { + return jQuery.get( url, undefined, callback, "script" ); + }, + + getJSON: function( url, data, callback ) { + return jQuery.get( url, data, callback, "json" ); + }, + + // Creates a full fledged settings object into target + // with both ajaxSettings and settings fields. + // If target is omitted, writes into ajaxSettings. + ajaxSetup: function( target, settings ) { + if ( settings ) { + // Building a settings object + ajaxExtend( target, jQuery.ajaxSettings ); + } else { + // Extending ajaxSettings + settings = target; + target = jQuery.ajaxSettings; + } + ajaxExtend( target, settings ); + return target; + }, + + ajaxSettings: { + url: ajaxLocation, + isLocal: rlocalProtocol.test( ajaxLocParts[ 1 ] ), + global: true, + type: "GET", + contentType: "application/x-www-form-urlencoded; charset=UTF-8", + processData: true, + async: true, + /* + timeout: 0, + data: null, + dataType: null, + username: null, + password: null, + cache: null, + throws: false, + traditional: false, + headers: {}, + */ + + accepts: { + xml: "application/xml, text/xml", + html: "text/html", + text: "text/plain", + json: "application/json, text/javascript", + "*": allTypes + }, + + contents: { + xml: /xml/, + html: /html/, + json: /json/ + }, + + responseFields: { + xml: "responseXML", + text: "responseText" + }, + + // List of data converters + // 1) key format is "source_type destination_type" (a single space in-between) + // 2) the catchall symbol "*" can be used for source_type + converters: { + + // Convert anything to text + "* text": window.String, + + // Text to html (true = no transformation) + "text html": true, + + // Evaluate text as a json expression + "text json": jQuery.parseJSON, + + // Parse text as xml + "text xml": jQuery.parseXML + }, + + // For options that shouldn't be deep extended: + // you can add your own custom options here if + // and when you create one that shouldn't be + // deep extended (see ajaxExtend) + flatOptions: { + context: true, + url: true + } + }, + + ajaxPrefilter: addToPrefiltersOrTransports( prefilters ), + ajaxTransport: addToPrefiltersOrTransports( transports ), + + // Main method + ajax: function( url, options ) { + + // If url is an object, simulate pre-1.5 signature + if ( typeof url === "object" ) { + options = url; + url = undefined; + } + + // Force options to be an object + options = options || {}; + + var // ifModified key + ifModifiedKey, + // Response headers + responseHeadersString, + responseHeaders, + // transport + transport, + // timeout handle + timeoutTimer, + // Cross-domain detection vars + parts, + // To know if global events are to be dispatched + fireGlobals, + // Loop variable + i, + // Create the final options object + s = jQuery.ajaxSetup( {}, options ), + // Callbacks context + callbackContext = s.context || s, + // Context for global events + // It's the callbackContext if one was provided in the options + // and if it's a DOM node or a jQuery collection + globalEventContext = callbackContext !== s && + ( callbackContext.nodeType || callbackContext instanceof jQuery ) ? + jQuery( callbackContext ) : jQuery.event, + // Deferreds + deferred = jQuery.Deferred(), + completeDeferred = jQuery.Callbacks( "once memory" ), + // Status-dependent callbacks + statusCode = s.statusCode || {}, + // Headers (they are sent all at once) + requestHeaders = {}, + requestHeadersNames = {}, + // The jqXHR state + state = 0, + // Default abort message + strAbort = "canceled", + // Fake xhr + jqXHR = { + + readyState: 0, + + // Caches the header + setRequestHeader: function( name, value ) { + if ( !state ) { + var lname = name.toLowerCase(); + name = requestHeadersNames[ lname ] = requestHeadersNames[ lname ] || name; + requestHeaders[ name ] = value; + } + return this; + }, + + // Raw string + getAllResponseHeaders: function() { + return state === 2 ? responseHeadersString : null; + }, + + // Builds headers hashtable if needed + getResponseHeader: function( key ) { + var match; + if ( state === 2 ) { + if ( !responseHeaders ) { + responseHeaders = {}; + while( ( match = rheaders.exec( responseHeadersString ) ) ) { + responseHeaders[ match[1].toLowerCase() ] = match[ 2 ]; + } + } + match = responseHeaders[ key.toLowerCase() ]; + } + return match === undefined ? null : match; + }, + + // Overrides response content-type header + overrideMimeType: function( type ) { + if ( !state ) { + s.mimeType = type; + } + return this; + }, + + // Cancel the request + abort: function( statusText ) { + statusText = statusText || strAbort; + if ( transport ) { + transport.abort( statusText ); + } + done( 0, statusText ); + return this; + } + }; + + // Callback for when everything is done + // It is defined here because jslint complains if it is declared + // at the end of the function (which would be more logical and readable) + function done( status, nativeStatusText, responses, headers ) { + var isSuccess, success, error, response, modified, + statusText = nativeStatusText; + + // Called once + if ( state === 2 ) { + return; + } + + // State is "done" now + state = 2; + + // Clear timeout if it exists + if ( timeoutTimer ) { + clearTimeout( timeoutTimer ); + } + + // Dereference transport for early garbage collection + // (no matter how long the jqXHR object will be used) + transport = undefined; + + // Cache response headers + responseHeadersString = headers || ""; + + // Set readyState + jqXHR.readyState = status > 0 ? 4 : 0; + + // Get response data + if ( responses ) { + response = ajaxHandleResponses( s, jqXHR, responses ); + } + + // If successful, handle type chaining + if ( status >= 200 && status < 300 || status === 304 ) { + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + + modified = jqXHR.getResponseHeader("Last-Modified"); + if ( modified ) { + jQuery.lastModified[ ifModifiedKey ] = modified; + } + modified = jqXHR.getResponseHeader("Etag"); + if ( modified ) { + jQuery.etag[ ifModifiedKey ] = modified; + } + } + + // If not modified + if ( status === 304 ) { + + statusText = "notmodified"; + isSuccess = true; + + // If we have data + } else { + + isSuccess = ajaxConvert( s, response ); + statusText = isSuccess.state; + success = isSuccess.data; + error = isSuccess.error; + isSuccess = !error; + } + } else { + // We extract error from statusText + // then normalize statusText and status for non-aborts + error = statusText; + if ( !statusText || status ) { + statusText = "error"; + if ( status < 0 ) { + status = 0; + } + } + } + + // Set data for the fake xhr object + jqXHR.status = status; + jqXHR.statusText = "" + ( nativeStatusText || statusText ); + + // Success/Error + if ( isSuccess ) { + deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] ); + } else { + deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] ); + } + + // Status-dependent callbacks + jqXHR.statusCode( statusCode ); + statusCode = undefined; + + if ( fireGlobals ) { + globalEventContext.trigger( "ajax" + ( isSuccess ? "Success" : "Error" ), + [ jqXHR, s, isSuccess ? success : error ] ); + } + + // Complete + completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] ); + + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] ); + // Handle the global AJAX counter + if ( !( --jQuery.active ) ) { + jQuery.event.trigger( "ajaxStop" ); + } + } + } + + // Attach deferreds + deferred.promise( jqXHR ); + jqXHR.success = jqXHR.done; + jqXHR.error = jqXHR.fail; + jqXHR.complete = completeDeferred.add; + + // Status-dependent callbacks + jqXHR.statusCode = function( map ) { + if ( map ) { + var tmp; + if ( state < 2 ) { + for ( tmp in map ) { + statusCode[ tmp ] = [ statusCode[tmp], map[tmp] ]; + } + } else { + tmp = map[ jqXHR.status ]; + jqXHR.always( tmp ); + } + } + return this; + }; + + // Remove hash character (#7531: and string promotion) + // Add protocol if not provided (#5866: IE7 issue with protocol-less urls) + // We also use the url parameter if available + s.url = ( ( url || s.url ) + "" ).replace( rhash, "" ).replace( rprotocol, ajaxLocParts[ 1 ] + "//" ); + + // Extract dataTypes list + s.dataTypes = jQuery.trim( s.dataType || "*" ).toLowerCase().split( core_rspace ); + + // Determine if a cross-domain request is in order + if ( s.crossDomain == null ) { + parts = rurl.exec( s.url.toLowerCase() ); + s.crossDomain = !!( parts && + ( parts[ 1 ] != ajaxLocParts[ 1 ] || parts[ 2 ] != ajaxLocParts[ 2 ] || + ( parts[ 3 ] || ( parts[ 1 ] === "http:" ? 80 : 443 ) ) != + ( ajaxLocParts[ 3 ] || ( ajaxLocParts[ 1 ] === "http:" ? 80 : 443 ) ) ) + ); + } + + // Convert data if not already a string + if ( s.data && s.processData && typeof s.data !== "string" ) { + s.data = jQuery.param( s.data, s.traditional ); + } + + // Apply prefilters + inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); + + // If request was aborted inside a prefilter, stop there + if ( state === 2 ) { + return jqXHR; + } + + // We can fire global events as of now if asked to + fireGlobals = s.global; + + // Uppercase the type + s.type = s.type.toUpperCase(); + + // Determine if request has content + s.hasContent = !rnoContent.test( s.type ); + + // Watch for a new set of requests + if ( fireGlobals && jQuery.active++ === 0 ) { + jQuery.event.trigger( "ajaxStart" ); + } + + // More options handling for requests with no content + if ( !s.hasContent ) { + + // If data is available, append data to url + if ( s.data ) { + s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.data; + // #9682: remove data so that it's not used in an eventual retry + delete s.data; + } + + // Get ifModifiedKey before adding the anti-cache parameter + ifModifiedKey = s.url; + + // Add anti-cache in url if needed + if ( s.cache === false ) { + + var ts = jQuery.now(), + // try replacing _= if it is there + ret = s.url.replace( rts, "$1_=" + ts ); + + // if nothing was replaced, add timestamp to the end + s.url = ret + ( ( ret === s.url ) ? ( rquery.test( s.url ) ? "&" : "?" ) + "_=" + ts : "" ); + } + } + + // Set the correct header, if data is being sent + if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { + jqXHR.setRequestHeader( "Content-Type", s.contentType ); + } + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + ifModifiedKey = ifModifiedKey || s.url; + if ( jQuery.lastModified[ ifModifiedKey ] ) { + jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ ifModifiedKey ] ); + } + if ( jQuery.etag[ ifModifiedKey ] ) { + jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ ifModifiedKey ] ); + } + } + + // Set the Accepts header for the server, depending on the dataType + jqXHR.setRequestHeader( + "Accept", + s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ? + s.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) : + s.accepts[ "*" ] + ); + + // Check for headers option + for ( i in s.headers ) { + jqXHR.setRequestHeader( i, s.headers[ i ] ); + } + + // Allow custom headers/mimetypes and early abort + if ( s.beforeSend && ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) { + // Abort if not done already and return + return jqXHR.abort(); + + } + + // aborting is no longer a cancellation + strAbort = "abort"; + + // Install callbacks on deferreds + for ( i in { success: 1, error: 1, complete: 1 } ) { + jqXHR[ i ]( s[ i ] ); + } + + // Get transport + transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); + + // If no transport, we auto-abort + if ( !transport ) { + done( -1, "No Transport" ); + } else { + jqXHR.readyState = 1; + // Send global event + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); + } + // Timeout + if ( s.async && s.timeout > 0 ) { + timeoutTimer = setTimeout( function(){ + jqXHR.abort( "timeout" ); + }, s.timeout ); + } + + try { + state = 1; + transport.send( requestHeaders, done ); + } catch (e) { + // Propagate exception as error if not done + if ( state < 2 ) { + done( -1, e ); + // Simply rethrow otherwise + } else { + throw e; + } + } + } + + return jqXHR; + }, + + // Counter for holding the number of active queries + active: 0, + + // Last-Modified header cache for next request + lastModified: {}, + etag: {} + +}); + +/* Handles responses to an ajax request: + * - sets all responseXXX fields accordingly + * - finds the right dataType (mediates between content-type and expected dataType) + * - returns the corresponding response + */ +function ajaxHandleResponses( s, jqXHR, responses ) { + + var ct, type, finalDataType, firstDataType, + contents = s.contents, + dataTypes = s.dataTypes, + responseFields = s.responseFields; + + // Fill responseXXX fields + for ( type in responseFields ) { + if ( type in responses ) { + jqXHR[ responseFields[type] ] = responses[ type ]; + } + } + + // Remove auto dataType and get content-type in the process + while( dataTypes[ 0 ] === "*" ) { + dataTypes.shift(); + if ( ct === undefined ) { + ct = s.mimeType || jqXHR.getResponseHeader( "content-type" ); + } + } + + // Check if we're dealing with a known content-type + if ( ct ) { + for ( type in contents ) { + if ( contents[ type ] && contents[ type ].test( ct ) ) { + dataTypes.unshift( type ); + break; + } + } + } + + // Check to see if we have a response for the expected dataType + if ( dataTypes[ 0 ] in responses ) { + finalDataType = dataTypes[ 0 ]; + } else { + // Try convertible dataTypes + for ( type in responses ) { + if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[0] ] ) { + finalDataType = type; + break; + } + if ( !firstDataType ) { + firstDataType = type; + } + } + // Or just use first one + finalDataType = finalDataType || firstDataType; + } + + // If we found a dataType + // We add the dataType to the list if needed + // and return the corresponding response + if ( finalDataType ) { + if ( finalDataType !== dataTypes[ 0 ] ) { + dataTypes.unshift( finalDataType ); + } + return responses[ finalDataType ]; + } +} + +// Chain conversions given the request and the original response +function ajaxConvert( s, response ) { + + var conv, conv2, current, tmp, + // Work with a copy of dataTypes in case we need to modify it for conversion + dataTypes = s.dataTypes.slice(), + prev = dataTypes[ 0 ], + converters = {}, + i = 0; + + // Apply the dataFilter if provided + if ( s.dataFilter ) { + response = s.dataFilter( response, s.dataType ); + } + + // Create converters map with lowercased keys + if ( dataTypes[ 1 ] ) { + for ( conv in s.converters ) { + converters[ conv.toLowerCase() ] = s.converters[ conv ]; + } + } + + // Convert to each sequential dataType, tolerating list modification + for ( ; (current = dataTypes[++i]); ) { + + // There's only work to do if current dataType is non-auto + if ( current !== "*" ) { + + // Convert response if prev dataType is non-auto and differs from current + if ( prev !== "*" && prev !== current ) { + + // Seek a direct converter + conv = converters[ prev + " " + current ] || converters[ "* " + current ]; + + // If none found, seek a pair + if ( !conv ) { + for ( conv2 in converters ) { + + // If conv2 outputs current + tmp = conv2.split(" "); + if ( tmp[ 1 ] === current ) { + + // If prev can be converted to accepted input + conv = converters[ prev + " " + tmp[ 0 ] ] || + converters[ "* " + tmp[ 0 ] ]; + if ( conv ) { + // Condense equivalence converters + if ( conv === true ) { + conv = converters[ conv2 ]; + + // Otherwise, insert the intermediate dataType + } else if ( converters[ conv2 ] !== true ) { + current = tmp[ 0 ]; + dataTypes.splice( i--, 0, current ); + } + + break; + } + } + } + } + + // Apply converter (if not an equivalence) + if ( conv !== true ) { + + // Unless errors are allowed to bubble, catch and return them + if ( conv && s["throws"] ) { + response = conv( response ); + } else { + try { + response = conv( response ); + } catch ( e ) { + return { state: "parsererror", error: conv ? e : "No conversion from " + prev + " to " + current }; + } + } + } + } + + // Update prev for next iteration + prev = current; + } + } + + return { state: "success", data: response }; +} +var oldCallbacks = [], + rquestion = /\?/, + rjsonp = /(=)\?(?=&|$)|\?\?/, + nonce = jQuery.now(); + +// Default jsonp settings +jQuery.ajaxSetup({ + jsonp: "callback", + jsonpCallback: function() { + var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce++ ) ); + this[ callback ] = true; + return callback; + } +}); + +// Detect, normalize options and install callbacks for jsonp requests +jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) { + + var callbackName, overwritten, responseContainer, + data = s.data, + url = s.url, + hasCallback = s.jsonp !== false, + replaceInUrl = hasCallback && rjsonp.test( url ), + replaceInData = hasCallback && !replaceInUrl && typeof data === "string" && + !( s.contentType || "" ).indexOf("application/x-www-form-urlencoded") && + rjsonp.test( data ); + + // Handle iff the expected data type is "jsonp" or we have a parameter to set + if ( s.dataTypes[ 0 ] === "jsonp" || replaceInUrl || replaceInData ) { + + // Get callback name, remembering preexisting value associated with it + callbackName = s.jsonpCallback = jQuery.isFunction( s.jsonpCallback ) ? + s.jsonpCallback() : + s.jsonpCallback; + overwritten = window[ callbackName ]; + + // Insert callback into url or form data + if ( replaceInUrl ) { + s.url = url.replace( rjsonp, "$1" + callbackName ); + } else if ( replaceInData ) { + s.data = data.replace( rjsonp, "$1" + callbackName ); + } else if ( hasCallback ) { + s.url += ( rquestion.test( url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName; + } + + // Use data converter to retrieve json after script execution + s.converters["script json"] = function() { + if ( !responseContainer ) { + jQuery.error( callbackName + " was not called" ); + } + return responseContainer[ 0 ]; + }; + + // force json dataType + s.dataTypes[ 0 ] = "json"; + + // Install callback + window[ callbackName ] = function() { + responseContainer = arguments; + }; + + // Clean-up function (fires after converters) + jqXHR.always(function() { + // Restore preexisting value + window[ callbackName ] = overwritten; + + // Save back as free + if ( s[ callbackName ] ) { + // make sure that re-using the options doesn't screw things around + s.jsonpCallback = originalSettings.jsonpCallback; + + // save the callback name for future use + oldCallbacks.push( callbackName ); + } + + // Call if it was a function and we have a response + if ( responseContainer && jQuery.isFunction( overwritten ) ) { + overwritten( responseContainer[ 0 ] ); + } + + responseContainer = overwritten = undefined; + }); + + // Delegate to script + return "script"; + } +}); +// Install script dataType +jQuery.ajaxSetup({ + accepts: { + script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" + }, + contents: { + script: /javascript|ecmascript/ + }, + converters: { + "text script": function( text ) { + jQuery.globalEval( text ); + return text; + } + } +}); + +// Handle cache's special case and global +jQuery.ajaxPrefilter( "script", function( s ) { + if ( s.cache === undefined ) { + s.cache = false; + } + if ( s.crossDomain ) { + s.type = "GET"; + s.global = false; + } +}); + +// Bind script tag hack transport +jQuery.ajaxTransport( "script", function(s) { + + // This transport only deals with cross domain requests + if ( s.crossDomain ) { + + var script, + head = document.head || document.getElementsByTagName( "head" )[0] || document.documentElement; + + return { + + send: function( _, callback ) { + + script = document.createElement( "script" ); + + script.async = "async"; + + if ( s.scriptCharset ) { + script.charset = s.scriptCharset; + } + + script.src = s.url; + + // Attach handlers for all browsers + script.onload = script.onreadystatechange = function( _, isAbort ) { + + if ( isAbort || !script.readyState || /loaded|complete/.test( script.readyState ) ) { + + // Handle memory leak in IE + script.onload = script.onreadystatechange = null; + + // Remove the script + if ( head && script.parentNode ) { + head.removeChild( script ); + } + + // Dereference the script + script = undefined; + + // Callback if not abort + if ( !isAbort ) { + callback( 200, "success" ); + } + } + }; + // Use insertBefore instead of appendChild to circumvent an IE6 bug. + // This arises when a base node is used (#2709 and #4378). + head.insertBefore( script, head.firstChild ); + }, + + abort: function() { + if ( script ) { + script.onload( 0, 1 ); + } + } + }; + } +}); +var xhrCallbacks, + // #5280: Internet Explorer will keep connections alive if we don't abort on unload + xhrOnUnloadAbort = window.ActiveXObject ? function() { + // Abort all pending requests + for ( var key in xhrCallbacks ) { + xhrCallbacks[ key ]( 0, 1 ); + } + } : false, + xhrId = 0; + +// Functions to create xhrs +function createStandardXHR() { + try { + return new window.XMLHttpRequest(); + } catch( e ) {} +} + +function createActiveXHR() { + try { + return new window.ActiveXObject( "Microsoft.XMLHTTP" ); + } catch( e ) {} +} + +// Create the request object +// (This is still attached to ajaxSettings for backward compatibility) +jQuery.ajaxSettings.xhr = window.ActiveXObject ? + /* Microsoft failed to properly + * implement the XMLHttpRequest in IE7 (can't request local files), + * so we use the ActiveXObject when it is available + * Additionally XMLHttpRequest can be disabled in IE7/IE8 so + * we need a fallback. + */ + function() { + return !this.isLocal && createStandardXHR() || createActiveXHR(); + } : + // For all other browsers, use the standard XMLHttpRequest object + createStandardXHR; + +// Determine support properties +(function( xhr ) { + jQuery.extend( jQuery.support, { + ajax: !!xhr, + cors: !!xhr && ( "withCredentials" in xhr ) + }); +})( jQuery.ajaxSettings.xhr() ); + +// Create transport if the browser can provide an xhr +if ( jQuery.support.ajax ) { + + jQuery.ajaxTransport(function( s ) { + // Cross domain only allowed if supported through XMLHttpRequest + if ( !s.crossDomain || jQuery.support.cors ) { + + var callback; + + return { + send: function( headers, complete ) { + + // Get a new xhr + var handle, i, + xhr = s.xhr(); + + // Open the socket + // Passing null username, generates a login popup on Opera (#2865) + if ( s.username ) { + xhr.open( s.type, s.url, s.async, s.username, s.password ); + } else { + xhr.open( s.type, s.url, s.async ); + } + + // Apply custom fields if provided + if ( s.xhrFields ) { + for ( i in s.xhrFields ) { + xhr[ i ] = s.xhrFields[ i ]; + } + } + + // Override mime type if needed + if ( s.mimeType && xhr.overrideMimeType ) { + xhr.overrideMimeType( s.mimeType ); + } + + // X-Requested-With header + // For cross-domain requests, seeing as conditions for a preflight are + // akin to a jigsaw puzzle, we simply never set it to be sure. + // (it can always be set on a per-request basis or even using ajaxSetup) + // For same-domain requests, won't change header if already provided. + if ( !s.crossDomain && !headers["X-Requested-With"] ) { + headers[ "X-Requested-With" ] = "XMLHttpRequest"; + } + + // Need an extra try/catch for cross domain requests in Firefox 3 + try { + for ( i in headers ) { + xhr.setRequestHeader( i, headers[ i ] ); + } + } catch( _ ) {} + + // Do send the request + // This may raise an exception which is actually + // handled in jQuery.ajax (so no try/catch here) + xhr.send( ( s.hasContent && s.data ) || null ); + + // Listener + callback = function( _, isAbort ) { + + var status, + statusText, + responseHeaders, + responses, + xml; + + // Firefox throws exceptions when accessing properties + // of an xhr when a network error occurred + // http://helpful.knobs-dials.com/index.php/Component_returned_failure_code:_0x80040111_(NS_ERROR_NOT_AVAILABLE) + try { + + // Was never called and is aborted or complete + if ( callback && ( isAbort || xhr.readyState === 4 ) ) { + + // Only called once + callback = undefined; + + // Do not keep as active anymore + if ( handle ) { + xhr.onreadystatechange = jQuery.noop; + if ( xhrOnUnloadAbort ) { + delete xhrCallbacks[ handle ]; + } + } + + // If it's an abort + if ( isAbort ) { + // Abort it manually if needed + if ( xhr.readyState !== 4 ) { + xhr.abort(); + } + } else { + status = xhr.status; + responseHeaders = xhr.getAllResponseHeaders(); + responses = {}; + xml = xhr.responseXML; + + // Construct response list + if ( xml && xml.documentElement /* #4958 */ ) { + responses.xml = xml; + } + + // When requesting binary data, IE6-9 will throw an exception + // on any attempt to access responseText (#11426) + try { + responses.text = xhr.responseText; + } catch( _ ) { + } + + // Firefox throws an exception when accessing + // statusText for faulty cross-domain requests + try { + statusText = xhr.statusText; + } catch( e ) { + // We normalize with Webkit giving an empty statusText + statusText = ""; + } + + // Filter status for non standard behaviors + + // If the request is local and we have data: assume a success + // (success with no data won't get notified, that's the best we + // can do given current implementations) + if ( !status && s.isLocal && !s.crossDomain ) { + status = responses.text ? 200 : 404; + // IE - #1450: sometimes returns 1223 when it should be 204 + } else if ( status === 1223 ) { + status = 204; + } + } + } + } catch( firefoxAccessException ) { + if ( !isAbort ) { + complete( -1, firefoxAccessException ); + } + } + + // Call complete if needed + if ( responses ) { + complete( status, statusText, responses, responseHeaders ); + } + }; + + if ( !s.async ) { + // if we're in sync mode we fire the callback + callback(); + } else if ( xhr.readyState === 4 ) { + // (IE6 & IE7) if it's in cache and has been + // retrieved directly we need to fire the callback + setTimeout( callback, 0 ); + } else { + handle = ++xhrId; + if ( xhrOnUnloadAbort ) { + // Create the active xhrs callbacks list if needed + // and attach the unload handler + if ( !xhrCallbacks ) { + xhrCallbacks = {}; + jQuery( window ).unload( xhrOnUnloadAbort ); + } + // Add to list of active xhrs callbacks + xhrCallbacks[ handle ] = callback; + } + xhr.onreadystatechange = callback; + } + }, + + abort: function() { + if ( callback ) { + callback(0,1); + } + } + }; + } + }); +} +var fxNow, timerId, + rfxtypes = /^(?:toggle|show|hide)$/, + rfxnum = new RegExp( "^(?:([-+])=|)(" + core_pnum + ")([a-z%]*)$", "i" ), + rrun = /queueHooks$/, + animationPrefilters = [ defaultPrefilter ], + tweeners = { + "*": [function( prop, value ) { + var end, unit, prevScale, + tween = this.createTween( prop, value ), + parts = rfxnum.exec( value ), + target = tween.cur(), + start = +target || 0, + scale = 1; + + if ( parts ) { + end = +parts[2]; + unit = parts[3] || ( jQuery.cssNumber[ prop ] ? "" : "px" ); + + // We need to compute starting value + if ( unit !== "px" && start ) { + // Iteratively approximate from a nonzero starting point + // Prefer the current property, because this process will be trivial if it uses the same units + // Fallback to end or a simple constant + start = jQuery.css( tween.elem, prop, true ) || end || 1; + + do { + // If previous iteration zeroed out, double until we get *something* + // Use a string for doubling factor so we don't accidentally see scale as unchanged below + prevScale = scale = scale || ".5"; + + // Adjust and apply + start = start / scale; + jQuery.style( tween.elem, prop, start + unit ); + + // Update scale, tolerating zeroes from tween.cur() + scale = tween.cur() / target; + + // Stop looping if we've hit the mark or scale is unchanged + } while ( scale !== 1 && scale !== prevScale ); + } + + tween.unit = unit; + tween.start = start; + // If a +=/-= token was provided, we're doing a relative animation + tween.end = parts[1] ? start + ( parts[1] + 1 ) * end : end; + } + return tween; + }] + }; + +// Animations created synchronously will run synchronously +function createFxNow() { + setTimeout(function() { + fxNow = undefined; + }, 0 ); + return ( fxNow = jQuery.now() ); +} + +function createTweens( animation, props ) { + jQuery.each( props, function( prop, value ) { + var collection = ( tweeners[ prop ] || [] ).concat( tweeners[ "*" ] ), + index = 0, + length = collection.length; + for ( ; index < length; index++ ) { + if ( collection[ index ].call( animation, prop, value ) ) { + + // we're done with this property + return; + } + } + }); +} + +function Animation( elem, properties, options ) { + var result, + index = 0, + tweenerIndex = 0, + length = animationPrefilters.length, + deferred = jQuery.Deferred().always( function() { + // don't match elem in the :animated selector + delete tick.elem; + }), + tick = function() { + var currentTime = fxNow || createFxNow(), + remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ), + percent = 1 - ( remaining / animation.duration || 0 ), + index = 0, + length = animation.tweens.length; + + for ( ; index < length ; index++ ) { + animation.tweens[ index ].run( percent ); + } + + deferred.notifyWith( elem, [ animation, percent, remaining ]); + + if ( percent < 1 && length ) { + return remaining; + } else { + deferred.resolveWith( elem, [ animation ] ); + return false; + } + }, + animation = deferred.promise({ + elem: elem, + props: jQuery.extend( {}, properties ), + opts: jQuery.extend( true, { specialEasing: {} }, options ), + originalProperties: properties, + originalOptions: options, + startTime: fxNow || createFxNow(), + duration: options.duration, + tweens: [], + createTween: function( prop, end, easing ) { + var tween = jQuery.Tween( elem, animation.opts, prop, end, + animation.opts.specialEasing[ prop ] || animation.opts.easing ); + animation.tweens.push( tween ); + return tween; + }, + stop: function( gotoEnd ) { + var index = 0, + // if we are going to the end, we want to run all the tweens + // otherwise we skip this part + length = gotoEnd ? animation.tweens.length : 0; + + for ( ; index < length ; index++ ) { + animation.tweens[ index ].run( 1 ); + } + + // resolve when we played the last frame + // otherwise, reject + if ( gotoEnd ) { + deferred.resolveWith( elem, [ animation, gotoEnd ] ); + } else { + deferred.rejectWith( elem, [ animation, gotoEnd ] ); + } + return this; + } + }), + props = animation.props; + + propFilter( props, animation.opts.specialEasing ); + + for ( ; index < length ; index++ ) { + result = animationPrefilters[ index ].call( animation, elem, props, animation.opts ); + if ( result ) { + return result; + } + } + + createTweens( animation, props ); + + if ( jQuery.isFunction( animation.opts.start ) ) { + animation.opts.start.call( elem, animation ); + } + + jQuery.fx.timer( + jQuery.extend( tick, { + anim: animation, + queue: animation.opts.queue, + elem: elem + }) + ); + + // attach callbacks from options + return animation.progress( animation.opts.progress ) + .done( animation.opts.done, animation.opts.complete ) + .fail( animation.opts.fail ) + .always( animation.opts.always ); +} + +function propFilter( props, specialEasing ) { + var index, name, easing, value, hooks; + + // camelCase, specialEasing and expand cssHook pass + for ( index in props ) { + name = jQuery.camelCase( index ); + easing = specialEasing[ name ]; + value = props[ index ]; + if ( jQuery.isArray( value ) ) { + easing = value[ 1 ]; + value = props[ index ] = value[ 0 ]; + } + + if ( index !== name ) { + props[ name ] = value; + delete props[ index ]; + } + + hooks = jQuery.cssHooks[ name ]; + if ( hooks && "expand" in hooks ) { + value = hooks.expand( value ); + delete props[ name ]; + + // not quite $.extend, this wont overwrite keys already present. + // also - reusing 'index' from above because we have the correct "name" + for ( index in value ) { + if ( !( index in props ) ) { + props[ index ] = value[ index ]; + specialEasing[ index ] = easing; + } + } + } else { + specialEasing[ name ] = easing; + } + } +} + +jQuery.Animation = jQuery.extend( Animation, { + + tweener: function( props, callback ) { + if ( jQuery.isFunction( props ) ) { + callback = props; + props = [ "*" ]; + } else { + props = props.split(" "); + } + + var prop, + index = 0, + length = props.length; + + for ( ; index < length ; index++ ) { + prop = props[ index ]; + tweeners[ prop ] = tweeners[ prop ] || []; + tweeners[ prop ].unshift( callback ); + } + }, + + prefilter: function( callback, prepend ) { + if ( prepend ) { + animationPrefilters.unshift( callback ); + } else { + animationPrefilters.push( callback ); + } + } +}); + +function defaultPrefilter( elem, props, opts ) { + var index, prop, value, length, dataShow, tween, hooks, oldfire, + anim = this, + style = elem.style, + orig = {}, + handled = [], + hidden = elem.nodeType && isHidden( elem ); + + // handle queue: false promises + if ( !opts.queue ) { + hooks = jQuery._queueHooks( elem, "fx" ); + if ( hooks.unqueued == null ) { + hooks.unqueued = 0; + oldfire = hooks.empty.fire; + hooks.empty.fire = function() { + if ( !hooks.unqueued ) { + oldfire(); + } + }; + } + hooks.unqueued++; + + anim.always(function() { + // doing this makes sure that the complete handler will be called + // before this completes + anim.always(function() { + hooks.unqueued--; + if ( !jQuery.queue( elem, "fx" ).length ) { + hooks.empty.fire(); + } + }); + }); + } + + // height/width overflow pass + if ( elem.nodeType === 1 && ( "height" in props || "width" in props ) ) { + // Make sure that nothing sneaks out + // Record all 3 overflow attributes because IE does not + // change the overflow attribute when overflowX and + // overflowY are set to the same value + opts.overflow = [ style.overflow, style.overflowX, style.overflowY ]; + + // Set display property to inline-block for height/width + // animations on inline elements that are having width/height animated + if ( jQuery.css( elem, "display" ) === "inline" && + jQuery.css( elem, "float" ) === "none" ) { + + // inline-level elements accept inline-block; + // block-level elements need to be inline with layout + if ( !jQuery.support.inlineBlockNeedsLayout || css_defaultDisplay( elem.nodeName ) === "inline" ) { + style.display = "inline-block"; + + } else { + style.zoom = 1; + } + } + } + + if ( opts.overflow ) { + style.overflow = "hidden"; + if ( !jQuery.support.shrinkWrapBlocks ) { + anim.done(function() { + style.overflow = opts.overflow[ 0 ]; + style.overflowX = opts.overflow[ 1 ]; + style.overflowY = opts.overflow[ 2 ]; + }); + } + } + + + // show/hide pass + for ( index in props ) { + value = props[ index ]; + if ( rfxtypes.exec( value ) ) { + delete props[ index ]; + if ( value === ( hidden ? "hide" : "show" ) ) { + continue; + } + handled.push( index ); + } + } + + length = handled.length; + if ( length ) { + dataShow = jQuery._data( elem, "fxshow" ) || jQuery._data( elem, "fxshow", {} ); + if ( hidden ) { + jQuery( elem ).show(); + } else { + anim.done(function() { + jQuery( elem ).hide(); + }); + } + anim.done(function() { + var prop; + jQuery.removeData( elem, "fxshow", true ); + for ( prop in orig ) { + jQuery.style( elem, prop, orig[ prop ] ); + } + }); + for ( index = 0 ; index < length ; index++ ) { + prop = handled[ index ]; + tween = anim.createTween( prop, hidden ? dataShow[ prop ] : 0 ); + orig[ prop ] = dataShow[ prop ] || jQuery.style( elem, prop ); + + if ( !( prop in dataShow ) ) { + dataShow[ prop ] = tween.start; + if ( hidden ) { + tween.end = tween.start; + tween.start = prop === "width" || prop === "height" ? 1 : 0; + } + } + } + } +} + +function Tween( elem, options, prop, end, easing ) { + return new Tween.prototype.init( elem, options, prop, end, easing ); +} +jQuery.Tween = Tween; + +Tween.prototype = { + constructor: Tween, + init: function( elem, options, prop, end, easing, unit ) { + this.elem = elem; + this.prop = prop; + this.easing = easing || "swing"; + this.options = options; + this.start = this.now = this.cur(); + this.end = end; + this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" ); + }, + cur: function() { + var hooks = Tween.propHooks[ this.prop ]; + + return hooks && hooks.get ? + hooks.get( this ) : + Tween.propHooks._default.get( this ); + }, + run: function( percent ) { + var eased, + hooks = Tween.propHooks[ this.prop ]; + + this.pos = eased = jQuery.easing[ this.easing ]( percent, this.options.duration * percent, 0, 1, this.options.duration ); + this.now = ( this.end - this.start ) * eased + this.start; + + if ( this.options.step ) { + this.options.step.call( this.elem, this.now, this ); + } + + if ( hooks && hooks.set ) { + hooks.set( this ); + } else { + Tween.propHooks._default.set( this ); + } + return this; + } +}; + +Tween.prototype.init.prototype = Tween.prototype; + +Tween.propHooks = { + _default: { + get: function( tween ) { + var result; + + if ( tween.elem[ tween.prop ] != null && + (!tween.elem.style || tween.elem.style[ tween.prop ] == null) ) { + return tween.elem[ tween.prop ]; + } + + // passing any value as a 4th parameter to .css will automatically + // attempt a parseFloat and fallback to a string if the parse fails + // so, simple values such as "10px" are parsed to Float. + // complex values such as "rotate(1rad)" are returned as is. + result = jQuery.css( tween.elem, tween.prop, false, "" ); + // Empty strings, null, undefined and "auto" are converted to 0. + return !result || result === "auto" ? 0 : result; + }, + set: function( tween ) { + // use step hook for back compat - use cssHook if its there - use .style if its + // available and use plain properties where available + if ( jQuery.fx.step[ tween.prop ] ) { + jQuery.fx.step[ tween.prop ]( tween ); + } else if ( tween.elem.style && ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null || jQuery.cssHooks[ tween.prop ] ) ) { + jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); + } else { + tween.elem[ tween.prop ] = tween.now; + } + } + } +}; + +// Remove in 2.0 - this supports IE8's panic based approach +// to setting things on disconnected nodes + +Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { + set: function( tween ) { + if ( tween.elem.nodeType && tween.elem.parentNode ) { + tween.elem[ tween.prop ] = tween.now; + } + } +}; + +jQuery.each([ "toggle", "show", "hide" ], function( i, name ) { + var cssFn = jQuery.fn[ name ]; + jQuery.fn[ name ] = function( speed, easing, callback ) { + return speed == null || typeof speed === "boolean" || + // special check for .toggle( handler, handler, ... ) + ( !i && jQuery.isFunction( speed ) && jQuery.isFunction( easing ) ) ? + cssFn.apply( this, arguments ) : + this.animate( genFx( name, true ), speed, easing, callback ); + }; +}); + +jQuery.fn.extend({ + fadeTo: function( speed, to, easing, callback ) { + + // show any hidden elements after setting opacity to 0 + return this.filter( isHidden ).css( "opacity", 0 ).show() + + // animate to the value specified + .end().animate({ opacity: to }, speed, easing, callback ); + }, + animate: function( prop, speed, easing, callback ) { + var empty = jQuery.isEmptyObject( prop ), + optall = jQuery.speed( speed, easing, callback ), + doAnimation = function() { + // Operate on a copy of prop so per-property easing won't be lost + var anim = Animation( this, jQuery.extend( {}, prop ), optall ); + + // Empty animations resolve immediately + if ( empty ) { + anim.stop( true ); + } + }; + + return empty || optall.queue === false ? + this.each( doAnimation ) : + this.queue( optall.queue, doAnimation ); + }, + stop: function( type, clearQueue, gotoEnd ) { + var stopQueue = function( hooks ) { + var stop = hooks.stop; + delete hooks.stop; + stop( gotoEnd ); + }; + + if ( typeof type !== "string" ) { + gotoEnd = clearQueue; + clearQueue = type; + type = undefined; + } + if ( clearQueue && type !== false ) { + this.queue( type || "fx", [] ); + } + + return this.each(function() { + var dequeue = true, + index = type != null && type + "queueHooks", + timers = jQuery.timers, + data = jQuery._data( this ); + + if ( index ) { + if ( data[ index ] && data[ index ].stop ) { + stopQueue( data[ index ] ); + } + } else { + for ( index in data ) { + if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) { + stopQueue( data[ index ] ); + } + } + } + + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && (type == null || timers[ index ].queue === type) ) { + timers[ index ].anim.stop( gotoEnd ); + dequeue = false; + timers.splice( index, 1 ); + } + } + + // start the next in the queue if the last step wasn't forced + // timers currently will call their complete callbacks, which will dequeue + // but only if they were gotoEnd + if ( dequeue || !gotoEnd ) { + jQuery.dequeue( this, type ); + } + }); + } +}); + +// Generate parameters to create a standard animation +function genFx( type, includeWidth ) { + var which, + attrs = { height: type }, + i = 0; + + // if we include width, step value is 1 to do all cssExpand values, + // if we don't include width, step value is 2 to skip over Left and Right + for( ; i < 4 ; i += 2 - includeWidth ) { + which = cssExpand[ i ]; + attrs[ "margin" + which ] = attrs[ "padding" + which ] = type; + } + + if ( includeWidth ) { + attrs.opacity = attrs.width = type; + } + + return attrs; +} + +// Generate shortcuts for custom animations +jQuery.each({ + slideDown: genFx("show"), + slideUp: genFx("hide"), + slideToggle: genFx("toggle"), + fadeIn: { opacity: "show" }, + fadeOut: { opacity: "hide" }, + fadeToggle: { opacity: "toggle" } +}, function( name, props ) { + jQuery.fn[ name ] = function( speed, easing, callback ) { + return this.animate( props, speed, easing, callback ); + }; +}); + +jQuery.speed = function( speed, easing, fn ) { + var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { + complete: fn || !fn && easing || + jQuery.isFunction( speed ) && speed, + duration: speed, + easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing + }; + + opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ? opt.duration : + opt.duration in jQuery.fx.speeds ? jQuery.fx.speeds[ opt.duration ] : jQuery.fx.speeds._default; + + // normalize opt.queue - true/undefined/null -> "fx" + if ( opt.queue == null || opt.queue === true ) { + opt.queue = "fx"; + } + + // Queueing + opt.old = opt.complete; + + opt.complete = function() { + if ( jQuery.isFunction( opt.old ) ) { + opt.old.call( this ); + } + + if ( opt.queue ) { + jQuery.dequeue( this, opt.queue ); + } + }; + + return opt; +}; + +jQuery.easing = { + linear: function( p ) { + return p; + }, + swing: function( p ) { + return 0.5 - Math.cos( p*Math.PI ) / 2; + } +}; + +jQuery.timers = []; +jQuery.fx = Tween.prototype.init; +jQuery.fx.tick = function() { + var timer, + timers = jQuery.timers, + i = 0; + + for ( ; i < timers.length; i++ ) { + timer = timers[ i ]; + // Checks the timer has not already been removed + if ( !timer() && timers[ i ] === timer ) { + timers.splice( i--, 1 ); + } + } + + if ( !timers.length ) { + jQuery.fx.stop(); + } +}; + +jQuery.fx.timer = function( timer ) { + if ( timer() && jQuery.timers.push( timer ) && !timerId ) { + timerId = setInterval( jQuery.fx.tick, jQuery.fx.interval ); + } +}; + +jQuery.fx.interval = 13; + +jQuery.fx.stop = function() { + clearInterval( timerId ); + timerId = null; +}; + +jQuery.fx.speeds = { + slow: 600, + fast: 200, + // Default speed + _default: 400 +}; + +// Back Compat <1.8 extension point +jQuery.fx.step = {}; + +if ( jQuery.expr && jQuery.expr.filters ) { + jQuery.expr.filters.animated = function( elem ) { + return jQuery.grep(jQuery.timers, function( fn ) { + return elem === fn.elem; + }).length; + }; +} +var rroot = /^(?:body|html)$/i; + +jQuery.fn.offset = function( options ) { + if ( arguments.length ) { + return options === undefined ? + this : + this.each(function( i ) { + jQuery.offset.setOffset( this, options, i ); + }); + } + + var box, docElem, body, win, clientTop, clientLeft, scrollTop, scrollLeft, top, left, + elem = this[ 0 ], + doc = elem && elem.ownerDocument; + + if ( !doc ) { + return; + } + + if ( (body = doc.body) === elem ) { + return jQuery.offset.bodyOffset( elem ); + } + + docElem = doc.documentElement; + + // Make sure we're not dealing with a disconnected DOM node + if ( !jQuery.contains( docElem, elem ) ) { + return { top: 0, left: 0 }; + } + + box = elem.getBoundingClientRect(); + win = getWindow( doc ); + clientTop = docElem.clientTop || body.clientTop || 0; + clientLeft = docElem.clientLeft || body.clientLeft || 0; + scrollTop = win.pageYOffset || docElem.scrollTop; + scrollLeft = win.pageXOffset || docElem.scrollLeft; + top = box.top + scrollTop - clientTop; + left = box.left + scrollLeft - clientLeft; + + return { top: top, left: left }; +}; + +jQuery.offset = { + + bodyOffset: function( body ) { + var top = body.offsetTop, + left = body.offsetLeft; + + if ( jQuery.support.doesNotIncludeMarginInBodyOffset ) { + top += parseFloat( jQuery.css(body, "marginTop") ) || 0; + left += parseFloat( jQuery.css(body, "marginLeft") ) || 0; + } + + return { top: top, left: left }; + }, + + setOffset: function( elem, options, i ) { + var position = jQuery.css( elem, "position" ); + + // set position first, in-case top/left are set even on static elem + if ( position === "static" ) { + elem.style.position = "relative"; + } + + var curElem = jQuery( elem ), + curOffset = curElem.offset(), + curCSSTop = jQuery.css( elem, "top" ), + curCSSLeft = jQuery.css( elem, "left" ), + calculatePosition = ( position === "absolute" || position === "fixed" ) && jQuery.inArray("auto", [curCSSTop, curCSSLeft]) > -1, + props = {}, curPosition = {}, curTop, curLeft; + + // need to be able to calculate position if either top or left is auto and position is either absolute or fixed + if ( calculatePosition ) { + curPosition = curElem.position(); + curTop = curPosition.top; + curLeft = curPosition.left; + } else { + curTop = parseFloat( curCSSTop ) || 0; + curLeft = parseFloat( curCSSLeft ) || 0; + } + + if ( jQuery.isFunction( options ) ) { + options = options.call( elem, i, curOffset ); + } + + if ( options.top != null ) { + props.top = ( options.top - curOffset.top ) + curTop; + } + if ( options.left != null ) { + props.left = ( options.left - curOffset.left ) + curLeft; + } + + if ( "using" in options ) { + options.using.call( elem, props ); + } else { + curElem.css( props ); + } + } +}; + + +jQuery.fn.extend({ + + position: function() { + if ( !this[0] ) { + return; + } + + var elem = this[0], + + // Get *real* offsetParent + offsetParent = this.offsetParent(), + + // Get correct offsets + offset = this.offset(), + parentOffset = rroot.test(offsetParent[0].nodeName) ? { top: 0, left: 0 } : offsetParent.offset(); + + // Subtract element margins + // note: when an element has margin: auto the offsetLeft and marginLeft + // are the same in Safari causing offset.left to incorrectly be 0 + offset.top -= parseFloat( jQuery.css(elem, "marginTop") ) || 0; + offset.left -= parseFloat( jQuery.css(elem, "marginLeft") ) || 0; + + // Add offsetParent borders + parentOffset.top += parseFloat( jQuery.css(offsetParent[0], "borderTopWidth") ) || 0; + parentOffset.left += parseFloat( jQuery.css(offsetParent[0], "borderLeftWidth") ) || 0; + + // Subtract the two offsets + return { + top: offset.top - parentOffset.top, + left: offset.left - parentOffset.left + }; + }, + + offsetParent: function() { + return this.map(function() { + var offsetParent = this.offsetParent || document.body; + while ( offsetParent && (!rroot.test(offsetParent.nodeName) && jQuery.css(offsetParent, "position") === "static") ) { + offsetParent = offsetParent.offsetParent; + } + return offsetParent || document.body; + }); + } +}); + + +// Create scrollLeft and scrollTop methods +jQuery.each( {scrollLeft: "pageXOffset", scrollTop: "pageYOffset"}, function( method, prop ) { + var top = /Y/.test( prop ); + + jQuery.fn[ method ] = function( val ) { + return jQuery.access( this, function( elem, method, val ) { + var win = getWindow( elem ); + + if ( val === undefined ) { + return win ? (prop in win) ? win[ prop ] : + win.document.documentElement[ method ] : + elem[ method ]; + } + + if ( win ) { + win.scrollTo( + !top ? val : jQuery( win ).scrollLeft(), + top ? val : jQuery( win ).scrollTop() + ); + + } else { + elem[ method ] = val; + } + }, method, val, arguments.length, null ); + }; +}); + +function getWindow( elem ) { + return jQuery.isWindow( elem ) ? + elem : + elem.nodeType === 9 ? + elem.defaultView || elem.parentWindow : + false; +} +// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods +jQuery.each( { Height: "height", Width: "width" }, function( name, type ) { + jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name }, function( defaultExtra, funcName ) { + // margin is only for outerHeight, outerWidth + jQuery.fn[ funcName ] = function( margin, value ) { + var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ), + extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" ); + + return jQuery.access( this, function( elem, type, value ) { + var doc; + + if ( jQuery.isWindow( elem ) ) { + // As of 5/8/2012 this will yield incorrect results for Mobile Safari, but there + // isn't a whole lot we can do. See pull request at this URL for discussion: + // https://github.com/jquery/jquery/pull/764 + return elem.document.documentElement[ "client" + name ]; + } + + // Get document width or height + if ( elem.nodeType === 9 ) { + doc = elem.documentElement; + + // Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height], whichever is greatest + // unfortunately, this causes bug #3838 in IE6/8 only, but there is currently no good, small way to fix it. + return Math.max( + elem.body[ "scroll" + name ], doc[ "scroll" + name ], + elem.body[ "offset" + name ], doc[ "offset" + name ], + doc[ "client" + name ] + ); + } + + return value === undefined ? + // Get width or height on the element, requesting but not forcing parseFloat + jQuery.css( elem, type, value, extra ) : + + // Set width or height on the element + jQuery.style( elem, type, value, extra ); + }, type, chainable ? margin : undefined, chainable ); + }; + }); +}); +// Expose jQuery to the global object +window.jQuery = window.$ = jQuery; + +// Expose jQuery as an AMD module, but only for AMD loaders that +// understand the issues with loading multiple versions of jQuery +// in a page that all might call define(). The loader will indicate +// they have special allowances for multiple jQuery versions by +// specifying define.amd.jQuery = true. Register as a named module, +// since jQuery can be concatenated with other files that may use define, +// but not use a proper concatenation script that understands anonymous +// AMD modules. A named AMD is safest and most robust way to register. +// Lowercase jquery is used because AMD module names are derived from +// file names, and jQuery is normally delivered in a lowercase file name. +// Do this after creating the global so that if an AMD module wants to call +// noConflict to hide this version of jQuery, it will work. +if ( typeof define === "function" && define.amd && define.amd.jQuery ) { + define( "jquery", [], function () { return jQuery; } ); +} + +})( window ); diff --git a/src/main/webapp/js/jquery-1.8.0.min.js b/src/main/webapp/js/jquery-1.8.0.min.js new file mode 100644 index 00000000..f121291c --- /dev/null +++ b/src/main/webapp/js/jquery-1.8.0.min.js @@ -0,0 +1,2 @@ +/*! jQuery v@1.8.0 jquery.com | jquery.org/license */ +(function(a,b){function G(a){var b=F[a]={};return p.each(a.split(s),function(a,c){b[c]=!0}),b}function J(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(I,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:+d+""===d?+d:H.test(d)?p.parseJSON(d):d}catch(f){}p.data(a,c,d)}else d=b}return d}function K(a){var b;for(b in a){if(b==="data"&&p.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function ba(){return!1}function bb(){return!0}function bh(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function bi(a,b){do a=a[b];while(a&&a.nodeType!==1);return a}function bj(a,b,c){b=b||0;if(p.isFunction(b))return p.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return p.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=p.grep(a,function(a){return a.nodeType===1});if(be.test(b))return p.filter(b,d,!c);b=p.filter(b,d)}return p.grep(a,function(a,d){return p.inArray(a,b)>=0===c})}function bk(a){var b=bl.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}function bC(a,b){return a.getElementsByTagName(b)[0]||a.appendChild(a.ownerDocument.createElement(b))}function bD(a,b){if(b.nodeType!==1||!p.hasData(a))return;var c,d,e,f=p._data(a),g=p._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;d").appendTo(e.body),c=b.css("display");b.remove();if(c==="none"||c===""){bI=e.body.appendChild(bI||p.extend(e.createElement("iframe"),{frameBorder:0,width:0,height:0}));if(!bJ||!bI.createElement)bJ=(bI.contentWindow||bI.contentDocument).document,bJ.write(""),bJ.close();b=bJ.body.appendChild(bJ.createElement(a)),c=bH(b,"display"),e.body.removeChild(bI)}return bR[a]=c,c}function ch(a,b,c,d){var e;if(p.isArray(b))p.each(b,function(b,e){c||cd.test(a)?d(a,e):ch(a+"["+(typeof e=="object"?b:"")+"]",e,c,d)});else if(!c&&p.type(b)==="object")for(e in b)ch(a+"["+e+"]",b[e],c,d);else d(a,b)}function cy(a){return function(b,c){typeof b!="string"&&(c=b,b="*");var d,e,f,g=b.toLowerCase().split(s),h=0,i=g.length;if(p.isFunction(c))for(;h)[^>]*$|#([\w\-]*)$)/,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^[\],:{}\s]*$/,x=/(?:^|:|,)(?:\s*\[)+/g,y=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,z=/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,A=/^-ms-/,B=/-([\da-z])/gi,C=function(a,b){return(b+"").toUpperCase()},D=function(){e.addEventListener?(e.removeEventListener("DOMContentLoaded",D,!1),p.ready()):e.readyState==="complete"&&(e.detachEvent("onreadystatechange",D),p.ready())},E={};p.fn=p.prototype={constructor:p,init:function(a,c,d){var f,g,h,i;if(!a)return this;if(a.nodeType)return this.context=this[0]=a,this.length=1,this;if(typeof a=="string"){a.charAt(0)==="<"&&a.charAt(a.length-1)===">"&&a.length>=3?f=[null,a,null]:f=u.exec(a);if(f&&(f[1]||!c)){if(f[1])return c=c instanceof p?c[0]:c,i=c&&c.nodeType?c.ownerDocument||c:e,a=p.parseHTML(f[1],i,!0),v.test(f[1])&&p.isPlainObject(c)&&this.attr.call(a,c,!0),p.merge(this,a);g=e.getElementById(f[2]);if(g&&g.parentNode){if(g.id!==f[2])return d.find(a);this.length=1,this[0]=g}return this.context=e,this.selector=a,this}return!c||c.jquery?(c||d).find(a):this.constructor(c).find(a)}return p.isFunction(a)?d.ready(a):(a.selector!==b&&(this.selector=a.selector,this.context=a.context),p.makeArray(a,this))},selector:"",jquery:"1.8.0",length:0,size:function(){return this.length},toArray:function(){return k.call(this)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=p.merge(this.constructor(),a);return d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")"),d},each:function(a,b){return p.each(this,a,b)},ready:function(a){return p.ready.promise().done(a),this},eq:function(a){return a=+a,a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(k.apply(this,arguments),"slice",k.call(arguments).join(","))},map:function(a){return this.pushStack(p.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:j,sort:[].sort,splice:[].splice},p.fn.init.prototype=p.fn,p.extend=p.fn.extend=function(){var a,c,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;typeof h=="boolean"&&(k=h,h=arguments[1]||{},i=2),typeof h!="object"&&!p.isFunction(h)&&(h={}),j===i&&(h=this,--i);for(;i0)return;d.resolveWith(e,[p]),p.fn.trigger&&p(e).trigger("ready").off("ready")},isFunction:function(a){return p.type(a)==="function"},isArray:Array.isArray||function(a){return p.type(a)==="array"},isWindow:function(a){return a!=null&&a==a.window},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):E[m.call(a)]||"object"},isPlainObject:function(a){if(!a||p.type(a)!=="object"||a.nodeType||p.isWindow(a))return!1;try{if(a.constructor&&!n.call(a,"constructor")&&!n.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||n.call(a,d)},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},error:function(a){throw new Error(a)},parseHTML:function(a,b,c){var d;return!a||typeof a!="string"?null:(typeof b=="boolean"&&(c=b,b=0),b=b||e,(d=v.exec(a))?[b.createElement(d[1])]:(d=p.buildFragment([a],b,c?null:[]),p.merge([],(d.cacheable?p.clone(d.fragment):d.fragment).childNodes)))},parseJSON:function(b){if(!b||typeof b!="string")return null;b=p.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(w.test(b.replace(y,"@").replace(z,"]").replace(x,"")))return(new Function("return "+b))();p.error("Invalid JSON: "+b)},parseXML:function(c){var d,e;if(!c||typeof c!="string")return null;try{a.DOMParser?(e=new DOMParser,d=e.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(f){d=b}return(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&p.error("Invalid XML: "+c),d},noop:function(){},globalEval:function(b){b&&r.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(A,"ms-").replace(B,C)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var e,f=0,g=a.length,h=g===b||p.isFunction(a);if(d){if(h){for(e in a)if(c.apply(a[e],d)===!1)break}else for(;f0&&a[0]&&a[i-1]||i===0||p.isArray(a));if(j)for(;h-1)i.splice(c,1),e&&(c<=g&&g--,c<=h&&h--)}),this},has:function(a){return p.inArray(a,i)>-1},empty:function(){return i=[],this},disable:function(){return i=j=c=b,this},disabled:function(){return!i},lock:function(){return j=b,c||l.disable(),this},locked:function(){return!j},fireWith:function(a,b){return b=b||[],b=[a,b.slice?b.slice():b],i&&(!d||j)&&(e?j.push(b):k(b)),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!d}};return l},p.extend({Deferred:function(a){var b=[["resolve","done",p.Callbacks("once memory"),"resolved"],["reject","fail",p.Callbacks("once memory"),"rejected"],["notify","progress",p.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return p.Deferred(function(c){p.each(b,function(b,d){var f=d[0],g=a[b];e[d[1]](p.isFunction(g)?function(){var a=g.apply(this,arguments);a&&p.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f+"With"](this===e?c:this,[a])}:c[f])}),a=null}).promise()},promise:function(a){return typeof a=="object"?p.extend(a,d):d}},e={};return d.pipe=d.then,p.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[a^1][2].disable,b[2][2].lock),e[f[0]]=g.fire,e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=k.call(arguments),d=c.length,e=d!==1||a&&p.isFunction(a.promise)?d:0,f=e===1?a:p.Deferred(),g=function(a,b,c){return function(d){b[a]=this,c[a]=arguments.length>1?k.call(arguments):d,c===h?f.notifyWith(b,c):--e||f.resolveWith(b,c)}},h,i,j;if(d>1){h=new Array(d),i=new Array(d),j=new Array(d);for(;b
                                a",c=n.getElementsByTagName("*"),d=n.getElementsByTagName("a")[0],d.style.cssText="top:1px;float:left;opacity:.5";if(!c||!c.length||!d)return{};f=e.createElement("select"),g=f.appendChild(e.createElement("option")),h=n.getElementsByTagName("input")[0],b={leadingWhitespace:n.firstChild.nodeType===3,tbody:!n.getElementsByTagName("tbody").length,htmlSerialize:!!n.getElementsByTagName("link").length,style:/top/.test(d.getAttribute("style")),hrefNormalized:d.getAttribute("href")==="/a",opacity:/^0.5/.test(d.style.opacity),cssFloat:!!d.style.cssFloat,checkOn:h.value==="on",optSelected:g.selected,getSetAttribute:n.className!=="t",enctype:!!e.createElement("form").enctype,html5Clone:e.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",boxModel:e.compatMode==="CSS1Compat",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},h.checked=!0,b.noCloneChecked=h.cloneNode(!0).checked,f.disabled=!0,b.optDisabled=!g.disabled;try{delete n.test}catch(o){b.deleteExpando=!1}!n.addEventListener&&n.attachEvent&&n.fireEvent&&(n.attachEvent("onclick",m=function(){b.noCloneEvent=!1}),n.cloneNode(!0).fireEvent("onclick"),n.detachEvent("onclick",m)),h=e.createElement("input"),h.value="t",h.setAttribute("type","radio"),b.radioValue=h.value==="t",h.setAttribute("checked","checked"),h.setAttribute("name","t"),n.appendChild(h),i=e.createDocumentFragment(),i.appendChild(n.lastChild),b.checkClone=i.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=h.checked,i.removeChild(h),i.appendChild(n);if(n.attachEvent)for(k in{submit:!0,change:!0,focusin:!0})j="on"+k,l=j in n,l||(n.setAttribute(j,"return;"),l=typeof n[j]=="function"),b[k+"Bubbles"]=l;return p(function(){var c,d,f,g,h="padding:0;margin:0;border:0;display:block;overflow:hidden;",i=e.getElementsByTagName("body")[0];if(!i)return;c=e.createElement("div"),c.style.cssText="visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px",i.insertBefore(c,i.firstChild),d=e.createElement("div"),c.appendChild(d),d.innerHTML="
                                t
                                ",f=d.getElementsByTagName("td"),f[0].style.cssText="padding:0;margin:0;border:0;display:none",l=f[0].offsetHeight===0,f[0].style.display="",f[1].style.display="none",b.reliableHiddenOffsets=l&&f[0].offsetHeight===0,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",b.boxSizing=d.offsetWidth===4,b.doesNotIncludeMarginInBodyOffset=i.offsetTop!==1,a.getComputedStyle&&(b.pixelPosition=(a.getComputedStyle(d,null)||{}).top!=="1%",b.boxSizingReliable=(a.getComputedStyle(d,null)||{width:"4px"}).width==="4px",g=e.createElement("div"),g.style.cssText=d.style.cssText=h,g.style.marginRight=g.style.width="0",d.style.width="1px",d.appendChild(g),b.reliableMarginRight=!parseFloat((a.getComputedStyle(g,null)||{}).marginRight)),typeof d.style.zoom!="undefined"&&(d.innerHTML="",d.style.cssText=h+"width:1px;padding:1px;display:inline;zoom:1",b.inlineBlockNeedsLayout=d.offsetWidth===3,d.style.display="block",d.style.overflow="visible",d.innerHTML="
                                ",d.firstChild.style.width="5px",b.shrinkWrapBlocks=d.offsetWidth!==3,c.style.zoom=1),i.removeChild(c),c=d=f=g=null}),i.removeChild(n),c=d=f=g=h=i=n=null,b}();var H=/^(?:\{.*\}|\[.*\])$/,I=/([A-Z])/g;p.extend({cache:{},deletedIds:[],uuid:0,expando:"jQuery"+(p.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){return a=a.nodeType?p.cache[a[p.expando]]:a[p.expando],!!a&&!K(a)},data:function(a,c,d,e){if(!p.acceptData(a))return;var f,g,h=p.expando,i=typeof c=="string",j=a.nodeType,k=j?p.cache:a,l=j?a[h]:a[h]&&h;if((!l||!k[l]||!e&&!k[l].data)&&i&&d===b)return;l||(j?a[h]=l=p.deletedIds.pop()||++p.uuid:l=h),k[l]||(k[l]={},j||(k[l].toJSON=p.noop));if(typeof c=="object"||typeof c=="function")e?k[l]=p.extend(k[l],c):k[l].data=p.extend(k[l].data,c);return f=k[l],e||(f.data||(f.data={}),f=f.data),d!==b&&(f[p.camelCase(c)]=d),i?(g=f[c],g==null&&(g=f[p.camelCase(c)])):g=f,g},removeData:function(a,b,c){if(!p.acceptData(a))return;var d,e,f,g=a.nodeType,h=g?p.cache:a,i=g?a[p.expando]:p.expando;if(!h[i])return;if(b){d=c?h[i]:h[i].data;if(d){p.isArray(b)||(b in d?b=[b]:(b=p.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,f=b.length;e1,null,!1))},removeData:function(a){return this.each(function(){p.removeData(this,a)})}}),p.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=p._data(a,b),c&&(!d||p.isArray(c)?d=p._data(a,b,p.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=p.queue(a,b),d=c.shift(),e=p._queueHooks(a,b),f=function(){p.dequeue(a,b)};d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),delete e.stop,d.call(a,f,e)),!c.length&&e&&e.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return p._data(a,c)||p._data(a,c,{empty:p.Callbacks("once memory").add(function(){p.removeData(a,b+"queue",!0),p.removeData(a,c,!0)})})}}),p.fn.extend({queue:function(a,c){var d=2;return typeof a!="string"&&(c=a,a="fx",d--),arguments.length1)},removeAttr:function(a){return this.each(function(){p.removeAttr(this,a)})},prop:function(a,b){return p.access(this,p.prop,a,b,arguments.length>1)},removeProp:function(a){return a=p.propFix[a]||a,this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,f,g,h;if(p.isFunction(a))return this.each(function(b){p(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(s);for(c=0,d=this.length;c-1)d=d.replace(" "+c[f]+" "," ");e.className=a?p.trim(d):""}}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";return p.isFunction(a)?this.each(function(c){p(this).toggleClass(a.call(this,c,this.className,b),b)}):this.each(function(){if(c==="string"){var e,f=0,g=p(this),h=b,i=a.split(s);while(e=i[f++])h=d?h:!g.hasClass(e),g[h?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&p._data(this,"__className__",this.className),this.className=this.className||a===!1?"":p._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ",c=0,d=this.length;for(;c-1)return!0;return!1},val:function(a){var c,d,e,f=this[0];if(!arguments.length){if(f)return c=p.valHooks[f.type]||p.valHooks[f.nodeName.toLowerCase()],c&&"get"in c&&(d=c.get(f,"value"))!==b?d:(d=f.value,typeof d=="string"?d.replace(P,""):d==null?"":d);return}return e=p.isFunction(a),this.each(function(d){var f,g=p(this);if(this.nodeType!==1)return;e?f=a.call(this,d,g.val()):f=a,f==null?f="":typeof f=="number"?f+="":p.isArray(f)&&(f=p.map(f,function(a){return a==null?"":a+""})),c=p.valHooks[this.type]||p.valHooks[this.nodeName.toLowerCase()];if(!c||!("set"in c)||c.set(this,f,"value")===b)this.value=f})}}),p.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,f=a.selectedIndex,g=[],h=a.options,i=a.type==="select-one";if(f<0)return null;c=i?f:0,d=i?f+1:h.length;for(;c=0}),c.length||(a.selectedIndex=-1),c}}},attrFn:{},attr:function(a,c,d,e){var f,g,h,i=a.nodeType;if(!a||i===3||i===8||i===2)return;if(e&&p.isFunction(p.fn[c]))return p(a)[c](d);if(typeof a.getAttribute=="undefined")return p.prop(a,c,d);h=i!==1||!p.isXMLDoc(a),h&&(c=c.toLowerCase(),g=p.attrHooks[c]||(T.test(c)?M:L));if(d!==b){if(d===null){p.removeAttr(a,c);return}return g&&"set"in g&&h&&(f=g.set(a,d,c))!==b?f:(a.setAttribute(c,""+d),d)}return g&&"get"in g&&h&&(f=g.get(a,c))!==null?f:(f=a.getAttribute(c),f===null?b:f)},removeAttr:function(a,b){var c,d,e,f,g=0;if(b&&a.nodeType===1){d=b.split(s);for(;g=0}})});var V=/^(?:textarea|input|select)$/i,W=/^([^\.]*|)(?:\.(.+)|)$/,X=/(?:^|\s)hover(\.\S+|)\b/,Y=/^key/,Z=/^(?:mouse|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=function(a){return p.event.special.hover?a:a.replace(X,"mouseenter$1 mouseleave$1")};p.event={add:function(a,c,d,e,f){var g,h,i,j,k,l,m,n,o,q,r;if(a.nodeType===3||a.nodeType===8||!c||!d||!(g=p._data(a)))return;d.handler&&(o=d,d=o.handler,f=o.selector),d.guid||(d.guid=p.guid++),i=g.events,i||(g.events=i={}),h=g.handle,h||(g.handle=h=function(a){return typeof p!="undefined"&&(!a||p.event.triggered!==a.type)?p.event.dispatch.apply(h.elem,arguments):b},h.elem=a),c=p.trim(_(c)).split(" ");for(j=0;j=0&&(s=s.slice(0,-1),i=!0),s.indexOf(".")>=0&&(t=s.split("."),s=t.shift(),t.sort());if((!f||p.event.customEvent[s])&&!p.event.global[s])return;c=typeof c=="object"?c[p.expando]?c:new p.Event(s,c):new p.Event(s),c.type=s,c.isTrigger=!0,c.exclusive=i,c.namespace=t.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+t.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,m=s.indexOf(":")<0?"on"+s:"";if(!f){h=p.cache;for(j in h)h[j].events&&h[j].events[s]&&p.event.trigger(c,d,h[j].handle.elem,!0);return}c.result=b,c.target||(c.target=f),d=d!=null?p.makeArray(d):[],d.unshift(c),n=p.event.special[s]||{};if(n.trigger&&n.trigger.apply(f,d)===!1)return;q=[[f,n.bindType||s]];if(!g&&!n.noBubble&&!p.isWindow(f)){r=n.delegateType||s,k=$.test(r+s)?f:f.parentNode;for(l=f;k;k=k.parentNode)q.push([k,r]),l=k;l===(f.ownerDocument||e)&&q.push([l.defaultView||l.parentWindow||a,r])}for(j=0;jq&&u.push({elem:this,matches:o.slice(q)});for(d=0;d0?this.on(b,null,a,c):this.trigger(b)},Y.test(b)&&(p.event.fixHooks[b]=p.event.keyHooks),Z.test(b)&&(p.event.fixHooks[b]=p.event.mouseHooks)}),function(a,b){function bd(a,b,c,d){var e=0,f=b.length;for(;e0?h(g,c,f):[]}function bf(a,c,d,e,f){var g,h,i,j,k,l,m,n,p=0,q=f.length,s=L.POS,t=new RegExp("^"+s.source+"(?!"+r+")","i"),u=function(){var a=1,c=arguments.length-2;for(;ai){m=a.slice(i,g.index),i=n,l=[c],B.test(m)&&(k&&(l=k),k=e);if(h=H.test(m))m=m.slice(0,-5).replace(B,"$&*");g.length>1&&g[0].replace(t,u),k=be(m,g[1],g[2],l,k,h)}}k?(j=j.concat(k),(m=a.slice(i))&&m!==")"?B.test(m)?bd(m,j,d,e):Z(m,c,d,e?e.concat(k):k):o.apply(d,j)):Z(a,c,d,e)}return q===1?d:Z.uniqueSort(d)}function bg(a,b,c){var d,e,f,g=[],i=0,j=D.exec(a),k=!j.pop()&&!j.pop(),l=k&&a.match(C)||[""],m=$.preFilter,n=$.filter,o=!c&&b!==h;for(;(e=l[i])!=null&&k;i++){g.push(d=[]),o&&(e=" "+e);while(e){k=!1;if(j=B.exec(e))e=e.slice(j[0].length),k=d.push({part:j.pop().replace(A," "),captures:j});for(f in n)(j=L[f].exec(e))&&(!m[f]||(j=m[f](j,b,c)))&&(e=e.slice(j.shift().length),k=d.push({part:f,captures:j}));if(!k)break}}return k||Z.error(a),g}function bh(a,b,e){var f=b.dir,g=m++;return a||(a=function(a){return a===e}),b.first?function(b,c){while(b=b[f])if(b.nodeType===1)return a(b,c)&&b}:function(b,e){var h,i=g+"."+d,j=i+"."+c;while(b=b[f])if(b.nodeType===1){if((h=b[q])===j)return b.sizset;if(typeof h=="string"&&h.indexOf(i)===0){if(b.sizset)return b}else{b[q]=j;if(a(b,e))return b.sizset=!0,b;b.sizset=!1}}}}function bi(a,b){return a?function(c,d){var e=b(c,d);return e&&a(e===!0?c:e,d)}:b}function bj(a,b,c){var d,e,f=0;for(;d=a[f];f++)$.relative[d.part]?e=bh(e,$.relative[d.part],b):(d.captures.push(b,c),e=bi(e,$.filter[d.part].apply(null,d.captures)));return e}function bk(a){return function(b,c){var d,e=0;for(;d=a[e];e++)if(d(b,c))return!0;return!1}}var c,d,e,f,g,h=a.document,i=h.documentElement,j="undefined",k=!1,l=!0,m=0,n=[].slice,o=[].push,q=("sizcache"+Math.random()).replace(".",""),r="[\\x20\\t\\r\\n\\f]",s="(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",t=s.replace("w","w#"),u="([*^$|!~]?=)",v="\\["+r+"*("+s+")"+r+"*(?:"+u+r+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+t+")|)|)"+r+"*\\]",w=":("+s+")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|((?:[^,]|\\\\,|(?:,(?=[^\\[]*\\]))|(?:,(?=[^\\(]*\\))))*))\\)|)",x=":(nth|eq|gt|lt|first|last|even|odd)(?:\\((\\d*)\\)|)(?=[^-]|$)",y=r+"*([\\x20\\t\\r\\n\\f>+~])"+r+"*",z="(?=[^\\x20\\t\\r\\n\\f])(?:\\\\.|"+v+"|"+w.replace(2,7)+"|[^\\\\(),])+",A=new RegExp("^"+r+"+|((?:^|[^\\\\])(?:\\\\.)*)"+r+"+$","g"),B=new RegExp("^"+y),C=new RegExp(z+"?(?="+r+"*,|$)","g"),D=new RegExp("^(?:(?!,)(?:(?:^|,)"+r+"*"+z+")*?|"+r+"*(.*?))(\\)|$)"),E=new RegExp(z.slice(19,-6)+"\\x20\\t\\r\\n\\f>+~])+|"+y,"g"),F=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,G=/[\x20\t\r\n\f]*[+~]/,H=/:not\($/,I=/h\d/i,J=/input|select|textarea|button/i,K=/\\(?!\\)/g,L={ID:new RegExp("^#("+s+")"),CLASS:new RegExp("^\\.("+s+")"),NAME:new RegExp("^\\[name=['\"]?("+s+")['\"]?\\]"),TAG:new RegExp("^("+s.replace("[-","[-\\*")+")"),ATTR:new RegExp("^"+v),PSEUDO:new RegExp("^"+w),CHILD:new RegExp("^:(only|nth|last|first)-child(?:\\("+r+"*(even|odd|(([+-]|)(\\d*)n|)"+r+"*(?:([+-]|)"+r+"*(\\d+)|))"+r+"*\\)|)","i"),POS:new RegExp(x,"ig"),needsContext:new RegExp("^"+r+"*[>+~]|"+x,"i")},M={},N=[],O={},P=[],Q=function(a){return a.sizzleFilter=!0,a},R=function(a){return function(b){return b.nodeName.toLowerCase()==="input"&&b.type===a}},S=function(a){return function(b){var c=b.nodeName.toLowerCase();return(c==="input"||c==="button")&&b.type===a}},T=function(a){var b=!1,c=h.createElement("div");try{b=a(c)}catch(d){}return c=null,b},U=T(function(a){a.innerHTML="";var b=typeof a.lastChild.getAttribute("multiple");return b!=="boolean"&&b!=="string"}),V=T(function(a){a.id=q+0,a.innerHTML="
                                ",i.insertBefore(a,i.firstChild);var b=h.getElementsByName&&h.getElementsByName(q).length===2+h.getElementsByName(q+0).length;return g=!h.getElementById(q),i.removeChild(a),b}),W=T(function(a){return a.appendChild(h.createComment("")),a.getElementsByTagName("*").length===0}),X=T(function(a){return a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!==j&&a.firstChild.getAttribute("href")==="#"}),Y=T(function(a){return a.innerHTML="",!a.getElementsByClassName||a.getElementsByClassName("e").length===0?!1:(a.lastChild.className="e",a.getElementsByClassName("e").length!==1)}),Z=function(a,b,c,d){c=c||[],b=b||h;var e,f,g,i,j=b.nodeType;if(j!==1&&j!==9)return[];if(!a||typeof a!="string")return c;g=ba(b);if(!g&&!d)if(e=F.exec(a))if(i=e[1]){if(j===9){f=b.getElementById(i);if(!f||!f.parentNode)return c;if(f.id===i)return c.push(f),c}else if(b.ownerDocument&&(f=b.ownerDocument.getElementById(i))&&bb(b,f)&&f.id===i)return c.push(f),c}else{if(e[2])return o.apply(c,n.call(b.getElementsByTagName(a),0)),c;if((i=e[3])&&Y&&b.getElementsByClassName)return o.apply(c,n.call(b.getElementsByClassName(i),0)),c}return bm(a,b,c,d,g)},$=Z.selectors={cacheLength:50,match:L,order:["ID","TAG"],attrHandle:{},createPseudo:Q,find:{ID:g?function(a,b,c){if(typeof b.getElementById!==j&&!c){var d=b.getElementById(a);return d&&d.parentNode?[d]:[]}}:function(a,c,d){if(typeof c.getElementById!==j&&!d){var e=c.getElementById(a);return e?e.id===a||typeof e.getAttributeNode!==j&&e.getAttributeNode("id").value===a?[e]:b:[]}},TAG:W?function(a,b){if(typeof b.getElementsByTagName!==j)return b.getElementsByTagName(a)}:function(a,b){var c=b.getElementsByTagName(a);if(a==="*"){var d,e=[],f=0;for(;d=c[f];f++)d.nodeType===1&&e.push(d);return e}return c}},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(K,""),a[3]=(a[4]||a[5]||"").replace(K,""),a[2]==="~="&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),a[1]==="nth"?(a[2]||Z.error(a[0]),a[3]=+(a[3]?a[4]+(a[5]||1):2*(a[2]==="even"||a[2]==="odd")),a[4]=+(a[6]+a[7]||a[2]==="odd")):a[2]&&Z.error(a[0]),a},PSEUDO:function(a){var b,c=a[4];return L.CHILD.test(a[0])?null:(c&&(b=D.exec(c))&&b.pop()&&(a[0]=a[0].slice(0,b[0].length-c.length-1),c=b[0].slice(0,-1)),a.splice(2,3,c||a[3]),a)}},filter:{ID:g?function(a){return a=a.replace(K,""),function(b){return b.getAttribute("id")===a}}:function(a){return a=a.replace(K,""),function(b){var c=typeof b.getAttributeNode!==j&&b.getAttributeNode("id");return c&&c.value===a}},TAG:function(a){return a==="*"?function(){return!0}:(a=a.replace(K,"").toLowerCase(),function(b){return b.nodeName&&b.nodeName.toLowerCase()===a})},CLASS:function(a){var b=M[a];return b||(b=M[a]=new RegExp("(^|"+r+")"+a+"("+r+"|$)"),N.push(a),N.length>$.cacheLength&&delete M[N.shift()]),function(a){return b.test(a.className||typeof a.getAttribute!==j&&a.getAttribute("class")||"")}},ATTR:function(a,b,c){return b?function(d){var e=Z.attr(d,a),f=e+"";if(e==null)return b==="!=";switch(b){case"=":return f===c;case"!=":return f!==c;case"^=":return c&&f.indexOf(c)===0;case"*=":return c&&f.indexOf(c)>-1;case"$=":return c&&f.substr(f.length-c.length)===c;case"~=":return(" "+f+" ").indexOf(c)>-1;case"|=":return f===c||f.substr(0,c.length+1)===c+"-"}}:function(b){return Z.attr(b,a)!=null}},CHILD:function(a,b,c,d){if(a==="nth"){var e=m++;return function(a){var b,f,g=0,h=a;if(c===1&&d===0)return!0;b=a.parentNode;if(b&&(b[q]!==e||!a.sizset)){for(h=b.firstChild;h;h=h.nextSibling)if(h.nodeType===1){h.sizset=++g;if(h===a)break}b[q]=e}return f=a.sizset-d,c===0?f===0:f%c===0&&f/c>=0}}return function(b){var c=b;switch(a){case"only":case"first":while(c=c.previousSibling)if(c.nodeType===1)return!1;if(a==="first")return!0;c=b;case"last":while(c=c.nextSibling)if(c.nodeType===1)return!1;return!0}}},PSEUDO:function(a,b,c,d){var e=$.pseudos[a]||$.pseudos[a.toLowerCase()];return e||Z.error("unsupported pseudo: "+a),e.sizzleFilter?e(b,c,d):e}},pseudos:{not:Q(function(a,b,c){var d=bl(a.replace(A,"$1"),b,c);return function(a){return!d(a)}}),enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&!!a.checked||b==="option"&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},parent:function(a){return!$.pseudos.empty(a)},empty:function(a){var b;a=a.firstChild;while(a){if(a.nodeName>"@"||(b=a.nodeType)===3||b===4)return!1;a=a.nextSibling}return!0},contains:Q(function(a){return function(b){return(b.textContent||b.innerText||bc(b)).indexOf(a)>-1}}),has:Q(function(a){return function(b){return Z(a,b).length>0}}),header:function(a){return I.test(a.nodeName)},text:function(a){var b,c;return a.nodeName.toLowerCase()==="input"&&(b=a.type)==="text"&&((c=a.getAttribute("type"))==null||c.toLowerCase()===b)},radio:R("radio"),checkbox:R("checkbox"),file:R("file"),password:R("password"),image:R("image"),submit:S("submit"),reset:S("reset"),button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&a.type==="button"||b==="button"},input:function(a){return J.test(a.nodeName)},focus:function(a){var b=a.ownerDocument;return a===b.activeElement&&(!b.hasFocus||b.hasFocus())&&(!!a.type||!!a.href)},active:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b,c){return c?a.slice(1):[a[0]]},last:function(a,b,c){var d=a.pop();return c?a:[d]},even:function(a,b,c){var d=[],e=c?1:0,f=a.length;for(;e$.cacheLength&&delete O[P.shift()],g};Z.matches=function(a,b){return Z(a,null,null,b)},Z.matchesSelector=function(a,b){return Z(b,null,null,[a]).length>0};var bm=function(a,b,e,f,g){a=a.replace(A,"$1");var h,i,j,k,l,m,p,q,r,s=a.match(C),t=a.match(E),u=b.nodeType;if(L.POS.test(a))return bf(a,b,e,f,s);if(f)h=n.call(f,0);else if(s&&s.length===1){if(t.length>1&&u===9&&!g&&(s=L.ID.exec(t[0]))){b=$.find.ID(s[1],b,g)[0];if(!b)return e;a=a.slice(t.shift().length)}q=(s=G.exec(t[0]))&&!s.index&&b.parentNode||b,r=t.pop(),m=r.split(":not")[0];for(j=0,k=$.order.length;j",a.querySelectorAll("[selected]").length||e.push("\\["+r+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),a.querySelectorAll(":checked").length||e.push(":checked")}),T(function(a){a.innerHTML="

                                ",a.querySelectorAll("[test^='']").length&&e.push("[*^$]="+r+"*(?:\"\"|'')"),a.innerHTML="",a.querySelectorAll(":enabled").length||e.push(":enabled",":disabled")}),e=e.length&&new RegExp(e.join("|")),bm=function(a,d,f,g,h){if(!g&&!h&&(!e||!e.test(a)))if(d.nodeType===9)try{return o.apply(f,n.call(d.querySelectorAll(a),0)),f}catch(i){}else if(d.nodeType===1&&d.nodeName.toLowerCase()!=="object"){var j=d.getAttribute("id"),k=j||q,l=G.test(a)&&d.parentNode||d;j?k=k.replace(c,"\\$&"):d.setAttribute("id",k);try{return o.apply(f,n.call(l.querySelectorAll(a.replace(C,"[id='"+k+"'] $&")),0)),f}catch(i){}finally{j||d.removeAttribute("id")}}return b(a,d,f,g,h)},g&&(T(function(b){a=g.call(b,"div");try{g.call(b,"[test!='']:sizzle"),f.push($.match.PSEUDO)}catch(c){}}),f=new RegExp(f.join("|")),Z.matchesSelector=function(b,c){c=c.replace(d,"='$1']");if(!ba(b)&&!f.test(c)&&(!e||!e.test(c)))try{var h=g.call(b,c);if(h||a||b.document&&b.document.nodeType!==11)return h}catch(i){}return Z(c,null,null,[b]).length>0})}(),Z.attr=p.attr,p.find=Z,p.expr=Z.selectors,p.expr[":"]=p.expr.pseudos,p.unique=Z.uniqueSort,p.text=Z.getText,p.isXMLDoc=Z.isXML,p.contains=Z.contains}(a);var bc=/Until$/,bd=/^(?:parents|prev(?:Until|All))/,be=/^.[^:#\[\.,]*$/,bf=p.expr.match.needsContext,bg={children:!0,contents:!0,next:!0,prev:!0};p.fn.extend({find:function(a){var b,c,d,e,f,g,h=this;if(typeof a!="string")return p(a).filter(function(){for(b=0,c=h.length;b0)for(e=d;e=0:p.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c,d=0,e=this.length,f=[],g=bf.test(a)||typeof a!="string"?p(a,b||this.context):0;for(;d-1:p.find.matchesSelector(c,a)){f.push(c);break}c=c.parentNode}}return f=f.length>1?p.unique(f):f,this.pushStack(f,"closest",a)},index:function(a){return a?typeof a=="string"?p.inArray(this[0],p(a)):p.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(a,b){var c=typeof a=="string"?p(a,b):p.makeArray(a&&a.nodeType?[a]:a),d=p.merge(this.get(),c);return this.pushStack(bh(c[0])||bh(d[0])?d:p.unique(d))},addBack:function(a){return this.add(a==null?this.prevObject:this.prevObject.filter(a))}}),p.fn.andSelf=p.fn.addBack,p.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return p.dir(a,"parentNode")},parentsUntil:function(a,b,c){return p.dir(a,"parentNode",c)},next:function(a){return bi(a,"nextSibling")},prev:function(a){return bi(a,"previousSibling")},nextAll:function(a){return p.dir(a,"nextSibling")},prevAll:function(a){return p.dir(a,"previousSibling")},nextUntil:function(a,b,c){return p.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return p.dir(a,"previousSibling",c)},siblings:function(a){return p.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return p.sibling(a.firstChild)},contents:function(a){return p.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:p.merge([],a.childNodes)}},function(a,b){p.fn[a]=function(c,d){var e=p.map(this,b,c);return bc.test(a)||(d=c),d&&typeof d=="string"&&(e=p.filter(d,e)),e=this.length>1&&!bg[a]?p.unique(e):e,this.length>1&&bd.test(a)&&(e=e.reverse()),this.pushStack(e,a,k.call(arguments).join(","))}}),p.extend({filter:function(a,b,c){return c&&(a=":not("+a+")"),b.length===1?p.find.matchesSelector(b[0],a)?[b[0]]:[]:p.find.matches(a,b)},dir:function(a,c,d){var e=[],f=a[c];while(f&&f.nodeType!==9&&(d===b||f.nodeType!==1||!p(f).is(d)))f.nodeType===1&&e.push(f),f=f[c];return e},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var bl="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",bm=/ jQuery\d+="(?:null|\d+)"/g,bn=/^\s+/,bo=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bp=/<([\w:]+)/,bq=/]","i"),bv=/^(?:checkbox|radio)$/,bw=/checked\s*(?:[^=]|=\s*.checked.)/i,bx=/\/(java|ecma)script/i,by=/^\s*\s*$/g,bz={option:[1,""],legend:[1,"
                                ","
                                "],thead:[1,"","
                                "],tr:[2,"","
                                "],td:[3,"","
                                "],col:[2,"","
                                "],area:[1,"",""],_default:[0,"",""]},bA=bk(e),bB=bA.appendChild(e.createElement("div"));bz.optgroup=bz.option,bz.tbody=bz.tfoot=bz.colgroup=bz.caption=bz.thead,bz.th=bz.td,p.support.htmlSerialize||(bz._default=[1,"X
                                ","
                                "]),p.fn.extend({text:function(a){return p.access(this,function(a){return a===b?p.text(this):this.empty().append((this[0]&&this[0].ownerDocument||e).createTextNode(a))},null,a,arguments.length)},wrapAll:function(a){if(p.isFunction(a))return this.each(function(b){p(this).wrapAll(a.call(this,b))});if(this[0]){var b=p(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return p.isFunction(a)?this.each(function(b){p(this).wrapInner(a.call(this,b))}):this.each(function(){var b=p(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=p.isFunction(a);return this.each(function(c){p(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){p.nodeName(this,"body")||p(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){(this.nodeType===1||this.nodeType===11)&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){(this.nodeType===1||this.nodeType===11)&&this.insertBefore(a,this.firstChild)})},before:function(){if(!bh(this[0]))return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=p.clean(arguments);return this.pushStack(p.merge(a,this),"before",this.selector)}},after:function(){if(!bh(this[0]))return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=p.clean(arguments);return this.pushStack(p.merge(this,a),"after",this.selector)}},remove:function(a,b){var c,d=0;for(;(c=this[d])!=null;d++)if(!a||p.filter(a,[c]).length)!b&&c.nodeType===1&&(p.cleanData(c.getElementsByTagName("*")),p.cleanData([c])),c.parentNode&&c.parentNode.removeChild(c);return this},empty:function(){var a,b=0;for(;(a=this[b])!=null;b++){a.nodeType===1&&p.cleanData(a.getElementsByTagName("*"));while(a.firstChild)a.removeChild(a.firstChild)}return this},clone:function(a,b){return a=a==null?!1:a,b=b==null?a:b,this.map(function(){return p.clone(this,a,b)})},html:function(a){return p.access(this,function(a){var c=this[0]||{},d=0,e=this.length;if(a===b)return c.nodeType===1?c.innerHTML.replace(bm,""):b;if(typeof a=="string"&&!bs.test(a)&&(p.support.htmlSerialize||!bu.test(a))&&(p.support.leadingWhitespace||!bn.test(a))&&!bz[(bp.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(bo,"<$1>");try{for(;d1&&typeof j=="string"&&bw.test(j))return this.each(function(){p(this).domManip(a,c,d)});if(p.isFunction(j))return this.each(function(e){var f=p(this);a[0]=j.call(this,e,c?f.html():b),f.domManip(a,c,d)});if(this[0]){e=p.buildFragment(a,this,k),g=e.fragment,f=g.firstChild,g.childNodes.length===1&&(g=f);if(f){c=c&&p.nodeName(f,"tr");for(h=e.cacheable||l-1;i0?this.clone(!0):this).get(),p(g[e])[b](d),f=f.concat(d);return this.pushStack(f,a,g.selector)}}),p.extend({clone:function(a,b,c){var d,e,f,g;p.support.html5Clone||p.isXMLDoc(a)||!bu.test("<"+a.nodeName+">")?g=a.cloneNode(!0):(bB.innerHTML=a.outerHTML,bB.removeChild(g=bB.firstChild));if((!p.support.noCloneEvent||!p.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!p.isXMLDoc(a)){bE(a,g),d=bF(a),e=bF(g);for(f=0;d[f];++f)e[f]&&bE(d[f],e[f])}if(b){bD(a,g);if(c){d=bF(a),e=bF(g);for(f=0;d[f];++f)bD(d[f],e[f])}}return d=e=null,g},clean:function(a,b,c,d){var f,g,h,i,j,k,l,m,n,o,q,r,s=0,t=[];if(!b||typeof b.createDocumentFragment=="undefined")b=e;for(g=b===e&&bA;(h=a[s])!=null;s++){typeof h=="number"&&(h+="");if(!h)continue;if(typeof h=="string")if(!br.test(h))h=b.createTextNode(h);else{g=g||bk(b),l=l||g.appendChild(b.createElement("div")),h=h.replace(bo,"<$1>"),i=(bp.exec(h)||["",""])[1].toLowerCase(),j=bz[i]||bz._default,k=j[0],l.innerHTML=j[1]+h+j[2];while(k--)l=l.lastChild;if(!p.support.tbody){m=bq.test(h),n=i==="table"&&!m?l.firstChild&&l.firstChild.childNodes:j[1]===""&&!m?l.childNodes:[];for(f=n.length-1;f>=0;--f)p.nodeName(n[f],"tbody")&&!n[f].childNodes.length&&n[f].parentNode.removeChild(n[f])}!p.support.leadingWhitespace&&bn.test(h)&&l.insertBefore(b.createTextNode(bn.exec(h)[0]),l.firstChild),h=l.childNodes,l=g.lastChild}h.nodeType?t.push(h):t=p.merge(t,h)}l&&(g.removeChild(l),h=l=g=null);if(!p.support.appendChecked)for(s=0;(h=t[s])!=null;s++)p.nodeName(h,"input")?bG(h):typeof h.getElementsByTagName!="undefined"&&p.grep(h.getElementsByTagName("input"),bG);if(c){q=function(a){if(!a.type||bx.test(a.type))return d?d.push(a.parentNode?a.parentNode.removeChild(a):a):c.appendChild(a)};for(s=0;(h=t[s])!=null;s++)if(!p.nodeName(h,"script")||!q(h))c.appendChild(h),typeof h.getElementsByTagName!="undefined"&&(r=p.grep(p.merge([],h.getElementsByTagName("script")),q),t.splice.apply(t,[s+1,0].concat(r)),s+=r.length)}return t},cleanData:function(a,b){var c,d,e,f,g=0,h=p.expando,i=p.cache,j=p.support.deleteExpando,k=p.event.special;for(;(e=a[g])!=null;g++)if(b||p.acceptData(e)){d=e[h],c=d&&i[d];if(c){if(c.events)for(f in c.events)k[f]?p.event.remove(e,f):p.removeEvent(e,f,c.handle);i[d]&&(delete i[d],j?delete e[h]:e.removeAttribute?e.removeAttribute(h):e[h]=null,p.deletedIds.push(d))}}}}),function(){var a,b;p.uaMatch=function(a){a=a.toLowerCase();var b=/(chrome)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||a.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},a=p.uaMatch(g.userAgent),b={},a.browser&&(b[a.browser]=!0,b.version=a.version),b.webkit&&(b.safari=!0),p.browser=b,p.sub=function(){function a(b,c){return new a.fn.init(b,c)}p.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function c(c,d){return d&&d instanceof p&&!(d instanceof a)&&(d=a(d)),p.fn.init.call(this,c,d,b)},a.fn.init.prototype=a.fn;var b=a(e);return a}}();var bH,bI,bJ,bK=/alpha\([^)]*\)/i,bL=/opacity=([^)]*)/,bM=/^(top|right|bottom|left)$/,bN=/^margin/,bO=new RegExp("^("+q+")(.*)$","i"),bP=new RegExp("^("+q+")(?!px)[a-z%]+$","i"),bQ=new RegExp("^([-+])=("+q+")","i"),bR={},bS={position:"absolute",visibility:"hidden",display:"block"},bT={letterSpacing:0,fontWeight:400,lineHeight:1},bU=["Top","Right","Bottom","Left"],bV=["Webkit","O","Moz","ms"],bW=p.fn.toggle;p.fn.extend({css:function(a,c){return p.access(this,function(a,c,d){return d!==b?p.style(a,c,d):p.css(a,c)},a,c,arguments.length>1)},show:function(){return bZ(this,!0)},hide:function(){return bZ(this)},toggle:function(a,b){var c=typeof a=="boolean";return p.isFunction(a)&&p.isFunction(b)?bW.apply(this,arguments):this.each(function(){(c?a:bY(this))?p(this).show():p(this).hide()})}}),p.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bH(a,"opacity");return c===""?"1":c}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":p.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!a||a.nodeType===3||a.nodeType===8||!a.style)return;var f,g,h,i=p.camelCase(c),j=a.style;c=p.cssProps[i]||(p.cssProps[i]=bX(j,i)),h=p.cssHooks[c]||p.cssHooks[i];if(d===b)return h&&"get"in h&&(f=h.get(a,!1,e))!==b?f:j[c];g=typeof d,g==="string"&&(f=bQ.exec(d))&&(d=(f[1]+1)*f[2]+parseFloat(p.css(a,c)),g="number");if(d==null||g==="number"&&isNaN(d))return;g==="number"&&!p.cssNumber[i]&&(d+="px");if(!h||!("set"in h)||(d=h.set(a,d,e))!==b)try{j[c]=d}catch(k){}},css:function(a,c,d,e){var f,g,h,i=p.camelCase(c);return c=p.cssProps[i]||(p.cssProps[i]=bX(a.style,i)),h=p.cssHooks[c]||p.cssHooks[i],h&&"get"in h&&(f=h.get(a,!0,e)),f===b&&(f=bH(a,c)),f==="normal"&&c in bT&&(f=bT[c]),d||e!==b?(g=parseFloat(f),d||p.isNumeric(g)?g||0:f):f},swap:function(a,b,c){var d,e,f={};for(e in b)f[e]=a.style[e],a.style[e]=b[e];d=c.call(a);for(e in b)a.style[e]=f[e];return d}}),a.getComputedStyle?bH=function(a,b){var c,d,e,f,g=getComputedStyle(a,null),h=a.style;return g&&(c=g[b],c===""&&!p.contains(a.ownerDocument.documentElement,a)&&(c=p.style(a,b)),bP.test(c)&&bN.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=c,c=g.width,h.width=d,h.minWidth=e,h.maxWidth=f)),c}:e.documentElement.currentStyle&&(bH=function(a,b){var c,d,e=a.currentStyle&&a.currentStyle[b],f=a.style;return e==null&&f&&f[b]&&(e=f[b]),bP.test(e)&&!bM.test(b)&&(c=f.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":e,e=f.pixelLeft+"px",f.left=c,d&&(a.runtimeStyle.left=d)),e===""?"auto":e}),p.each(["height","width"],function(a,b){p.cssHooks[b]={get:function(a,c,d){if(c)return a.offsetWidth!==0||bH(a,"display")!=="none"?ca(a,b,d):p.swap(a,bS,function(){return ca(a,b,d)})},set:function(a,c,d){return b$(a,c,d?b_(a,b,d,p.support.boxSizing&&p.css(a,"boxSizing")==="border-box"):0)}}}),p.support.opacity||(p.cssHooks.opacity={get:function(a,b){return bL.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=p.isNumeric(b)?"alpha(opacity="+b*100+")":"",f=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&p.trim(f.replace(bK,""))===""&&c.removeAttribute){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bK.test(f)?f.replace(bK,e):f+" "+e}}),p(function(){p.support.reliableMarginRight||(p.cssHooks.marginRight={get:function(a,b){return p.swap(a,{display:"inline-block"},function(){if(b)return bH(a,"marginRight")})}}),!p.support.pixelPosition&&p.fn.position&&p.each(["top","left"],function(a,b){p.cssHooks[b]={get:function(a,c){if(c){var d=bH(a,b);return bP.test(d)?p(a).position()[b]+"px":d}}}})}),p.expr&&p.expr.filters&&(p.expr.filters.hidden=function(a){return a.offsetWidth===0&&a.offsetHeight===0||!p.support.reliableHiddenOffsets&&(a.style&&a.style.display||bH(a,"display"))==="none"},p.expr.filters.visible=function(a){return!p.expr.filters.hidden(a)}),p.each({margin:"",padding:"",border:"Width"},function(a,b){p.cssHooks[a+b]={expand:function(c){var d,e=typeof c=="string"?c.split(" "):[c],f={};for(d=0;d<4;d++)f[a+bU[d]+b]=e[d]||e[d-2]||e[0];return f}},bN.test(a)||(p.cssHooks[a+b].set=b$)});var cc=/%20/g,cd=/\[\]$/,ce=/\r?\n/g,cf=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,cg=/^(?:select|textarea)/i;p.fn.extend({serialize:function(){return p.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?p.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||cg.test(this.nodeName)||cf.test(this.type))}).map(function(a,b){var c=p(this).val();return c==null?null:p.isArray(c)?p.map(c,function(a,c){return{name:b.name,value:a.replace(ce,"\r\n")}}):{name:b.name,value:c.replace(ce,"\r\n")}}).get()}}),p.param=function(a,c){var d,e=[],f=function(a,b){b=p.isFunction(b)?b():b==null?"":b,e[e.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=p.ajaxSettings&&p.ajaxSettings.traditional);if(p.isArray(a)||a.jquery&&!p.isPlainObject(a))p.each(a,function(){f(this.name,this.value)});else for(d in a)ch(d,a[d],c,f);return e.join("&").replace(cc,"+")};var ci,cj,ck=/#.*$/,cl=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,cm=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,cn=/^(?:GET|HEAD)$/,co=/^\/\//,cp=/\?/,cq=/)<[^<]*)*<\/script>/gi,cr=/([?&])_=[^&]*/,cs=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,ct=p.fn.load,cu={},cv={},cw=["*/"]+["*"];try{ci=f.href}catch(cx){ci=e.createElement("a"),ci.href="",ci=ci.href}cj=cs.exec(ci.toLowerCase())||[],p.fn.load=function(a,c,d){if(typeof a!="string"&&ct)return ct.apply(this,arguments);if(!this.length)return this;var e,f,g,h=this,i=a.indexOf(" ");return i>=0&&(e=a.slice(i,a.length),a=a.slice(0,i)),p.isFunction(c)?(d=c,c=b):typeof c=="object"&&(f="POST"),p.ajax({url:a,type:f,dataType:"html",data:c,complete:function(a,b){d&&h.each(d,g||[a.responseText,b,a])}}).done(function(a){g=arguments,h.html(e?p("
                                ").append(a.replace(cq,"")).find(e):a)}),this},p.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){p.fn[b]=function(a){return this.on(b,a)}}),p.each(["get","post"],function(a,c){p[c]=function(a,d,e,f){return p.isFunction(d)&&(f=f||e,e=d,d=b),p.ajax({type:c,url:a,data:d,success:e,dataType:f})}}),p.extend({getScript:function(a,c){return p.get(a,b,c,"script")},getJSON:function(a,b,c){return p.get(a,b,c,"json")},ajaxSetup:function(a,b){return b?cA(a,p.ajaxSettings):(b=a,a=p.ajaxSettings),cA(a,b),a},ajaxSettings:{url:ci,isLocal:cm.test(cj[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":cw},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":p.parseJSON,"text xml":p.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:cy(cu),ajaxTransport:cy(cv),ajax:function(a,c){function y(a,c,f,i){var k,s,t,u,w,y=c;if(v===2)return;v=2,h&&clearTimeout(h),g=b,e=i||"",x.readyState=a>0?4:0,f&&(u=cB(l,x,f));if(a>=200&&a<300||a===304)l.ifModified&&(w=x.getResponseHeader("Last-Modified"),w&&(p.lastModified[d]=w),w=x.getResponseHeader("Etag"),w&&(p.etag[d]=w)),a===304?(y="notmodified",k=!0):(k=cC(l,u),y=k.state,s=k.data,t=k.error,k=!t);else{t=y;if(!y||a)y="error",a<0&&(a=0)}x.status=a,x.statusText=""+(c||y),k?o.resolveWith(m,[s,y,x]):o.rejectWith(m,[x,y,t]),x.statusCode(r),r=b,j&&n.trigger("ajax"+(k?"Success":"Error"),[x,l,k?s:t]),q.fireWith(m,[x,y]),j&&(n.trigger("ajaxComplete",[x,l]),--p.active||p.event.trigger("ajaxStop"))}typeof a=="object"&&(c=a,a=b),c=c||{};var d,e,f,g,h,i,j,k,l=p.ajaxSetup({},c),m=l.context||l,n=m!==l&&(m.nodeType||m instanceof p)?p(m):p.event,o=p.Deferred(),q=p.Callbacks("once memory"),r=l.statusCode||{},t={},u={},v=0,w="canceled",x={readyState:0,setRequestHeader:function(a,b){if(!v){var c=a.toLowerCase();a=u[c]=u[c]||a,t[a]=b}return this},getAllResponseHeaders:function(){return v===2?e:null},getResponseHeader:function(a){var c;if(v===2){if(!f){f={};while(c=cl.exec(e))f[c[1].toLowerCase()]=c[2]}c=f[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){return v||(l.mimeType=a),this},abort:function(a){return a=a||w,g&&g.abort(a),y(0,a),this}};o.promise(x),x.success=x.done,x.error=x.fail,x.complete=q.add,x.statusCode=function(a){if(a){var b;if(v<2)for(b in a)r[b]=[r[b],a[b]];else b=a[x.status],x.always(b)}return this},l.url=((a||l.url)+"").replace(ck,"").replace(co,cj[1]+"//"),l.dataTypes=p.trim(l.dataType||"*").toLowerCase().split(s),l.crossDomain==null&&(i=cs.exec(l.url.toLowerCase()),l.crossDomain=!(!i||i[1]==cj[1]&&i[2]==cj[2]&&(i[3]||(i[1]==="http:"?80:443))==(cj[3]||(cj[1]==="http:"?80:443)))),l.data&&l.processData&&typeof l.data!="string"&&(l.data=p.param(l.data,l.traditional)),cz(cu,l,c,x);if(v===2)return x;j=l.global,l.type=l.type.toUpperCase(),l.hasContent=!cn.test(l.type),j&&p.active++===0&&p.event.trigger("ajaxStart");if(!l.hasContent){l.data&&(l.url+=(cp.test(l.url)?"&":"?")+l.data,delete l.data),d=l.url;if(l.cache===!1){var z=p.now(),A=l.url.replace(cr,"$1_="+z);l.url=A+(A===l.url?(cp.test(l.url)?"&":"?")+"_="+z:"")}}(l.data&&l.hasContent&&l.contentType!==!1||c.contentType)&&x.setRequestHeader("Content-Type",l.contentType),l.ifModified&&(d=d||l.url,p.lastModified[d]&&x.setRequestHeader("If-Modified-Since",p.lastModified[d]),p.etag[d]&&x.setRequestHeader("If-None-Match",p.etag[d])),x.setRequestHeader("Accept",l.dataTypes[0]&&l.accepts[l.dataTypes[0]]?l.accepts[l.dataTypes[0]]+(l.dataTypes[0]!=="*"?", "+cw+"; q=0.01":""):l.accepts["*"]);for(k in l.headers)x.setRequestHeader(k,l.headers[k]);if(!l.beforeSend||l.beforeSend.call(m,x,l)!==!1&&v!==2){w="abort";for(k in{success:1,error:1,complete:1})x[k](l[k]);g=cz(cv,l,c,x);if(!g)y(-1,"No Transport");else{x.readyState=1,j&&n.trigger("ajaxSend",[x,l]),l.async&&l.timeout>0&&(h=setTimeout(function(){x.abort("timeout")},l.timeout));try{v=1,g.send(t,y)}catch(B){if(v<2)y(-1,B);else throw B}}return x}return x.abort()},active:0,lastModified:{},etag:{}});var cD=[],cE=/\?/,cF=/(=)\?(?=&|$)|\?\?/,cG=p.now();p.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=cD.pop()||p.expando+"_"+cG++;return this[a]=!0,a}}),p.ajaxPrefilter("json jsonp",function(c,d,e){var f,g,h,i=c.data,j=c.url,k=c.jsonp!==!1,l=k&&cF.test(j),m=k&&!l&&typeof i=="string"&&!(c.contentType||"").indexOf("application/x-www-form-urlencoded")&&cF.test(i);if(c.dataTypes[0]==="jsonp"||l||m)return f=c.jsonpCallback=p.isFunction(c.jsonpCallback)?c.jsonpCallback():c.jsonpCallback,g=a[f],l?c.url=j.replace(cF,"$1"+f):m?c.data=i.replace(cF,"$1"+f):k&&(c.url+=(cE.test(j)?"&":"?")+c.jsonp+"="+f),c.converters["script json"]=function(){return h||p.error(f+" was not called"),h[0]},c.dataTypes[0]="json",a[f]=function(){h=arguments},e.always(function(){a[f]=g,c[f]&&(c.jsonpCallback=d.jsonpCallback,cD.push(f)),h&&p.isFunction(g)&&g(h[0]),h=g=b}),"script"}),p.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){return p.globalEval(a),a}}}),p.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),p.ajaxTransport("script",function(a){if(a.crossDomain){var c,d=e.head||e.getElementsByTagName("head")[0]||e.documentElement;return{send:function(f,g){c=e.createElement("script"),c.async="async",a.scriptCharset&&(c.charset=a.scriptCharset),c.src=a.url,c.onload=c.onreadystatechange=function(a,e){if(e||!c.readyState||/loaded|complete/.test(c.readyState))c.onload=c.onreadystatechange=null,d&&c.parentNode&&d.removeChild(c),c=b,e||g(200,"success")},d.insertBefore(c,d.firstChild)},abort:function(){c&&c.onload(0,1)}}}});var cH,cI=a.ActiveXObject?function(){for(var a in cH)cH[a](0,1)}:!1,cJ=0;p.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&cK()||cL()}:cK,function(a){p.extend(p.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(p.ajaxSettings.xhr()),p.support.ajax&&p.ajaxTransport(function(c){if(!c.crossDomain||p.support.cors){var d;return{send:function(e,f){var g,h,i=c.xhr();c.username?i.open(c.type,c.url,c.async,c.username,c.password):i.open(c.type,c.url,c.async);if(c.xhrFields)for(h in c.xhrFields)i[h]=c.xhrFields[h];c.mimeType&&i.overrideMimeType&&i.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(h in e)i.setRequestHeader(h,e[h])}catch(j){}i.send(c.hasContent&&c.data||null),d=function(a,e){var h,j,k,l,m;try{if(d&&(e||i.readyState===4)){d=b,g&&(i.onreadystatechange=p.noop,cI&&delete cH[g]);if(e)i.readyState!==4&&i.abort();else{h=i.status,k=i.getAllResponseHeaders(),l={},m=i.responseXML,m&&m.documentElement&&(l.xml=m);try{l.text=i.responseText}catch(a){}try{j=i.statusText}catch(n){j=""}!h&&c.isLocal&&!c.crossDomain?h=l.text?200:404:h===1223&&(h=204)}}}catch(o){e||f(-1,o)}l&&f(h,j,l,k)},c.async?i.readyState===4?setTimeout(d,0):(g=++cJ,cI&&(cH||(cH={},p(a).unload(cI)),cH[g]=d),i.onreadystatechange=d):d()},abort:function(){d&&d(0,1)}}}});var cM,cN,cO=/^(?:toggle|show|hide)$/,cP=new RegExp("^(?:([-+])=|)("+q+")([a-z%]*)$","i"),cQ=/queueHooks$/,cR=[cX],cS={"*":[function(a,b){var c,d,e,f=this.createTween(a,b),g=cP.exec(b),h=f.cur(),i=+h||0,j=1;if(g){c=+g[2],d=g[3]||(p.cssNumber[a]?"":"px");if(d!=="px"&&i){i=p.css(f.elem,a,!0)||c||1;do e=j=j||".5",i=i/j,p.style(f.elem,a,i+d),j=f.cur()/h;while(j!==1&&j!==e)}f.unit=d,f.start=i,f.end=g[1]?i+(g[1]+1)*c:c}return f}]};p.Animation=p.extend(cV,{tweener:function(a,b){p.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");var c,d=0,e=a.length;for(;d-1,j={},k={},l,m;i?(k=e.position(),l=k.top,m=k.left):(l=parseFloat(g)||0,m=parseFloat(h)||0),p.isFunction(b)&&(b=b.call(a,c,f)),b.top!=null&&(j.top=b.top-f.top+l),b.left!=null&&(j.left=b.left-f.left+m),"using"in b?b.using.call(a,j):e.css(j)}},p.fn.extend({position:function(){if(!this[0])return;var a=this[0],b=this.offsetParent(),c=this.offset(),d=c$.test(b[0].nodeName)?{top:0,left:0}:b.offset();return c.top-=parseFloat(p.css(a,"marginTop"))||0,c.left-=parseFloat(p.css(a,"marginLeft"))||0,d.top+=parseFloat(p.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(p.css(b[0],"borderLeftWidth"))||0,{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||e.body;while(a&&!c$.test(a.nodeName)&&p.css(a,"position")==="static")a=a.offsetParent;return a||e.body})}}),p.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,c){var d=/Y/.test(c);p.fn[a]=function(e){return p.access(this,function(a,e,f){var g=c_(a);if(f===b)return g?c in g?g[c]:g.document.documentElement[e]:a[e];g?g.scrollTo(d?p(g).scrollLeft():f,d?f:p(g).scrollTop()):a[e]=f},a,e,arguments.length,null)}}),p.each({Height:"height",Width:"width"},function(a,c){p.each({padding:"inner"+a,content:c,"":"outer"+a},function(d,e){p.fn[e]=function(e,f){var g=arguments.length&&(d||typeof e!="boolean"),h=d||(e===!0||f===!0?"margin":"border");return p.access(this,function(c,d,e){var f;return p.isWindow(c)?c.document.documentElement["client"+a]:c.nodeType===9?(f=c.documentElement,Math.max(c.body["scroll"+a],f["scroll"+a],c.body["offset"+a],f["offset"+a],f["client"+a])):e===b?p.css(c,d,e,h):p.style(c,d,e,h)},c,g?e:b,g)}})}),a.jQuery=a.$=p,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return p})})(window); \ No newline at end of file diff --git a/src/main/webapp/js/json2.js b/src/main/webapp/js/json2.js new file mode 100644 index 00000000..f0891924 --- /dev/null +++ b/src/main/webapp/js/json2.js @@ -0,0 +1,486 @@ +/* + json2.js + 2012-10-08 + + Public Domain. + + NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK. + + See http://www.JSON.org/js.html + + + This code should be minified before deployment. + See http://javascript.crockford.com/jsmin.html + + USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD CODE FROM SERVERS YOU DO + NOT CONTROL. + + + This file creates a global JSON object containing two methods: stringify + and parse. + + JSON.stringify(value, replacer, space) + value any JavaScript value, usually an object or array. + + replacer an optional parameter that determines how object + values are stringified for objects. It can be a + function or an array of strings. + + space an optional parameter that specifies the indentation + of nested structures. If it is omitted, the text will + be packed without extra whitespace. If it is a number, + it will specify the number of spaces to indent at each + level. If it is a string (such as '\t' or ' '), + it contains the characters used to indent at each level. + + This method produces a JSON text from a JavaScript value. + + When an object value is found, if the object contains a toJSON + method, its toJSON method will be called and the result will be + stringified. A toJSON method does not serialize: it returns the + value represented by the name/value pair that should be serialized, + or undefined if nothing should be serialized. The toJSON method + will be passed the key associated with the value, and this will be + bound to the value + + For example, this would serialize Dates as ISO strings. + + Date.prototype.toJSON = function (key) { + function f(n) { + // Format integers to have at least two digits. + return n < 10 ? '0' + n : n; + } + + return this.getUTCFullYear() + '-' + + f(this.getUTCMonth() + 1) + '-' + + f(this.getUTCDate()) + 'T' + + f(this.getUTCHours()) + ':' + + f(this.getUTCMinutes()) + ':' + + f(this.getUTCSeconds()) + 'Z'; + }; + + You can provide an optional replacer method. It will be passed the + key and value of each member, with this bound to the containing + object. The value that is returned from your method will be + serialized. If your method returns undefined, then the member will + be excluded from the serialization. + + If the replacer parameter is an array of strings, then it will be + used to select the members to be serialized. It filters the results + such that only members with keys listed in the replacer array are + stringified. + + Values that do not have JSON representations, such as undefined or + functions, will not be serialized. Such values in objects will be + dropped; in arrays they will be replaced with null. You can use + a replacer function to replace those with JSON values. + JSON.stringify(undefined) returns undefined. + + The optional space parameter produces a stringification of the + value that is filled with line breaks and indentation to make it + easier to read. + + If the space parameter is a non-empty string, then that string will + be used for indentation. If the space parameter is a number, then + the indentation will be that many spaces. + + Example: + + text = JSON.stringify(['e', {pluribus: 'unum'}]); + // text is '["e",{"pluribus":"unum"}]' + + + text = JSON.stringify(['e', {pluribus: 'unum'}], null, '\t'); + // text is '[\n\t"e",\n\t{\n\t\t"pluribus": "unum"\n\t}\n]' + + text = JSON.stringify([new Date()], function (key, value) { + return this[key] instanceof Date ? + 'Date(' + this[key] + ')' : value; + }); + // text is '["Date(---current time---)"]' + + + JSON.parse(text, reviver) + This method parses a JSON text to produce an object or array. + It can throw a SyntaxError exception. + + The optional reviver parameter is a function that can filter and + transform the results. It receives each of the keys and values, + and its return value is used instead of the original value. + If it returns what it received, then the structure is not modified. + If it returns undefined then the member is deleted. + + Example: + + // Parse the text. Values that look like ISO date strings will + // be converted to Date objects. + + myData = JSON.parse(text, function (key, value) { + var a; + if (typeof value === 'string') { + a = +/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/.exec(value); + if (a) { + return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4], + +a[5], +a[6])); + } + } + return value; + }); + + myData = JSON.parse('["Date(09/09/2001)"]', function (key, value) { + var d; + if (typeof value === 'string' && + value.slice(0, 5) === 'Date(' && + value.slice(-1) === ')') { + d = new Date(value.slice(5, -1)); + if (d) { + return d; + } + } + return value; + }); + + + This is a reference implementation. You are free to copy, modify, or + redistribute. +*/ + +/*jslint evil: true, regexp: true */ + +/*members "", "\b", "\t", "\n", "\f", "\r", "\"", JSON, "\\", apply, + call, charCodeAt, getUTCDate, getUTCFullYear, getUTCHours, + getUTCMinutes, getUTCMonth, getUTCSeconds, hasOwnProperty, join, + lastIndex, length, parse, prototype, push, replace, slice, stringify, + test, toJSON, toString, valueOf +*/ + + +// Create a JSON object only if one does not already exist. We create the +// methods in a closure to avoid creating global variables. + +if (typeof JSON !== 'object') { + JSON = {}; +} + +(function () { + 'use strict'; + + function f(n) { + // Format integers to have at least two digits. + return n < 10 ? '0' + n : n; + } + + if (typeof Date.prototype.toJSON !== 'function') { + + Date.prototype.toJSON = function (key) { + + return isFinite(this.valueOf()) + ? this.getUTCFullYear() + '-' + + f(this.getUTCMonth() + 1) + '-' + + f(this.getUTCDate()) + 'T' + + f(this.getUTCHours()) + ':' + + f(this.getUTCMinutes()) + ':' + + f(this.getUTCSeconds()) + 'Z' + : null; + }; + + String.prototype.toJSON = + Number.prototype.toJSON = + Boolean.prototype.toJSON = function (key) { + return this.valueOf(); + }; + } + + var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, + escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, + gap, + indent, + meta = { // table of character substitutions + '\b': '\\b', + '\t': '\\t', + '\n': '\\n', + '\f': '\\f', + '\r': '\\r', + '"' : '\\"', + '\\': '\\\\' + }, + rep; + + + function quote(string) { + +// If the string contains no control characters, no quote characters, and no +// backslash characters, then we can safely slap some quotes around it. +// Otherwise we must also replace the offending characters with safe escape +// sequences. + + escapable.lastIndex = 0; + return escapable.test(string) ? '"' + string.replace(escapable, function (a) { + var c = meta[a]; + return typeof c === 'string' + ? c + : '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); + }) + '"' : '"' + string + '"'; + } + + + function str(key, holder) { + +// Produce a string from holder[key]. + + var i, // The loop counter. + k, // The member key. + v, // The member value. + length, + mind = gap, + partial, + value = holder[key]; + +// If the value has a toJSON method, call it to obtain a replacement value. + + if (value && typeof value === 'object' && + typeof value.toJSON === 'function') { + value = value.toJSON(key); + } + +// If we were called with a replacer function, then call the replacer to +// obtain a replacement value. + + if (typeof rep === 'function') { + value = rep.call(holder, key, value); + } + +// What happens next depends on the value's type. + + switch (typeof value) { + case 'string': + return quote(value); + + case 'number': + +// JSON numbers must be finite. Encode non-finite numbers as null. + + return isFinite(value) ? String(value) : 'null'; + + case 'boolean': + case 'null': + +// If the value is a boolean or null, convert it to a string. Note: +// typeof null does not produce 'null'. The case is included here in +// the remote chance that this gets fixed someday. + + return String(value); + +// If the type is 'object', we might be dealing with an object or an array or +// null. + + case 'object': + +// Due to a specification blunder in ECMAScript, typeof null is 'object', +// so watch out for that case. + + if (!value) { + return 'null'; + } + +// Make an array to hold the partial results of stringifying this object value. + + gap += indent; + partial = []; + +// Is the value an array? + + if (Object.prototype.toString.apply(value) === '[object Array]') { + +// The value is an array. Stringify every element. Use null as a placeholder +// for non-JSON values. + + length = value.length; + for (i = 0; i < length; i += 1) { + partial[i] = str(i, value) || 'null'; + } + +// Join all of the elements together, separated with commas, and wrap them in +// brackets. + + v = partial.length === 0 + ? '[]' + : gap + ? '[\n' + gap + partial.join(',\n' + gap) + '\n' + mind + ']' + : '[' + partial.join(',') + ']'; + gap = mind; + return v; + } + +// If the replacer is an array, use it to select the members to be stringified. + + if (rep && typeof rep === 'object') { + length = rep.length; + for (i = 0; i < length; i += 1) { + if (typeof rep[i] === 'string') { + k = rep[i]; + v = str(k, value); + if (v) { + partial.push(quote(k) + (gap ? ': ' : ':') + v); + } + } + } + } else { + +// Otherwise, iterate through all of the keys in the object. + + for (k in value) { + if (Object.prototype.hasOwnProperty.call(value, k)) { + v = str(k, value); + if (v) { + partial.push(quote(k) + (gap ? ': ' : ':') + v); + } + } + } + } + +// Join all of the member texts together, separated with commas, +// and wrap them in braces. + + v = partial.length === 0 + ? '{}' + : gap + ? '{\n' + gap + partial.join(',\n' + gap) + '\n' + mind + '}' + : '{' + partial.join(',') + '}'; + gap = mind; + return v; + } + } + +// If the JSON object does not yet have a stringify method, give it one. + + if (typeof JSON.stringify !== 'function') { + JSON.stringify = function (value, replacer, space) { + +// The stringify method takes a value and an optional replacer, and an optional +// space parameter, and returns a JSON text. The replacer can be a function +// that can replace values, or an array of strings that will select the keys. +// A default replacer method can be provided. Use of the space parameter can +// produce text that is more easily readable. + + var i; + gap = ''; + indent = ''; + +// If the space parameter is a number, make an indent string containing that +// many spaces. + + if (typeof space === 'number') { + for (i = 0; i < space; i += 1) { + indent += ' '; + } + +// If the space parameter is a string, it will be used as the indent string. + + } else if (typeof space === 'string') { + indent = space; + } + +// If there is a replacer, it must be a function or an array. +// Otherwise, throw an error. + + rep = replacer; + if (replacer && typeof replacer !== 'function' && + (typeof replacer !== 'object' || + typeof replacer.length !== 'number')) { + throw new Error('JSON.stringify'); + } + +// Make a fake root object containing our value under the key of ''. +// Return the result of stringifying the value. + + return str('', {'': value}); + }; + } + + +// If the JSON object does not yet have a parse method, give it one. + + if (typeof JSON.parse !== 'function') { + JSON.parse = function (text, reviver) { + +// The parse method takes a text and an optional reviver function, and returns +// a JavaScript value if the text is a valid JSON text. + + var j; + + function walk(holder, key) { + +// The walk method is used to recursively walk the resulting structure so +// that modifications can be made. + + var k, v, value = holder[key]; + if (value && typeof value === 'object') { + for (k in value) { + if (Object.prototype.hasOwnProperty.call(value, k)) { + v = walk(value, k); + if (v !== undefined) { + value[k] = v; + } else { + delete value[k]; + } + } + } + } + return reviver.call(holder, key, value); + } + + +// Parsing happens in four stages. In the first stage, we replace certain +// Unicode characters with escape sequences. JavaScript handles many characters +// incorrectly, either silently deleting them, or treating them as line endings. + + text = String(text); + cx.lastIndex = 0; + if (cx.test(text)) { + text = text.replace(cx, function (a) { + return '\\u' + + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); + }); + } + +// In the second stage, we run the text against regular expressions that look +// for non-JSON patterns. We are especially concerned with '()' and 'new' +// because they can cause invocation, and '=' because it can cause mutation. +// But just to be safe, we want to reject all unexpected forms. + +// We split the second stage into 4 regexp operations in order to work around +// crippling inefficiencies in IE's and Safari's regexp engines. First we +// replace the JSON backslash pairs with '@' (a non-JSON character). Second, we +// replace all simple value tokens with ']' characters. Third, we delete all +// open brackets that follow a colon or comma or that begin the text. Finally, +// we look to see that the remaining characters are only whitespace or ']' or +// ',' or ':' or '{' or '}'. If that is so, then the text is safe for eval. + + if (/^[\],:{}\s]*$/ + .test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@') + .replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']') + .replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) { + +// In the third stage we use the eval function to compile the text into a +// JavaScript structure. The '{' operator is subject to a syntactic ambiguity +// in JavaScript: it can begin a block or an object literal. We wrap the text +// in parens to eliminate the ambiguity. + + j = eval('(' + text + ')'); + +// In the optional fourth stage, we recursively walk the new structure, passing +// each name/value pair to a reviver function for possible transformation. + + return typeof reviver === 'function' + ? walk({'': j}, '') + : j; + } + +// If the text is not JSON parseable, then a SyntaxError is thrown. + + throw new SyntaxError('JSON.parse'); + }; + } +}()); \ No newline at end of file diff --git a/src/main/webapp/js/pages/financial/financial_base.js b/src/main/webapp/js/pages/financial/financial_base.js new file mode 100644 index 00000000..54d87576 --- /dev/null +++ b/src/main/webapp/js/pages/financial/financial_base.js @@ -0,0 +1,924 @@ + //初始化界面 + $(function(){ + var accountList = null; + var accountID = null; + var supplierList = null; + var supplierID = null; + var personList = null; + var personID = null; + var ProjectSearch = null; + var accountHeadMaxId = null; //获取最大的Id + var accepId = null; //保存的主表id + var url; + var accountHeadID = 0; + var orgAccountHead = ""; //保存编辑前的名称 + var editIndex = undefined; + var listTitle = ""; //单据标题 + var payTypeTitle = "";//收入 支出 + var organUrl = ""; //组织数据接口地址 + var itemType = true; //隐藏当前列 + var moneyType = true; //隐藏当前列 + var inOrOut = ""; //链接类型为收入或者支出 + getType(); + initSystemData_person(); //经手人数据 + initSelectInfo_person(); //经手人信息 + initSystemData_account(); //账户数据 + initSelectInfo_account(); //账户信息 + initSupplier(); //供应商 + initTableData(); + ininPager(); + initForm(); + bindEvent();//绑定操作事件 + $("#searchBtn").click(); + }); + //根据单据名称获取类型 + function getType(){ + listTitle = $("#tablePanel").prev().text(); + var supUrl = path + "/supplier/findBySelect_sup.action"; //供应商接口 + var cusUrl = path + "/supplier/findBySelect_cus.action"; //客户接口 + if(listTitle === "收入单列表"){ + listType = "收入"; + itemType = false; //显示当前列 + moneyType = true; //隐藏当前列 + payTypeTitle = "收入项目"; + inOrOut = "in"; + organUrl = supUrl; + } + else if(listTitle === "支出单列表"){ + listType = "支出"; + itemType = false; //显示当前列 + moneyType = true; //隐藏当前列 + payTypeTitle = "支出项目"; + inOrOut = "out"; + organUrl = cusUrl; + } + else if(listTitle === "收款单列表"){ + listType = "收款"; + itemType = true; //隐藏当前列 + moneyType = false; //显示当前列 + payTypeTitle = "无标题"; + inOrOut = ""; + organUrl = supUrl; + } + else if(listTitle === "付款单列表"){ + listType = "付款"; + itemType = true; //隐藏当前列 + moneyType = false; //显示当前列 + payTypeTitle = "无标题"; + inOrOut = ""; + organUrl = cusUrl; + } + else if(listTitle === "转账单列表"){ + listType = "转账"; + itemType = true; //隐藏当前列 + moneyType = false; //显示当前列 + payTypeTitle = "无标题"; + inOrOut = ""; + organUrl = supUrl; + } + } + //获取账户信息 + function initSystemData_account(){ + $.ajax({ + type:"post", + url: path + "/account/getAccount.action", + //设置为同步 + async:false, + dataType: "json", + success: function (systemInfo) + { + accountList = systemInfo.showModel.map.accountList; + var msgTip = systemInfo.showModel.msgTip; + if(msgTip == "exceptoin") + { + $.messager.alert('提示','查找账户信息异常,请与管理员联系!','error'); + return; + } + } + }); + } + //获取账户信息 + function initSelectInfo_account(){ + var options = ""; + if(accountList !=null) + { + options = ""; + for(var i = 0 ;i < accountList.length; i++) + { + var account = accountList[i]; + options += ''; + } + $("#AccountId").empty().append(options); + } + } + + //初始化单位信息 + function initSupplier(){ + $('#OrganId').combobox({ + url: organUrl, + valueField:'id', + textField:'supplier' + }); + } + + //获取财务员 + function initSystemData_person(){ + var type = "财务员"; + $.ajax({ + type:"post", + url: path + "/person/getPersonByType.action", + data: { + Type: type + }, + //设置为同步 + async:false, + dataType: "json", + success: function (systemInfo) + { + personList = systemInfo.showModel.map.personList; + var msgTip = systemInfo.showModel.msgTip; + if(msgTip == "exceptoin") + { + $.messager.alert('提示','查找系统基础信息异常,请与管理员联系!','error'); + return; + } + } + }); + } + //获取财务员 + function initSelectInfo_person(){ + var options = ""; + + if(personList !=null) + { + for(var i = 0 ;i < personList.length;i++) + { + var person = personList[i]; + if(0 == i) + { + personID = person.id; + } + if(person.type=="财务员") + { + options += ''; + } + } + $("#HandsPersonId").empty().append(options); + } + } + + //防止表单提交重复 + function initForm(){ + $('#accountHeadFM').form({ + onSubmit: function(){ + return false; + } + }); + } + + //初始化表格数据 + function initTableData(){ + $('#tableData').datagrid({ + //width:700, + height:heightInfo, + rownumbers: false, + //动画效果 + animate:false, + //选中单行 + singleSelect : true, + collapsible:false, + selectOnCheck:false, + //fitColumns:true, + //单击行是否选中 + //checkOnSelect : false, + pagination: true, + //交替出现背景 + striped : true, + //loadFilter: pagerFilter, + pageSize: 5, + pageList: initPageNum, + columns:[[ + { field: 'Id',width:35,align:"center",checkbox:true}, + { title: '单据编号',field: 'BillNo',width:100}, + { title: '单据时间 ',field: 'BillTime',width:100}, + { title: '合计',field: 'TotalPrice',width:80}, + { title: '备注',field: 'Remark',width:100}, + { title: '操作',field: 'op',align:"center",width:180,formatter:function(value,rec) + { + var str = ''; + var rowInfo = rec.Id + 'AaBb' + rec.BillNo+ 'AaBb' + rec.BillTime+ 'AaBb' + rec.Remark + + 'AaBb' + rec.AccountId+ 'AaBb' + rec.AccountName + 'AaBb' + rec.OrganId + 'AaBb' + rec.OrganName + + 'AaBb' + rec.HandsPersonId + 'AaBb' + rec.HandsPersonName + 'AaBb' + rec.ChangeAmount + 'AaBb' + rec.TotalPrice; + if(1 == value) + { + str += ' 查看  '; + str += ' 编辑  '; + str += ' 删除'; + } + return str; + } + } + ]], + toolbar:[ + { + id:'addAccountHead', + text:'增加', + iconCls:'icon-add', + handler:function() + { + addAccountHead(); + } + }, + { + id:'deleteAccountHead', + text:'删除', + iconCls:'icon-remove', + handler:function() + { + batDeleteAccountHead(); + } + } + ], + onLoadError:function() + { + $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); + return; + } + }); + } + + //初始化表格数据-明细列表-编辑状态 + function initTableData_account(type,TotalPrice){ + $('#accountData').datagrid({ + height:300, + rownumbers: false, + //动画效果 + animate:false, + //选中单行 + singleSelect : true, + collapsible:false, + selectOnCheck:false, + //fitColumns:true, + //单击行是否选中 + //checkOnSelect : false, + pagination: true, + //交替出现背景 + striped : true, + showFooter: true, + //loadFilter: pagerFilter, + onClickRow: onClickRow, + pageSize: 50, + pageList: [50,100,150], + columns:[[ + { field: 'Id',width:35,align:"center",checkbox:true}, + { title: payTypeTitle,field: 'InOutItemId',width:230,hidden:itemType, + formatter:function(value,row,index){ + return row.InOutItemName; + }, + editor:{ + type:'combobox', + options:{ + valueField:'Id', + textField:'InOutItemName', + method:'get', + url: path + "/inOutItem/findBySelect.action?type=" + inOrOut + } + } + }, + { title: '账户名称',field: 'AccountId',width:230,hidden:moneyType, + formatter:function(value,row,index){ + return row.AccountName; + }, + editor:{ + type:'combobox', + options:{ + valueField:'Id', + textField:'AccountName', + method:'get', + url: path + "/account/findBySelect.action" + } + } + }, + { title: '金额',field: 'EachAmount',editor:'validatebox',width:50}, + { title: '备注',field: 'Remark',editor:'validatebox',width:150} + ]], + toolbar:[ + { + id:'append', + text:'新增', + iconCls:'icon-add', + handler:function() + { + append(); //新增 + } + }, + { + id:'delete', + text:'删除', + iconCls:'icon-remove', + handler:function() + { + removeit(); //删除 + } + }, + { + id:'reject', + text:'撤销', + iconCls:'icon-undo', + handler:function() + { + reject(); //撤销 + } + } + ], + onLoadError:function() + { + $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); + return; + } + }); + $.ajax({ + type:"post", + url: path + '/accountItem/findBy.action?HeaderId=' + accountHeadID, + dataType: "json", + success: function (res) { + var EachAmount = 0; + if(type === "edit") { + EachAmount = TotalPrice; + } + var array = []; + array.push({ + "EachAmount": EachAmount + }); + res.footer = array; + $("#accountData").datagrid('loadData',res); + }, + error:function() { + $.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error'); + } + }); + } + + + //初始化表格数据-明细列表-查看状态 + function initTableData_account_show(TotalPrice){ + $('#accountDataShow').datagrid({ + height:300, + rownumbers: true, + //动画效果 + animate:false, + //选中单行 + singleSelect : true, + collapsible:false, + selectOnCheck:false, + //fitColumns:true, + //单击行是否选中 + //checkOnSelect : false, + pagination: true, + //交替出现背景 + striped : true, + showFooter: true, + //loadFilter: pagerFilter, + onClickRow: onClickRow, + pageSize: 50, + pageList: [50,100,150], + columns:[[ + { title: payTypeTitle, field: 'InOutItemName', width:230, hidden:itemType}, + { title: '账户名称', field: 'AccountName', width:230, hidden:moneyType}, + { title: '金额',field: 'EachAmount',width:50}, + { title: '备注',field: 'Remark',width:150} + ]], + onLoadError:function() + { + $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); + return; + } + }); + $.ajax({ + type:"post", + url: path + '/accountItem/findBy.action?HeaderId=' + accountHeadID, + dataType: "json", + success: function (res) { + var EachAmount = TotalPrice; + var array = []; + array.push({ + "EachAmount": EachAmount + }); + res.footer = array; + $("#accountDataShow").datagrid('loadData',res); + }, + error:function() { + $.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error'); + } + }); + } + + + //分页信息处理 + function ininPager(){ + try + { + var opts = $("#tableData").datagrid('options'); + var pager = $("#tableData").datagrid('getPager'); + pager.pagination({ + onSelectPage:function(pageNum, pageSize) + { + opts.pageNumber = pageNum; + opts.pageSize = pageSize; + pager.pagination('refresh', + { + pageNumber:pageNum, + pageSize:pageSize + }); + showAccountHeadDetails(pageNum,pageSize); + } + }); + } + catch (e) + { + $.messager.alert('异常处理提示',"分页信息异常 : " + e.name + ": " + e.message,'error'); + } + } + + //删除财务信息 + function deleteAccountHead(accountHeadID){ + $.messager.confirm('删除确认','确定要删除此财务信息吗?',function(r) + { + if (r) + { + $.ajax({ + type:"post", + url: path + "/accountHead/delete.action", + dataType: "json", + data: ({ + accountHeadID : accountHeadID, + clientIp: clientIp + }), + success: function (tipInfo) + { + var msg = tipInfo.showModel.msgTip; + if(msg == '成功') + { + //加载完以后重新初始化 + $("#searchBtn").click(); + } + else + $.messager.alert('删除提示','删除财务信息失败,请稍后再试!','error'); + }, + //此处添加错误处理 + error:function() + { + $.messager.alert('删除提示','删除财务信息异常,请稍后再试!','error'); + return; + } + }); + } + }); + } + + //批量删除财务信息 + function batDeleteAccountHead(){ + var row = $('#tableData').datagrid('getChecked'); + if(row.length == 0) + { + $.messager.alert('删除提示','没有记录被选中!','info'); + return; + } + if(row.length > 0) + { + $.messager.confirm('删除确认','确定要删除选中的' + row.length + '条财务信息吗?',function(r) + { + if (r) + { + var ids = ""; + for(var i = 0;i < row.length; i ++) + { + if(i == row.length-1) + { + ids += row[i].Id; + break; + } + //alert(row[i].id); + ids += row[i].Id + ","; + } + $.ajax({ + type:"post", + url: path + "/accountHead/batchDelete.action", + dataType: "json", + async : false, + data: ({ + accountHeadIDs : ids, + clientIp: clientIp + }), + success: function (tipInfo) + { + var msg = tipInfo.showModel.msgTip; + if(msg == '成功') + { + //加载完以后重新初始化 + $("#searchBtn").click(); + $(":checkbox").attr("checked",false); + } + else + $.messager.alert('删除提示','删除财务信息失败,请稍后再试!','error'); + }, + //此处添加错误处理 + error:function() + { + $.messager.alert('删除提示','删除财务信息异常,请稍后再试!','error'); + return; + } + }); + } + }); + } + } + + //增加 + function addAccountHead(){ + $("#clientIp").val(clientIp); + $('#accountHeadFM').form('clear'); + var addTitle = listTitle.replace("列表","信息"); + $('#accountHeadDlg').dialog('open').dialog('setTitle',' 增加' + addTitle); + $(".window-mask").css({ width: webW ,height: webH}); + $("#BillNo").val("").focus(); + + orgAccountHead = ""; + accountHeadID = 0; + initTableData_account("add"); //明细列表 + reject(); //撤销下、刷新材料列表 + url = path + '/accountHead/create.action'; + } + + //编辑信息 + function editAccountHead(accountHeadTotalInfo){ + var accountHeadInfo = accountHeadTotalInfo.split("AaBb"); + $("#clientIp").val(clientIp); + $("#BillNo").val(accountHeadInfo[1]); + $("#BillTime").val(accountHeadInfo[2]); + $("#Remark").val(accountHeadInfo[3]); + $("#AccountId").val(accountHeadInfo[4]); + $('#OrganId').combobox('setValue', accountHeadInfo[6]); + $("#HandsPersonId").val(accountHeadInfo[8]); + $("#ChangeAmount").val(accountHeadInfo[10]); + var TotalPrice = accountHeadInfo[11]; + var editTitle = listTitle.replace("列表","信息"); + $('#accountHeadDlg').dialog('open').dialog('setTitle',' 编辑' + editTitle); + $(".window-mask").css({ width: webW ,height: webH}); + accountHeadID = accountHeadInfo[0]; + + initTableData_account("edit",TotalPrice); //明细列表 + reject(); //撤销下、刷新列表 + url = path + '/accountHead/update.action?accountHeadID=' + accountHeadInfo[0]; + } + + //查看信息 + function showAccountHead(accountHeadTotalInfo){ + var accountHeadInfo = accountHeadTotalInfo.split("AaBb"); + $("#BillNoShow").text(accountHeadInfo[1]); + $("#BillTimeShow").text(accountHeadInfo[2]); + $("#RemarkShow").text(accountHeadInfo[3]); + $("#AccountIdShow").text(accountHeadInfo[5]); + $('#OrganIdShow').text(accountHeadInfo[7]); + $("#HandsPersonIdShow").text(accountHeadInfo[9]); + $("#ChangeAmountShow").text(accountHeadInfo[10]); + var TotalPrice = accountHeadInfo[11]; + var showTitle = listTitle.replace("列表","信息"); + $('#accountHeadDlgShow').dialog('open').dialog('setTitle',' 查看' + showTitle); + $(".window-mask").css({ width: webW ,height: webH}); + + accountHeadID = accountHeadInfo[0]; + initTableData_account_show(TotalPrice); //明细列表-查看状态 + } + + //绑定操作事件 + function bindEvent(){ + //搜索处理 + $("#searchBtn").unbind().bind({ + click:function() + { + showAccountHeadDetails(1,initPageSize); + var opts = $("#tableData").datagrid('options'); + var pager = $("#tableData").datagrid('getPager'); + opts.pageNumber = 1; + opts.pageSize = initPageSize; + pager.pagination('refresh', + { + pageNumber:1, + pageSize:initPageSize + }); + } + }); + + //重置按钮 + $("#searchResetBtn").unbind().bind({ + click:function(){ + $("#searchBillNo").val(""); + $("#searchBeginTime").val(""); + $("#searchEndTime").val(""); + //加载完以后重新初始化 + $("#searchBtn").click(); + } + }); + + //保存信息 + $("#saveAccountHead").unbind().bind({ + click:function() + { + if(!$('#accountHeadFM').form('validate')) + return; + else + { + var OrganId = null; + var ChangeAmount = $.trim($("#ChangeAmount").val()); + var TotalPrice = $("#accountHeadFM .datagrid-footer [field='EachAmount'] div").text(); + if(listType !=="转账"){ + OrganId = $('#OrganId').combobox('getValue'); + } + if(listType === "支出"){ + //支出为负数 + ChangeAmount = 0 - ChangeAmount; + } + if(listType === "支出" || listType === "付款"){ + //支出和付款为负数 + TotalPrice = 0 - TotalPrice; + } + $.ajax({ + type:"post", + url: url, + dataType: "json", + async : false, + data: ({ + Type: listType, + BillNo : $.trim($("#BillNo").val()), + BillTime : $.trim($("#BillTime").val()), + AccountId: $.trim($("#AccountId").val()), + ChangeAmount: ChangeAmount, //付款/收款/优惠/实付 + TotalPrice: TotalPrice, //合计 + OrganId: OrganId, + HandsPersonId: $.trim($("#HandsPersonId").val()), + Remark: $.trim($("#Remark").val()), + clientIp: clientIp + }), + success: function (tipInfo) + { + if(tipInfo) + { + //保存明细记录 + if(accountHeadID ==0) + { + getMaxId(); //查找最大的Id + accept(accountHeadMaxId); //新增 + } + else + { + accept(accountHeadID); //修改 + } + + $('#accountHeadDlg').dialog('close'); + var opts = $("#tableData").datagrid('options'); + showAccountHeadDetails(opts.pageNumber,opts.pageSize); + } + else + { + $.messager.show({ + title: '错误提示', + msg: '保存信息失败,请稍后重试!' + }); + } + }, + //此处添加错误处理 + error:function() + { + $.messager.alert('提示','保存信息异常,请稍后再试!','error'); + return; + } + }); + } + } + }); + //初始化键盘enter事件 + $(document).keydown(function(event) + { + //兼容 IE和firefox 事件 + var e = window.event || event; + var k = e.keyCode||e.which||e.charCode; + //兼容 IE,firefox 兼容 + var obj = e.srcElement ? e.srcElement : e.target; + //绑定键盘事件为 id是指定的输入框才可以触发键盘事件 13键盘事件 ---遗留问题 enter键效验 对话框会关闭问题 + if(k == "13"&&(obj.id=="BillNo"||obj.id=="BillTime")) + { + $("#saveAccountHead").click(); + } + //搜索按钮添加快捷键 + if(k == "13"&&(obj.id=="searchBillNo")) + { + $("#searchBtn").click(); + } + }); + } + + function showAccountHeadDetails(pageNo,pageSize){ + $.ajax({ + type:"post", + url: path + "/accountHead/findBy.action", + dataType: "json", + data: ({ + Type: listType, + BillNo:$.trim($("#searchBillNo").val()), + BeginTime:$("#searchBeginTime").val(), + EndTime:$("#searchEndTime").val(), + pageNo:pageNo, + pageSize:pageSize + }), + success: function (data) + { + $("#tableData").datagrid('loadData',data); + }, + //此处添加错误处理 + error:function() + { + $.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error'); + return; + } + }); + } + + //自动计算事件 + function autoReckon() { + //延时绑定事件 + setTimeout(function(){ + var body =$("#accountHeadFM .datagrid-body"); + var footer =$("#accountHeadFM .datagrid-footer"); + var input = ".datagrid-editable-input"; + + //修改金额,自动计算单价和合计 + body.find("[field='EachAmount']").find(input).off("keyup").on("keyup",function(){ + var TotalPrice = 0; + var EachAmount =$(this).val()-0; //金额 + body.find("[field='EachAmount']").each(function(){ + if($(this).find("div").text()!==""){ + TotalPrice = TotalPrice + parseFloat($(this).find("div").text().toString()); + } + }); + TotalPrice = TotalPrice + EachAmount; + footer.find("[field='EachAmount']").find("div").text((TotalPrice).toFixed(2)); + }); + },500); + } + + //结束编辑 + function endEditing() { + var edField = ""; + if(!itemType){ + edField = "InOutItemId"; + edName = "InOutItemName"; + } + else { + edField = "AccountId"; + edName = "AccountName"; + } + if (editIndex == undefined) { return true } + if ($('#accountData').datagrid('validateRow', editIndex)) { + var ed = $('#accountData').datagrid('getEditor', {index: editIndex, field: edField}); + var textName = $(ed.target).combobox('getText'); + $('#accountData').datagrid('getRows')[editIndex][edName] = textName; + $('#accountData').datagrid('endEdit', editIndex); + editIndex = undefined; + return true; + } else { + return false; + } + } + //单击 + function onClickRow(index) { + if (editIndex != index) { + if (endEditing()) { + $('#accountData').datagrid('selectRow', index) + .datagrid('beginEdit', index); + editIndex = index; + autoReckon(); + } else { + $('#accountData').datagrid('selectRow', editIndex); + } + } + } + //新增 + function append() { + if (endEditing()) { + $('#accountData').datagrid('appendRow', {}); + editIndex = $('#accountData').datagrid('getRows').length - 1; + $('#accountData').datagrid('selectRow', editIndex).datagrid('beginEdit', editIndex); + autoReckon(); + } + } + //删除 + function removeit() { + if (editIndex == undefined) { return } + $('#accountData').datagrid('cancelEdit', editIndex) + .datagrid('deleteRow', editIndex); + editIndex = undefined; + } + //撤销 + function reject() { + $('#accountData').datagrid('rejectChanges'); + editIndex = undefined; + } + //判断 + function CheckData() { + var row = $('#accountData').datagrid('getRows'); + var totalRowNum = ""; + for (var i = 0; i < row.length; i++) { + if(!itemType){ + if (row[i].InOutItemId == "") { + totalRowNum += (i + 1) + "、"; + } + } + else{ + if (row[i].AccountId == "") { + totalRowNum += (i + 1) + "、"; + } + } + } + if (totalRowNum != "") { + var totalRowNum = totalRowNum.substring(0, totalRowNum.length - 1); + $.messager.alert('提示',"第" + totalRowNum + "行数据填写不完整!",'info'); + return false; + } + return true; + } + //保存 + function accept(accepId) { + append(); + removeit(); + if ($("#accountData").datagrid('getChanges').length) { + if (!CheckData()) + return false; + var inserted = $("#accountData").datagrid('getChanges', "inserted"); + var deleted = $("#accountData").datagrid('getChanges', "deleted"); + var updated = $("#accountData").datagrid('getChanges', "updated"); + $.ajax({ + type: "post", + url: path + "/accountItem/saveDetials.action", + data: { + Inserted: JSON.stringify(inserted), + Deleted: JSON.stringify(deleted), + Updated: JSON.stringify(updated), + HeaderId: accepId, + clientIp: clientIp + }, + success: function (tipInfo) + { + if (tipInfo) { + $.messager.alert('提示','保存成功!','info'); + } + else + $.messager.alert('提示','保存失败!','error'); + + }, + error: function (XmlHttpRequest, textStatus, errorThrown) + { + $.messager.alert('提示',XmlHttpRequest.responseText,'error'); + } + }); + } + if (endEditing()) { + $('#accountData').datagrid('acceptChanges'); + } + } + //获取MaxId + function getMaxId(){ + var accountHeadMax=null; + $.ajax({ + type:"post", + url: path + "/accountHead/getMaxId.action", + //设置为同步 + async:false, + dataType: "json", + success: function (systemInfo) + { + if(systemInfo) + { + accountHeadMax = systemInfo.showModel.map.accountHeadMax; + var msgTip = systemInfo.showModel.msgTip; + if(msgTip == "exceptoin") + { + $.messager.alert('提示','查找最大的Id异常,请与管理员联系!','error'); + return; + } + } + else + { + accountHeadMax=null; + } + } + }); + + if(accountHeadMax !=null) + { + if(accountHeadMax.length>0) + { + accountHeadMaxId=accountHeadMax[0]; + } + } + } \ No newline at end of file diff --git a/src/main/webapp/js/pages/materials/in_out.js b/src/main/webapp/js/pages/materials/in_out.js new file mode 100644 index 00000000..5b92e57b --- /dev/null +++ b/src/main/webapp/js/pages/materials/in_out.js @@ -0,0 +1,1062 @@ + //初始化界面 + $(function(){ + var depotList = null; + var depotID = null; + var supplierList = null; + var supplierID = null; + var personList = null; + var personID = null; + var ProjectSearch=null; + var userBusinessList=null; + var userdepot=null; + var depotHeadMaxId=null; //获取最大的Id + var accepId=null; //保存的主表id + var url; + var depotHeadID = 0; + var orgDepotHead = ""; + var editIndex = undefined; + var listTitle = ""; //单据标题 + var listType = ""; //入库 出库 + var listSubType = ""; //采购 销售等 + var payTypeTitle = "";//付款 收款 + var organUrl = ""; //组织数据接口地址 + //初始化系统基础信息 + getType(); + initSystemData_UB(); + initSelectInfo_UB(); + initSystemData_depot(); + initSelectInfo_depot(); + initSystemData_person(); + initSelectInfo_person(); + initSystemData_account(); + initSelectInfo_account(); + initSupplier(); //供应商 + initTableData(); + ininPager(); + initForm(); + bindEvent();//绑定操作事件 + }); + //根据单据名称获取类型 + function getType(){ + listTitle = $("#tablePanel").prev().text(); + var supUrl = path + "/supplier/findBySelect_sup.action"; //供应商接口 + var cusUrl = path + "/supplier/findBySelect_cus.action"; //客户接口 + if(listTitle === "采购入库列表"){ + listType = "入库"; + listSubType = "采购"; + payTypeTitle = "付款"; + organUrl = supUrl; + } + else if(listTitle === "销售退货列表"){ + listType = "入库"; + listSubType = "销售退货"; + payTypeTitle = "付款"; + organUrl = cusUrl; + } + else if(listTitle === "其它入库列表"){ + listType = "入库"; + listSubType = "其它"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + } + else if(listTitle === "销售出库列表"){ + listType = "出库"; + listSubType = "销售"; + payTypeTitle = "收款"; + organUrl = cusUrl; + } + else if(listTitle === "采购退货列表"){ + listType = "出库"; + listSubType = "采购退货"; + payTypeTitle = "收款"; + organUrl = supUrl; + } + else if(listTitle === "其它出库列表"){ + listType = "出库"; + listSubType = "其它"; + payTypeTitle = "隐藏"; + organUrl = cusUrl; + } + else if(listTitle === "调拨出库列表"){ + listType = "出库"; + listSubType = "调拨"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + } + } + //初始化系统基础信息 + function initSystemData_UB(){ + $.ajax({ + type:"post", + url: path + "/userBusiness/getBasicData.action", + data: ({ + KeyId:kid, + Type:"UserDepot" + }), + //设置为同步 + async:false, + dataType: "json", + success: function (systemInfo) + { + if(systemInfo) + { + userBusinessList = systemInfo.showModel.map.userBusinessList; + var msgTip = systemInfo.showModel.msgTip; + if(msgTip == "exceptoin") + { + $.messager.alert('提示','查找UserBusiness异常,请与管理员联系!','error'); + return; + } + } + else + { + userBusinessList=null; + } + } + }); + + } + //初始化页面选项卡 + function initSelectInfo_UB(){ + + if(userBusinessList !=null) + { + if(userBusinessList.length>0) + { + //用户对应的仓库列表 [1][2][3]... + userdepot =userBusinessList[0].value; + } + } + } + + + //初始化系统基础信息 + function initSystemData_depot(){ + $.ajax({ + type:"post", + url: path + "/depot/getBasicData.action", + //设置为同步 + async:false, + dataType: "json", + success: function (systemInfo) + { + depotList = systemInfo.showModel.map.depotList; + var msgTip = systemInfo.showModel.msgTip; + if(msgTip == "exceptoin") + { + $.messager.alert('提示','查找系统基础信息异常,请与管理员联系!','error'); + return; + } + } + }); + } + //初始化页面选项卡 + function initSelectInfo_depot(){ + var options = ""; + + if(depotList !=null) + { + options = ""; + for(var i = 0 ;i < depotList.length;i++) + { + var depot = depotList[i]; + + if(userdepot!=null) + { + if(userdepot.indexOf("["+depot.id+"]")!=-1) + { + options += ''; + } + } + } + $("#ProjectId").empty().append(options); + $("#AllocationProjectId").empty().append(options); + $("#searchProjectId").empty().append('').append(options); + } + } + + //初始化系统基础信息 + function initSupplier(){ + $('#OrganId').combobox({ + url: organUrl, + valueField:'id', + textField:'supplier' + }); + } + + //初始化系统基础信息 + function initSystemData_person(){ + $.ajax({ + type:"post", + url: path + "/person/getBasicData.action", + //设置为同步 + async:false, + dataType: "json", + success: function (systemInfo) + { + personList = systemInfo.showModel.map.personList; + var msgTip = systemInfo.showModel.msgTip; + if(msgTip == "exceptoin") + { + $.messager.alert('提示','查找系统基础信息异常,请与管理员联系!','error'); + return; + } + } + }); + } + //初始化页面选项卡 + function initSelectInfo_person(){ + var options1 = ""; + + if(personList !=null) + { + for(var i = 0 ;i < personList.length;i++) + { + var person = personList[i]; + if(0 == i) + { + personID = person.id; + } + if(person.type=="仓管员") + { + options1 += ''; + } + } + $("#HandsPersonId").empty().append(options1); + } + } + //获取账户信息 + function initSystemData_account(){ + $.ajax({ + type:"post", + url: path + "/account/getAccount.action", + //设置为同步 + async:false, + dataType: "json", + success: function (systemInfo) + { + accountList = systemInfo.showModel.map.accountList; + var msgTip = systemInfo.showModel.msgTip; + if(msgTip == "exceptoin") + { + $.messager.alert('提示','查找账户信息异常,请与管理员联系!','error'); + return; + } + } + }); + } + //获取账户信息 + function initSelectInfo_account(){ + var options = ""; + if(accountList !=null) + { + options = ""; + for(var i = 0 ;i < accountList.length;i++) + { + var account = accountList[i]; + options += ''; + } + $("#AccountId").empty().append(options); + } + } + + //防止表单提交重复 + function initForm(){ + $('#depotHeadFM').form({ + onSubmit: function(){ + return false; + } + }); + } + + //初始化表格数据 + function initTableData(){ + var hideType = undefined; + if(payTypeTitle === "隐藏"){ + hideType = true; //隐藏当前列 + } + $('#tableData').datagrid({ + //iconCls:'icon-save', + //width:700, + height:heightInfo, + rownumbers: false, + //动画效果 + animate:false, + //选中单行 + singleSelect : true, + collapsible:false, + selectOnCheck:false, + //fitColumns:true, + //单击行是否选中 + //checkOnSelect : false, + //url: path + '/depotHead/findBy.action?pageSize=' + initPageSize, + pagination: true, + //交替出现背景 + striped : true, + //loadFilter: pagerFilter, + pageSize: 5, + pageList: initPageNum, + columns:[[ + { field: 'Id',width:35,align:"center",checkbox:true}, + { title: '单据编号',field: 'Number',width:100}, + { title: '单据日期 ',field: 'OperTime',width:100}, + { title: '创建时间',field: 'CreateTime',width:100}, + { title: '操作员',field: 'OperPersonName',width:80}, + { title: '合计',field: 'TotalPrice',width:50}, + { title: payTypeTitle,field: 'ChangeAmount',width:50,hidden:hideType}, + { title: '单据备注',field: 'Remark',width:100}, + { title: '操作',field: 'op',align:"center",width:180,formatter:function(value,rec) + { + var str = ''; + var rowInfo = rec.Id + 'AaBb' + rec.ProjectId+ 'AaBb' + rec.Number+ 'AaBb' + rec.OperPersonName + + 'AaBb' + rec.OperTime+ 'AaBb' + rec.OrganId+ 'AaBb' + rec.HandsPersonId + + 'AaBb' + rec.AccountId+ 'AaBb' + rec.ChangeAmount+ 'AaBb' + rec.Remark + + 'AaBb' + rec.ProjectName+ 'AaBb' + rec.OrganName+ 'AaBb' + rec.HandsPersonName + + 'AaBb' + rec.AccountName + 'AaBb' + rec.TotalPrice + 'AaBb' + rec.AllocationProjectId + 'AaBb' + rec.AllocationProjectName; + if(1 == value) + { + str += ' 查看  '; + str += ' 编辑  '; + str += ' 删除'; + } + return str; + } + } + ]], + toolbar:[ + { + id:'addDepotHead', + text:'增加', + iconCls:'icon-add', + handler:function() + { + addDepotHead(); + } + }, + { + id:'deleteDepotHead', + text:'删除', + iconCls:'icon-remove', + handler:function() + { + batDeleteDepotHead(); + } + } + ], + onLoadError:function() + { + $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); + return; + } + }); + } + + //初始化表格数据-商品列表-编辑状态 + function initTableData_material(type,TotalPrice){ + $('#materialData').datagrid({ + height:300, + rownumbers: false, + //动画效果 + animate:false, + //选中单行 + singleSelect : true, + collapsible:false, + selectOnCheck:false, + //fitColumns:true, + //单击行是否选中 + //checkOnSelect : false, + pagination: true, + //交替出现背景 + striped : true, + showFooter: true, + //loadFilter: pagerFilter, + onClickRow: onClickRow, + pageSize: 50, + pageList: [50,100,150], + columns:[[ + { field: 'Id',width:35,align:"center",checkbox:true}, + { title: '商品名称',field: 'MaterialId',width:230, + formatter:function(value,row,index){ + return row.MaterialName; + }, + editor:{ + type:'combobox', + options:{ + valueField:'Id', + textField:'MaterialName', + method:'get', + url: path + "/material/findBySelect.action" + } + } + }, + { title: '数量',field: 'OperNumber',editor:'validatebox',width:50}, + { title: '单价',field: 'UnitPrice',editor:'validatebox',width:50}, + { title: '金额',field: 'AllPrice',editor:'validatebox',width:50}, + { title: '备注',field: 'Remark',editor:'validatebox',width:150} + ]], + toolbar:[ + { + id:'append', + text:'新增', + iconCls:'icon-add', + handler:function() + { + append(); //新增 + } + }, + { + id:'delete', + text:'删除', + iconCls:'icon-remove', + handler:function() + { + removeit(); //删除 + } + }, + { + id:'reject', + text:'撤销', + iconCls:'icon-undo', + handler:function() + { + reject(); //撤销 + } + } + ], + onLoadError:function() + { + $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); + return; + } + }); + $.ajax({ + type:"post", + url: path + '/depotItem/findBy.action?HeaderId=' + depotHeadID, + dataType: "json", + success: function (res) { + var AllPrice = 0 + if(type === "edit") { + AllPrice = TotalPrice; + } + var array = []; + array.push({ + "AllPrice": AllPrice + }); + res.footer = array; + $("#materialData").datagrid('loadData',res); + + }, + error:function() { + $.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error'); + } + }); + } + + //初始化表格数据-商品列表-查看状态 + function initTableData_material_show(TotalPrice){ + $('#materialDataShow').datagrid({ + height:300, + rownumbers: true, + //动画效果 + animate:false, + //选中单行 + singleSelect : true, + collapsible:false, + selectOnCheck:false, + //fitColumns:true, + //单击行是否选中 + //checkOnSelect : false, + pagination: true, + //交替出现背景 + striped : true, + showFooter: true, + //loadFilter: pagerFilter, + onClickRow: onClickRow, + pageSize: 50, + pageList: [50,100,150], + columns:[[ + { title: '商品名称',field: 'MaterialName',width:230}, + { title: '数量',field: 'OperNumber',width:50}, + { title: '单价',field: 'UnitPrice',width:50}, + { title: '金额',field: 'AllPrice',width:50}, + { title: '备注',field: 'Remark',width:150} + ]], + onLoadError:function() + { + $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); + return; + } + }); + $.ajax({ + type:"post", + url: path + '/depotItem/findBy.action?HeaderId=' + depotHeadID, + dataType: "json", + success: function (res) { + var AllPrice = TotalPrice; + var array = []; + array.push({ + "AllPrice": AllPrice + }); + res.footer = array; + $("#materialDataShow").datagrid('loadData',res); + + }, + error:function() { + $.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error'); + } + }); + } + + //分页信息处理 + function ininPager(){ + try + { + var opts = $("#tableData").datagrid('options'); + var pager = $("#tableData").datagrid('getPager'); + pager.pagination({ + onSelectPage:function(pageNum, pageSize) + { + opts.pageNumber = pageNum; + opts.pageSize = pageSize; + pager.pagination('refresh', + { + pageNumber:pageNum, + pageSize:pageSize + }); + showDepotHeadDetails(pageNum,pageSize); + } + }); + } + catch (e) + { + $.messager.alert('异常处理提示',"分页信息异常 : " + e.name + ": " + e.message,'error'); + } + } + + //删除采购入库信息 + function deleteDepotHead(depotHeadID){ + $.messager.confirm('删除确认','确定要删除此采购入库信息吗?',function(r) + { + if (r) + { + $.ajax({ + type:"post", + url: path + "/depotHead/delete.action", + dataType: "json", + data: ({ + depotHeadID : depotHeadID, + clientIp: clientIp + }), + success: function (tipInfo) + { + var msg = tipInfo.showModel.msgTip; + if(msg == '成功') + { + //加载完以后重新初始化 + $("#searchBtn").click(); + } + else + $.messager.alert('删除提示','删除采购入库信息失败,请稍后再试!','error'); + }, + //此处添加错误处理 + error:function() + { + $.messager.alert('删除提示','删除采购入库信息异常,请稍后再试!','error'); + return; + } + }); + } + }); + } + + //批量删除采购入库 + function batDeleteDepotHead(){ + var row = $('#tableData').datagrid('getChecked'); + if(row.length == 0) + { + $.messager.alert('删除提示','没有记录被选中!','info'); + return; + } + if(row.length > 0) + { + $.messager.confirm('删除确认','确定要删除选中的' + row.length + '条采购入库信息吗?',function(r) + { + if (r) + { + var ids = ""; + for(var i = 0;i < row.length; i++) + { + if(i == row.length-1) + { + ids += row[i].Id; + break; + } + //alert(row[i].id); + ids += row[i].Id + ","; + } + $.ajax({ + type:"post", + url: path + "/depotHead/batchDelete.action", + dataType: "json", + async : false, + data: ({ + depotHeadIDs : ids, + clientIp: clientIp + }), + success: function (tipInfo) + { + var msg = tipInfo.showModel.msgTip; + if(msg == '成功') + { + //加载完以后重新初始化 + $("#searchBtn").click(); + $(":checkbox").attr("checked",false); + } + else + $.messager.alert('删除提示','删除采购入库信息失败,请稍后再试!','error'); + }, + //此处添加错误处理 + error:function() + { + $.messager.alert('删除提示','删除采购入库信息异常,请稍后再试!','error'); + return; + } + }); + } + }); + } + } + //新增信息 + function addDepotHead(){ + $("#clientIp").val(clientIp); + $('#depotHeadFM').form('clear'); + var addTitle = listTitle.replace("列表","信息"); + $('#depotHeadDlg').dialog('open').dialog('setTitle',' 增加' + addTitle); + $(".window-mask").css({ width: webW ,height: webH}); + $("#Number").val("").focus(); + + orgDepotHead = ""; + depotHeadID = 0; + initTableData_material("add"); //商品列表 + reject(); //撤销下、刷新商品列表 + url = path + '/depotHead/create.action'; + } + + //编辑信息 + function editDepotHead(depotHeadTotalInfo){ + var depotHeadInfo = depotHeadTotalInfo.split("AaBb"); + $("#clientIp").val(clientIp); + $("#ProjectId").focus().val(depotHeadInfo[1]); + var ProjectId=depotHeadInfo[1]; + if(ProjectId!='') + { + initSystemData_person(ProjectId); + initSelectInfo_person(); + } + $("#Number").val(depotHeadInfo[2]); + $("#OperTime").val(depotHeadInfo[4]); + $('#OrganId').combobox('setValue', depotHeadInfo[5]); + $("#HandsPersonId").val(depotHeadInfo[6]); + $("#AccountId").val(depotHeadInfo[7]); + $("#ChangeAmount").val(depotHeadInfo[8]); + $("#ChangeAmount").attr("data-changeamount", depotHeadInfo[8]); + $("#Remark").val(depotHeadInfo[9]); + var TotalPrice = depotHeadInfo[14]; + $("#AllocationProjectId").val(depotHeadInfo[15]); + //orgDepotHead = depotHeadInfo[1]; + var editTitle = listTitle.replace("列表","信息"); + $('#depotHeadDlg').dialog('open').dialog('setTitle',' 编辑' + editTitle); + $(".window-mask").css({ width: webW ,height: webH}); + depotHeadID = depotHeadInfo[0]; + + initTableData_material("edit",TotalPrice); //商品列表 + reject(); //撤销下、刷新商品列表 + url = path + '/depotHead/update.action?depotHeadID=' + depotHeadInfo[0]; + } + + //查看信息 + function showDepotHead(depotHeadTotalInfo){ + var depotHeadInfo = depotHeadTotalInfo.split("AaBb"); + $("#ProjectIdShow").text(depotHeadInfo[10]); + $("#NumberShow").text(depotHeadInfo[2]); + $("#OperTimeShow").text(depotHeadInfo[4]); + $('#OrganIdShow').text(depotHeadInfo[11]); + $("#HandsPersonIdShow").text(depotHeadInfo[12]); + $("#AccountIdShow").text(depotHeadInfo[13]); + $("#ChangeAmountShow").text(depotHeadInfo[8]); + $("#RemarkShow").text(depotHeadInfo[9]); + var TotalPrice = depotHeadInfo[14]; + $("#AllocationProjectIdShow").text(depotHeadInfo[16]); + var showTitle = listTitle.replace("列表","信息"); + $('#depotHeadDlgShow').dialog('open').dialog('setTitle',' 查看' + showTitle); + $(".window-mask").css({ width: webW ,height: webH}); + + depotHeadID = depotHeadInfo[0]; + initTableData_material_show(TotalPrice); //商品列表-查看状态 + } + + //绑定操作事件 + function bindEvent(){ + //搜索处理 + $("#searchBtn").off("click").on("click",function(){ + if($("#searchProjectId").val()=="") + { + $.messager.alert('查询提示','请选择一个仓库!','info'); + } + else + { + showDepotHeadDetails(1,initPageSize); + var opts = $("#tableData").datagrid('options'); + var pager = $("#tableData").datagrid('getPager'); + opts.pageNumber = 1; + opts.pageSize = initPageSize; + pager.pagination('refresh', + { + pageNumber:1, + pageSize:initPageSize + }); + } + }); + + //重置按钮 + $("#searchResetBtn").unbind().bind({ + click:function(){ + //$("#searchProjectId").val(""); + $("#searchState").val(""); + $("#searchBeginTime").val(""); + $("#searchEndTime").val(""); + //加载完以后重新初始化 + $("#searchBtn").click(); + } + }); + + //保存信息 + $("#saveDepotHead").unbind().bind({ + click:function() + { + if(!$('#depotHeadFM').form('validate')) + return; + else + { + var OrganId = null, AllocationProjectId = null; + var ChangeAmount = $.trim($("#ChangeAmount").val()); + var TotalPrice = $("#depotHeadFM .datagrid-footer [field='AllPrice'] div").text(); + if(listSubType !=="调拨"){ + OrganId = $('#OrganId').combobox('getValue'); + } + else { + AllocationProjectId = $.trim($("#AllocationProjectId").val()); //收货仓库-对方 + } + if(listSubType === "采购"||listSubType === "销售退货"){ + //付款为负数 + ChangeAmount = 0 - ChangeAmount; + TotalPrice = 0 - TotalPrice; + } + $.ajax({ + type:"post", + url: url, + dataType: "json", + async : false, + data: ({ + Type: listType, + SubType: listSubType, + ProjectId: $.trim($("#ProjectId").val()), + AllocationProjectId: AllocationProjectId, + Number: $.trim($("#Number").val()), + OperTime: $("#OperTime").val(), + OrganId: OrganId, + HandsPersonId: $.trim($("#HandsPersonId").val()), + AccountId: $.trim($("#AccountId").val()), + ChangeAmount: ChangeAmount, //付款/收款 + TotalPrice: TotalPrice, //合计 + Remark: $.trim($("#Remark").val()), + clientIp: clientIp + }), + success: function (tipInfo) + { + if(tipInfo) + { + function closeDialog(){ + $('#depotHeadDlg').dialog('close'); + var opts = $("#tableData").datagrid('options'); + showDepotHeadDetails(opts.pageNumber,opts.pageSize); + } + //保存明细记录 + if(depotHeadID ==0) + { + getMaxId(); //查找最大的Id + accept(depotHeadMaxId); //新增 + closeDialog(); + } + else + { + accept(depotHeadID); //修改 + closeDialog(); + } + } + else + { + $.messager.show({ + title: '错误提示', + msg: '保存采购入库信息失败,请稍后重试!' + }); + } + }, + //此处添加错误处理 + error:function() + { + $.messager.alert('提示','保存采购入库信息异常,请稍后再试!','error'); + return; + } + }); + } + } + }); + + //初始化键盘enter事件 + $(document).keydown(function(event){ + //兼容 IE和firefox 事件 + var e = window.event || event; + var k = e.keyCode||e.which||e.charCode; + //兼容 IE,firefox 兼容 + var obj = e.srcElement ? e.srcElement : e.target; + //绑定键盘事件为 id是指定的输入框才可以触发键盘事件 13键盘事件 ---遗留问题 enter键效验 对话框会关闭问题 + if(k == "13"&&(obj.id=="State"||obj.id=="Number")) + { + $("#saveDepotHead").click(); + } + //搜索按钮添加快捷键 + if(k == "13"&&(obj.id=="searchState"||obj.id=="searchNumber")) + { + $("#searchBtn").click(); + } + }); + } + + + function showDepotHeadDetails(pageNo,pageSize){ + $.ajax({ + type:"post", + url: path + "/depotHead/findBy.action", + dataType: "json", + data: ({ + ProjectId:$.trim($("#searchProjectId").val()), + Type: listType, + SubType:listSubType, + State:$.trim($("#searchState").val()), + Number:$.trim($("#searchNumber").val()), + BeginTime:$("#searchBeginTime").val(), + EndTime:$("#searchEndTime").val(), + pageNo:pageNo, + pageSize:pageSize + }), + success: function (data) + { + $("#tableData").datagrid('loadData',data); + }, + //此处添加错误处理 + error:function() + { + $.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error'); + return; + } + }); + } + + //自动计算事件 + function autoReckon() { + //延时绑定事件 + setTimeout(function(){ + var body =$("#depotHeadFM .datagrid-body"); + var footer =$("#depotHeadFM .datagrid-footer"); + var input = ".datagrid-editable-input"; + + //修改单价,自动计算金额和合计 + body.find("[field='UnitPrice']").find(input).off("keyup").on("keyup",function(){ + var UnitPrice =$(this).val()-0; //单价 + var TotalPrice = 0; + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + body.find("[field='AllPrice']").find(input).val((UnitPrice*OperNumber).toFixed(2)); + body.find("[field='AllPrice']").each(function(){ + if($(this).find("div").text()!==""){ + TotalPrice = TotalPrice + parseFloat($(this).find("div").text().toString()); + } + }); + TotalPrice = TotalPrice + UnitPrice*OperNumber; + footer.find("[field='AllPrice']").find("div").text((TotalPrice).toFixed(2)); + }); + //修改数量,自动计算金额和合计 + body.find("[field='OperNumber']").find(input).off("keyup").on("keyup",function(){ + var UnitPrice = body.find("[field='UnitPrice']").find(input).val(); //单价 + var TotalPrice = 0; + var OperNumber =$(this).val()-0; //数量 + body.find("[field='AllPrice']").find(input).val((UnitPrice*OperNumber).toFixed(2)); + body.find("[field='AllPrice']").each(function(){ + if($(this).find("div").text()!==""){ + TotalPrice = TotalPrice + parseFloat($(this).find("div").text().toString()); + } + }); + TotalPrice = TotalPrice + UnitPrice*OperNumber; + footer.find("[field='AllPrice']").find("div").text((TotalPrice).toFixed(2)); + }); + //修改金额,自动计算单价和合计 + body.find("[field='AllPrice']").find(input).off("keyup").on("keyup",function(){ + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + var TotalPrice = 0; + var AllPrice =$(this).val()-0; //金额 + body.find("[field='UnitPrice']").find(input).val((AllPrice/OperNumber).toFixed(2)); + body.find("[field='AllPrice']").each(function(){ + if($(this).find("div").text()!==""){ + TotalPrice = TotalPrice + parseFloat($(this).find("div").text().toString()); + } + }); + TotalPrice = TotalPrice + AllPrice; + footer.find("[field='AllPrice']").find("div").text((TotalPrice).toFixed(2)); + }); + },500); + } + + //结束编辑 + function endEditing() { + if (editIndex == undefined) { return true } + if ($('#materialData').datagrid('validateRow', editIndex)) { + var ed = $('#materialData').datagrid('getEditor', {index:editIndex,field:'MaterialId'}); + var MaterialName = $(ed.target).combobox('getText'); + $('#materialData').datagrid('getRows')[editIndex]['MaterialName'] = MaterialName; + $('#materialData').datagrid('endEdit', editIndex); + editIndex = undefined; + return true; + } else { + return false; + } + } + //单击 + function onClickRow(index) { + if (editIndex != index) { + if (endEditing()) { + $('#materialData').datagrid('selectRow', index).datagrid('beginEdit', index); + editIndex = index; + autoReckon(); + } else { + $('#materialData').datagrid('selectRow', editIndex); + } + } + } + //新增 + function append(){ + if (endEditing()) { + $('#materialData').datagrid('appendRow', {}); + editIndex = $('#materialData').datagrid('getRows').length - 1; + $('#materialData').datagrid('selectRow', editIndex).datagrid('beginEdit', editIndex); + autoReckon(); + } + } + //删除 + function removeit(){ + if (editIndex == undefined) { return } + $('#materialData').datagrid('cancelEdit', editIndex) + .datagrid('deleteRow', editIndex); + editIndex = undefined; + } + //撤销 + function reject() { + $('#materialData').datagrid('rejectChanges'); + editIndex = undefined; + } + //判断 + function CheckData() { + var row = $('#materialData').datagrid('getRows'); + var totalRowNum = ""; + for (var i = 0; i < row.length; i++) { + if (row[i].MaterialId == "") { + totalRowNum += (i + 1) + "、"; + } + } + if (totalRowNum != "") { + var totalRowNum = totalRowNum.substring(0, totalRowNum.length - 1); + $.messager.alert('提示',"第" + totalRowNum + "行数据填写不完整!",'info'); + return false; + } + return true; + } + //保存 + function accept(accepId) { + append(); + removeit(); + if ($("#materialData").datagrid('getChanges').length) { + if (!CheckData()) + return false; + var inserted = $("#materialData").datagrid('getChanges', "inserted"); + var deleted = $("#materialData").datagrid('getChanges', "deleted"); + var updated = $("#materialData").datagrid('getChanges', "updated"); + $.ajax({ + type: "post", + url: path + "/depotItem/saveDetials.action", + data: { + Inserted: JSON.stringify(inserted), + Deleted: JSON.stringify(deleted), + Updated: JSON.stringify(updated), + HeaderId:accepId, + clientIp: clientIp + }, + success: function (tipInfo) + { + if (tipInfo) { + $.messager.alert('提示','保存成功!','info'); + } + else + $.messager.alert('提示','保存失败!','error'); + + }, + error: function (XmlHttpRequest, textStatus, errorThrown) + { + $.messager.alert('提示',XmlHttpRequest.responseText,'error'); + } + }); + } + if (endEditing()) { + $('#materialData').datagrid('acceptChanges'); + } + } + //获取MaxId + function getMaxId(){ + var depotHeadMax=null; + $.ajax({ + type:"post", + url: path + "/depotHead/getMaxId.action", + //设置为同步 + async:false, + dataType: "json", + success: function (systemInfo) + { + if(systemInfo) + { + depotHeadMax = systemInfo.showModel.map.depotHeadMax; + var msgTip = systemInfo.showModel.msgTip; + if(msgTip == "exceptoin") + { + $.messager.alert('提示','查找最大的Id异常,请与管理员联系!','error'); + return; + } + } + else + { + depotHeadMax=null; + } + } + }); + + if(depotHeadMax !=null) + { + if(depotHeadMax.length>0) + { + depotHeadMaxId=depotHeadMax[0]; + } + } + } + + + + + + diff --git a/src/main/webapp/js/webqq/desktop.js b/src/main/webapp/js/webqq/desktop.js new file mode 100644 index 00000000..6a74eb1b --- /dev/null +++ b/src/main/webapp/js/webqq/desktop.js @@ -0,0 +1,1112 @@ +/*----------------------------------------------------------------------------- +*作者:Muzi*lei , email:530624206@qq.com +*http://www.muzilei.com/ +*version:1.0 , 时间:2011-09-14 +*desktop需引入myLib.js创建命名空间,和jquery 及 jquery ui,contextMenu jquery插件 +-----------------------------------------------------------------------------*/ +//声明desktop空间,封装相关操作 +myLib.NS("desktop"); +myLib.desktop={ + winWH:function(){ + $('body').data('winWh',{'w':$(window).width(),'h':$(window).height()}); + }, + desktopPanel:function(){ + $('body') + .data('panel',{ + 'taskBar':{ + '_this':$('#taskBar'), + 'task_lb':$('#task_lb') + }, + 'navBar':$('#navBar'), + 'wallpaper':$('#wallpapers'), + 'lrBar':{ + '_this':$('#lr_bar'), + 'default_app':$('#default_app'), + 'start_block':$('#start_block'), + 'start_btn':$('#start_btn'), + 'start_item':$('#start_item'), + 'default_tools':$('#default_tools') + }, + 'desktopPanel':{ + '_this':$('#desktopPanel'), + 'innerPanel':$('#desktopInnerPanel'), + 'deskIcon':$('ul.deskIcon') + }, + 'powered_by':$('a.powered_by') + }); + }, + iconDataInit:function(data){ + for(var a in data){ + $("#"+a).data("iconData",data[a]); + } + }, + getMydata:function(){ + return $('body').data(); + }, + mouseXY:function(){ + var mouseXY=[]; + $(document).bind('mousemove',function(e){ + mouseXY[0]=e.pageX; + mouseXY[1]=e.pageY; + }); + return mouseXY; + }, + contextMenu:function(jqElem,data,menuName,textLimit){ + var _this=this + ,mXY=_this.mouseXY(); + + jqElem + .smartMenu(data,{ + name: menuName, + textLimit:textLimit, + afterShow:function(){ + var menu=$("#smartMenu_"+menuName); + var myData=myLib.desktop.getMydata(), + wh=myData.winWh;//获取当前document宽高 + var menuXY=menu.offset(),menuH=menu.height(),menuW=menu.width(); + if(menuXY.top>wh['h']-menuH){ + menu.css('top',mXY[1]-menuH-2); + } + if(menuXY.left>wh['w']-menuW){ + menu.css('left',mXY[0]-menuW-2); + } + } + }); + $(document.body).click(function(event){ + event.preventDefault(); + $.smartMenu.hide(); + }); + } + } + +//弹出窗口,支持拖曳,改变大小,关闭,最大化,最小化 +myLib.NS("desktop.win"); +myLib.desktop.win={ + winHtml:function(title,url,id){ + return "
                                " + +title + +"
                                "; + }, + //添加遮障层,修复iframe 鼠标经过事件bug + iframFix:function(obj){ + obj.each(function(){ + var o=$(this); + if(o.find('.zzDiv').size()<=0) + o.append($("
                                ")); + }) + }, + //获取当前窗口最大的z-index值 + maxWinZindex:function($win){ + return Math.max.apply(null, $.map($win, function (e, n) { + if ($(e).css('position') == 'absolute') + return parseInt($(e).css('z-index')) || 1; + })); + }, + //获取当前最顶层窗口 + findTopWin:function($win,maxZ){ + var topWin; + $win.each(function(index){ + if($(this).css("z-index")==maxZ){ + topWin=$(this); + return false; + } + }); + return topWin; + }, + //关闭窗口 + closeWin:function(obj){ + var _this=this,$win=$('div.windows').not(".hideWin"),maxZ,topWin; + myLib.desktop.taskBar.delWinTab(obj); + obj.hide(200,function(){ + $(this).remove(); + }); + //当关闭窗口后寻找最大z-index的窗口并使其出入选择状态 + if($win.size()>1){ + maxZ=_this.maxWinZindex($win.not(obj)); + topWin=_this.findTopWin($win,maxZ); + _this.switchZindex(topWin); + } + }, + //最小化窗口 + minimize:function(obj){ + var _this=this,$win=$('div.windows').not(".hideWin"),maxZ,topWin,objTab; + //obj.hide(); + obj.css({"left":obj.position().left-10000,"visibility":"hidden"}).addClass("hideWin"); + + //最小化窗口后,寻找最大z-index窗口至顶 + if($win.size()>1){ + maxZ=_this.maxWinZindex($win.not(obj)); + topWin=_this.findTopWin($win,maxZ); + _this.switchZindex(topWin); + }else{ + objTab=myLib.desktop.taskBar.findWinTab(obj); + objTab.removeClass('selectTab').addClass('defaultTab'); + } + }, + //最大化窗口函数 + maximizeWin:function(obj){ + var myData=myLib.desktop.getMydata(), + panel=$("#desktopInnerPanel").offset(), + wh=myData.winWh;//获取当前document宽高 + obj + .css({'width':wh['w'],'height':wh['h'],'left':-panel.left,'top':-panel.top}) + .draggable( "disable" ) + .resizable( "disable" ) + .fadeTo("fast",1) + .find(".winframe") + .css({'width':wh['w'],'height':wh['h']-26}); + }, + //还原窗口函数 + hyimizeWin:function(obj){ + var myData=obj.data(), + winLocation=myData.winLocation;//获取窗口最大化前的位置大小 + + obj.css({'width':winLocation['w'],'height':winLocation['h'],'left':winLocation['left'],'top':winLocation['top']}) + .draggable( "enable" ) + .resizable( "enable" ) + .find(".winframe") + .css({'width':winLocation['w'],'height':winLocation['h']-26}); + }, + //交换窗口z-index值 + switchZindex:function(obj){ + var myData=myLib.desktop.getMydata() + ,$topWin=myData.topWin + ,$topWinTab=myData.topWinTab + ,curWinZindex=obj.css("z-index") + ,maxZ=myData.maxZindex + ,objTab=myLib.desktop.taskBar.findWinTab(obj); + + if(!$topWin.is(obj)){ + + obj.css("z-index",maxZ); + objTab.removeClass('defaultTab').addClass('selectTab'); + + $topWin.css("z-index",curWinZindex); + $topWinTab.removeClass('selectTab').addClass('defaultTab'); + this.iframFix($topWin); + //更新最顶层窗口对象 + $('body').data("topWin",obj).data("topWinTab",objTab); + } + }, + //新建一个窗口 + newWin:function(options){ + + var myData=myLib.desktop.getMydata(), + wh=myData.winWh,//获取当前document宽高 + $windows=$("div.windows"), + _this=this, + curwinNum=myLib._is(myData.winNum,"Number")?myData.winNum:0;//判断当前已有多少窗口 + _this.iframFix($windows); + + //默认参数配置 + var defaults = { + WindowTitle: null, + WindowsId: null, + WindowPositionTop: 'center', /* Posible are pixels or 'center' */ + WindowPositionLeft: 'center', /* Posible are pixels or 'center' */ + WindowWidth: Math.round(wh['w']*0.6), /* Only pixels */ + WindowHeight: Math.round(wh['h']*0.8), /* Only pixels */ + WindowMinWidth: 250, /* Only pixels */ + WindowMinHeight: 250, /* Only pixels */ + iframSrc: null, /* 框架的src路径*/ + WindowResizable: true, /* true, false*/ + WindowMaximize: true, /* true, false*/ + WindowMinimize: true, /* true, false*/ + WindowClosable: true, /* true, false*/ + WindowDraggable: true, /* true, false*/ + WindowStatus: 'regular', /* 'regular', 'maximized', 'minimized' */ + WindowAnimationSpeed: 500, + WindowAnimation: 'none' + }; + + var options = $.extend(defaults, options); + + //判断窗口位置,否则使用默认值 + var dxy=Math.floor((Math.random()*100))+30; + var panelLeft=$("#desktopInnerPanel").position(); + + var wLeft=myLib._is(options['WindowPositionLeft'],"Number")?options['WindowPositionLeft']+dxy-panelLeft.left:(wh['w']-options['WindowWidth'])/2+dxy-panelLeft.left; + var wTop=myLib._is(options['WindowPositionTop'],"Number")?options['WindowPositionTop']+dxy/2:(wh['h']-options['WindowHeight'])/2+dxy/2; + + //给窗口赋予新的z-index值 + var zindex=curwinNum+500; + var id="myWin_"+options['WindowsId'];//根据传来的id将作为新窗口id + $('body').data("winNum",curwinNum+1);//更新窗口数量 + + + //判断如果此id的窗口存在,则不创建窗口 + if($("#"+id).size()<=0){ + //在任务栏里添加tab + myLib.desktop.taskBar.addWinTab(options['WindowTitle'],options['WindowsId']); + //初始化新窗口并显示 + $(_this.winHtml(options['WindowTitle'],options['iframSrc'],id)).appendTo('#desktopInnerPanel'); + + var $newWin=$("#"+id) + ,$icon=$("#"+options['WindowsId']) + ,$iconOffset=$icon.offset() + ,$fram=$newWin.find(".winframe") + ,$winTitle=$newWin.find(".win_title") + ,winMaximize_btn=$newWin.find('a.winMaximize')//最大化按钮 + ,winMinimize_btn=$newWin.find('a.winMinimize')//最小化按钮 + ,winClose_btn=$newWin.find('a.winClose')//关闭按钮 + ,winHyimize_btn=$newWin.find('a.winHyimize');//还原按钮 + + winHyimize_btn.hide(); + if(!options['WindowMaximize']) winMaximize_btn.hide(); + if(!options['WindowMinimize']) winMinimize_btn.hide(); + if(!options['WindowClosable']) winClose_btn.hide(); + + //存储窗口最大的z-index值,及最顶层窗口对象 + $('body').data({"maxZindex":zindex,"topWin":$newWin}); + + //判断窗口是否启用动画效果 + if(options.WindowAnimation=='none'){ + + $newWin + .css({"width":options['WindowWidth'],"height":options['WindowHeight'],"left":wLeft,"top":wTop,"z-index":zindex}) + .addClass("loading") + .show(10,function(){ + $(this).find(".winframe").attr("src",options['iframSrc']).load(function(){ + $(this).show(); + }); + }); + + }else{ + + $newWin + .css({"left":$iconOffset.left,"top":$iconOffset.top,"z-index":zindex}) + .addClass("loading") + .show() + .animate({ + width: options['WindowWidth'], + height:options['WindowHeight'], + top: wTop, + left: wLeft}, 100,function(){ + $(this).find(".winframe").attr("src",options['iframSrc']).load(function(){ + $(this).show(); + }); + }); + } + + $newWin + //存储窗口当前位置大小 + .data('winLocation',{ + 'w':options['WindowWidth'], + 'h':options['WindowHeight'], + 'left':wLeft, + 'top':wTop + }) + //鼠标点击,切换窗口,使此窗口显示到最上面 + .bind({ + "mousedown":function(event){ + _this.switchZindex($(this)); + }, + "mouseup":function(){ + $(this).find('.zzDiv').remove(); + } + }) + .find(".winframe") + .css({"width":options['WindowWidth'],"height":options['WindowHeight']-26}); + + //调用窗口拖动,参数可拖动的范围上下左右,窗口id和,浏览器可视窗口大小 + if(options['WindowDraggable']){ + _this.drag([0,0,wh['w']-options['WindowWidth']-10,wh['h']-options['WindowHeight']-35],$newWin,wh); + } + //调用窗口resize,传递最大最小宽度和高度,新窗口对象id,浏览器可视窗口大小 + if(options['WindowResizable']){ + _this.resize(options['WindowMinWidth'],options['WindowMinHeight'],wh['w']-wLeft,wh['h']-wTop-35,$newWin,wh); + } + + //双击窗口标题栏 + $winTitle.dblclick(function(){ + var hasMaximizeBtn=$(this).find(winMaximize_btn); + + if(!hasMaximizeBtn.is(":hidden")){ + winMaximize_btn.trigger("click"); + }else{ + winHyimize_btn.trigger("click"); + } + + }); + + //窗口最大化,最小化,及关闭 + winClose_btn.click(function(event){ + event.stopPropagation(); + _this.closeWin($newWin); + }); + //最大化 + winMaximize_btn.click(function(event){ + event.stopPropagation(); + if(options['WindowStatus']=="regular"){ + _this.maximizeWin($newWin); + $(this).hide(); + winHyimize_btn.show(); + options['WindowStatus']="maximized"; + $("#desktopPanel").css("z-index",95); + } + }); + + //如果浏览器窗口大小改变,则更新窗口大小 + $(window).wresize(function(){ + if(options['WindowStatus']=="maximized"){ + _this.maximizeWin($newWin); + } + }); + //还原窗口 + winHyimize_btn.click(function(event){ + event.stopPropagation(); + if(options['WindowStatus']=="maximized"){ + _this.hyimizeWin($newWin); + $(this).hide(); + winMaximize_btn.show(); + options['WindowStatus']="regular"; + $("#desktopPanel").css("z-index",70); + } + }); + //最小化窗口 + winMinimize_btn.click(function(){ + _this.minimize($newWin); + }); + }else{ + + //如果已存在此窗口,判断是否隐藏 + var wins=$("#"+id),objTab=myLib.desktop.taskBar.findWinTab(wins); + if(wins.is(":hidden")){ + wins.show(); + objTab.removeClass('defaultTab').addClass('selectTab');//当只有一个窗口时 + myLib.desktop.win.switchZindex(wins); + }else{ + + } + } + }, + upWinResize_block:function(win){ + + //更新窗口可改变大小范围,wh为浏览器窗口大小 + var offset=win.offset(); + win.resizable( "option" ,{'maxWidth':$(window).width()-offset.left-10,'maxHeight':$(window).height()-offset.top-35}) + }, + drag:function(arr,$newWin,wh){ + var _this=this; + $newWin + .draggable({ + handle:'div.win_title', + iframeFix:false, + scroll: false + }) + .bind("dragstart",function(event,ui){ + _this.iframFix($(this)); + $("#desktopPanel").css("z-index",95); + }) + .bind( "dragstop", function(event, ui) { + $("#desktopPanel").css("z-index",70); + + var obj_this=$(this); + + var offset=obj_this.offset(); + //计算可拖曳范围 + _this.upWinResize_block(obj_this); + + obj_this + //更新窗口存储的位置属性 + .data('winLocation',{ + 'w':obj_this.width(), + 'h':obj_this.height(), + 'left':offset.left, + 'top':offset.top + }) + .find('.zzDiv') + .remove(); + + if(event.pageY>wh.h-50){ + $(this).css("top",event.pageY-90); + }else if(event.pageY<-35){ + $(this).css("top",-35); + } + }); + + $("div.win_title").css("cursor","move"); + + }, + resize:function(minW,minH,maxW,maxH,$newWin,wh){ + var _this=this; + $newWin + .resizable({ + minHeight:minH, + minWidth:minW, + containment:'document', + maxWidth:maxW, + maxHeight:maxH + }) + .css("position","absolute") + .bind( "resize", function(event, ui) { + var h=$(this).innerHeight(),w=$(this).innerWidth(); + _this.iframFix($(this)); + + //拖曳改变窗口大小,更新iframe宽度和高度,并显示iframe + $(this).children(".winframe").css({"width":w,"height":h-26}); + + }) + .bind( "resizestop", function(event, ui) { + var obj_this=$(this); + var offset=obj_this.offset(); + var h=obj_this.innerHeight(),w=obj_this.innerWidth(); + + obj_this + //更新窗口存储的位置属性 + .data('winLocation',{ + 'w':w, + 'h':h, + 'left':offset.left, + 'top':offset.top + }) + //删除遮障iframe的层 + .find(".zzDiv") + .remove(); + }); + } + } + +//侧边工具栏 +myLib.NS("desktop.lrBar"); +myLib.desktop.lrBar={ + upLrBar:function(){ + var myData=myLib.desktop.getMydata() + ,$lrBar=myData.panel.lrBar['_this'] + ,wh=myData.winWh; + $lrBar.css({'top':Math.floor((wh['h']-$lrBar.height())/2)-60}); + + }, + init:function(iconData){ + //读取元素对象数据 + var myData=myLib.desktop.getMydata() + ,$default_tools=myData.panel.lrBar['default_tools'] + ,$def_tools_Btn=$default_tools.find('span') + ,$start_btn=myData.panel.lrBar['start_btn'] + ,$start_block=myData.panel.lrBar.start_block + ,$start_item=myData.panel.lrBar['start_item'] + ,$default_app=myData.panel.lrBar['default_app'] + ,$lrBar=myData.panel.lrBar['_this'] + ,wh=myData.winWh + ,_this=this; + + //初始化侧栏位置 + _this.upLrBar(); + + //附加data数据 + myLib.desktop.iconDataInit(iconData); + + //如果窗口大小改变,则更新侧边栏位置 + $(window).wresize(function(){ + myLib.desktop.winWH();//更新窗口大小数据 + _this.upLrBar(); + }); + + //任务栏右边默认组件区域交互效果 + $def_tools_Btn.hover(function(){ + $(this).css("background-color","#999"); + },function(){ + $(this).css("background-color","transparent"); + }); + //默认应用程序区 + $default_app + .droppable({ + scope:'a', + drop: function(event,ui) { + var title=ui.draggable.find(".text").text(); + ui.draggable + .removeClass("desktop_icon") + .attr({"style":"", + "title":title + }) + .find("span") + .removeClass("icon") + .end() + .appendTo($default_app); + myLib.desktop.deskIcon.init(); + _this.init(); + } + }) + .find('li') + .hover(function(){ + $(this).addClass('btnOver'); + },function(){ + $(this).removeClass('btnOver'); + }) + .click(function(){ + + var data=$(this).data("iconData"),id=this.id; + myLib.desktop.win.newWin({ + WindowTitle:data.title, + iframSrc:data.url, + WindowsId:id, + WindowAnimation:'none', + WindowWidth:data.winWidth, + WindowHeight:data.winHeight + }); + + $(this).data("currPanel",$("ul.currDesktop").index("ul.deskIcon")); + + }) + .draggable({ + helper: "clone", + scroll:false, + opacity: 0.7, + scope:'a', + appendTo:'parent', + start:function(){ + $lrBar.css("z-index",90); + } + }) + .droppable({ + scope:'a', + drop: function(event,ui) { + + var title=ui.draggable.find(".text").text(); + ui.draggable + .removeClass("desktop_icon") + .attr({"style":"", + "title":title + }) + .find("span") + .removeClass("icon") + .end() + .insertBefore($(this)); + _this.init(); + myLib.desktop.deskIcon.init(); + } + }); + + //开始按钮、菜单交互效果 + $start_btn.click(function(event){ + event.preventDefault(); + event.stopPropagation() + if($start_item.is(":hidden")) + $start_item.show(); + else + $start_item.hide(); + }); + + $("body").click(function(event){ + event.preventDefault(); + $start_item.hide(); + }); + //全屏 + $("#showZm_btn") + .toggle(function(){ + myLib.fullscreenIE(); + myLib.fullscreen(); + }, + function(){ + myLib.fullscreenIE(); + myLib.exitFullscreen(); + }); + } + } +/*---------------------------------------------------------------------------------- +//声明任务栏空间,任务栏相关js操作 +----------------------------------------------------------------------------------*/ +myLib.NS("desktop.taskBar"); +myLib.desktop.taskBar={ + timer:function(obj){ + var curDaytime=new Date().toLocaleString().split(" "); + obj.innerHTML=curDaytime[1]; + obj.title=curDaytime[0]; + setInterval(function(){obj.innerHTML=new Date().toLocaleString().split(" ")[1];},1000); + }, + upTaskWidth:function(){ + var myData=myLib.desktop.getMydata() + ,$task_bar=myData.panel.taskBar['_this']; + var maxHdTabNum=Math.floor($(window).width()/100); + //计算任务栏宽度 + $task_bar.width(maxHdTabNum*100); + //存储活动任务栏tab默认组数 + $('body').data("maxHdTabNum",maxHdTabNum-2); + }, + init:function(){ + //读取元素对象数据 + var myData=myLib.desktop.getMydata(); + var $task_lb=myData.panel.taskBar['task_lb'] + ,$task_bar=myData.panel.taskBar['_this'] + ,wh=myData.winWh; + + var _this=this; + _this.upTaskWidth(); + //当改变浏览器窗口大小时,重新计算任务栏宽度 + $(window).wresize(function(){ + _this.upTaskWidth(); + }); + + }, + contextMenu:function(tab,id){ + var _this=this; + //初始化任务栏Tab右键菜单 + var data=[ + [{ + text:"最大化", + func:function(){ + $("#myWin_"+tab.data('win')).find('a.winMaximize').trigger('click'); + } + },{ + text:"最小化", + func:function(){ + myLib.desktop.win.minimize($("#myWin_"+tab.data('win'))); + } + }] + ,[{ + text:"关闭", + func:function(){ + $("#smartMenu_taskTab_menu"+id).remove(); + myLib.desktop.win.closeWin($("#myWin_"+tab.data('win'))); + } + }] + ]; + myLib.desktop.contextMenu(tab,data,"taskTab_menu"+id,10); + }, + addWinTab:function(text,id){ + var myData=myLib.desktop.getMydata(); + var $task_lb=myData.panel.taskBar['task_lb'] + ,$task_bar=myData.panel.taskBar['_this'] + ,$navBar=myData.panel.navBar + ,$navTab=$navBar.find("a") + ,tid="myWinTab_"+id + ,allTab=$task_lb.find('a') + ,curTabNum=allTab.size() + ,docHtml=""+text+""; + + //添加新的tab + $task_lb.append($(docHtml)); + var $newTab=$("#"+tid); + //右键菜单 + this.contextMenu($newTab,id); + + $task_lb + .find('a.selectTab') + .removeClass('selectTab') + .addClass('defaultTab'); + + $newTab + .data('win',id) + .addClass('selectTab') + .click(function(){ + var win=$("#myWin_"+$(this).data('win')), + tabId=this.id, + iconId=tabId.split("_")[1], + desk=$("#"+iconId).parent(), + i=desk.index("ul.deskIcon"); //判断窗口在那个桌面区域 + + if(i<0){ + i=$("#"+iconId).data("currPanel"); + } + //如果是当前桌面 + if(desk.is(".currDesktop")){ + if(win.is(".hideWin")){ + //win.show(); + win.css({"left":win.position().left+10000,"visibility":"visible"}).removeClass("hideWin"); + + $(this).removeClass('defaultTab').addClass('selectTab');//当只有一个窗口时 + myLib.desktop.win.switchZindex(win); + }else{ + if($(this).hasClass('selectTab')){ + myLib.desktop.win.minimize(win); + }else{ + myLib.desktop.win.switchZindex(win); + } + } + + //如果不在当前窗口 + }else{ + if(win.is(".hideWin")){ + //win.show(); + win.css({"left":win.position().left+10000,"visibility":"visible"}).removeClass("hideWin"); + + $(this).removeClass('defaultTab').addClass('selectTab');//当只有一个窗口时 + myLib.desktop.win.switchZindex(win); + } + $navTab.eq(i).trigger("click"); + } + + }); + + $('body').data("topWinTab",$newTab); + + //当任务栏活动窗口数超出时 + if(curTabNum>myData.maxHdTabNum-1){ + var LeftBtn=$('#leftBtn') + ,rightBtn=$('#rightBtn') + ,bH; + + LeftBtn + .show() + .find("a") + .click(function(){ + var pos=$task_lb.position(); + if(pos.top<0){ + $task_lb.animate({ + "top":pos.top+40 + }, 50); + } + }); + + rightBtn + .show() + .find("a") + .click(function(){ + var pos=$task_lb.position(),h=$task_lb.height(),row=h/40; + if(pos.top>(row-1)*(-40)){ + $task_lb.animate({ + "top": pos.top-40 + }, 50); + } + }); + + $task_lb.parent().css("margin","0 100"); + } + + }, + delWinTab:function(wObj){ + var myData=myLib.desktop.getMydata() + ,$task_lb=myData.panel.taskBar['task_lb'] + ,$task_bar=myData.panel.taskBar['_this'] + ,LeftBtn=$('#leftBtn') + ,rightBtn=$('#rightBtn') + ,pos=$task_lb.position(); + + this.findWinTab(wObj).remove(); + + var newH=$task_lb.height(); + if(Math.abs(pos.top)==newH){ + LeftBtn.find('a').trigger("click"); + } + if(newH==40){ + LeftBtn.hide(); + rightBtn.hide(); + $task_lb.parent().css("margin",0); + } + }, + findWinTab:function(wObj){ + var myData=myLib.desktop.getMydata(), + $task_lb=myData.panel.taskBar['task_lb'], + objTab; + $task_lb.find('a').each(function(index){ + var id="#myWin_"+$(this).data("win"); + if($(id).is(wObj)){ + objTab=$(this); + } + }); + return objTab; + } + } +//navbar +myLib.NS("desktop.navBar"); +myLib.desktop.navBar={ + init:function(){ + var myData=myLib.desktop.getMydata() + ,$navBar=myData.panel.navBar + ,$innerPanel=myData.panel.desktopPanel.innerPanel + ,$navTab=$navBar.find("a") + ,$deskIcon=myData.panel.desktopPanel['deskIcon'] + ,desktopWidth=$deskIcon.width() + ,lBarWidth=myData.panel.lrBar["_this"].outerWidth(); + + $navBar + .draggable({ + scroll:false + }); + + $navTab + .droppable({ + scope:'a', + over:function(event,ui){ + $(this).trigger("click"); + var i=$navTab.index($(this)); + //ui.draggable + //.css({left:event.pageX+$deskIcon.width()*i}); + }, + drop: function(event,ui) { + var i=$navTab.index($(this)); + ui.draggable + .addClass("desktop_icon") + .insertBefore($deskIcon.eq(i).find(".add_icon")) + .find("span") + .addClass("icon"); + myLib.desktop.deskIcon.init(); + myLib.desktop.lrBar.init(); + } + }) + .click(function(event){ + event.preventDefault(); + event.stopPropagation(); + var i=$navTab.index($(this)); + myLib.desktop.deskIcon.desktopMove($innerPanel,$deskIcon,$navTab,500,desktopWidth+lBarWidth,i); + }); + } + }; + +//桌面背景 +myLib.NS("desktop.wallpaper"); +myLib.desktop.wallpaper={ + init:function(imgUrl){ + + //将当前窗口宽度和高度数据存储在body元素上 + myLib.desktop.winWH(); + + var myData=myLib.desktop.getMydata() + ,winWh=myData.winWh + ,wallpaper=myData.panel.wallpaper + ,_this=this; + + if(imgUrl!==null){ + wallpaper.html(""); + var img=wallpaper.find("img"); + + myLib.getImgWh(imgUrl,function(imgW,imgH){ + if(imgW<=winWh.w){ + img.css('width',winWh.w); + }else{ + img.css({"margin-left":-(imgW-winWh.w)/2}); + } + if(imgH<=winWh.h){ + img.css('height',winWh.h); + }else{ + img.css({"margin-top":-(imgH-winWh.h)/2}); + } + }); + } + + //如果窗口大小改变,更新背景布局大小 + window.onresize=function(){ + _this.init(imgUrl); + }; + } + }; + +//桌面图标区域 +myLib.NS("desktop.deskIcon"); +myLib.desktop.deskIcon={ + //桌面图标排列 + arrangeIcons:function(desktop){ + var myData=myLib.desktop.getMydata() + ,winWh=myData.winWh + ,$navBar=myData.panel.navBar + ,navBarHeight=$navBar.outerHeight() + //计算一共有多少图标 + ,iconNum=desktop.find("li").size(); + + //存储当前总共有多少桌面图标 + desktop.data('deskIconNum',iconNum); + + var gH=120;//一个图标总高度,包括上下margin + var gW=120;//图标总宽度,包括左右margin + var rows=Math.floor((winWh['h']-navBarHeight-75)/gH); + var cols=Math.ceil(iconNum/rows); + var curcol=0,currow=0; + + desktop. + find("li") + .css({ + "position":"absolute", + "margin":0, + "left":function(index,value){ + var v=curcol*gW+30; + if((index+1)%rows==0){ + curcol=curcol+1; + } + return v; + }, + "top":function(index,value){ + var v=(index-rows*currow)*gH+20; + if((index+1)%rows==0){ + currow=currow+1; + } + return v; + }}); + }, + upDesktop:function($deskIcon,$deskIconBlock,$innerPanel,$deskIconNum,navBarHeight,lBarWidth){ + var myData=myLib.desktop.getMydata() + ,winWh=myData.winWh + ,w=winWh['w']-lBarWidth + ,h=(winWh['h']-75-navBarHeight) + ,_this=this; + + //设置桌面图标容器元素区域大小 + $innerPanel.css({"width":((w+lBarWidth)*$deskIconNum)+"px","height":h+"px"}); + $deskIcon.css({"width":w+"px","height":h+"px",'margin-right':lBarWidth}); + $deskIconBlock.css({"width":w+"px","height":h+"px","margin-top":navBarHeight,'margin-left':lBarWidth+'px','margin-bottom':75+"px"}); + + $deskIcon.each(function(){ + _this.arrangeIcons($(this)); + + $(this) + .droppable({ + scope:'a', + drop: function(event,ui) { + ui.draggable + .addClass("desktop_icon") + .insertBefore($(this).find(".add_icon")) + .find("span") + .addClass("icon"); + _this.init(); + myLib.desktop.lrBar.init(); + } + }); + }); + }, + desktopMove:function($innerPanel,$deskIcon,$navTab,dates,moveDx,nextIndex){ + $innerPanel + .stop() + .animate({ + left:-(nextIndex)*moveDx + },dates,function(){ + $deskIcon + .removeClass("currDesktop") + .eq(nextIndex) + .addClass("currDesktop"); + + $navTab + .removeClass("currTab") + .eq(nextIndex) + .addClass("currTab"); + }); + }, + init:function(iconData){ + + var myData=myLib.desktop.getMydata() + ,winWh=myData.winWh + ,$deskIconBlock=myData.panel.desktopPanel['_this'] + ,$innerPanel=myData.panel.desktopPanel.innerPanel + ,$deskIcon=myData.panel.desktopPanel['deskIcon'] + ,$deskIconNum=$deskIcon.size() + ,$navBar=myData.panel.navBar + ,navBarHeight=$navBar.outerHeight() + ,$navTab=$navBar.find("a") + ,lBarWidth=myData.panel.lrBar["_this"].outerWidth() + ,_this=this; + + _this.upDesktop($deskIcon,$deskIconBlock,$innerPanel,$deskIconNum,navBarHeight,lBarWidth); + + //如果窗口大小改变,则重新排列图标 + $(window).wresize(function(){ + myLib.desktop.winWH();//更新窗口大小数据 + _this.upDesktop($deskIcon,$deskIconBlock,$innerPanel,$deskIconNum,navBarHeight,lBarWidth); + }); + //附加data数据 + myLib.desktop.iconDataInit(iconData); + + //桌面可使用鼠标拖动切换 + var timeStart,timeEnd,dxStart,dxEnd; + + $innerPanel + .draggable({ + axis:'x', + start:function(event,ui){ + + $(this).css("cursor","move"); + timeStart=new Date().getTime(); + dxStart=event.pageX; + }, + stop:function(event,ui){ + $(this).css("cursor","inherit"); + timeEnd=new Date().getTime(); + dxEnd=event.pageX; + var timeCha=timeEnd-timeStart + ,dxCha=dxEnd-dxStart + ,currDesktop=$(this).find("ul.currDesktop") + ,deskIndex=$deskIcon.index(currDesktop) + ,moveDx=$deskIcon.width()+lBarWidth + ,dates=1000+timeCha; + + //左移 + if(dxCha < -150 && deskIndex<3){ + _this.desktopMove($(this),$deskIcon,$navTab,dates,moveDx,deskIndex+1); + //右移 + }else if(dxCha > 150 && deskIndex>0){ + _this.desktopMove($(this),$deskIcon,$navTab,dates,moveDx,deskIndex-1); + }else{ + $(this) + .animate({ + left:-(deskIndex)*moveDx + },500); + } + } + }); + + + //图标鼠标经过效果 + $deskIcon + .find("li") + .hover(function(){ + $(this).addClass("desktop_icon_over"); + }, + function(){ + $(this).removeClass("desktop_icon_over"); + }) + .not("li.add_icon") + //双击图标打开窗口 + .click(function(){ + var data=$(this).data("iconData"),id=this.id; + myLib.desktop.win.newWin({ + WindowTitle:data.title, + iframSrc:data.url, + WindowsId:id, + WindowAnimation:'none', + WindowWidth:data.winWidth, + WindowHeight:data.winHeight + }); + }) + .draggable({ + helper: "clone", + scroll:false, + opacity: 0.7, + scope:'a', + appendTo: 'body' , + zIndex:91, + start: function(event, ui) { + ui.helper.removeClass("desktop_icon_over"); + } + }) + .droppable({ + scope:'a', + drop: function(event,ui) { + ui.draggable + .unbind("dblclick") + .addClass("desktop_icon") + .insertBefore($(this)) + .find("span") + .addClass("icon"); + _this.init(); + myLib.desktop.lrBar.init(); + } + }); + + //初始化桌面右键菜单 + var data=[ + [{ + text:"显示桌面", + func:function(){} + }] + ,[{ + text:"系统设置", + func:function(){} + },{ + text:"主题设置", + func:function(){} + }] + ,[{ + text:"退出系统", + func:function(){} + }] + ,[{ + text:"关于fleiCms", + func:function(){} + }] + ]; + myLib.desktop.contextMenu($(document.body),data,"body",10); + } + } diff --git a/src/main/webapp/js/webqq/jquery-1.7.1.min.js b/src/main/webapp/js/webqq/jquery-1.7.1.min.js new file mode 100644 index 00000000..198b3ff0 --- /dev/null +++ b/src/main/webapp/js/webqq/jquery-1.7.1.min.js @@ -0,0 +1,4 @@ +/*! jQuery v1.7.1 jquery.com | jquery.org/license */ +(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!ck[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){cl||(cl=c.createElement("iframe"),cl.frameBorder=cl.width=cl.height=0),b.appendChild(cl);if(!cm||!cl.createElement)cm=(cl.contentWindow||cl.contentDocument).document,cm.write((c.compatMode==="CSS1Compat"?"":"")+""),cm.close();d=cm.createElement(a),cm.body.appendChild(d),e=f.css(d,"display"),b.removeChild(cl)}ck[a]=e}return ck[a]}function cu(a,b){var c={};f.each(cq.concat.apply([],cq.slice(0,b)),function(){c[this]=a});return c}function ct(){cr=b}function cs(){setTimeout(ct,0);return cr=f.now()}function cj(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ci(){try{return new a.XMLHttpRequest}catch(b){}}function cc(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g0){if(c!=="border")for(;g=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?parseFloat(d):j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c
                                a",d=q.getElementsByTagName("*"),e=q.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=q.getElementsByTagName("input")[0],b={leadingWhitespace:q.firstChild.nodeType===3,tbody:!q.getElementsByTagName("tbody").length,htmlSerialize:!!q.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:q.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete q.test}catch(s){b.deleteExpando=!1}!q.addEventListener&&q.attachEvent&&q.fireEvent&&(q.attachEvent("onclick",function(){b.noCloneEvent=!1}),q.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),q.appendChild(i),k=c.createDocumentFragment(),k.appendChild(q.lastChild),b.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,k.removeChild(i),k.appendChild(q),q.innerHTML="",a.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",q.style.width="2px",q.appendChild(j),b.reliableMarginRight=(parseInt((a.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0);if(q.attachEvent)for(o in{submit:1,change:1,focusin:1})n="on"+o,p=n in q,p||(q.setAttribute(n,"return;"),p=typeof q[n]=="function"),b[o+"Bubbles"]=p;k.removeChild(q),k=g=h=j=q=i=null,f(function(){var a,d,e,g,h,i,j,k,m,n,o,r=c.getElementsByTagName("body")[0];!r||(j=1,k="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;",m="visibility:hidden;border:0;",n="style='"+k+"border:5px solid #000;padding:0;'",o="
                                "+""+"
                                ",a=c.createElement("div"),a.style.cssText=m+"width:0;height:0;position:static;top:0;margin-top:"+j+"px",r.insertBefore(a,r.firstChild),q=c.createElement("div"),a.appendChild(q),q.innerHTML="
                                t
                                ",l=q.getElementsByTagName("td"),p=l[0].offsetHeight===0,l[0].style.display="",l[1].style.display="none",b.reliableHiddenOffsets=p&&l[0].offsetHeight===0,q.innerHTML="",q.style.width=q.style.paddingLeft="1px",f.boxModel=b.boxModel=q.offsetWidth===2,typeof q.style.zoom!="undefined"&&(q.style.display="inline",q.style.zoom=1,b.inlineBlockNeedsLayout=q.offsetWidth===2,q.style.display="",q.innerHTML="
                                ",b.shrinkWrapBlocks=q.offsetWidth!==2),q.style.cssText=k+m,q.innerHTML=o,d=q.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,i={doesNotAddBorder:e.offsetTop!==5,doesAddBorderForTableAndCells:h.offsetTop===5},e.style.position="fixed",e.style.top="20px",i.fixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",i.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,i.doesNotIncludeMarginInBodyOffset=r.offsetTop!==j,r.removeChild(a),q=a=null,f.extend(b,i))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.nodeName.toLowerCase()]||f.valHooks[g.type];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;h=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/\bhover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function(a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")}; +f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;le&&i.push({elem:this,matches:d.slice(e)});for(j=0;j0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

                                ";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
                                ";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h0)for(h=g;h=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/",""],legend:[1,"
                                ","
                                "],thead:[1,"","
                                "],tr:[2,"","
                                "],td:[3,"","
                                "],col:[2,"","
                                "],area:[1,"",""],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div
                                ","
                                "]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function() +{for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1>");try{for(var c=0,d=this.length;c1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||!bc.test("<"+a.nodeName)?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");b===c?bh.appendChild(o):U(b).appendChild(o),o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]===""&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return br.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bq,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bq.test(g)?g.replace(bq,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,b){var c,d,e;b=b.replace(bs,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b)));return c}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f===null&&g&&(e=g[b])&&(f=e),!bt.test(f)&&bu.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f||0,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bD=/%20/g,bE=/\[\]$/,bF=/\r?\n/g,bG=/#.*$/,bH=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bI=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bJ=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bK=/^(?:GET|HEAD)$/,bL=/^\/\//,bM=/\?/,bN=/)<[^<]*)*<\/script>/gi,bO=/^(?:select|textarea)/i,bP=/\s+/,bQ=/([?&])_=[^&]*/,bR=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bS=f.fn.load,bT={},bU={},bV,bW,bX=["*/"]+["*"];try{bV=e.href}catch(bY){bV=c.createElement("a"),bV.href="",bV=bV.href}bW=bR.exec(bV.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bS)return bS.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("
                                ").append(c.replace(bN,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bO.test(this.nodeName)||bI.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bF,"\r\n")}}):{name:b.name,value:c.replace(bF,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b_(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b_(a,b);return a},ajaxSettings:{url:bV,isLocal:bJ.test(bW[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bX},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bZ(bT),ajaxTransport:bZ(bU),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?cb(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cc(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bH.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bG,"").replace(bL,bW[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bP),d.crossDomain==null&&(r=bR.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bW[1]&&r[2]==bW[2]&&(r[3]||(r[1]==="http:"?80:443))==(bW[3]||(bW[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bT,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bK.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bM.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bQ,"$1_="+x);d.url=y+(y===d.url?(bM.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bX+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=b$(bU,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)ca(g,a[g],c,e);return d.join("&").replace(bD,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cd=f.now(),ce=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cd++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ce.test(b.url)||e&&ce.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ce,l),b.url===j&&(e&&(k=k.replace(ce,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cf=a.ActiveXObject?function(){for(var a in ch)ch[a](0,1)}:!1,cg=0,ch;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ci()||cj()}:ci,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cf&&delete ch[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cg,cf&&(ch||(ch={},f(a).unload(cf)),ch[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var ck={},cl,cm,cn=/^(?:toggle|show|hide)$/,co=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cp,cq=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cr;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("show",3),a,b,c);for(var g=0,h=this.length;g=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cy(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cy(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,d,"padding")):this[d]():null},f.fn["outer"+c]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,d,a?"margin":"border")):this[d]():null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var i=f.css(e,d),j=parseFloat(i);return f.isNumeric(j)?j:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window); \ No newline at end of file diff --git a/src/main/webapp/js/webqq/jquery-smartMenu-min.js b/src/main/webapp/js/webqq/jquery-smartMenu-min.js new file mode 100644 index 00000000..cab3a203 --- /dev/null +++ b/src/main/webapp/js/webqq/jquery-smartMenu-min.js @@ -0,0 +1,10 @@ +/* + * smartMenu.js 智能上下文菜单插件 + * http://www.zhangxinxu.com/ + * + * Copyright 2011, zhangxinxu + * + * 2011-05-26 v1.0 编写 + * 2011-06-03 v1.1 修复func中this失准问题 + */ +(function(a){var b=a(document).data("func",{}),c=a("body");a.smartMenu=a.noop;a.fn.smartMenu=function(g,d){var h={name:"",offsetX:2,offsetY:2,textLimit:6,beforeShow:a.noop,afterShow:a.noop};var i=a.extend(h,d||{});var f=function(k){var m=k||g,j=k?Math.random().toString():i.name,o="",n="",l="smart_menu_";if(a.isArray(m)&&m.length){o='
                                  ';a.each(m,function(q,p){if(q){o=o+'
                                •  
                                • '}if(a.isArray(p)){a.each(p,function(s,v){var w=v.text,u="",r="",t=Math.random().toString().replace(".","");if(w){if(w.length>i.textLimit){w=w.slice(0,i.textLimit)+"…";r=' title="'+v.text+'"'}if(a.isArray(v.data)&&v.data.length){u='
                                • '+f(v.data)+''+w+"
                                • "}else{u='
                                • '+w+"
                                • "}o+=u;var x=b.data("func");x[t]=v.func;b.data("func",x)}})}});o=o+"
                                "}return o},e=function(){var j="#smartMenu_",l="smart_menu_",k=a(j+i.name);if(!k.size()){a("body").append(f());a(j+i.name+" a").bind("click",function(){var m=a(this).attr("data-key"),n=b.data("func")[m];if(a.isFunction(n)){n.call(b.data("trigger"))}a.smartMenu.hide();return false});a(j+i.name+" li").each(function(){var m=a(this).attr("data-hover"),n=l+"li_hover";if(m){a(this).hover(function(){a(this).addClass(n).children("."+l+"box").show();a(this).children("."+l+"a").addClass(l+"a_hover")},function(){a(this).removeClass(n).children("."+l+"box").hide();a(this).children("."+l+"a").removeClass(l+"a_hover")})}});return a(j+i.name)}return k};a(this).each(function(){this.oncontextmenu=function(l){if(a.isFunction(i.beforeShow)){i.beforeShow.call(this)}l=l||window.event;l.cancelBubble=true;if(l.stopPropagation){l.stopPropagation()}a.smartMenu.hide();var k=b.scrollTop();var j=e();if(j){j.css({display:"block",left:l.clientX+i.offsetX,top:l.clientY+k+i.offsetY});b.data("target",j);b.data("trigger",this);if(a.isFunction(i.afterShow)){i.afterShow.call(this)}return false}}});if(!c.data("bind")){c.bind("click",a.smartMenu.hide).data("bind",true)}};a.extend(a.smartMenu,{hide:function(){var d=b.data("target");if(d&&d.css("display")==="block"){d.hide()}},remove:function(){var d=b.data("target");if(d){d.remove()}}})})(jQuery); \ No newline at end of file diff --git a/src/main/webapp/js/webqq/jquery-ui-1.8.18.custom.min.js b/src/main/webapp/js/webqq/jquery-ui-1.8.18.custom.min.js new file mode 100644 index 00000000..39fa9458 --- /dev/null +++ b/src/main/webapp/js/webqq/jquery-ui-1.8.18.custom.min.js @@ -0,0 +1,102 @@ +/*! + * jQuery UI 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI + */(function(a,b){function d(b){return!a(b).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}function c(b,c){var e=b.nodeName.toLowerCase();if("area"===e){var f=b.parentNode,g=f.name,h;if(!b.href||!g||f.nodeName.toLowerCase()!=="map")return!1;h=a("img[usemap=#"+g+"]")[0];return!!h&&d(h)}return(/input|select|textarea|button|object/.test(e)?!b.disabled:"a"==e?b.href||c:c)&&d(b)}a.ui=a.ui||{};a.ui.version||(a.extend(a.ui,{version:"1.8.18",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}}),a.fn.extend({propAttr:a.fn.prop||a.fn.attr,_focus:a.fn.focus,focus:function(b,c){return typeof b=="number"?this.each(function(){var d=this;setTimeout(function(){a(d).focus(),c&&c.call(d)},b)}):this._focus.apply(this,arguments)},scrollParent:function(){var b;a.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?b=this.parents().filter(function(){return/(relative|absolute|fixed)/.test(a.curCSS(this,"position",1))&&/(auto|scroll)/.test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0):b=this.parents().filter(function(){return/(auto|scroll)/.test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!b.length?a(document):b},zIndex:function(c){if(c!==b)return this.css("zIndex",c);if(this.length){var d=a(this[0]),e,f;while(d.length&&d[0]!==document){e=d.css("position");if(e==="absolute"||e==="relative"||e==="fixed"){f=parseInt(d.css("zIndex"),10);if(!isNaN(f)&&f!==0)return f}d=d.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}}),a.each(["Width","Height"],function(c,d){function h(b,c,d,f){a.each(e,function(){c-=parseFloat(a.curCSS(b,"padding"+this,!0))||0,d&&(c-=parseFloat(a.curCSS(b,"border"+this+"Width",!0))||0),f&&(c-=parseFloat(a.curCSS(b,"margin"+this,!0))||0)});return c}var e=d==="Width"?["Left","Right"]:["Top","Bottom"],f=d.toLowerCase(),g={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};a.fn["inner"+d]=function(c){if(c===b)return g["inner"+d].call(this);return this.each(function(){a(this).css(f,h(this,c)+"px")})},a.fn["outer"+d]=function(b,c){if(typeof b!="number")return g["outer"+d].call(this,b);return this.each(function(){a(this).css(f,h(this,b,!0,c)+"px")})}}),a.extend(a.expr[":"],{data:function(b,c,d){return!!a.data(b,d[3])},focusable:function(b){return c(b,!isNaN(a.attr(b,"tabindex")))},tabbable:function(b){var d=a.attr(b,"tabindex"),e=isNaN(d);return(e||d>=0)&&c(b,!e)}}),a(function(){var b=document.body,c=b.appendChild(c=document.createElement("div"));c.offsetHeight,a.extend(c.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0}),a.support.minHeight=c.offsetHeight===100,a.support.selectstart="onselectstart"in c,b.removeChild(c).style.display="none"}),a.extend(a.ui,{plugin:{add:function(b,c,d){var e=a.ui[b].prototype;for(var f in d)e.plugins[f]=e.plugins[f]||[],e.plugins[f].push([c,d[f]])},call:function(a,b,c){var d=a.plugins[b];if(!!d&&!!a.element[0].parentNode)for(var e=0;e0)return!0;b[d]=1,e=b[d]>0,b[d]=0;return e},isOverAxis:function(a,b,c){return a>b&&a=9)&&!b.button)return this._mouseUp(b);if(this._mouseStarted){this._mouseDrag(b);return b.preventDefault()}this._mouseDistanceMet(b)&&this._mouseDelayMet(b)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,b)!==!1,this._mouseStarted?this._mouseDrag(b):this._mouseUp(b));return!this._mouseStarted},_mouseUp:function(b){a(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,b.target==this._mouseDownEvent.target&&a.data(b.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(b));return!1},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(a){return this.mouseDelayMet},_mouseStart:function(a){},_mouseDrag:function(a){},_mouseStop:function(a){},_mouseCapture:function(a){return!0}})})(jQuery);/* + * jQuery UI Position 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Position + */(function(a,b){a.ui=a.ui||{};var c=/left|center|right/,d=/top|center|bottom/,e="center",f={},g=a.fn.position,h=a.fn.offset;a.fn.position=function(b){if(!b||!b.of)return g.apply(this,arguments);b=a.extend({},b);var h=a(b.of),i=h[0],j=(b.collision||"flip").split(" "),k=b.offset?b.offset.split(" "):[0,0],l,m,n;i.nodeType===9?(l=h.width(),m=h.height(),n={top:0,left:0}):i.setTimeout?(l=h.width(),m=h.height(),n={top:h.scrollTop(),left:h.scrollLeft()}):i.preventDefault?(b.at="left top",l=m=0,n={top:b.of.pageY,left:b.of.pageX}):(l=h.outerWidth(),m=h.outerHeight(),n=h.offset()),a.each(["my","at"],function(){var a=(b[this]||"").split(" ");a.length===1&&(a=c.test(a[0])?a.concat([e]):d.test(a[0])?[e].concat(a):[e,e]),a[0]=c.test(a[0])?a[0]:e,a[1]=d.test(a[1])?a[1]:e,b[this]=a}),j.length===1&&(j[1]=j[0]),k[0]=parseInt(k[0],10)||0,k.length===1&&(k[1]=k[0]),k[1]=parseInt(k[1],10)||0,b.at[0]==="right"?n.left+=l:b.at[0]===e&&(n.left+=l/2),b.at[1]==="bottom"?n.top+=m:b.at[1]===e&&(n.top+=m/2),n.left+=k[0],n.top+=k[1];return this.each(function(){var c=a(this),d=c.outerWidth(),g=c.outerHeight(),h=parseInt(a.curCSS(this,"marginLeft",!0))||0,i=parseInt(a.curCSS(this,"marginTop",!0))||0,o=d+h+(parseInt(a.curCSS(this,"marginRight",!0))||0),p=g+i+(parseInt(a.curCSS(this,"marginBottom",!0))||0),q=a.extend({},n),r;b.my[0]==="right"?q.left-=d:b.my[0]===e&&(q.left-=d/2),b.my[1]==="bottom"?q.top-=g:b.my[1]===e&&(q.top-=g/2),f.fractions||(q.left=Math.round(q.left),q.top=Math.round(q.top)),r={left:q.left-h,top:q.top-i},a.each(["left","top"],function(c,e){a.ui.position[j[c]]&&a.ui.position[j[c]][e](q,{targetWidth:l,targetHeight:m,elemWidth:d,elemHeight:g,collisionPosition:r,collisionWidth:o,collisionHeight:p,offset:k,my:b.my,at:b.at})}),a.fn.bgiframe&&c.bgiframe(),c.offset(a.extend(q,{using:b.using}))})},a.ui.position={fit:{left:function(b,c){var d=a(window),e=c.collisionPosition.left+c.collisionWidth-d.width()-d.scrollLeft();b.left=e>0?b.left-e:Math.max(b.left-c.collisionPosition.left,b.left)},top:function(b,c){var d=a(window),e=c.collisionPosition.top+c.collisionHeight-d.height()-d.scrollTop();b.top=e>0?b.top-e:Math.max(b.top-c.collisionPosition.top,b.top)}},flip:{left:function(b,c){if(c.at[0]!==e){var d=a(window),f=c.collisionPosition.left+c.collisionWidth-d.width()-d.scrollLeft(),g=c.my[0]==="left"?-c.elemWidth:c.my[0]==="right"?c.elemWidth:0,h=c.at[0]==="left"?c.targetWidth:-c.targetWidth,i=-2*c.offset[0];b.left+=c.collisionPosition.left<0?g+h+i:f>0?g+h+i:0}},top:function(b,c){if(c.at[1]!==e){var d=a(window),f=c.collisionPosition.top+c.collisionHeight-d.height()-d.scrollTop(),g=c.my[1]==="top"?-c.elemHeight:c.my[1]==="bottom"?c.elemHeight:0,h=c.at[1]==="top"?c.targetHeight:-c.targetHeight,i=-2*c.offset[1];b.top+=c.collisionPosition.top<0?g+h+i:f>0?g+h+i:0}}}},a.offset.setOffset||(a.offset.setOffset=function(b,c){/static/.test(a.curCSS(b,"position"))&&(b.style.position="relative");var d=a(b),e=d.offset(),f=parseInt(a.curCSS(b,"top",!0),10)||0,g=parseInt(a.curCSS(b,"left",!0),10)||0,h={top:c.top-e.top+f,left:c.left-e.left+g};"using"in c?c.using.call(b,h):d.css(h)},a.fn.offset=function(b){var c=this[0];if(!c||!c.ownerDocument)return null;if(b)return this.each(function(){a.offset.setOffset(this,b)});return h.call(this)}),function(){var b=document.getElementsByTagName("body")[0],c=document.createElement("div"),d,e,g,h,i;d=document.createElement(b?"div":"body"),g={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},b&&a.extend(g,{position:"absolute",left:"-1000px",top:"-1000px"});for(var j in g)d.style[j]=g[j];d.appendChild(c),e=b||document.documentElement,e.insertBefore(d,e.firstChild),c.style.cssText="position: absolute; left: 10.7432222px; top: 10.432325px; height: 30px; width: 201px;",h=a(c).offset(function(a,b){return b}).offset(),d.innerHTML="",e.removeChild(d),i=h.top+h.left+(b?2e3:0),f.fractions=i>21&&i<22}()})(jQuery);/* + * jQuery UI Draggable 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Draggables + * + * Depends: + * jquery.ui.core.js + * jquery.ui.mouse.js + * jquery.ui.widget.js + */(function(a,b){a.widget("ui.draggable",a.ui.mouse,{widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1},_create:function(){this.options.helper=="original"&&!/^(?:r|a|f)/.test(this.element.css("position"))&&(this.element[0].style.position="relative"),this.options.addClasses&&this.element.addClass("ui-draggable"),this.options.disabled&&this.element.addClass("ui-draggable-disabled"),this._mouseInit()},destroy:function(){if(!!this.element.data("draggable")){this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"),this._mouseDestroy();return this}},_mouseCapture:function(b){var c=this.options;if(this.helper||c.disabled||a(b.target).is(".ui-resizable-handle"))return!1;this.handle=this._getHandle(b);if(!this.handle)return!1;c.iframeFix&&a(c.iframeFix===!0?"iframe":c.iframeFix).each(function(){a('
                                ').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1e3}).css(a(this).offset()).appendTo("body")});return!0},_mouseStart:function(b){var c=this.options;this.helper=this._createHelper(b),this._cacheHelperProportions(),a.ui.ddmanager&&(a.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(),this.offset=this.positionAbs=this.element.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},a.extend(this.offset,{click:{left:b.pageX-this.offset.left,top:b.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.originalPosition=this.position=this._generatePosition(b),this.originalPageX=b.pageX,this.originalPageY=b.pageY,c.cursorAt&&this._adjustOffsetFromHelper(c.cursorAt),c.containment&&this._setContainment();if(this._trigger("start",b)===!1){this._clear();return!1}this._cacheHelperProportions(),a.ui.ddmanager&&!c.dropBehaviour&&a.ui.ddmanager.prepareOffsets(this,b),this.helper.addClass("ui-draggable-dragging"),this._mouseDrag(b,!0),a.ui.ddmanager&&a.ui.ddmanager.dragStart(this,b);return!0},_mouseDrag:function(b,c){this.position=this._generatePosition(b),this.positionAbs=this._convertPositionTo("absolute");if(!c){var d=this._uiHash();if(this._trigger("drag",b,d)===!1){this._mouseUp({});return!1}this.position=d.position}if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";a.ui.ddmanager&&a.ui.ddmanager.drag(this,b);return!1},_mouseStop:function(b){var c=!1;a.ui.ddmanager&&!this.options.dropBehaviour&&(c=a.ui.ddmanager.drop(this,b)),this.dropped&&(c=this.dropped,this.dropped=!1);if((!this.element[0]||!this.element[0].parentNode)&&this.options.helper=="original")return!1;if(this.options.revert=="invalid"&&!c||this.options.revert=="valid"&&c||this.options.revert===!0||a.isFunction(this.options.revert)&&this.options.revert.call(this.element,c)){var d=this;a(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){d._trigger("stop",b)!==!1&&d._clear()})}else this._trigger("stop",b)!==!1&&this._clear();return!1},_mouseUp:function(b){this.options.iframeFix===!0&&a("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)}),a.ui.ddmanager&&a.ui.ddmanager.dragStop(this,b);return a.ui.mouse.prototype._mouseUp.call(this,b)},cancel:function(){this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear();return this},_getHandle:function(b){var c=!this.options.handle||!a(this.options.handle,this.element).length?!0:!1;a(this.options.handle,this.element).find("*").andSelf().each(function(){this==b.target&&(c=!0)});return c},_createHelper:function(b){var c=this.options,d=a.isFunction(c.helper)?a(c.helper.apply(this.element[0],[b])):c.helper=="clone"?this.element.clone().removeAttr("id"):this.element;d.parents("body").length||d.appendTo(c.appendTo=="parent"?this.element[0].parentNode:c.appendTo),d[0]!=this.element[0]&&!/(fixed|absolute)/.test(d.css("position"))&&d.css("position","absolute");return d},_adjustOffsetFromHelper:function(b){typeof b=="string"&&(b=b.split(" ")),a.isArray(b)&&(b={left:+b[0],top:+b[1]||0}),"left"in b&&(this.offset.click.left=b.left+this.margins.left),"right"in b&&(this.offset.click.left=this.helperProportions.width-b.right+this.margins.left),"top"in b&&(this.offset.click.top=b.top+this.margins.top),"bottom"in b&&(this.offset.click.top=this.helperProportions.height-b.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var b=this.offsetParent.offset();this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0])&&(b.left+=this.scrollParent.scrollLeft(),b.top+=this.scrollParent.scrollTop());if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&a.browser.msie)b={top:0,left:0};return{top:b.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:b.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.element.position();return{top:a.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var b=this.options;b.containment=="parent"&&(b.containment=this.helper[0].parentNode);if(b.containment=="document"||b.containment=="window")this.containment=[b.containment=="document"?0:a(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,b.containment=="document"?0:a(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,(b.containment=="document"?0:a(window).scrollLeft())+a(b.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(b.containment=="document"?0:a(window).scrollTop())+(a(b.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(b.containment)&&b.containment.constructor!=Array){var c=a(b.containment),d=c[0];if(!d)return;var e=c.offset(),f=a(d).css("overflow")!="hidden";this.containment=[(parseInt(a(d).css("borderLeftWidth"),10)||0)+(parseInt(a(d).css("paddingLeft"),10)||0),(parseInt(a(d).css("borderTopWidth"),10)||0)+(parseInt(a(d).css("paddingTop"),10)||0),(f?Math.max(d.scrollWidth,d.offsetWidth):d.offsetWidth)-(parseInt(a(d).css("borderLeftWidth"),10)||0)-(parseInt(a(d).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(f?Math.max(d.scrollHeight,d.offsetHeight):d.offsetHeight)-(parseInt(a(d).css("borderTopWidth"),10)||0)-(parseInt(a(d).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relative_container=c}else b.containment.constructor==Array&&(this.containment=b.containment)},_convertPositionTo:function(b,c){c||(c=this.position);var d=b=="absolute"?1:-1,e=this.options,f=this.cssPosition=="absolute"&&(this.scrollParent[0]==document||!a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,g=/(html|body)/i.test(f[0].tagName);return{top:c.top+this.offset.relative.top*d+this.offset.parent.top*d-(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():g?0:f.scrollTop())*d),left:c.left+this.offset.relative.left*d+this.offset.parent.left*d-(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():g?0:f.scrollLeft())*d)}},_generatePosition:function(b){var c=this.options,d=this.cssPosition=="absolute"&&(this.scrollParent[0]==document||!a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(d[0].tagName),f=b.pageX,g=b.pageY;if(this.originalPosition){var h;if(this.containment){if(this.relative_container){var i=this.relative_container.offset();h=[this.containment[0]+i.left,this.containment[1]+i.top,this.containment[2]+i.left,this.containment[3]+i.top]}else h=this.containment;b.pageX-this.offset.click.lefth[2]&&(f=h[2]+this.offset.click.left),b.pageY-this.offset.click.top>h[3]&&(g=h[3]+this.offset.click.top)}if(c.grid){var j=c.grid[1]?this.originalPageY+Math.round((g-this.originalPageY)/c.grid[1])*c.grid[1]:this.originalPageY;g=h?j-this.offset.click.toph[3]?j-this.offset.click.toph[2]?k-this.offset.click.left=0;k--){var l=d.snapElements[k].left,m=l+d.snapElements[k].width,n=d.snapElements[k].top,o=n+d.snapElements[k].height;if(!(l-f=k&&g<=l||h>=k&&h<=l||gl)&&(e>=i&&e<=j||f>=i&&f<=j||ej);default:return!1}},a.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(b,c){var d=a.ui.ddmanager.droppables[b.options.scope]||[],e=c?c.type:null,f=(b.currentItem||b.element).find(":data(droppable)").andSelf();droppablesLoop:for(var g=0;g
                                ').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("resizable",this.element.data("resizable")),this.elementIsWrapper=!0,this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")}),this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0}),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css({margin:this.originalElement.css("margin")}),this._proportionallyResize()),this.handles=c.handles||(a(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se");if(this.handles.constructor==String){this.handles=="all"&&(this.handles="n,e,s,w,se,sw,ne,nw");var d=this.handles.split(",");this.handles={};for(var e=0;e');/sw|se|ne|nw/.test(f)&&h.css({zIndex:++c.zIndex}),"se"==f&&h.addClass("ui-icon ui-icon-gripsmall-diagonal-se"),this.handles[f]=".ui-resizable-"+f,this.element.append(h)}}this._renderAxis=function(b){b=b||this.element;for(var c in this.handles){this.handles[c].constructor==String&&(this.handles[c]=a(this.handles[c],this.element).show());if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var d=a(this.handles[c],this.element),e=0;e=/sw|ne|nw|se|n|s/.test(c)?d.outerHeight():d.outerWidth();var f=["padding",/ne|nw|n/.test(c)?"Top":/se|sw|s/.test(c)?"Bottom":/^e$/.test(c)?"Right":"Left"].join("");b.css(f,e),this._proportionallyResize()}if(!a(this.handles[c]).length)continue}},this._renderAxis(this.element),this._handles=a(".ui-resizable-handle",this.element).disableSelection(),this._handles.mouseover(function(){if(!b.resizing){if(this.className)var a=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);b.axis=a&&a[1]?a[1]:"se"}}),c.autoHide&&(this._handles.hide(),a(this.element).addClass("ui-resizable-autohide").hover(function(){c.disabled||(a(this).removeClass("ui-resizable-autohide"),b._handles.show())},function(){c.disabled||b.resizing||(a(this).addClass("ui-resizable-autohide"),b._handles.hide())})),this._mouseInit()},destroy:function(){this._mouseDestroy();var b=function(b){a(b).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){b(this.element);var c=this.element;c.after(this.originalElement.css({position:c.css("position"),width:c.outerWidth(),height:c.outerHeight(),top:c.css("top"),left:c.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle),b(this.originalElement);return this},_mouseCapture:function(b){var c=!1;for(var d in this.handles)a(this.handles[d])[0]==b.target&&(c=!0);return!this.options.disabled&&c},_mouseStart:function(b){var d=this.options,e=this.element.position(),f=this.element;this.resizing=!0,this.documentScroll={top:a(document).scrollTop(),left:a(document).scrollLeft()},(f.is(".ui-draggable")||/absolute/.test(f.css("position")))&&f.css({position:"absolute",top:e.top,left:e.left}),this._renderProxy();var g=c(this.helper.css("left")),h=c(this.helper.css("top"));d.containment&&(g+=a(d.containment).scrollLeft()||0,h+=a(d.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:g,top:h},this.size=this._helper?{width:f.outerWidth(),height:f.outerHeight()}:{width:f.width(),height:f.height()},this.originalSize=this._helper?{width:f.outerWidth(),height:f.outerHeight()}:{width:f.width(),height:f.height()},this.originalPosition={left:g,top:h},this.sizeDiff={width:f.outerWidth()-f.width(),height:f.outerHeight()-f.height()},this.originalMousePosition={left:b.pageX,top:b.pageY},this.aspectRatio=typeof d.aspectRatio=="number"?d.aspectRatio:this.originalSize.width/this.originalSize.height||1;var i=a(".ui-resizable-"+this.axis).css("cursor");a("body").css("cursor",i=="auto"?this.axis+"-resize":i),f.addClass("ui-resizable-resizing"),this._propagate("start",b);return!0},_mouseDrag:function(b){var c=this.helper,d=this.options,e={},f=this,g=this.originalMousePosition,h=this.axis,i=b.pageX-g.left||0,j=b.pageY-g.top||0,k=this._change[h];if(!k)return!1;var l=k.apply(this,[b,i,j]),m=a.browser.msie&&a.browser.version<7,n=this.sizeDiff;this._updateVirtualBoundaries(b.shiftKey);if(this._aspectRatio||b.shiftKey)l=this._updateRatio(l,b);l=this._respectSize(l,b),this._propagate("resize",b),c.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"}),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),this._updateCache(l),this._trigger("resize",b,this.ui());return!1},_mouseStop:function(b){this.resizing=!1;var c=this.options,d=this;if(this._helper){var e=this._proportionallyResizeElements,f=e.length&&/textarea/i.test(e[0].nodeName),g=f&&a.ui.hasScroll(e[0],"left")?0:d.sizeDiff.height,h=f?0:d.sizeDiff.width,i={width:d.helper.width()-h,height:d.helper.height()-g},j=parseInt(d.element.css("left"),10)+(d.position.left-d.originalPosition.left)||null,k=parseInt(d.element.css("top"),10)+(d.position.top-d.originalPosition.top)||null;c.animate||this.element.css(a.extend(i,{top:k,left:j})),d.helper.height(d.size.height),d.helper.width(d.size.width),this._helper&&!c.animate&&this._proportionallyResize()}a("body").css("cursor","auto"),this.element.removeClass("ui-resizable-resizing"),this._propagate("stop",b),this._helper&&this.helper.remove();return!1},_updateVirtualBoundaries:function(a){var b=this.options,c,e,f,g,h;h={minWidth:d(b.minWidth)?b.minWidth:0,maxWidth:d(b.maxWidth)?b.maxWidth:Infinity,minHeight:d(b.minHeight)?b.minHeight:0,maxHeight:d(b.maxHeight)?b.maxHeight:Infinity};if(this._aspectRatio||a)c=h.minHeight*this.aspectRatio,f=h.minWidth/this.aspectRatio,e=h.maxHeight*this.aspectRatio,g=h.maxWidth/this.aspectRatio,c>h.minWidth&&(h.minWidth=c),f>h.minHeight&&(h.minHeight=f),ea.width,k=d(a.height)&&e.minHeight&&e.minHeight>a.height;j&&(a.width=e.minWidth),k&&(a.height=e.minHeight),h&&(a.width=e.maxWidth),i&&(a.height=e.maxHeight);var l=this.originalPosition.left+this.originalSize.width,m=this.position.top+this.size.height,n=/sw|nw|w/.test(g),o=/nw|ne|n/.test(g);j&&n&&(a.left=l-e.minWidth),h&&n&&(a.left=l-e.maxWidth),k&&o&&(a.top=m-e.minHeight),i&&o&&(a.top=m-e.maxHeight);var p=!a.width&&!a.height;p&&!a.left&&a.top?a.top=null:p&&!a.top&&a.left&&(a.left=null);return a},_proportionallyResize:function(){var b=this.options;if(!!this._proportionallyResizeElements.length){var c=this.helper||this.element;for(var d=0;d');var d=a.browser.msie&&a.browser.version<7,e=d?1:0,f=d?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+f,height:this.element.outerHeight()+f,position:"absolute",left:this.elementOffset.left-e+"px",top:this.elementOffset.top-e+"px",zIndex:++c.zIndex}),this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(a,b,c){return{width:this.originalSize.width+b}},w:function(a,b,c){var d=this.options,e=this.originalSize,f=this.originalPosition;return{left:f.left+b,width:e.width-b}},n:function(a,b,c){var d=this.options,e=this.originalSize,f=this.originalPosition;return{top:f.top+c,height:e.height-c}},s:function(a,b,c){return{height:this.originalSize.height+c}},se:function(b,c,d){return a.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[b,c,d]))},sw:function(b,c,d){return a.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[b,c,d]))},ne:function(b,c,d){return a.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[b,c,d]))},nw:function(b,c,d){return a.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[b,c,d]))}},_propagate:function(b,c){a.ui.plugin.call(this,b,[c,this.ui()]),b!="resize"&&this._trigger(b,c,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),a.extend(a.ui.resizable,{version:"1.8.18"}),a.ui.plugin.add("resizable","alsoResize",{start:function(b,c){var d=a(this).data("resizable"),e=d.options,f=function(b){a(b).each(function(){var b=a(this);b.data("resizable-alsoresize",{width:parseInt(b.width(),10),height:parseInt(b.height(),10),left:parseInt(b.css("left"),10),top:parseInt(b.css("top"),10)})})};typeof e.alsoResize=="object"&&!e.alsoResize.parentNode?e.alsoResize.length?(e.alsoResize=e.alsoResize[0],f(e.alsoResize)):a.each(e.alsoResize,function(a){f(a)}):f(e.alsoResize)},resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.originalSize,g=d.originalPosition,h={height:d.size.height-f.height||0,width:d.size.width-f.width||0,top:d.position.top-g.top||0,left:d.position.left-g.left||0},i=function(b,d){a(b).each(function(){var b=a(this),e=a(this).data("resizable-alsoresize"),f={},g=d&&d.length?d:b.parents(c.originalElement[0]).length?["width","height"]:["width","height","top","left"];a.each(g,function(a,b){var c=(e[b]||0)+(h[b]||0);c&&c>=0&&(f[b]=c||null)}),b.css(f)})};typeof e.alsoResize=="object"&&!e.alsoResize.nodeType?a.each(e.alsoResize,function(a,b){i(a,b)}):i(e.alsoResize)},stop:function(b,c){a(this).removeData("resizable-alsoresize")}}),a.ui.plugin.add("resizable","animate",{stop:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d._proportionallyResizeElements,g=f.length&&/textarea/i.test(f[0].nodeName),h=g&&a.ui.hasScroll(f[0],"left")?0:d.sizeDiff.height,i=g?0:d.sizeDiff.width,j={width:d.size.width-i,height:d.size.height-h},k=parseInt(d.element.css("left"),10)+(d.position.left-d.originalPosition.left)||null,l=parseInt(d.element.css("top"),10)+(d.position.top-d.originalPosition.top)||null;d.element.animate(a.extend(j,l&&k?{top:l,left:k}:{}),{duration:e.animateDuration,easing:e.animateEasing,step:function(){var c={width:parseInt(d.element.css("width"),10),height:parseInt(d.element.css("height"),10),top:parseInt(d.element.css("top"),10),left:parseInt(d.element.css("left"),10)};f&&f.length&&a(f[0]).css({width:c.width,height:c.height}),d._updateCache(c),d._propagate("resize",b)}})}}),a.ui.plugin.add("resizable","containment",{start:function(b,d){var e=a(this).data("resizable"),f=e.options,g=e.element,h=f.containment,i=h instanceof a?h.get(0):/parent/.test(h)?g.parent().get(0):h;if(!!i){e.containerElement=a(i);if(/document/.test(h)||h==document)e.containerOffset={left:0,top:0},e.containerPosition={left:0,top:0},e.parentData={element:a(document),left:0,top:0,width:a(document).width(),height:a(document).height()||document.body.parentNode.scrollHeight};else{var j=a(i),k=[];a(["Top","Right","Left","Bottom"]).each(function(a,b){k[a]=c(j.css("padding"+b))}),e.containerOffset=j.offset(),e.containerPosition=j.position(),e.containerSize={height:j.innerHeight()-k[3],width:j.innerWidth()-k[1]};var l=e.containerOffset,m=e.containerSize.height,n=e.containerSize.width,o=a.ui.hasScroll(i,"left")?i.scrollWidth:n,p=a.ui.hasScroll(i)?i.scrollHeight:m;e.parentData={element:i,left:l.left,top:l.top,width:o,height:p}}}},resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.containerSize,g=d.containerOffset,h=d.size,i=d.position,j=d._aspectRatio||b.shiftKey,k={top:0,left:0},l=d.containerElement;l[0]!=document&&/static/.test(l.css("position"))&&(k=g),i.left<(d._helper?g.left:0)&&(d.size.width=d.size.width+(d._helper?d.position.left-g.left:d.position.left-k.left),j&&(d.size.height=d.size.width/e.aspectRatio),d.position.left=e.helper?g.left:0),i.top<(d._helper?g.top:0)&&(d.size.height=d.size.height+(d._helper?d.position.top-g.top:d.position.top),j&&(d.size.width=d.size.height*e.aspectRatio),d.position.top=d._helper?g.top:0),d.offset.left=d.parentData.left+d.position.left,d.offset.top=d.parentData.top+d.position.top;var m=Math.abs((d._helper?d.offset.left-k.left:d.offset.left-k.left)+d.sizeDiff.width),n=Math.abs((d._helper?d.offset.top-k.top:d.offset.top-g.top)+d.sizeDiff.height),o=d.containerElement.get(0)==d.element.parent().get(0),p=/relative|absolute/.test(d.containerElement.css("position"));o&&p&&(m-=d.parentData.left),m+d.size.width>=d.parentData.width&&(d.size.width=d.parentData.width-m,j&&(d.size.height=d.size.width/d.aspectRatio)),n+d.size.height>=d.parentData.height&&(d.size.height=d.parentData.height-n,j&&(d.size.width=d.size.height*d.aspectRatio))},stop:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.position,g=d.containerOffset,h=d.containerPosition,i=d.containerElement,j=a(d.helper),k=j.offset(),l=j.outerWidth()-d.sizeDiff.width,m=j.outerHeight()-d.sizeDiff.height;d._helper&&!e.animate&&/relative/.test(i.css("position"))&&a(this).css({left:k.left-h.left-g.left,width:l,height:m}),d._helper&&!e.animate&&/static/.test(i.css("position"))&&a(this).css({left:k.left-h.left-g.left,width:l,height:m})}}),a.ui.plugin.add("resizable","ghost",{start:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.size;d.ghost=d.originalElement.clone(),d.ghost.css({opacity:.25,display:"block",position:"relative",height:f.height,width:f.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof e.ghost=="string"?e.ghost:""),d.ghost.appendTo(d.helper)},resize:function(b,c){var d=a(this).data("resizable"),e=d.options;d.ghost&&d.ghost.css({position:"relative",height:d.size.height,width:d.size.width})},stop:function(b,c){var d=a(this).data("resizable"),e=d.options;d.ghost&&d.helper&&d.helper.get(0).removeChild(d.ghost.get(0))}}),a.ui.plugin.add("resizable","grid",{resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.size,g=d.originalSize,h=d.originalPosition,i=d.axis,j=e._aspectRatio||b.shiftKey;e.grid=typeof e.grid=="number"?[e.grid,e.grid]:e.grid;var k=Math.round((f.width-g.width)/(e.grid[0]||1))*(e.grid[0]||1),l=Math.round((f.height-g.height)/(e.grid[1]||1))*(e.grid[1]||1);/^(se|s|e)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l):/^(ne)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l,d.position.top=h.top-l):/^(sw)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l,d.position.left=h.left-k):(d.size.width=g.width+k,d.size.height=g.height+l,d.position.top=h.top-l,d.position.left=h.left-k)}});var c=function(a){return parseInt(a,10)||0},d=function(a){return!isNaN(parseInt(a,10))}})(jQuery);/* + * jQuery UI Selectable 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Selectables + * + * Depends: + * jquery.ui.core.js + * jquery.ui.mouse.js + * jquery.ui.widget.js + */(function(a,b){a.widget("ui.selectable",a.ui.mouse,{options:{appendTo:"body",autoRefresh:!0,distance:0,filter:"*",tolerance:"touch"},_create:function(){var b=this;this.element.addClass("ui-selectable"),this.dragged=!1;var c;this.refresh=function(){c=a(b.options.filter,b.element[0]),c.addClass("ui-selectee"),c.each(function(){var b=a(this),c=b.offset();a.data(this,"selectable-item",{element:this,$element:b,left:c.left,top:c.top,right:c.left+b.outerWidth(),bottom:c.top+b.outerHeight(),startselected:!1,selected:b.hasClass("ui-selected"),selecting:b.hasClass("ui-selecting"),unselecting:b.hasClass("ui-unselecting")})})},this.refresh(),this.selectees=c.addClass("ui-selectee"),this._mouseInit(),this.helper=a("
                                ")},destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item"),this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable"),this._mouseDestroy();return this},_mouseStart:function(b){var c=this;this.opos=[b.pageX,b.pageY];if(!this.options.disabled){var d=this.options;this.selectees=a(d.filter,this.element[0]),this._trigger("start",b),a(d.appendTo).append(this.helper),this.helper.css({left:b.clientX,top:b.clientY,width:0,height:0}),d.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each(function(){var d=a.data(this,"selectable-item");d.startselected=!0,!b.metaKey&&!b.ctrlKey&&(d.$element.removeClass("ui-selected"),d.selected=!1,d.$element.addClass("ui-unselecting"),d.unselecting=!0,c._trigger("unselecting",b,{unselecting:d.element}))}),a(b.target).parents().andSelf().each(function(){var d=a.data(this,"selectable-item");if(d){var e=!b.metaKey&&!b.ctrlKey||!d.$element.hasClass("ui-selected");d.$element.removeClass(e?"ui-unselecting":"ui-selected").addClass(e?"ui-selecting":"ui-unselecting"),d.unselecting=!e,d.selecting=e,d.selected=e,e?c._trigger("selecting",b,{selecting:d.element}):c._trigger("unselecting",b,{unselecting:d.element});return!1}})}},_mouseDrag:function(b){var c=this;this.dragged=!0;if(!this.options.disabled){var d=this.options,e=this.opos[0],f=this.opos[1],g=b.pageX,h=b.pageY;if(e>g){var i=g;g=e,e=i}if(f>h){var i=h;h=f,f=i}this.helper.css({left:e,top:f,width:g-e,height:h-f}),this.selectees.each(function(){var i=a.data(this,"selectable-item");if(!!i&&i.element!=c.element[0]){var j=!1;d.tolerance=="touch"?j=!(i.left>g||i.righth||i.bottome&&i.rightf&&i.bottom *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3},_create:function(){var a=this.options;this.containerCache={},this.element.addClass("ui-sortable"),this.refresh(),this.floating=this.items.length?a.axis==="x"||/left|right/.test(this.items[0].item.css("float"))||/inline|table-cell/.test(this.items[0].item.css("display")):!1,this.offset=this.element.offset(),this._mouseInit(),this.ready=!0},destroy:function(){a.Widget.prototype.destroy.call(this),this.element.removeClass("ui-sortable ui-sortable-disabled"),this._mouseDestroy();for(var b=this.items.length-1;b>=0;b--)this.items[b].item.removeData(this.widgetName+"-item");return this},_setOption:function(b,c){b==="disabled"?(this.options[b]=c,this.widget()[c?"addClass":"removeClass"]("ui-sortable-disabled")):a.Widget.prototype._setOption.apply(this,arguments)},_mouseCapture:function(b,c){var d=this;if(this.reverting)return!1;if(this.options.disabled||this.options.type=="static")return!1;this._refreshItems(b);var e=null,f=this,g=a(b.target).parents().each(function(){if(a.data(this,d.widgetName+"-item")==f){e=a(this);return!1}});a.data(b.target,d.widgetName+"-item")==f&&(e=a(b.target));if(!e)return!1;if(this.options.handle&&!c){var h=!1;a(this.options.handle,e).find("*").andSelf().each(function(){this==b.target&&(h=!0)});if(!h)return!1}this.currentItem=e,this._removeCurrentsFromItems();return!0},_mouseStart:function(b,c,d){var e=this.options,f=this;this.currentContainer=this,this.refreshPositions(),this.helper=this._createHelper(b),this._cacheHelperProportions(),this._cacheMargins(),this.scrollParent=this.helper.scrollParent(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),a.extend(this.offset,{click:{left:b.pageX-this.offset.left,top:b.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.originalPosition=this._generatePosition(b),this.originalPageX=b.pageX,this.originalPageY=b.pageY,e.cursorAt&&this._adjustOffsetFromHelper(e.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!=this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),e.containment&&this._setContainment(),e.cursor&&(a("body").css("cursor")&&(this._storedCursor=a("body").css("cursor")),a("body").css("cursor",e.cursor)),e.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",e.opacity)),e.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",e.zIndex)),this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",b,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions();if(!d)for(var g=this.containers.length-1;g>=0;g--)this.containers[g]._trigger("activate",b,f._uiHash(this));a.ui.ddmanager&&(a.ui.ddmanager.current=this),a.ui.ddmanager&&!e.dropBehaviour&&a.ui.ddmanager.prepareOffsets(this,b),this.dragging=!0,this.helper.addClass("ui-sortable-helper"),this._mouseDrag(b);return!0},_mouseDrag:function(b){this.position=this._generatePosition(b),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs);if(this.options.scroll){var c=this.options,d=!1;this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-b.pageY=0;e--){var f=this.items[e],g=f.item[0],h=this._intersectsWithPointer(f);if(!h)continue;if(g!=this.currentItem[0]&&this.placeholder[h==1?"next":"prev"]()[0]!=g&&!a.ui.contains(this.placeholder[0],g)&&(this.options.type=="semi-dynamic"?!a.ui.contains(this.element[0],g):!0)){this.direction=h==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(f))this._rearrange(b,f);else break;this._trigger("change",b,this._uiHash());break}}this._contactContainers(b),a.ui.ddmanager&&a.ui.ddmanager.drag(this,b),this._trigger("sort",b,this._uiHash()),this.lastPositionAbs=this.positionAbs;return!1},_mouseStop:function(b,c){if(!!b){a.ui.ddmanager&&!this.options.dropBehaviour&&a.ui.ddmanager.drop(this,b);if(this.options.revert){var d=this,e=d.placeholder.offset();d.reverting=!0,a(this.helper).animate({left:e.left-this.offset.parent.left-d.margins.left+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft),top:e.top-this.offset.parent.top-d.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){d._clear(b)})}else this._clear(b,c);return!1}},cancel:function(){var b=this;if(this.dragging){this._mouseUp({target:null}),this.options.helper=="original"?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var c=this.containers.length-1;c>=0;c--)this.containers[c]._trigger("deactivate",null,b._uiHash(this)),this.containers[c].containerCache.over&&(this.containers[c]._trigger("out",null,b._uiHash(this)),this.containers[c].containerCache.over=0)}this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.options.helper!="original"&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),a.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?a(this.domPosition.prev).after(this.currentItem):a(this.domPosition.parent).prepend(this.currentItem));return this},serialize:function(b){var c=this._getItemsAsjQuery(b&&b.connected),d=[];b=b||{},a(c).each(function(){var c=(a(b.item||this).attr(b.attribute||"id")||"").match(b.expression||/(.+)[-=_](.+)/);c&&d.push((b.key||c[1]+"[]")+"="+(b.key&&b.expression?c[1]:c[2]))}),!d.length&&b.key&&d.push(b.key+"=");return d.join("&")},toArray:function(b){var c=this._getItemsAsjQuery(b&&b.connected),d=[];b=b||{},c.each(function(){d.push(a(b.item||this).attr(b.attribute||"id")||"")});return d},_intersectsWith:function(a){var b=this.positionAbs.left,c=b+this.helperProportions.width,d=this.positionAbs.top,e=d+this.helperProportions.height,f=a.left,g=f+a.width,h=a.top,i=h+a.height,j=this.offset.click.top,k=this.offset.click.left,l=d+j>h&&d+jf&&b+ka[this.floating?"width":"height"]?l:f0?"down":"up")},_getDragHorizontalDirection:function(){var a=this.positionAbs.left-this.lastPositionAbs.left;return a!=0&&(a>0?"right":"left")},refresh:function(a){this._refreshItems(a),this.refreshPositions();return this},_connectWith:function(){var a=this.options;return a.connectWith.constructor==String?[a.connectWith]:a.connectWith},_getItemsAsjQuery:function(b){var c=this,d=[],e=[],f=this._connectWith();if(f&&b)for(var g=f.length-1;g>=0;g--){var h=a(f[g]);for(var i=h.length-1;i>=0;i--){var j=a.data(h[i],this.widgetName);j&&j!=this&&!j.options.disabled&&e.push([a.isFunction(j.options.items)?j.options.items.call(j.element):a(j.options.items,j.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),j])}}e.push([a.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):a(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]);for(var g=e.length-1;g>=0;g--)e[g][0].each(function(){d.push(this)});return a(d)},_removeCurrentsFromItems:function(){var a=this.currentItem.find(":data("+this.widgetName+"-item)");for(var b=0;b=0;g--){var h=a(f[g]);for(var i=h.length-1;i>=0;i--){var j=a.data(h[i],this.widgetName);j&&j!=this&&!j.options.disabled&&(e.push([a.isFunction(j.options.items)?j.options.items.call(j.element[0],b,{item:this.currentItem}):a(j.options.items,j.element),j]),this.containers.push(j))}}for(var g=e.length-1;g>=0;g--){var k=e[g][1],l=e[g][0];for(var i=0,m=l.length;i=0;c--){var d=this.items[c];if(d.instance!=this.currentContainer&&this.currentContainer&&d.item[0]!=this.currentItem[0])continue;var e=this.options.toleranceElement?a(this.options.toleranceElement,d.item):d.item;b||(d.width=e.outerWidth(),d.height=e.outerHeight());var f=e.offset();d.left=f.left,d.top=f.top}if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(var c=this.containers.length-1;c>=0;c--){var f=this.containers[c].element.offset();this.containers[c].containerCache.left=f.left,this.containers[c].containerCache.top=f.top,this.containers[c].containerCache.width=this.containers[c].element.outerWidth(),this.containers[c].containerCache.height=this.containers[c].element.outerHeight()}return this},_createPlaceholder:function(b){var c=b||this,d=c.options;if(!d.placeholder||d.placeholder.constructor==String){var e=d.placeholder;d.placeholder={element:function(){var b=a(document.createElement(c.currentItem[0].nodeName)).addClass(e||c.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];e||(b.style.visibility="hidden");return b},update:function(a,b){if(!e||!!d.forcePlaceholderSize)b.height()||b.height(c.currentItem.innerHeight()-parseInt(c.currentItem.css("paddingTop")||0,10)-parseInt(c.currentItem.css("paddingBottom")||0,10)),b.width()||b.width(c.currentItem.innerWidth()-parseInt(c.currentItem.css("paddingLeft")||0,10)-parseInt(c.currentItem.css("paddingRight")||0,10))}}}c.placeholder=a(d.placeholder.element.call(c.element,c.currentItem)),c.currentItem.after(c.placeholder),d.placeholder.update(c,c.placeholder)},_contactContainers:function(b){var c=null,d=null;for(var e=this.containers.length-1;e>=0;e--){if(a.ui.contains(this.currentItem[0],this.containers[e].element[0]))continue;if(this._intersectsWith(this.containers[e].containerCache)){if(c&&a.ui.contains(this.containers[e].element[0],c.element[0]))continue;c=this.containers[e],d=e}else this.containers[e].containerCache.over&&(this.containers[e]._trigger("out",b,this._uiHash(this)),this.containers[e].containerCache.over=0)}if(!!c)if(this.containers.length===1)this.containers[d]._trigger("over",b,this._uiHash(this)),this.containers[d].containerCache.over=1;else if(this.currentContainer!=this.containers[d]){var f=1e4,g=null,h=this.positionAbs[this.containers[d].floating?"left":"top"];for(var i=this.items.length-1;i>=0;i--){if(!a.ui.contains(this.containers[d].element[0],this.items[i].item[0]))continue;var j=this.items[i][this.containers[d].floating?"left":"top"];Math.abs(j-h)this.containment[2]&&(f=this.containment[2]+this.offset.click.left),b.pageY-this.offset.click.top>this.containment[3]&&(g=this.containment[3]+this.offset.click.top));if(c.grid){var h=this.originalPageY+Math.round((g-this.originalPageY)/c.grid[1])*c.grid[1];g=this.containment?h-this.offset.click.topthis.containment[3]?h-this.offset.click.topthis.containment[2]?i-this.offset.click.left=0;f--)a.ui.contains(this.containers[f].element[0],this.currentItem[0])&&!c&&(d.push(function(a){return function(b){a._trigger("receive",b,this._uiHash(this))}}.call(this,this.containers[f])),d.push(function(a){return function(b){a._trigger("update",b,this._uiHash(this))}}.call(this,this.containers[f])))}for(var f=this.containers.length-1;f>=0;f--)c||d.push(function(a){return function(b){a._trigger("deactivate",b,this._uiHash(this))}}.call(this,this.containers[f])),this.containers[f].containerCache.over&&(d.push(function(a){return function(b){a._trigger("out",b,this._uiHash(this))}}.call(this,this.containers[f])),this.containers[f].containerCache.over=0);this._storedCursor&&a("body").css("cursor",this._storedCursor),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex),this.dragging=!1;if(this.cancelHelperRemoval){if(!c){this._trigger("beforeStop",b,this._uiHash());for(var f=0;f 255)){ + intLength=intLength+2; + }else{ + intLength=intLength+1; + } + } + return intLength + }, + //加载进度条 + progressBar:function(){ + $("
                                正在加载,请稍等O(∩_∩)O哈!
                                ").appendTo('body'); + var w=$(window).width(),h=$(window).height(); + $('#myCover').css({'width':'100%','height':h,'position':'absolute','background':'#fff','z-index':9999,'left':0,'top':0}).fadeTo('slow',0.8); + $('#loadimg').css({'position':'absolute','background':'url(themes/default/images/loading.gif) no-repeat center center','z-index':10000,'width':'110px','height':'64px','left':(w-110)/2,'top':((h-64)/2)-50}).find('span').css({'position':'absolute','left':0,'bottom':'-40px','width':110,'display':'block','height':40,'text-align':'center'}); + }, + //停止进度条 + stopProgress:function(){ + $('#myCover').remove(); + $('#loadimg').remove(); + }, + getImgWh:function(url, callback) { + var width, height, intervalId, check, div, img = new Image(), + body = document.body; + img.src = url; + + //从缓存中读取 + if (img.complete) { + return callback(img.width, img.height); + }; + + //通过占位提前获取图片头部数据 + if (body) { + div = document.createElement('div'); + div.style.cssText = 'visibility:hidden;position:absolute;left:0;top:0;width:1px;height:1px;overflow:hidden'; + div.appendChild(img) + body.appendChild(div); + width = img.offsetWidth; + height = img.offsetHeight; + check = function() { + if (img.offsetWidth !== width || img.offsetHeight !== height) { + clearInterval(intervalId); + callback(img.offsetWidth, img.clientHeight); + img.onload = null; + div.innerHTML = ''; + div.parentNode.removeChild(div); + }; + }; + intervalId = setInterval(check, 150); + }; + // 加载完毕后方式获取 + img.onload = function() { + callback(img.width, img.height); + img.onload = img.onerror = null; + clearInterval(intervalId); + body && img.parentNode.removeChild(img); + }; + }, + //全屏 + fullscreen:function(){ + var docElm = document.documentElement; + if (docElm.requestFullscreen) { + docElm.requestFullscreen(); + } + else if (docElm.mozRequestFullScreen) { + docElm.mozRequestFullScreen(); + } + else if (docElm.webkitRequestFullScreen) { + docElm.webkitRequestFullScreen(); + } + }, + //退出全屏 + exitFullscreen:function(){ + if (document.exitFullscreen) { + document.exitFullscreen(); + } + else if (document.mozCancelFullScreen) { + document.mozCancelFullScreen(); + } + else if (document.webkitCancelFullScreen) { + document.webkitCancelFullScreen(); + } + }, + //IE全屏 + fullscreenIE:function(){ + if($.browser.msie){ + var wsh = new ActiveXObject("WScript.Shell"); + wsh.sendKeys("{F11}"); + } + } + } + +/*------------------------------------------ + *jquery扩展,加载技术文件和css文件 +-------------------------------------------*/ +$.extend({ + includePath: '', + include: function(file) + { + var files = typeof file == "string" ? [file] : file; + for (var i = 0; i < files.length; i++) + { + var name = files[i].replace(/^\s|\s$/g, ""); + var att = name.split('.'); + var ext = att[att.length - 1].toLowerCase(); + var isCSS = ext == "css"; + var tag = isCSS ? "link" : "script"; + var attr = isCSS ? " type='text/css' rel='stylesheet' " : " language='javascript' type='text/javascript' "; + var link = (isCSS ? "href" : "src") + "='" + $.includePath + name + "'"; + if ($(tag + "[" + link + "]").length == 0) document.write("<" + tag + attr + link + ">"); + } + } +}); \ No newline at end of file diff --git a/src/main/webapp/js/wth.js b/src/main/webapp/js/wth.js new file mode 100644 index 00000000..cabf4643 --- /dev/null +++ b/src/main/webapp/js/wth.js @@ -0,0 +1,121 @@ +// JavaScript Document +function switchTableRow(conid,evenRowClassName,hoverRowClassName) +{ + $(conid + " tr:even").addClass(evenRowClassName); + $(conid + " tr").hover(function() + { + $(this).addClass(hoverRowClassName); + }, + function() + { + $(this).removeClass(hoverRowClassName); + }); +} +function switchTableRowView(conid,evenRowClassName) +{ + $(conid + " tr:odd").addClass(evenRowClassName); +} +function selectAll(selectAll,selectName) +{ + var checkboxName = document.getElementsByName(selectName); + for (var i=0; i
                                "+dT+"
                                "+dData+"
                                "); + $("#dialog img").css({margin:"0 5px 0 0"}); + } + else if(tipstyle == 1) + { + $("body").append("
                                "+dT+"
                                "+dData+"
                                "); + $("#dialog img").css({margin:"0 5px 0 0"}); + } + else + { + $("body").append("
                                "+dT+"
                                "+dData+"
                                "); + } + } + else + { + $("body").append("
                                "+dT+"
                                "); + } + var leftpx = (webW-dW)/2; + var toppx = (webH-dH-headH)/2; + $("#dialog").css({height:(dH)+"px",width:dW+"px",left:leftpx+"px",top:toppx+"px"}); + $("#dialogFrame").css({height:(dH-32-33)+"px",width:dW+"px",margin:"2px 0 0 0"}); + $("#dialog_bg").css({height:webSH+"px"}); + $("#dialog_btnlist").css({width:(dW-30)+"px","padding-left":"30px"}); + $(obj).blur(); + MoveWindow('dialog_title','dialog') + $("#dialog_close").click(function() + { + $("#dialog").remove(); + $("#dialog_bg").remove(); + }); + $("#dialog_btnlist").click(function() + { + $("#dialog").remove(); + $("#dialog_bg").remove(); + }); + + +} +function MoveWindow(hanldID,windowID) +{ + var posx,posy,posx1,posx1,posx2,posx2,mbx,mby; + document.getElementById(hanldID).style.cursor = "move"; + var handle = document.getElementById(hanldID); + var moveWindow = document.getElementById(windowID); + function mdown(event) + { + event = window.event || event; + posx = event.clientX; + posy = event.clientY; + mbx = event.clientX - moveWindow.offsetLeft; + mby = event.clientY - moveWindow.offsetTop; + moveWindow.onmousemove = mmove; + moveWindow.onmouseup = mup; + moveWindow.onmouseout = mout; + } + var mmove = function(event) + { + event = window.event || event; + posx1 = event.clientX; + posy1 = event.clientY; + moveWindow.style.left = posx1 - mbx + "px"; + moveWindow.style.top = posy1 - mby + "px"; + } + function mup(event) + { + event = window.event || event; + posx2 = event.clientX; + posy2 = event.clientY; + moveWindow.onmousemove = ""; + } + function mout(event) + { + event = window.event || event; + moveWindow.onmousemove = ""; + } + handle.onmousedown = mdown; +} \ No newline at end of file diff --git a/src/main/webapp/logs/jsh-error.log b/src/main/webapp/logs/jsh-error.log new file mode 100644 index 00000000..e69de29b diff --git a/src/main/webapp/logs/jsh-info.log b/src/main/webapp/logs/jsh-info.log new file mode 100644 index 00000000..9d6c25f2 --- /dev/null +++ b/src/main/webapp/logs/jsh-info.log @@ -0,0 +1,3 @@ +2017-02-09 23:18:06 [INFO]-MLog clients using log4j logging. +2017-02-09 23:18:07 [INFO]-Initializing c3p0-0.9.1.2 [built 21-May-2007 15:04:56; debug? true; trace: 10] +2017-02-09 23:18:08 [INFO]-Initializing c3p0 pool... com.mchange.v2.c3p0.ComboPooledDataSource [ acquireIncrement -> 10, acquireRetryAttempts -> 30, acquireRetryDelay -> 1000, autoCommitOnClose -> false, automaticTestTable -> null, breakAfterAcquireFailure -> false, checkoutTimeout -> 0, connectionCustomizerClassName -> null, connectionTesterClassName -> com.mchange.v2.c3p0.impl.DefaultConnectionTester, dataSourceName -> 1hgen389m9u4nw61mau0o|1edfb80, debugUnreturnedConnectionStackTraces -> false, description -> null, driverClass -> com.mysql.jdbc.Driver, factoryClassLocation -> null, forceIgnoreUnresolvedTransactions -> false, identityToken -> 1hgen389m9u4nw61mau0o|1edfb80, idleConnectionTestPeriod -> 60, initialPoolSize -> 10, jdbcUrl -> jdbc:mysql://localhost:3306/jsh_erp?useUnicode=true&characterEncoding=UTF-8, maxAdministrativeTaskTime -> 0, maxConnectionAge -> 0, maxIdleTime -> 60, maxIdleTimeExcessConnections -> 0, maxPoolSize -> 80, maxStatements -> 6000, maxStatementsPerConnection -> 0, minPoolSize -> 3, numHelperThreads -> 3, numThreadsAwaitingCheckoutDefaultUser -> 0, preferredTestQuery -> null, properties -> {user=******, password=******}, propertyCycle -> 0, testConnectionOnCheckin -> false, testConnectionOnCheckout -> false, unreturnedConnectionTimeout -> 0, usesTraditionalReflectiveProxies -> false ]