function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_showHideLayers() { //v6.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}

function checkROCDate(dateField)
{
	var dateString = dateField.value;
	var year,month,day;
	var i = dateString.indexOf("/");	
	var j = dateString.substring(i+1).indexOf("/");
	var rt = false;
	if(j>0){
	    year = dateString.substring(0,i);
	    month = dateString.substring(i+1,j+i+1);
	    day = dateString.substring(j+i+2);
	    rt=true;
	}else if(i<0){
		if(dateString.length==6){
			year = dateString.substring(0,2);
			month = dateString.substring(2,4);
			day = dateString.substring(4,6);
			rt=true;
		}else if(dateString.length==7){
			year = dateString.substring(0,3);
			month = dateString.substring(3,5);
			day = dateString.substring(5,7);
			rt=true;
		}else if(dateString.length==5){
			year = dateString.substring(0,1);
			month = dateString.substring(1,3);
			day = dateString.substring(3,5);
			rt=true;
		}else 
			rt=false;
	}
    if (rt){
        var intYear = parseInt(year, 10) ;
    	var intMonth = parseInt(month, 10) ;
	    var intDay = parseInt(day, 10);
	    rt=isDate(intYear,intMonth,intDay); 
    	dateField.value = toDateStr1(intYear,intMonth,intDay);
    }
    if(!rt&&dateString.length!=0)	warn(dateField,"日期欄位格式錯誤!!");
	//return rt;
}

function isDate (year,month,day){
    if (isMonth(month) && isDay(year,month,day))
       return true;
    else return false;
}
function isYear(year){
	if(isNaN(year)) return false;
	else return true;
}
function isMonth(month){
	if((!isNaN(month))&&(month>0)&&(month<=12))	return true;
	else return false;
}
function isDay(year,month,day){
    if((!isNaN(day))&&(day>0)&&(day<=numberOfDays(month-1,year+1911))) return true;
    else return false;
}

function verifyTime(field){
	if(checkTime(field)){
		if(field.name=="issuetime"){
			MM_findObj("expiredtime").value = field.value;
		}
		howMuchDays();
	}
}
function checkTime(dateField){
	var timeStr = dateField.value;
	var rt=true;
	if((timeStr!=null)&&(timeStr.length>0)){
		var hour,minute;
		var i = timeStr.indexOf(":");
		if(i<0){
			if(timeStr.length==1){
				hour="0" + timeStr;
				minute="00";
			}else if(timeStr.length==2){
				hour=timeStr;
				minute="00";
			}else if(timeStr.length==4){
				hour=timeStr.substring(0,2);
				minute=timeStr.substring(2,4);
			}
		}else if(i>=0){
			hour=timeStr.substring(0,i);
			minute=timeStr.substring(i+1);
		}else
			rt=false;
		if(rt){
			if((isHour(parseInt(hour, 10)))&&(isMinute(parseInt(minute, 10))))
				dateField.value = toTimeStr1(parseInt(hour, 10),parseInt(minute, 10));
			else
				rt=false;
		}
    	if(!rt)	warn(dateField,"時間欄位格式錯誤!!");
	}
	return rt;	
}

function isHour(hour){
	if(hour>=24) return false;
	else return true;
}
function isMinute(minute){
	if(minute>=60) return false;
	else return true;
}

function check_datekey(key)
{
　if (key>=47 && key<=57) {
　　return true;
　} else {
　　return false;
　}
}

function check_timekey(key)
{
　if (key>=48 && key<=58) {
　　return true;
　} else {
　　return false;
　}
}


function check_numkey(key)
{
　if (key>=48 && key<=57) {
　　return true;
　} else {
　　return false;
　}
}

function check_idkey(key)
{
	if ((key >= 48 && key <= 57) || (key >= 65 && key <= 90) || (key >= 97 && key <= 122))
    	return true;
    else
    	return false;
}

function check_engkey(key)
{
　if ((key>=65 && key<=90) || ( key>=97 && key<=122 )) {
　　return true;
　} else {
　　return false;
　}
}

function warn(theField, s)
{
    if(theField.type != "hidden"){
        theField.focus();
        theField.select();
    }
    alert(s);
}

function upCase(field){
    if (field.value == field.value.toUpperCase()){
        return;
    }
    else{
        field.value = field.value.toUpperCase();
    }
}

function toDateStr1(yearInt,monthInt,dayInt){ // parm is int
   if(yearInt<10) yearInt = "00" + yearInt;
   else if(yearInt<100) yearInt = "0" + yearInt;
   if(monthInt<10) monthInt = "0" + monthInt;
   if(dayInt<10) dayInt = "0" + dayInt;   
   return yearInt+"/"+monthInt+"/"+dayInt;
}

function toTimeStr1(hourInt,minInt){
   if(hourInt<10) hourInt = "0" + hourInt;
   if(minInt<10) minInt = "0" + minInt;
   return hourInt+":"+minInt;
}

function getInsAge(roc_birth,issuedate){//取得保險年齡
    var cUrrentDate=toDate(issuedate);//new Date();//須修改成投保啟日
    var cYear=cUrrentDate.getFullYear();  
    var cMonth=cUrrentDate.getMonth()+ 1;
    var cDay=cUrrentDate.getDate();  
	var i = roc_birth.indexOf('/');
	var j = roc_birth.indexOf('/',i+1);
	var iYearBirth = parseInt(roc_birth.substring(0,i), 10) + 1911 ;
	var iMonthBirth = parseInt(roc_birth.substring(i+1,j), 10);
	var iDayBirth = parseInt(roc_birth.substring(j+1), 10);
	if(iDayBirth>cDay) iMonthBirth++;
	var totMonth = (cYear-iYearBirth)*12 + cMonth - iMonthBirth;
	return (totMonth-(totMonth%12))/12 + ((totMonth%12)>=6 ?1:0);
//	return Math.round(totMonth/12) + ((totMonth%12)>=6 ?1:0);	
}

function getRealAge(roc_birth,issuedate){//取得足歲年齡
    var cUrrentDate=toDate(issuedate);//new Date();//須修改成投保啟日
    var cYear=cUrrentDate.getFullYear();  
    var cMonth=cUrrentDate.getMonth()+ 1;
    var cDay=cUrrentDate.getDate();  
	var i = roc_birth.indexOf('/');
	var j = roc_birth.indexOf('/',i+1);
	var iYearBirth =  parseInt(roc_birth.substring(0,i), 10) + 1911 ;
	var iMonthBirth = parseInt(roc_birth.substring(i+1,j), 10);
	var iDayBirth = parseInt(roc_birth.substring(j+1), 10);
	if(iDayBirth>cDay) iMonthBirth++;
	var totMonth = (cYear-iYearBirth)*12 + cMonth - iMonthBirth;
	return (totMonth-(totMonth%12))/12;
}

function checkInsureId(idField,dscp){
	var pid = MM_findObj(idField).value;
	if((pid!="")&&(!checkid(pid))){
		if(confirm (dscp + "的身分證號無法通過檢核，\n請確認是否接受此"+dscp+"ID："+pid +" 嗎？")){
			//alert("忽略此錯誤！" );
		}else{
			//alert("修改此身分證號：" + pid + "！" );
		    MM_findObj(idField).focus();
			MM_findObj(idField).select();
   			return false;
		}
  	}
  	return true;
}

function checkAmt(field){
	if((field.value==null)||(field.value.length==0))
	field.value="0";
}

function iderr(id){
	var haserr=false;
	for(i=1;i<=id.length;i++){
		alert(id.substring(i,i+1));
		if(check_engkey(id.substring(i,i+1))){
			continue;
		}else{
			haserr=true;
			break;
		}
	}
	if(haserr)
		return false;
	else
		return true;
}

function check_chinese(txt){
	var haserr=false;
	for(i=0;i<txt.length;i++){
		//alert(txt.substring(i,i+1));
		if( txt.substring(i,i+1).match(/[^\u4e00-\u9fa5]/gi)){
			continue;
		}else{
			haserr=true;
			break;
		}
	}
	//alert(haserr);
	if(haserr)
		return false;
	else
		return true;
}



var local=new Array(36);
local[10]='A';
local[11]='B';
local[12]='C';
local[13]='D';
local[14]='E';
local[15]='F';
local[16]='G';
local[17]='H';
local[18]='J';
local[19]='K';
local[20]='L';
local[21]='M';
local[22]='N';
local[23]='P';
local[24]='Q';
local[25]='R';
local[26]='S';
local[27]='T';
local[28]='U';
local[29]='V';
local[30]='X';
local[31]='Y';
local[32]='W';
local[33]='Z';
local[34]='I';
local[35]='O';

function checkEngName(name){
	var fl=id.substring(0,1)
	var haserr=1
	for(i=0;i<name.length;i++){
		alert(chr(name.substring(i,i+1)));
	}
	//for(j=10;j<=33;j++){
	//	if(local[j]!=fl)
	//		continue
	//	else{ 
	//		haserr=0
	//		break
	//	}
	//}
	if(haserr==1)
		return 1
	else
		return 0
}

function checkid(id){
	id=id.toUpperCase();
	if(lengtherr(id)){
alert('輸入的字號長度有誤！');
		return false;
	}else if(firstlettererr(id)){
alert('身分證第一碼查無此英文字母:'+id.substring(0,1));
		return false;
	}else if(numerr(id)){
alert('輸入的身分證後九碼應為數字！');
		return false;
	}else if(checkerr(id)){
alert('您輸入的身分證檢查碼有誤！');
		return false;
	}else{
//alert('您輸入的身分證字號完全正確！');
		return true;
	}
}
function lengtherr(id){
	if(id.length<10)
		return 1
	else 
		return 0
}
function firstlettererr(id){
	var fl=id.substring(0,1)
	var haserr=1
	for(i=10;i<=33;i++){
		if(local[i]!=fl)
			continue
		else{ 
			haserr=0
			break
		}
	}
	if(haserr==1)
		return 1
	else
		return 0
}
function numerr(id){
	var haserr=0
	for(i=1;i<=9;i++){
		if(parseInt(id.substring(i,i+1))>0 || id.substring(i,i+1)=='0')
			continue
		else{
			haserr=1
			break
		}
	}
	if(haserr==1)
		return 1
	else
		return 0
}
function checkerr(id){
	var se=new Array(10)
	var we=0
	var checkcode=0
	for(i=10;i<=33;i++){
		if(local[i]==id.substring(0,1)){
			se[0]=parseInt((i+'0').substring(0,1))
			se[1]=parseInt((i+'0').substring(1,2))
			break
		} 
	}
	for(i=1;i<=9;i++){
		se[i+1]=parseInt(id.substring(i,i+1))
	}
	for(i=0;i<=10;i++){
		if(i==0)
			we=we+se[i]
		else
			we=we+(se[i]*(10-i))
	} 
	if(mod(we,10)==0)
		checkcode='0'
	else
		checkcode=((10-mod(we,10))+'0').substring(0,1)
	if(checkcode!=id.substring(9,10))
		return 1
	else
		return 0
}
function mod(a,b){
	var r
	r=Math.round(a/b)
	if((b*r)>a)
	r-=1
	return (a-(b*r))
}
    flagAll=false;  // flag to represent whether all the checkbox are selected
	
    function switchAll(flag, formObj) {
        flagAll=flag; 
         for (var i=0; i<formObj.elements.length;i++)
         {
            var box = formObj.elements[i];
        	if (flagAll)  // select all checkbox
        	{
        	    if (box.checked != true)
                    box.checked = true;
            } 
            else
            {
                if (box.checked != false)
                    box.checked = false;
            }
        
         }
   }
	
function clickCheckbox(obj, selectAllObj)
 { 
     // the number represents how many checkboxes the user selected
     count = 0;  
  if (obj.length){  // more than one item
   for (var j = 0; j < obj.length; j++) {
       if (obj[j].checked)
      count ++;    
   }
   
   // 當目前為全選狀態時，使用者勾選其中一個已勾選的checkbox，將使全選狀態失效
   if ((flagAll) && (count != obj.length)) 
   {
    selectAllObj.checked=false;
    flagAll = false;
   }
   
   // 當勾選了全部項目的checkbox時，進入全選狀態，全選的checkbox也應該為勾選狀態
   if ( count == obj.length)  
   {
    selectAllObj.checked=true;
    flagAll = true;
   }
  }
  else {  // only one item
       if (obj.checked) count ++;    
 
         // 當目前為全選狀態時，使用者勾選其中一個已勾選的checkbox，將使全選狀態失效
    if ((flagAll) && (count != 1)) 
    {
     selectAllObj.checked=false;
     flagAll = false;
    }
    
    // 當勾選了全部項目的checkbox時，進入全選狀態，全選的checkbox也應該為勾選狀態
    if ( count == 1)  
    {
     selectAllObj.checked=true;
     flagAll = true;
    }
  }
 }
 
 function checkPassword(){
	wx = 320;
	wy = 240;
	x = (screen.width  - wx) / 2;
	y = (screen.height - wy) / 2;
	showModalDialog("/cavOnlineLogon.do",window,"status:false;dialogWidth:"+wx+";dialogHeight:"+wy);
	//subWin = window.open("/cavOnlineLogon.do","sub","left="+x+",top="+y+",dialogWidth="+wx+",height="+wy);
}

 function isLesserDays(date1,date2){
		result = false;		
		dateS = toDate(date1);		
		dateE = toDate(date2);
		var startL = dateS.getTime();
		var endL = dateE.getTime();		
		days = (endL-startL)/(24 * 60 * 60 * 1000);		
		if( days < 0)	result = true;
		return result;
} 
function isLesserROCDays(date1,date2){
	result = false;		
	dateS = toROCDate(date1);		
	dateE = toROCDate(date2);
	var startL = dateS.getTime();
	var endL = dateE.getTime();		
	days = (endL-startL)/(24 * 60 * 60 * 1000);		
	if( days < 0)	result = true;
	return result;
}
 
