/**
*	特别说明：本js目前只能支持的浏览器为：IE6.0-7.0  FireFox
*/
/**
*函数名:show_sub
*功能：级联菜单
*参数：sub_name 下级菜单的id
*	   selectValue 当前选中数值
*/
function show_sub(sub_name,selectValue)
{
	var array_name =  eval(sub_name + "_sub");		//数组名称
	var sel = document.getElementById(sub_name);		//取得二级菜单对象
	sel.length = 0;		//清空二级菜单
	for (i=0;i<array_name.length ;i++ )
		if (array_name[i][2] == selectValue)
			sel.options[sel.length] = new Option(array_name[i][1], array_name[i][0]);
}
/**
*函数名 : isDel 
*功能   : 询问是否删除，用于链接或者按钮的删除单条操作
*参数   : 无
*返回值 : true/false
*/
function isDel(){ 
	if(!confirm("确定要执行此操作吗？")){	
		return false; 
	}
	return true;
}

/**
*函数名 : isCheckDel  
*功能   : 选中并询问是否删除，当要删除的信息前有复选框时用此函数  
*参数   : name : 表单项check的name属性    
*返回值 : true/false
*/
function isCheckDel(name){
	var o =document.getElementsByName(name);
	deleteCount=0;
   	for(var i=0;i<o.length;i++){
		if(o[i].checked==true){
			deleteCount=1;
		}
	}
	if(deleteCount==0){
		//window.alert("请选择要删除的信息！");
		return false;
	}
	else{
		if(!confirm("确定要删除这条信息吗？")){	
			return false; 
		}
		return true;
	}
}

/**
*函数名 : selectAll  
*功能   : 复选框的全选,用于按钮或链接进行对复选框的全选操作 
*参数   : name        : 表单项check的name属性
*		: checkstatus : check的状态值
*返回值 : 无
*/
function selectAll(name,checkstatus){
	var o =document.getElementsByName(name);	
	if(!o){ 
		return;
	}
	if(!o.length){
		o.checked=checkstatus;
	}else{
		for(var i=0;i<o.length;i++){
			o[i].checked=checkstatus;
		}
	}
}

/**
*函数名 : isNum
*功能   : 校验表单项是否为数字
*参数   : id : 表单项的id属性
*返回值 : true/false
*/
function isNum(id){ 
	var o =document.getElementById(id);
	if(isNaN(o.value.trim())){		
		//window.alert("请输入数字！");
		return false;
	}
	return true;
} 

/**
*函数名 : isNull  
*功能   : 校验表单项是否为空
*参数   : id : 表单项的id属性
*返回值 : true/false
*/
function isNull(id){ 
	var o =document.getElementById(id);
	if(o.value.trim() =="" || o.value.trim() == null ){
		//window.alert("不能为空！");                  
		return false;
	}
	o.value = o.value.trim();
	return true;
}

/**
*函数名 : checkStrLen             
*功能   : 校验表单项的长度是否符合条件
*参数   : id  : 表单项的id属性    
*	      num : 用户设定的长度值
*返回值 : sum
*/
function checkStrLen(id,num){
	var o =document.getElementById(id);
	if(Len(o.value) > num){
		//alert("输入的字符太长！");
		return false;
	}
}
function Len(str){
    var i,sum;
    sum=0;
	for(i=0;i<str.length;i++){
		if ((str.charCodeAt(i)>=0) && (str.charCodeAt(i)<=255)){
			sum=sum+1;
		}else{
            sum=sum+2;
		}
    }
    return sum;
}

/**
*函数名 : checkIsEmail   
*功能   : 校验电子邮箱的书写格式       
*参数   : id : 表单项的id属性
*返回值 : true/false
*/
function checkIsEmail(id){ 
	var o =document.getElementById(id);
	if(! isEmail(o.value)){ 
		//alert("邮箱格式不正确！");
		return false;
	}
	return true;
}
function isEmail(strEmail) {
	if (strEmail.search(/^([\.a-zA-Z0-9_-]){1,}@[A-Za-z0-9]+((.|-)[A-Za-z0-9]+)*.[A-Za-z0-9]+$/) != -1){
		return true;
	}
}

/**
*函数名 : checkPasswordSame  
*功能   : 判断两个表单项的值是否相同    
*参数   : id1 : 表单项的id属性  
*         id2 : 表单项的id属性
*返回值 : true/false
*/
function checkPasswordSame(id1,id2){
	var o =document.getElementById(id1);
	var j =document.getElementById(id2);
	if ((o.value=o.value.trim())!=(j.value=j.value.trim())){ 
		//alert("您两次输入的密码不一样！请重新输入。");
		return false;
	}
	return true;
}

/**
*函数名 : checkIsNumber      
*功能   : 表单项只能为数字和"-",用于电话/银行帐号验证上,可扩展到域名注册等,注意：不能以"-"作为开头或者结尾
*参数   : id : 表单项的id属性
*返回值 : true/false
*/
function checkIsNumber(id){ 
	var o =document.getElementById(id);
	if(!isNumber(o.value)) { 
		//alert("您的电话号码不合法！");
		return false;
	}
	return true;
}
function isNumber(str){
	var Letters = "1234567890"; //可以自己增加可输入值
	var i;
	var c;
	if(str.charAt( 0 )=='-')
		return false;
	if( str.charAt( str.length - 1 ) == '-' )
		return false;
	for( i = 0; i < str.length; i ++ ){ 
		c = str.charAt( i );
		if (Letters.indexOf( c ) < 0)
			return false;
	}
	return true;
}

/**
*函数名 : checkContain           
*功能   : 限定表单项不能输入的字符
*参数   : id : 表单项的id属性
*返回值 : true/false
*/
function checkContain(id){ 
	var o =document.getElementById(id);
	if((contain(o.value, "@#$%^&*()<>?|}{"))){  // 可以自己增加不可输入值
		//alert("输入了非法字符");
		return false;
	}
	return true;
}
function contain(str,charset){
	for(i=0;i<charset.length;i++){
		if(str.indexOf(charset.charAt(i))>=0){
			return true;
		}
	}
}

/**
*函数名 : delSpaceTrim/delSpaceTrimLeft/delSpaceTrimRight/delSpaceTrimAll
*功能   : 删除字符串的空格
*参数   : id : 表单项的id属性
*返回值 : value
*/
//删除字符串俩端的空格
function delSpaceTrim(id){ 
	var o =document.getElementById(id);
	if(o.value=o.value.trim()){ 
		return o.value; 
	}
}
String.prototype.trim =function(){
    return this.replace(/(^\s*)|(\s*$)/g,""); 
}

//删除字符串左端的空格
function delSpaceTrimLeft(id){
	var o =document.getElementById(id);
	if(o.value=o.value.trimleft()){ 
		return o.value; 
	}
}
String.prototype.trimleft=function(){ 
    return this.replace(/(^\s*)/g,""); 
} 

//删除字符串右端的空格
function delSpaceTrimRight(id){ 	
	var o =document.getElementById(id);
	if(o.value=o.value.trimright()){ 
		return o.value; 
	}
}
String.prototype.trimright=function(){ 
    return this.replace(/(\s*$)/g,""); 
}

//删除所有空格
function delSpaceTrimAll(id){
	var o =document.getElementById(id);
	if(o.value=o.value.trimall()){ 
		return o.value; 
	}
}
String.prototype.trimall=function(){
    return this.replace(/\s+/g,"");
}

/**
*函数名 : checkDate     
*功能   : 校验时间格式,已精确到日
*参数   : id : 表单项的id属性
*返回值 : true/false
*/
function checkDate(id){
	var o =document.getElementById(id);
    var strLength;   
    if (o.value != ""){
		strLength= o.value.length;
	}else{
		strLength=0;   
    }   
    var tmpy="";   
    var tmpm="";   
    var tmpd="";   
    var status=0;   
  
    if ( strLength== 0){   
      return false;   
    }   
  
    for (i=0;i<strLength;i++){   
		if(o.value.charAt(i)== '-'){   
　　　		status++;   
　　	}   
		if (status>2){   
			return false;   
		}   
		if ((status==0) && (o.value.charAt(i)!='-')){   
			tmpy=tmpy+o.value.charAt(i);   
		}    
		if ((status==1) && (o.value.charAt(i)!='-')){   
			tmpm=tmpm+o.value.charAt(i);   
		}   
		if ((status==2) && (o.value.charAt(i)!='-')){   
			tmpd=tmpd+o.value.charAt(i);   
		}   
	}   
  
	year=new String (tmpy);   
	month=new String (tmpm);   
	day=new String (tmpd)   
     
	if((tmpy.length!=4 ) || (tmpm.length>2) || (tmpd.length>2)){   
		//alert("无效的日期!");   
		return false;   
	}   
	if(!((1<=month) && (12>=month) && (31>=day) && (1<=day)) ){   
		//alert ("无效的月份或者日子!");   
		return false;   
    }    
	if(!((year % 4)==0) && (month==2) && (day==29)){   
		//alert ("这一年不是闰年!");   
		return false;   
	}   
	if((month<=7) && ((month % 2)==0) && (day>=31)){   
		//alert ("这月天数只有30天!");   
		return false;   
	}    
	if((month>=8) && ((month % 2)==1) && (day>=31)){   
		//alert ("这月天数只有30天!");   
		return false;   
	}     
	if((month==2) && (day==30)){   
		//alert("二月不存在30日");   
		return false;   
	}    
  return true;   
}  

/**    
*函数名 : chkWebsites
*功能   : 校验url格式 
*参数   : id : 表单项的id属性
*返回值 : true/false
*/
function chkWebsites(id){
	var o =document.getElementById(id);
	var myReg = /^(http:\/\/[a-z0-9]{1,5}\.)+([-\/a-z0-9]+\.)+[a-z0-9]{2,4}$/;   
	if(!myReg.test(o.value)) {
		//alert("URL不合法！例如:\n http://www.baidu.com");
		return false;   
	}
	return true;   
}

/**
*函数名 : checkIDCard     
*功能   : 校验15位 或者18位 或者17位+X 的身份证号码
*参数   : value : 表单项的value属性
*返回值 : true/false
*/
function checkIDCard(id){
	var o =document.getElementById(id);
	var isIDcard=/^(\d{15}|\d{17}[x0-9])$/i; 
	if(!isIDcard.test(o.value)){ 
		//alert("请重新输入正确的身份证码！"); 
		return false; 
	} 
	return true;
}
function checkSubmitIsNull(id,msg){
	len = id.length;
	for(var i=0;i<len;i++){
		ret = isNull(id[i]);
		if(!ret){
			alert(msg[i]);
			break;
		}
	}
	return ret;
}
function checkSubmitIsNumber(id,msg){
	len = id.length;
	for(var i=0;i<len;i++){
		ret = isNum(id[i]);
		if(!ret){
			alert(msg[i]);
			break;
		}
	}
	return ret;
}

/**
*函数名 : 检测页面上字段     
*功能   : 检测数组中的字段是否有效
*参数   : id  : 需要检测不能为空的表单中元素的id数组
		  msg : 检测未通过时的提示信息
		  types:被检测数据的类型
*返回值 : true/false
*/
function checkSubmit(ids,msgs,types){
	len = ids.length;
	for(var i=0 ;i<len;i++){
		switch(types[i]){
			case 'NUM':   //数字型
				ret = isNum(ids[i]);
				break;
			case 'STRING'://字符串
				ret = isNull(ids[i]);
				break;
			case 'EMAIL': //邮件
				ret = checkIsEmail(ids[i]);
				break;
			case 'NUMBER'://电话号码
				ret = checkIsNumber(ids[i]);
				break;
			case 'DATE':  //日期检测
				ret = checkDate(ids[i]);
				break;
			case 'URL':  //网址
				ret = chkWebsites(ids[i]);
				break;
		}
		if (!ret)
		{
			alert(msgs[i]);
			return ret;
			break;
		}
	}
	return ret;
}
/**
*函数名 : 检测页面上的非法字段值     
*功能   : 检测页面上的非法字段值     
*参数   : type: 检测类型  LENGTH 检测长度（包含中文、非中文）
                          SUBMIT 检测提交时需要检测的元素
          id  : 需要检测不能为空的表单中元素的id数组
		  msg : 检测未通过时的提示信息
*返回值 : true/false
*/
function checkPublic(type,ids,msgs,other){
	len = ids.length;
	if (type=='LENGTH')
	{
		for(var i=0;i<len;i++){
			ret = checkCharLength(ids[i],other[i]);
			if(!ret){
				alert(msgs[i]);
				break;
			}
		}
		return ret;
	}
	if(type=="SUBMIT"){
		return checkSubmit(ids,msgs,other);
	}
	return true;
}

/* 收缩扩展多级列表
obj对应要控制的行
*/
function rowClicked(obj)
{
	
	var Browser = new Object();
	Browser.isMozilla = (typeof document.implementation != 'undefined') && (typeof document.implementation.createDocument != 'undefined') && (typeof HTMLDocument != 'undefined');
	Browser.isIE = window.ActiveXObject ? true : false;
	Browser.isFirefox = (navigator.userAgent.toLowerCase().indexOf("firefox") != - 1);
	Browser.isSafari = (navigator.userAgent.toLowerCase().indexOf("safari") != - 1);
	
	var imgPlus = new Image();
	imgPlus.src = "../images/menu_plus.gif";

  obj = obj.parentNode.parentNode;

  var tbl = document.getElementById("morelevel");
  var lvl = parseInt(obj.className);
  var fnd = false;

  for (i = 0; i < tbl.rows.length; i++)
  {
      var row = tbl.rows[i];

      if (tbl.rows[i] == obj)
      {
          fnd = true;
      }
      else
      {
          if (fnd == true)
          {
              var cur = parseInt(row.className);
              if (cur > lvl)
              {
                  row.style.display = (row.style.display != 'none') ? 'none' : (Browser.isIE) ? 'block' : 'table-row';
              }
              else
              {
                  fnd = false;
                  break;
              }
          }
      }
  }

  for (i = 0; i < obj.cells[0].childNodes.length; i++)
  {
      var imgObj = obj.cells[0].childNodes[i];
      if (imgObj.tagName == "IMG" && imgObj.src != '../images/menu_arrow.gif')
      {
          imgObj.src = (imgObj.src == imgPlus.src) ? '../images/menu_minus.gif' : imgPlus.src;
      }
  }
}


function checkCharLength(id,num){  
	var o =document.getElementById(id);
	var a=0; 
    for(var i=0;i<o.value.trim().length;i++)   
    {
		if(o.value.charCodeAt(i)>255)  //大于255的才是中文                  
		{
			a+=2;
		}  
		else
		{
			a+=1;
		}  
	} 
    if(a>=num){  
		return false;   
      }   
	o.value=o.value.trim();
	return true; 
	
}  