﻿//提交表单完整,参数Form
function checkIntegrity(obj){
	for (var i=0;i<obj.elements.length;i++){
		if (obj.elements[i].value ==""){
			alert("请完整填写！");
			obj.elements[i].select();
			return (false);
		}
	}
	return (true);
}
//单个对象value为空,参数Input
function checkNotNull(obj){
	if ((obj.value=="0") && (obj.tagName=="SELECT")) {
		alert("请选择必选项！");
		obj.focus();
		return(false);
	}
	if (obj.value==""){
		if (obj.tagName=="SELECT") {
			alert("请选择必选项！");
			obj.focus();
		}
		else {
			alert("请输入必填项！");
			obj.select();
		}
		return(false);
	}
	return (true);
}
//是否为数字,参数Input
function checkNum(obj){
	if(""+obj.value*5=="NaN"){
              alert("必须为数字！");
              obj.select();
              return(false);
        }
        return(true);        
}
//是否为正数,参数Input
function checkPlus(obj){
	if (!checkNum(obj)){
		return(false);
	}
	else
		if (obj.value<0){
			alert("此数字必须大于或等于0！");
			obj.select();
			return(false);
		}
	return(true);
}
//转换为金额
function transMoney(obj){
	temp="￥"+obj.value;
	return(temp);
}
//字符串合法,参数Form
function checkStr(myObj){
  var illegalStr="#<>~^'"+'"';
  for (p=0;p<myObj.elements.length;p++){
  	for(var i=0;i<myObj.elements[p].value.length;i++){
     	for(var j=0;j<illegalStr.length;j++){
        	if(myObj.elements[p].value.charAt(i)==illegalStr.charAt(j)){
          	alert("在您的输入字符串中不能包含以下英文字符，请改为相应的中文全角字符："+illegalStr);
          	myObj.select();
          	return(false);
        		}
     		}
  	}
  }
  return(true);
}
//字符串合法,参数Input
function checkValid(myObj){
	tmpValue = myObj.value
	//不检查上标、下标
	tmpValue = tmpValue.replace("<sup>","");
	tmpValue = tmpValue.replace("</sup>","");
	tmpValue = tmpValue.replace("<sub>","");
	tmpValue = tmpValue.replace("</sub>","");

  var illegalStr="#<>~^'"+'"';
  for(var i=0;i<tmpValue.length;i++){
     	for(var j=0;j<illegalStr.length;j++){
        	if(tmpValue.charAt(i)==illegalStr.charAt(j)){
          	alert("在您的输入字符串中不能包含以下英文字符，请改为相应的中文全角字符："+illegalStr);
          	myObj.select();
          	return(false);
        	}
     	}
  }
  return(true);
}
//Trim,参数String
function trim(myStr)
{
  var pos1=-1;
  var pos2=-1;
  for(var i=0;i<myStr.length;i++){
     if(myStr.charAt(i)!=' ' && pos1<0) pos1=i;
     if(myStr.charAt(myStr.length-i-1)!=' ' && pos2<0) pos2=myStr.length-i;
  }
  if(pos1<0 || pos2 <0) return("");
  return(myStr.substring(pos1,pos2));
}
//Trim,参数String
function checkTrim(obj)
{
  	if(!checkNotNull) {
  		return (false);
  	}
  	
  	if(trim(obj.value)==""){
  		alert("请不要输入空字符串！");
  		return (false);
  	}
  	
  	return (true);
}
//检查是否为Email Address
function checkEmail(obj)
{
	a=obj.value;
	var i=a.length;
	var temp = a.indexOf('@');
	var tempd = a.indexOf('.');
	if ( (tempd > temp) && (temp > 1) && ((i-temp) > 3) && ((i-tempd)>0) ) {
		return (true);
	}
	alert("Email地址有误！");
	obj.select();
	return (false);
}
//功能介绍：检查是否为日期
function checkDate(obj)
{
//alert(obj.value);
	datestr=obj.value;
	var lthdatestr=0;
//alert(datestr);
	if (datestr != "")
		lthdatestr= datestr.length ;
	else
		lthdatestr=0;		
//alert(lthdatestr);
	var tmpy="";
	var tmpm="";
	var tmpd="";
	var status;
	status=0;
	if ( lthdatestr== 0){
		return (true);
	}
	var i;
	for (var i=0;i<lthdatestr;i++)
	{	
		if (datestr.charAt(i)== '-')
		{
			status++;
		}
		if (status>2)
		{
			alert("日期输入有误2！");
			obj.select();
			return (false);
		}
		if ((status==0) && (datestr.charAt(i)!='-'))
		{
			tmpy=tmpy+datestr.charAt(i);
		}
		if ((status==1) && (datestr.charAt(i)!='-'))
		{
			tmpm=tmpm+datestr.charAt(i);
		}
		if ((status==2) && (datestr.charAt(i)!='-'))
		{
			tmpd=tmpd+datestr.charAt(i);
		}
	}
	year=new String (tmpy);
	month=new String (tmpm);
	day=new String (tmpd)
	tempdate= new String (year+month+day);
//alert(tempdate);
	if ((tmpy.length!=4) || (tmpm.length>2) || (tmpd.length>2))
	{
		alert("输入日期的错误！");
		obj.select();
		return (false);
	}
	if (!((1<=month) && (12>=month) && (31>=day) && (1<=day)) )
	{
		alert ("输入的日期越界！");
		obj.select();
		return (false);
	}
	if (!((year % 4)==0) && (month==2) && (day==29))
	{
		alert ("输入的日期不是闰年");
		obj.select();
		return (false);
	}
	if ((month<=7) && ((month % 2)==0) && (day>=31))
	{
		alert ("输入的日期不是大月！");
		obj.select();
		return (false);
	}
	if ((month>=8) && ((month % 2)==1) && (day>=31))
	{
		alert ("输入的日期不是大月！");
		obj.select();
		return (false);
	}
	if ((month==2) && (day==30))
	{
		alert("二月没有三十号！");
		obj.select();
		return (false);
	}
	return(true);
}

//功能介绍：检查字符串是否为时间
function checkTimeStr(timeStr) {
	var arrayTmp
	//判断参数是否为空
	if (timeStr=="") {return false;}
	arrayTmp = timeStr.split(":");
	//判断时间输入部分的长度
	if (!isNum(arrayTmp[0])||(arrayTmp.length>3)||(arrayTmp.length<=1)) {return(false);}
	//判断小时部分是否正确
	if (!isNum(arrayTmp[0])||(arrayTmp[0].length>2)||(""+arrayTmp[0]*5=="NaN")||(arrayTmp[0]>=24)||(arrayTmp[0]<0)) {return(false);}
	//判断分钟部分是否正确
	if ((arrayTmp[1].length>2)||(""+arrayTmp[1]*5=="NaN")||(arrayTmp[1]>=60)||(arrayTmp[1]<0)||!isNum(arrayTmp[1])) {return(false);}
	//判断秒钟部分是否正确
	if (arrayTmp.length==3) {
		if (((!isNum(arrayTmp[2]))||arrayTmp[2].length>2)||(""+arrayTmp[2]*5=="NaN")||(arrayTmp[2]>=60)||(arrayTmp[2]<0)) {return(false);}
	}
	return(true);
}

//功能介绍：检查字符串是在指定字符串内（数字）
function isNum(tmpStr) {
	var i;
	var str="0123456789";
	for (i=0;i<tmpStr.length;i++) {
		if (str.indexOf(tmpStr.charAt(i))<0){return(false);}
	}
	return(true);
}

//功能介绍：检查字符串是否为日期时间
function checkDateTime(obj) {
	var datetimeStr
	var arrayTmp
	datetimeStr = obj.value;
	//判断参数是否为空
	if (datetimeStr=="") {return true;}
	arrayTmp = datetimeStr.split(" ");
	//判断时间输入部分的长度
	if (arrayTmp.length>2) {
		alert ("日期/时间输入错误！");
		obj.select();
		return(false);
	}
	//判断日期时间是否正确
	if (arrayTmp.length==1) { //只输入了日期的情况
		if (!checkDateStr(arrayTmp[0])){
			alert ("日期/时间输入错误！");
			obj.select();
			return(false);
		}
	}
	if (arrayTmp.length==2) { //输入了日期和时间的情况
		if (!checkDateStr(arrayTmp[0])||!checkTimeStr(arrayTmp[1])){
			alert ("日期/时间输入错误！");
			obj.select();
			return(false);
		}
	}
	return(true);
}

//功能介绍：检查字符串是否为日期
function checkDateStr(datestr) {
	var tmpy,tmpm,tmpd;
	var arrayTmp
	//判断参数是否为空
	if (datestr=="") {return false;}
	arrayTmp = datestr.split("-");
	//判断日期输入部分的长度 
	if (arrayTmp.length!=3) {return(false);}
	tmpy = arrayTmp[0]
	tmpm = arrayTmp[1]
	tmpd = arrayTmp[2]
	if ((tmpy.length!=4) || (tmpm.length>2) || (tmpd.length>2)) {return (false);}//输入日期的错误！
	if (!((1<=tmpm) && (12>=tmpm) && (31>=tmpd) && (1<=tmpd)) ) {return (false);}//输入的日期越界！
	if (!((tmpy % 4)==0) && (tmpm==2) && (tmpd==29)) {return (false);}//输入的日期不是闰年！
	if ((tmpm<=7) && ((tmpm % 2)==0) && (tmpd>=31)) {return (false);}//输入的日期不是大月！
	if ((tmpm>=8) && ((tmpm % 2)==1) && (tmpd>=31)){return (false);}//输入的日期不是大月！
	if ((tmpm==2) && (tmpd==30)){return (false);}//二月没有三十号！
	return(true);
}

//判断TEXTAREA的字符长度
function checkMax(obj,type){
	var myValue;
	myValue=type.substring(type.indexOf('=')+1,type.length);
	if (getLength(obj.value)>myValue){
		alert("字符串长度不能超过"+myValue+"!");
		obj.select();
		return(false);
		}
	return(true);
}
//读取字符串长度
function getLength(str) {
	var result;
	result = 0;
	for (var i=0;i<str.length;i++) {
		if (escape(str.substr(i,1)).length==6) {
			result+=2;
		}
		else {
			result+=1;
		}
	}
	return(result);
}
//本函数判断输入数据的范围
function NumBetween(obj,type){
	 var MathClass=type.substring(0,1);
	 var CompareNum=type.substring(1,type.length);
	 if (type.indexOf('=')>0){
	 	MathClass=type.substring(0,2);
	 	CompareNum=type.substring(2,type.length);
	 }
	 if(obj.value=="") {return(true);}
         if(!checkNum(obj)){return(false);}
         switch(MathClass){
		case ">=":{
			if(parseFloat(obj.value)<parseFloat(CompareNum)) {
				alert("请输入大于等于"+CompareNum+"的数!");
				obj.select();
				return(false);}
			break;
		}
		case ">":{
			if(parseFloat(obj.value)<=parseFloat(CompareNum)) {
				alert("请输入大于"+CompareNum+"的数!");
				obj.select();
				return(false);}
			break;
		}
		case "<=":{
			if(parseFloat(obj.value)>parseFloat(CompareNum)) {
				alert("请输入小于等于"+CompareNum+"的数!");
				obj.select();
				return(false);}
			break;
		}
		case "<":{
			if(parseFloat(obj.value)>=parseFloat(CompareNum)) {
				alert("请输入小于"+CompareNum+"的数!");
				obj.select();
				return(false);}
			break;
		}
		default:{}
	}
return(true);
}

//××××××××××××××××
function mySubmit(){
	var thisObj,thisCP,undefined;
	var thisForm;
	thisForm=event.srcElement;
	for (var i=0; i<thisForm.elements.length;i++) {
		thisObj=thisForm.elements(i);
		thisObj.cp = thisObj.CP;
  		if ((thisObj.CP!=undefined) && (thisObj.CP!="")) {
  			thisCP=thisObj.CP;
  			while (thisCP.indexOf(';')>0){
  				myTemp=thisCP.substring(0,thisCP.indexOf(';'));
  				thisCP=thisCP.substring((thisCP.indexOf(';')+1),thisCP.length);
  				if(!checkAll(thisObj,myTemp)) {return (false);}
  			}
  			if(!checkAll(thisObj,thisCP)) {return (false);}
  		}	
  	}
return (true);	
}

function checkForm(k){
	var thisObj,thisCP,undefined;
	var thisForm;
	if (k==null) {k=0}
	thisForm=document.forms[k];
	for (var i=0; i<thisForm.elements.length;i++) {
  		thisObj=thisForm.elements(i);
  		thisObj.cp = thisObj.CP;
  		if ((thisObj.CP!=undefined) && (thisObj.CP!="")) {
  			thisCP=thisObj.CP;
  			while (thisCP.indexOf(';')>0){
  				myTemp=thisCP.substring(0,thisCP.indexOf(';'));
  				thisCP=thisCP.substring((thisCP.indexOf(';')+1),thisCP.length);
  				if(!checkAll(thisObj,myTemp)) {return (false);}
  			}
  			if(!checkAll(thisObj,thisCP)) {return (false);}
  		}	
  	}
return (true);
}

var my_global_blur_obj;					//全局对象变量
var my_global_change_color_times=0;		//全局变色次数变量
var my_global_blur_interval_handle;		//全局设置间隔句柄
//当用户输入有误时变色提示
function blurIt(obj)
{
	my_global_blur_obj = obj;
	my_global_change_color_times=0;
	
	if(my_global_blur_interval_handle!=null) clearInterval(my_global_blur_interval_handle);
	my_global_blur_interval_handle=setInterval("myChangeColor()",500);
	return 0;
}
function myChangeColor()
{
	if(my_global_change_color_times<4){
		if(my_global_change_color_times%2==0)
			my_global_blur_obj.style.background = "#ff0000";
		else
			my_global_blur_obj.style.background = "#00ff00";
	}else{
		clearInterval(my_global_blur_interval_handle);
		my_global_blur_obj.style.background = "#ffffff";
		my_global_change_color_times =0;
	}
	my_global_change_color_times++;
	return 0;
}
function checkAll(obj,type){
	switch(type){
		case "NotNull":{
			if(!checkNotNull(obj)){
				obj.focus();
				blurIt(obj);
				return(false);
			}
			break;
		}
		case "Trim":{
			if(!checkTrim(obj)){
				obj.focus();
				blurIt(obj);
				return(false);
			}
			break;
		}
		case "Num":{
			if(!checkNum(obj)){
				obj.focus();
				blurIt(obj);
				return(false);
			}
			break;
		}
		case "Date":{
			if(!checkDate(obj)){
				obj.focus();
				blurIt(obj);
				return(false);
			}
			break;
		}
		case "DateTime":{
			if(!checkDateTime(obj)){
				obj.focus();
				blurIt(obj);
				return(false);
			}
			break;
		}
		case "Plus":{
			if(!checkPlus(obj)){
				obj.focus();
				blurIt(obj);
				return(false);
			}
			break;
		}
		case "Email":{
			if(!checkEmail(obj)){
				obj.focus();
				blurIt(obj);
				return(false);
			}
			break;
		}
		case "Valid":{
			if(!checkValid(obj)){
				obj.focus();
				blurIt(obj);
				return(false);
			}
			break;
		}
		default:{}
	}
	if (type.indexOf('Max')>=0){
		if(!checkMax(obj,type)){
				obj.focus();
				blurIt(obj);
				return(false);
			}
	}
	if ((type.indexOf('>')>=0)||(type.indexOf('<')>=0)) {
		if(!NumBetween(obj,type)){
				obj.focus();
				blurIt(obj);
				return(false);
			}
	}
return(true);
}
window.onload=Prepare;
function Prepare(){
	for(var i=0;i<document.forms.length;i++){
		document.forms[i].onsubmit=mySubmit;
	}
}

// ------------------------------------------------------------------------------------
// the next script write by gerry

function $(v){return document.getElementById(v);}
String.prototype.trim=function(){return this.replace(/(^\s*)|(\s*$)/g,"");};

function zGetXmlHttp()
{
	if (window.ActiveXObject)
	{
		try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) {}
		try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) {}
	}
	else try { return new XMLHttpRequest(); } catch(e) {}
    return null;
}

function zCallServerString(sUrl)
{
    sUrl += "&zzz=" + new Date().valueOf();
	var xmlHttp = zGetXmlHttp();
	xmlHttp.open("get",sUrl,false);
	xmlHttp.send(null);

	if (xmlHttp.readyState == 4 && xmlHttp.status == 200)
		 return xmlHttp.responseText;
	else return "";
}