//====================================================================================================਀⼀⼀ 嬀툀呎称] jQuery DateTimeMask਀⼀⼀ⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀ 
// [描    述] jQuery DateTimeMask日期掩码插件，它是基于jQuery类库，实现了js脚本于页面的分离。对一个单行਀⼀⼀ऀऀऀ  蜀ⱥ䙧౨惿腓膗馉ᩑ⓿⠀∀椀渀瀀甀琀开椀搀∀⤀⸀䐀愀琀攀吀椀洀攀䴀愀猀欀⠀⤀㬀㄀ﵜ貀蹛葿鹶끛鍳斏ꝑ㙣౒䵶ﵒ麀끛㕳촀e
//			  期掩码控制。在ie6.0和firefox3.0下调试通过。本插件采用配置信息的思想，你可以轻松扩展里面的਀⼀⼀ऀऀऀ  鼀ﵒಀ컿౎⚀ࡻ葝᩶ꅎ㭒醐膗
//----------------------------------------------------------------------------------------------------਀⼀⼀ 嬀尀Տ冀呿] 猫冬	਀⼀⼀ 嬀⁥   ἀ嵧 ㈀　　㠀ⴀ　㈀ⴀ　㐀ऀ 
// [邮    箱] wzmaodong@126.com਀⼀⼀ 嬀尀Տ媀ꉓ嵛 栀琀琀瀀㨀⼀⼀眀稀洀愀漀搀漀渀最⸀挀渀戀氀漀最猀⸀挀漀洀 
//====================================================================================================਀␀⸀昀渀⸀䐀愀琀攀吀椀洀攀䴀愀猀欀 㴀 昀甀渀挀琀椀漀渀⠀猀攀琀琀椀渀最猀⤀笀 
	var options = {਀ऀऀ猀愀昀攀洀漀搀攀氀㨀 琀爀甀攀Ⰰऀऀऀऀऀ⼀⼀褀桛⅑ཪୟ౎仿能粘贴，﵎횀쥢b
		masktype: "3",						//1:yyyy-MM-dd HH:mm:ss 2:yyyy-MM-dd HH:mm 3:yyyy-MM-dd 4:HH:mm 5:HH:mm:ss ਀ऀऀ椀猀渀甀氀氀㨀 昀愀氀猀攀Ⰰऀऀऀऀऀऀ⼀⼀⼀♦桎﶐⾐て 
		lawlessmessage: "你输入的格式错误",	//非法格式的提示信息਀ऀऀ漀渀氀礀挀漀渀琀爀漀氀欀攀礀搀漀眀渀㨀 昀愀氀猀攀Ⰰऀऀऀ⼀⼀ꝓ㙣鍒斏Q
		focuscssname: "",					//获得焦点的样式਀ऀऀ漀氀搀挀氀愀猀猀渀愀洀攀㨀 ∀∀Ⰰऀऀऀऀऀ⼀⼀뀀喋卟䵟葒㝶ཨ_
		isnow: false,਀ऀऀ椀猀洀漀渀琀栀猀琀愀爀琀㨀 昀愀氀猀攀Ⰰ 
		whenfocus:function(){},				//获得焦点时候的回调函数。无返回值。਀ऀऀ眀栀攀渀戀氀甀爀㨀 昀甀渀挀琀椀漀渀⠀⤀笀爀攀琀甀爀渀 琀爀甀攀㬀紀ऀ⼀⼀㄀뭙♓륱ᥥ葐͖ﶌ灑ɥ爰攀琀甀爀渀 琀甀爀攀 栀㪈鵹ᚘ⅙豨ႚ齢᭒狿攀琀甀爀渀 昀愀氀猀攀㨀戀奠到上次的值਀ऀ紀㬀 
	settings = settings || {};਀ऀ␀⸀攀砀琀攀渀搀⠀漀瀀琀椀漀渀猀Ⰰ 猀攀琀琀椀渀最猀⤀㬀 
	return this.each(function(){਀ऀऀ⼀⼀ᴀ쭒ᙙS
		if(options.isnow || options.ismonthstart) this.value = $.DateTimeMask.getDateTime(options);਀ऀऀ␀⠀琀栀椀猀⤀⸀愀琀琀爀⠀∀愀甀琀漀挀漀洀瀀氀攀琀攀∀Ⰰ ∀漀昀昀∀⤀㬀 
		if (options.safemodel) {਀ऀऀऀ椀昀 ⠀␀⸀戀爀漀眀猀攀爀⸀洀猀椀攀⤀ 笀 
				this.ondragenter = function(){return false;};਀ऀऀऀऀ琀栀椀猀⸀漀渀瀀愀猀琀攀 㴀 昀甀渀挀琀椀漀渀⠀⤀笀爀攀琀甀爀渀 昀愀氀猀攀㬀紀㬀 
			}਀ऀऀ紀 
਀ऀऀ␀⠀琀栀椀猀⤀⸀欀攀礀搀漀眀渀⠀昀甀渀挀琀椀漀渀⠀攀瘀攀渀琀⤀笀 
			$.DateTimeMask.KeyDown(this,event,options);਀ऀऀ紀⤀ 
		if (!options.onlycontrolkeydown) {਀ऀऀऀ␀⠀琀栀椀猀⤀⸀昀漀挀甀猀⠀昀甀渀挀琀椀漀渀⠀⤀笀 
				$.DateTimeMask.SetFocus(this,options);਀ऀऀऀऀ漀瀀琀椀漀渀猀⸀眀栀攀渀昀漀挀甀猀⠀⤀㬀 
			});਀ऀऀऀ␀⠀琀栀椀猀⤀⸀戀氀甀爀⠀昀甀渀挀琀椀漀渀⠀⤀笀 
਀ऀऀऀऀ椀昀⠀℀␀⸀䐀愀琀攀吀椀洀攀䴀愀猀欀⸀䰀漀猀琀䘀漀挀甀猀⠀琀栀椀猀Ⰰ漀瀀琀椀漀渀猀⤀⤀ 
				{਀ऀऀऀऀऀ椀昀⠀℀漀瀀琀椀漀渀猀⸀眀栀攀渀戀氀甀爀⠀琀栀椀猀⸀瘀愀氀甀攀⤀⤀ 琀栀椀猀⸀瘀愀氀甀攀 㴀 琀栀椀猀⸀漀氀搀瘀愀氀甀攀㬀 
				}਀ऀऀऀ紀⤀㬀 
		}਀ऀ紀⤀㬀 
};਀ 
$.DateTimeMask = ਀笀 
	//获得焦点时候的处理函数਀ऀ匀攀琀䘀漀挀甀猀 㨀 昀甀渀挀琀椀漀渀⠀漀戀樀Ⰰ漀瀀琀椀漀渀猀⤀ 
	{਀ऀऀ漀戀樀⸀漀氀搀瘀愀氀甀攀 㴀 漀戀樀⸀瘀愀氀甀攀㬀 
		if(obj.focuscssname && obj.focuscssname!="")਀ऀऀ笀 
			obj.oldClassName = obj.className;਀ऀऀऀ漀戀樀⸀挀氀愀猀猀一愀洀攀 㴀 漀戀樀⸀昀漀挀甀猀挀猀猀渀愀洀攀㬀 
		}਀ऀ紀Ⰰ 
਀ऀ⼀⼀㄀뭙♓륱ᥥ葐Ѷٙﵴ灑e
	LostFocus : function(obj,options) ਀ऀ笀 
		var ls_date,ls_time;਀ऀऀ瘀愀爀 氀戀开攀爀爀漀爀 㴀 昀愀氀猀攀㬀 
		switch(options.masktype)਀ऀऀ笀 
			case "1":਀ऀऀऀऀ氀猀开搀愀琀攀 㴀 漀戀樀⸀瘀愀氀甀攀⸀猀甀戀猀琀爀⠀　Ⰰ㄀　⤀㬀 
				ls_time = obj.value.substr(11);਀ऀऀऀऀ椀昀⠀漀戀樀⸀瘀愀氀甀攀 㴀㴀 ∀　　　　ⴀ　　ⴀ　　 　　㨀　　㨀　　∀⤀ 
				{਀ऀऀऀऀऀ椀昀⠀℀漀瀀琀椀漀渀猀⸀椀猀渀甀氀氀⤀ 氀戀开攀爀爀漀爀 㴀 琀爀甀攀㬀 
				}਀ऀऀऀऀ攀氀猀攀 
				{਀ऀऀऀऀऀ椀昀⠀℀⠀␀⸀䐀愀琀攀吀椀洀攀䴀愀猀欀⸀椀猀嘀愀氀椀搀䐀愀琀攀⠀氀猀开搀愀琀攀⤀ ☀☀ ␀⸀䐀愀琀攀吀椀洀攀䴀愀猀欀⸀椀猀嘀愀氀椀搀吀椀洀攀⠀氀猀开琀椀洀攀⤀⤀⤀ 氀戀开攀爀爀漀爀 㴀 琀爀甀攀㬀 
				}਀ऀऀऀऀ戀爀攀愀欀㬀 
			case "2":਀ऀऀऀऀ氀猀开搀愀琀攀 㴀 漀戀樀⸀瘀愀氀甀攀⸀猀甀戀猀琀爀⠀　Ⰰ㄀　⤀㬀 
				ls_time = obj.value.substr(11)+":00";਀ऀऀऀऀ椀昀⠀漀戀樀⸀瘀愀氀甀攀 㴀㴀 ∀　　　　ⴀ　　ⴀ　　 　　㨀　　∀⤀ 
				{਀ऀऀऀऀऀ椀昀⠀℀漀瀀琀椀漀渀猀⸀椀猀渀甀氀氀⤀ 氀戀开攀爀爀漀爀 㴀 琀爀甀攀㬀 
				}਀ऀऀऀऀ攀氀猀攀 
				{਀ऀऀऀऀऀ椀昀⠀℀⠀␀⸀䐀愀琀攀吀椀洀攀䴀愀猀欀⸀椀猀嘀愀氀椀搀䐀愀琀攀⠀氀猀开搀愀琀攀⤀ ☀☀ ␀⸀䐀愀琀攀吀椀洀攀䴀愀猀欀⸀椀猀嘀愀氀椀搀吀椀洀攀⠀氀猀开琀椀洀攀⤀⤀⤀ 氀戀开攀爀爀漀爀 㴀 琀爀甀攀㬀 
				}਀ऀऀऀऀ戀爀攀愀欀㬀 
			case "3":਀ऀऀऀऀ氀猀开搀愀琀攀 㴀 漀戀樀⸀瘀愀氀甀攀㬀 
				if(ls_date == "0000-00-00")਀ऀऀऀऀ笀 
					if(!options.isnull) lb_error = true;਀ऀऀऀऀ紀 
				else਀ऀऀऀऀ笀 
					if(!$.DateTimeMask.isValidDate(ls_date)) lb_error = true;਀ऀऀऀऀ紀 
				break;਀ऀऀऀ挀愀猀攀 ∀㐀∀㨀 
				ls_time = obj.value+":00";;਀ऀऀऀऀ椀昀⠀漀戀樀⸀瘀愀氀甀攀 㴀㴀 ∀　　㨀　　∀⤀ 
				{਀ऀऀऀऀऀ椀昀⠀℀漀瀀琀椀漀渀猀⸀椀猀渀甀氀氀⤀ 氀戀开攀爀爀漀爀 㴀 琀爀甀攀㬀ऀ 
				}਀ऀऀऀऀ攀氀猀攀 
				{਀ऀऀऀऀऀ椀昀⠀℀␀⸀䐀愀琀攀吀椀洀攀䴀愀猀欀⸀椀猀嘀愀氀椀搀吀椀洀攀⠀氀猀开琀椀洀攀⤀⤀ 氀戀开攀爀爀漀爀 㴀 琀爀甀攀㬀 
				}਀ऀऀऀऀ戀爀攀愀欀㬀 
			case "5":਀ऀऀऀऀ氀猀开琀椀洀攀 㴀 漀戀樀⸀瘀愀氀甀攀㬀 
				if(ls_time == "00:00:00")਀ऀऀऀऀ笀 
					if(!options.isnull) lb_error = true;਀ऀऀऀऀ紀 
				else਀ऀऀऀऀ笀 
					if(!$.DateTimeMask.isValidTime(ls_time)) lb_error = true;਀ऀऀऀऀ紀 
				break;਀ऀऀ紀 
		if(lb_error){਀ऀऀऀ椀昀⠀℀漀瀀琀椀漀渀猀⸀氀愀眀氀攀猀猀洀攀猀猀愀最攀 簀簀 漀瀀琀椀漀渀猀⸀氀愀眀氀攀猀猀洀攀猀猀愀最攀℀㴀∀∀⤀ 愀氀攀爀琀⠀漀瀀琀椀漀渀猀⸀氀愀眀氀攀猀猀洀攀猀猀愀最攀⤀㬀 
			obj.value = obj.oldvalue;਀ऀऀ紀 
		if (obj.focuscssname && obj.focuscssname!="") obj.className = obj.oldClassName;਀ऀऀ爀攀琀甀爀渀 氀戀开攀爀爀漀爀㬀 
	},਀ 
	//按键时候的处理函数਀ऀ䬀攀礀䐀漀眀渀 㨀 昀甀渀挀琀椀漀渀⠀漀戀樀吀攀砀琀䈀漀砀Ⰰ攀瘀攀渀琀Ⰰ漀瀀琀椀漀渀猀⤀   
	{ ਀ऀ    ⼀⼀ऀ⹣㢕콞
	    var KEY = {਀ऀऀऀ䈀䄀䌀䬀匀倀䄀䌀䔀㨀 㠀Ⰰ 
		    TAB: 9,਀ऀऀ    䔀一吀䔀刀㨀 ㄀㌀Ⰰ 
			END: 35,਀ऀऀऀ䠀伀䴀䔀㨀 ㌀㘀Ⰰ 
		    LEFT: 37,਀ऀऀऀ刀䤀䜀吀䠀㨀 ㌀㤀Ⰰ 
		    DEL: 46਀ऀ    紀㬀 
	    var nKeyCode = event.keyCode; ਀ऀ    ⼀⼀ 礀該ѫٙ葴ॶ⹣ₕ 
	    switch(nKeyCode){਀ऀ        挀愀猀攀 䬀䔀夀⸀吀䄀䈀㨀 
			case KEY.HOME:਀ऀऀऀ挀愀猀攀 䬀䔀夀⸀䔀一䐀㨀 
	        case KEY.LEFT:਀ऀ        挀愀猀攀 䬀䔀夀⸀刀䤀䜀吀䠀㨀 
	            return;਀ऀ        挀愀猀攀 䬀䔀夀⸀䔀一吀䔀刀㨀 
				event.preventDefault();਀ऀऀऀ    椀昀⠀漀瀀琀椀漀渀猀⸀䔀渀琀攀爀䴀漀瘀攀吀漀一攀砀琀⤀ 攀瘀攀渀琀⸀欀攀礀䌀漀搀攀 㴀 㤀㬀 
	            return;਀ऀ    紀 
	    //只读就李䱢ﮈ啎쵏層O
	    if(objTextBox.ReadOnly) {਀ऀऀ    攀瘀攀渀琀⸀爀攀琀甀爀渀嘀愀氀甀攀 㴀 昀愀氀猀攀㬀 
		    return;਀ऀ    紀 
	    // 当前文本框中的文本 ਀ऀ    瘀愀爀 猀琀爀吀攀砀琀 㴀漀戀樀吀攀砀琀䈀漀砀⸀瘀愀氀甀攀㬀  
	    // 文本长度 ਀ऀ    瘀愀爀 渀吀攀砀琀䰀攀渀㴀猀琀爀吀攀砀琀⸀氀攀渀最琀栀㬀  
	    // 当前光标位置 ਀ऀ    瘀愀爀 渀䌀甀爀猀漀爀倀漀猀 㴀 ␀⸀䐀愀琀攀吀椀洀攀䴀愀猀欀⸀䜀攀琀䌀甀爀猀漀爀⠀漀戀樀吀攀砀琀䈀漀砀⤀⸀猀琀愀爀琀㬀 
		//忽略按键਀ऀ    攀瘀攀渀琀⸀爀攀琀甀爀渀嘀愀氀甀攀 㴀 昀愀氀猀攀㬀  
		//阻止冒泡਀ऀऀ攀瘀攀渀琀⸀瀀爀攀瘀攀渀琀䐀攀昀愀甀氀琀⠀⤀㬀 
	    // 自行处理按钮 ਀ऀ    猀眀椀琀挀栀 ⠀渀䬀攀礀䌀漀搀攀⤀  
	    { ਀ऀ        挀愀猀攀 䬀䔀夀⸀䈀䄀䌀䬀匀倀䄀䌀䔀㨀 
	            if(nCursorPos > 0)਀ऀ            笀  
	                fronttext = strText.substr(nCursorPos - 1,1); ਀ऀ                椀昀⠀昀爀漀渀琀琀攀砀琀℀㴀∀ⴀ∀ ☀☀ 昀爀漀渀琀琀攀砀琀℀㴀∀㨀∀ ☀☀ 昀爀漀渀琀琀攀砀琀℀㴀∀ ∀⤀ 
	                { ਀ऀ                    昀爀漀渀琀琀攀砀琀㴀∀　∀㬀  
	                    strText =  strText.substr(0,nCursorPos - 1) + fronttext + strText.substr(nCursorPos, nTextLen-nCursorPos); ਀ऀ                紀  
	                nCursorPos--; ਀ऀ            紀  
	            break; ਀ऀ        挀愀猀攀 䬀䔀夀⸀䐀䔀䰀㨀 
	            if(nCursorPos<nTextLen) ਀ऀ            笀  
	                behindtext = strText.substr(nCursorPos,1); ਀ऀ                椀昀⠀戀攀栀椀渀搀琀攀砀琀℀㴀∀ⴀ∀ ☀☀ 戀攀栀椀渀搀琀攀砀琀℀㴀∀㨀∀ ☀☀ 戀攀栀椀渀搀琀攀砀琀℀㴀∀ ∀⤀ 戀攀栀椀渀搀琀攀砀琀㴀∀　∀㬀  
	                if(nCursorPos + 1 == nTextLen) ਀ऀ                    猀琀爀吀攀砀琀 㴀  猀琀爀吀攀砀琀⸀猀甀戀猀琀爀⠀　Ⰰ渀䌀甀爀猀漀爀倀漀猀⤀ ⬀ 戀攀栀椀渀搀琀攀砀琀㬀  
	                else ਀ऀ                    猀琀爀吀攀砀琀 㴀  猀琀爀吀攀砀琀⸀猀甀戀猀琀爀⠀　Ⰰ渀䌀甀爀猀漀爀倀漀猀⤀ ⬀ 戀攀栀椀渀搀琀攀砀琀 ⬀ 猀琀爀吀攀砀琀⸀猀甀戀猀琀爀⠀渀䌀甀爀猀漀爀倀漀猀⬀㄀Ⰰ渀吀攀砀琀䰀攀渀ⴀ渀䌀甀爀猀漀爀倀漀猀ⴀ㄀⤀㬀  
	                nCursorPos++; ਀ऀ            紀  
	            break; ਀ऀ        搀攀昀愀甀氀琀 㨀  
	            if(nCursorPos==nTextLen) break; ਀ऀऀऀऀ椀昀⠀℀⠀渀䬀攀礀䌀漀搀攀 㸀㴀㐀㠀 ☀☀ 渀䬀攀礀䌀漀搀攀㰀㴀㔀㜀 簀簀 渀䬀攀礀䌀漀搀攀 㸀㴀㤀㘀 ☀☀ 渀䬀攀礀䌀漀搀攀㰀㴀㄀　㔀⤀⤀ 戀爀攀愀欀㬀 
				if (nKeyCode > 95) nKeyCode -= (95-47); ਀ऀ            戀攀栀椀渀搀琀攀砀琀 㴀 猀琀爀吀攀砀琀⸀猀甀戀猀琀爀⠀渀䌀甀爀猀漀爀倀漀猀Ⰰ㄀⤀㬀  
	            if(behindtext!="-" && behindtext!=":" && behindtext!=" ") ਀ऀ            笀  
	                var keycode = String.fromCharCode(nKeyCode); ਀ऀ                瀀爀攀吀攀砀琀 㴀 猀琀爀吀攀砀琀⸀猀甀戀猀琀爀⠀　Ⰰ渀䌀甀爀猀漀爀倀漀猀⤀ ⬀ 欀攀礀挀漀搀攀 ⬀ 猀琀爀吀攀砀琀⸀猀甀戀猀琀爀⠀渀䌀甀爀猀漀爀倀漀猀⬀㄀Ⰰ渀吀攀砀琀䰀攀渀⤀㬀  
	                if(!$.DateTimeMask.DealWith(options.masktype,preText,nCursorPos)) break; ਀ऀ                猀琀爀吀攀砀琀 㴀 瀀爀攀吀攀砀琀㬀  
	                nCursorPos++; ਀ऀ            紀  
	            if (nCursorPos>strText.length) ਀ऀ            笀  
	                nCursorPos=strText.length; ਀ऀ            紀  
	            //输入后,要根据当前位置决定是否要调整位置。比如碰到":"  "-"  " "਀ऀ            椀昀⠀漀瀀琀椀漀渀猀⸀洀愀猀欀琀礀瀀攀㰀㴀∀㌀∀⤀笀 
	                if(nCursorPos==4 || nCursorPos==7 || nCursorPos==10 || nCursorPos==13 || nCursorPos==16) nCursorPos++; ਀ऀऀऀ    紀 
	            else{਀ऀ                椀昀⠀渀䌀甀爀猀漀爀倀漀猀㴀㴀㈀ 簀簀 渀䌀甀爀猀漀爀倀漀猀㴀㴀㔀 ⤀ 渀䌀甀爀猀漀爀倀漀猀⬀⬀㬀 
			    }਀ऀ            戀爀攀愀欀㬀  
	    } ਀ऀ    漀戀樀吀攀砀琀䈀漀砀⸀瘀愀氀甀攀 㴀 猀琀爀吀攀砀琀㬀  
	    $.DateTimeMask.Selection(objTextBox,nCursorPos,nCursorPos); ਀ऀ紀Ⰰ 
	਀ऀ⼀⼀㤀湨䥣ݑ䁨⡢著䵶湏౿⓿굒鍥斏葑坶♛⽻♦ࡔ핔l
	DealWith : function(masktype,input,nCursorPos) ਀ऀ笀 
	    var ls_date,ls_time;਀ऀ    椀昀⠀洀愀猀欀琀礀瀀攀 㰀㴀 ∀㌀∀⤀ 
	    {਀ऀ        氀猀开礀攀愀爀 㴀 椀渀瀀甀琀⸀猀甀戀猀琀爀⠀　Ⰰ㐀⤀㬀   
	        if(ls_year=="0000") ls_year = "2001";  ਀ऀ        氀猀开洀漀渀琀栀 㴀 椀渀瀀甀琀⸀猀甀戀猀琀爀⠀㔀Ⰰ㈀⤀㬀   
	        if(ls_month=="00") ls_month = "01";  ਀ऀ        氀猀开搀愀礀 㴀 椀渀瀀甀琀⸀猀甀戀猀琀爀⠀㠀Ⰰ㈀⤀㬀   
	        if(ls_day=="00") ls_day = "01";  ਀ऀ        氀猀开搀愀琀攀 㴀 氀猀开礀攀愀爀 ⬀∀ⴀ∀⬀ 氀猀开洀漀渀琀栀 ⬀∀ⴀ∀⬀ 氀猀开搀愀礀㬀  
	        ls_time = "00:00:00";਀ऀ        椀昀⠀洀愀猀欀琀礀瀀攀㴀㴀∀㄀∀⤀ 笀ऀऀऀऀ 
	            ls_time = input.substr(11);਀ऀऀऀ紀 
	        else {਀ऀऀऀऀ椀昀⠀洀愀猀欀琀礀瀀攀㴀㴀∀㈀∀⤀ 氀猀开琀椀洀攀 㴀 椀渀瀀甀琀⸀猀甀戀猀琀爀⠀㄀㄀⤀ ⬀ ∀㨀　　∀㬀 
			}਀ऀ        ⼀⼀䤀ݑ䁨⡢著䵶湏䲏⒈굒卥䵟坒♛㉻⽎♦ࡔ핔l
			return (nCursorPos<=10?$.DateTimeMask.isValidDate(ls_date):$.DateTimeMask.isValidTime(ls_time))਀ऀ    紀 
	    else਀ऀ    笀 
	        ls_time = input;਀ऀ        椀昀⠀洀愀猀欀琀礀瀀攀㴀㴀∀㐀∀⤀ 氀猀开琀椀洀攀 㴀 氀猀开琀椀洀攀 ⬀ ∀㨀　　∀㬀 
	        //光标所在的位置进行判断当前字符串是否合法਀ऀ        爀攀琀甀爀渀 ␀⸀䐀愀琀攀吀椀洀攀䴀愀猀欀⸀椀猀嘀愀氀椀搀吀椀洀攀⠀氀猀开琀椀洀攀⤀㬀  
	    }਀ऀ    爀攀琀甀爀渀 琀爀甀攀㬀  
	},਀ 
	//动作：获取光标所在的位置，包括起始位置和结束位置਀ऀ䜀攀琀䌀甀爀猀漀爀 㨀 昀甀渀挀琀椀漀渀⠀琀攀砀琀䈀漀砀⤀笀 
		var obj = new Object();਀ऀऀ瘀愀爀 猀琀愀爀琀 㴀 　Ⰰ攀渀搀 㴀 　㬀 
		if ($.browser.mozilla) {਀ऀऀऀ猀琀愀爀琀 㴀 琀攀砀琀䈀漀砀⸀猀攀氀攀挀琀椀漀渀匀琀愀爀琀㬀 
			end = textBox.selectionEnd;਀ऀऀ紀 
		if ($.browser.msie) {਀ऀऀऀ瘀愀爀 爀愀渀最攀㴀琀攀砀琀䈀漀砀⸀挀爀攀愀琀攀吀攀砀琀刀愀渀最攀⠀⤀㬀  
			var text = range.text;਀ऀऀऀ瘀愀爀 猀攀氀爀愀渀最攀 㴀 搀漀挀甀洀攀渀琀⸀猀攀氀攀挀琀椀漀渀⸀挀爀攀愀琀攀刀愀渀最攀⠀⤀㬀 
			var seltext = selrange.text;਀ऀऀऀ眀栀椀氀攀⠀猀攀氀爀愀渀最攀⸀挀漀洀瀀愀爀攀䔀渀搀倀漀椀渀琀猀⠀∀匀琀愀爀琀吀漀匀琀愀爀琀∀Ⰰ爀愀渀最攀⤀㸀　⤀笀  
				selrange.moveStart("character",-1); ਀ऀऀऀऀ猀琀愀爀琀 ⬀⬀㬀 
			}਀ऀऀऀ眀栀椀氀攀⠀猀攀氀爀愀渀最攀⸀挀漀洀瀀愀爀攀䔀渀搀倀漀椀渀琀猀⠀∀䔀渀搀吀漀匀琀愀爀琀∀Ⰰ爀愀渀最攀⤀㸀　⤀笀  
				selrange.moveEnd("character",-1); ਀ऀऀऀऀ攀渀搀 ⬀⬀㬀 
			}਀ऀऀ紀 
		obj.start = start;਀ऀऀ漀戀樀⸀攀渀搀 㴀 攀渀搀㬀 
		return obj;਀ऀ紀Ⰰ 
	਀ऀ⼀⼀ꠀ屒ᩏ꧿暋椀攀氀搀萀獶琀愀爀琀　敒渀搀꬀ঈⶐN
	Selection : function(field, start, end) ਀ऀ笀 
		if( field.createTextRange ){਀ऀऀऀ瘀愀爀 爀 㴀 昀椀攀氀搀⸀挀爀攀愀琀攀吀攀砀琀刀愀渀最攀⠀⤀㬀 
			r.moveStart('character',start);਀ऀऀऀ爀⸀挀漀氀氀愀瀀猀攀⠀琀爀甀攀⤀㬀 
			r.select(); ਀ऀऀ紀 攀氀猀攀 椀昀⠀ 昀椀攀氀搀⸀猀攀琀匀攀氀攀挀琀椀漀渀刀愀渀最攀 ⤀笀 
			field.setSelectionRange(start, end);਀ऀऀ紀 攀氀猀攀 笀 
			if( field.selectionStart ){਀ऀऀऀऀ昀椀攀氀搀⸀猀攀氀攀挀琀椀漀渀匀琀愀爀琀 㴀 猀琀愀爀琀㬀 
				field.selectionEnd = end;਀ऀऀऀ紀 
		}਀ऀऀ昀椀攀氀搀⸀昀漀挀甀猀⠀⤀㬀 
	},਀ऀ 
	//是否为日期਀ऀ椀猀嘀愀氀椀搀䐀愀琀攀 㨀 昀甀渀挀琀椀漀渀⠀猀琀爀䐀愀琀攀⤀ 
	{਀ऀऀ瘀愀爀 氀猀开爀攀最攀砀 㴀 ∀帀⠀⠀⠀⠀⠀⠀　嬀㐀㠀崀⤀簀⠀嬀㄀㌀㔀㜀㤀崀嬀㈀㘀崀⤀簀⠀嬀㈀㐀㘀㠀崀嬀　㐀㠀崀⤀⤀　　⤀簀⠀嬀　ⴀ㤀崀嬀　ⴀ㤀崀⠀⠀　嬀㐀㠀崀⤀簀⠀嬀㄀㌀㔀㜀㤀崀嬀㈀㘀崀⤀簀⠀嬀㈀㐀㘀㠀崀嬀　㐀㠀崀⤀⤀⤀⤀ⴀ　㈀ⴀ㈀㤀⤀簀⠀⠀⠀　　　嬀㄀ⴀ㤀崀⤀簀⠀　　嬀㄀ⴀ㤀崀嬀　ⴀ㤀崀⤀簀⠀　嬀㄀ⴀ㤀崀嬀　ⴀ㤀崀嬀　ⴀ㤀崀⤀簀⠀嬀㄀ⴀ㤀崀嬀　ⴀ㤀崀嬀　ⴀ㤀崀嬀　ⴀ㤀崀⤀⤀ⴀ⠀⠀⠀⠀　嬀㄀㌀㔀㜀㠀崀⤀簀⠀㄀嬀　㈀崀⤀⤀ⴀ㌀㄀⤀簀⠀⠀⠀　嬀㄀Ⰰ㌀ⴀ㤀崀⤀簀⠀㄀嬀　ⴀ㈀崀⤀⤀ⴀ⠀㈀㤀簀㌀　⤀⤀簀⠀⠀⠀　嬀㄀ⴀ㤀崀⤀簀⠀㄀嬀　ⴀ㈀崀⤀⤀ⴀ⠀⠀　嬀㄀ⴀ㤀崀⤀簀⠀㄀嬀　ⴀ㤀崀⤀簀⠀㈀嬀　ⴀ㠀崀⤀⤀⤀⤀⤀⤀␀∀㬀 
		var exp = new RegExp(ls_regex, "i");਀ऀऀ爀攀琀甀爀渀 攀砀瀀⸀琀攀猀琀⠀猀琀爀䐀愀琀攀⤀㬀 
	},਀ऀ 
	//是否为时间਀ऀ椀猀嘀愀氀椀搀吀椀洀攀 㨀 昀甀渀挀琀椀漀渀⠀猀琀爀吀椀洀攀⤀ 
	{਀ऀऀ瘀愀爀 愀 㴀 猀琀爀吀椀洀攀⸀洀愀琀挀栀⠀⼀帀⠀尀搀笀㈀Ⰰ㈀紀⤀⠀㨀⤀㼀⠀尀搀笀㈀Ⰰ㈀紀⤀尀㈀⠀尀搀笀㈀Ⰰ㈀紀⤀␀⼀⤀㬀 
        if (!a || a[1]>23 || a[3]>59 || a[4]>59) return false;਀        爀攀琀甀爀渀 琀爀甀攀㬀 
	},਀ 
	getDateTime : function(options)਀ऀ笀 
		var d = new Date();਀ऀऀ瘀愀爀 瘀夀攀愀爀 㴀 搀⸀最攀琀䘀甀氀氀夀攀愀爀⠀⤀㬀 
		var vMon = d.getMonth() + 1;਀ऀऀ瘀䴀漀渀 㴀 ⠀瘀䴀漀渀㰀㄀　 㼀 ∀　∀ ⬀ 瘀䴀漀渀 㨀 瘀䴀漀渀⤀㬀 
		var vDay = d.getDate();਀ऀऀ瘀愀爀 氀猀开搀愀琀攀 㴀 瘀夀攀愀爀⬀∀ⴀ∀⬀瘀䴀漀渀⬀∀ⴀ∀⬀⠀瘀䐀愀礀㰀㄀　 㼀  ∀　∀⬀ 瘀䐀愀礀 㨀 瘀䐀愀礀 ⤀㬀 
		var vHour = d.getHours();਀ऀऀ瘀愀爀 瘀䴀椀渀 㴀 搀⸀最攀琀䴀椀渀甀琀攀猀⠀⤀㬀 
		var vSec = d.getSeconds();਀ऀऀ瘀愀爀 氀猀开琀椀洀攀 㴀 ⠀瘀䠀漀甀爀㰀㄀　 㼀 ∀　∀ ⬀ 瘀䠀漀甀爀 㨀 瘀䠀漀甀爀⤀ ⬀ ∀㨀∀⬀⠀瘀䴀椀渀㰀㄀　 㼀 ∀　∀ ⬀ 瘀䴀椀渀 㨀 瘀䴀椀渀⤀⬀∀㨀∀⬀⠀瘀匀攀挀㰀㄀　 㼀  ∀　∀⬀ 瘀匀攀挀 㨀 瘀匀攀挀 ⤀㬀 
		switch(options.masktype)਀ऀऀ笀 
			case "1":਀ऀऀऀऀ爀攀琀甀爀渀 漀瀀琀椀漀渀猀⸀椀猀渀漀眀㼀⠀氀猀开搀愀琀攀 ⬀ ∀ ∀ ⬀ 氀猀开琀椀洀攀⤀㨀⠀瘀夀攀愀爀⬀∀ⴀ∀⬀瘀䴀漀渀⬀∀ⴀ∀⬀∀　㄀ 　　㨀　　㨀　　∀⤀㬀 
			case "2":਀ऀऀऀऀ爀攀琀甀爀渀 漀瀀琀椀漀渀猀⸀椀猀渀漀眀㼀⠀氀猀开搀愀琀攀 ⬀ ∀ ∀ ⬀ 氀猀开琀椀洀攀⸀猀甀戀猀琀爀⠀　Ⰰ㔀⤀⤀㨀⠀瘀夀攀愀爀⬀∀ⴀ∀⬀瘀䴀漀渀⬀∀ⴀ∀⬀∀　㄀ 　　㨀　　∀⤀㬀 
			case "3":਀ऀऀऀऀ爀攀琀甀爀渀 漀瀀琀椀漀渀猀⸀椀猀渀漀眀㼀氀猀开搀愀琀攀㨀⠀瘀夀攀愀爀⬀∀ⴀ∀⬀瘀䴀漀渀⬀∀ⴀ∀⬀∀　㄀∀⤀㬀 
			case "4":਀ऀऀऀऀ爀攀琀甀爀渀 氀猀开琀椀洀攀⸀猀甀戀猀琀爀⠀　Ⰰ㔀⤀㬀 
			case "5":਀ऀऀऀऀ爀攀琀甀爀渀 氀猀开琀椀洀攀㬀 
		}਀ऀऀ 
	}਀紀਀