///////////////////判断字符串是否为空
function CheckBlank(str) {
	re=/^\s*$/;
	return (re.test(str));
}

function IsInt(str) {
	re=/^\d+$/;
	if (re.test(str)) {
		if (str.length>1) {
			if (str.substring(0,1)!="0") return true;
			else return false;
		}else return true;
	}else return false;
}

function IsFloat(str) {
	if (CheckBlank(str)) return false;
	re=/^\d*[\.]{0,1}\d*$/;
	if (re.test(str)) {
		splitAt=str.indexOf(".");
		if (splitAt>=0) {
			firstPart=str.substring(0,splitAt);
			if (CheckBlank(firstPart) || IsInt(firstPart)) return true;
			else return false;
		}else return true;
	}else return false;
}
///////////////////判断是否是IP地址
function ValidIP(str)
{

   for(var i=0;i<str.length;i++)
     {
       lls=str.substring(i,i+1);
       if (!((lls>='0' && lls<='9') ||  lls=='.' ))
	  return false;
     }

	return true;

}

////////////////////////判断Email地址合法性
function ValidString(str)
{
   //判断是否是由0-9,a-z,A-Z,-, _ 和.组成的字符串
   for(var i=0;i<str.length;i++)
     {
       lls=str.substring(i,i+1);
       if (!( (lls>='0' && lls<='9') ||  (lls>='A' && lls<='Z') || (lls>='a' && lls<='z') || lls=='-' || lls=='_' ||  lls=='.' ))
		return false;
     }

	return true;

}



function ValidEmailChar(str)
{
    //首先判断是否有@号和.号
    var index=str.indexOf("@");
    if (str=="" || index==-1 || index==0)
	return false;

    //分隔username和hostname
	var user=str.substring(0,index);
	var host=str.substring(index+1);

    var index1=host.indexOf(".");
	len=host.length;
    if (index1==-1 || index1==0 || index1>len-3)
	return false;

       if(! ValidString(user))
	  return false;

       if(! ValidString(host))
	  return false;

       if(ValidIP(host))
	  return false;

	return true;

}

function ValidEmail(obj,errmsg)
{
   var str = obj.value;
  if(ValidEmailChar(str))
     return true;
  else
  {
       if(errmsg) alert(errmsg);
       obj.focus();
     return false;
  }

}

//////////////////////////////数字或价格栏位校验
function ValidNum(obj,errmsg)
{
  if(isNaN(obj.value)==true)
  {
     alert(errmsg);
     obj.focus();
     return false;
  }
  else
     return true;
}

//////////////////////////////文本或数字栏是否为空的校验
function IsEmpty(obj,errmsg,debug)
{
	if (typeof(obj)!="object") {
		if(debug) alert("无效的对象名");
		return true;
	}

	if (obj.value=="undefined") {
		if(debug) alert("无效的对象名");
		return true;
	}

	var str = obj.value;
	if (CheckBlank(str)) {
		if(errmsg) alert(errmsg);
		obj.focus();
	   	return true;
	}

    return false;
}

//////////////////////////////用户名或密码这样的文字栏校验
function ValidateString(obj,objname,minlength)
{
	errors="";
	if (IsEmpty(obj))
	{
		 errors += objname +"不能为空！\n";
         	alert(errors);
		 return false;
	}
    	str=obj.value;
    	if(str.length<minlength)
    	{
    	 	errors += objname +"不得少于"+ minlength + "位！\n";
    	 	alert(errors);
		 return false;
	}

	if (str.search(/[^A-Za-z0-9_]/)>=0) errors +=objname+ "中有非法字符！\n";
	//if (str.search(/[A-Za-z]/)<0) errors += objname + "至少要有一个英文字母！\n";
	if (errors!="")
	{
	    alert(errors);
	    obj.focus();
	}

	return (errors=="");
}


//////////////////////////////电话号码/传真栏校验
 function CheckTel(Tel)
{
	var i,j,strTemp,len;
	len=Tel.length;
	if(len<8 || len>32)	return 0;
	strTemp="0123456789-()# ";
	for (i=0;i<len;i++){
		j=strTemp.indexOf(Tel.charAt(i));
		if (j==-1) return 0;
	}
	return 1;
}

/////////////////////////////////手机栏校验
function CheckMobile(Tel)
{
	var i,j,strTemp,len;
	len=Tel.length;
	if(!(len==11 || len==12))
		return 0;
	strTemp="0123456789";
	for (i=0;i<len;i++)
	{
		j=strTemp.indexOf(Tel.charAt(i));
		if (j==-1)
			return 0;
	}

	return 1;
}

////////////////////////////////查看一系列数字/价格栏位的数字校验，这些栏位的名称应该都含有objname参数指明的字串，
////////////////////////////////单个栏位可以为空，但是所有栏位不能都为空。
function CheckAllPrice(objname)
{
  var isnull=1;
  var iserror=0;
  for (i=0;i<=document.form1.elements.length-1;i++)
  {
    if(document.form1.elements[i].name.indexOf(objname)!=-1)
    {
       if(document.form1.elements[i].value=='');
       else
       {
          isnull=0;
          if(verifynum(document.form1.elements[i].value)==true);
          else
              iserror=1;

       }

          //alert(iserror);
    }

  }

  if(isnull==0 && iserror==0)
     return 1;
  else
     return 0;

}
/*  函数功能：判断传入参数是否为yyyy-mm-dd或
			  yyyy/mm/dd,yyyy.mm.dd格式的正确日期
			  2001/01/2和2001-3-04也是允许的格式
			  如果是，则返回true
			  如果否，则返回false
*/
function isDate(sDate)
{
	var sDate=sDate.replace(/(^\s+|\s+$)/g,"");
	if(sDate=="")	return true;
	var s = sDate.replace(/[\d]{4,4}[\.\-\/]{1}[\d]{1,2}[\.\-\/]{1}[\d]{1,2}/g,"");
	if (s=="") //说明格式满足YYYY-MM-DD或YYYY-M-DD或YYYY-M-D或YYYY-MM-D
	{
		sDate=sDate.replace(/\-/g,"/");
		sDate=sDate.replace(/\./g,"/");

		var t=new Date(sDate);

		var iYear=t.getYear();
		if (iYear<100) (iYear+=1900);
		var iMonth=t.getMonth()+1;
		var iDay=t.getDate();

		var ar = sDate.split(/[/]/);

		if(ar[0] != iYear || ar[1] != iMonth || ar[2] != iDay)	{
			//alert("错误的日期格式！格式为：YYYY-MM-DD或YYYY/MM/DD或YYYY.MM.DD。注意闰年。");
			return false;
		}
	}else{
		//alert("错误的日期格式！格式为：YYYY-MM-DD或YYYY/MM/DD或YYYY.MM.DD。");
		return false;
	}
	return true;
}
/*
	函数名称：trim
	函数功能: 去除字符串头部和尾部的空格
	传入参数：字符串变量
	传出结果：处理后的子串
*/
function trim(str){
	return str.replace(/(^\s*)|(\s*$)/g, "");
}

/*
	函数名称：checkString()
	函数功能: 不能包含&、’、”、<、>、:、;等特殊字符;
		合法字符：32（空格）、48~57（数字）、65~90（大写字符）、95（下划线）、97~122（小写字符）、>127（汉字）。
	作		者：PeopleSolution #1
	创建时间：2001/06/14
	传入参数：字符串变量
	传出结果：处理后的子串
*/
function checkString(str){
	var strChar = str;
	var isValid = true;
	for (var i = 0; i < str.length; i++){
		if ( (str.charCodeAt(i) == 32) || ((str.charCodeAt(i) >= 48) && (str.charCodeAt(i) <= 57)) || ((str.charCodeAt(i) >= 65) && (str.charCodeAt(i) <= 90)) || (str.charCodeAt(i) == 95) || ((str.charCodeAt(i) >= 97) && (str.charCodeAt(i) <= 122)) || (str.charCodeAt(i) > 127) ) {
			// do nothing
		} else {
			isValid = false;
			break;
		}
	}
	return isValid;
}

//动态生成某个Select的内容
function ChangeSelect(obj,locationid)
{
	obj.length = 0;
	obj.options[0] = new Option('==请选择==','');
	for (i=0; i<subcat.length; i++)
	{
		if (subcat[i][0] == locationid)
		{obj.options[obj.length] = new Option(subcat[i][1], subcat[i][2]);}
	}
}

//将表格内容导出成Excel格式,report是该表格的id
function AutomateExcel(report)
{

      var oXL = new ActiveXObject("Excel.Application");
      oXL.Visible = true;
      var oWB = oXL.Workbooks.Add();
      var oSheet = oWB.ActiveSheet;
      //oSheet.Cells(1, 1).Value = report.rows[0].cells[0].innerText;

      for(i=0;i<report.rows.length;i++)
      {
        for(j=0;j<report.rows[i].cells.length;j++)
		oSheet.Cells(i+1,j+1).Value = report.rows[i].cells[j].innerText;
      }
}


function ValidZipcode(str) {
	var ZipRe=/^\d{6}$/;
	return ZipRe.test(str);
}

function ValidIdentityNO(str) {
	var IdNoRe=/^(\d{15}|\d{17}[0-9X]{1})$/;
	var BirthStr="";

	if (IdNoRe.test(str)) {
		if (str.length==18) BirthStr=str.substring(6,10)+"-"+str.substring(10,12)+"-"+str.substring(12,14);
		else BirthStr="19"+str.substring(6,8)+"-"+str.substring(8,10)+"-"+str.substring(10,12);
		if (!isDate(BirthStr)) return false;
		else return true;
	}else return false;
}

function ValidUrl(str) {
	var UrlRe=/^(http:\/\/){0,1}(\w+|\w+\-\w+)\.(\w+|\w+\-\w+)(\.(\w+|\w+\-\w+))*\/{0,1}$/;
	return UrlRe.test(str);
}

////////////////////////////////计算两个日期之差（日期格式 2003-02-12）
function datediff(date1,date2)
{
    //分隔开始日期年月日
    date1=date1.replace(/\//g,"-");
    date1=date1.replace(/\./g,"-");
    date2=date2.replace(/\//g,"-");
    date2=date2.replace(/\./g,"-");

    var str;
    index=date1.indexOf("-");
    year=parseInt(date1.substring(0,index));
    date1=date1.substring(index+1);
    index=date1.indexOf("-");
    str=date1.substring(0,index);
    if(str.substring(0,1)=="0") str=str.substring(1,2);
    month=parseInt(str);
    str=date1.substring(index+1);
    if(str.substring(0,1)=="0") str=str.substring(1,2);
    day=parseInt(str);

    startdate=new Date();
    startdate.setYear(year);
    startdate.setMonth(month-1);
    startdate.setDate(day);
    startdate.setDate(str);
    startdate.setMinutes(0);
    startdate.setSeconds(0);
    startdate.setMilliseconds(0);

    //分隔结束日期年月日
    index=date2.indexOf("-");
    year=parseInt(date2.substring(0,index));
    date2=date2.substring(index+1);
    index=date2.indexOf("-");
    str=date2.substring(0,index);
    if(str.substring(0,1)=="0") str=str.substring(1,2);
    month=parseInt(str);
    str=date2.substring(index+1);
    if(str.substring(0,1)=="0") str=str.substring(1,2);
    day=parseInt(str);

    enddate=new Date();
    enddate.setYear(year);
    enddate.setMonth(month-1);
    enddate.setDate(day);
    enddate.setMinutes(0);
    enddate.setSeconds(0);
    enddate.setMilliseconds(0);

    diff  = new Date();
    //diff.setTime(Math.abs(enddate.getTime() - startdate.getTime()));
    diff.setTime(enddate.getTime() - startdate.getTime());
    timediff = diff.getTime();
    days = Math.floor(timediff / (1000 * 60 * 60 * 24));

    return days;

}


//判断一组CheckBox中是否有选中
function HaveChecked(objname){
	var ch=document.getElementsByName(objname);
	for (var i=0;i<ch.length;i++) {
		if (ch[i].checked) return true;
	}
	return false;
}


function rand(num){
	return Math.ceil(rnd()*num);
}

function rnd() {
	rnd.today=new Date();
	rnd.seed=rnd.today.getTime();
	rnd.seed = (rnd.seed*9301+49297) % 233280;
	return rnd.seed/(233280.0);
}

function ValidLWZCardID(str){
	//奇偶位值
	var oddval=0;
	var noddval=0;
	var allval=0;
   	for(var i=0;i<str.length-3;i++)
    {
       	lls=str.substring(i,i+1);
       	if(i%2==0) oddval+=lls-'0';
    	else noddval+=lls-'0';
    	allval+=lls-'0';
    }
    //alert(allval%10);
    //alert(str.substring(8,9)-'0');
    if((allval%10)!=(str.substring(8,9)-'0')) return false;
    if((oddval%10)!=(str.substring(9,10)-'0')) return false;
	if((noddval%10)!=(str.substring(10,11)-'0')) return false;
	return true;
}

