// YeeSoft Javascript Libaray
// Copyright (c) 2005 YeeSoft (http://www.yeesoft.com/)
// \u6768\u71b9\u6797
// 2005-9-21
function gohref(h)
{
    location.href=h;
}

var YeeJsYXL = {
	
	jumpnumber: -1,
	
	Version: '1.0.0',
			update:	function (obj){
				var tmpTr = obj.parentNode.parentNode;
				var s=tmpTr.cells[2].innerHTML.substring(6);
				if(s=="\u6587\u672c"){
					var t=0;
					var s2=tmpTr.cells[4].innerHTML.substring(6);
					if(s2=="string"){
						t=0;
					}else if(s2=="char"){
						t=1;
					}else if(s2=="int"){
						t=2;
					}else if(s2=="boolean"){
						t=3;
					}else if(s2=="date"){
						t=4;
					}
					return(
					document.artList.textfield.value=tmpTr.cells[0].innerHTML.substring(6),
					document.artList.textfield2.value=tmpTr.cells[1].innerHTML.substring(6),
					document.artList.select.value=t,
					document.artList.textfield3.value=tmpTr.cells[3].innerHTML.substring(6));
				}else if(s=="\u65f6\u95f4"){
					return(
					document.artList3.textfield.value=tmpTr.cells[0].innerHTML.substring(6),
					document.artList3.textfield2.value=tmpTr.cells[1].innerHTML.substring(6),
					document.artList3.textfield3.value=tmpTr.cells[3].innerHTML.substring(6));
				}else if(s=="\u5217\u8868"){
					return(
					document.artList2.textfield.value=tmpTr.cells[0].innerHTML.substring(6),
					document.artList2.textfield2.value=tmpTr.cells[1].innerHTML.substring(6),
					document.artList2.textfield5.value=tmpTr.cells[5].innerHTML.substring(6),
					document.artList2.textfield6.value=tmpTr.cells[6].innerHTML.substring(6),
					document.artList2.textfield3.value=tmpTr.cells[3].innerHTML.substring(6));					
				}else {
					return(
					document.artList4.textfield.value=tmpTr.cells[0].innerHTML.substring(6),
					document.artList4.textfield2.value=tmpTr.cells[1].innerHTML.substring(6),
					document.artList4.textfield3.value=tmpTr.cells[3].innerHTML.substring(6),
					document.artList4.textfield4.value=tmpTr.cells[7].innerHTML.substring(6));
				}
			},
			GGCUpdate:function(obj){
				var tmpTr = obj.parentNode.parentNode;
				return(
					document.addform.textfield2.value=tmpTr.cells[1].innerHTML.substring(6),
					document.addform.textfield3.value=tmpTr.cells[2].innerHTML.substring(6),
					document.addform.textfield4.value=tmpTr.cells[3].innerHTML.substring(6),
					document.addform.textfield5.value=tmpTr.cells[5].innerHTML.substring(6)
				);			
			},
			save: function (obj) {
				if(obj=="1"){
					alert(Form.serialize('1'));
					var url="ajaxTest.action";
					new Ajax.Request(url,{method:'post',asynchronous:true, parameters:Form.serialize('1')});
				}else if(obj=="2"){
					alert(Form.serialize('2'));
					var url="ajaxTest.action";
					new Ajax.Request(url,{method:'post',asynchronous:true, parameters:Form.serialize('2')});
				}else if(obj=="3"){
					alert(Form.serialize('3'));
					var url="ajaxTest.action";
					new Ajax.Request(url,{method:'post',asynchronous:true, parameters:Form.serialize('3')});
				}else if(obj=="4"){
					alert(Form.serialize('4'));
					var url="ajaxTest.action";
					new Ajax.Request(url,{method:'post',asynchronous:true, parameters:Form.serialize('4')});
				}else if(obj=="5"){
					alert(Form.serialize('5'));
					var url="ajaxTest.action";
					new Ajax.Request(url,{method:'post',asynchronous:true, parameters:Form.serialize('5')});
				}else if(obj=="6"){
					alert(Form.serialize('6'));
					var url="ajaxTest.action";
					new Ajax.Request(url,{method:'post',asynchronous:true, parameters:Form.serialize('6')});
				}else if(obj=="7"){
					alert(Form.serialize('7'));
					var url="ajaxTest.action";
					new Ajax.Request(url,{method:'post',asynchronous:true, parameters:Form.serialize('7')});
				}else if(obj=='8'){
					alert(Form.serialize('8'));
					var url="ajaxTest.action";
					new Ajax.Request(url,{method:'post',asynchronous:true, parameters:Form.serialize('8')});
				}else{
					alert("\u4e0d\u80fd\u4f20\u9001\u7a7a\u6570\u636e");
				}
			},
			del: function (obj){
				var url="ajaxTest.action";
				var tmpTr = obj.parentNode.parentNode;
				var dTmp={};
					dTmp.s1=tmpTr.cells[0].innerHTML.substring(6);
					dTmp.s2=tmpTr.cells[2].innerHTML.substring(6);
				return(
				alert("\u5220\u9664"+dTmp.s1+","+dTmp.s2),
				new Ajax.Updater(url,{method:'post',asynchronous:true, parameters:"dTmp = "+dTmp}));
			},
			checkAll:function (chk, name)
				{
					for (var i = 0; i < chk.form.elements.length; i ++)
					{
						var e = chk.form.elements[i];
						if (e.type == 'checkbox' && e.name.indexOf(name) == 0)
						e.checked = chk.checked;
					}
				},
			chkAllTrue:function (input1,input2,input3){
				    var objForm = document.forms[input1];
				    var objLen = objForm.length;
				    for (var iCount = 0; iCount < objLen; iCount++){
				    if (input3=='true')
			        {
			            if (objForm.elements[iCount].type == "checkbox")
			            {
			                objForm.elements[iCount].checked = true;
			            }
			        }
			        else if(input3=='false')
			        {
			            if (objForm.elements[iCount].type == "checkbox")
			            {
			                objForm.elements[iCount].checked = false;
			            }
			        }
				    }           
				},
			delThisUserTicket:function (input1,input2){
				var objForm = document.forms[input1];
				var objLen = objForm.length;
				var strIds = '';
				for(var iCount = 0;iCount<objLen;iCount++){
					if(objForm.elements[iCount].type == "checkbox" && objForm.elements[iCount].checked == true){
						strIds+=objForm.elements[iCount].value+',';
					}
				}
				return strIds;
			},
			//\u5206\u9875
			showListPage:function(image,recordCount, show, pageCount, pageNow, pageStr){
				
				pageStr1 = YeeJsYXL.encodePageURI(pageStr);
				
				if(pageCount<1) pageCount =0;
				if(pageNow<1)  pageNow = 0;
				
				var randomStr = parseInt(Math.random()*10000000);
				
				var pageTarget=pageNow;
				var flag=pageNow-4;

                /*
                	  <ul>
	  <li class="line2_list_bottom_btn_li1"><a href="#">查看</a></li>
	  <li class="line2_list_bottom_btn_li2"><span>到第</span> <span><input type="text" name="textfield" /></span> <span>页</span></li>
	  <li class="line2_list_bottom_btn_li3"><a href="#">下一页</a></li>
	  <li class="line2_list_bottom_btn_li4"><a href="#">1</a><a href="#">2</a><a href="#">3</a><a href="#">4</a><a href="#">5</a><a href="#">6</a><a  class="line2_list_bottom_dot">......</a><a href="#">100</a></li>
	  <li class="line2_list_bottom_btn_li5"><a href="#">上一页</a></li>
	  <li class="line2_list_bottom_btn_li6">1/5733 页</li>
	  </ul>
                
                */


                 str='<ul><li class="line2_list_bottom_btn_li1"><a href="javascript:YeeJsYXL.pagego(YeeJsYXL.jumpnumber,'+pageNow+','+pageCount+',\"'+pageStr+'\")">查看</a></li>';
                 str+='<li class="line2_list_bottom_btn_li2"><span>到第</span> <span><input type="text" id="txtpage" onchange="YeeJsYXL.jumpnumber=this.value"/></span> <span>页</span></li>';

                if(pageNow>=pageCount)
                    str+='<li class="line2_list_bottom_btn_li3"><a href="javascript::">下一页</a></li>';
                else
                    str+='<li class="line2_list_bottom_btn_li3"><a href="'+pageStr1.replace("_page_",(1+pageNow))+'">下一页</a></li>';
                str+='<li class="line2_list_bottom_btn_li4" >'+YeeJsYXL.viewpage(pageCount,pageTarget,2,pageNow,pageStr)+'</li>';

                if(pageNow<=1)
                    str += '<li class="line2_list_bottom_btn_li5"><a href="javascript::">上一页</a></li>';
                else
                    str += '<li class="line2_list_bottom_btn_li5"><a href="'+pageStr1.replace("_page_",(pageNow-1))+'">上一页</a></li>';

                str += '<li class="line2_list_bottom_btn_li6">'+pageNow+'/'+pageCount+ ' 页</li>';
        
                 str +='</ul>';

				return str;
			},
			showListPageSimple:function(image,recordCount, show, pageCount, pageNow, pageStr){
				
				pageStr1 = YeeJsYXL.encodePageURI(pageStr);
				
				if(pageCount<1) pageCount =0;
				if(pageNow<1)  pageNow = 0;
				
				var randomStr = parseInt(Math.random()*10000000);
				
				var pageTarget=pageNow;
				var flag=pageNow-4;

                 str='';

                if(pageNow<=1)
                    str += ' <a href="javascript::"> 上一页 </a> ';
                else
                    str += ' <a href="'+pageStr1.replace("_page_",(pageNow-1))+'"> 上一页 </a> ';

                str+=''+YeeJsYXL.viewpage(pageCount,pageTarget,2,pageNow,pageStr)+' ';


                if(pageNow>=pageCount)
                    str+=' <a href="javascript::"> 下一页 </a> ';
                else
                    str+=' <a href="'+pageStr1.replace("_page_",(1+pageNow))+'"> 下一页 </a>';
                str += ' '+pageNow+'/'+pageCount+ ' 页';
        
                 str +='';

				return str;
			},
			//new 20060830 pageview
			viewpage:function(pageCount,pageTarget,pageHalf,pageNow,pageStr)
			{
				pageCount=parseInt(pageCount);
				pageTarget=parseInt(pageTarget);
				pageHalf=parseInt(pageHalf);
				pageNow=parseInt(pageNow);
				var page_arr;
				var page_arr_view;
				function publicrun()
				{
					page_arr=new Array();
					for(i=0;i<pageCount;i++)
					{
						page_arr[i]=i+1;
					}
					page_arr_view=page_arr.slice();
					for(i=0;i<pageCount;i++)
					{
						page_arr_view[i]="<a href=\"javascript:YeeJsYXL.view("+pageCount+","+page_arr_view[i]+","+pageHalf+","+pageNow+",'"+pageStr+"')\">"+page_arr_view[i]+"</a> ";
					}
					page_arr_view[pageTarget-1]="<a href=\"javascript:YeeJsYXL.view("+pageCount+","+page_arr[pageTarget-1]+","+pageHalf+","+pageNow+",'"+pageStr+"')\"><font style='color:red'>"+page_arr[pageTarget-1]+"</font></a> ";
				}
				
				
				if(pageHalf*2+3>=pageCount)
				{
					publicrun();
					var ps="";
					for(i=0;i<pageCount;i++)
					{
						ps+=page_arr_view[i];
					}
					return ps;
				}
				if(pageTarget-pageHalf<=2)
				{
					publicrun();
					var ps="";
					for(i=0;i<pageTarget+pageHalf;i++)
					{
						ps+=page_arr_view[i];
					}
					ps+=" <a class='line2_list_bottom_dot'>......</a> <a href=\"javascript:YeeJsYXL.view("+pageCount+","+(pageCount-1)+","+pageHalf+","+pageNow+",'"+pageStr+"')\">"+(pageCount-1)+"</a> <a href=\"javascript:YeeJsYXL.view("+pageCount+","+(pageCount)+","+pageHalf+","+pageNow+",'"+pageStr+"')\">"+(pageCount)+"</a> ";
					return ps;
				}
				if(pageTarget-pageHalf>2 && pageTarget+pageHalf+1<pageCount)
				{
					publicrun();
					var ps=" <a href=\"javascript:YeeJsYXL.view("+pageCount+","+1+","+pageHalf+","+pageNow+",'"+pageStr+"')\">1</a> <a href=\"javascript:YeeJsYXL.view("+pageCount+","+2+","+pageHalf+","+pageNow+",'"+pageStr+"')\">2</a> <a class='line2_list_bottom_dot'>......</a> ";
					for(i=pageTarget-pageHalf;i<(pageTarget-pageHalf)+(pageHalf*2+1);i++)
					{
						ps+=page_arr_view[i-1];
					}
					ps+=" <a class='line2_list_bottom_dot'>......</a> <a href=\"javascript:YeeJsYXL.view("+pageCount+","+(pageCount-1)+","+pageHalf+","+pageNow+",'"+pageStr+"')\">"+(pageCount-1)+"</a> <a href=\"javascript:YeeJsYXL.view("+pageCount+","+(pageCount)+","+pageHalf+","+pageNow+",'"+pageStr+"')\">"+(pageCount)+"</a> ";
					return ps;
				}
				if(pageTarget+pageHalf+1>=pageCount)
				{
					publicrun();
					var ps=" <a href=\"javascript:YeeJsYXL.view("+pageCount+",1,"+pageHalf+","+pageNow+",'"+pageStr+"')\">"+1+"</a> <a href=\"javascript:YeeJsYXL.view("+pageCount+",2,"+pageHalf+","+pageNow+",'"+pageStr+"')\">"+2+"</a> <a class='line2_list_bottom_dot'>......</a> ";
					for(i=pageTarget-pageHalf;i<parseInt(pageCount)+1;i++)
					{
						ps+=page_arr_view[i-1];
					}
					return ps;
				}
			},
			view:function(pageCount,pageTarget,pageHalf,pageNow,pageStr)
			{
				var pc=parseInt(pageCount);
				var pt=parseInt(pageTarget);
				var ph=parseInt(pageHalf);
				var pn=parseInt(pageNow);
				var ps=pageStr;
				YeeJsYXL.pagego(pt,pn,pc,ps);
			},
			//new pgaeview 20060830 end
			//\u7ffb\u9875\u7684\u8df3\u8f6c
			pagego:function(pageGo,pageNow,pageCount,pageStr){
				pageStr = YeeJsYXL.encodePageURI(pageStr);
				if(pageGo>=1 && pageGo<=pageCount && pageNow!=pageGo)
					window.location = pageStr.replace("_page_", pageGo);
			},
			//\u5206\u9875\u4e2d\u52a0\u4e0a\u6392\u5e8f
			showListPage2:function(recordCount, show, pageCount, pageNow, order, pageStr, pageSizeStr, pageOrderStr){
				
				pageStr1 = YeeJsYXL.encodePageURI(pageStr);
				pageStr2 = YeeJsYXL.encodePageURI(pageSizeStr);
				pageStr3 = YeeJsYXL.encodePageURI(pageOrderStr);

                /*
                        <ul>
          <li class="line2_list_num">页显示数量：</li>
          <li class="line2_list_20_30_40"><a href="#" class="font_size_12_999999">20</a> <a href="#" class="font_size_12_999999">30</a> <a href="#" class="font_size_12_999999">40</a></li>
          <li class="line2_list_rank">排序方式</li>
          <li class="line2_list_select">
            <select  >
            </select>
          </li>
          <li class="line2_list_pagenum">1/5733 页</li>
          <li class="line2_list_p_page"><a href="#">上一页</a></li>
          <li class="line2_list_n_page"><a href="#">下一页</a></li>
        </ul>
                */



				var img20 = '<a href="'+pageStr2 +'20" class="font_size_12_999999">20</a>';
				var img30 = '<a href="'+pageStr2 +'30" class="font_size_12_999999">30</a>';
				var img40 = '<a href="'+pageStr2 +'40" class="font_size_12_999999">40</a>';

				switch(show){
					case '20':
						img20 = '<a href="'+pageStr2 +'20" class="font_size_12_999999" style="color:red">20</a>';
						break;
					case '30':
						img30 = '<a href="'+pageStr2 +'30" class="font_size_12_999999" style="color:red">30</a>';
						break;
					case '40':
						img40 = '<a href="'+pageStr2 +'40" class="font_size_12_999999" style="color:red">40</a>';
						break;
				}

				if(pageCount<1) pageCount =0;
				if(pageNow<1)  pageNow = 0;
				
				var randomStr = parseInt(Math.random()*10000000);

				str = '<ul><li class="line2_list_num">页显示数量：</li>';
                str += '<li class="line2_list_20_30_40">'+img20+' '+img30+' '+img40+'</li>';				
				str += '<li class="line2_list_rank">排序方式</li>';
				


/*igyhi 20060824 close
				str += "<td width=\"30\"><a href='"+pageStr3+"1"+"'><img src='"+imgmmm+"' width=\"23\" height=\"15\" border=\"0\" /></a></td>";				
				str += "<td width=\"30\"><a href='"+pageStr3+"2"+"'><img src='"+imgmmm1+"' width=\"23\" height=\"15\" border=\"0\" /></a></td>";
				str += "<td width=\"30\"><a href='"+pageStr3+"3"+"'><img src='"+imgmmm2+"' width=\"23\" height=\"15\" border=\"0\" /></a></td>";
				str += "<td width=\"30\"><a href='"+pageStr3+"4"+"'><img src='"+imgmmm3+"' width=\"23\" height=\"15\" border=\"0\" /></a></td>";
*/
//igyhi 20060824 insert
				str+='<li class="line2_list_select"><select id="pxfs" onchange="gohref(this.value)">'
					 +"<option value='0'>--\u6392\u5e8f\u65b9\u5f0f--</option>"
					 +"<option value='"+pageStr3+"1'>\u6309\u4ef7\u683c\u0020\u7531\u9ad8\u5230\u4f4e</option>"
					 +"<option value='"+pageStr3+"2'>\u6309\u4ef7\u683c\u0020\u7531\u4f4e\u5230\u9ad8</option>"
					 +"<option value='"+pageStr3+"5'>\u6309\u51fa\u53d1\u5730\u0020\u0020\u5b57\u6bcd\u964d\u5e8f</option>"
					 +"<option value='"+pageStr3+"6'>\u6309\u51fa\u53d1\u5730\u0020\u0020\u5b57\u6bcd\u5347\u5e8f</option>"
					 +"</select></li>";
//igyhi 20060824 end

				str += '<li class="line2_list_pagenum">'+pageNow+'/'+pageCount+ '页\u5171'+recordCount+'\u6761</li>';
//igyhi 20060911 end
				if(pageNow<=1)
					str += '<li class="line2_list_p_page"><a href="javascript::">上一页</a></li>';
				else
                    str += '<li class="line2_list_p_page"><a href="'+pageStr1.replace("_page_",(pageNow-1))+'">上一页</a></li>';
				if(pageNow>=pageCount)
					str += '<li class="line2_list_n_page"><a href="javascript::">下一页</a></li>';
				else
                    str += '<li class="line2_list_n_page"><a href="'+pageStr1.replace("_page_",(1+pageNow))+'">下一页</a></li>';
                   // alert(str);
				return str;
			},
	
			//encodeURIComponent\u8bbf\u95ee\u7684\u8def\u5f84
			encodePageURI:function(str){	
				//var str = "s%fghfg\"sdg'sfdg!@#$%^&*()_+=-:\"{}][\|';:,./?><MNCSFGsss\u6211sss";
				var result = "";
				  for( i=0; i < str.length;) {
				    var aLetter = "";
					var number = str.charCodeAt(i);
					if(document.all && number>127){
						for(j=i+1; j<=str.length; j++){
							if(str.charCodeAt(j)<=127)
								break;
						}
						result += encodeURIComponent(str.substring(i, j));
						i = j;
					}else if(number<=127){
						result += str.substring(i, i+1);
						i = i+1;
					}else{
						result += encodeURIComponent(str.substring(i, i+1));
						i = i+1;
					}
				}
				//alert("result = " + result);
				return result;
			},
			//\u811a\u672c\u9a8c\u8bc1\u7a0b\u5e8f
			Require : /.+/,
			Email : /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/,
			Phone : /^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/,
			Mobile : /^((\(\d{2,3}\))|(\d{3}\-))?13\d{9}$/,
			Url : /^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/,
			IdCard : "this.IsIdCard(value)",
			Currency : /^\d+(\.\d+)?$/,
			Number : /^\d+$/,
			Zip : /^[1-9]\d{5}$/,
			QQ : /^[1-9]\d{4,8}$/,
			Integer : /^[-\+]?\d+$/,
			Double : /^[-\+]?\d+(\.\d+)?$/,
			English : /^[A-Za-z]+$/,
			Chinese : /^[\u0391-\uFFE5]+$/,
			Username : /^[a-z]\w{3,}$/i,
			UnSafe : /^(([A-Z]*|[a-z]*|\d*|[-_\~!@#\$%\^&\*\.\(\)\[\]\{\}<>\?\\\/\'\"]*)|.{0,5})$|\s/,
			IsSafe : function(str){return !this.UnSafe.test(str);},
			SafeString : "this.IsSafe(value)",
			Filter : "this.DoFilter(value, getAttribute('accept'))",
			Limit : "this.limit(value.length,getAttribute('min'), getAttribute('max'))",
			LimitB : "this.limit(this.LenB(value), getAttribute('min'), getAttribute('max'))",
			Date : "this.IsDate(value, getAttribute('min'), getAttribute('format'))",
			Repeat : "value == document.getElementsByName(getAttribute('to'))[0].value",
			Range : "getAttribute('min') < (value|0) && (value|0) < getAttribute('max')",
			Compare : "this.compare(value,getAttribute('operator'),getAttribute('to'))",
			Custom : "this.Exec(value, getAttribute('regexp'))",
			Group : "this.MustChecked(getAttribute('name'), getAttribute('min'), getAttribute('max'))",
			ErrorItem : [document.forms[0]],
			ErrorMessage : ["\u51fa\u9519\u4e86\uff1a\t\t\t\t\n"],
			Validate : function(theForm, mode){
				try{
					var usernameTmp = document.getElementById(username).value;
					var valTmp = /^[\u4e00-\u9fa5A-Za-z0-9_-]+$/;
					var strTmp = "\u767b\u9646\u540d\u5fc5\u987b\u662f\u6570\u5b57\u6216\u82f1\u6587[4-16]\u6216\u6c49\u5b57[2-8]\u4f4d";
					if(usernameTmp!=''){
						if(!valTmp.test(usernameTmp)){
							alert(strTmp);
							document.getElementById(username).focus();
							return false;
						}
					}
				}catch(e){}
				try{
					var nameTmp = document.getElementById(name).value;
					var valTmp = /^[\u4e00-\u9fa5A-Za-z0-9_-]+$/;
					var strTmp = "\u540d\u79f0\u5fc5\u987b\u662f\u6570\u5b57\u6216\u82f1\u6587[4-50]\u6216\u6c49\u5b57[2-25]\u4f4d";
					if(nameTmp!=''){
						if(!valTmp.test(nameTmp)){
							alert(strTmp);
							document.getElementById(name).focus();
							return false;
						}
					}
				}catch(e){}
				var obj = theForm || event.srcElement;
				var count = obj.elements.length;
				this.ErrorMessage.length = 1;
				this.ErrorItem.length = 1;
				this.ErrorItem[0] = obj;
				for(var i=0;i<count;i++){
					with(obj.elements[i]){
						var _dataType = getAttribute("dataType");
						if(typeof(_dataType) == "object" || typeof(this[_dataType]) == "undefined") continue;
						this.ClearState(obj.elements[i]);
						if(getAttribute("require") == "false" && value == ""){
							continue;
						}
						switch(_dataType){
							case "IdCard" :
							case "Date" :
							case "Repeat" :
							case "Range" :
							case "Compare" :
							case "Custom" :
							case "Group" : 
							case "Limit" :
							case "LimitB" :
							case "SafeString" :
							case "Filter" :
							if(!eval(this[_dataType])) {
								this.AddError(i, getAttribute("msg"));
							}
							break;
							default :
							if(!this[_dataType].test(value)){
								this.AddError(i, getAttribute("msg"));
							}
							break;
						}
					}
			}
			if(this.ErrorMessage.length > 1){
				mode = mode || 1;
				var errCount = this.ErrorItem.length;
				switch(mode){
					case 2 :
					for(var i=1;i<errCount;i++)
					this.ErrorItem[i].style.color = "red";
					case 1 :
					alert(this.ErrorMessage.join("\n"));
					this.ErrorItem[1].focus();
					break;
					case 3 :
					for(var i=1;i<errCount;i++){
					try{
						var span = document.createElement("SPAN");
						span.id = "__ErrorMessagePanel";
						span.style.color = "red";
						this.ErrorItem[i].parentNode.appendChild(span);
						span.innerHTML = this.ErrorMessage[i].replace(/\d+:/,"*");
					}catch(e){alert(e.description);}
				}
				this.ErrorItem[1].focus();
				break;
				default :
				alert(this.ErrorMessage.join("\n"));
				break;
			}
			return false;
			}
			return true;
			},
			limit : function(len,min, max){
				min = min || 0;
				max = max || Number.MAX_VALUE;
				return min <= len && len <= max;
			},
			LenB : function(str){
				return str.replace(/[^\x00-\xff]/g,"**").length;
			},
			ClearState : function(elem){
				with(elem){
					if(style.color == "red")
					style.color = "";
					var lastNode = parentNode.childNodes[parentNode.childNodes.length-1];
					if(lastNode.id == "__ErrorMessagePanel")
					parentNode.removeChild(lastNode);
				}
			},
			AddError : function(index, str){
				this.ErrorItem[this.ErrorItem.length] = this.ErrorItem[0].elements[index];
				this.ErrorMessage[this.ErrorMessage.length] = this.ErrorMessage.length + ":" + str;
			},
			Exec : function(op, reg){
				return new RegExp(reg,"g").test(op);
			},
			compare : function(op1,operator,op2){
				switch (operator) {
					case "NotEqual":
					return (op1 != op2);
					case "GreaterThan":
					return (op1 > op2);
					case "GreaterThanEqual":
					return (op1 >= op2);
					case "LessThan":
					return (op1 < op2);
					case "LessThanEqual":
					return (op1 <= op2);
					default:
					return (op1 == op2); 
				}
			},
			MustChecked : function(name, min, max){
				var groups = document.getElementsByName(name);
				var hasChecked = 0;
				min = min || 1;
				max = max || groups.length;
				for(var i=groups.length-1;i>=0;i--)
				if(groups[i].checked) hasChecked++;
				return min <= hasChecked && hasChecked <= max;
			},
			DoFilter : function(input, filter){
				return new RegExp("^.+\.(?=EXT)(EXT)$".replace(/EXT/g, filter.split(/\s*,\s*/).join("|")), "gi").test(input);
			},
			IsIdCard : function(number){
				var date, Ai;
				var verify = "10x98765432";
				var Wi = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
				var area = ['','','','','','','','','','','','\u5317\u4eac','\u5929\u6d25','\u6cb3\u5317','\u5c71\u897f','\u5185\u8499\u53e4','','','','','','\u8fbd\u5b81','\u5409\u6797','\u9ed1\u9f99\u6c5f','','','','','','','','\u4e0a\u6d77','\u6c5f\u82cf','\u6d59\u6c5f','\u5b89\u5fae','\u798f\u5efa','\u6c5f\u897f','\u5c71\u4e1c','','','','\u6cb3\u5357','\u6e56\u5317','\u6e56\u5357','\u5e7f\u4e1c','\u5e7f\u897f','\u6d77\u5357','','','','\u91cd\u5e86','\u56db\u5ddd','\u8d35\u5dde','\u4e91\u5357','\u897f\u85cf','','','','','','','\u9655\u897f','\u7518\u8083','\u9752\u6d77','\u5b81\u590f','\u65b0\u7586','','','','','','\u53f0\u6e7e','','','','','','','','','','\u9999\u6e2f','\u6fb3\u95e8','','','','','','','','','\u56fd\u5916'];
				if(number.length == 18){
					var tmpN1='';
					var tmpN2='';
					tmpN1=number.substr(0,6);
					tmpN2=number.substr(8,9);
					number = tmpN1+tmpN2;
				}
				var re = number.match(/^(\d{2})\d{4}(((\d{2})(\d{2})(\d{2})(\d{3}))|((\d{4})(\d{2})(\d{2})(\d{3}[x\d])))$/i);
				if(re == null) return false;
				if(re[1] >= area.length || area[re[1]] == "") return false;
				if(re[2].length == 12){
					Ai = number.substr(0, 17);
					date = [re[9], re[10], re[11]].join("-");
				}
				else{
					Ai = number.substr(0, 6) + "19" + number.substr(6);
					date = ["19" + re[4], re[5], re[6]].join("-");
				}
				if(!this.IsDate(date, "ymd")) return false;
				var sum = 0;
				for(var i = 0;i<=16;i++){
					sum += Ai.charAt(i) * Wi[i];
				}
				Ai += verify.charAt(sum%11);
				return (number.length ==15 || number.length == 18 && number == Ai);
			},
			IsDate : function(op, formatString){
				formatString = formatString || "ymd";
				var m, year, month, day;
				switch(formatString){
					case "ymd" :
					m = op.match(new RegExp("^((\\d{4})|(\\d{2}))([-./])(\\d{1,2})\\4(\\d{1,2})$"));
					if(m == null ) return false;
					day = m[6];
					month = m[5]*1;
					year = (m[2].length == 4) ? m[2] : GetFullYear(parseInt(m[3], 10));
					break;
					case "dmy" :
					m = op.match(new RegExp("^(\\d{1,2})([-./])(\\d{1,2})\\2((\\d{4})|(\\d{2}))$"));
					if(m == null ) return false;
					day = m[1];
					month = m[3]*1;
					year = (m[5].length == 4) ? m[5] : GetFullYear(parseInt(m[6], 10));
					break;
					default :
					break;
				}
				if(!parseInt(month)) return false;
					month = month==0 ?12:month;
				var date = new Date(year, month-1, day);
				return (typeof(date) == "object" && year == date.getFullYear() && month == (date.getMonth()+1) && day == date.getDate());
				function GetFullYear(y){return ((y<30 ? "20" : "19") + y)|0;}
			}
			
			
};

