├── WebRoot ├── META-INF │ └── MANIFEST.MF ├── images │ └── front │ │ ├── 6.png │ │ ├── logo.png │ │ ├── menu.jpg │ │ ├── menu_bg.jpg │ │ └── menu_hover.jpg ├── js │ ├── My97DatePicker │ │ ├── 开发包 │ │ │ ├── readme.txt │ │ │ ├── lang │ │ │ │ ├── zh-cn.js │ │ │ │ ├── zh-tw.js │ │ │ │ └── en.js │ │ │ └── skin │ │ │ │ ├── datePicker.gif │ │ │ │ ├── default │ │ │ │ ├── img.gif │ │ │ │ └── datepicker.css │ │ │ │ ├── whyGreen │ │ │ │ ├── bg.jpg │ │ │ │ ├── img.gif │ │ │ │ └── datepicker.css │ │ │ │ └── WdatePicker.css │ │ ├── skin │ │ │ ├── datePicker.gif │ │ │ ├── default │ │ │ │ ├── img.gif │ │ │ │ └── datepicker.css │ │ │ ├── whyGreen │ │ │ │ ├── bg.jpg │ │ │ │ ├── img.gif │ │ │ │ └── datepicker.css │ │ │ └── WdatePicker.css │ │ ├── lang │ │ │ ├── en.js │ │ │ ├── zh-cn.js │ │ │ └── zh-tw.js │ │ ├── WdatePicker.js │ │ └── calendar.js │ ├── lhgdialog │ │ └── skins │ │ │ ├── icons │ │ │ ├── alert.gif │ │ │ ├── error.gif │ │ │ ├── tips.gif │ │ │ ├── 32X32 │ │ │ │ ├── i.png │ │ │ │ ├── fail.png │ │ │ │ ├── hits.png │ │ │ │ └── succ.png │ │ │ ├── confirm.gif │ │ │ ├── lhgcore.gif │ │ │ ├── loading.gif │ │ │ ├── prompt.gif │ │ │ ├── success.gif │ │ │ ├── discuz_bg.gif │ │ │ ├── face-sad.png │ │ │ ├── face-smile.png │ │ │ ├── gb_tip_layer.png │ │ │ └── gb_tip_layer_ie6.png │ │ │ ├── idialog │ │ │ ├── ie6 │ │ │ │ ├── ui_b.png │ │ │ │ ├── ui_l.png │ │ │ │ ├── ui_r.png │ │ │ │ ├── ui_t.png │ │ │ │ ├── ui_lb.png │ │ │ │ ├── ui_lt.png │ │ │ │ ├── ui_rb.png │ │ │ │ ├── ui_rt.png │ │ │ │ ├── ui_close.png │ │ │ │ └── ui_close.hover.png │ │ │ ├── idialog_s.png │ │ │ └── idialog_s2.png │ │ │ ├── defaulta.css │ │ │ ├── jtop.css │ │ │ └── idialog.css │ ├── flexslider │ │ ├── images │ │ │ └── bg_direction_nav.png │ │ ├── LICENSE.txt │ │ ├── flexslider.css │ │ └── jquery.flexslider-min.js │ ├── formValidator │ │ ├── 新建文件夹 │ │ │ ├── jquery.validationEngine-en.js │ │ │ ├── jquery.validationEngine-cn.js │ │ │ └── validationEngine.jquery.css │ │ ├── .svn │ │ │ ├── all-wcprops │ │ │ └── entries │ │ ├── validationEngine.jquery.css │ │ └── jquery.validationEngine-cn.js │ ├── gmaps │ │ └── examples.css │ ├── Keyboard │ │ ├── jquery-ui.css │ │ ├── keyboard.css │ │ └── jquery.keyboard.min.js │ └── comm.js ├── WEB-INF │ └── web.xml ├── contact.jsp ├── ad.jsp ├── front │ └── top.jsp ├── submenu.jsp ├── content.jsp ├── buy.jsp ├── css │ └── front.css ├── set.jsp └── index.jsp ├── src ├── sample.db ├── database.properties ├── guilinsoft │ └── sky │ │ ├── client │ │ ├── LST.java │ │ ├── MRecordClient.java │ │ └── MRecordClientHandler.java │ │ ├── utils │ │ ├── Tools.java │ │ └── MMsg.java │ │ └── action │ │ └── Index.java ├── routes.properties ├── other.properties ├── log4j.properties └── config.properties ├── .mymetadata ├── .gitattributes └── .gitignore /WebRoot/META-INF/MANIFEST.MF: -------------------------------------------------------------------------------- 1 | Manifest-Version: 1.0 2 | Class-Path: 3 | 4 | -------------------------------------------------------------------------------- /src/sample.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hubs/client/master/src/sample.db -------------------------------------------------------------------------------- /src/database.properties: -------------------------------------------------------------------------------- 1 | database=sample.db 2 | dbdriver=sqlite 3 | cache_on=false 4 | -------------------------------------------------------------------------------- /WebRoot/images/front/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hubs/client/master/WebRoot/images/front/6.png -------------------------------------------------------------------------------- /WebRoot/images/front/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hubs/client/master/WebRoot/images/front/logo.png -------------------------------------------------------------------------------- /WebRoot/images/front/menu.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hubs/client/master/WebRoot/images/front/menu.jpg -------------------------------------------------------------------------------- /WebRoot/images/front/menu_bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hubs/client/master/WebRoot/images/front/menu_bg.jpg -------------------------------------------------------------------------------- /WebRoot/images/front/menu_hover.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hubs/client/master/WebRoot/images/front/menu_hover.jpg -------------------------------------------------------------------------------- /WebRoot/js/My97DatePicker/开发包/readme.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hubs/client/master/WebRoot/js/My97DatePicker/开发包/readme.txt -------------------------------------------------------------------------------- /WebRoot/js/lhgdialog/skins/icons/alert.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hubs/client/master/WebRoot/js/lhgdialog/skins/icons/alert.gif -------------------------------------------------------------------------------- /WebRoot/js/lhgdialog/skins/icons/error.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hubs/client/master/WebRoot/js/lhgdialog/skins/icons/error.gif -------------------------------------------------------------------------------- /WebRoot/js/lhgdialog/skins/icons/tips.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hubs/client/master/WebRoot/js/lhgdialog/skins/icons/tips.gif -------------------------------------------------------------------------------- /WebRoot/js/My97DatePicker/开发包/lang/zh-cn.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hubs/client/master/WebRoot/js/My97DatePicker/开发包/lang/zh-cn.js -------------------------------------------------------------------------------- /WebRoot/js/My97DatePicker/开发包/lang/zh-tw.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hubs/client/master/WebRoot/js/My97DatePicker/开发包/lang/zh-tw.js -------------------------------------------------------------------------------- /WebRoot/js/lhgdialog/skins/icons/32X32/i.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hubs/client/master/WebRoot/js/lhgdialog/skins/icons/32X32/i.png -------------------------------------------------------------------------------- /WebRoot/js/lhgdialog/skins/icons/confirm.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hubs/client/master/WebRoot/js/lhgdialog/skins/icons/confirm.gif -------------------------------------------------------------------------------- /WebRoot/js/lhgdialog/skins/icons/lhgcore.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hubs/client/master/WebRoot/js/lhgdialog/skins/icons/lhgcore.gif -------------------------------------------------------------------------------- /WebRoot/js/lhgdialog/skins/icons/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hubs/client/master/WebRoot/js/lhgdialog/skins/icons/loading.gif -------------------------------------------------------------------------------- /WebRoot/js/lhgdialog/skins/icons/prompt.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hubs/client/master/WebRoot/js/lhgdialog/skins/icons/prompt.gif -------------------------------------------------------------------------------- /WebRoot/js/lhgdialog/skins/icons/success.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hubs/client/master/WebRoot/js/lhgdialog/skins/icons/success.gif -------------------------------------------------------------------------------- /WebRoot/js/My97DatePicker/skin/datePicker.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hubs/client/master/WebRoot/js/My97DatePicker/skin/datePicker.gif -------------------------------------------------------------------------------- /WebRoot/js/My97DatePicker/skin/default/img.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hubs/client/master/WebRoot/js/My97DatePicker/skin/default/img.gif -------------------------------------------------------------------------------- /WebRoot/js/My97DatePicker/skin/whyGreen/bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hubs/client/master/WebRoot/js/My97DatePicker/skin/whyGreen/bg.jpg -------------------------------------------------------------------------------- /WebRoot/js/My97DatePicker/skin/whyGreen/img.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hubs/client/master/WebRoot/js/My97DatePicker/skin/whyGreen/img.gif -------------------------------------------------------------------------------- /WebRoot/js/lhgdialog/skins/icons/32X32/fail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hubs/client/master/WebRoot/js/lhgdialog/skins/icons/32X32/fail.png -------------------------------------------------------------------------------- /WebRoot/js/lhgdialog/skins/icons/32X32/hits.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hubs/client/master/WebRoot/js/lhgdialog/skins/icons/32X32/hits.png -------------------------------------------------------------------------------- /WebRoot/js/lhgdialog/skins/icons/32X32/succ.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hubs/client/master/WebRoot/js/lhgdialog/skins/icons/32X32/succ.png -------------------------------------------------------------------------------- /WebRoot/js/lhgdialog/skins/icons/discuz_bg.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hubs/client/master/WebRoot/js/lhgdialog/skins/icons/discuz_bg.gif -------------------------------------------------------------------------------- /WebRoot/js/lhgdialog/skins/icons/face-sad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hubs/client/master/WebRoot/js/lhgdialog/skins/icons/face-sad.png -------------------------------------------------------------------------------- /WebRoot/js/lhgdialog/skins/icons/face-smile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hubs/client/master/WebRoot/js/lhgdialog/skins/icons/face-smile.png -------------------------------------------------------------------------------- /WebRoot/js/lhgdialog/skins/idialog/ie6/ui_b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hubs/client/master/WebRoot/js/lhgdialog/skins/idialog/ie6/ui_b.png -------------------------------------------------------------------------------- /WebRoot/js/lhgdialog/skins/idialog/ie6/ui_l.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hubs/client/master/WebRoot/js/lhgdialog/skins/idialog/ie6/ui_l.png -------------------------------------------------------------------------------- /WebRoot/js/lhgdialog/skins/idialog/ie6/ui_r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hubs/client/master/WebRoot/js/lhgdialog/skins/idialog/ie6/ui_r.png -------------------------------------------------------------------------------- /WebRoot/js/lhgdialog/skins/idialog/ie6/ui_t.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hubs/client/master/WebRoot/js/lhgdialog/skins/idialog/ie6/ui_t.png -------------------------------------------------------------------------------- /WebRoot/js/My97DatePicker/开发包/skin/datePicker.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hubs/client/master/WebRoot/js/My97DatePicker/开发包/skin/datePicker.gif -------------------------------------------------------------------------------- /WebRoot/js/flexslider/images/bg_direction_nav.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hubs/client/master/WebRoot/js/flexslider/images/bg_direction_nav.png -------------------------------------------------------------------------------- /WebRoot/js/lhgdialog/skins/icons/gb_tip_layer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hubs/client/master/WebRoot/js/lhgdialog/skins/icons/gb_tip_layer.png -------------------------------------------------------------------------------- /WebRoot/js/lhgdialog/skins/idialog/idialog_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hubs/client/master/WebRoot/js/lhgdialog/skins/idialog/idialog_s.png -------------------------------------------------------------------------------- /WebRoot/js/lhgdialog/skins/idialog/idialog_s2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hubs/client/master/WebRoot/js/lhgdialog/skins/idialog/idialog_s2.png -------------------------------------------------------------------------------- /WebRoot/js/lhgdialog/skins/idialog/ie6/ui_lb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hubs/client/master/WebRoot/js/lhgdialog/skins/idialog/ie6/ui_lb.png -------------------------------------------------------------------------------- /WebRoot/js/lhgdialog/skins/idialog/ie6/ui_lt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hubs/client/master/WebRoot/js/lhgdialog/skins/idialog/ie6/ui_lt.png -------------------------------------------------------------------------------- /WebRoot/js/lhgdialog/skins/idialog/ie6/ui_rb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hubs/client/master/WebRoot/js/lhgdialog/skins/idialog/ie6/ui_rb.png -------------------------------------------------------------------------------- /WebRoot/js/lhgdialog/skins/idialog/ie6/ui_rt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hubs/client/master/WebRoot/js/lhgdialog/skins/idialog/ie6/ui_rt.png -------------------------------------------------------------------------------- /src/guilinsoft/sky/client/LST.java: -------------------------------------------------------------------------------- 1 | package guilinsoft.sky.client; 2 | 3 | public enum LST { 4 | ADVERTISING,CONTENT,CONTENTMX,CATEGORY 5 | } 6 | -------------------------------------------------------------------------------- /WebRoot/js/My97DatePicker/开发包/skin/default/img.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hubs/client/master/WebRoot/js/My97DatePicker/开发包/skin/default/img.gif -------------------------------------------------------------------------------- /WebRoot/js/My97DatePicker/开发包/skin/whyGreen/bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hubs/client/master/WebRoot/js/My97DatePicker/开发包/skin/whyGreen/bg.jpg -------------------------------------------------------------------------------- /WebRoot/js/My97DatePicker/开发包/skin/whyGreen/img.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hubs/client/master/WebRoot/js/My97DatePicker/开发包/skin/whyGreen/img.gif -------------------------------------------------------------------------------- /WebRoot/js/lhgdialog/skins/idialog/ie6/ui_close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hubs/client/master/WebRoot/js/lhgdialog/skins/idialog/ie6/ui_close.png -------------------------------------------------------------------------------- /WebRoot/js/lhgdialog/skins/icons/gb_tip_layer_ie6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hubs/client/master/WebRoot/js/lhgdialog/skins/icons/gb_tip_layer_ie6.png -------------------------------------------------------------------------------- /src/routes.properties: -------------------------------------------------------------------------------- 1 | controller_package=guilinsoft.sky.action 2 | default_controller=Index 3 | default_method=index 4 | default_view =/index.jsp 5 | 6 | -------------------------------------------------------------------------------- /WebRoot/js/My97DatePicker/开发包/skin/default/datepicker.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hubs/client/master/WebRoot/js/My97DatePicker/开发包/skin/default/datepicker.css -------------------------------------------------------------------------------- /WebRoot/js/lhgdialog/skins/idialog/ie6/ui_close.hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hubs/client/master/WebRoot/js/lhgdialog/skins/idialog/ie6/ui_close.hover.png -------------------------------------------------------------------------------- /WebRoot/js/My97DatePicker/开发包/skin/whyGreen/datepicker.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hubs/client/master/WebRoot/js/My97DatePicker/开发包/skin/whyGreen/datepicker.css -------------------------------------------------------------------------------- /WebRoot/js/My97DatePicker/skin/WdatePicker.css: -------------------------------------------------------------------------------- 1 | .Wdate{ 2 | border:#999 1px solid; 3 | background:#fff url(datePicker.gif) no-repeat right; 4 | } 5 | 6 | .WdateFmtErr{ 7 | font-weight:bold; 8 | color:red; 9 | } -------------------------------------------------------------------------------- /src/guilinsoft/sky/utils/Tools.java: -------------------------------------------------------------------------------- 1 | 2 | package guilinsoft.sky.utils; 3 | 4 | import com.jzero.util.MTool; 5 | 6 | /** 7 | * 2012-11-1: 8 | * wangujqw@gmail.com 9 | */ 10 | public class Tools extends MTool { 11 | 12 | } 13 | -------------------------------------------------------------------------------- /WebRoot/js/My97DatePicker/开发包/skin/WdatePicker.css: -------------------------------------------------------------------------------- 1 | .Wdate{ 2 | border:#999 1px solid; 3 | height:20px; 4 | background:#fff url(datePicker.gif) no-repeat right; 5 | } 6 | 7 | .WdateFmtErr{ 8 | font-weight:bold; 9 | color:red; 10 | } -------------------------------------------------------------------------------- /.mymetadata: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /src/other.properties: -------------------------------------------------------------------------------- 1 | #图片下载地址 2 | target_url=http\://localhost\:8080/sky 3 | #本地地址 4 | #远程服务器IP 5 | target_ip=localhost 6 | #192.168.0.4 7 | #远程服务器开启的商品 8 | target_port=9999 9 | #默认10分钟访问一次服务器 10 | wait_time=1 11 | #终端编号(需要与服务器中的终端表中的编号对应) 12 | serno=sky001 13 | #最后更新时间,用于服务器判断是否有新的数据需要发送(当read_all=true时不起作用) 14 | lastsyn=2012-01-01 15 | #同步所有数据,同步后会改成false; 16 | read_all=true 17 | #是否读取目录表,因为目录表很少改变,所以一般不需要每次都读取(当read_all=true时不起作用) 18 | read_category=true 19 | #是否读取联系我们 20 | read_contact=true 21 | #是否读取公告信息 22 | read_notice=true 23 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | *.sln merge=union 7 | *.csproj merge=union 8 | *.vbproj merge=union 9 | *.fsproj merge=union 10 | *.dbproj merge=union 11 | 12 | # Standard to msysgit 13 | *.doc diff=astextplain 14 | *.DOC diff=astextplain 15 | *.docx diff=astextplain 16 | *.DOCX diff=astextplain 17 | *.dot diff=astextplain 18 | *.DOT diff=astextplain 19 | *.pdf diff=astextplain 20 | *.PDF diff=astextplain 21 | *.rtf diff=astextplain 22 | *.RTF diff=astextplain 23 | -------------------------------------------------------------------------------- /src/log4j.properties: -------------------------------------------------------------------------------- 1 | log4j.rootLogger=error,stdout, R 2 | 3 | log4j.appender.stdout=org.apache.log4j.ConsoleAppender 4 | log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 5 | 6 | log4j.appender.stdout.layout.ConversionPattern=%5p - %m%n 7 | 8 | log4j.appender.R=org.apache.log4j.RollingFileAppender 9 | log4j.appender.R.File=firestorm.log 10 | 11 | log4j.appender.R.MaxFileSize=100KB 12 | log4j.appender.R.MaxBackupIndex=1 13 | 14 | log4j.appender.R.layout=org.apache.log4j.PatternLayout 15 | log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n 16 | 17 | log4j.logger.com.codefutures=error -------------------------------------------------------------------------------- /WebRoot/js/formValidator/新建文件夹/jquery.validationEngine-en.js: -------------------------------------------------------------------------------- 1 | 2 | (function($) { 3 | $.fn.validationEngineLanguage = function() {}; 4 | $.validationEngineLanguage = { 5 | newLang: function() { 6 | $.validationEngineLanguage.allRules = { 7 | "required": { // Add your regex rules here, you can take telephone as an example 8 | "regex":"none", 9 | "alertText":"* required", 10 | "alertTextCheckboxMultiple":"* 请选择一个选项", 11 | "alertTextCheckboxe":"* 此选择框为必选" 12 | }} 13 | 14 | } 15 | }; 16 | })(jQuery); 17 | 18 | $(document).ready(function() { 19 | $.validationEngineLanguage.newLang(); 20 | }); -------------------------------------------------------------------------------- /WebRoot/WEB-INF/web.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | MFilter 9 | com.jzero.filter.JFilter 10 | 11 | 12 | MFilter 13 | /* 14 | 15 | 16 | 17 | index.jsp 18 | 19 | 20 | -------------------------------------------------------------------------------- /WebRoot/js/My97DatePicker/lang/en.js: -------------------------------------------------------------------------------- 1 | var $lang={ 2 | errAlertMsg: "Invalid date or the date out of range,redo or not?", 3 | aWeekStr: ["wk", "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], 4 | aLongWeekStr:["wk","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"], 5 | aMonStr: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], 6 | aLongMonStr: ["January","February","March","April","May","June","July","August","September","October","November","December"], 7 | clearStr: "Clear", 8 | todayStr: "Today", 9 | okStr: "OK", 10 | updateStr: "OK", 11 | timeStr: "Time", 12 | quickStr: "Quick Selection", 13 | err_1: 'MinDate Cannot be bigger than MaxDate!' 14 | } -------------------------------------------------------------------------------- /WebRoot/js/My97DatePicker/开发包/lang/en.js: -------------------------------------------------------------------------------- 1 | var $lang={ 2 | errAlertMsg: "Invalid date or the date out of range,redo or not?", 3 | aWeekStr: ["wk", "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], 4 | aLongWeekStr:["wk","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"], 5 | aMonStr: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], 6 | aLongMonStr: ["January","February","March","April","May","June","July","August","September","October","November","December"], 7 | clearStr: "Clear", 8 | todayStr: "Today", 9 | okStr: "OK", 10 | updateStr: "OK", 11 | timeStr: "Time", 12 | quickStr: "Quick Selection", 13 | err_1: 'MinDate Cannot be bigger than MaxDate!' 14 | } -------------------------------------------------------------------------------- /WebRoot/js/formValidator/新建文件夹/jquery.validationEngine-cn.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | $.fn.validationEngineLanguage = function() {}; 3 | $.validationEngineLanguage = { 4 | newLang: function() { 5 | $.validationEngineLanguage.allRules = {"required":{ // Add your regex rules here, you can take telephone as an example 6 | "regex":"none", 7 | "alertText":"* 非空选项.", 8 | "alertTextCheckboxMultiple":"* 请选择一个单选框.", 9 | "alertTextCheckboxe":"* 请选择一个复选框."}} 10 | 11 | } 12 | } 13 | })(jQuery); 14 | 15 | $(document).ready(function() { 16 | $.validationEngineLanguage.newLang() 17 | }); 18 | -------------------------------------------------------------------------------- /WebRoot/js/formValidator/.svn/all-wcprops: -------------------------------------------------------------------------------- 1 | K 25 2 | svn:wc:ra_dav:version-url 3 | V 44 4 | /svn/ci/!svn/ver/2/trunk/ci/js/formValidator 5 | END 6 | validationEngine.jquery.css 7 | K 25 8 | svn:wc:ra_dav:version-url 9 | V 72 10 | /svn/ci/!svn/ver/2/trunk/ci/js/formValidator/validationEngine.jquery.css 11 | END 12 | jquery.validationEngine-cn.js 13 | K 25 14 | svn:wc:ra_dav:version-url 15 | V 74 16 | /svn/ci/!svn/ver/2/trunk/ci/js/formValidator/jquery.validationEngine-cn.js 17 | END 18 | jquery.validationEngine-en.js 19 | K 25 20 | svn:wc:ra_dav:version-url 21 | V 74 22 | /svn/ci/!svn/ver/2/trunk/ci/js/formValidator/jquery.validationEngine-en.js 23 | END 24 | jquery.validationEngine.js 25 | K 25 26 | svn:wc:ra_dav:version-url 27 | V 72 28 | /svn/ci/!svn/ver/17/trunk/ci/js/formValidator/jquery.validationEngine.js 29 | END 30 | -------------------------------------------------------------------------------- /WebRoot/js/My97DatePicker/lang/zh-cn.js: -------------------------------------------------------------------------------- 1 | var $lang={ 2 | errAlertMsg: "\u4E0D\u5408\u6CD5\u7684\u65E5\u671F\u683C\u5F0F\u6216\u8005\u65E5\u671F\u8D85\u51FA\u9650\u5B9A\u8303\u56F4,\u9700\u8981\u64A4\u9500\u5417?", 3 | aWeekStr: ["\u5468","\u65E5","\u4E00","\u4E8C","\u4E09","\u56DB","\u4E94","\u516D"], 4 | aLongWeekStr:["\u5468","\u661F\u671F\u65E5","\u661F\u671F\u4E00","\u661F\u671F\u4E8C","\u661F\u671F\u4E09","\u661F\u671F\u56DB","\u661F\u671F\u4E94","\u661F\u671F\u516D"], 5 | 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"], 6 | 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"], 7 | clearStr: "\u6E05\u7A7A", 8 | todayStr: "\u4ECA\u5929", 9 | okStr: "\u786E\u5B9A", 10 | updateStr: "\u786E\u5B9A", 11 | timeStr: "\u65F6\u95F4", 12 | quickStr: "\u5FEB\u901F\u9009\u62E9", 13 | err_1: '\u6700\u5C0F\u65E5\u671F\u4E0D\u80FD\u5927\u4E8E\u6700\u5927\u65E5\u671F!' 14 | } -------------------------------------------------------------------------------- /WebRoot/js/My97DatePicker/lang/zh-tw.js: -------------------------------------------------------------------------------- 1 | var $lang={ 2 | errAlertMsg: "\u4E0D\u5408\u6CD5\u7684\u65E5\u671F\u683C\u5F0F\u6216\u8005\u65E5\u671F\u8D85\u51FA\u9650\u5B9A\u7BC4\u570D,\u9700\u8981\u64A4\u92B7\u55CE?", 3 | aWeekStr: ["\u5468","\u65E5","\u4E00","\u4E8C","\u4E09","\u56DB","\u4E94","\u516D"], 4 | aLongWeekStr:["\u5468","\u661F\u671F\u65E5","\u661F\u671F\u4E00","\u661F\u671F\u4E8C","\u661F\u671F\u4E09","\u661F\u671F\u56DB","\u661F\u671F\u4E94","\u661F\u671F\u516D"], 5 | 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"], 6 | 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"], 7 | clearStr: "\u6E05\u7A7A", 8 | todayStr: "\u4ECA\u5929", 9 | okStr: "\u78BA\u5B9A", 10 | updateStr: "\u78BA\u5B9A", 11 | timeStr: "\u6642\u9593", 12 | quickStr: "\u5FEB\u901F\u9078\u64C7", 13 | err_1: '\u6700\u5C0F\u65E5\u671F\u4E0D\u80FD\u5927\u65BC\u6700\u5927\u65E5\u671F!' 14 | } -------------------------------------------------------------------------------- /WebRoot/js/flexslider/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2011 Tyler Smith 2 | 3 | Permission is hereby granted, free of charge, to any person 4 | obtaining a copy of this software and associated documentation 5 | files (the "Software"), to deal in the Software without 6 | restriction, including without limitation the rights to use, 7 | copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the 9 | Software is furnished to do so, subject to the following 10 | conditions: 11 | 12 | The above copyright notice and this permission notice shall be 13 | included in all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 16 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 17 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 18 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 19 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 20 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22 | OTHER DEALINGS IN THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /WebRoot/js/gmaps/examples.css: -------------------------------------------------------------------------------- 1 | body{ 2 | font-family: 'Droid Sans', 'Helvetica', Arial, sans-serif; 3 | margin:5px; 4 | } 5 | #map{ 6 | display: block; 7 | width: 95%; 8 | height: 350px; 9 | margin: 0 auto; 10 | -moz-box-shadow: 0px 5px 20px #ccc; 11 | -webkit-box-shadow: 0px 5px 20px #ccc; 12 | box-shadow: 0px 5px 20px #ccc; 13 | } 14 | #map.large{ 15 | height:500px; 16 | } 17 | 18 | .overlay{ 19 | display:block; 20 | text-align:center; 21 | color:#fff; 22 | font-size:60px; 23 | line-height:80px; 24 | opacity:0.8; 25 | background:#4477aa; 26 | border:solid 3px #336699; 27 | border-radius:4px; 28 | box-shadow:2px 2px 10px #333; 29 | text-shadow:1px 1px 1px #666; 30 | padding:0 4px; 31 | } 32 | 33 | .overlay_arrow{ 34 | left:50%; 35 | margin-left:-16px; 36 | width:0; 37 | height:0; 38 | position:absolute; 39 | } 40 | .overlay_arrow.above{ 41 | bottom:-15px; 42 | border-left:16px solid transparent; 43 | border-right:16px solid transparent; 44 | border-top:16px solid #336699; 45 | } 46 | .overlay_arrow.below{ 47 | top:-15px; 48 | border-left:16px solid transparent; 49 | border-right:16px solid transparent; 50 | border-bottom:16px solid #336699; 51 | } -------------------------------------------------------------------------------- /WebRoot/contact.jsp: -------------------------------------------------------------------------------- 1 | <%@ page language="java" import="java.util.*,com.jzero.util.MTool" pageEncoding="UTF-8"%> 2 | <%@include file="/front/top.jsp" %> 3 | <% 4 | String contact=obj.get("contact");//实体内容 5 | %> 6 | 7 | 8 | 9 | 10 | 22 | 23 | 24 | 34 | 35 | 36 | 37 |
11 | 12 | 13 | 14 | 15 | <%if(!MCheck.isNull(categoryLst)){for(MRecord row:categoryLst){%> 16 | 17 | 18 | 19 | <%}} %> 20 |
分类栏目
<%=row.getStr("name") %>
21 |
25 | 26 | 27 | 30 | 31 | 32 |
28 | <%=contact %> 29 |
33 |
38 | 39 | 40 | 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /src/config.properties: -------------------------------------------------------------------------------- 1 | #log记录级别 NO,ERROR, DEBUG, INFO, ALL 2 | log_enabled=true 3 | log_level=ERROR 4 | log_reload=false 5 | 6 | #cookie管理,MToken 7 | cookie_prefix= 8 | cookie_domain= 9 | #//如果不设置路径,那么只有设置该Cookie路径及其子路径可以访问. 10 | cookie_path=/ 11 | 12 | #INPUT 13 | charset=UTF-8 14 | #GLOBAL XSSFiltering INPUT 15 | global_xss_filtering=TRUE 16 | 17 | 18 | #token管理 19 | #是否开启验证MR 20 | csrf_protection=true 21 | csrf_token_name=csrf_jzero 22 | csrf_cookie_name=csrf_cookie_name 23 | #秒,二个小时 24 | csrf_expire=7200 25 | 26 | #是否开启压缩页面,还未实现,可参考多个filter拦截实现 27 | compress_output=false 28 | 29 | #pool 暂时实现的有 BoneCpPool,C3poPool,BasePool,ProxoolPool 30 | pool=BasePool 31 | #数据库读取等待的最大时间(秒) 32 | db_max_time=60 33 | #数据库类型,暂时只实现了MySQL,其它的以后再完善 34 | db_type=CSqlite 35 | 36 | #显示参数项 properties 37 | show_prop=false 38 | #打印出当条语句执行的类与方法 39 | is_dev=true 40 | #查看当条SQL运行的时间 41 | show_run_time=true 42 | #是否显示执行的sql 43 | show_sql=true 44 | 45 | #充许URI字符 URI 46 | permitted_uri_chars=\\w*[,]*\\w*[,]*\\w*[,]*\\w*[,]*\\w[_]*\\w* 47 | 48 | sess_expiration =15 49 | sess_match_ip=true 50 | #是否需要需要浏览器 51 | sess_match_useragent=true 52 | 53 | #显示文件名后辍 54 | suffix="" 55 | DEFAULT_I18N_MAX_AGE_OF_COOKIE = 999999999; 56 | 57 | #cache_time//默认缓存3分钟 58 | cache_time=3 59 | 60 | -------------------------------------------------------------------------------- /WebRoot/ad.jsp: -------------------------------------------------------------------------------- 1 | <%@ page language="java" import="java.util.*,com.jzero.util.MTool" pageEncoding="UTF-8"%> 2 | <%@include file="/front/top.jsp" %> 3 | <% 4 | List submenuLst=obj.get("submenuLst");//子菜单 5 | MRecord contentObj=obj.get("contentObj");//实体内容 6 | %> 7 |
8 | 9 | 10 | <%if(!MCheck.isNull(submenuLst)){for(MRecord row:submenuLst){%> 11 | 12 | <%}} %> 13 |
分类栏目
/<%=row.getStr("parent_id") %>';"><%=row.getStr("name") %>
14 |
15 |
16 | 17 | 18 | 24 | 30 | 31 |
19 | 22 |
20 | " height="280px" /> 21 |
23 |
25 | 26 | 27 | 28 |
介绍
<%=contentObj.getStr("introduce") %>
29 |
32 | 33 | 34 |
35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /src/guilinsoft/sky/utils/MMsg.java: -------------------------------------------------------------------------------- 1 | 2 | package guilinsoft.sky.utils; 3 | 4 | import com.jzero.util.Msg; 5 | 6 | /** 7 | * 2012-10-15: 所有表信息 8 | * wangujqw@gmail.com 9 | */ 10 | public final class MMsg extends Msg { 11 | 12 | public static final String XT_CATEGORY = "xt_category"; 13 | 14 | public static final String WZ_CONTENT = "wz_content"; 15 | public static final String WZ_CONTENT_MX = "wz_content_mx"; //图片主表 16 | public static final String WZ_ADVERTISING = "wz_advertising"; //网站广告管理 17 | 18 | 19 | //文件操作 20 | public static final String TXT_CONTACT = "contact.txt"; 21 | public static final String TXT_NOTICE = "notice.txt"; 22 | public static final String TXT_WEB = "web.txt"; 23 | 24 | 25 | public static final String SAVE_SUCCESS = "保存操作成功."; 26 | 27 | /** 28 | * 通信常量名,与服务器一致 29 | */ 30 | //终端编号 31 | public static final String SERNO = "serno"; 32 | //读取命令,读取全部还是读取更新后的信息 33 | public static final String COMMEND = "commend"; 34 | public static final String READ_ALL = "read_all"; 35 | public static final String READ = "read"; 36 | //最后更新时间 37 | public static final String UPDATETIME = "updatetime"; 38 | //是否更新目录 39 | public static final String CATEGORY = "category"; 40 | //是否更新联系我们 41 | public static final String CONTACT = "contact"; 42 | //是否读取公告 43 | public static final String NOTICE = "notice"; 44 | 45 | 46 | 47 | 48 | } 49 | -------------------------------------------------------------------------------- /WebRoot/js/formValidator/.svn/entries: -------------------------------------------------------------------------------- 1 | 10 2 | 3 | dir 4 | 2 5 | https://192.168.1.253:8443/svn/ci/trunk/ci/js/formValidator 6 | https://192.168.1.253:8443/svn/ci 7 | 8 | 9 | 10 | 2011-08-03T07:35:55.119379Z 11 | 2 12 | wx 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | d79b8d5e-70d0-f141-a7e2-a7b4c956d271 28 | 29 | validationEngine.jquery.css 30 | file 31 | 32 | 33 | 34 | 35 | 2011-08-03T07:38:17.825541Z 36 | 0a50952f5bde41547aaf5bebc3b714c1 37 | 2011-08-03T07:35:55.119379Z 38 | 2 39 | wx 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 2581 62 | 63 | jquery.validationEngine-cn.js 64 | file 65 | 66 | 67 | 68 | 69 | 2011-08-03T07:38:17.838542Z 70 | 67766d4b07a394a467394d594fdbd729 71 | 2011-08-03T07:35:55.119379Z 72 | 2 73 | wx 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 4793 96 | 97 | jquery.validationEngine-en.js 98 | file 99 | 100 | 101 | 102 | 103 | 2011-08-03T07:38:17.840542Z 104 | 03612ed64daf71fe4937cb70b51e1ed3 105 | 2011-08-03T07:35:55.119379Z 106 | 2 107 | wx 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 7694 130 | 131 | jquery.validationEngine.js 132 | file 133 | 17 134 | 135 | 136 | 137 | 2011-08-03T09:08:40.201683Z 138 | eef5ed518d2af7f5ae016c9a1a530ef6 139 | 2011-08-08T02:28:37.849959Z 140 | 17 141 | wx 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 25342 164 | 165 | -------------------------------------------------------------------------------- /src/guilinsoft/sky/client/MRecordClient.java: -------------------------------------------------------------------------------- 1 | package guilinsoft.sky.client; 2 | 3 | import io.netty.bootstrap.Bootstrap; 4 | import io.netty.channel.Channel; 5 | import io.netty.channel.ChannelInitializer; 6 | import io.netty.channel.nio.NioEventLoopGroup; 7 | import io.netty.channel.socket.nio.NioSocketChannel; 8 | import io.netty.handler.codec.serialization.ClassResolvers; 9 | import io.netty.handler.codec.serialization.ObjectDecoder; 10 | import io.netty.handler.codec.serialization.ObjectEncoder; 11 | 12 | import java.net.InetSocketAddress; 13 | 14 | import com.jzero.util.MCheck; 15 | import com.jzero.util.MPrint; 16 | import com.jzero.util.MPro; 17 | 18 | public class MRecordClient { 19 | public static MRecordClient client=new MRecordClient(); 20 | private static Bootstrap b=new Bootstrap(); 21 | private MRecordClient(){} 22 | public static MRecordClient me(){ 23 | return client; 24 | } 25 | public void start(){ 26 | MPrint.print("已开启Client Hander 连接 "); 27 | try{ 28 | b.group(new NioEventLoopGroup()) 29 | .channel(NioSocketChannel.class) 30 | .handler(new ChannelInitializer() { 31 | @Override 32 | protected void initChannel(Channel ch) throws Exception { 33 | ch.pipeline().addLast(new ObjectEncoder(), 34 | new ObjectDecoder(ClassResolvers.cacheDisabled(null)), 35 | new MRecordClientHandler() 36 | ); 37 | } 38 | }); 39 | b.connect(new InetSocketAddress(MPro.me().getStr("target_ip"), MPro.me().getInt("target_port"))).sync().channel().closeFuture().sync(); 40 | } catch (InterruptedException e) { 41 | e.printStackTrace(); 42 | }finally{ 43 | b.shutdown(); 44 | } 45 | } 46 | public void stop(){ 47 | if(!MCheck.isNull(b)){ 48 | b.shutdown(); 49 | } 50 | } 51 | public void restart(){ 52 | stop(); 53 | start(); 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /WebRoot/front/top.jsp: -------------------------------------------------------------------------------- 1 | <%@ page language="java" import="java.util.*,com.jzero.util.MTool" pageEncoding="UTF-8"%> 2 | <%@ page import="com.jzero.util.*,com.jzero.tag.*,com.jzero.core.*"%> 3 | 4 | 5 | 6 | 7 | 8 | <% 9 | MRecord obj=MR.me().getAttr(Msg.OBJECT); 10 | String notice=obj.getStr("noticeContent"); //滚动内容 11 | List categoryLst=obj.get("categoryLst");//一级分类 12 | String pages=obj.getStr("page"); 13 | %> 14 | <%=T.js("js/jquery.js") %> 15 | <%=T.css("css/front.css") %> 16 | <%=T.css("js/flexslider/flexslider.css") %> 17 | <%=T.js("js/flexslider/jquery.flexslider-min.js") %> 18 | 26 | 27 | 28 | 29 | 30 | 57 | 58 |
31 | 32 | 33 | 34 | 35 | 36 | 53 | 54 |
星空
旅游商务
37 | 38 | 39 | 50 | 51 |
40 | 49 |
52 |
55 | 56 | 57 | 58 | 59 | 62 | 63 |
60 | <%=notice %> 61 |
64 | -------------------------------------------------------------------------------- /WebRoot/submenu.jsp: -------------------------------------------------------------------------------- 1 | <%@ page language="java" import="java.util.*,com.jzero.util.MTool" pageEncoding="UTF-8"%> 2 | <%@include file="/front/top.jsp" %> 3 | <% 4 | List submenuLst=obj.get("submenuLst");//子菜单 5 | List contentLst=obj.get("contentLst");//实体内容 6 | List recommendLst=obj.get("recommendLst");//本栏推荐 7 | %> 8 | 9 | 10 | 11 | 12 | 24 | 25 | 26 | 37 | 38 | 39 |
13 | 14 | 15 | 16 | 17 | <%if(!MCheck.isNull(submenuLst)){for(MRecord row:submenuLst){%> 18 | 19 | 20 | 21 | <%}} %> 22 |
分类栏目
/<%=row.getStr("parent_id") %>';"><%=row.getStr("name") %>
23 |
27 | 28 | 29 | <%if(!MCheck.isNull(contentLst)){for(MRecord row:contentLst){%> 30 | 33 | <%}} %> 34 | 35 |
/<%=row.getStr("parent_id") %>">" alt="<%=row.getStr("title") %>" width="180" height="150"> 31 |

<%=row.getStr("title") %>

32 |
36 |
40 | 41 | 42 | 43 | 44 | 45 | 46 | 53 | 54 |
推荐

商品
47 | 48 | <%if(!MCheck.isNull(recommendLst)){for(MRecord row:recommendLst){%> 49 | /<%=row.getStr("parent_id") %>" title="<%=row.getStr("title") %>">" src="upload/<%=row.getStr("path") %>" width="185" height="110" /> 50 | <%}} %> 51 | 52 |
55 | 56 |
59 | 60 | 61 | -------------------------------------------------------------------------------- /WebRoot/js/formValidator/新建文件夹/validationEngine.jquery.css: -------------------------------------------------------------------------------- 1 | 2 | .inputContainer{position:relative; float:left;} 3 | .formError { 4 | position:absolute; 5 | top:300px; left:300px; 6 | display:block; 7 | z-index:5000; 8 | cursor:pointer; 9 | } 10 | #debugMode{ 11 | background:#000; 12 | position:fixed; 13 | width:100%; height:200px; 14 | top:0; left:0; 15 | overflow:scroll; 16 | opacity:0.8; 17 | display:block; 18 | padding:10px; 19 | color:#fff; 20 | font-size:14px; 21 | z-index:100000; 22 | } 23 | 24 | .ajaxSubmit{ padding:20px; background:#55ea55;border:1px solid #999;display:none} 25 | .formError .formErrorContent { 26 | width:100%; 27 | background:#ee0101; 28 | color:#fff; 29 | width:100px; 30 | font-family:tahoma; 31 | font-size:11px; 32 | border:2px solid #ddd; 33 | box-shadow: 0px 0px 6px #000; 34 | -moz-box-shadow: 0px 0px 6px #000; 35 | -webkit-box-shadow: 0px 0px 6px #000; 36 | padding:4px 10px 4px 10px; 37 | border-radius: 6px; 38 | -moz-border-radius: 6px; 39 | -webkit-border-radius: 6px; 40 | } 41 | .greenPopup .formErrorContent {background:#33be40;} 42 | 43 | .blackPopup .formErrorContent {background:#393939;color:#FFF;} 44 | 45 | .formError .formErrorArrow{ 46 | width:15px; 47 | margin:-2px 0 0 13px; 48 | z-index:5001; 49 | } 50 | .formError .formErrorArrowBottom{top:0;margin:-6px;} 51 | 52 | .formError .formErrorArrow div{ 53 | border-left:2px solid #ddd; 54 | border-right:2px solid #ddd; 55 | box-shadow: 0px 2px 3px #444; 56 | -moz-box-shadow: 0px 2px 3px #444; 57 | -webkit-box-shadow: 0px 2px 3px #444; 58 | font-size:0px; height:1px; background:#ee0101;margin:0 auto;line-height:0px; font-size:0px; display:block; 59 | } 60 | .formError .formErrorArrowBottom div{ 61 | box-shadow: none; 62 | -moz-box-shadow: none; 63 | -webkit-box-shadow: none; 64 | } 65 | 66 | .greenPopup .formErrorArrow div{background:#33be40;} 67 | .blackPopup .formErrorArrow div{background:#393939;color:#FFF;} 68 | 69 | .formError .formErrorArrow .line10{width:15px;border:none;} 70 | .formError .formErrorArrow .line9{width:13px;border:none;} 71 | .formError .formErrorArrow .line8{width:11px;} 72 | .formError .formErrorArrow .line7{width:9px;} 73 | .formError .formErrorArrow .line6{width:7px;} 74 | .formError .formErrorArrow .line5{width:5px;} 75 | .formError .formErrorArrow .line4{width:3px;} 76 | .formError .formErrorArrow .line3{width:1px; 77 | border-left:2px solid #ddd; 78 | border-right:2px solid #ddd; 79 | border-bottom:0px solid #ddd;} 80 | .formError .formErrorArrow .line2{width:3px;border:none;background:#ddd;} 81 | .formError .formErrorArrow .line1{width:1px;border:none;background:#ddd;} -------------------------------------------------------------------------------- /WebRoot/content.jsp: -------------------------------------------------------------------------------- 1 | <%@ page language="java" import="java.util.*,com.jzero.util.MTool" pageEncoding="UTF-8"%> 2 | <%@include file="/front/top.jsp" %> 3 | <% 4 | List submenuLst=obj.get("submenuLst");//子菜单 5 | MRecord contentObj=obj.get("contentObj");//实体内容 6 | List subImg=obj.get("subImg");//子图 7 | %> 8 |
9 | 10 | 11 | <%if(!MCheck.isNull(submenuLst)){for(MRecord row:submenuLst){%> 12 | 13 | <%}} %> 14 |
分类栏目
/<%=row.getStr("parent_id") %>';"><%=row.getStr("name") %>
15 |
16 | 61 | 62 | 63 | 64 | 65 | <%=T.js("js/gmaps/gmaps.js") %> 66 | <%=T.css("js/gmaps/examples.css") %> 67 | 84 | 85 | 86 | -------------------------------------------------------------------------------- /WebRoot/buy.jsp: -------------------------------------------------------------------------------- 1 | <%@ page language="java" import="java.util.*,com.jzero.util.MTool" pageEncoding="UTF-8"%> 2 | <%@include file="/front/top.jsp" %> 3 | <% 4 | MRecord contentObj=obj.get("contentObj");//实体内容 5 | %> 6 | 7 | 8 | 9 | 10 | 22 | 23 | 24 | 42 | 43 | 44 |
11 | 12 | 13 | 14 | 15 | <%if(!MCheck.isNull(categoryLst)){for(MRecord row:categoryLst){%> 16 | 17 | 18 | 19 | <%}} %> 20 |
分类栏目
/<%=row.getStr("parent_id") %>';"><%=row.getStr("name") %>
21 |
25 |
26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 |
客户资料
身份证号:
手机号码:
购票信息
门票名称: <%=contentObj.getStr("title")%>
优惠价: "/><%=contentObj.getStr("preferential_price")%>参考市场价: <%=contentObj.getStr("market_price")%>
日期:
数量(张):总价(元):" readonly>
出票方式:打印纸质门票发送手机二维码
40 |
41 |
45 | 46 | 47 | <%=T.css("js/Keyboard/jquery-ui.css")%> 48 | <%=T.css("js/Keyboard/keyboard.css")%> 49 | <%=T.js("js/Keyboard/jquery-ui.min.js")%> 50 | <%=T.js("js/Keyboard/jquery.keyboard.js")%> 51 | 58 | 59 | 60 | -------------------------------------------------------------------------------- /WebRoot/js/Keyboard/jquery-ui.css: -------------------------------------------------------------------------------- 1 | 2 | /* Component containers 3 | ----------------------------------*/ 4 | .ui-widget { font-family: Segoe UI,Arial,sans-serif; font-size: 1.1em; } 5 | .ui-widget .ui-widget { font-size: 1em; } 6 | .ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Segoe UI,Arial,sans-serif; font-size: 1em; } 7 | .ui-widget-content { border: 1px solid #666666; background: #ffffff url(images/ui-bg_inset-soft_25_000000_1x100.png) 50% bottom repeat-x; color: #ffffff; } 8 | .ui-widget-content a { color: #ffffff; } 9 | .ui-widget-header { border: 1px solid #333333; background: #333333 url(images/ui-bg_gloss-wave_25_333333_500x100.png) 50% 50% repeat-x; color: #ffffff; font-weight: bold; } 10 | .ui-widget-header a { color: #ffffff; } 11 | 12 | /* Interaction states 13 | ----------------------------------*/ 14 | .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #666666; background: #555555 url(images/ui-bg_glass_20_555555_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #eeeeee; } 15 | .ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #eeeeee; text-decoration: none; } 16 | .ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #59b4d4; background: #0078a3 url(images/ui-bg_glass_40_0078a3_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #ffffff; } 17 | .ui-state-hover a, .ui-state-hover a:hover, .ui-state-hover a:link, .ui-state-hover a:visited { color: #ffffff; text-decoration: none; } 18 | .ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #ffaf0f; background: #f58400 url(images/ui-bg_inset-soft_30_f58400_1x100.png) 50% 50% repeat-x; font-weight: bold; color: #ffffff; } 19 | .ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #ffffff; text-decoration: none; } 20 | 21 | 22 | 23 | 24 | 25 | /* Misc visuals 26 | ----------------------------------*/ 27 | 28 | /* Corner radius */ 29 | .ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 6px; -webkit-border-top-left-radius: 6px; -khtml-border-top-left-radius: 6px; border-top-left-radius: 6px; } 30 | .ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 6px; -webkit-border-top-right-radius: 6px; -khtml-border-top-right-radius: 6px; border-top-right-radius: 6px; } 31 | .ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 6px; -webkit-border-bottom-left-radius: 6px; -khtml-border-bottom-left-radius: 6px; border-bottom-left-radius: 6px; } 32 | .ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 6px; -webkit-border-bottom-right-radius: 6px; -khtml-border-bottom-right-radius: 6px; border-bottom-right-radius: 6px; } 33 | 34 | /* Overlays */ 35 | .ui-widget-overlay { background: #5c5c5c url(images/ui-bg_flat_50_5c5c5c_40x100.png) 50% 50% repeat-x; opacity: .8;filter:Alpha(Opacity=80); } 36 | .ui-widget-shadow { margin: -7px 0 0 -7px; padding: 7px; background: #cccccc url(images/ui-bg_flat_30_cccccc_40x100.png) 50% 50% repeat-x; opacity: .6;filter:Alpha(Opacity=60); -moz-border-radius: 8px; -khtml-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; } -------------------------------------------------------------------------------- /WebRoot/js/formValidator/validationEngine.jquery.css: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | /* Z-INDEX */ 6 | .formError { z-index: 990; } 7 | .formError .formErrorContent { z-index: 991; } 8 | .formError .formErrorArrow { z-index: 996; } 9 | 10 | .formErrorInsideDialog.formError { z-index: 5000; } 11 | .formErrorInsideDialog.formError .formErrorContent { z-index: 5001; } 12 | .formErrorInsideDialog.formError .formErrorArrow { z-index: 5006; } 13 | 14 | 15 | 16 | 17 | .inputContainer { 18 | position: relative; 19 | float: left; 20 | } 21 | 22 | .formError { 23 | position: absolute; 24 | top: 300px; 25 | left: 300px; 26 | display: block; 27 | cursor: pointer; 28 | } 29 | 30 | .ajaxSubmit { 31 | padding: 20px; 32 | background: #55ea55; 33 | border: 1px solid #999; 34 | display: none 35 | } 36 | 37 | .formError .formErrorContent { 38 | width: 100%; 39 | background: #ee0101; 40 | position:relative; 41 | color: #fff; 42 | width: 150px; 43 | font-size: 11px; 44 | border: 2px solid #ddd; 45 | box-shadow: 0 0 6px #000; 46 | -moz-box-shadow: 0 0 6px #000; 47 | -webkit-box-shadow: 0 0 6px #000; 48 | padding: 4px 10px 4px 10px; 49 | border-radius: 6px; 50 | -moz-border-radius: 6px; 51 | -webkit-border-radius: 6px; 52 | } 53 | 54 | .greenPopup .formErrorContent { 55 | background: #33be40; 56 | } 57 | 58 | .blackPopup .formErrorContent { 59 | background: #393939; 60 | color: #FFF; 61 | } 62 | 63 | .formError .formErrorArrow { 64 | width: 15px; 65 | margin: -2px 0 0 13px; 66 | position:relative; 67 | } 68 | body[dir='rtl'] .formError .formErrorArrow, 69 | body.rtl .formError .formErrorArrow { 70 | margin: -2px 13px 0 0; 71 | } 72 | 73 | .formError .formErrorArrowBottom { 74 | box-shadow: none; 75 | -moz-box-shadow: none; 76 | -webkit-box-shadow: none; 77 | margin: 0px 0 0 12px; 78 | top:2px; 79 | } 80 | 81 | .formError .formErrorArrow div { 82 | border-left: 2px solid #ddd; 83 | border-right: 2px solid #ddd; 84 | box-shadow: 0 2px 3px #444; 85 | -moz-box-shadow: 0 2px 3px #444; 86 | -webkit-box-shadow: 0 2px 3px #444; 87 | font-size: 0px; 88 | height: 1px; 89 | background: #ee0101; 90 | margin: 0 auto; 91 | line-height: 0; 92 | font-size: 0; 93 | display: block; 94 | } 95 | 96 | .formError .formErrorArrowBottom div { 97 | box-shadow: none; 98 | -moz-box-shadow: none; 99 | -webkit-box-shadow: none; 100 | } 101 | 102 | .greenPopup .formErrorArrow div { 103 | background: #33be40; 104 | } 105 | 106 | .blackPopup .formErrorArrow div { 107 | background: #393939; 108 | color: #FFF; 109 | } 110 | 111 | .formError .formErrorArrow .line10 { 112 | width: 15px; 113 | border: none; 114 | } 115 | 116 | .formError .formErrorArrow .line9 { 117 | width: 13px; 118 | border: none; 119 | } 120 | 121 | .formError .formErrorArrow .line8 { 122 | width: 11px; 123 | } 124 | 125 | .formError .formErrorArrow .line7 { 126 | width: 9px; 127 | } 128 | 129 | .formError .formErrorArrow .line6 { 130 | width: 7px; 131 | } 132 | 133 | .formError .formErrorArrow .line5 { 134 | width: 5px; 135 | } 136 | 137 | .formError .formErrorArrow .line4 { 138 | width: 3px; 139 | } 140 | 141 | .formError .formErrorArrow .line3 { 142 | width: 1px; 143 | border-left: 2px solid #ddd; 144 | border-right: 2px solid #ddd; 145 | border-bottom: 0 solid #ddd; 146 | } 147 | 148 | .formError .formErrorArrow .line2 { 149 | width: 3px; 150 | border: none; 151 | background: #ddd; 152 | } 153 | 154 | .formError .formErrorArrow .line1 { 155 | width: 1px; 156 | border: none; 157 | background: #ddd; 158 | } 159 | -------------------------------------------------------------------------------- /WebRoot/css/front.css: -------------------------------------------------------------------------------- 1 | @charset "utf-8"; 2 | body{font-size:14px;font-family:"微软雅黑";line-height:1.5;padding:0; margin: auto 0;background-color:#fff;color:#545454; scrollbar-face-color:#fff; scrollbar-base-color:#09F; scrollbar-shadow-color:#09f; scrollbar-darkshadow-color:#fff; scrollbar-highlight-color:#fff; scrollbar-3dlight-color:#09F;} 3 | a{color:#000;} 4 | a:link,a:visited,a:active,a:hover{text-decoration:none;} 5 | td,th,div{word-break:break-all;word-wrap:break-word;} 6 | table{width:100%;border: 0px;text-align: center;border-collapse:collapse; border-spacing:0; } 7 | td{margin: 0px;height: 36px;padding: 3px 0px 5px 3px;} 8 | .img{height:86px;} 9 | .bg_color{background-color: #FF6600;} 10 | /**top**/ 11 | div#menu {width:100%;height:41px;margin:0px;padding:0px;} 12 | div#mainmenu{margin:30px 0px 0px 0px;padding-left:219px;background:url(../images/front/menu_bg.jpg) 0px 0px repeat-x;} 13 | div#mainmenu ul {height:41px;line-height:41px;overflow:hidden;margin:0px; } 14 | div#mainmenu li{float:left;display:inline;margin:0px;padding:0px;background:url(../images/front/menu.jpg) 0px 0px no-repeat;} 15 | div#mainmenu a{display:block;width:93px;text-align:center;font:bold 14px/41px 'Microsoft YaHei','SimSun',Arial,Sans-Serif;} 16 | div#mainmenu a:link,div#mainmenu a:visited{color:#ffffff;text-decoration:none;} 17 | div#mainmenu a:hover,div#mainmenu a:active{color:#ffffff;background:url(../images/front/menu_hover.jpg) 0px 0px no-repeat;text-decoration:none;} 18 | div#mainmenu a.current{color:#ffffff;background:url(../images/front/menu_hover.jpg) 0px 0px no-repeat;text-decoration:none;} 19 | #left_table tr{ background: url("../images/front/6.png") no-repeat center center;margin:0; border:1px solid #ccc;cursor: pointer;} 20 | #left_table td,#ad td{line-height: 62px;} 21 | #ad img {max-width:550px;width:expression(width>550?"550px":width+"px");max-width:550px;overflow:hidden;max-height:155px;width:expression(height>155?"155px":height+"px");max-height:65px;overflow:hidden} 22 | #ad tr{cursor:pointer;border:1px solid #ccc;margin:0 0 0 5px;} 23 | #home_img{border:1px solid #ccc;margin:0 2px 0px 2px;} 24 | 25 | .content_info table{width:100%;margin-bottom:18px;padding:0;border-collapse:separate;*border-collapse:collapse;font-size:13px;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} 26 | .content_info table th,.content_info table td{padding:10px 10px 9px;line-height:18px;text-align:left;} 27 | .content_info table th{padding-top:9px;font-weight:bold;vertical-align:middle;border-bottom:1px solid #ddd;} 28 | .content_info table tr + tr td {border-top: 1px solid #DDD;} 29 | .btn-primary {color: white;text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);background-color: #006DCC;background-image: -moz-linear-gradient(top, #08C, #04C);background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#08C), to(#04C));background-image: -webkit-linear-gradient(top, #08C, #04C);background-image: -o-linear-gradient(top, #08C, #04C);background-image: linear-gradient(to bottom, #08C, #04C);background-repeat: repeat-x;border-color: #04C #04C #002A80;filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0);filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);} 30 | .btn-large {padding: 11px 19px;font-size: 17.5px;-webkit-border-radius: 6px;-moz-border-radius: 6px;border-radius: 6px;} 31 | select, textarea, input[type="text"], input[type="date"], input[type="number"], .uneditable-input {display: inline-block;height: 20px;padding: 4px 6px;margin: 10px 0 10px 0;font-size: 14px;line-height: 20px;color: #555;vertical-align: middle;-webkit-border-radius: 4px;-moz-border-radius: 4px;border-radius: 4px;border: 1px solid #CCC;} 32 | -------------------------------------------------------------------------------- /WebRoot/set.jsp: -------------------------------------------------------------------------------- 1 | <%@ page language="java" import="java.util.*,com.jzero.util.MTool,guilinsoft.sky.utils.MMsg" pageEncoding="UTF-8"%> 2 | <%@include file="/front/top.jsp" %> 3 | <% 4 | String read_all=MPro.me().getStr("read_all"); 5 | String read_notice=MPro.me().getStr("read_notice"); 6 | String read_contact=MPro.me().getStr("read_contact"); 7 | String read_category=MPro.me().getStr("read_category"); 8 | %> 9 | <%=T.form_open_m("index/save_set","return window.confirm(\"是否保存?\")") %> 10 | 11 | 12 | 13 | 14 | 15 | 16 | 20 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 61 | 64 | 65 | 66 | 67 | 71 | 74 | 75 | 76 | 77 | 81 | 84 | 85 | 86 |
字段说明
同步所有数据 17 | checked<%} %>/>是 18 | checked<%} %>/>否 19 | 21 | 选择〖是〗:则会跟服务器同步所有数据。 22 | 选择〖否〗:则会只同步服务上新的数据。 23 |
远程下载地址"/>远程服务器的地址:格式为 http://服务器IP:端口/服务器名称
远程服务器IP"/>远程服务器的IP地址,用于通信连接
远程服务器端口:"/>远程服务器开放的监听端口,请不要随意更改,否则会造成通信失败。
等待时间:"/>客户端定时访问服务器所等待时间,以分钟为单位。
终端编号:"/>终端唯一标识符,需要与服务器中的终端表中的编号对应,请不要随意更改,不然后造成通信失败。
最后更新时间:"/>用于服务器判断是否有新的数据需要发送(当同步所有数据选〖是〗时不起作用)
是否读取菜单表 58 | checked<%} %>/>是 59 | checked<%} %>/>否 60 | 62 | 因为目录表很少改变,所以一般不需要每次都读取.(当同步所有数据选〖是〗时不起作用) 63 |
读取联系我们 68 | checked<%} %>/>是 69 | checked<%} %>/>否 70 | 72 | 读取联系我们信息,当联系我们有变更时,选择[是]则会同服务器同步。(当同步所有数据选〖是〗时不起作用) 73 |
读取公告信息 78 | checked<%} %>/>是 79 | checked<%} %>/>否 80 | 82 | 读取公告信息,选择[是]则会同服务器同步。(当同步所有数据选〖是〗时不起作用) 83 |
87 | <%=T.form_close() %> 88 | <% if(!MCheck.isNull(obj.getStr(MMsg.MESSAGE))){%> 89 | 90 | <%} %> 91 | 92 | 93 | -------------------------------------------------------------------------------- /WebRoot/index.jsp: -------------------------------------------------------------------------------- 1 | <%@ page language="java" import="java.util.*,com.jzero.util.MTool" pageEncoding="UTF-8"%> 2 | <%@include file="/front/top.jsp" %> 3 | <% 4 | List recommendLst=obj.get("recommendLst");//推荐商品 5 | List adLst=obj.get("adLst");//推荐广告 6 | List picLst=obj.get("picLst");//首页图片 7 | %> 8 | 9 | 10 | 11 | 12 | 24 | 25 | 26 | 27 | 48 | 49 | 50 | 51 | 67 | 68 | 69 |
13 | 14 | 15 | 16 | 17 | <%if(!MCheck.isNull(categoryLst)){for(MRecord row:categoryLst){%> 18 | 19 | 20 | 21 | <%}} %> 22 |
分类栏目
/<%=row.getStr("parent_id") %>';"><%=row.getStr("name") %>
23 |
28 | 29 | 30 | 44 | 45 | 46 |
31 |
32 | 42 |
43 |
47 |
52 | 53 | 54 | 64 | 65 |
55 | 56 | 57 | <%if(!MCheck.isNull(adLst)){for(MRecord row:adLst){%> 58 | 61 | <%}} %> 62 | 63 |
66 |
70 | 71 | 72 | 73 | 74 | 75 | 76 | 83 | 84 |
推荐

商品
77 | 78 | <%if(!MCheck.isNull(recommendLst)){for(MRecord row:recommendLst){%> 79 | /<%=row.getStr("parent_id") %>" title="<%=row.getStr("title") %>">" src="upload/<%=row.getStr("path") %>" width="185" height="110" /> 80 | <%}} %> 81 | 82 |
85 | 86 | 87 | 88 | 89 | 92 | 93 | 94 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ################# 2 | ## Eclipse 3 | ################# 4 | 5 | *.pydevproject 6 | .project 7 | .metadata 8 | bin/ 9 | tmp/ 10 | *.tmp 11 | *.bak 12 | *.swp 13 | *~.nib 14 | local.properties 15 | .classpath 16 | .settings/ 17 | .loadpath 18 | 19 | # External tool builders 20 | .externalToolBuilders/ 21 | 22 | # Locally stored "Eclipse launch configurations" 23 | *.launch 24 | 25 | # CDT-specific 26 | .cproject 27 | 28 | # PDT-specific 29 | .buildpath 30 | 31 | 32 | ################# 33 | ## Visual Studio 34 | ################# 35 | 36 | ## Ignore Visual Studio temporary files, build results, and 37 | ## files generated by popular Visual Studio add-ons. 38 | 39 | # User-specific files 40 | *.suo 41 | *.user 42 | *.sln.docstates 43 | 44 | # Build results 45 | 46 | [Dd]ebug/ 47 | [Rr]elease/ 48 | x64/ 49 | build/ 50 | [Bb]in/ 51 | [Oo]bj/ 52 | 53 | # MSTest test Results 54 | [Tt]est[Rr]esult*/ 55 | [Bb]uild[Ll]og.* 56 | 57 | *_i.c 58 | *_p.c 59 | *.ilk 60 | *.meta 61 | *.obj 62 | *.pch 63 | *.pdb 64 | *.pgc 65 | *.pgd 66 | *.rsp 67 | *.sbr 68 | *.tlb 69 | *.tli 70 | *.tlh 71 | *.tmp 72 | *.tmp_proj 73 | *.log 74 | *.vspscc 75 | *.vssscc 76 | .builds 77 | *.pidb 78 | *.log 79 | *.scc 80 | 81 | # Visual C++ cache files 82 | ipch/ 83 | *.aps 84 | *.ncb 85 | *.opensdf 86 | *.sdf 87 | *.cachefile 88 | 89 | # Visual Studio profiler 90 | *.psess 91 | *.vsp 92 | *.vspx 93 | 94 | # Guidance Automation Toolkit 95 | *.gpState 96 | 97 | # ReSharper is a .NET coding add-in 98 | _ReSharper*/ 99 | *.[Rr]e[Ss]harper 100 | 101 | # TeamCity is a build add-in 102 | _TeamCity* 103 | 104 | # DotCover is a Code Coverage Tool 105 | *.dotCover 106 | 107 | # NCrunch 108 | *.ncrunch* 109 | .*crunch*.local.xml 110 | 111 | # Installshield output folder 112 | [Ee]xpress/ 113 | 114 | # DocProject is a documentation generator add-in 115 | DocProject/buildhelp/ 116 | DocProject/Help/*.HxT 117 | DocProject/Help/*.HxC 118 | DocProject/Help/*.hhc 119 | DocProject/Help/*.hhk 120 | DocProject/Help/*.hhp 121 | DocProject/Help/Html2 122 | DocProject/Help/html 123 | 124 | # Click-Once directory 125 | publish/ 126 | 127 | # Publish Web Output 128 | *.Publish.xml 129 | *.pubxml 130 | 131 | # NuGet Packages Directory 132 | ## TODO: If you have NuGet Package Restore enabled, uncomment the next line 133 | #packages/ 134 | 135 | # Windows Azure Build Output 136 | csx 137 | *.build.csdef 138 | 139 | # Windows Store app package directory 140 | AppPackages/ 141 | 142 | # Others 143 | sql/ 144 | *.Cache 145 | ClientBin/ 146 | [Ss]tyle[Cc]op.* 147 | ~$* 148 | *~ 149 | *.dbmdl 150 | *.[Pp]ublish.xml 151 | *.pfx 152 | *.publishsettings 153 | 154 | # RIA/Silverlight projects 155 | Generated_Code/ 156 | 157 | # Backup & report files from converting an old project file to a newer 158 | # Visual Studio version. Backup files are not needed, because we have git ;-) 159 | _UpgradeReport_Files/ 160 | Backup*/ 161 | UpgradeLog*.XML 162 | UpgradeLog*.htm 163 | 164 | # SQL Server files 165 | App_Data/*.mdf 166 | App_Data/*.ldf 167 | 168 | ############# 169 | ## Windows detritus 170 | ############# 171 | 172 | # Windows image file caches 173 | Thumbs.db 174 | ehthumbs.db 175 | 176 | # Folder config file 177 | Desktop.ini 178 | 179 | # Recycle Bin used on file shares 180 | $RECYCLE.BIN/ 181 | 182 | # Mac crap 183 | .DS_Store 184 | 185 | 186 | ############# 187 | ## Python 188 | ############# 189 | 190 | *.py[co] 191 | 192 | # Packages 193 | *.egg 194 | *.egg-info 195 | dist/ 196 | build/ 197 | eggs/ 198 | parts/ 199 | var/ 200 | sdist/ 201 | develop-eggs/ 202 | .installed.cfg 203 | 204 | # Installer logs 205 | pip-log.txt 206 | 207 | # Unit test / coverage reports 208 | .coverage 209 | .tox 210 | 211 | #Translations 212 | *.mo 213 | 214 | #Mr Developer 215 | .mr.developer.cfg 216 | -------------------------------------------------------------------------------- /WebRoot/js/flexslider/flexslider.css: -------------------------------------------------------------------------------- 1 | /* 2 | * jQuery FlexSlider v2.0 3 | * http://www.woothemes.com/flexslider/ 4 | * 5 | * Copyright 2012 WooThemes 6 | * Free to use under the GPLv2 license. 7 | * http://www.gnu.org/licenses/gpl-2.0.html 8 | * 9 | * Contributing author: Tyler Smith (@mbmufffin) 10 | */ 11 | 12 | 13 | /* Browser Resets */ 14 | .flex-container a:active, 15 | .flexslider a:active, 16 | .flex-container a:focus, 17 | .flexslider a:focus {outline: none;} 18 | .slides, 19 | .flex-control-nav, 20 | .flex-direction-nav {margin: 0; padding: 0; list-style: none;} 21 | 22 | /* FlexSlider Necessary Styles 23 | *********************************/ 24 | .flexslider {margin: 0; padding: 0;} 25 | .flexslider .slides > li {display: none; -webkit-backface-visibility: hidden;} /* Hide the slides before the JS is loaded. Avoids image jumping */ 26 | .flexslider .slides img {width: 100%; display: block;} 27 | .flex-pauseplay span {text-transform: capitalize;} 28 | 29 | /* Clearfix for the .slides element */ 30 | .slides:after {content: "."; display: block; clear: both; visibility: hidden; line-height: 0; height: 0;} 31 | html[xmlns] .slides {display: block;} 32 | * html .slides {height: 1%;} 33 | 34 | /* No JavaScript Fallback */ 35 | /* If you are not using another script, such as Modernizr, make sure you 36 | * include js that eliminates this class on page load */ 37 | .no-js .slides > li:first-child {display: block;} 38 | 39 | 40 | /* FlexSlider Default Theme 41 | *********************************/ 42 | .flexslider {margin: 0 0 8px; background: #fff; border: 4px solid #fff; position: relative; -webkit-border-radius: 4px; -moz-border-radius: 4px; -o-border-radius: 4px; border-radius: 4px; box-shadow: 0 1px 4px rgba(0,0,0,.2); -webkit-box-shadow: 0 1px 4px rgba(0,0,0,.2); -moz-box-shadow: 0 1px 4px rgba(0,0,0,.2); -o-box-shadow: 0 1px 4px rgba(0,0,0,.2); zoom: 1;} 43 | .flex-viewport {max-height: 2000px; -webkit-transition: all 1s ease; -moz-transition: all 1s ease; transition: all 1s ease;} 44 | .loading .flex-viewport {max-height: 300px;} 45 | .flexslider .slides {zoom: 1;} 46 | 47 | .carousel li {margin-right: 5px} 48 | 49 | 50 | /* Direction Nav */ 51 | .flex-direction-nav {*height: 0;} 52 | .flex-direction-nav a {width: 30px; height: 30px; margin: -20px 0 0; display: block; background: url(images/bg_direction_nav.png) no-repeat 0 0; position: absolute; top: 50%; z-index: 10; cursor: pointer; text-indent: -9999px; opacity: 0; -webkit-transition: all .3s ease;} 53 | .flex-direction-nav .flex-next {background-position: 100% 0; right: -36px; } 54 | .flex-direction-nav .flex-prev {left: -36px;} 55 | .flexslider:hover .flex-next {opacity: 0.8; right: 5px;} 56 | .flexslider:hover .flex-prev {opacity: 0.8; left: 5px;} 57 | .flexslider:hover .flex-next:hover, .flexslider:hover .flex-prev:hover {opacity: 1;} 58 | .flex-direction-nav .flex-disabled {opacity: .3!important; filter:alpha(opacity=30); cursor: default;} 59 | 60 | /* Control Nav */ 61 | .flex-control-nav {width: 100%; position: absolute; bottom: -40px; text-align: center;} 62 | .flex-control-nav li {margin: 0 6px; display: inline-block; zoom: 1; *display: inline;} 63 | .flex-control-paging li a {width: 11px; height: 11px; display: block; background: #666; background: rgba(0,0,0,0.5); cursor: pointer; text-indent: -9999px; -webkit-border-radius: 20px; -moz-border-radius: 20px; -o-border-radius: 20px; border-radius: 20px; box-shadow: inset 0 0 3px rgba(0,0,0,0.3);} 64 | .flex-control-paging li a:hover { background: #333; background: rgba(0,0,0,0.7); } 65 | .flex-control-paging li a.flex-active { background: #000; background: rgba(0,0,0,0.9); cursor: default; } 66 | 67 | .flex-control-thumbs {margin: 5px 0 0; position: static; overflow: hidden;} 68 | .flex-control-thumbs li {width: 25%; float: left; margin: 0;} 69 | .flex-control-thumbs img {width: 100%; display: block; opacity: .7; cursor: pointer; 70 | max-height:120px; 71 | _height:e­xpression(this.scrollHeight > 120 ? "120px" : "auto"); 72 | overflow:hidden; 73 | margin:2px} 74 | .flex-control-thumbs img:hover {opacity: 1;} 75 | .flex-control-thumbs .flex-active {opacity: 1; cursor: default;} 76 | 77 | @media screen and (max-width: 860px) { 78 | .flex-direction-nav .flex-prev {opacity: 1; left: 0;} 79 | .flex-direction-nav .flex-next {opacity: 1; right: 0;} 80 | } -------------------------------------------------------------------------------- /WebRoot/js/Keyboard/keyboard.css: -------------------------------------------------------------------------------- 1 | /* keyboard - jQuery UI Widget */ 2 | .ui-keyboard { padding: .3em; position: absolute; left: 0; top: 0; z-index: 16000; } 3 | .ui-keyboard-has-focus { z-index: 16001; } 4 | .ui-keyboard div { font-size: 1.1em; } 5 | .ui-keyboard-button { height: 2em; width: 2em; min-width: 1em; margin: .1em; cursor: pointer; overflow: hidden; line-height: 2em; -moz-user-focus: ignore; } 6 | .ui-keyboard-button span { padding: 0; margin: 0; white-space:nowrap; display: inline-block; } 7 | .ui-keyboard-button-endrow { clear: left; } 8 | .ui-keyboard-widekey { min-width: 4em; width: auto; } 9 | .ui-keyboard-space { width: 15em; } 10 | .ui-keyboard-space span, .ui-keyboard-empty span { font: 0/0 a; text-shadow: none; color: transparent; } /* see http://nicolasgallagher.com/another-css-image-replacement-technique/ */ 11 | .ui-keyboard-preview-wrapper { text-align: center; } 12 | .ui-keyboard-preview { text-align: left; margin: 0 0 3px 0; display: inline; width: 99%;} /* width is calculated in IE, since 99% = 99% full browser width =( */ 13 | .ui-keyboard-keyset { text-align: center; white-space: nowrap; } 14 | .ui-keyboard-input { text-align: left; } 15 | .ui-keyboard-input-current { -moz-box-shadow: 1px 1px 10px #00f; -webkit-box-shadow: 1px 1px 10px #00f; box-shadow: 1px 1px 10px #00f; } 16 | .ui-keyboard-placeholder { color: #888; } 17 | .ui-keyboard-nokeyboard { color: #888; border-color: #888; } /* disabled or readonly inputs, or use input[disabled='disabled'] { color: #f00; } */ 18 | .ui-keyboard-button.disabled { opacity: 0.5; filter: alpha(opacity=50); } /* used by the acceptValid option to make the accept button appear faded */ 19 | .ui-keyboard-spacer { display: inline-block; width: 1px; height: 0; } 20 | 21 | /* combo key styling - toggles diacritics on/off */ 22 | .ui-keyboard-button.ui-keyboard-combo.ui-state-default { border-color: #ffaf0f; } 23 | 24 | /* (in)valid inputs */ 25 | button.ui-keyboard-accept.ui-keyboard-valid-input { border-color: #0c0; background: #080; color: #fff; } 26 | button.ui-keyboard-accept.ui-keyboard-valid-input:hover { background: #0a0; } 27 | button.ui-keyboard-accept.ui-keyboard-invalid-input { border-color: #c00; background: #800; color: #fff; } 28 | button.ui-keyboard-accept.ui-keyboard-invalid-input:hover { background: #a00; } 29 | 30 | /*** jQuery Mobile definitions ***/ 31 | /* jQuery Mobile styles - need wider buttons because of font size and text-overflow:ellipsis */ 32 | .ui-bar .ui-keyboard-button { width: 3em; display: inline-block; } 33 | .ui-bar .ui-keyboard-widekey { width: 5.5em; } 34 | .ui-bar .ui-keyboard-space { width: 15em; } 35 | .ui-bar .ui-keyboard-space span { visibility: hidden; } /* hides the ellipsis */ 36 | .ui-bar .ui-keyboard-keyset { line-height: 0.5em; } 37 | .ui-bar input.ui-input-text, .ui-bar textarea.ui-input-text { width: 95%; } 38 | 39 | /* over-ride padding set by mobile ui theme - needed because the mobile script wraps button text with several more spans */ 40 | .ui-bar .ui-btn-inner { height: 2em; padding: 0.2em 0; margin: 0; } 41 | .ui-bar .ui-btn { margin: 0; font-size: 13px; } /* mobile default size is 13px */ 42 | 43 | /* Media Queries (optimized for jQuery UI themes; may be slightly off in jQuery Mobile themes) */ 44 | /* 240 x 320 (small phone) */ 45 | @media all and (max-width: 319px) { 46 | .ui-keyboard div { font-size: 9px; } 47 | .ui-keyboard .ui-keyboard-input { font-size: 12px; } 48 | /* I don't own an iPhone so I have no idea how small this really is... is it even clickable with your finger? */ 49 | .ui-bar .ui-btn { margin: 0; font-size: 9px; } 50 | .ui-bar .ui-keyboard-button { width: 1.8em; height: 2.5em; } 51 | .ui-bar .ui-keyboard-widekey { width: 4em; } 52 | .ui-bar .ui-keyboard-space { width: 8em; } 53 | .ui-bar .ui-btn-inner { height: 2.5em; padding: 0.3em 0; } 54 | } 55 | 56 | /* 320 x 480 (iPhone) */ 57 | @media all and (min-width: 320px) and (max-width: 479px) { 58 | .ui-keyboard div { font-size: 9px; } 59 | .ui-keyboard .ui-keyboard-input { font-size: 14px; } 60 | /* I don't own an iPhone so I have no idea how small this really is... is it even clickable with your finger? */ 61 | .ui-bar .ui-btn { margin: 0; font-size: 11px; } 62 | .ui-bar .ui-keyboard-button { width: 1.8em; height: 3em; } 63 | .ui-bar .ui-keyboard-widekey { width: 4.5em; } 64 | .ui-bar .ui-keyboard-space { width: 10em; } 65 | .ui-bar .ui-btn-inner { height: 3em; padding: 0.7em 0; } 66 | } 67 | 68 | /* 480 x 640 (small tablet) */ 69 | @media all and (min-width: 480px) and (max-width: 767px) { 70 | .ui-keyboard div { font-size: 13px; } 71 | .ui-keyboard .ui-keyboard-input { font-size: 14px; } 72 | .ui-bar .ui-btn { margin: 0; font-size: 10px; } 73 | .ui-bar .ui-keyboard-button { height: 2.5em; } 74 | .ui-bar .ui-btn-inner { height: 2.5em; padding: 0.5em 0; } 75 | } -------------------------------------------------------------------------------- /WebRoot/js/My97DatePicker/skin/default/datepicker.css: -------------------------------------------------------------------------------- 1 | /* 2 | * My97 DatePicker 4.7 3 | */ 4 | 5 | .WdateDiv{ 6 | width:180px; 7 | background-color:#FFFFFF; 8 | border:#bbb 1px solid; 9 | padding:2px; 10 | } 11 | 12 | .WdateDiv2{ 13 | width:360px; 14 | } 15 | .WdateDiv *{font-size:9pt;} 16 | 17 | .WdateDiv .NavImg a{ 18 | display:block; 19 | cursor:pointer; 20 | height:16px; 21 | width:16px; 22 | } 23 | 24 | .WdateDiv .NavImgll a{ 25 | float:left; 26 | background:transparent url(img.gif) no-repeat scroll 0 0; 27 | } 28 | .WdateDiv .NavImgl a{ 29 | float:left; 30 | background:transparent url(img.gif) no-repeat scroll -16px 0; 31 | } 32 | .WdateDiv .NavImgr a{ 33 | float:right; 34 | background:transparent url(img.gif) no-repeat scroll -32px 0; 35 | } 36 | .WdateDiv .NavImgrr a{ 37 | float:right; 38 | background:transparent url(img.gif) no-repeat scroll -48px 0; 39 | } 40 | 41 | .WdateDiv #dpTitle{ 42 | height:24px; 43 | margin-bottom:2px; 44 | padding:1px; 45 | } 46 | 47 | .WdateDiv .yminput{ 48 | margin-top:2px; 49 | text-align:center; 50 | height:20px; 51 | border:0px; 52 | width:50px; 53 | cursor:pointer; 54 | } 55 | 56 | .WdateDiv .yminputfocus{ 57 | margin-top:2px; 58 | text-align:center; 59 | font-weight:bold; 60 | height:20px; 61 | color:blue; 62 | border:#ccc 1px solid; 63 | width:50px; 64 | } 65 | 66 | .WdateDiv .menuSel{ 67 | z-index:1; 68 | position:absolute; 69 | background-color:#FFFFFF; 70 | border:#ccc 1px solid; 71 | display:none; 72 | } 73 | 74 | .WdateDiv .menu{ 75 | cursor:pointer; 76 | background-color:#fff; 77 | } 78 | 79 | .WdateDiv .menuOn{ 80 | cursor:pointer; 81 | background-color:#BEEBEE; 82 | } 83 | 84 | .WdateDiv .invalidMenu{ 85 | color:#aaa; 86 | } 87 | 88 | .WdateDiv .YMenu{ 89 | margin-top:20px; 90 | 91 | } 92 | 93 | .WdateDiv .MMenu{ 94 | margin-top:20px; 95 | *width:62px; 96 | } 97 | 98 | .WdateDiv .hhMenu{ 99 | margin-top:-90px; 100 | margin-left:26px; 101 | } 102 | 103 | .WdateDiv .mmMenu{ 104 | margin-top:-46px; 105 | margin-left:26px; 106 | } 107 | 108 | .WdateDiv .ssMenu{ 109 | margin-top:-24px; 110 | margin-left:26px; 111 | } 112 | 113 | .WdateDiv .Wweek { 114 | text-align:center; 115 | background:#DAF3F5; 116 | border-right:#BDEBEE 1px solid; 117 | } 118 | 119 | .WdateDiv .MTitle{ 120 | background-color:#BDEBEE; 121 | } 122 | .WdateDiv .WdayTable2{ 123 | border-collapse:collapse; 124 | border:#c5d9e8 1px solid; 125 | } 126 | .WdateDiv .WdayTable2 table{ 127 | border:0; 128 | } 129 | 130 | .WdateDiv .WdayTable{ 131 | line-height:20px; 132 | border:#c5d9e8 1px solid; 133 | } 134 | .WdateDiv .WdayTable td{ 135 | text-align:center; 136 | } 137 | 138 | .WdateDiv .Wday{ 139 | cursor:pointer; 140 | } 141 | 142 | .WdateDiv .WdayOn{ 143 | cursor:pointer; 144 | background-color:#C0EBEF; 145 | } 146 | 147 | .WdateDiv .Wwday{ 148 | cursor:pointer; 149 | color:#FF2F2F; 150 | } 151 | 152 | .WdateDiv .WwdayOn{ 153 | cursor:pointer; 154 | color:#000; 155 | background-color:#C0EBEF; 156 | } 157 | .WdateDiv .Wtoday{ 158 | cursor:pointer; 159 | color:blue; 160 | } 161 | .WdateDiv .Wselday{ 162 | background-color:#A9E4E9; 163 | } 164 | .WdateDiv .WspecialDay{ 165 | background-color:#66F4DF; 166 | } 167 | 168 | .WdateDiv .WotherDay{ 169 | cursor:pointer; 170 | color:#6A6AFF; 171 | } 172 | 173 | .WdateDiv .WotherDayOn{ 174 | cursor:pointer; 175 | background-color:#C0EBEF; 176 | } 177 | 178 | .WdateDiv .WinvalidDay{ 179 | color:#aaa; 180 | } 181 | 182 | .WdateDiv #dpTime{ 183 | float:left; 184 | margin-top:3px; 185 | margin-right:30px; 186 | } 187 | 188 | .WdateDiv #dpTime #dpTimeStr{ 189 | margin-left:1px; 190 | } 191 | 192 | .WdateDiv #dpTime input{ 193 | width:18px; 194 | height:20px; 195 | text-align:center; 196 | border:#ccc 1px solid; 197 | } 198 | 199 | .WdateDiv #dpTime .tB{ 200 | border-right:0px; 201 | } 202 | 203 | .WdateDiv #dpTime .tE{ 204 | border-left:0; 205 | border-right:0; 206 | } 207 | 208 | .WdateDiv #dpTime .tm{ 209 | width:7px; 210 | border-left:0; 211 | border-right:0; 212 | } 213 | 214 | .WdateDiv #dpTime #dpTimeUp{ 215 | height:10px; 216 | width:13px; 217 | border:0px; 218 | background:url(img.gif) no-repeat -32px -16px; 219 | } 220 | 221 | .WdateDiv #dpTime #dpTimeDown{ 222 | height:10px; 223 | width:13px; 224 | border:0px; 225 | background:url(img.gif) no-repeat -48px -16px; 226 | } 227 | 228 | .WdateDiv #dpQS { 229 | float:left; 230 | margin-right:3px; 231 | margin-top:3px; 232 | background:url(img.gif) no-repeat 0px -16px; 233 | width:20px; 234 | height:20px; 235 | cursor:pointer; 236 | } 237 | .WdateDiv #dpControl { 238 | text-align:right; 239 | } 240 | .WdateDiv .dpButton{ 241 | height:20px; 242 | width:45px; 243 | border:#ccc 1px solid; 244 | margin-top:2px; 245 | margin-right:1px; 246 | } -------------------------------------------------------------------------------- /WebRoot/js/My97DatePicker/skin/whyGreen/datepicker.css: -------------------------------------------------------------------------------- 1 | /* 2 | * My97 DatePicker 4.7 Skin:whyGreen 3 | */ 4 | .WdateDiv{ 5 | width:180px; 6 | background-color:#fff; 7 | border:#C5E1E4 1px solid; 8 | padding:2px; 9 | } 10 | 11 | .WdateDiv2{ 12 | width:360px; 13 | } 14 | .WdateDiv *{font-size:9pt;} 15 | 16 | .WdateDiv .NavImg a{ 17 | cursor:pointer; 18 | display:block; 19 | width:16px; 20 | height:16px; 21 | margin-top:1px; 22 | } 23 | 24 | .WdateDiv .NavImgll a{ 25 | float:left; 26 | background:url(img.gif) no-repeat; 27 | } 28 | .WdateDiv .NavImgl a{ 29 | float:left; 30 | background:url(img.gif) no-repeat -16px 0px; 31 | } 32 | .WdateDiv .NavImgr a{ 33 | float:right; 34 | background:url(img.gif) no-repeat -32px 0px; 35 | } 36 | .WdateDiv .NavImgrr a{ 37 | float:right; 38 | background:url(img.gif) no-repeat -48px 0px; 39 | } 40 | 41 | .WdateDiv #dpTitle{ 42 | height:24px; 43 | padding:1px; 44 | border:#c5d9e8 1px solid; 45 | background:url(bg.jpg); 46 | margin-bottom:2px; 47 | } 48 | 49 | .WdateDiv .yminput{ 50 | margin-top:2px; 51 | text-align:center; 52 | border:0px; 53 | height:20px; 54 | width:50px; 55 | color:#034c50; 56 | background-color:transparent; 57 | cursor:pointer; 58 | } 59 | 60 | .WdateDiv .yminputfocus{ 61 | margin-top:2px; 62 | text-align:center; 63 | border:#939393 1px solid; 64 | font-weight:bold; 65 | color:#034c50; 66 | height:20px; 67 | width:50px; 68 | } 69 | 70 | .WdateDiv .menuSel{ 71 | z-index:1; 72 | position:absolute; 73 | background-color:#FFFFFF; 74 | border:#A3C6C8 1px solid; 75 | display:none; 76 | } 77 | 78 | .WdateDiv .menu{ 79 | cursor:pointer; 80 | background-color:#fff; 81 | color:#11777C; 82 | } 83 | 84 | .WdateDiv .menuOn{ 85 | cursor:pointer; 86 | background-color:#BEEBEE; 87 | } 88 | 89 | .WdateDiv .invalidMenu{ 90 | color:#aaa; 91 | } 92 | 93 | .WdateDiv .YMenu{ 94 | margin-top:20px; 95 | } 96 | 97 | .WdateDiv .MMenu{ 98 | margin-top:20px; 99 | *width:62px; 100 | } 101 | 102 | .WdateDiv .hhMenu{ 103 | margin-top:-90px; 104 | margin-left:26px; 105 | } 106 | 107 | .WdateDiv .mmMenu{ 108 | margin-top:-46px; 109 | margin-left:26px; 110 | } 111 | 112 | .WdateDiv .ssMenu{ 113 | margin-top:-24px; 114 | margin-left:26px; 115 | } 116 | 117 | .WdateDiv .Wweek { 118 | text-align:center; 119 | background:#DAF3F5; 120 | border-right:#BDEBEE 1px solid; 121 | } 122 | 123 | .WdateDiv .MTitle{ 124 | color:#13777e; 125 | background-color:#bdebee; 126 | } 127 | .WdateDiv .WdayTable2{ 128 | border-collapse:collapse; 129 | border:#BEE9F0 1px solid; 130 | } 131 | .WdateDiv .WdayTable2 table{ 132 | border:0; 133 | } 134 | 135 | .WdateDiv .WdayTable{ 136 | line-height:20px; 137 | color:#13777e; 138 | background-color:#edfbfb; 139 | border:#BEE9F0 1px solid; 140 | } 141 | .WdateDiv .WdayTable td{ 142 | text-align:center; 143 | } 144 | 145 | .WdateDiv .Wday{ 146 | cursor:pointer; 147 | } 148 | 149 | .WdateDiv .WdayOn{ 150 | cursor:pointer; 151 | background-color:#74d2d9 ; 152 | } 153 | 154 | .WdateDiv .Wwday{ 155 | cursor:pointer; 156 | color:#ab1e1e; 157 | } 158 | 159 | .WdateDiv .WwdayOn{ 160 | cursor:pointer; 161 | background-color:#74d2d9; 162 | } 163 | .WdateDiv .Wtoday{ 164 | cursor:pointer; 165 | color:blue; 166 | } 167 | .WdateDiv .Wselday{ 168 | background-color:#A7E2E7; 169 | } 170 | .WdateDiv .WspecialDay{ 171 | background-color:#66F4DF; 172 | } 173 | 174 | .WdateDiv .WotherDay{ 175 | cursor:pointer; 176 | color:#0099CC; 177 | } 178 | 179 | .WdateDiv .WotherDayOn{ 180 | cursor:pointer; 181 | background-color:#C0EBEF; 182 | } 183 | 184 | .WdateDiv .WinvalidDay{ 185 | color:#aaa; 186 | } 187 | 188 | .WdateDiv #dpTime{ 189 | float:left; 190 | margin-top:3px; 191 | margin-right:30px; 192 | } 193 | 194 | .WdateDiv #dpTime #dpTimeStr{ 195 | margin-left:1px; 196 | color:#497F7F; 197 | } 198 | 199 | .WdateDiv #dpTime input{ 200 | height:20px; 201 | width:18px; 202 | text-align:center; 203 | color:#333; 204 | border:#61CAD0 1px solid; 205 | } 206 | 207 | .WdateDiv #dpTime .tB{ 208 | border-right:0px; 209 | } 210 | 211 | .WdateDiv #dpTime .tE{ 212 | border-left:0; 213 | border-right:0; 214 | } 215 | 216 | .WdateDiv #dpTime .tm{ 217 | width:7px; 218 | border-left:0; 219 | border-right:0; 220 | } 221 | 222 | .WdateDiv #dpTime #dpTimeUp{ 223 | height:10px; 224 | width:13px; 225 | border:0px; 226 | background:url(img.gif) no-repeat -32px -16px; 227 | } 228 | 229 | .WdateDiv #dpTime #dpTimeDown{ 230 | height:10px; 231 | width:13px; 232 | border:0px; 233 | background:url(img.gif) no-repeat -48px -16px; 234 | } 235 | 236 | .WdateDiv #dpQS { 237 | float:left; 238 | margin-right:3px; 239 | margin-top:3px; 240 | background:url(img.gif) no-repeat 0px -16px; 241 | width:20px; 242 | height:20px; 243 | cursor:pointer; 244 | } 245 | .WdateDiv #dpControl { 246 | text-align:right; 247 | margin-top:3px; 248 | } 249 | .WdateDiv .dpButton{ 250 | height:20px; 251 | width:45px; 252 | margin-top:2px; 253 | border:#38B1B9 1px solid; 254 | background-color:#CFEBEE; 255 | color:#08575B; 256 | } -------------------------------------------------------------------------------- /WebRoot/js/lhgdialog/skins/defaulta.css: -------------------------------------------------------------------------------- 1 | @charset "utf-8"; 2 | /* 3 | * lhgdialog 默认皮肤 4 | * (C) 2009-2011 【一丝冰凉】, http://t.qq.com/yisibl, QQ:50167214 5 | * This is licensed under the GNU LGPL, version 2.1 or later. 6 | * For details, see: http://creativecommons.org/licenses/LGPL/2.1/ 7 | */ 8 | /*==================制作新皮肤从这里开始复制==================*/ 9 | /*基本重置*/ 10 | body{ _margin:0; }/*IE6 BUG*/ 11 | .ui_lock_scroll{ *overflow:hidden; } 12 | .ui_lock_scroll body{ overflow:hidden; } 13 | 14 | /*结构层*/ 15 | .ui_content,.ui_title,.ui_buttons input{ font:12px/1.333 tahoma,arial,\5b8b\4f53,sans-serif; } 16 | table.ui_border,table.ui_dialog{ width:auto;border-spacing:0;*border-collapse:collapse; } 17 | .ui_border td,.ui_dialog td{ padding:0; } 18 | .ui_dialog{ background:#FFF; } 19 | 20 | /*标题部分开始*/ 21 | .ui_title{ overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;cursor:move;background:#DDD;-moz-user-select:none;-webkit-user-select:none;padding:0 100px 0 0; } 22 | .ui_title_buttons{ position:absolute;cursor:pointer;font-size:0;letter-spacing:-.5em; } 23 | 24 | /*对齐自适应*/ 25 | .ui_main{ min-width:6em;min-width:0\9;text-align:center; } 26 | .ui_content{ display:inline-block;*display:inline;zoom:1;text-align:left; } 27 | .ui_content.ui_state_full{ display:block;width:100%;height:100%;margin:0;padding:0!important; } 28 | .ui_content.ui_state_full iframe{ border-radius:0 0 5px 5px; } 29 | .ui_loading{ width:96px;height:32px;text-align:left;text-indent:-9999em;overflow:hidden;background:url(icons/loading.gif) no-repeat center center; } 30 | .ui_icon_bg{ margin:20px 0 20px 15px; } 31 | 32 | /*标题纯CSS按钮开始 min 最小化,max最大化,res还原,rese恢复,close关闭*/ 33 | .ui_min,.ui_max,.ui_close,.ui_res{ 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; } 34 | .ui_min b,.ui_max b,.ui_res_t,.ui_res_b{ display:block;position:absolute;overflow:hidden;cursor:pointer; } 35 | .ui_close{ font-weight:500;text-decoration:none;outline:0 none; } 36 | .ui_close:hover{ text-decoration:none; } 37 | 38 | /*Tips部分*/ 39 | .ui_state_tips .ui_main{ min-width:3em; } 40 | .ui_state_tips .ui_content{ margin-top:-2px;padding:8px 10px!important; } 41 | .ui_state_tips .ui_icon_bg{ margin:5px 0 6px 9px; } 42 | .ui_state_tips .ui_title,.ui_state_tips .ui_title_buttons,.ui_res{ display:none; } /* 还原按钮也在这里隐藏,这样可节省代码,注间这段一定要写在上面那段代码的下面*/ 43 | 44 | #ldg_lockmask{ background:#DCE2F1;filter:alpha(opacity=60);opacity:.6; } 45 | /*==================制作新皮肤到这里结束复制==================*/ 46 | 47 | /*样式层开始*/ 48 | .ui_inner{ border:1px solid #999; } 49 | .ui_border{ border-radius:4px; } 50 | 51 | .ui_lt,.ui_rt,.ui_lb,.ui_rb{ width:6px;height:6px;display:block; } 52 | .ui_lt{ border-radius:4px 0 0 0; }.ui_rt{ border-radius:0 4px 0 0; }.ui_rb{ border-radius:0 0 4px 0; }.ui_lb{ border-radius:0 0 0 4px; } 53 | .ui_lt,.ui_rt,.ui_l,.ui_r,.ui_lb,.ui_b,.ui_t,.ui_rb{ background:rgba(102,102,102,.3);background:#666\9;filter:alpha(opacity=30); } 54 | 55 | /*标题栏样式*/ 56 | .ui_title_bar{ position:relative;height:100%;border-bottom:1px solid #317ebd; } 57 | .ui_title{ height:26px;line-height:26px;font-size:14px;font-weight:bold;color:#DDD;padding-left:7px;border-bottom:1px solid #6da6e1; 58 | background:linear-gradient(top,#46a0e1,#3280bf); 59 | background:-webkit-gradient(linear,0% 0%, 0% 100%,from(#46a0e1),to(#3280bf)); 60 | background:-moz-linear-gradient(top,#46a0e1,#3280bf); 61 | background:-o-linear-gradient(top,#46a0e1,#3280bf); 62 | filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#46a0e1',endColorstr='#3280bf');*background:#DDD; } 63 | 64 | .ui_state_focus .ui_title{ color:#FFF;text-shadow:0 1px 0 #333; } 65 | .ui_state_drag .ui_title { border-bottom:1px solid #82bee6;text-shadow: 0 -1px 0 #333; 66 | background:linear-gradient(top,#3280bf,#46a0e1); 67 | background:-moz-linear-gradient(top,#3280bf,#46a0e1); 68 | background:-webkit-gradient(linear,0% 0%, 0% 100%,from(#3280bf),to(#46a0e1)); 69 | filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#3280bf',endColorstr='#46a0e1'); } 70 | 71 | /*标题纯CSS按钮定位部分*/ 72 | .ui_title_buttons{ top:3px;right:5px; } 73 | .ui_min,.ui_max,.ui_close,.ui_res{ color:#FFF;font-size:22px;width:22px;height:22px;line-height:18px; } 74 | .ui_min_b{ top:10px;left:5px;width:12px;height:2px;border-bottom:2px solid #FFF; } 75 | .ui_max_b{ top:5px;left:5px;width:10px;height:7px; } 76 | .ui_res_t,.ui_res_b{ top:8px;left:3px;width:10px;height:5px; } 77 | .ui_res_b{ top:4px;left:6px; } 78 | .ui_res_t,.ui_res_b,.ui_max_b{ border:1px solid #FFF;border-top-width:3px; } 79 | .ui_res_t{ background:#3d8cce; } 80 | .ui_min:hover b,.ui_max:hover b,.ui_res:hover b{ border-color:#555; } 81 | .ui_close{ vertical-align:baseline;_line-height:22px; } 82 | .ui_close:hover,.ui_close:focus{ color:#c93333; } 83 | 84 | /*底部按钮样式*/ 85 | .ui_buttons{ white-space:nowrap;padding:4px 8px;text-align:right;background-color:#F6F6F6;border-top:solid 1px #DADEE5; } 86 | .ui_buttons input::-moz-focus-inner{ border:0;padding:0;margin:0; } 87 | 88 | .ui_buttons input{ padding:3px 10px 3px 12px;padding:5px 10px 2px 12px\0;*padding:4px 10px 2px 10px;margin-left:6px;cursor:pointer;display:inline-block; 89 | text-align:center;line-height:1;height:23px;letter-spacing:3px;overflow:visible;color:#333;border:solid 1px #999;border-radius:3px;border-radius:0\9;background:#DDD; 90 | background:linear-gradient(top,#FAFAFA,#E4E4E4); 91 | background:-moz-linear-gradient(top,#FAFAFA,#E4E4E4); 92 | background:-webkit-gradient(linear,0% 0%,0% 100%,from(#FAFAFA),to(#E4E4E4)); 93 | background:-o-linear-gradient(top,#FAFAFA,#E4E4E4); 94 | filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FAFAFA',endColorstr='#E4E4E4'); 95 | text-shadow:0 1px 1px rgba(255,255,255,1);box-shadow:0 1px 0 rgba(255,255,255,.7),0 -1px 0 rgba(0,0,0,.09); 96 | -moz-transition:-moz-box-shadow linear .2s;-webkit-transition:-webkit-box-shadow linear .2s;transition:box-shadow linear .2s; } 97 | .ui_buttons input:focus{ outline:0 none;box-shadow:0 0 3px #0e78c9; } 98 | .ui_buttons input:hover{ color:#000;border-color:#666;box-shadow:none; } 99 | .ui_buttons input:active{ border-color:#666; 100 | background:linear-gradient(top,#FAFAFA,#E4E4E4); 101 | background:-moz-linear-gradient(top,#FAFAFA,#E4E4E4); 102 | background:-webkit-gradient(linear,0% 0%,0% 100%,from(#FAFAFA),to(#E4E4E4)); 103 | background:-o-linear-gradient(top,#FAFAFA,#E4E4E4); 104 | filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FAFAFA',endColorstr='#E4E4E4'); } 105 | .ui_buttons input[disabled]{ cursor:default;color:#666;background:#DDD;border:solid 1px #999;filter:alpha(opacity=50);opacity:.5;box-shadow:none; } 106 | 107 | input.ui_state_highlight{ color:#FFF;border:solid 1px #1c6a9e;text-shadow:0 -1px 1px #1c6a9e;background:#2288cc; 108 | background:linear-gradient(top,#33bbee,#2288cc); 109 | background:-moz-linear-gradient(top,#33bbee,#2288cc); 110 | background:-webkit-gradient(linear,0% 0%,0% 100%,from(#33bbee),to(#2288cc)); 111 | background:-o-linear-gradient(top,#33bbee,#2288cc); 112 | filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#33bbee',endColorstr='#2288cc'); } 113 | input.ui_state_highlight:hover{ color:#FFF;border-color:#555; } 114 | input.ui_state_highlight:active{ border-color:#1c6a9e; 115 | background:linear-gradient(top,#33bbee,#2288cc); 116 | background:-moz-linear-gradient(top,#33bbee,#2288cc); 117 | background:-webkit-gradient(linear,0% 0%,0% 100%,from(#33bbee),to(#2288cc)); 118 | background:-o-linear-gradient(top,#33bbee,#2288cc); 119 | filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#33bbee',endColorstr='#2288cc'); } 120 | 121 | /*Tips 部分开始*/ 122 | .ui_state_tips,.ui_state_tips .ui_inner,.ui_state_tips .ui_title_bar{ border:0 none;box-shadow:none; } 123 | .ui_state_tips .ui_lt,.ui_state_tips .ui_rt,.ui_state_tips .ui_lb,.ui_state_tips .ui_rb{ width:5px;height:5px; } -------------------------------------------------------------------------------- /WebRoot/js/lhgdialog/skins/jtop.css: -------------------------------------------------------------------------------- 1 | @charset "utf-8"; 2 | /* 3 | * lhgdialog JTop皮肤 4 | * (C) 2009-2011 【一丝冰凉】, http://t.qq.com/yisibl, QQ:50167214 5 | * This is licensed under the GNU LGPL, version 2.1 or later. 6 | * For details, see: http://creativecommons.org/licenses/LGPL/2.1/ 7 | */ 8 | /*==================制作新皮肤从这里开始复制==================*/ 9 | /*基本重置*/ 10 | body{ _margin:0; }/*IE6 BUG*/ 11 | .ui_lock_scroll{ *overflow:hidden; } 12 | .ui_lock_scroll body{ overflow:hidden; } 13 | 14 | /*结构层*/ 15 | .ui_content,.ui_title,.ui_buttons input{ font:12px/1.333 tahoma,arial,\5b8b\4f53,sans-serif; } 16 | table.ui_border,table.ui_dialog{ width:auto;border-spacing:0;*border-collapse:collapse; } 17 | .ui_border td,.ui_dialog td{ padding:0; } 18 | .ui_dialog{ background:#FFF; } 19 | 20 | /*标题部分开始*/ 21 | .ui_title{ overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;cursor:move;background:#DDD;-moz-user-select:none;-webkit-user-select:none;padding:0 100px 0 0; } 22 | .ui_title_buttons{ position:absolute;cursor:pointer;font-size:0;letter-spacing:-.5em; } 23 | 24 | /*对齐自适应*/ 25 | .ui_main{ min-width:6em;min-width:0\9;text-align:center; } 26 | .ui_content{ display:inline-block;*display:inline;zoom:1;text-align:left; } 27 | .ui_content.ui_state_full{ display:block;width:100%;height:100%;margin:0;padding:0!important; } 28 | .ui_content.ui_state_full iframe{ border-radius:0 0 5px 5px; } 29 | .ui_loading{ width:96px;height:32px;text-align:left;text-indent:-9999em;overflow:hidden;background:url(icons/loading.gif) no-repeat center center; } 30 | .ui_icon_bg{ margin:20px 0 20px 15px; } 31 | 32 | /*标题纯CSS按钮开始 min 最小化,max最大化,res还原,rese恢复,close关闭*/ 33 | .ui_min,.ui_max,.ui_close,.ui_res{ 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; } 34 | .ui_min b,.ui_max b,.ui_res_t,.ui_res_b{ display:block;position:absolute;overflow:hidden;cursor:pointer; } 35 | .ui_close{ font-weight:500;text-decoration:none;outline:0 none; } 36 | .ui_close:hover{ text-decoration:none; } 37 | 38 | /*Tips部分*/ 39 | .ui_state_tips .ui_main{ min-width:3em; } 40 | .ui_state_tips .ui_content{ margin-top:-2px;padding:8px 10px!important; } 41 | .ui_state_tips .ui_icon_bg{ margin:5px 0 6px 9px; } 42 | .ui_state_tips .ui_title,.ui_state_tips .ui_title_buttons,.ui_res{ display:none; } /* 还原按钮也在这里隐藏,这样可节省代码,注间这段一定要写在上面那段代码的下面*/ 43 | 44 | #ldg_lockmask{ background:#DCE2F1;filter:alpha(opacity=60);opacity:.6; } 45 | /*==================制作新皮肤到这里结束复制==================*/ 46 | 47 | /*样式层开始*/ 48 | .ui_dialog{ border:1px solid #0097BD;border-radius:5px;box-shadow:0 1px 6px rgba(0,0,0,.5); 49 | -moz-transition:-moz-box-shadow linear .2s; 50 | -webkit-transition: -webkit-box-shadow linear .2s; 51 | transition: -webkit-box-shadow linear .2s; } 52 | .ui_state_lock .ui_dialog{ box-shadow:0 3px 10px rgba(0,0,0,.5); }/*锁屏时遮罩*/ 53 | .ui_state_drag .ui_dialog,.ui_state_lock.ui_state_drag .ui_dialog{ box-shadow:none; }/*拖动时隐藏阴影,通过css3实现渐变动画*/ 54 | 55 | .ui_lt,.ui_rt,.ui_lb,.ui_rb{ width:0;height:0;*width:1px;*height:1px; }/*边框宽度*/ 56 | .ui_rb{ display:block;width:12px;height:12px;position:absolute;bottom:0;right:0;background:none; } /*重新显示右下角拖动,设为负值会造成浏览器显示滚动条*/ 57 | 58 | /*标题栏样式*/ 59 | .ui_title_bar{ position:relative;height:100%;border-bottom:1px solid #0096be; }/*外线*/ 60 | .ui_title{ height:26px;line-height:26px;font-size:14px;font-weight:bold;color:#DDD;border-radius:4px 4px 0 0;padding-left:5px;border-bottom:1px solid #3fc7f5; 61 | background:linear-gradient(top,#00c8ef,#00a6c8); 62 | background:-webkit-gradient(linear,0% 0%, 0% 100%,from(#00c8ef),to(#00a6c8)); 63 | background:-moz-linear-gradient(top,#00c8ef,#00a6c8); 64 | background:-o-linear-gradient(top,#00c8ef,#00a6c8); 65 | filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00c8ef',endColorstr='#00a6c8');*background:#DDD;/*IE haslayout 勿删除*/ } 66 | 67 | .ui_state_focus .ui_title{ color:#FFF; } 68 | .ui_state_drag .ui_title{ border-bottom:1px solid #82d8f5; 69 | background:linear-gradient(top,#00a6c8,#00caed); 70 | background:-webkit-gradient(linear,0% 0%, 0% 100%,from(#00a6c8),to(#00caed)); 71 | background:-moz-linear-gradient(top,#00a6cf,#00caed); 72 | background:-o-linear-gradient(top,#00c8ef,#00a6c8); 73 | filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00a6c8',endColorstr='#00caed'); } 74 | 75 | /*标题纯CSS按钮定位部分*/ 76 | .ui_title_buttons{ top:3px;right:5px; } 77 | .ui_min,.ui_max,.ui_close,.ui_res{ color:#FFF;font-size:18px;width:22px;height:22px;line-height:18px; } 78 | .ui_min_b{ top:10px;left:6px;width:10px;height:2px;border-bottom:2px solid #FFF; } 79 | .ui_max_b{ top:6px;left:6px;width:9px;height:6px; } 80 | .ui_res_t,.ui_res_b{ top:9px;left:5px;width:9px;height:4px; } 81 | .ui_res_b{ top:5px;left:7px; } 82 | .ui_res_t,.ui_res_b,.ui_max_b { border:1px solid #FFF;border-top-width:3px; } 83 | .ui_res_t{ background:#00b7dd; } 84 | .ui_min:hover b,.ui_max:hover b,.ui_res:hover b{ border-color:#555; } 85 | .ui_close{ vertical-align:baseline;_line-height:21px; } 86 | .ui_close:hover,.ui_close:focus { color:#bf160b; } 87 | 88 | /*底部按钮样式*/ 89 | .ui_buttons{ white-space:nowrap;padding:4px 8px;text-align:right;background-color:#F6F6F6;border-top:solid 1px #DADEE5; } 90 | .ui_buttons input::-moz-focus-inner{ border:0;padding:0;margin:0; } 91 | 92 | .ui_buttons input{ padding:3px 10px 3px 12px;padding:5px 10px 2px 12px\0;*padding:4px 10px 2px 10px;margin-left:6px;cursor:pointer;display:inline-block; 93 | text-align:center;line-height:1;height:23px;letter-spacing:3px;overflow:visible;color:#333;border:solid 1px #999;border-radius:3px;border-radius:0\9;background:#DDD; 94 | background:linear-gradient(top,#FAFAFA,#E4E4E4); 95 | background:-moz-linear-gradient(top,#FAFAFA,#E4E4E4); 96 | background:-webkit-gradient(linear,0% 0%,0% 100%,from(#FAFAFA),to(#E4E4E4)); 97 | background:-o-linear-gradient(top,#FAFAFA,#E4E4E4); 98 | filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FAFAFA',endColorstr='#E4E4E4'); 99 | text-shadow:0 1px 1px rgba(255,255,255,1);box-shadow:0 1px 0 rgba(255,255,255,.7),0 -1px 0 rgba(0,0,0,.09); 100 | -moz-transition:-moz-box-shadow linear .2s;-webkit-transition:-webkit-box-shadow linear .2s;transition:box-shadow linear .2s; } 101 | .ui_buttons input:focus{ outline:0 none;box-shadow:0 0 3px #0e78c9; } 102 | .ui_buttons input:hover{ color:#000;border-color:#666;box-shadow:none; } 103 | .ui_buttons input:active{ border-color:#666; 104 | background:linear-gradient(top,#FAFAFA,#E4E4E4); 105 | background:-moz-linear-gradient(top,#FAFAFA,#E4E4E4); 106 | background:-webkit-gradient(linear,0% 0%,0% 100%,from(#FAFAFA),to(#E4E4E4)); 107 | background:-o-linear-gradient(top,#FAFAFA,#E4E4E4); 108 | filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FAFAFA',endColorstr='#E4E4E4'); } 109 | .ui_buttons input[disabled]{ cursor:default;color:#666;background:#DDD;border:solid 1px #999;filter:alpha(opacity=50);opacity:.5;box-shadow:none; } 110 | 111 | input.ui_state_highlight{ color:#FFF;border:solid 1px #1c6a9e;text-shadow:0 -1px 1px #1c6a9e;background:#2288cc; 112 | background:linear-gradient(top,#33bbee,#2288cc); 113 | background:-moz-linear-gradient(top,#33bbee,#2288cc); 114 | background:-webkit-gradient(linear,0% 0%,0% 100%,from(#33bbee),to(#2288cc)); 115 | background:-o-linear-gradient(top,#33bbee,#2288cc); 116 | filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#33bbee',endColorstr='#2288cc'); } 117 | input.ui_state_highlight:hover{ color:#FFF;border-color:#555; } 118 | input.ui_state_highlight:active{ border-color:#1c6a9e; 119 | background:linear-gradient(top,#33bbee,#2288cc); 120 | background:-moz-linear-gradient(top,#33bbee,#2288cc); 121 | background:-webkit-gradient(linear,0% 0%,0% 100%,from(#33bbee),to(#2288cc)); 122 | background:-o-linear-gradient(top,#33bbee,#2288cc); 123 | filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#33bbee',endColorstr='#2288cc'); } 124 | 125 | /*Tips 部分开始*/ 126 | .ui_state_tips .ui_title_bar{ border:0 none; } 127 | .ui_state_tips .ui_dialog{ border-color:#40B3FF;background-color:#E5F5FF;box-shadow:2px 2px 3px rgba(0,0,0,.2); } 128 | .green .ui_state_tips .ui_dialog{ border-color:#4DBF00;background-color:#F0FFE5;box-shadow:2px 2px 3px rgba(0,0,0,.2); } 129 | .red .ui_state_tips .ui_dialog{ border-color:#FF8080;background-color:#FFF2F2;box-shadow:2px 2px 3px rgba(0,0,0,.2); } 130 | -------------------------------------------------------------------------------- /WebRoot/js/My97DatePicker/WdatePicker.js: -------------------------------------------------------------------------------- 1 | /* 2 | * My97 DatePicker 4.8 Beta1 3 | * License: http://www.my97.net/dp/license.asp 4 | */ 5 | var $dp,WdatePicker;(function(){var $={ 6 | $langList:[{ 7 | name:"en",charset:"UTF-8"}, 8 | {name:"zh-cn",charset:"gb2312"}, 9 | {name:"zh-tw",charset:"GBK"} 10 | ], 11 | $skinList:[ 12 | {name:"default",charset:"gb2312"}, 13 | {name:"whyGreen",charset:"gb2312"} 14 | ], 15 | $wdate:true, 16 | $crossFrame:true, 17 | $preLoad:false, 18 | doubleCalendar:false, 19 | enableKeyboard:true, 20 | enableInputMask:true, 21 | autoUpdateOnChanged:null, 22 | whichDayIsfirstWeek:4, 23 | position:{}, 24 | lang:"auto", 25 | skin:"default", 26 | dateFmt:"yyyy-MM-dd", 27 | realDateFmt:"yyyy-MM-dd", 28 | realTimeFmt:"HH:mm:ss", 29 | realFullFmt:"%Date %Time", 30 | minDate:"1900-01-01 00:00:00", 31 | maxDate:"2099-12-31 23:59:59", 32 | startDate:"", 33 | alwaysUseStartDate:false, 34 | yearOffset:1911, 35 | firstDayOfWeek:0, 36 | isShowWeek:false, 37 | highLineWeekDay:true, 38 | isShowClear:true, 39 | isShowToday:true, 40 | isShowOK:true, 41 | isShowOthers:true, 42 | readOnly:false, 43 | errDealMode:0, 44 | autoPickDate:null, 45 | qsEnabled:true, 46 | autoShowQS:false, 47 | 48 | specialDates:null,specialDays:null,disabledDates:null,disabledDays:null,opposite:false,errMsg:"",quickSel:[],has:{},getRealLang:function(){var _=$.$langList;for(var A=0;A<_.length;A++)if(_[A].name==this.lang)return _[A];return _[0]}};WdatePicker=T;var X=window,S={innerHTML:""},M="document",H="documentElement",C="getElementsByTagName",U,A,R,G,a,W=navigator.appName;if(W=="Microsoft Internet Explorer")R=true;else if(W=="Opera")a=true;else G=true;A=J();if($.$wdate)K(A+"skin/WdatePicker.css");U=X;if($.$crossFrame){try{while(U.parent&&U.parent[M]!=U[M]&&U.parent[M][C]("frameset").length==0)U=U.parent}catch(N){}}if(!U.$dp)U.$dp={ff:G,ie:R,opera:a,status:0,defMinDate:$.minDate,defMaxDate:$.maxDate};B();if($.$preLoad&&$dp.status==0)E(X,"onload",function(){T(null,true)});if(!X[M].docMD){E(X[M],"onmousedown",D);X[M].docMD=true}if(!U[M].docMD){E(U[M],"onmousedown",D);U[M].docMD=true}E(X,"onunload",function(){if($dp.dd)O($dp.dd,"none")});function B(){U.$dp=U.$dp||{};obj={$:function($){return(typeof $=="string")?X[M].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=U[M].getElementsByTagName("div"),$=100000;for(var B=0;B$)$=_}this.dd.style.zIndex=$+2;O(this.dd,"block")},hide:function(){O(this.dd,"none")},attachEvent:E};for(var $ in obj)U.$dp[$]=obj[$];$dp=U.$dp}function E(A,$,_){if(R)A.attachEvent($,_);else if(_){var B=$.replace(/on/,"");_._ieEmuEventHandler=function($){return _($)};A.addEventListener(B,_._ieEmuEventHandler,false)}}function J(){var _,A,$=X[M][C]("script");for(var B=0;B<$.length;B++){_=$[B].getAttribute("src");_=_.substr(0,_.toLowerCase().indexOf("wdatepicker.js"));A=_.lastIndexOf("/");if(A>0)_=_.substring(0,A+1);if(_)break}return _}function K(A,$,B){var D=X[M][C]("HEAD").item(0),_=X[M].createElement("link");if(D){_.href=A;_.rel="stylesheet";_.type="text/css";if($)_.title=$;if(B)_.charset=B;D.appendChild(_)}}function F($){$=$||U;var A=0,_=0;while($!=U){var D=$.parent[M][C]("iframe");for(var F=0;F_.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}var P,_;function T(L,D){$dp.win=X;B();L=L||{};for(var J in $)if(J.substring(0,1)!="$"&&L[J]===undefined)L[J]=$[J];if(D){if(!K()){_=_||setInterval(function(){if(U[M].readyState=="complete")clearInterval(_);T(null,true)},50);return}if($dp.status==0){$dp.status=1;L.el=S;I(L,true)}else return}else if(L.eCont){L.eCont=$dp.$(L.eCont);L.el=S;L.autoPickDate=true;L.qsEnabled=false;I(L)}else{if($.$preLoad&&$dp.status!=2)return;var H=F();if(H){L.srcEl=H.srcElement||H.target;H.cancelBubble=true}L.el=L.el=$dp.$(L.el||L.srcEl);if(!L.el||L.el["My97Mark"]===true||L.el.disabled||($dp.dd&&O($dp.dd)!="none"&&$dp.dd.style.left!="-970px")){L.el["My97Mark"]=false;return}I(L);if(H&&L.el.nodeType==1&&L.el["My97Mark"]===undefined){L.el["My97Mark"]=false;var A,C;if(H.type=="focus"){A="onclick";C="onfocus"}else{A="onfocus";C="onclick"}E(L.el,A,L.el[C])}}function K(){if(R&&U!=X&&U[M].readyState!="complete")return false;return true}function F(){if(G){func=F.caller;while(func!=null){var $=func.arguments[0];if($&&($+"").indexOf("Event")>=0)return $;func=func.caller}return null}return event}}function Q(_,$){return _.currentStyle?_.currentStyle[$]:document.defaultView.getComputedStyle(_,false)[$]}function O(_,$){if(_)if($!=null)_.style.display=$;else return Q(_,"display")}function I(G,_){var D=G.el?G.el.nodeName:"INPUT";if(_||G.eCont||new RegExp(/input|textarea|div|span|p|a/ig).test(D))G.elProp=D=="INPUT"?"value":"innerHTML";else return;if(G.lang=="auto")G.lang=R?navigator.browserLanguage.toLowerCase():navigator.language.toLowerCase();if(!G.eCont)for(var C in G)$dp[C]=G[C];if(!$dp.dd||G.eCont||($dp.dd&&(G.getRealLang().name!=$dp.dd.lang||G.skin!=$dp.dd.skin))){if(G.eCont)E(G.eCont,G);else{$dp.dd=U[M].createElement("DIV");$dp.dd.style.cssText="position:absolute";U[M].body.appendChild($dp.dd);E($dp.dd,G);if(_)$dp.dd.style.left=$dp.dd.style.top="-970px";else{$dp.show();B($dp)}}}else if($dp.cal){$dp.show();$dp.cal.init();if(!$dp.eCont)B($dp)}function E(F,E){F.innerHTML="";var D=F.lastChild.contentWindow[M],_=$.$langList,C=$.$skinList,H=E.getRealLang();F.lang=H.name;F.skin=E.skin;var G=[""];for(var I=0;I");G.push("");G.push("");G.push("");E.setPos=B;E.onload=Y;D.write("");D.cfg=E;D.write(G.join(""))}function B(I){var G=I.position.left,B=I.position.top,C=I.el;if(C==S)return;if(C!=I.srcEl&&(O(C)=="none"||C.type=="hidden"))C=I.srcEl;var H=V(C),$=F(X),D=L(U),A=Z(U),E=$dp.dd.offsetHeight,_=$dp.dd.offsetWidth;if(isNaN(B))B=0;if(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;if(isNaN(G))G=0;G+=A.left+Math.min($.leftM+H.left,D.width-_-5)-(R?2:0);I.dd.style.top=B+"px";I.dd.style.left=G+"px"}}})() -------------------------------------------------------------------------------- /src/guilinsoft/sky/client/MRecordClientHandler.java: -------------------------------------------------------------------------------- 1 | package guilinsoft.sky.client; 2 | 3 | import guilinsoft.sky.utils.MMsg; 4 | import io.netty.channel.ChannelHandlerContext; 5 | import io.netty.channel.ChannelInboundMessageHandlerAdapter; 6 | import io.netty.util.HashedWheelTimer; 7 | import io.netty.util.Timeout; 8 | import io.netty.util.Timer; 9 | import io.netty.util.TimerTask; 10 | 11 | import java.util.List; 12 | import java.util.concurrent.TimeUnit; 13 | 14 | import com.jzero.db.cache.MFile; 15 | import com.jzero.db.core.M; 16 | import com.jzero.log.Log; 17 | import com.jzero.upload.MDown; 18 | import com.jzero.util.MCheck; 19 | import com.jzero.util.MCnt; 20 | import com.jzero.util.MDate; 21 | import com.jzero.util.MPath; 22 | import com.jzero.util.MPrint; 23 | import com.jzero.util.MPro; 24 | import com.jzero.util.MRecord; 25 | import com.jzero.util.MTool; 26 | 27 | public class MRecordClientHandler extends 28 | ChannelInboundMessageHandlerAdapter { 29 | private static String resource_url=MPro.me().getStr("target_url"); 30 | @Override 31 | protected void messageReceived(ChannelHandlerContext ctx, MRecord msg) 32 | throws Exception { 33 | String commend=msg.getStr(MMsg.COMMEND); 34 | if(commend.equalsIgnoreCase("OK")){//已取到数据 35 | MPrint.print("已接收到数据"+msg); 36 | Log.me().write("已接收到数据"); 37 | syn_tb_datas(msg); 38 | MPro.me().setValue("lastsyn", MDate.get_ymd()); 39 | }else{ 40 | MPrint.print(msg.get("MSG"));//出错原因 41 | Log.me().write(msg.getStr("MSG")); 42 | } 43 | 44 | } 45 | /** 46 | * 进行更新操作 47 | * @param msg 48 | */ 49 | private void syn_tb_datas(MRecord msg) { 50 | //1、广告 51 | List advertisingLst=msg.get(LST.ADVERTISING.name()); 52 | insert_tb(advertisingLst,MMsg.WZ_ADVERTISING); 53 | //2、内容 54 | List contentLst=msg.get(LST.CONTENT.name()); 55 | insert_tb(contentLst,MMsg.WZ_CONTENT); 56 | //3、内容明细 57 | List contentMxLst=msg.get(LST.CONTENTMX.name()); 58 | insert_tb(contentMxLst,MMsg.WZ_CONTENT_MX); 59 | //4、目录 60 | List categoryLst=msg.get(LST.CATEGORY.name()); 61 | insert_tb(categoryLst,MMsg.XT_CATEGORY); 62 | //5、联系我们 63 | String contact=msg.getStr(MMsg.CONTACT); 64 | if(!MCheck.isNull(contact)){ 65 | MTool.write(MMsg.TXT_CONTACT,contact); 66 | } 67 | //6、公告信息 68 | String notice=msg.getStr(MMsg.NOTICE); 69 | if(!MCheck.isNull(notice)){ 70 | MTool.write(MMsg.TXT_NOTICE,notice); 71 | } 72 | 73 | } 74 | private void insert_tb(List lst,String table){ 75 | if(!MCheck.isNull(lst)){ 76 | for(MRecord row:lst){ 77 | if(!MCheck.isNull(row)){ 78 | //先判断是否存在,因为IP是从服务器那边传过来的,所以在服务端为唯一 79 | String where=MCnt.me().and_eq("id", row.getStr("id")).toStr(); 80 | boolean boolExist=M.me().check(table, where); 81 | if(!boolExist){//不存在插入 82 | M.me().insert(table, conver(row));//操作数据库 83 | } 84 | } 85 | } 86 | } 87 | } 88 | /** 89 | * 负责将true转换成1:false转换成0 90 | */ 91 | private MRecord conver(MRecord in){ 92 | final String is_audit="is_audit"; 93 | final String is_recommend="is_recommend"; 94 | final String is_home_pic="is_home_pic"; 95 | 96 | String bool_audit=in.getStr(is_audit); 97 | String bool_recommend=in.getStr(is_recommend); 98 | String bool_homePic=in.getStr(is_home_pic); 99 | 100 | if(!MCheck.isNull(bool_audit)){ 101 | in.set(is_audit, bool_audit.equalsIgnoreCase("true")?1:0); 102 | } 103 | if(!MCheck.isNull(bool_recommend)){ 104 | in.set(is_recommend, bool_recommend.equalsIgnoreCase("true")?1:0); 105 | } 106 | if(!MCheck.isNull(bool_homePic)){ 107 | in.set(is_home_pic, bool_homePic.equalsIgnoreCase("true")?1:0); 108 | } 109 | return in; 110 | } 111 | private String getFileName(String path){ 112 | return path.substring(path.lastIndexOf("/")+1); 113 | } 114 | private String getFilePath(String path){ 115 | return path.substring(0,path.lastIndexOf("/")); 116 | } 117 | @Override 118 | protected void endMessageReceived(ChannelHandlerContext ctx) 119 | throws Exception { 120 | MPrint.print("启动下载远程图片线程"); 121 | Log.me().write("启动下载远程图片线程"); 122 | Thread thread=new downPicThread();//下载远程图片线程 123 | thread.start(); 124 | 125 | // 先判断是否已更改成读取全部,如果是读取全部 126 | final ChannelHandlerContext cx = ctx; 127 | final Timer timer = new HashedWheelTimer(); 128 | timer.newTimeout(new TimerTask() { 129 | public void run(Timeout timeout) throws Exception { 130 | MRecord send_datas = get_send_datas(); 131 | cx.write(send_datas); 132 | } 133 | }, MPro.me().getInt("wait_time"), TimeUnit.MINUTES); 134 | } 135 | class downPicThread extends Thread{ 136 | @Override 137 | public void run() { 138 | downPic(); 139 | } 140 | } 141 | /** 142 | * 在同步完成之后使用 143 | * 开启一个线程进行图片下载(seccuess=0)的状态,下载失败则删除 144 | */ 145 | private void downPic(){ 146 | //广告 147 | List advertisingLst=M.me().get_where(MMsg.WZ_ADVERTISING, MCnt.me().first_eq("success", 0).toStr()); 148 | save_pic(advertisingLst,MMsg.WZ_ADVERTISING); 149 | //内容 150 | List contentLst=M.me().get_where(MMsg.WZ_CONTENT, MCnt.me().first_eq("success", 0).toStr()); 151 | save_pic(contentLst,MMsg.WZ_CONTENT); 152 | //内容明细 153 | List contentMxLst=M.me().get_where(MMsg.WZ_CONTENT_MX, MCnt.me().first_eq("success", 0).toStr()); 154 | save_pic(contentMxLst,MMsg.WZ_CONTENT_MX); 155 | } 156 | /** 157 | * 同步完成之后操作,如果下载不了,则进行删除操作 158 | */ 159 | private void save_pic(List lst,String table){ 160 | if(!MCheck.isNull(lst)){ 161 | for(MRecord tempRe:lst){ 162 | String path=tempRe.getStr("path"); 163 | if(!MCheck.isNull(path)){ 164 | String imgUrl = resource_url+"/upload/"+path; //服务器上的图片路径 165 | String filePath =getFilePath(path); //图片保存的h目录 166 | String imagename =getFileName(imgUrl); //图片名称 167 | String full_path=MFile.createFile(MPath.me().getWebRoot()+"upload/"+filePath,imagename).getPath();//创建目录与名称 168 | boolean isOK = false; 169 | try { 170 | isOK = MDown.saveUrlAs(imgUrl,full_path); 171 | } catch (Exception e) { 172 | MPrint.print(e.getMessage()); 173 | } //保存圖片 174 | if(isOK){ 175 | M.me().update(table, new MRecord().set("success", 1), MCnt.me().first_eq("id", tempRe.getStr("id")).toStr()); 176 | } 177 | // else{ 178 | //如果没有取到图片,则不更新 179 | // M.me().delete(table,MCnt.me().first_eq("id", tempRe.getStr("id")).toStr()); 180 | // } 181 | Log.me().write("是否下载成功..= "+isOK+" 下载文件路径 :"+imgUrl); 182 | } 183 | // else{//有些表没有图片操作,则直接删除 184 | //M.me().delete(table,MCnt.me().first_eq("id", tempRe.getStr("id")).toStr()); 185 | // } 186 | } 187 | } 188 | } 189 | @Override 190 | public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) 191 | throws Exception { 192 | MPrint.print("Client Hander Exception :" + cause.getLocalizedMessage()); 193 | ctx.close(); 194 | } 195 | 196 | @Override 197 | public void channelActive(ChannelHandlerContext ctx) throws Exception { 198 | MPrint.print("channelActive "); 199 | MRecord send_datas = get_send_datas(); 200 | ctx.write(send_datas); 201 | } 202 | 203 | private MRecord get_send_datas() { 204 | MPro.me().load_file(MMsg.OTHER_CONFIG); 205 | //在这之前需不需要重新加载一次config.properties? 206 | boolean read_all = MPro.me().getBool("read_all");//是否同步所有数据 207 | String serno = MPro.me().getStr("serno");//终端号 208 | MRecord send_datas = new MRecord().set(MMsg.SERNO, serno); 209 | 210 | if (read_all) { 211 | send_datas.set(MMsg.COMMEND, MMsg.READ_ALL); 212 | MPro.me().setValue("read_all", "false"); 213 | } else { 214 | boolean read_category=MPro.me().getBool("read_category");//是否需要更新目录表 215 | boolean read_contact=MPro.me().getBool("read_contact");//读取联系我们 216 | boolean read_notice=MPro.me().getBool("read_notice");//读取公告信息 217 | if(read_category){MPro.me().setValue("read_category", "false");} 218 | if(read_contact){MPro.me().setValue("read_contact", "false");} 219 | if(read_notice){MPro.me().setValue("read_notice", "false");} 220 | 221 | String update = MPro.me().getStr("lastsyn");//最后同步时间 222 | send_datas.set(MMsg.COMMEND, MMsg.READ).set(MMsg.UPDATETIME, update).set(MMsg.CATEGORY, read_category).set(MMsg.CONTACT, read_contact).set(MMsg.NOTICE,read_notice ); 223 | } 224 | return send_datas; 225 | } 226 | } 227 | -------------------------------------------------------------------------------- /WebRoot/js/lhgdialog/skins/idialog.css: -------------------------------------------------------------------------------- 1 | @charset "utf-8"; 2 | /* 3 | * lhgdialog idialog皮肤 4 | * (C) 2009-2011 【一丝冰凉】, http://t.qq.com/yisibl, QQ:50167214 5 | * This is licensed under the GNU LGPL, version 2.1 or later. 6 | * For details, see: http://creativecommons.org/licenses/LGPL/2.1/ 7 | */ 8 | /*==================制作新皮肤从这里开始复制==================*/ 9 | /*基本重置*/ 10 | body{ _margin:0; }/*IE6 BUG*/ 11 | .ui_lock_scroll{ *overflow:hidden; } 12 | .ui_lock_scroll body{ overflow:hidden; } 13 | 14 | /*结构层*/ 15 | .ui_content,.ui_title,.ui_buttons input{ font:12px/1.333 tahoma,arial,\5b8b\4f53,sans-serif; } 16 | table.ui_border,table.ui_dialog{ width:auto;border-spacing:0;*border-collapse:collapse; } 17 | .ui_border td,.ui_dialog td{ padding:0; } 18 | .ui_dialog{ background:#FFF; } 19 | 20 | /*标题部分开始*/ 21 | .ui_title{ overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;cursor:move;background:#DDD;-moz-user-select:none;-webkit-user-select:none;padding:0 100px 0 0; } 22 | .ui_title_buttons{ position:absolute;cursor:pointer;font-size:0;letter-spacing:-.5em; } 23 | 24 | /*对齐自适应*/ 25 | .ui_main{ min-width:6em;min-width:0\9;text-align:center; } 26 | .ui_content{ display:inline-block;*display:inline;zoom:1;text-align:left; } 27 | .ui_content.ui_state_full{ display:block;width:100%;height:100%;margin:0;padding:0!important; } 28 | .ui_content.ui_state_full iframe{ border-radius:0 0 5px 5px; } 29 | .ui_loading{ width:96px;height:32px;text-align:left;text-indent:-9999em;overflow:hidden;background:url(icons/loading.gif) no-repeat center center; } 30 | .ui_icon_bg{ margin:20px 0 20px 15px; } 31 | 32 | /*标题纯CSS按钮开始 min 最小化,max最大化,res还原,rese恢复,close关闭*/ 33 | .ui_min,.ui_max,.ui_close,.ui_res{ 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; } 34 | .ui_min b,.ui_max b,.ui_res_t,.ui_res_b{ display:block;position:absolute;overflow:hidden;cursor:pointer; } 35 | .ui_close{ font-weight:500;text-decoration:none;outline:0 none; } 36 | .ui_close:hover{ text-decoration:none; } 37 | 38 | /*Tips部分*/ 39 | .ui_state_tips .ui_main{ min-width:3em; } 40 | .ui_state_tips .ui_content{ margin-top:-2px;padding:8px 10px!important; } 41 | .ui_state_tips .ui_icon_bg{ margin:5px 0 6px 9px; } 42 | .ui_state_tips .ui_title,.ui_state_tips .ui_title_buttons,.ui_res{ display:none; } /* 还原按钮也在这里隐藏,这样可节省代码,注间这段一定要写在上面那段代码的下面*/ 43 | 44 | #ldg_lockmask{ background:#DCE2F1;filter:alpha(opacity=60);opacity:.6; } 45 | /*==================制作新皮肤到这里结束复制==================*/ 46 | 47 | /*样式层开始*/ 48 | .ui_inner{ background:#FFF; } 49 | .ui_title_bar{ width:100%;position:relative; } 50 | .ui_title{ display:block;height:26px;line-height:26px;border-bottom:1px solid #DDD\9;font-size:14px;font-weight:bold;color:#888;background:#FFF;background:none;padding-left:3px; } 51 | .ui_state_focus .ui_title{ color:#505050; } 52 | .ui_lt,.ui_rt,.ui_lb,.ui_rb,.ui_t,.ui_b,.ui_close { background-image:url(idialog/idialog_s.png);background-repeat:no-repeat; } 53 | .ui_lt{ width:15px;height:15px;background-position:0 0;_png:idialog/ie6/ui_lt.png; } 54 | .ui_rt{ width:15px;height:15px;background-position:-15px 0;_png:idialog/ie6/ui_rt.png; } 55 | .ui_lb{ width:15px;height:15px;background-position:0 -15px; _png:idialog/ie6/ui_lb.png; } 56 | .ui_rb{ width:15px;height:15px;background-position:-15px -15px;_png:idialog/ie6/ui_rb.png; } 57 | .ui_t,.ui_b{ background-repeat:repeat-x; } 58 | .ui_t{ background-position:0 -30px;_png:idialog/ie6/ui_t.png; } 59 | .ui_b{ background-position:0 -45px;_png:idialog/ie6/ui_b.png; } 60 | .ui_l,.ui_r{ background-image:url(idialog/idialog_s2.png);background-repeat:repeat-y; } 61 | .ui_l{ background-position:left top;_png:idialog/ie6/ui_l.png; } 62 | .ui_r{ background-position:right bottom;_png:idialog/ie6/ui_r.png; } 63 | 64 | /*标题纯CSS按钮定位部分*/ 65 | .ui_title_buttons{ top:0;right:5px; } 66 | .ui_max,.ui_res{ margin-right:10px; } 67 | .ui_min,.ui_max,.ui_close,.ui_res{ margin-left:3px;color:#888;font-size:20px;width:22px;height:22px;line-height:18px; } 68 | .ui_min{ margin-left:0;} 69 | .ui_min_b{ top:10px;left:5px;width:12px;height:2px;border-bottom:2px solid #888; } 70 | .ui_max_b{ top:5px;left:5px;width:10px;height:7px; } 71 | .ui_res_t,.ui_res_b{ top:8px;left:3px;width:10px;height:5px; } 72 | .ui_res_b{ top:4px;left:6px; } 73 | .ui_res_t,.ui_res_b,.ui_max_b{ border:1px solid #888;border-top-width:3px; } 74 | .ui_res_t{ background:#FFF; }/*还原按钮底部框背景与标题背景融合*/ 75 | .ui_min:hover b,.ui_max:hover b,.ui_res:hover b,.ui_rese:hover b{ border-color:#2492FF; } 76 | .ui_close { position:absolute;right:-26px;top:-21px;_z-index:1;width:34px;height:34px;font-size:0;line-height:0;overflow:hidden;background-position:0 -60px;_png:idialog/ie6/ui_close.png; } 77 | .ui_close:hover,.ui_close:focus{ background-position:0 -94px;_png:idialog/ie6/ui_close.hover.png;cursor:pointer; } 78 | /*标题按钮结束*/ 79 | 80 | @media screen and (min-width:0){/* css3 */ 81 | .ui_lt, .ui_rt, .ui_lb, .ui_rb{ width:5px; height:5px; } 82 | .ui_lt, .ui_t, .ui_rt, .ui_l, .ui_r, .ui_lb, .ui_b, .ui_rb { background:none;} 83 | .ui_lb, .ui_b, .ui_rb { background:url(idialog/idialog_s.png) repeat-x 0 -45px; } 84 | .ui_lb { border-radius:0 0 0 5px; } 85 | .ui_rb { border-radius:0 0 5px 0; } 86 | .ui_border {border-radius:5px; background:#FFF; border:1px solid #929292; border-radius:5px; box-shadow:0 1px 6px rgba(0, 0, 0, .3); -moz-transition:-moz-box-shadow linear .2s; -webkit-transition: -webkit-box-shadow linear .2s; transition: -webkit-box-shadow linear .2s; } 87 | .ui_state_drag .ui_border,.ui_state_drag.ui_state_lock .ui_border { box-shadow:none; } 88 | .ui_state_lock .ui_border { box-shadow:0 3px 18px rgba(0, 0, 0, .6); } 89 | .ui_state_tips:active {border-radius:5px; box-shadow:0 1px 8px rgba(0, 0, 0, .5)} 90 | .ui_title:after{ content:"";display:block;height:8px;width:100%;position:absolute;top:26px;left:0; 91 | background:-moz-radial-gradient(center,ellipse cover,#c8c8c8 10%,#FFFFFF 75%); /* FF3.6+ */ 92 | background:-webkit-radial-gradient(center,ellipse cover,#c8c8c8 10%,#FFFFFF 75%); /* Chrome10+,Safari5.1+ */ 93 | background:-o-radial-gradient(center,ellipse cover,#c8c8c8 10%,#FFFFFF 75%); /* Opera 12+ */ 94 | background:-ms-radial-gradient(center,ellipse cover,#c8c8c8 10%,#FFFFFF 75%); /* IE10+ */ 95 | background:radial-gradient(center,ellipse cover,#c8c8c8 10%,#FFFFFF 75%);/* W3C */display:none\9; } 96 | .ui_title:before{ content:"";display:block;height:5px;width:100%;position:absolute;top:26px;left:0;background:#FFF;z-index:1;display:none\9; } 97 | } 98 | 99 | /*底部按钮样式*/ 100 | .ui_buttons{ white-space:nowrap; padding:4px 8px; text-align:right; } 101 | .ui_buttons input::-moz-focus-inner{ border:0; padding:0; margin:0; } 102 | 103 | .ui_buttons input{ padding:2px 10px 2px 12px; padding:4px 10px 1px 12px\0; *padding:3px 10px 1px 10px; margin-left:6px; cursor:pointer; display:inline-block; 104 | text-align:center; line-height:1; height:23px; letter-spacing:3px; overflow:visible; color:#333; border:solid 1px #999; border-radius:3px; border-radius:0\9; background:#DDD; 105 | background:linear-gradient(top, #FAFAFA, #E4E4E4); 106 | background:-moz-linear-gradient(top, #FAFAFA, #E4E4E4); 107 | background:-webkit-gradient(linear, 0% 0%, 0% 100%, from(#FAFAFA), to(#E4E4E4)); 108 | background:-o-linear-gradient(top, #FAFAFA, #E4E4E4); 109 | filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FAFAFA', endColorstr='#E4E4E4'); 110 | text-shadow:0 1px 1px rgba(255, 255, 255, 1); box-shadow:0 1px 0 rgba(255, 255, 255, .7), 0 -1px 0 rgba(0, 0, 0, .09); 111 | -moz-transition:-moz-box-shadow linear .2s; -webkit-transition:-webkit-box-shadow linear .2s; transition:box-shadow linear .2s; } 112 | .ui_buttons input:focus{ outline:0 none; box-shadow:0 0 3px #0e78c9; } 113 | .ui_buttons input:hover{ color:#000; border-color:#666; box-shadow:none; } 114 | .ui_buttons input:active{ border-color:#666; 115 | background:linear-gradient(top, #FAFAFA, #E4E4E4); 116 | background:-moz-linear-gradient(top, #FAFAFA, #E4E4E4); 117 | background:-webkit-gradient(linear, 0% 0%, 0% 100%, from(#FAFAFA), to(#E4E4E4)); 118 | background:-o-linear-gradient(top, #FAFAFA, #E4E4E4); 119 | filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FAFAFA', endColorstr='#E4E4E4'); } 120 | .ui_buttons input[disabled]{ cursor:default; color:#666; background:#DDD; border:solid 1px #999; filter:alpha(opacity=50); opacity:.5; box-shadow:none; } 121 | 122 | input.ui_state_highlight{ color:#FFF; border:solid 1px #1c6a9e; text-shadow: 0 -1px 1px #1c6a9e; background:#2288cc; 123 | background:linear-gradient(top, #33bbee, #2288cc); 124 | background:-moz-linear-gradient(top, #33bbee, #2288cc); 125 | background:-webkit-gradient(linear, 0% 0%, 0% 100%, from(#33bbee), to(#2288cc)); 126 | background:-o-linear-gradient(top, #33bbee, #2288cc); 127 | filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#33bbee', endColorstr='#2288cc'); } 128 | input.ui_state_highlight:hover{ color:#FFF; border-color:#555; } 129 | input.ui_state_highlight:active{ border-color:#1c6a9e; 130 | background:linear-gradient(top, #33bbee, #2288cc); 131 | background:-moz-linear-gradient(top, #33bbee, #2288cc); 132 | background:-webkit-gradient(linear, 0% 0%, 0% 100%, from(#33bbee), to(#2288cc)); 133 | background:-o-linear-gradient(top, #33bbee, #2288cc); 134 | filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#33bbee', endColorstr='#2288cc'); } 135 | 136 | /*Tips 部分开始*/ 137 | .ui_state_tips .ui_content{ text-align:center;font-weight:bold;color:#323232; } 138 | .icon_lightOn {line-height:30px} -------------------------------------------------------------------------------- /src/guilinsoft/sky/action/Index.java: -------------------------------------------------------------------------------- 1 | package guilinsoft.sky.action; 2 | 3 | import guilinsoft.sky.client.MRecordClient; 4 | import guilinsoft.sky.utils.MMsg; 5 | 6 | import java.io.File; 7 | import java.util.List; 8 | 9 | import com.jzero.core.MR; 10 | import com.jzero.core.MURI; 11 | import com.jzero.db.core.M; 12 | import com.jzero.render.MB; 13 | import com.jzero.util.MCheck; 14 | import com.jzero.util.MCnt; 15 | import com.jzero.util.MDate; 16 | import com.jzero.util.MEnum; 17 | import com.jzero.util.MPath; 18 | import com.jzero.util.MPro; 19 | import com.jzero.util.MRecord; 20 | import com.jzero.util.MTool; 21 | 22 | /** 23 | * 2012-11-14:首台页面操作 wangujqw@gmail.com 24 | */ 25 | public class Index { 26 | private static boolean bool_client_connect = false; 27 | 28 | // 开启服务监听 29 | class ClientConnect extends Thread { 30 | @Override 31 | public void run() { 32 | MRecordClient.me().start();// 开启连接服务器 33 | } 34 | } 35 | 36 | // 首页 37 | public void index() { 38 | MRecord out = get_comm(); 39 | 40 | // 推荐商品(默认前几个进行滚动) 41 | out.set("recommendLst", M.me().get_pager_c(MMsg.WZ_CONTENT, 42 | MCnt.me().and("endtime", MEnum.GT_E, MDate.get_ymd()).toStr(), 43 | "recommended", 10, 44 | new Object[] { "ORDER BY is_recommend DESC" })); 45 | 46 | // 推荐广告 47 | out.set("adLst", M.me().get_pager_c(MMsg.WZ_ADVERTISING, 48 | MCnt.me().and("endtime", MEnum.GT_E, MDate.get_ymd()).toStr(), 49 | "aded", new Object[] { "ORDER BY is_recommend DESC" })); 50 | 51 | // 首页图片 52 | out.set("picLst", M.me().get_pager_c( 53 | MMsg.WZ_ADVERTISING, 54 | MCnt.me().and("endtime", MEnum.GT_E, MDate.get_ymd()).and_eq( 55 | "is_home_pic", "1").toStr(), "piced", 56 | new Object[] { "order by pubdate desc" })); 57 | 58 | out.set("page", "index_first");// 默认第一个选中 59 | MR.me().setAttr(MMsg.OBJECT, out); 60 | if (!bool_client_connect) { 61 | new ClientConnect().start(); 62 | bool_client_connect = true; 63 | } 64 | MB.me().getJspRender("/index.jsp"); 65 | } 66 | 67 | private MRecord get_comm() { 68 | MRecord out = new MRecord(); 69 | // 一级分类菜单表 70 | out.set("categoryLst", M.me().get_where(MMsg.XT_CATEGORY, 71 | MCnt.me().first_eq("parent_id", 0).toStr(), 72 | new Object[] { "order by sort asc" })); 73 | // 公告信息 74 | out.set("noticeContent", MTool.read(MMsg.TXT_NOTICE)); 75 | return out; 76 | } 77 | 78 | // 子菜单 79 | public void submenu() { 80 | String main_id = MTool.decode(MURI.me().seg_str(2));// 主菜单ID 81 | // 二级菜单 82 | List submenuLst = M.me().get_where(MMsg.XT_CATEGORY, 83 | MCnt.me().first_eq("parent_id", main_id).toStr(), 84 | new Object[] { " order by sort asc" }); 85 | List contentLst = null; 86 | // 取默认第一个一级菜单的列表 87 | if (!MCheck.isNull(submenuLst)) { 88 | MRecord category = submenuLst.get(0); 89 | String where = MCnt.me().first_eq("parent_id", main_id).and_eq( 90 | "category_id", category.get("id")).and_eq("is_audit", 1) 91 | .and("endtime", MEnum.GT_E, MDate.get_ymd()).toStr(); 92 | contentLst = M.me().get_where(MMsg.WZ_CONTENT, where, 93 | "order by pubdate desc"); 94 | } 95 | 96 | // 推荐商品 97 | List recommendLst = M.me().get_pager_c( 98 | MMsg.WZ_CONTENT, 99 | MCnt.me().and_eq("is_audit", 1).and_eq("is_recommend", 1) 100 | .and_eq("parent_id", main_id).and("endtime", 101 | MEnum.GT_E, MDate.get_ymd()).toStr(), 102 | "recommended", 10, new Object[] { "order by pubdate DESC" }); 103 | 104 | MRecord out = get_comm(); 105 | out.set("submenuLst", submenuLst).set("contentLst", contentLst).set( 106 | "recommendLst", recommendLst); 107 | out.set("page", "index_" + main_id);// 导航选中状态 108 | MR.me().setAttr(MMsg.OBJECT, out); 109 | MB.me().getJspRender("/submenu.jsp"); 110 | } 111 | 112 | // 子内容列表 113 | public void subcontent() { 114 | String parent_id = MURI.me().seg_str(2); 115 | String main_id = MURI.me().seg_str(3); 116 | 117 | // 二级菜单 118 | List submenuLst = M.me().get_where(MMsg.XT_CATEGORY, 119 | MCnt.me().first_eq("parent_id", main_id).toStr(), 120 | new Object[] { " order by sort asc" }); 121 | String where = MCnt.me().first_eq("parent_id", main_id).and_eq( 122 | "category_id", parent_id).and_eq("is_audit", 1).and("endtime", 123 | MEnum.GT_E, MDate.get_ymd()).toStr(); 124 | List contentLst = M.me().get_where(MMsg.WZ_CONTENT, where, 125 | "order by pubdate desc"); 126 | 127 | // 推荐商品 128 | List recommendLst = M.me().get_pager_c( 129 | MMsg.WZ_CONTENT, 130 | MCnt.me().and_eq("is_audit", 1).and_eq("is_recommend", 1) 131 | .and_eq("parent_id", main_id).and("endtime", 132 | MEnum.GT_E, MDate.get_ymd()).toStr(), 133 | "recommended", 10, new Object[] { "order by pubdate DESC" }); 134 | 135 | MRecord out = get_comm(); 136 | out.set("submenuLst", submenuLst).set("contentLst", contentLst).set( 137 | "recommendLst", recommendLst); 138 | out.set("page", "index_" + main_id);// 导航选中状态 139 | MR.me().setAttr(MMsg.OBJECT, out); 140 | MB.me().getJspRender("/submenu.jsp"); 141 | } 142 | 143 | // 是看广告 144 | public void ad() { 145 | String content_id = MURI.me().seg_str(2); 146 | String main_id = MURI.me().seg_str(3); 147 | // 二级菜单 148 | List submenuLst = M.me().get_where(MMsg.XT_CATEGORY, 149 | MCnt.me().first_eq("parent_id", main_id).toStr(), 150 | new Object[] { " order by sort asc" }); 151 | MRecord contentObj = M.me().one_t(MMsg.WZ_ADVERTISING, 152 | MCnt.me().and_eq("id", content_id).toStr()); 153 | MRecord out = get_comm(); 154 | out.set("submenuLst", submenuLst).set("contentObj", contentObj); 155 | out.set("page", "index_" + main_id);// 导航选中状态 156 | MR.me().setAttr(MMsg.OBJECT, out); 157 | MB.me().getJspRender("/ad.jsp"); 158 | } 159 | 160 | // 实体内容 161 | public void content() { 162 | String content_id = MURI.me().seg_str(2); 163 | String main_id = MURI.me().seg_str(3); 164 | // 二级菜单 165 | List submenuLst = M.me().get_where(MMsg.XT_CATEGORY, 166 | MCnt.me().first_eq("parent_id", main_id).toStr(), 167 | new Object[] { " order by sort asc" }); 168 | 169 | MRecord contentObj = M.me().one_t(MMsg.WZ_CONTENT, 170 | MCnt.me().and_eq("id", content_id).toStr()); 171 | 172 | // 明细图片 173 | List subImg = M.me().get_where(MMsg.WZ_CONTENT_MX, 174 | MCnt.me().first_eq("pid", content_id).toStr()); 175 | MRecord out = get_comm(); 176 | out.set("submenuLst", submenuLst).set("contentObj", contentObj).set( 177 | "subImg", subImg); 178 | out.set("page", "index_" + main_id);// 导航选中状态 179 | MR.me().setAttr(MMsg.OBJECT, out); 180 | MB.me().getJspRender("/content.jsp"); 181 | } 182 | 183 | // 联系我们 184 | public void contact() { 185 | String contact = MTool.read(MMsg.TXT_CONTACT); 186 | MRecord out = get_comm(); 187 | out.set("contact", contact); 188 | out.set("page", "index_last");// 导航选中状态 189 | MR.me().setAttr(MMsg.OBJECT, out); 190 | MB.me().getJspRender("/contact.jsp"); 191 | } 192 | 193 | // 购买 194 | public void buy() { 195 | String content_id = MURI.me().seg_str(2); 196 | String main_id = MURI.me().seg_str(3); 197 | // 二级菜单 198 | List submenuLst = M.me().get_where(MMsg.XT_CATEGORY, 199 | MCnt.me().first_eq("parent_id", main_id).toStr(), 200 | new Object[] { " order by sort asc" }); 201 | 202 | MRecord contentObj = M.me().one_t(MMsg.WZ_CONTENT, 203 | MCnt.me().and_eq("id", content_id).toStr()); 204 | 205 | MRecord out = get_comm(); 206 | out.set("submenuLst", submenuLst).set("contentObj", contentObj); 207 | out.set("page", "index_" + main_id);// 导航选中状态 208 | MR.me().setAttr(MMsg.OBJECT, out); 209 | MB.me().getJspRender("/buy.jsp"); 210 | } 211 | 212 | // 参数设置操作 213 | public void set() { 214 | MRecord out = get_comm(); 215 | MR.me().setAttr(MMsg.OBJECT, out); 216 | MB.me().getJspRender("/set.jsp"); 217 | } 218 | 219 | // 保存设置的值 220 | public void save_set() { 221 | String read_all = MR.me().getPara("read_all");// 是否同步所有数据 222 | String target_url = MR.me().getPara("target_url");// 远程下载地址 223 | String target_ip = MR.me().getPara("target_ip");// 远程服务器IP 224 | String target_port = MR.me().getPara("target_port");// 远程服务器端口 225 | String wait_time = MR.me().getPara("wait_time");// 等待时间 226 | String serno = MR.me().getPara("serno"); // 终端编号 227 | String read_category = MR.me().getPara("read_category");// 是否读取菜单 228 | String read_contact = MR.me().getPara("read_contact");// 是否读取联系我们 229 | String read_notice = MR.me().getPara("read_notice");// 是否读取公告信息 230 | String lastsyn = MR.me().getPara("lastsyn");// 是后更新时间 231 | MPro me = MPro.me(); 232 | me.setValue("read_all", read_all); 233 | me.setValue("target_url", target_url); 234 | me.setValue("target_ip", target_ip); 235 | me.setValue("target_port", target_port); 236 | me.setValue("wait_time", wait_time); 237 | me.setValue("serno", serno); 238 | me.setValue("read_category", read_category); 239 | me.setValue("read_contact", read_contact); 240 | me.setValue("read_notice", read_notice); 241 | me.setValue("lastsyn", lastsyn); 242 | 243 | // 2013-6-5,如果选择了同步所有,则进行清理 244 | if (read_all.equals("true")) { 245 | clear(); 246 | } 247 | MRecord out = get_comm(); 248 | out.set(MMsg.MESSAGE, MMsg.SAVE_SUCCESS); 249 | MR.me().setAttr(MMsg.OBJECT, out); 250 | MB.me().getJspRender("/set.jsp"); 251 | } 252 | 253 | /** 254 | * 如果选择了同步,则清理所有数据 1、数据库 2、文件图片 255 | */ 256 | private void clear() { 257 | String where = " 1=1 "; 258 | // 清理广告表 259 | M.me().delete(MMsg.WZ_ADVERTISING, where); 260 | // 清理数据内容表 261 | M.me().delete(MMsg.WZ_CONTENT, where); 262 | M.me().delete(MMsg.WZ_CONTENT_MX, where); 263 | 264 | // 清理菜单表 265 | M.me().delete(MMsg.XT_CATEGORY, where); 266 | 267 | // 清下图片文件 268 | String image_path = MPath.me().getWebRoot() + "upload/"; 269 | deleteFile(new File(image_path)); 270 | } 271 | 272 | private void deleteFile(File file_path) { 273 | File file = file_path; 274 | if (file.isFile()) { 275 | file.delete(); 276 | } else if (file.isDirectory()) { 277 | File[] files = file.listFiles(); 278 | for (File f : files) { 279 | deleteFile(f); 280 | } 281 | file.delete(); 282 | } 283 | } 284 | 285 | } 286 | -------------------------------------------------------------------------------- /WebRoot/js/formValidator/jquery.validationEngine-cn.js: -------------------------------------------------------------------------------- 1 | (function($){ 2 | $.fn.validationEngineLanguage = function(){ 3 | }; 4 | $.validationEngineLanguage = { 5 | newLang: function(){ 6 | $.validationEngineLanguage.allRules = { 7 | "required": { // Add your regex rules here, you can take telephone as an example 8 | "regex": "none", 9 | "alertText": "* 此处不可空白", 10 | "alertTextCheckboxMultiple": "* 请选择一个项目", 11 | "alertTextCheckboxe": "* 您必须钩选此栏", 12 | "alertTextDateRange": "* 日期范围不可空白" 13 | }, 14 | "requiredInFunction": { 15 | "func": function(field, rules, i, options){ 16 | return (field.val() == "test") ? true : false; 17 | }, 18 | "alertText": "* Field must equal test" 19 | }, 20 | "dateRange": { 21 | "regex": "none", 22 | "alertText": "* 无效的 ", 23 | "alertText2": " 日期范围" 24 | }, 25 | "dateTimeRange": { 26 | "regex": "none", 27 | "alertText": "* 无效的 ", 28 | "alertText2": " 时间范围" 29 | }, 30 | "minSize": { 31 | "regex": "none", 32 | "alertText": "* 最少 ", 33 | "alertText2": " 个字符" 34 | }, 35 | "maxSize": { 36 | "regex": "none", 37 | "alertText": "* 最多 ", 38 | "alertText2": " 个字符" 39 | }, 40 | "groupRequired": { 41 | "regex": "none", 42 | "alertText": "* 你必需选填其中一个栏位" 43 | }, 44 | "min": { 45 | "regex": "none", 46 | "alertText": "* 最小值為 " 47 | }, 48 | "max": { 49 | "regex": "none", 50 | "alertText": "* 最大值为 " 51 | }, 52 | "past": { 53 | "regex": "none", 54 | "alertText": "* 日期必需早于 " 55 | }, 56 | "future": { 57 | "regex": "none", 58 | "alertText": "* 日期必需晚于 " 59 | }, 60 | "maxCheckbox": { 61 | "regex": "none", 62 | "alertText": "* 最多选取 ", 63 | "alertText2": " 个项目" 64 | }, 65 | "minCheckbox": { 66 | "regex": "none", 67 | "alertText": "* 请选择 ", 68 | "alertText2": " 个项目" 69 | }, 70 | "equals": { 71 | "regex": "none", 72 | "alertText": "* 请输入与上面相同的密码" 73 | }, 74 | "creditCard": { 75 | "regex": "none", 76 | "alertText": "* 无效的信用卡号码" 77 | }, 78 | "phone": { 79 | // credit: jquery.h5validate.js / orefalo 80 | "regex": /^([\+][0-9]{1,3}[ \.\-])?([\(]{1}[0-9]{2,6}[\)])?([0-9 \.\-\/]{3,20})((x|ext|extension)[ ]?[0-9]{1,4})?$/, 81 | "alertText": "* 无效的电话号码" 82 | }, 83 | "email": { 84 | // Shamelessly lifted from Scott Gonzalez via the Bassistance Validation plugin http://projects.scottsplayground.com/email_address_validation/ 85 | "regex": /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i, 86 | "alertText": "* 邮件地址无效" 87 | }, 88 | "integer": { 89 | "regex": /^[\-\+]?\d+$/, 90 | "alertText": "* 不是有效的整数" 91 | }, 92 | "number": { 93 | // Number, including positive, negative, and floating decimal. credit: orefalo 94 | "regex": /^[\-\+]?((([0-9]{1,3})([,][0-9]{3})*)|([0-9]+))?([\.]([0-9]+))?$/, 95 | "alertText": "* 无效的数字" 96 | }, 97 | "date": { 98 | "regex": /^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/, 99 | "alertText": "* 无效的日期,格式必需为 YYYY-MM-DD" 100 | }, 101 | "ipv4": { 102 | "regex": /^((([01]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))[.]){3}(([0-1]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))$/, 103 | "alertText": "* 无效的 IP 地址" 104 | }, 105 | "url": { 106 | "regex": /^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i, 107 | "alertText": "* Invalid URL" 108 | }, 109 | "onlyNumberSp": { 110 | "regex": /^[0-9\ ]+$/, 111 | "alertText": "* 只能填数字" 112 | }, 113 | "onlyLetterSp": { 114 | "regex": /^[a-zA-Z\ \']+$/, 115 | "alertText": "* 只接受英文字母大小写" 116 | }, 117 | "onlyLetterNumber": { 118 | "regex": /^[0-9a-zA-Z]+$/, 119 | "alertText": "* 不接受特殊字符" 120 | }, 121 | // --- CUSTOM RULES -- Those are specific to the demos, they can be removed or changed to your likings 122 | "ajaxUserCall": { 123 | "url": "ajaxValidateFieldUser", 124 | // you may want to pass extra data on the ajax call 125 | "extraData": "name=eric", 126 | "alertText": "* 此名称已被其他人使用", 127 | "alertTextLoad": "* 正在确认名称是否有其他人使用,请稍等。" 128 | }, 129 | "ajaxUserCallPhp": { 130 | "url": "phpajax/ajaxValidateFieldUser.php", 131 | // you may want to pass extra data on the ajax call 132 | "extraData": "name=eric", 133 | // if you provide an "alertTextOk", it will show as a green prompt when the field validates 134 | "alertTextOk": "* 此帐号名称可以使用", 135 | "alertText": "* 此名称已被其他人使用", 136 | "alertTextLoad": "* 正在确认帐号名称是否有其他人使用,请稍等。" 137 | }, 138 | "ajaxNameCall": { 139 | // remote json service location 140 | "url": "ajaxValidateFieldName", 141 | // error 142 | "alertText": "* 此名称可以使用", 143 | // if you provide an "alertTextOk", it will show as a green prompt when the field validates 144 | "alertTextOk": "* 此名称已被其他人使用", 145 | // speaks by itself 146 | "alertTextLoad": "* 正在确认名称是否有其他人使用,请稍等。" 147 | }, 148 | "ajaxNameCallPhp": { 149 | // remote json service location 150 | "url": "phpajax/ajaxValidateFieldName.php", 151 | // error 152 | "alertText": "* 此名称已被其他人使用", 153 | // speaks by itself 154 | "alertTextLoad": "* 正在确认名称是否有其他人使用,请稍等。" 155 | }, 156 | "validate2fields": { 157 | "alertText": "* 请输入 HELLO" 158 | }, 159 | //tls warning:homegrown not fielded 160 | "dateFormat":{ 161 | "regex": /^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$|^(?:(?:(?:0?[13578]|1[02])(\/|-)31)|(?:(?:0?[1,3-9]|1[0-2])(\/|-)(?:29|30)))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^(?:(?:0?[1-9]|1[0-2])(\/|-)(?:0?[1-9]|1\d|2[0-8]))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^(0?2(\/|-)29)(\/|-)(?:(?:0[48]00|[13579][26]00|[2468][048]00)|(?:\d\d)?(?:0[48]|[2468][048]|[13579][26]))$/, 162 | "alertText": "* 无效的日期格式" 163 | }, 164 | //tls warning:homegrown not fielded 165 | "dateTimeFormat": { 166 | "regex": /^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])\s+(1[012]|0?[1-9]){1}:(0?[1-5]|[0-6][0-9]){1}:(0?[0-6]|[0-6][0-9]){1}\s+(am|pm|AM|PM){1}$|^(?:(?:(?:0?[13578]|1[02])(\/|-)31)|(?:(?:0?[1,3-9]|1[0-2])(\/|-)(?:29|30)))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^((1[012]|0?[1-9]){1}\/(0?[1-9]|[12][0-9]|3[01]){1}\/\d{2,4}\s+(1[012]|0?[1-9]){1}:(0?[1-5]|[0-6][0-9]){1}:(0?[0-6]|[0-6][0-9]){1}\s+(am|pm|AM|PM){1})$/, 167 | "alertText": "* 无效的日期或时间格式", 168 | "alertText2": "可接受的格式: ", 169 | "alertText3": "mm/dd/yyyy hh:mm:ss AM|PM 或 ", 170 | "alertText4": "yyyy-mm-dd hh:mm:ss AM|PM" 171 | } 172 | }; 173 | 174 | } 175 | }; 176 | $.validationEngineLanguage.newLang(); 177 | })(jQuery); 178 | -------------------------------------------------------------------------------- /WebRoot/js/comm.js: -------------------------------------------------------------------------------- 1 | function go_back(){history.go(-1);return false ; } 2 | function go_to_url(url){location=url;} 3 | function getObjById(name){return document.getElementById(name); } 4 | function chkNull(str) { 5 | if(str==undefined){return true;} 6 | else if (str == "") {return true;} 7 | else if (str == null) {return true;} 8 | else if(str=='[]'){return true;} 9 | return false; 10 | } 11 | //校验是否是数字 12 | function isNum(v){ 13 | var s = v; 14 | if(s!=""){ if(isNaN(s)){return false;}else{return true;}} 15 | return false; 16 | } 17 | function remove_nnum(id){ 18 | return input_only_float(id); 19 | } 20 | function input_only_float(id){ 21 | var obj=getObjById(id); 22 | var v=obj.value; 23 | if (/^(\+|-)?\d+($|\.\d+$)/.test(v)){ return true; } // 24 | obj.value=v.replace(/[^\d\.]/g, '').replace(/\.{2,}/g,"."); 25 | return false; 26 | } 27 | function getObjByName(name) {return document.getElementsByName(name);} 28 | function checkTextIsNumAndNotZero(ids,msg){ 29 | var obj=getObjById(ids); 30 | var boolNum=isNum(obj.value); 31 | if(!boolNum){return true;} 32 | return checkSelectIsNull(ids,msg); 33 | } 34 | 35 | //当srcId的text存放隐藏的destid中 36 | function select_name(srcid,destid){ 37 | var o_select = getObjById(srcid); 38 | var s_value = o_select.options[o_select.selectedIndex]; 39 | if(chkNull(s_value.value)){getObjById(destid).value=""; 40 | }else{getObjById(destid).value=s_value.text;} 41 | } 42 | 43 | 44 | 45 | function checkTextIsNull(ids,msg){ 46 | var obj=getObjById(ids); 47 | if(obj!=undefined&&chkNull(obj.value)){ 48 | alertMsg(msg); 49 | obj.focus(); 50 | return false; 51 | } 52 | return true; 53 | } 54 | function checkSelectIsNull(ids,msg){ 55 | var obj=getObjById(ids); 56 | if(obj.value=='all'){ return true;} 57 | if(chkNull(obj.value) || obj.value==0 ){ 58 | alertMsg(msg); 59 | obj.focus(); 60 | return false; 61 | } 62 | return false; 63 | } 64 | 65 | //根据传入的checkbox的选中状态设置所有checkbox的选中状态 66 | function selectAll(obj,name){ 67 | var allInput =document.getElementsByName(name); 68 | var loopTime = allInput.length; 69 | for(i = 0;i < loopTime;i++){ 70 | allInput[i].checked = obj.checked; 71 | } 72 | } 73 | function checkIsSelect(name) { 74 | var flag = false; 75 | for ( var i = 0; i < getObjByName(name).length; i++) { 76 | if (getObjByName(name)[i].checked) { 77 | flag = true; 78 | } 79 | } 80 | return flag; 81 | } 82 | 83 | /** 84 | --2012-7-19:在list 排序时调用 85 | 车牌号  86 | */ 87 | function orderby(id,url,parm){ 88 | var obj=getObjById(id); 89 | var cn=obj.getAttribute("class"); 90 | var to_url=null; 91 | if(cn=="desc"){ 92 | to_url=AJAX_URL+url+"/"+id+"_asc"; 93 | obj.setAttribute("class","asc"); 94 | }else if(cn=="asc"){ 95 | to_url=AJAX_URL+url+"/"+id+"_desc"; 96 | obj.setAttribute("class","desc"); 97 | } 98 | if(parm!=undefined){ 99 | to_url=to_url+"/"+parm; 100 | } 101 | //alert(to_url); 102 | go_to_url(to_url); 103 | } 104 | 105 | function c_order(o_s){ 106 | if(!chkNull(o_s)){ 107 | var arr= o_s.split("_"); 108 | if(arr[1]=="desc"){ 109 | $("#"+arr[0]).attr("class","desc"); 110 | //getObjById(arr[0]).setAttribute("class","desc"); 111 | } else if(arr[1]=="asc"){ 112 | $("#"+arr[0]).attr("class","asc"); 113 | // getObjById(arr[0]).setAttribute("class","asc"); 114 | } 115 | } 116 | } 117 | 118 | /** 119 | *使用 120 | 131 | * 132 | * 133 | */ 134 | function ajax(o){ 135 | var XHR, 136 | config = (typeof o === 'object' && o!=null)?o : {}, 137 | scope = config.scope||window, 138 | method = config.method||'GET', 139 | cb = typeof config.callback === 'function' ? config.callback : function(){}, 140 | url = config.url, 141 | params = config.params||{}, 142 | p = null, 143 | 144 | addURLParam = function(url,key,value){ 145 | url += (url.indexOf('?') == -1 ? '?' : '&'); 146 | url += encodeURIComponent(key) + '=' + encodeURIComponent(value); 147 | return url; 148 | }, 149 | timeout = 30000;//30s s 150 | 151 | if(typeof url !== 'string'){ 152 | throw new Error('配置的请求地址错误!'); 153 | } 154 | 155 | if(typeof XMLHttpRequest != 'undefined'){ 156 | XHR = new XMLHttpRequest(); 157 | }else if(typeof ActiveXObject != 'undefined'){ 158 | var versions = ['MSXML2.XMLHTTP.3.0','Msxml2.XMLHTTP.6.0','MSXML2.XMLHTTP','Microsoft.XMLHTTP']; 159 | for(var i=0,len=versions.length;i= 200 && XHR.status < 300) || XHR.status == 304){ 179 | //success 180 | //XHR.responseText 181 | clearTimeout(t); 182 | cb.call(scope,XHR.responseText); 183 | }else{ 184 | //exception 185 | throw new Error('Request is unsuccessfull: '+ XHR.status); 186 | } 187 | } 188 | } 189 | if(method.toUpperCase() == 'GET'){ 190 | for(var f in params){ 191 | url = addURLParam(url,f,params[f]); 192 | } 193 | url += (url.indexOf('?') == -1 ? '?' : '&'); 194 | url += 'ts=' + (new Date()).valueOf(); 195 | }else if(method.toUpperCase() == 'POST'){ 196 | var a = []; 197 | for(var f in params){ 198 | a.push(f+'='+encodeURIComponent(params[f])); 199 | } 200 | p = a.join('&'); 201 | } 202 | 203 | XHR.open(method,url,true); 204 | XHR.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8'); 205 | XHR.send(p); 206 | } 207 | 208 | //判断是否存在 209 | function exists(id,t,msg){ 210 | var v=getObjById(id).value; 211 | if(!chkNull(v)){ 212 | ajax({ 213 | method : 'post', 214 | url : AJAX_URL+"common/check_is_exist", 215 | params : {nStr:id,qStr:getObjById(id).value,t_str:t}, 216 | callback : function(responseText){ 217 | if(responseText=="true"){ 218 | alertMsg(msg,id); 219 | } 220 | } 221 | }); 222 | } 223 | } 224 | //读取cookie 225 | function getCookie(name){ 226 | var value=""; 227 | var cookie = ";"+document.cookie.replace(/;\s+/g,";")+";" 228 | var pos = cookie.indexOf(";"+name+"="); 229 | if(pos>-1){ 230 | var start = cookie.indexOf("=",pos); 231 | var end = cookie.indexOf(";",start); 232 | value = unescape(cookie.substring(start+1,end)); 233 | } 234 | return value; 235 | } 236 | //-----------------------dialog区 237 | function confirms_msg(msg,fid){ 238 | 239 | $.dialog.confirm(msg, function(){ 240 | if(fid!=undefined){ 241 | $("#"+fid).submit(); 242 | return true; 243 | } 244 | }, function(){ $.dialog.tips('执行取消操作'); }); 245 | return false; 246 | } 247 | //确认后跳转 248 | function confirm_msg(msg,url){ 249 | $.dialog.confirm(msg, function(){ 250 | go_to_url(AJAX_URL+url); 251 | return true; 252 | }, function(){ $.dialog.tips('执行取消操作'); }); 253 | return false; 254 | } 255 | function alertMsg(msg,id,defaul){ 256 | $.dialog.alert(msg,function(){ 257 | if(id!=undefined){ 258 | if(defaul!=undefined){ 259 | $("#"+id).val(defaul); 260 | }else{ 261 | $("#"+id).val(""); 262 | } 263 | } 264 | }); 265 | return false; 266 | } 267 | function del(url,msg){ 268 | 269 | var m=msg||"您确定要删除当前记录?"; 270 | $.dialog.confirm(m, function(){ 271 | location=url; 272 | return true; 273 | }, function(){ $.dialog.tips('执行取消操作'); }); 274 | return false; 275 | } 276 | function submit(url,msg){ 277 | $.dialog.confirm(msg, function(){ 278 | location=url; 279 | return true; 280 | },function(){ $.dialog.tips('执行取消操作'); }); 281 | return false; 282 | } 283 | 284 | function submitForm(fname,uri){ 285 | if(!checkIsSelect("select[]")){ 286 | alertMsg("请选择要删除的选项."); 287 | return false; 288 | } 289 | $.dialog.confirm("确定删除选中的项?", function(){ 290 | document.forms[fname].action =uri; 291 | document.forms[fname].submit(); 292 | },function(){ $.dialog.tips('执行取消操作'); }); 293 | return false; 294 | } 295 | //删除时调用 296 | function del_form(form,url,e_msg,a_msg){ 297 | var e=e_msg||"请选择要删除的选项."; 298 | var a=a_msg||"确定删除选中的项?"; 299 | if(!checkIsSelect("select[]")){ 300 | alertMsg(e); 301 | return false; 302 | } 303 | $.dialog.confirm(a, function(){ 304 | document.forms[form].action =url; 305 | document.forms[form].submit(); 306 | return true; 307 | }, function(){ $.dialog.tips('执行取消操作'); }); 308 | return false; 309 | 310 | } 311 | function onlyNumber(){ 312 | $(function(){ 313 | $("[alt='msk']").each(function(i,item){ 314 | $(this).keyup(function(){ 315 | return input_only_float($(this).attr('id')); 316 | }) 317 | }); 318 | }) ; 319 | } 320 | function list_page(){ 321 | $(function(){ 322 | color(".list"); 323 | $('.list tr:gt(1):not(:last)').mouseover(function(){$(this).addClass("over");}).mouseout(function(){$(this).removeClass("over");}) 324 | }); 325 | } 326 | //新增/修改页面 327 | function other_page(){ 328 | $(function(){ 329 | $('.other tr:gt(0):not(:last)').mouseover(function(){$(this).addClass("over");}).mouseout(function(){$(this).removeClass("over");}) 330 | }); 331 | } 332 | function color(cn){ 333 | $(cn+">tbody>tr:odd").addClass("odd"); //为奇数行添加样式 334 | $(cn+">tbody>tr:even").addClass("even"); //为偶数行添加样式 335 | } 336 | function check_find(){ 337 | if(checkSelectIsNull('cxzd','请选择字段类型.')){ 338 | return true; 339 | }else if(checkTextIsNull('cxnr','请输入查询的内容.')){ 340 | return true; 341 | } 342 | return false; 343 | 344 | } 345 | 346 | //2012-9-2 347 | function audit(url){ 348 | $.dialog.select( 349 | function(val){ 350 | location=url+"/"+val; 351 | return true; 352 | }); 353 | } 354 | function audit_list(form,url){ 355 | if(!checkIsSelect("select[]")){ 356 | alertMsg("请选择要审核的选项"); 357 | return false; 358 | } 359 | $.dialog.select( 360 | function(val){ 361 | document.forms[form].action =url+"/"+val; 362 | document.forms[form].submit(); 363 | }); 364 | return false; 365 | } 366 | //清除图片时用到 367 | function remove_this(id){ 368 | $("#show_img").find("."+id).remove(); 369 | } 370 | //禁止右键 371 | function no_right(){ 372 | $(function(){ 373 | $(document).bind("contextmenu",function(e){ 374 | return false; 375 | }); 376 | }); 377 | } -------------------------------------------------------------------------------- /WebRoot/js/flexslider/jquery.flexslider-min.js: -------------------------------------------------------------------------------- 1 | /* 2 | * jQuery FlexSlider v2.1 3 | * http://www.woothemes.com/flexslider/ 4 | * 5 | * Copyright 2012 WooThemes 6 | * Free to use under the GPLv2 license. 7 | * http://www.gnu.org/licenses/gpl-2.0.html 8 | * 9 | * Contributing author: Tyler Smith (@mbmufffin) 10 | */ 11 | (function(d){d.flexslider=function(j,l){var a=d(j),c=d.extend({},d.flexslider.defaults,l),e=c.namespace,q="ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch,u=q?"touchend":"click",m="vertical"===c.direction,n=c.reverse,h=0g?a.getTarget("next"):a.getTarget("prev");a.flexAnimate(d,c.pauseOnAction)});c.pausePlay&&f.pausePlay.setup();c.slideshow&&(c.pauseOnHover&&a.hover(function(){!a.manualPlay&&!a.manualPause&&a.pause()}, 15 | function(){!a.manualPause&&!a.manualPlay&&a.play()}),0');if(1':""+b+"",a.controlNavScaffold.append("
  • "+g+"
  • "),b++;a.controlsContainer?d(a.controlsContainer).append(a.controlNavScaffold):a.append(a.controlNavScaffold);f.controlNav.set();f.controlNav.active();a.controlNavScaffold.delegate("a, img",u,function(b){b.preventDefault();b=d(this);var g=a.controlNav.index(b);b.hasClass(e+"active")||(a.direction=g>a.currentSlide?"next":"prev",a.flexAnimate(g,c.pauseOnAction))});q&&a.controlNavScaffold.delegate("a", 18 | "click touchstart",function(a){a.preventDefault()})},setupManual:function(){a.controlNav=a.manualControls;f.controlNav.active();a.controlNav.live(u,function(b){b.preventDefault();b=d(this);var g=a.controlNav.index(b);b.hasClass(e+"active")||(g>a.currentSlide?a.direction="next":a.direction="prev",a.flexAnimate(g,c.pauseOnAction))});q&&a.controlNav.live("click touchstart",function(a){a.preventDefault()})},set:function(){a.controlNav=d("."+e+"control-nav li "+("thumbnails"===c.controlNav?"img":"a"), 19 | a.controlsContainer?a.controlsContainer:a)},active:function(){a.controlNav.removeClass(e+"active").eq(a.animatingTo).addClass(e+"active")},update:function(b,c){1"+a.count+"")):1===a.pagingCount?a.controlNavScaffold.find("li").remove():a.controlNav.eq(c).closest("li").remove();f.controlNav.set();1
  • '+c.prevText+'
  • '+c.nextText+"
  • ");a.controlsContainer?(d(a.controlsContainer).append(b),a.directionNav=d("."+e+"direction-nav li a",a.controlsContainer)):(a.append(b),a.directionNav=d("."+e+"direction-nav li a",a));f.directionNav.update();a.directionNav.bind(u,function(b){b.preventDefault();b=d(this).hasClass(e+"next")?a.getTarget("next"):a.getTarget("prev");a.flexAnimate(b,c.pauseOnAction)}); 21 | q&&a.directionNav.bind("click touchstart",function(a){a.preventDefault()})},update:function(){var b=e+"disabled";1===a.pagingCount?a.directionNav.addClass(b):c.animationLoop?a.directionNav.removeClass(b):0===a.animatingTo?a.directionNav.removeClass(b).filter("."+e+"prev").addClass(b):a.animatingTo===a.last?a.directionNav.removeClass(b).filter("."+e+"next").addClass(b):a.directionNav.removeClass(b)}},pausePlay:{setup:function(){var b=d('
    ');a.controlsContainer? 22 | (a.controlsContainer.append(b),a.pausePlay=d("."+e+"pauseplay a",a.controlsContainer)):(a.append(b),a.pausePlay=d("."+e+"pauseplay a",a));f.pausePlay.update(c.slideshow?e+"pause":e+"play");a.pausePlay.bind(u,function(b){b.preventDefault();d(this).hasClass(e+"pause")?(a.manualPause=!0,a.manualPlay=!1,a.pause()):(a.manualPause=!1,a.manualPlay=!0,a.play())});q&&a.pausePlay.bind("click touchstart",function(a){a.preventDefault()})},update:function(b){"play"===b?a.pausePlay.removeClass(e+"pause").addClass(e+ 23 | "play").text(c.playText):a.pausePlay.removeClass(e+"play").addClass(e+"pause").text(c.pauseText)}},touch:function(){function b(b){k=m?d-b.touches[0].pageY:d-b.touches[0].pageX;q=m?Math.abs(k)k||a.currentSlide===a.last&&0Number(new Date)-l&&50r/2)?a.flexAnimate(m,c.pauseOnAction):s||a.flexAnimate(a.currentSlide,c.pauseOnAction,!0)}j.removeEventListener("touchend",g,!1);f=k=e=d=null}var d,e,f,r,k,l,q=!1;j.addEventListener("touchstart",function(k){a.animating?k.preventDefault():1===k.touches.length&&(a.pause(),r=m?a.h:a.w,l=Number(new Date),f=h&&n&&a.animatingTo=== 25 | a.last?0:h&&n?a.limit-(a.itemW+c.itemMargin)*a.move*a.animatingTo:h&&a.currentSlide===a.last?a.limit:h?(a.itemW+c.itemMargin)*a.move*a.currentSlide:n?(a.last-a.currentSlide+a.cloneOffset)*r:(a.currentSlide+a.cloneOffset)*r,d=m?k.touches[0].pageY:k.touches[0].pageX,e=m?k.touches[0].pageX:k.touches[0].pageY,j.addEventListener("touchmove",b,!1),j.addEventListener("touchend",g,!1))},!1)},resize:function(){!a.animating&&a.is(":visible")&&(h||a.doMath(),s?f.smoothHeight():h?(a.slides.width(a.computedW), 26 | a.update(a.pagingCount),a.setProps()):m?(a.viewport.height(a.h),a.setProps(a.h,"setTotal")):(c.smoothHeight&&f.smoothHeight(),a.newSlides.width(a.computedW),a.setProps(a.computedW,"setTotal")))},smoothHeight:function(b){if(!m||s){var c=s?a:a.viewport;b?c.animate({height:a.slides.eq(a.animatingTo).height()},b):c.height(a.slides.eq(a.animatingTo).height())}},sync:function(b){var g=d(c.sync).data("flexslider"),e=a.animatingTo;switch(b){case "animate":g.flexAnimate(e,c.pauseOnAction,!1,!0);break;case "play":!g.playing&& 27 | !g.asNav&&g.play();break;case "pause":g.pause()}}};a.flexAnimate=function(b,g,p,j,l){t&&1===a.pagingCount&&(a.direction=a.currentItema.w?2*c.itemMargin:c.itemMargin,b=(a.itemW+b)*a.move*a.animatingTo, 30 | b=b>a.limit&&1!==a.visible?a.limit:b):b=0===a.currentSlide&&b===a.count-1&&c.animationLoop&&"next"!==a.direction?n?(a.count+a.cloneOffset)*r:0:a.currentSlide===a.last&&0===b&&c.animationLoop&&"prev"!==a.direction?n?0:(a.count+1)*r:n?(a.count-1-b+a.cloneOffset)*r:(b+a.cloneOffset)*r;a.setProps(b,"",c.animationSpeed);if(a.transitions){if(!c.animationLoop||!a.atEnd)a.animating=!1,a.currentSlide=a.animatingTo;a.container.unbind("webkitTransitionEnd transitionend");a.container.bind("webkitTransitionEnd transitionend", 31 | function(){a.wrapup(r)})}else a.container.animate(a.args,c.animationSpeed,c.easing,function(){a.wrapup(r)})}c.smoothHeight&&f.smoothHeight(c.animationSpeed)}};a.wrapup=function(b){!s&&!h&&(0===a.currentSlide&&a.animatingTo===a.last&&c.animationLoop?a.setProps(b,"jumpEnd"):a.currentSlide===a.last&&(0===a.animatingTo&&c.animationLoop)&&a.setProps(b,"jumpStart"));a.animating=!1;a.currentSlide=a.animatingTo;c.after(a)};a.animateSlides=function(){a.animating||a.flexAnimate(a.getTarget("next"))};a.pause= 32 | function(){clearInterval(a.animatedSlides);a.playing=!1;c.pausePlay&&f.pausePlay.update("play");a.syncExists&&f.sync("pause")};a.play=function(){a.animatedSlides=setInterval(a.animateSlides,c.slideshowSpeed);a.playing=!0;c.pausePlay&&f.pausePlay.update("pause");a.syncExists&&f.sync("play")};a.canAdvance=function(b,g){var d=t?a.pagingCount-1:a.last;return g?!0:t&&a.currentItem===a.count-1&&0===b&&"prev"===a.direction?!0:t&&0===a.currentItem&&b===a.pagingCount-1&&"next"!==a.direction?!1:b===a.currentSlide&& 33 | !t?!1:c.animationLoop?!0:a.atEnd&&0===a.currentSlide&&b===d&&"next"!==a.direction?!1:a.atEnd&&a.currentSlide===d&&0===b&&"next"===a.direction?!1:!0};a.getTarget=function(b){a.direction=b;return"next"===b?a.currentSlide===a.last?0:a.currentSlide+1:0===a.currentSlide?a.last:a.currentSlide-1};a.setProps=function(b,g,d){var e,f=b?b:(a.itemW+c.itemMargin)*a.move*a.animatingTo;e=-1*function(){if(h)return"setTouch"===g?b:n&&a.animatingTo===a.last?0:n?a.limit-(a.itemW+c.itemMargin)*a.move*a.animatingTo:a.animatingTo=== 34 | a.last?a.limit:f;switch(g){case "setTotal":return n?(a.count-1-a.currentSlide+a.cloneOffset)*b:(a.currentSlide+a.cloneOffset)*b;case "setTouch":return b;case "jumpEnd":return n?b:a.count*b;case "jumpStart":return n?a.count*b:b;default:return b}}()+"px";a.transitions&&(e=m?"translate3d(0,"+e+",0)":"translate3d("+e+",0,0)",d=void 0!==d?d/1E3+"s":"0s",a.container.css("-"+a.pfx+"-transition-duration",d));a.args[a.prop]=e;(a.transitions||void 0===d)&&a.container.css(a.args)};a.setup=function(b){if(s)a.slides.css({width:"100%", 35 | "float":"left",marginRight:"-100%",position:"relative"}),"init"===b&&(q?a.slides.css({opacity:0,display:"block",webkitTransition:"opacity "+c.animationSpeed/1E3+"s ease",zIndex:1}).eq(a.currentSlide).css({opacity:1,zIndex:2}):a.slides.eq(a.currentSlide).fadeIn(c.animationSpeed,c.easing)),c.smoothHeight&&f.smoothHeight();else{var g,p;"init"===b&&(a.viewport=d('
    ').css({overflow:"hidden",position:"relative"}).appendTo(a).append(a.container),a.cloneCount=0,a.cloneOffset= 36 | 0,n&&(p=d.makeArray(a.slides).reverse(),a.slides=d(p),a.container.empty().append(a.slides)));c.animationLoop&&!h&&(a.cloneCount=2,a.cloneOffset=1,"init"!==b&&a.container.find(".clone").remove(),a.container.append(a.slides.first().clone().addClass("clone")).prepend(a.slides.last().clone().addClass("clone")));a.newSlides=d(c.selector,a);g=n?a.count-1-a.currentSlide+a.cloneOffset:a.currentSlide+a.cloneOffset;m&&!h?(a.container.height(200*(a.count+a.cloneCount)+"%").css("position","absolute").width("100%"), 37 | setTimeout(function(){a.newSlides.css({display:"block"});a.doMath();a.viewport.height(a.h);a.setProps(g*a.h,"init")},"init"===b?100:0)):(a.container.width(200*(a.count+a.cloneCount)+"%"),a.setProps(g*a.computedW,"init"),setTimeout(function(){a.doMath();a.newSlides.css({width:a.computedW,"float":"left",display:"block"});c.smoothHeight&&f.smoothHeight()},"init"===b?100:0))}h||a.slides.removeClass(e+"active-slide").eq(a.currentSlide).addClass(e+"active-slide")};a.doMath=function(){var b=a.slides.first(), 38 | d=c.itemMargin,e=c.minItems,f=c.maxItems;a.w=a.width();a.h=b.height();a.boxPadding=b.outerWidth()-b.width();h?(a.itemT=c.itemWidth+d,a.minW=e?e*a.itemT:a.w,a.maxW=f?f*a.itemT:a.w,a.itemW=a.minW>a.w?(a.w-d*e)/e:a.maxWa.w?a.w:c.itemWidth,a.visible=Math.floor(a.w/(a.itemW+d)),a.move=0a.w?(a.itemW+2*d)*a.count-a.w- 39 | d:(a.itemW+d)*a.count-a.w-d):(a.itemW=a.w,a.pagingCount=a.count,a.last=a.count-1);a.computedW=a.itemW-a.boxPadding};a.update=function(b,d){a.doMath();h||(ba.controlNav.length)f.controlNav.update("add");else if("remove"===d&&!h||a.pagingCounta.last&&(a.currentSlide-=1,a.animatingTo-=1), 40 | f.controlNav.update("remove",a.last);c.directionNav&&f.directionNav.update()};a.addSlide=function(b,e){var f=d(b);a.count+=1;a.last=a.count-1;m&&n?void 0!==e?a.slides.eq(a.count-e).after(f):a.container.prepend(f):void 0!==e?a.slides.eq(e).before(f):a.container.append(f);a.update(e,"add");a.slides=d(c.selector+":not(.clone)",a);a.setup();c.added(a)};a.removeSlide=function(b){var e=isNaN(b)?a.slides.index(d(b)):b;a.count-=1;a.last=a.count-1;isNaN(b)?d(b,a.slides).remove():m&&n?a.slides.eq(a.last).remove(): 41 | a.slides.eq(b).remove();a.doMath();a.update(e,"remove");a.slides=d(c.selector+":not(.clone)",a);a.setup();c.removed(a)};f.init()};d.flexslider.defaults={namespace:"flex-",selector:".slides > li",animation:"fade",easing:"swing",direction:"horizontal",reverse:!1,animationLoop:!0,smoothHeight:!1,startAt:0,slideshow:!0,slideshowSpeed:7E3,animationSpeed:600,initDelay:0,randomize:!1,pauseOnAction:!0,pauseOnHover:!1,useCSS:!0,touch:!0,video:!1,controlNav:!0,directionNav:!0,prevText:"Previous",nextText:"Next", 42 | keyboard:!0,multipleKeyboard:!1,mousewheel:!1,pausePlay:!1,pauseText:"Pause",playText:"Play",controlsContainer:"",manualControls:"",sync:"",asNavFor:"",itemWidth:0,itemMargin:0,minItems:0,maxItems:0,move:0,start:function(){},before:function(){},after:function(){},end:function(){},added:function(){},removed:function(){}};d.fn.flexslider=function(j){void 0===j&&(j={});if("object"===typeof j)return this.each(function(){var a=d(this),c=a.find(j.selector?j.selector:".slides > li");1===c.length?(c.fadeIn(400), 43 | j.start&&j.start(a)):void 0==a.data("flexslider")&&new d.flexslider(this,j)});var l=d(this).data("flexslider");switch(j){case "play":l.play();break;case "pause":l.pause();break;case "next":l.flexAnimate(l.getTarget("next"),!0);break;case "prev":case "previous":l.flexAnimate(l.getTarget("prev"),!0);break;default:"number"===typeof j&&l.flexAnimate(j,!0)}}})(jQuery); -------------------------------------------------------------------------------- /WebRoot/js/My97DatePicker/calendar.js: -------------------------------------------------------------------------------- 1 | /* 2 | * My97 DatePicker 4.8 Beta1 3 | * License: http://www.my97.net/dp/license.asp 4 | */ 5 | 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($5E){6E.3c.84("6a",l($){k(!$)h.2c();t $});6E.3c.6Z("6n",l(){o $=h.6k;3m($.56!=1)$=$.7b;t $});79.3c.3k=l($,b){o A=$.1l(/67/,"");b.6O=l($){5G.1X=$;t b()};h.76(A,b.6O,1n)}}l 6c(){$c=h;h.3l=[];$d=1O.78("x");$d.1d="4b";$d.1P="<1u Y=42><1u Y=42><1x 2x=0 2q=0 2s=0><1j><18 7d=2><4n 1D=7a>&4c;<1u Y=7c 4d=2><1u 1g=\\":\\" Y=6p 6j><1u Y=6d 4d=2><1u 1g=\\":\\" Y=6p 6j><1u Y=6d 4d=2><18><1K 1D=6W><1j><18><1K 1D=6X><1u Y=4l 1D=7G 3h=1K><1u Y=4l 1D=7F 3h=1K><1u Y=4l 1D=7I 3h=1K>";6J($d,l(){3w()});A();h.6e();$f.20=[1O,$d.1J,$d.1w,$d.3e,$d.3G,$d.43,$d.2H,$d.2f,$d.1R];1b(o B=0;B<$f.20.u;B++){o b=$f.20[B];b.34=B==$f.20.u-1?$f.20[1]:$f.20[B+1];$f.3k(b,"53",4K)}$();4k("y,M,H,m,s");$d.6f.1s=l(){58(1)};$d.6i.1s=l(){58(-1)};$d.54.1s=l(){k($d.1G.1c.2e!="6P"){$c.4D();3J($d.1G)}q 1m($d.1G)};1O.5J.4j($d);l A(){o b=$("a");1p=$("x"),1N=$("1u"),4i=$("1K"),6h=$("4n");$d.3Z=b[0];$d.3X=b[1];$d.3M=b[3];$d.3W=b[2];$d.3F=1p[9];$d.1J=1N[0];$d.1w=1N[1];$d.4h=1p[0];$d.3x=1p[4];$d.35=1p[6];$d.1G=1p[10];$d.3i=1p[11];$d.2V=1p[12];$d.64=1p[13];$d.65=1p[14];$d.62=1p[15];$d.54=1p[16];$d.3r=1p[17];$d.3e=1N[2];$d.3G=1N[4];$d.43=1N[6];$d.2H=1N[7];$d.2f=1N[8];$d.1R=1N[9];$d.6f=4i[0];$d.6i=4i[1];$d.6l=6h[0];l $($){t $d.5L($)}}l $(){$d.3Z.1s=l(){$1L=$1L<=0?$1L-1:-1;k($1L%5==0){$d.1w.24();t}$d.1w.1g=$n.y-1;$d.1w.2u()};$d.3X.1s=l(){$n.2n("M",-1);$d.1J.2u()};$d.3M.1s=l(){$n.2n("M",1);$d.1J.2u()};$d.3W.1s=l(){$1L=$1L>=0?$1L+1:1;k($1L%5==0){$d.1w.24();t}$d.1w.1g=$n.y+1;$d.1w.2u()}}}6c.3c={6e:l(){$1L=0;$f.5X=h;k($f.3K&&$f.z.3K!=1i){$f.z.3K=1a;$f.z.4y()}h.5w();$n=h.6H=19 1C();$1z=19 1C();$1v=h.2w=19 1C();h.1B=h.2P($f.1B);h.3o=$f.3o==1i?($f.Z.28&&$f.Z.28?1n:1a):$f.3o;$f.2m=$f.2m==1i?($f.4L&&$f.Z.d?1n:1a):$f.2m;h.4S=h.3j("7H");h.5D=h.3j("7E");h.5O=h.3j("7B");h.5Q=h.3j("7A");h.22=h.3t($f.22,$f.22!=$f.6r?$f.1Q:$f.2N,$f.6r);h.1U=h.3t($f.1U,$f.1U!=$f.6q?$f.1Q:$f.2N,$f.6q);k(h.22.2t(h.1U)>0)$f.44=$1k.7D;k(h.1T()){h.5U();h.3P=$f.z[$f.1y]}q h.3p(1n,2);4f($n);$d.6l.1P=$1k.7C;$d.2H.1g=$1k.7P;$d.2f.1g=$1k.7O;$d.1R.1g=$1k.7R;$d.1R.25=!$c.1t($1v);h.5x();h.5g();k($f.44)7N($f.44);h.47();k($f.z.56==1&&$f.z["3H"]===6K){$f.3k($f.z,"53",4K);$f.3k($f.z,"2u",l(){k($f&&$f.1M.1c.2e=="2r"){$c.3L();k($f.5X.3P!=$f.z[$f.1y]&&$f.z.7J)55($f.z,"7M")}});$f.z["3H"]=1n}$c.1f=$f.z;3w()},5U:l(){o b=h.2I();k(b!=0){o $;k(b>0)$=h.1U;q $=h.22;k($f.Z.3T){$n.y=$.y;$n.M=$.M;$n.d=$.d}k($f.Z.28){$n.H=$.H;$n.m=$.m;$n.s=$.s}}},2O:l(J,C,Q,E,B,G,F,K,L){o $;k(J&&J.1T)$=J;q{$=19 1C();k(J!=""){C=C||$f.1B;o H,P=0,O,A=/3g|2l|3b|y|2v|2W|3N|M|1M|d|%2h|51|H|52|m|4Z|s|2X|D|4g|W|w/g,b=C.3a(A);A.2E=0;k(L)O=J.49(/\\W+/);q{o D=0,M="^";3m((O=A.33(C))!==1i){k(D>=0)M+=C.1E(D,O.3Y);D=A.2E;3f(O[0]){1e"3g":M+="(\\\\d{4})";1h;1e"2l":M+="(\\\\d{3})";1h;1e"2v":1e"2W":1e"2X":1e"D":M+="(\\\\D+)";1h;61:M+="(\\\\d\\\\d?)";1h}}M+=".*$";O=19 4e(M).33(J);P=1}k(O){1b(H=0;H=0){A=A.1l(/%2h/g,"0");$.d=0;$.M=2i($.M)+1}$.1S()}t $},1T:l(){o b,$;k($f.7k||($f.6z!=""&&$f.z[$f.1y]=="")){b=h.2P($f.6z);$=$f.1Q}q{b=$f.z[$f.1y];$=h.1B}$n.2a(h.2O(b,$));k(b!=""){o A=1;k($f.Z.3T&&!h.4s($n)){$n.y=$1z.y;$n.M=$1z.M;$n.d=$1z.d;A=0}k($f.Z.28&&!h.4q($n)){$n.H=$1z.H;$n.m=$1z.m;$n.s=$1z.s;A=0}t A&&h.1t($n)}t 1},4s:l($){k($.y!=1i)$=3d($.y,4)+"-"+$.M+"-"+$.d;t $.3a(/^((\\d{2}(([6t][7z])|([6s][26]))[\\-\\/\\s]?((((0?[6v])|(1[6u]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[6A])))|(((0?[6G])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])))))|(\\d{2}(([6t][7y])|([6s][7v]))[\\-\\/\\s]?((((0?[6v])|(1[6u]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[6A])))|(((0?[6G])|(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])))))?$/)},4q:l($){k($.H!=1i)$=$.H+":"+$.m+":"+$.s;t $.3a(/^([0-9]|([0-1][0-9])|([2][0-3])):([0-9]|([0-5][0-9])):([0-9]|([0-5][0-9]))$/)},2I:l($,A){$=$||$n;o b=$.2t(h.22,A);k(b>0){b=$.2t(h.1U,A);k(b<0)b=0}t b},1t:l($,A,B){A=A||$f.Z.3O;o b=h.2I($,A);k(b==0){b=1;k(A=="d"&&B==1i)B=2B.5A((19 1F($.y,$.M-1,$.d).1W()-$f.41+7)%7);b=!h.5I(B)&&!h.5q($,A)}q b=0;t b},6B:l(){o b=$f.z,A=h,$=$f.z[$f.1y];k($f.4U>=0&&$f.4U<=2&&$!=1i){k($!="")A.2w.2a(A.2O($,A.1B));k($==""||(A.4s(A.2w)&&A.4q(A.2w)&&A.1t(A.2w))){k($!=""){A.6H.2a(A.2w);A.2p()}q A.3E("")}q t 1n}t 1a},3L:l($){3w();k(h.6B()){h.3p(1a);$f.1m()}q{k($){2R($);h.3p(1n,2)}q h.3p(1n);$f.1Y()}},3s:l(){o E,C,D,K,A,H=19 2C(),F=$1k.5l,G=$f.41,I="",$="",b=19 1C($n.y,$n.M,$n.d,0,0,0),J=b.y,B=b.M;A=1-19 1F(J,B-1,1).1W()+G;k(A>1)A-=7;H.a("<1x Y=5F 2L=2F% 2s=0 2x=0 2q=0>");H.a("<1j Y=5H 4p=5p>");k($f.5b)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.1T(J,B,C++);b.1S();k(b.M==B){K=1a;k(b.2t($1v,"d")==0)I="7u";q k(b.2t($1z,"d")==0)I="7t";q I=($f.5a&&(0==(G+D)%7||6==(G+D)%7)?"7r":"7s");$=($f.5a&&(0==(G+D)%7||6==(G+D)%7)?"7w":"7x")}q k($f.5K){K=1a;I="7l";$="7i"}q K=1n;k($f.5b&&D==0&&(E<4||K))H.a("<18 Y=7o>"+4B(b,$f.41==0?1:0)+"");H.a("<18 ");k(K){k(h.1t(b,"d",D)){k(h.5N(2B.5A((19 1F(b.y,b.M-1,b.d).1W()-$f.41+7)%7))||h.5r(b))I="7K";H.a("1s=\\"3q("+b.y+","+b.M+","+b.d+");\\" ");H.a("2A=\\"h.1d=\'"+$+"\'\\" ");H.a("2y=\\"h.1d=\'"+I+"\'\\" ")}q I="7Q";H.a("Y="+I);H.a(">"+b.d+"")}q H.a(">")}H.a("")}H.a("");t H.j()},5q:l(b,A){o $=h.4H(b,h.4S,A);t(h.4S&&$f.5e)?!$:$},5I:l($){t h.4I($,h.5D)},5r:l($){t h.4H($,h.5O)},5N:l($){t h.4I($,h.5Q)},4H:l($,B,A){o b=A=="d"?$f.4a:$f.1Q;t B?B.4o(h.3y(b,$)):0},4I:l(b,$){t $?$.4o(b):0},2U:l(p,c,r,e,2d){o s=19 2C(),4t=2d?"r"+p:p;5k=$n[p];s.a("<1x 2x=0 2q=3 2s=0");1b(o i=0;i");1b(o j=0;j"+(p=="M"?$1k.2g[$n[p]-1]:$n[p])+"")}s.a("")}s.a("");$n[p]=5k;t s.j()},4z:l($,b){k($){o A=$.6V;k($66)A=$.7S().2z;b.1c.2z=A}},8L:l($){h.4z($,$d.3x);$d.3x.1P=h.2U("M",2,6,"i+j*6+1",$==$d.2k)},4x:l(b,A){o $=19 2C();A=2M(A,$n.y-5);$.a(h.2U("y",2,5,A+"+i+j*5",b==$d.2o));$.a("<1x 2x=0 2q=3 2s=0 4p=5p><1j><18 ");$.a(h.22.y\\8R<18 Y=\'1A\' 2A=\\"h.1d=\'2Z\'\\" 2y=\\"h.1d=\'1A\'\\" 3U=\\"1m($d.35);$d.1w.4y();\\">\\5u<18 ");$.a(h.1U.y>A+10?"Y=\'1A\' 2A=\\"h.1d=\'2Z\'\\" 2y=\\"h.1d=\'1A\'\\" 3U=\'k(1X.2c)1X.2c();1X.4m=1a;$c.4x(0,"+(A+10)+")\'":"Y=\'4u\'");$.a(">\\8A");h.4z(b,$d.35);$d.35.1P=$.j()},3V:l(A,b,$){$d[A+"D"].1P=h.2U(A,6,b,$)},8z:l(){h.3V("H",4,"i * 6 + j")},8q:l(){h.3V("m",2,"i * 30 + j * 5")},8x:l(){h.3V("s",1,"j * 10")},4D:l(A){h.6D();o b=h.3l,C=b.1c,$=19 2C();$.a("<1x Y=5F 2L=2F% 2b=2F% 2s=0 2x=0 2q=0>");$.a("<1j Y=5H><18>"+$1k.8C+"");k(!A)$.a("\\5u");$.a("");1b(o B=0;B<18 1c=\'4F-4p:2z\' 2Q=\'2Q\' Y=\'1A\' 2A=\\"h.1d=\'2Z\'\\" 2y=\\"h.1d=\'1A\'\\" 1s=\\"");$.a("3q("+b[B].y+", "+b[B].M+", "+b[B].d+","+b[B].H+","+b[B].m+","+b[B].s+");\\">");$.a("&4c;"+h.3y(1i,b[B]));$.a("")}q $.a("<1j><18 Y=\'1A\'>&4c;");$.a("");$d.1G.1P=$.j()},5w:l(){$(/w/);$(/4g|W/);$(/2X|D/);$(/3g|2l|3b|y/);$(/2v|2W|3N|M/);$(/1M|d/);$(/51|H/);$(/52|m/);$(/4Z|s/);$f.Z.3T=($f.Z.y||$f.Z.M||$f.Z.d)?1a:1n;$f.Z.28=($f.Z.H||$f.Z.m||$f.Z.s)?1a:1n;$f.2N=$f.2N.1l(/%1F/,$f.4a).1l(/%8E/,$f.5t);k($f.Z.3T){k($f.Z.28)$f.1Q=$f.2N;q $f.1Q=$f.4a}q $f.1Q=$f.5t;l $(b){o $=(b+"").4X(1,2);$f.Z[$]=b.33($f.1B)?($f.Z.3O=$,1a):1n}},5x:l(){o $=0;$f.Z.y?($=1,1Y($d.1w,$d.3Z,$d.3W)):1m($d.1w,$d.3Z,$d.3W);$f.Z.M?($=1,1Y($d.1J,$d.3X,$d.3M)):1m($d.1J,$d.3X,$d.3M);$?1Y($d.4h):1m($d.4h);k($f.Z.28){1Y($d.2V);3v($d.3e,$f.Z.H);3v($d.3G,$f.Z.m);3v($d.43,$f.Z.s)}q 1m($d.2V);2S($d.2H,$f.5B);2S($d.2f,$f.5v);2S($d.1R,$f.4L);2S($d.54,!$f.5M&&$f.Z.d&&$f.8F);k($f.5m||!($f.5B||$f.5v||$f.4L))1m($d.3r);q 1Y($d.3r)},3p:l(B,D){o A=$f.z,b=$5E?"Y":"1d";k(B)C(A);q{k(D==1i)D=$f.4U;3f(D){1e 0:k(8D($1k.8r)){A[$f.1y]=h.3P;C(A)}q $(A);1h;1e 1:A[$f.1y]=h.3P;C(A);1h;1e 2:$(A);1h}}l C(A){o B=A.1d;k(B){o $=B.1l(/5o/g,"");k(B!=$)A.5n(b,$)}}l $($){$.5n(b,$.1d+" 5o")}},1V:l(D,b,$){$=$||$1v;o H,C=[D+D,D],E,A=$[D],F=l($){t 3d(A,$.u)};3f(D){1e"w":A=1W($);1h;1e"D":o G=1W($)+1;F=l($){t $.u==2?$1k.8s[G]:$1k.5l[G]};1h;1e"W":A=4B($);1h;1e"y":C=["3g","2l","3b","y"];b=b||C[0];F=l(b){t 3d((b.u<4)?(b.u<3?$.y%2F:($.y+5j-$f.5f)%8p):A,b.u)};1h;1e"M":C=["2v","2W","3N","M"];F=l($){t($.u==4)?$1k.5z[A-1]:($.u==3)?$1k.2g[A-1]:3d(A,$.u)};1h}b=b||D+D;k("2K".1q(D)>-1&&D!="y"&&!$f.Z[D])k("8I".1q(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=19 1C();A.2a($);A.d=0;A.M=2i(A.M)+1;A.1S();b=b.1l(/%2h/g,A.d)}o B="8v";1b(o D=0;D<1j><18 5s=5C>");$.a(h.3s());$.a("<18 5s=5C>");$n.2n("M",1);$.a(h.3s());$d.2k=$d.1J.5y(1a);$d.2o=$d.1w.5y(1a);$d.3F.4j($d.2k);$d.3F.4j($d.2o);$d.2k.1g=$1k.2g[$n.M-1];$d.2k["3A"]=$n.M;$d.2o.1g=$n.y;4k("5S,5V");$d.2k.1d=$d.2o.1d="42";$n.2n("M",-1);$.a("");$d.3i.1P=$.j()}q{$d.1d="4b";$d.3i.1P=h.3s()}k(!$f.Z.d||$f.8P){h.4D(1a);3J($d.1G)}q 1m($d.1G);h.5P()},5P:l(){o b=8Q.1O.5L("8S");1b(o C=0;C=B){A+=B;$d.1c.2b=A}q $d.1c.2b=$;b[C].1c.2b=2B.6g(A,$d.36)+"5d"}}$d.1G.1c.2L=$d.3i.5c;$d.1G.1c.2b=$d.3i.36},4P:l(){$n.d=2B.8H(19 1F($n.y,$n.M,0).2G(),$n.d);$1v.2a($n);h.2p();k(!$f.5m)k(h.1t($n)){4r();1m($f.1M)}k($f.5h)29("5h")},5g:l(){$d.2H.1s=l(){k(!29("8K")){$f.z[$f.1y]="";$c.3E("");4r();1m($f.1M);k($f.5i)29("5i")}};$d.1R.1s=l(){3q()};k(h.1t($1z)){$d.2f.25=1n;$d.2f.1s=l(){$n.2a($1z);3q()}}q $d.2f.25=1a},6D:l(){o H,G,A,F,C=[],$=5,E=$f.6C.u,b=$f.Z.3O;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=3z(1H,0,59);k($1v[p]!=1H&&!29(p+"80")){o 6M="21(\\""+p+"\\","+1H+")",3D=$c.2I();k(3D==0)2T(6M);q k(3D<0)4Y($c.22);q k(3D>0)4Y($c.1U);$d.1R.25=!$c.1t($1v);k("7X".1q(p)>=0)$c.47();29(p+"7Y")}l 4Y($){4f($c.1t($)?$:$1v)}}l 4f($){21("y",$.y);21("M",$.M);21("d",$.d);21("H",$.H);21("m",$.m);21("s",$.s)}l 3q(F,B,b,D,C,A){o $=19 1C($n.y,$n.M,$n.d,$n.H,$n.m,$n.s);$n.1T(F,B,b,D,C,A);k(!29("8j")){o E=$.y==F&&$.M==B&&$.d==b;k(!E&&3n.u!=0){c("y",F);c("M",B);c("d",b);$c.1f=$f.z;k($f.2m)$c.2p()}k($c.3o||E||3n.u==0)$c.4P()}q $n=$}l 29($){o b;k($f[$])b=$f[$].4M($f.z,$f);t b}l 21(b,$){k($==1i)$=$n[b];$1v[b]=$n[b]=$;k("8k".1q(b)>=0)$d[b+"I"].1g=$;k(b=="M"){$d.1J["3A"]=$;$d.1J.1g=$1k.2g[$-1]}}l 3z(b,$,A){k(b<$)b=$;q k(b>A)b=A;t b}l 6J($,b){$f.3k($,"53",l(){o $=1X,A=($.4O==6K)?$.4J:$.4O;k(A==9)b()})}l 3d($,b){$=$+"";3m($.u=0?C:5;1b(o D=0;D<=C;D++){B=A.1I(D);b=h[B]-$[B];k(b>0)t 1;q k(b<0)t-1}t 0},1S:l(){o $=19 1F(h.y,h.M-1,h.d,h.H,h.m,h.s);h.y=$.4R();h.M=$.4Q()+1;h.d=$.2G();h.H=$.4T();h.m=$.4W();h.s=$.4V();t!69(h.y)},2n:l(b,$){k("2K".1q(b)>=0){o A=h.d;k(b=="M")h.d=1;h[b]+=$;h.1S();h.d=A}}};l 2i($){t 8h($,10)}l 3B($,b){t 2M(2i($),b)}l 1o($,A,b){t 3B($,2M(A,b))}l 2M($,b){t $==1i||69($)?b:$}l 55(A,$){k($66)A.55("67"+$);q{o b=1O.8i("8n");b.8o($,1a,1a);A.8l(b)}}l 3R($){o A,B,b="y,M,H,m,s,5V,5S".49(",");1b(B=0;B=0?5Y(v):$n[p];k(p=="y"){2d=h==$d.2o;k(2d&&$n.M==12)$n.y-=1}q k(p=="M"){2d=h==$d.2k;k(2d){4E=$1k.2g[$n[p]-1];k(5Z==12)$n.y+=1;$n.2n("M",-1)}k($1v.M==$n.M)h.1g=4E||$1k.2g[$n[p]-1];k(($1v.y!=$n.y))c("y",$n.y)}2T("c(\\""+p+"\\","+$n[p]+")");k(5W!==1a){k(p=="y"||p=="M")h.1d="42";1m($d[p+"D"])}k($f.2m)$c.2p()}l 2R($){k($.2c){$.2c();$.8m()}q{$.4m=1a;$.6a=1n}k($6b)$.4J=0}l 4k($){o A=$.49(",");1b(o B=0;B=8c&&Q<=89)Q-=48;k($f.8a&&4C){k(!H.34){H.34=$f.20[1];$c.1f=$f.z}k(H==$f.z)$c.1f=$f.z;k(Q==27)k(H==$f.z){$c.3L();t}q $f.z.24();k(Q>=37&&Q<=40){o U;k($c.1f==$f.z||$c.1f==$d.1R)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.1S();c("y",$n["y"]);c("M",$n["M"]);c("d",$n[U]);2R(M);t}q{U=$f.Z.3O;$d[U+"I"].24()}U=U||3R($c.1f);k(U){k(Q==38||Q==39)$n[U]+=1;q $n[U]-=1;$n.1S();$c.1f.1g=$n[U];3Q.4M($c.1f,1a);$c.1f.4w()}}q k(Q==9){o D=H.34;1b(o R=0;R<$f.20.u;R++)k(D.25==1a||D.36==0)D=D.34;q 1h;k($c.1f!=D){$c.1f=D;D.24()}}q k(Q==13){3Q.4M($c.1f);k($c.1f.3h=="1K")$c.1f.8f();q $c.4P();$c.1f=$f.z}}q k(Q==9&&H==$f.z)$c.3L();k($f.8g&&!$6b&&!$f.3K&&$c.1f==$f.z&&(Q>=48&&Q<=57)){o T=$f.z,S=T.1g,F=E(T),I={1Z:"",1r:[]},R=0,K,N=0,X=0,O=0,J,b=/3g|2l|3b|y|3N|M|1M|d|%2h|51|H|52|m|4Z|s|4g|W|w/g,L=$f.1B.3a(b),B,A,$,V,W,G,J=0;k(S!=""){O=S.3a(/[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.1E(0,F)+8d.8e(Q)+S.1E(F+O);F++;1b(R=0;R=0){S+=$f.1B.1E(N,X);k(F>=N+J&&F<=X+J)F+=X-N}N=b.2E;G=N-X;B=I.1Z.1E(0,G);A=K[0].1I(0);$=2i(B.1I(0));k(I.1Z.u>1){V=I.1Z.1I(1);W=$*10+2i(V)}q{V="";W=$}k(I.1r[X+1]||A=="M"&&W>12||A=="d"&&W>31||A=="H"&&W>23||"6o".1q(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.1Z=I.1Z.1E(G);k(I.1Z=="")1h}T.1g=S;P(T,F);2R(M)}k(4C&&$c.1f!=$f.z&&!((Q>=48&&Q<=57)||Q==8||Q==46))2R(M);l E(A){o b=0;k($f.4A.1O.6Q){o B=$f.4A.1O.6Q.85(),$=B.4F.u;B.6F("4v",-A.1g.u);b=B.4F.u-$}q k(A.4G||A.4G=="0")b=A.4G;t b}l P(b,A){k(b.6x){b.24();b.6x(A,A)}q k(b.6y){o $=b.6y();$.8M(1a);$.8N("4v",A);$.6F("4v",A);$.4w()}}}1O.8t=1',62,551,'|||||||||||_||||dp||this|||if|function||dt|var||else|||return|length|||div||el|||||||||||||||||||||||||class|has|||||||||td|new|true|for|style|className|case|currFocus|value|break|null|tr|lang|replace|hide|false|pInt3|divs|indexOf|arr|onclick|checkValid|input|sdt|yI|table|elProp|tdt|menu|dateFmt|DPDate|id|substring|Date|qsDivSel|pv|charAt|MI|button|ny|dd|ipts|document|innerHTML|realFmt|okI|refresh|loadDate|maxDate|getP|getDay|event|show|str|focusArr|sv|minDate||focus|disabled|||st|callFunc|loadFromDate|height|preventDefault|isR|display|todayI|aMonStr|ld|pInt|9700|rMI|yyy|autoUpdateOnChanged|attr|ryI|update|cellpadding|none|border|compareWith|onblur|MMMM|date|cellspacing|onmouseout|left|onmouseover|Math|sb|tmpEval|lastIndex|100|getDate|clearI|checkRange|float|yMdHms|width|rtn|realFullFmt|splitDate|doExp|nowrap|_cancelKey|shorH|eval|_f|tDiv|MMM|DD|menuSel|menuOn||||exec|nextCtrl|yD|offsetHeight||||match|yy|prototype|doStr|HI|switch|yyyy|type|dDiv|_initRe|attachEvent|QS|while|arguments|autoPickDate|mark|day_Click|bDiv|_fd|doCustomDate|setDisp|disHMS|hideSel|MD|getDateStr|makeInRange|realValue|pInt2|ps|rv|setRealValue|rMD|mI|My97Mark|toLowerCase|showB|readOnly|close|rightImg|MM|minUnit|oldValue|_blur|_foundInput|navImg|sd|onmousedown|_fHMS|navRightImg|leftImg|index|navLeftImg||firstDayOfWeek|yminput|sI|errMsg|||draw||split|realDateFmt|WdateDiv|nbsp|maxlength|RegExp|_setAll|WW|titleDiv|btns|appendChild|_inputBindEvent|dpButton|cancelBubble|span|test|align|isTime|elFocus|isDate|fp|invalidMenu|character|select|_fy|blur|_fMyPos|win|getWeek|isShow|_fillQS|mStr|text|selectionStart|testDate|testDay|keyCode|_tab|isShowOK|call|getNewDateStr|which|pickDate|getMonth|getFullYear|ddateRe|getHours|errDealMode|getSeconds|getMinutes|slice|_setFrom|ss||HH|mm|onkeydown|qsDiv|fireEvent|nodeType||updownEvent||highLineWeekDay|isShowWeek|offsetWidth|px|opposite|yearOffset|initBtn|onpicked|oncleared|2000|bak|aWeekStr|eCont|setAttribute|WdateFmtErr|center|testDisDate|testSpeDate|valign|realTimeFmt|xd7|isShowToday|_dealFmt|initShowAndHide|cloneNode|aLongMonStr|abs|isShowClear|top|ddayRe|FF|WdayTable|window|MTitle|testDisDay|body|isShowOthers|getElementsByTagName|doubleCalendar|testSpeDay|sdateRe|autoSize|sdayRe|right|rM|yminputfocus|_makeDateInRange|ry|showDiv|cal|Number|oldv||default|sD|nodeName|HD|mD|IE|on|coverDate|isNaN|returnValue|OPERA|My97DP|tE|init|upButton|max|spans|downButton|readonly|target|timeSpan|_focus|srcElement|ms|tm|defMaxDate|defMinDate|13579|02468|02|13578|setDate|setSelectionRange|createTextRange|startDate|01|checkAndUpdate|quickSel|initQS|Event|moveStart|469|newdate|hidden|attachTabEvent|undefined|re|func|valueOf|_ieEmuEventHandler|block|selection|NavImgll|YMenu|dpTitle|NavImgl|offsetLeft|dpTimeUp|dpTimeDown|MMenu|__defineGetter__|dpQS|NavImgrr|position|dpTime|hhMenu|overflow|addEventListener|absolute|createElement|HTMLElement|dpTimeStr|parentNode|tB|rowspan|NavImgr|mmMenu|ssMenu|dpControl|WotherDayOn|object|alwaysUseStartDate|WotherDay|typeof|substr|Wweek|Function|vel|Wwday|Wday|Wtoday|Wselday|01345789|WwdayOn|WdayOn|1235679|048|specialDays|specialDates|timeStr|err_1|disabledDays|dpTodayInput|dpClearInput|disabledDates|dpOkInput|onchange|WspecialDay|1900|change|alert|todayStr|clearStr|WinvalidDay|okStr|getBoundingClientRect|round|86400000|whichDayIsfirstWeek|setMonth|yMd|changed|00|changing|textarea|srcEl|try|__defineSetter__|createRange|join|catch|Array|105|enableKeyboard|onfocus|96|String|fromCharCode|click|enableInputMask|parseInt|createEvent|onpicking|yHms|dispatchEvent|stopPropagation|HTMLEvents|initEvent|1000|_fm|errAlertMsg|aLongWeekStr|ready|WdateDiv2|ydHmswW|getNewP|_fs|pointer|_fH|u2192|cursor|quickStr|confirm|Time|qsEnabled|WdayTable2|min|Hms|contentWindow|onclearing|_fM|collapse|moveEnd|scrollHeight|autoShowQS|parent|u2190|iframe'.split('|'),0,{})) -------------------------------------------------------------------------------- /WebRoot/js/Keyboard/jquery.keyboard.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | jQuery UI Virtual Keyboard 3 | Version 1.17.1 minified (MIT License) 4 | Caret code modified from jquery.caret.1.02.js (MIT License) 5 | */ 6 | ;(function(d){d.keyboard=function(c,m){var a=this,e;a.$el=d(c);a.el=c;a.$el.data("keyboard",a);a.init=function(){a.options=e=d.extend(!0,{},d.keyboard.defaultOptions,m);a.shiftActive=a.altActive=a.metaActive=a.sets=a.capsLock=!1;a.lastKeyset=[!1,!1,!1];a.rows=["","-shift","-alt","-alt-shift"];a.acceptedKeys=[];a.mappedKeys={};d('\x3c!--[if lte IE 8]>