﻿//根据按钮决定执行的动作
function BeforeSubmit(ele){ 
  //检查数据合法性	
  if(!PublicCheck())  return;	 
	
  if(ele.name=="save"){
     document.all.issave.value = "2";
  }else if(ele.name=="submit"){	
     document.all.issave.value = "1";	
  }else if(ele.name=="submimanage"){
     document.all.issave.value = "3";		
  }else if(ele.name=="reset"){
     document.all.mainform.reset();
     return;
  }else{
     return;
  }
  
  document.all.mainform.submit();
}

 function checkEmail(emailStr) {

               if (emailStr.length == 0) {
                   return false;
               }

               var emailPat=/^(.+)@(.+)$/;
               var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
               var validChars="\[^\\s" + specialChars + "\]";
               var quotedUser="(\"[^\"]*\")";
               var ipDomainPat=/^(\d{1,3})[.](\d{1,3})[.](\d{1,3})[.](\d{1,3})$/;
               var atom=validChars + '+';
               var word="(" + atom + "|" + quotedUser + ")";
               var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
               var domainPat=new RegExp("^" + atom + "(\\." + atom + ")*$");
               var matchArray=emailStr.match(emailPat);
               if (matchArray == null) {
                   return false;
               }
               var user=matchArray[1];
               var domain=matchArray[2];
               if (user.match(userPat) == null) {
                   return false;
               }
               var IPArray = domain.match(ipDomainPat);
               if (IPArray != null) {
                   for (var i = 1; i <= 4; i++) {
                      if (IPArray[i] > 255) {
                         return false;
                      }
                   }
                   return true;
               }
               var domainArray=domain.match(domainPat);
               if (domainArray == null) {
                   return false;
               }
               var atomPat=new RegExp(atom,"g");
               var domArr=domain.match(atomPat);
               var len=domArr.length;
               if ((domArr[domArr.length-1].length < 2) ||
                   (domArr[domArr.length-1].length > 3)) {
                   return false;
               }
               if (len < 2) {
                   return false;
               }
               return true;
            }
            

/******************************/
/*初始化具有OLDVALUE属性的下拉列表框*/
/******************************/
function InitSelect(){
  var sels = document.all.tags("select");

  //遍历所有的SELECT
  for(var i=0;i<sels.length;i++){
     var value = sels[i].getAttribute("OLDVALUE");
     if(value!=null){
        //和SELECT中的每个值做比较  
        for(var j=0;j<sels[i].length;j++){
            if(value==sels[i].options[j].value){
               sels[i].selectedIndex = j;
               break;
            }
        }
     }
  }
}

//LOAD第一个超链页面
function LoadFirstPage(){
 var eles = document.all.tags("a");
 //return;    //test
 
 if(eles == null) return;
 
 //单条记录
 if(eles.length == null){
	 if(eles.getAttribute("NOTLINK")!="true"){
	     eval(eles.getAttribute("href"));
	 } 	
 }else{
     for(var i=0;i<eles.length;i++){
		if(eles[i].getAttribute("NOTLINK")!="true"){
		   eval(eles[i].getAttribute("href"));
		   break;
		}
	 }
 }
}  
  
/****************************/
/*给URL打时间戳*/
/*若已有时间戳，则替换，反之则添加*/
/************************/
function AddTimeValue(url){
	var d     = new Date();
	var ind   = url.indexOf("&TTIME");
	var newURL=null;
	
	if(ind!=-1){
	  newURL = url.substring(0,ind);
	}else{
	  newURL = url ;
	}
	
	//判断该URL是否带有参数
	if((ind=url.indexOf("?"))==-1){
	  newURL = newURL + "?TTIME=" + d.getTime();	
	}else{
	  newURL = newURL + "&TTIME=" + d.getTime();
	}
	return(newURL);
} 

//检查所有数据类型是否符合要求

//检查是否整数
//@value   要检查的值
//@return  是整数就返回TRUE
function isNumber(value){
	if(!isNaN(value)&&(value.indexOf('.')==-1)){
		return(true);
	}
	
	return(false);
}


//检查数据类型
//@return true:符合要求 false:不符合要求
function PublicCheck(formname){
  //alert('check start');	
  //var inputs = document.all.tags("input");
  var inputs =formname.tags("input");
  var dataType = null;
  
  

  //alert(inputs);
  //遍历所有的INPUT
  for(var i=0;i<inputs.length;i++){
     dataType = inputs[i].getAttribute("DATATYPE");    //获得数据类型
     //inputs[i].focus();
     //alert(inputs[i].id);
     //alert(dataType);
     if(dataType!=null){
     	inputs[i].focus();
	     if(dataType == 'numbernonull'){
	     	if(!isNumber(inputs[i].value)||Trim(inputs[i].value)==''){
	     		alert(inputs[i].id + ' 输入框必须为整数-现在的值为：' + inputs[i].value);
	     		return(false);
	     	}
	     	//判断是否是非负数
	     	if((0-inputs.value)>0){
	     		alert(inputs[i].id + ' 输入框必须为非负-现在的值为：' + inputs[i].value);
	     		return(false);	     		
	     	}	
	     }if(dataType == 'number'){
	     	if(!isNumber(inputs[i].value)){
	     		alert(inputs[i].id + ' 输入框必须为整数-现在的值为：' + inputs[i].value);
	     		return(false);
	     	}
	     	//判断是否是非负数
	     	if((0-inputs.value)>0){
	     		alert(inputs[i].id + ' 输入框必须为非负-现在的值为：' + inputs[i].value);
	     		return(false);	     		
	     	}	
	     }else if(dataType == 'float'){
	     	if(isNaN(inputs[i].value)||Trim(inputs[i].value)==''){
	     		alert(inputs[i].id + ' 输入框必须为数字-现在的值为：' + inputs[i].value);
	     		return(false);
	     	}	
	     	//判断是否是非负数
	     	if(0 > parseFloat(inputs[i].value)){
	     		alert(inputs[i].id + ' 输入框必须为非负-现在的值为：' + inputs[i].value);
	     		return(false);	     		
	     	}		     	     	
	     }else if(dataType == 'degafloat'){   //可以为负数
	     	if(isNaN(inputs[i].value)||Trim(inputs[i].value)==''){
	     		alert(inputs[i].id + ' 输入框必须为数字-现在的值为：' + inputs[i].value);
	     		return(false);
	     	}	
	     }else if(dataType == 'email_input'){  
			if(Trim(inputs[i].value) == ''){
	     		alert(inputs[i].id + ' 输入框不能为空值');
	     		return(false);	     		
	     	}
	     	if((Trim(inputs[i].value)!='')&&(checkEmail(inputs[i].value)==false)){
	     		alert(inputs[i].id + ' 输入框必须为email-现在的值为：' + inputs[i].value);
	     		return(false);
	     	}	
	     }else if(dataType == 'not null'){
	     	if(Trim(inputs[i].value) == ''){
	     		alert(inputs[i].id + ' 输入框不能为空值');
	     		return(false);	     		
	     	}
			/*alert(inputs[i].getAttribute("maxlength"));
			if(inputs[i].getAttribute("maxlength")&&inputs[i].value.length>inputs[i].getAttribute("maxlength"))
			{
				alert(inputs[i].id + ' 长度太长');
	     		return(false);	     		
	     	}*/
	     }
     }
  }
  
  var selects = formname.tags("select");//document.all.tags('select');
  //遍历所有的select
  for(var i=0;i<selects.length;i++){
     if(selects[i].value=='bad'||selects[i].value=='BAD'){
     		alert('下拉列表框' + selects[i].name + '的值必须被选择');
     		return(false);     	
     }
  }   
  
  
  var textarea = formname.tags("textarea");//document.all.tags("textarea");
  dataType = null;
   //alert(inputs.length);
  //遍历所有的INPUT
  for(var i=0;i<textarea.length;i++){
     dataType = textarea[i].getAttribute("DATATYPE");    //获得数据类型
     
     //alert('ok');
     if(dataType!=null){
     	textarea[i].focus();
	     	//判断是否是非负数
	     	if(dataType == 'not null'){
	     	if(Trim(textarea[i].value) == ''){
	     		alert(textarea[i].id + ' 输入框不能为空值');
	     		return(false);	     		
	     	}
	     }
	     
	   }
	}
	
	
  return(true);
}  

//去除字符串头尾的空格
//@str 被TRIM的字符串
function Trim(str){
   if(str == null) return(null);
   	
   //去除头上的空格	
   var start = 0,end = 0;   //记录字符串的起始和结束位置
   var i = 0;
   while(i<str.length){
   	  //判断是否为空格
   	  if(str.charAt(i) == ' '){
   	  	i++;
   	  }else{
   	    start = i;
   	    break;
   	  }
   }
   
   i = str.length -1;
   while(i>=0){
   	  //判断是否为空格
   	  if(str.charAt(i) == ' '){
   	  	i--;
   	  }else{
   	    end = i + 1;
   	    break;
   	  }
   }   
   
   //alert(start + ' ' + end);
   //alert(str.substring(start,end) == '');
   return(str.substring(start,end));
}

/*******************************************/
/*正在查看的信息的颜色显示*/
/*******************************************/    
var selectedInd = -1;   //被选中的记录的下标

//为选中的记录行置颜色
function TableClick(){
  var ele = event.srcElement;
  var showhrefs = document.all.showhref;
  var showtds   = document.all.showtd;

  if(ele.name==null||ele.name!="showhref") return;

  //单条记录
  if(showtds.length == null){
      showtds.bgColor = "#fef349"; 
  }else{	 
	  for(var i=0;showhrefs.length;i++){
	    if(showhrefs[i] == ele){
	        selectedInd = i;
	        showtds[i].bgColor = "#fef349";
	        break;
	    }
	  }
	  
	  if(selectedInd!=-1){
	     //alert('td:' + tds.length);
	     for(var i=0;i<showtds.length;i++){
	       if(i!=selectedInd){
	            showtds[i].bgColor = "white";
	       }
	     }
	  }
   }
}  

//另一个函数，保持兼容性
var focusTD = null;

function DivClick(){
  var ele = event.srcElement;
  if(ele.tagName!="A") return;
  var tds = document.all.tags("td")
  var items = document.all;
 
  
  for(var i=0;items.length;i++){
    if(items[i] == ele){
        focusTD = items[i-1] ;
        focusTD.bgColor = "#fef349";
        break;
    }
  }
  
  if(focusTD!=null){
     for(var i=0;i<tds.length;i++){
       if(tds[i].getAttribute("name")=="chagecol"&&tds[i]!=focusTD){
             tds[i].bgColor = "white";
       }
     }
  }
}
//*********************************************************************
//
//页面初始化函数，当页面被请求时调用此函数！
//
//    函数取页面的第一个超链，然后执行此超链
//
//**********************************************************************

function InitFirst(){
  var eles = document.all.tags("a");         //没有值将赋空字符串
  var ele;
  
  if(eles == null||eles.length == 0) return;
  
  //单条记录
  if(eles.length == null){
     ele = eles ;
  } else{
     ele = eles[0];
  }
  
  if(ele.getAttribute("NOTLINK")!="false")
     eval(ele.getAttribute("href"));
}