var IE = (navigator.appName=="Netscape")?false:true;

//param: formName: form name
//       objName: element name
//       setValueName: 將setValueName的值塞到選取到的radio.value中
//       RequestUrl: 執行ajax的action
//       RequestForm: 執行ajax的action所需要的form, 若無則為doAjaxFormRequest
function ChoCheck(formName,objName,setValueName,RequestUrl,RequestForm){
 var tmp = eval('document.'+formName+'.'+objName);
 if(tmp!=undefined){
  var reValue='';
  var re=false;
  if(tmp.checked==true){
   re= true;
  }else if(tmp.length!=undefined){
   for(var i=0;i<tmp.length;i++){
    if(tmp[i].checked==true){
     reValue=tmp[i].value;
     re= true;
     break;
    }
   }
  }
  if(re){
   if(RequestForm==''){
    doAjaxRequest(RequestUrl+reValue);
   }else{
    if(setValueName!=''){
     eval('document.'+formName+'.'+setValueName+'.value='+reValue);
    }
    doAjaxFormRequest(RequestUrl, RequestForm);
   }
  }else{
  alert('請選擇項目');
  }
 }
}

function ChoDel(formName,objName,setValueName,RequestUrl,RequestForm){
 var tmp = eval('document.'+formName+'.'+objName);
 if(tmp!=undefined){
  var reValue='';
  var re=false;
  if(tmp.checked==true){
   re= true;
  }else if(tmp.length!=undefined){
   for(var i=0;i<tmp.length;i++){
    if(tmp[i].checked==true){
     reValue=tmp[i].value;
     re= true;
    }
   }
  }
  if(re){
   if(RequestForm==''){
    if(window.confirm('確定刪除?')){
     doAjaxRequest(RequestUrl+reValue);
    }
   }else{
    if(setValueName!=''){
     eval('document.'+formName+'.'+setValueName+'.value='+reValue);
    }
    if(window.confirm('確定刪除?')){
     doAjaxFormRequest(RequestUrl, RequestForm);
    }
   }
  }else{
  alert('請選擇項目');
  }
 }
}


function ChoSet(formName,objName,setValue){
 	var tmp = eval('document.'+formName+'.'+objName);
 	if(tmp!=undefined){
  		if(tmp.value==setValue){
	   		tmp.checked=true;
	  	}else if(tmp.length!=undefined){
	   		for(var i=0;i<tmp.length;i++){
	    		if(tmp[i].value==setValue){
	     			tmp[i].checked=true;
	    		}
	   		}
	  	}
 	}
}

function createDateAndTimeOption(selectName,selValue){
 for(var h=0, i=0;i<24;i++,h++){
  for(var j=0;j<4;j+=3,h++){
   var optionValue='';
   if(i<10) optionValue+='0'
   optionValue+=(i+'');
   optionValue+=':'
   optionValue+=(j+'');
			optionValue+='0';
   addOption(selectName,optionValue,optionValue,selValue);
  }
 }
}

function createAllHourOption(selectDate,selDate){
 for(var i=0;i<24;i++){
  var optionValue='';
  if(i<10) optionValue+='0'
  optionValue+=i;
  addOption(selectDate,optionValue,optionValue,selDate);
 }
}

function createMinuteOption(selectTime,selTime){
 for(var j=0;j<4;j+=3){
  var optionValue='';
  optionValue+=(j+'');
		optionValue+='0';
  addOption(selectTime,optionValue,optionValue,selTime);
 }
}
function createDayOption(selectDay,selDay){
 for(var i=1;i<=31;i++){
   var optionValue='';
   optionValue+=(i+'');
   addOption(selectDay,optionValue,optionValue,selDay);
 }
}

function createHalfHourOption(selectHour,selHour){
 for(var i=1;i<=12;i++){
   var optionValue='';
   optionValue+=(i+'');
   addOption(selectHour,optionValue,optionValue,selHour);
 }
}

function addOption(selectOption,optionText,optionValue,selectedValue){
 var anOption = document.getElementById(selectOption);
 if(anOption!=undefined) {
		if(IE){
   var optNew = document.createElement('OPTION');
   optNew.text = optionText;
   optNew.value = optionValue;
   if(selectedValue!='' && optionValue==selectedValue) optNew.selected=true;
 		anOption.options.add(optNew);
		}else{
 		var optNew =new Option(optionText,optionValue);
 		anOption.options[anOption.options.length]=optNew;
		}
 }
}

//計算TEXT中所佔的byte數
function countText(objElement) {
 var a=0;
 var obj = document.getElementById(objElement);
 objValue = obj.value;
 objLen =obj.length;
 for(var i=0;i<objLen;i++){
  if(ifWesternChr(objValue.charAt(i))){
   a+=1;
  }else{
   a+=2;
  }  
 }
 return a;
}


//判斷當前字符是英文字符還是中文字符      true 是英文, false 是中文 
function ifWesternChr(chrInput){ 
 var chrInput_e;
 chrInput_e=escape(chrInput);
 //只有非普通ASCII字符經過escape()函數編碼之後的長度才會等於原長度的6倍，所以用這種方法可以避開內碼直接判斷當前字符是否為中文。
 if(chrInput_e.length==(chrInput.length)*6 || chrInput=="\r" || chrInput=="\n") return false;
 else   return true;
}

//檢查日期是否合法 
// 當輸入參數為isDate(dd,mm,ccyy)時，表示要檢查年，月，日 
// 當輸入參數為isDate(dd,mm) 表示默認年為當前年 
// 當輸入參數為isDate(dd)    表示默認年，月為當前年月 
// 注意輸入月份保證在1-12以內。 
function y2k(number) { return (number < 1000) ? number + 1900 : number; } 

function isDate (day,month,year) { 
    var today = new Date(); 
    year = ((!year) ? (y2k(today.getYear())):year); 
    month = ((!month) ? today.getMonth():month-1); 
    if (!day) return false 
    var test = new Date(year,month,day); 
    if ( (y2k(test.getYear()) == year) && 
         (month == test.getMonth()) && 
         (day == test.getDate()) ) 
        return true; 
    else 
        return false 
} 


//判斷兩個日期中的間隔天數 
function daysElapsed(date1,date2) { 
    var difference = Date.UTC(date1.getYear(),date1.getMonth(),date1.getDate(),0,0,0) 
                   - Date.UTC(date2.getYear(),date2.getMonth(),date2.getDate(),0,0,0); 
    return difference/1000/60/60/24; 
} 

//判斷超過兩個日期中的間隔天數 
function daysElapsed2(sDate,eDate,YY,MM,DD) {
 sDate = (sDate).replace(new RegExp('/', 'g'),'');
 eDate = (eDate).replace(new RegExp('/', 'g'),'');
 var test = YY*10000+MM*100+1*YY
 if((parseFloat(eDate)-parseFloat(sDate))>test){
  return true;
 }else{
  return false;
 }
}

//比對下拉式選單中符合的VALUE被SELECTED
function selOption(selId,selValue) {
 var anSelect = document.getElementById(selId);
 if(anSelect!=undefined) {
  var anOption = anSelect.options;
  for(var i=0;i<anOption.length;i++){
   if(anOption[i].value==selValue){
    anOption[i].selected = true;
    break;
   }
  }
 }
} 

//比對多個下拉式選單中符合的VALUE被SELECTED
function selMulitOption(selId,index,selValue) {

	var anSelectM = document.getElementsByName(selId);
 	
 	if (anSelectM!=undefined) {
 		var anSelect = anSelectM[index];
			if(anSelect!=undefined) {
				var anOption = anSelect.options;
				for(var i=0;i<anOption.length;i++){
   					if(anOption[i].value==selValue){
    					anOption[i].selected = true;
    					break;
   					}
  				}
			}
		
 	}
} 

function CheckNotNull(formName,objectName){
 var tmp = eval('document.'+formName+'.'+objectName);
 if(tmp.value==''){
  tmp.focus();
  return false;
 }else{
  return true;
 }
}

function CheckDateFormat(formName,objectName){
 var tmp = eval('document.'+formName+'.'+objectName);
 ymd1=tmp.value.split("/");
 month1=ymd1[1]-1;
 var Date1 = new Date(ymd1[0],month1,ymd1[2]);
 if (Date1.getMonth()+1!=ymd1[1]||Date1.getDate()!=ymd1[2]||Date1.getFullYear()!=ymd1[0]||ymd1[0].length!=4){
  tmp.focus();
  return false;          
 }
 return true;
}

function CheckDateInterval(formName,objectName1,objectName2){
 var tmp1 = eval('document.'+formName+'.'+objectName1);
 var tmp2 = eval('document.'+formName+'.'+objectName2);
 ymd1 = tmp1.value.split("/");
 ymd2 = tmp2.value.split("/");
 month1 = ymd1[1];
 month2 = ymd2[1];
 var startDate = new Date(ymd1[0],month1,ymd1[2]);
 var endDate = new Date(ymd2[0],month2,ymd2[2]);
 if(startDate.getTime() > endDate.getTime()) return false;  
 return true;
}

function CheckDateIntervalWeek(formName,objectName1,objectName2){
 var tmp1 = eval('document.'+formName+'.'+objectName1);
 var tmp2 = eval('document.'+formName+'.'+objectName2);
 ymd1 = tmp1.value.split("/");
 ymd2 = tmp2.value.split("/");
 month1 = ymd1[1];
 month2 = ymd2[1];
 var startDate = new Date(ymd1[0],month1,ymd1[2]);
 var endDate = new Date(ymd2[0],month2,ymd2[2]);
 var interval = (endDate.getTime() - startDate.getTime())/(60*60*24*1000);
 if(interval>7) return false;
 return true;
}

function CheckDateIntervalYear(formName,objectName1,objectName2){
 var tmp1 = eval('document.'+formName+'.'+objectName1);
 var tmp2 = eval('document.'+formName+'.'+objectName2);
 ymd1 = tmp1.value.split("/");
 ymd2 = tmp2.value.split("/");
 month1 = ymd1[1];
 month2 = ymd2[1];
 var startDate = new Date(ymd1[0],month1,ymd1[2]);
 var endDate = new Date(ymd2[0],month2,ymd2[2]);
 var interval = (endDate.getTime() - startDate.getTime())/(60*60*24*1000);
 if(interval>365) return false;
 return true;
}

function CheckDateIntervalHelfYear(formName,objectName1,objectName2){
 var tmp1 = eval('document.'+formName+'.'+objectName1);
 var tmp2 = eval('document.'+formName+'.'+objectName2);
 ymd1 = tmp1.value.split("/");
 ymd2 = tmp2.value.split("/");
 month1 = ymd1[1];
 month2 = ymd2[1];
 var startDate = new Date(ymd1[0],month1,ymd1[2]);
 var endDate = new Date(ymd2[0],month2,ymd2[2]);
 var interval = (endDate.getTime() - startDate.getTime())/(60*60*24*1000);
 if(interval>182) return false;
 return true;
}


function CheckEmailFormat(formName,objectName){
 var tmp = eval('document.'+formName+'.'+objectName);
 var email = tmp.value; 
 var pattern = /^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$/; 
 flag = pattern.test(email); 
 if(flag){ 
  return true; 
 }else{ 
  return false; 
 } 
}  

function CheckDateIsFuture(formName,objectName1,objectName2){
 var tmp1 = eval('document.'+formName+'.'+objectName1);
 var tmp2 = eval('document.'+formName+'.'+objectName2);
  
 var dateArray = tmp1.value.split('/');
 var timeArray = tmp2.value.split(':');
 var yr = dateArray[0];
 var mon = dateArray[1];
 var day = dateArray[2];

 var hr = timeArray[0];
 var min = timeArray[1];
 var sec = timeArray[2];
 //alert(tmp1.value+','+tmp2.value+','+yr+','+mon+','+day+','+hr+','+min+','+sec);
 
 var now = new Date();
 var setDate = new Date(yr,eval(mon)-1,day,hr,min,sec);
 //alert(now+','+setDate);
 var interval = (setDate.getTime() - now.getTime());
 if(interval>0){
  return true;
 }else{
  return false;
 }
}

function isRadioChecked(formName,itemName) {
 var tmp = eval('document.'+formName+'.'+itemName);
 for (var i = 0 ; i < tmp.length ; i++){
  if (tmp[i].checked) {
   return true;
  }
 }
 return false;
}

function isCheckboxChecked(formName,itemName) {
 var tmp = document.getElementsByName(itemName);
 for (var i = 0 ; i < tmp.length ; i++){
  if (tmp[i].checked) {
   return true;
  }
 }
 return false;
}

function isCoNo(cono)	//統一編號檢查
{
	var key = new String("12121241");
	var sum = 0;

	reg = /^\d{8}$/;

	if (cono.match(reg))
	{
		for (i=0; i<8; i++)
		{
			cnt = 0;
			n = parseInt(cono.substr(i,1))*parseInt(key.substr(i,1));

			while (n!=0)
			{
				cnt += (n%10);
				n = (n - n%10)/10;  // åæ´æ¸
			}
			sum += cnt;
		}

		if (sum%10==0)	return true;
		if (cono.substr(6,1)=="7")	return ((sum+1)%10==0);
   }
   else return false;
}


function isPhoneNo(phoneNo)	 //手機號碼格式檢查
{
	var reg = /^09[1-8][0-9][0-9]{6}$/;

	if (phoneNo.match(reg))	return true;
	return false;
}

function resetMonthDayOption(formName,yearSelectName,monthSelectName,daySelectName){
	var yearObj = document.getElementById(yearSelectName);
	var monthObj = document.getElementById(monthSelectName);
	var dayObj = document.getElementById(daySelectName);
	var yearValue = yearObj.value;
	var monthValue = monthObj.value;
	var dayValue = dayObj.value;
	if(monthValue==''){
		monthValue = 0;
	}
	if(dayValue==''){
		dayValue = 0;
	}
	
	monthObj.options.length=0;
	for(var i=1;i<=12;i++){
		ot = new Option(i,i)
		if (i==monthValue){
			ot.selected=true;
		}
		monthObj.options[monthObj.options.length]=ot;
	}
	resetDayOption(formName,yearSelectName,monthSelectName,daySelectName);
}

function resetDayOption(formName,yearSelectName,monthSelectName,daySelectName){
	var yearObj = document.getElementById(yearSelectName);
	var monthObj = document.getElementById(monthSelectName);
	var dayObj = document.getElementById(daySelectName);
	
	var yearValue = yearObj.value;
	var monthValue = monthObj.value;
	var dayValue = dayObj.value;
	
	var westernYearValue = 0;
	var maxDay = 0;
	var CurrentYear = getCurrentYear();
	
	if(yearValue==''){
		westernYearValue = CurrentYear;
	}else{
		if((eval(yearValue)+1911)<=CurrentYear){	// 表示輸入的值是國曆
			westernYearValue = eval(yearValue) + 1911;	// 以下一律改為西曆計算
		}else{
			westernYearValue = yearValue;
		}
	}
	if(monthValue==''){
		monthValue = 0;
	}
	if(dayValue==''){
		dayValue = 0;
	}
	
	maxDay = getDaysInMonth(westernYearValue, monthValue);
	
	dayObj.options.length=0;
	for(var i=1;i<=maxDay;i++){
		ot = new Option(i,i)
		if (i==dayValue){
			ot.selected=true;
		}
		dayObj.options[dayObj.options.length]=ot;
	}
}

function getCurrentYear(){
    var year = new Date().getYear();
    if(year < 1900){
    	year = year + 1900;
    }
	return year;
}

function getDaysInMonth(year, month){
	var maxDay = 0;
	if(month==2){
		if(year%4==0){
			if(year%100==0){
				if(year%400==0){
					maxDay = 29;
				}else{ maxDay = 28; }
			}else{ maxDay = 29; }
		}else{ maxDay = 28; }
	}else if(month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12){
		maxDay = 31;
	}else{
		maxDay = 30;
	}
	return maxDay;
}

function formatInteger(source, length){
	var result = '' + source;
	if(result.length < length){
		var needZore = length - result.length;
		for(var i=0;i<needZore;i++){
			result = '0' + result;
		}
	}
	return result;
}
