///////////////////判断字符串是否為空

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 OpenNoBorderWin(wUrl,wWidth,wHeight,wName){

	var sW=screen.width;

	var sH=screen.height;

	var wL=(sW-wWidth)/2;

	var wH=(sH-wHeight)/2;

	var Win = window.open(wUrl,wName,'width=' + wWidth + ',height=' + wHeight + ',scrollbars=yes,menubar=no,status=no,left='+wL+',top='+wH);

}