var TargetDate=document.shcheckinfrm.enddate;
var TDate = new Date();
var Current_Date = new Date(Date.parse(new Date())+(1000*60*60*24));
var Current_Month = Current_Date.getMonth();
var Days_in_Month = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var Month_Label = new Array('一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月');


//Holiday每個月份的放假日(星期六日及國定假日)    更新至2012年12月
var Holiday=new Array(12);
Holiday[0]=new Array(1,7,8,14,15,21,22,23,24,25,26,27,28,29);  //1月
Holiday[1]=new Array(4,5,11,12,18,19,25,26,27,28);
Holiday[2]=new Array(3,4,10,11,17,18,24,25,31);
Holiday[3]=new Array(1,4,7,8,14,15,21,22,28,29);
Holiday[4]=new Array(1,5,6,12,13,19,20,26,27);
Holiday[5]=new Array(2,3,9,10,16,17,23,24,30);
Holiday[6]=new Array(1,7,8,14,15,21,22,28,29);
Holiday[7]=new Array(4,5,11,12,18,19,25,26);
Holiday[8]=new Array(1,2,8,9,15,16,22,23,29,30);
Holiday[9]=new Array(6,7,10,13,14,20,21,27,28);
Holiday[10]=new Array(3,4,10,11,17,18,24,25);
Holiday[11]=new Array(1,2,8,9,15,16,22,23,29,30,31);
var Current_Year = Current_Date.getYear();
var Today = Current_Date.getDate();


//確認是否為放假日
function CheckHoliday(Y,M,D,AD){
    if(Y!=Year){
       if(AD%7==6 || AD%7==5) return true;
       else return false;
    } 
    for(a=0;a<=Holiday[M].length;a++)
       if(D==Holiday[M][a]) return true;
       
    return false;  
}



function Header(Year, Month){
    var NY=0,NM=0,PY=0,PM=0;
    var PS="";
    if(Selected_Month==11) {
       NY=Selected_Year+1;
       NM=0;
       PY=Selected_Year
       PM=Selected_Month-1
    }else if(Selected_Month==0){
       NY=Selected_Year;
       NM=Selected_Month+1;
       PY=Selected_Year-1
       PM=11;
    }else{
       NY=Selected_Year;
       NM=Selected_Month+1;
       PY=Selected_Year;
       PM=Selected_Month-1;
    }
    if((Selected_Year>NYear) || (Selected_Year==NYear && Selected_Month>NMonth) )
       PS="<a href=javascript:Make_Calendar("+PY+","+PM+") style=font-size:13px;color:#FFFFFF>上個月</font>";
    if (Month == 1) {
    if ((Year % 400 == 0) || ((Year % 4 == 0) && (Year % 100 != 0))) {Days_in_Month[1] = 29;}}
    var Header_String = Year+"年"+Month_Label[Month] ;
    return "<td align=center colspan=2>"+PS+"</td><td colspan=3 align=center style=font-size:13px;color:#FFFFFF;>"+Header_String+"</td><td align=center height=25 colspan=2><a href=javascript:Make_Calendar("+NY+","+NM+") style=font-size:13px;color:#FFFFFF;>下個月</a></td>";
}


//建立日曆
function Make_Calendar(Year, Month) {
    Selected_Year=Year;
    Selected_Month=Month;
    var First_Date = new Date(Year, Month, 1);
    var Heading = Header(Year, Month);
    var First_Day = First_Date.getDay() - 1;
    
    if(First_Day<0) First_Day=6;
    
    Rows=Math.round( (First_Day+Days_in_Month[Month])/7 +0.4999);
    var HTML_String = '<table cellspacing=1 cellpadding=2  bgcolor=#CACACA border=0 width=240 height=200>';
    HTML_String += '<tr bgcolor=#275230>' + Heading + '</tr>';
    HTML_String += '<tr bgcolor="#FFFFFF"><td colspan="7"  align=center><table border="0" cellspacing="1" cellpadding="1" bgcolor=81b1cb style=margin:5px;><tr bgcolor=#ffffff><td colspan=3> <table cellspacing=2 cellpadding=2  border=0><tbody>';
    HTML_String += '<tr align=center valign=middle bgcolor="#D5E7BE" style=font-size:13px;color:#2D2F3E><td width=25 height=25>一</td><td width=25 height=25>二</td><td width=25 height=25>三</td><td width=25 height=25>四</td><td width=25 height=25>五</td><td width=25 height=25>六</td><td width=25 height=25>日</td></tr>';
    var Day_Counter = 1;
    var Loop_Counter = 0;
    var notoday=1;
    var ampm = new Date();
    var ap = ampm.getHours();
    if(ap>=17) notoday=0;
    for (var j = 1; j <= Rows; j++) {
        HTML_String += '<tr align=middle bgcolor=#E7E7E7>';
        for (var i = 1; i < 8; i++) {
             if ((Loop_Counter >= First_Day) && (Day_Counter <= Days_in_Month[Month])) {
                 if ( (Year < NYear) || ( Year==NYear && Month <NMonth) || ( Year==NYear && Month==NMonth && Day_Counter<Today-notoday) )
                   HTML_String += '<td width=25 height=25 align=center valign=middle style=font-size:13px;font-weight:bold;color:#999999;>'+Day_Counter+'</td>';
                 else if(CheckHoliday(Selected_Year,Selected_Month,Day_Counter,(Day_Counter+First_Day-1) ))
                   HTML_String += '<td width=25 height=25 align=center valign=middle><a href=javascript:GetDate('+Day_Counter+') style=font-size:13px;font-weight:bold;color:#CC0000;>' + Day_Counter + '</a></td>';
                 else {
                   HTML_String += '<td width=25 height=25 align=center valign=middle><a href=javascript:GetDate('+Day_Counter+') style=font-size:13px;font-weight:bold;color:#0000CC;>' + Day_Counter + '</a></td>';
                 }
                 Day_Counter++; 
             }else{
                 HTML_String += ' <td width=25 height=25 align=center valign=middle style=font-size:13px;color:#999999>-</td>';
             }
             Loop_Counter++;
        }
        HTML_String += '</tr>';
    }
    HTML_String += '</table><center><a href=javascript:hideObject() style=font-size:13px;color:#000000;>關閉日曆</a></center></td></tr></table>';
    document.getElementsByTagName("*").selectCalendar.innerHTML = HTML_String+"<iframe style='position:absolute;z-index:-1;width:100%;height:100%;top:0;left:0;scrolling:no;' frameborder='0' src='about:blank'></iframe>";
}



function Check_Nums() {
    if ((event.keyCode < 48) || (event.keyCode > 57))  return false;
}


function On_Year() {
    var Year = document.when.year.value;
    if (Year.length == 4) {
       Selected_Month = document.when.month.selectedIndex;
       Selected_Year = Year;
       Make_Calendar(Selected_Year, Selected_Month);
    }
}


function On_Month() {
    var Year = document.when.year.value;
    if (Year.length == 4) {
       Selected_Month = document.when.month.selectedIndex;
       Selected_Year = Year;
       Make_Calendar(Selected_Year, Selected_Month);
    }else{
       alert('請輸入要查詢的西元年.');
       document.when.year.focus();
    }
}


function Defaults() {
    if (!document.getElementsByTagName("*")) return
    
    var Mid_Screen = Math.round(document.body.clientWidth / 2);
    document.when.month.selectedIndex = Current_Month;
    document.when.year.value = Current_Year;
    Selected_Month = Current_Month;
    Selected_Year = Current_Year;
    Make_Calendar(Current_Year, Current_Month);
}


function Skip(Direction) {
    if (Direction == '+') {
        if (Selected_Month == 11) {
           Selected_Month = 0;
           Selected_Year++;
        }else{
           Selected_Month++;
        }
    }else{
        if (Selected_Month == 0) {
           Selected_Month = 11;
           Selected_Year--;
        }else{
           Selected_Month--;
        }
    }
    Make_Calendar(Selected_Year, Selected_Month);
    document.when.month.selectedIndex = Selected_Month;
    document.when.year.value = Selected_Year;
}


//秀日曆
function showObject() {		     	    
    document.getElementById('selectCalendar').style.display = "";           
}


//關閉日曆
function hideObject() {
    document.getElementById('selectCalendar').style.display = "none";      
}


function SHObject(SImage,Target){  
   TargetDate=Target;
   if (TargetDate!=Target ||document.getElementById('selectCalendar').style.display=="none"){       
       document.getElementById('selectCalendar').style.display="";
       document.getElementById('selectCalendar').style.top=180+document.body.scrollTop+"px";
       document.getElementById('selectCalendar').style.left=screen.width/2-520-document.body.scrollLeft+"px";
   }else{
       document.getElementById('selectCalendar').style.display="none"; 
   }
}


function GetDate(D) {        
   if(D<10) D="0"+D;          
   
   if( (Selected_Month+1)<10)
     TargetDate.value=Selected_Year+"/0"+(Selected_Month+1)+"/"+D;  
   else
     TargetDate.value=Selected_Year+"/"+(Selected_Month+1)+"/"+D;  
     
   hideObject();  
   if(TargetDate==document.shcheckinfrm.startdate) {  
   	   var TmpDate=new Date(Selected_Year,Selected_Month,D);    	   
       var NextDay = new Date(Date.parse(TmpDate)+(1000*60*60*24) ) ; //1天等於(1*1000*60*60*24)毫秒                         
       document.shcheckinfrm.enddate.value=NextDay.getFullYear()+"/";
       if((NextDay.getMonth()+1)<10) document.shcheckinfrm.enddate.value=document.shcheckinfrm.enddate.value+"0";        
       document.shcheckinfrm.enddate.value=document.shcheckinfrm.enddate.value+(NextDay.getMonth()+1)+"/";
       if(NextDay.getDate()<10) document.shcheckinfrm.enddate.value=document.shcheckinfrm.enddate.value+"0";        
       document.shcheckinfrm.enddate.value=document.shcheckinfrm.enddate.value+NextDay.getDate();
   }
}


function CheckDate(T1){
   if(T1.value!="不限"){
      Tmp=T1.value.split("/");
      if(Tmp.length==3){
         if(Tmp[1]>12) {
         	 alert("日期月份不可以大於12");
         	 T1.focus();
         	 return false;
         } 
         
         if(Tmp[2]>Days_in_Month[Number(Tmp[1])-1]  ){
         	 alert(Number(Tmp[1])+"月最多只有"+Days_in_Month[Number(Tmp[1])-1]+"天");
         	 T1.focus();
         	 return false;
         } 
         
         if(Number(Tmp[1])<10 || Number(Tmp[2])<10){
           if(Number(Tmp[1])<10) Tmp[1]="0"+Number(Tmp[1]);
           if(Number(Tmp[2])<10) Tmp[2]="0"+Number(Tmp[2]);
           T1.value=Tmp[0]+"/"+Tmp[1]+"/"+Tmp[2];
         }  
      }
      if( !/^[1-9][0-9][0-9][0-9]\/[0-1][0-9]\/[0-3][0-9]$/.test(T1.value) ){
      	 alert("日期格式不正確  日期格式為(YYYY/MM/DD) 例:2006/03/08 2006/11/11");
      	 T1.focus();
      	 return false;
      }
   }
   return true;
}

hideObject();
Make_Calendar(Selected_Year,Selected_Month);
