/******************************************
属性
	1.checkme --是否检查 大于0的数值有效
	2.datalength --数据长度 大于0的数值有效
	3.message --消息提示内容
	4.checktwo --检查重复 大于0的数值有效
	5.checktype --检查数据类型 大于零的数值有效　1Mail,2Number,3Date,4Money,5参看filename,6上传文件,7
	6.checkmult --检查其他是否符合
	7.dataheader --检查此数值开头
	8.minNumber,maxNumber --检查最大最小值
	9.fieldname --与此属性比较大小的对应属性名字
  10.regex --正则表达式判断 ,regexmsg 错误提示
作者:解小方 2006年4月2日晚于家
*******************************************/
String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"");}
String.prototype.ltrim=function(){return this.replace(/^\s+/g,"");}
String.prototype.rtrim=function(){return this.replace(/\s+$/g,"");}
String.prototype.startsWith=function(str){eval("var a = /^"+str+"+/g"); return this.search(a)!=-1;}
String.prototype.endsWith=function(str){eval("var a= /"+str+"+$/g"); return this.search(a)!=-1;}
String.prototype.isUrl=function(){var a="/^[a-zA-Z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$/g"; return this.search(a)!=-1;}
String.prototype.isNumber=function(){var a="/\d/g"; return this.search(a)!=-1;}

function checkfrm(frm){
	var dfm = fetch_object(frm);
	var ischecked = 0;
	var showmessage = "";
	var sMessage = "";
	var datalength = 0;
	var isSucc = 0;
	var isTwoTimes=new Array();
	var isMult = new Array();
	var ttl = 0,mml=0;
	var ischecktype=0;
	var datastart="";
	var minNum = 0;
	var maxNum = 0;
	var _ixp = 0;
	var sLowName = "";
	var sRegEx = "";
	var sRegExMsg = "";
	for(_ixp=0;_ixp<dfm.length;_ixp++){
		var dfmObject = dfm[_ixp];
		isSucc = 0;
		if(dfmObject.checkme){
			ischecked = dfmObject.checkme;
		}else
			ischecked = 0;

		if(dfmObject.minNumber){
			minNum = parseInt(dfmObject.minNumber);
			if(isNaN(minNum)) minNum = 0;
		}else
			minNum = 0;
		if(dfmObject.maxNumber){
			maxNum = parseInt(dfmObject.maxNumber);
			if(isNaN(maxNum)) maxNum=0;
		}else
			maxNum = 0;

		if(dfmObject.datalength){
			datalength= dfmObject.datalength;
		}else
			datalength = 0;

		if(dfmObject.dataheader){
			datastart = dfmObject.dataheader.trim();
		}else
			datastart="";

		if(dfmObject.message){
			showmessage = dfmObject.message;
		}else
			showmessage=dfmObject.name;
		
		if(dfmObject.smessage){
			sMessage = dfmObject.smessage;
		}
		
		if(dfmObject.regex){
			sRegEx = dfmObject.regex;
		}else{
			sRegEx = "";
		}

		if(dfmObject.regexmsg){
			sRegExMsg = dfmObject.regexmsg;
		}else{
			sRegExMsg = "";
		}

		if(dfmObject.type=="select-one" || dfmObject.type=="select-multiple"){
			if(ischecked!=0){
		 		continue;
			}
			if(dfmObject.selectedIndex==-1 || dfmObject.options[dfmObject.selectedIndex].text.startsWith("请选择")){
				isSucc = 1;
			}else if(dfmObject.fieldname){
				var _vint = parseInt(dfmObject.options[dfmObject.selectedIndex].value);
				if(!isNaN(_vint)  && typeof(document.all(dfmObject.fieldname))=="object"){
					if(document.all(dfmObject.fieldname).type=="select-one"){
						var _vnext = parseInt(document.all(dfmObject.fieldname).options[document.all(dfmObject.fieldname).selectedIndex].value);
						if(!isNaN(_vnext)){
							if(_vint<_vnext){
								isSucc = 13;
								if(document.all(dfmObject.fieldname).message)
									sLowName = document.all(dfmObject.fieldname).message;
								else
									sLowName = document.all(dfmObject.fieldname).name
							}
						}
					}
				}
			}
		}else if(dfmObject.type=="radio" || dfmObject.type=="checkbox"){
			if(ischecked!=0){
		 		continue;
			}
			if(dfmObject.checkmult){
				isMult[mml] = new Array(dfmObject.checkmult,dfmObject.checked?"1":"0");
				mml++;
				var _mltsize= parseInt(dfmObject.checkmult);
				var _cursize = 0;
				var _curCount = 0;
				if(!dfmObject.checked && !isNaN(_mltsize)){
					for(m=0;m<mml;m++){
						if(isMult[m][0]==dfm[i].checkmult){							
							if(isMult[m][1]=="1"){
								 _curCount++;
								if(_curCount == Math.round(_mltsize % 10))
								 	break;
							}
							_cursize++;
							if (Math.round(_mltsize / 100) == _cursize){
								isSucc=8;
								break;
							}
						}
					}
				}				
			}
		}else{// if(dfm[i].type=="text" || dfm[i].type=="password" || dfm[i].type=="textarea")
			dfmObject.value = dfmObject.value.trim();
			var _txt = dfmObject.value;
			if(ischecked!=0 && _txt.length==0){
		 		continue;
			}
			if(dfmObject.checkmult){
				isMult[mml] = new Array(dfmObject.checkmult,_txt.length==0?"0":"1");
				mml++;
				var _mltsize= parseInt(dfmObject.checkmult);
				var _cursize = 0;
				var _curCount = 0;
				if(_txt.length==0 && !isNaN(_mltsize)){
					for(m=0;m<mml;m++){
						if(isMult[m][0]==dfmObject.checkmult){
							if(isMult[m][1]=="1"){
								_curCount++;										
								if(_curCount == Math.round(_mltsize % 10)){								 
									isSucc = 0;
									break;
								}
							}
							_cursize++;
							if (Math.round(_mltsize / 100) == _cursize){
								isSucc=8;
								break;
							}
						}
					}
				}	
				if(isSucc==0 && _txt.length==0) isSucc=-1;
			}
			if(isSucc==0){
				if(_txt.length==0){
					isSucc = 2;
				}else{
					if(datalength>0){
						if(_txt.length<datalength){
							isSucc = 3;
						}
					}
					if(isSucc==0 && datastart.length>0){
						if(!_txt.startsWith(datastart)){
								isSucc = 9;
						}
					}
					if(isSucc==0){
						if(dfmObject.checktwo){
							for(m=0;m<ttl;m++){
								if(isTwoTimes[m][0]==dfmObject.checktwo){
									if(isTwoTimes[m][1]!=_txt){
										isSucc = 4;
										break;
									}
								}
							}
							isTwoTimes[ttl] = new Array(dfmObject.checktwo,_txt);
							ttl++;
						}
						if(isSucc ==0 && dfmObject.checktype){
							ischecktype = parseInt(dfmObject.checktype);
							if(!isNaN(ischecktype)){
								switch(ischecktype){
									case 1://EMAIL
										if(!isEmail(_txt)) isSucc=5;
										break;
									case 2://NUMBER 数值
										if(!isNumber(_txt)){
											isSucc = 6;
										}else{
											if(dfmObject.minNumber){
												var _vint = parseInt(_txt);
												if(isNaN(_vint)){
													isSucc = 6;
												}else{
												 	if(minNum<maxNum){
														if(_vint<minNum || _vint>maxNum) isSucc = 11;
													}else if(minNum==maxNum){
														if(_vint<minNum) isSucc = 12;
													}
												}
											}
										}
										break;
									case 3://DATE
										if(!isDate(_txt)) isSucc = 7;
										break;
									case 4://Money
										if(!isMoney(_txt)){
											isSucc = 6;
										}else{
											var _vfloat = parseFloat(_txt);
											if(isNaN(_vfloat)){
												isSucc = 6;
											}else if(minNum<maxNum){
												if(_vfloat<minNum || _vfloat>maxNum) isSucc = 11;
											}else if(minNum==maxNum){
												if(_vfloat<minNum) isSucc = 12;
											}
										}
										break;
									case 5://与现有字段比较
										if(dfmObject.fieldname){
											var _vint = parseInt(_txt);
											if(!isNaN(_vint) && typeof(document.all(dfmObject.fieldname))=="object"){
												var _vnext = parseInt(document.all(dfmObject.fieldname).value);
												if(!isNaN(_vnext)){
													if(_vint<_vnext){
														isSucc = 13;
														if(document.all(dfmObject.fieldname).message)
															sLowName = document.all(dfmObject.fieldname).message;
														else
															sLowName = document.all(dfmObject.fieldname).name
													}
												}
											}
										}
										break;
								  case 6://其他不处理								  	
										break;
								  case 7://Mail-Hearder
								  	if(!isEmailHeader(_txt)){
								  		isSucc = 5;
								  	}
								  	break;
								  case 8://是否全是数字
									  if(!isNumeric(_txt)){
												isSucc = 6;
										}
										break;
								}
							}
						}
					}
				}
				if(isSucc==0 && sRegEx.length>0){
					if(!(new RegExp(sRegEx,"g")).test(_txt)){
						isSucc = 14;
					}
				}
			}
		}
		if(isSucc>0){
			switch(isSucc)
			{
				case 1:
					alert("请选择["+showmessage+"]");
					break;
				case 2:
					alert("请输入["+showmessage+"]");
					break;
				case 3:
					alert("输入数据["+showmessage+"]长度不够"+datalength+"位！");
					break;
				case 4:
					alert("两次输入的["+showmessage+"]不一致！");
					break;
				case 5:
					alert("输入的["+showmessage+"]不正确(数字，字母组合)！");
					break;
				case 6:
					alert("输入的["+showmessage+"]不全是数字！");
					break;
				case 7:
					alert("输入的["+showmessage+"]不正确([YY]YY/MM/DD [YY]YY-MM-DD)！");
					break;
				case 8:
					if(showmessage.indexOf("[")==-1)
						alert("请任意选择["+(sMessage.length==0?showmessage:sMessage)+"]输入！");
					else
						alert("请任意选择"+(sMessage.length==0?showmessage:sMessage)+"输入！");
					break;
				case 9:
					alert("输入的["+showmessage+"]请以"+datastart+"开头!");
					break;
				case 10:
					alert("输入的["+showmessage+"]不是正确的电话号码!");
					break;
				case 11:
					alert("输入的["+showmessage+"]必须介于"+minNum+"和"+maxNum+"之间!");
					break;
				case 12:
					alert("输入的["+showmessage+"]必须大于"+minNum+"!");
					break;
				case 13:
					alert("输入的["+showmessage+"]必须大于["+sLowName+"]!");
					break;
				case 14:
					alert("输入的["+showmessage+"]不正确("+sRegExMsg+")！");
					break;
				default:
					alert("此属性["+showmessage+"]有错误！");
			}
			if(dfmObject.type !="hidden")dfmObject.focus();
			return false;
		}
	}
	return true;
}

function windowOpen(wurl,width,height)
{
	if(!width){
		width = 300;
	}
	if(!height){
		height = 300;
	}
  var newWindow = window.open(wurl,"setpara","toolbar=no,width="+width+",height="+height);
  newWindow.focus();
}
function windownNew(wurl)
{
        var newWindow = window.open(wurl,"height=139,width=230,resizable=yes,scrollbars=no,toolsbar=no");
        newWindow.focus();
}
function windowload(wurl)
{
        var newWindow = window.open(wurl,"setpara","toolbar=no,width=300,height=300");
        newWindow.focus();
}
function isNumber(str){
	if(str=="") return false;
	if(str.charAt(0)=="-") str = str.substring(1);
	for(i=0;i<str.length;i++){
		if(str.charAt(i)<'0' || str.charAt(i)>'9') return false;
	}
	return true;
}

function isNumeric(str){
	if(str=="") return false;
	for(i=0;i<str.length;i++){
		if(str.charAt(i)<'0' || str.charAt(i)>'9') return false;
	}
	return true;
}

function isMoney(str){
	if(str=="") return false;
	var _ixm = str.indexOf(".");
	if(_ixm!=-1){
		 _ixm = str.indexOf(".",_ixm+1);
		 if(_ixm!=-1) return false;
	}
	for(i=0;i<str.length;i++)	{
		if(str.charAt(i)!='.' && (str.charAt(i)<'0' || str.charAt(i)>'9')) return false;
	}
	return true;
}
function isEmailHeader(strHeader){
	if(strHeader.search(/^\w+((-\w+)|(\.\w+))*[A-Za-z0-9]+$/) !=-1)
		return true;
	return false;
}
function isEmail(strEmail){
	if (strEmail.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1)
		return true;
	else
		return false;
}
function IsDate(str){
	var r = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
	if(r==null)return false;
	var d= new Date(r[1], r[3]-1, r[4]);
	return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);
}

function qChangeNumber(tfield,dfault){
	var _c_t = parseInt(document.all(tfield).value);
	if(isNaN(_c_t)) _c_t = dfault;
	return  _c_t;
}

function retKeyPress(){
	if(event.keyCode==13)
		return false;
	return true;
}

function retKeyPressNumber(){
	if(event.keyCode>47 && event.keyCode<58)
		return true;
	event.returnValue=false;
	return false;
}

function retMouseButton(){
	if(event.button==2){
     	event.returnValue=false;
		return false;
	}else
		return true;
}

function setFirstFocus(){
	var _ixm = 0;
	var _exitFor = 0;
	for(_ixm=0;_ixm<document.forms.length;_ixm++){
		var objFrm = document.forms[_ixm];
		var _ixp = 0;
		for(_ixp=0;_ixp<objFrm.length;_ixp++){
			if(objFrm[_ixp].type!="hidden" && !objFrm[_ixp].disabled && !objFrm[_ixp].readonly){
				objFrm[_ixp].focus();
				_exitFor=1;
				break;
			}
		}
		if(_exitFor==1) break;
	}
}

function clear() {
	Source=document.body.firstChild.data;
	document.open();
	document.close();
	document.body.innerHTML=Source;
}

function fromsubmit(frmName){
	if(checkfrm(frmName)){
		var frmObj = fetch_object(frmName);
		frmObj.submit();
	}
}

function fetch_object(idname){
	if(typeof(idname)=="object")
		return idname;
	else if (document.getElementById){
		return document.getElementById(idname);
	}else if (document.all){
		return document.all[idname];
	}else if (document.layers){
		return document.layers[idname];
	}else{
		return null;
	}
}
function fetch_tags(parentobj, tag){
	if (typeof parentobj.getElementsByTagName != 'undefined'){
		return parentobj.getElementsByTagName(tag);
	}else if (parentobj.all && parentobj.all.tags){
		return parentobj.all.tags(tag);
	}else{
		return null;
	}
}
function getShowMsg(sUrl,actTab,actObj,vsObj){
	try{
	    if (window.XMLHttpRequest) { // firefox
	        var myXmlHttp = new XMLHttpRequest(); 
	        myXmlHttp.onreadystatechange = function(){
				if( myXmlHttp.readyState == 4 ){
					if (myXmlHttp.status == 200){
						var xml = myXmlHttp.responseText;
						//alert(xml);
						myXmlHttp = null;
						loadXML(actTab,xml,actObj,vsObj);
					}
				}
			}
	        myXmlHttp.open("POST", sUrl, true);
	        myXmlHttp.send(null);
	    } else if (window.ActiveXObject) { //IE
	        var myXmlHttp = new ActiveXObject("Microsoft.XMLHTTP");                
		    if (!myXmlHttp){
		        myXmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
		    }
	        if (myXmlHttp) {
	            myXmlHttp.onreadystatechange =function(){
					if( myXmlHttp.readyState == 4 ){
						if (myXmlHttp.status == 200){
							var xml = myXmlHttp.responseText;
							//alert(xml);
							myXmlHttp = null;
							loadXML(actTab,xml,actObj,vsObj);
						}
					}
				}
	            myXmlHttp.open("POST", sUrl, true);
	            myXmlHttp.send();
	        }
	    }		
	}catch(e){
		alert("不能够创建远程通讯对象!");	
	}
}

function loadXML(handler,xmltxt,actObj,vsObj){
	if(document.implementation && document.implementation.createDocument){
		var oParser = new DOMParser();
		var xmldoc = oParser.parseFromString(xmltxt,"text/xml");
		handler(xmldoc,actObj,vsObj);
		xmldoc = null;
	}else if(window.ActiveXObject){
		var xmldoc = new ActiveXObject("Microsoft.XMLDOM");
		xmldoc.async=false;
		xmldoc.onreadystatechange=function(){
			if(xmldoc.readyState==4){
				//alert(xmltxt);
			 	handler(xmldoc,actObj,vsObj);
				xmldoc=null;
				actObj=null;
			}
		}
		xmldoc.loadXML(xmltxt);
		xmldoc = null;
	}
}

function xmlSelect(xmldoc,actObj,vsObj){
	var table = fetch_object(actObj);	
	for(;table.options.length>1;) table.options.remove(1);
	var employees = xmldoc.getElementsByTagName("item");
	for(var i=0;i<employees.length;i++){
		var e = employees[i];
		var ecode = e.getAttribute("ecode");
		if(!ecode || ecode==0){
			table.options.add(new Option(e.getElementsByTagName("text")[0].firstChild.nodeValue,e.getElementsByTagName("value")[0].firstChild.nodeValue) );
		}
		ecode = null;
		e = null;
	}
	table = null;
	actObj = null;
	employees=null;
	xmldoc = null;
}

function xmlArray(xmldoc,actObj,vsObj){
	var employees = xmldoc.getElementsByTagName("item");
	for(var i=0;i<employees.length && i<1;i++){
		var e = employees[i];
		for(var j=0;j<actObj.length;j++){
			if(actObj[j].startsWith("sp")){
				fetch_object(actObj[j]).innerText=e.getElementsByTagName(actObj[j])[0].firstChild.nodeValue;
			}else{
				fetch_object(actObj[j]).value=e.getElementsByTagName(actObj[j])[0].firstChild.nodeValue;
			}
		}
		e = null;
	}
	actObj = null;
	employees=null;
	xmldoc = null;
}

function xmlValue(xmldoc,actObj,vsObj){
	var employees = xmldoc.getElementsByTagName("item");
	for(var i=0;i<employees.length && i<1;i++){
		var e = employees[i];
		actObj = fetch_object(actObj);
		if(actObj.id && (actObj.id.startsWith("sp") || actObj.id.startsWith("div"))){
			actObj.innerText = e.getElementsByTagName("value")[0].firstChild.nodeValue;
			if(actObj.id=="divCheckUser"){
				if(actObj.innerText.indexOf("存在")!=-1){
					actObj.className="text-h3";
				}else{
					actObj.className="text-h1";
				}
			}
			if(vsObj){
				vsObj = fetch_object(vsObj);
				if(vsObj!=null){					
						vsObj.disabled=false;					
				}
			}
		}else{
			actObj.value=e.getElementsByTagName("value")[0].firstChild.nodeValue;
		}
		e = null;
		break;
	}
	actObj = null;
	employees=null;
	xmldoc = null;
}

function imgZoom(img){
	var zoom=parseInt(img.style.zoom, 10)||100;
	zoom+=event.wheelDelta/12;
	if (zoom>0) img.style.zoom=zoom+'%';
	return false;
}
//function document.body.onload(){
	//alert("bbb");
//}
//屏蔽鼠标右键 //function document.oncontextmenu(){event.returnValue=false;}
