//var calendar_DayNames = new Array("日","一","二","三","四","五","六");
var calendar_DayNames = new Array('Sun','Mon','Tue','Wed','Thu','Fri','Sat');
//var calendar_MonthNames = new Array("一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月");
var calendar_MonthNames = new Array('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
var calendar_MonthNum   = new Array('01','02','03','04','05','06','07','08','09','10','11','12');
function SetSelectDate(s){
  var ob1 = $('CalPadSelect');
  var ob2 = $('CalPadSelectDiv'); 
  if(ob1) ob1.value     = s;
  if(ob2) ob2.innerHTML = s;
}
function gettwon(s){
  if(s<10){return '0'+s.toString()}else{return s;}
}
function showCalendar(targetID, targetURL, dMonth, dYear, dDay){
    if(dMonth < 0){       
        dMonth = 11;
        dYear--;
    }
    if(dMonth > 11){
        dMonth = 0;
        dYear++;
    }
    var dNow = new Date();
    if(dDay == 90 && dMonth == dNow.getMonth() && dYear == dNow.getYear()) dDay = dNow.getDate();
    var dCurFD = new Date(dYear, dMonth, 1);
    var dGivenDate = new Date(dYear, dMonth, dDay);  
    var dCurrentMonthFirstSunday = dCurFD.getDay();
    var dCurrentViewDate = new Date(dCurFD);
	var myNow = new Date();
	var myNd  = myNow.getYear() + '-' + gettwon(myNow.getMonth()+1) + '-' + gettwon(myNow.getDate());
	var sm    = dYear + '-' + calendar_MonthNum[dMonth];
	var sy    = dYear;
    var iDays = 0;
    //var weekMilliseconds = 1000*60*60*24*7;    
    if(dCurrentMonthFirstSunday > 0) iDays = -dCurrentMonthFirstSunday;    
    var fTrgt = targetURL;
    while (fTrgt.indexOf("'") >= 0) fTrgt = fTrgt.replace("'", "`");
    while (fTrgt.indexOf("`") >= 0) fTrgt = fTrgt.replace("`", "\\'");    
    var oBuf = '<TABLE BORDER="0" WIDTH="100%" CELLSPACING="0" CELLPADDING="0">';
	oBuf += '<TR><TD CLASS="calendarhd" colspan="3" align="right" width="45%">';
	oBuf += '<A HREF="javascript:showCalendar(\'' + targetID + "','" + fTrgt + "'," + (dMonth - 1) + ',' + dYear + ',90);">';
	oBuf += '<img src="images/leftArrow.gif" border=0 /></A> &nbsp;';
	oBuf += '<a href="'+fTrgt+'" onclick="SetSelectDate(\'' + sm + '\')">' + calendar_MonthNames[dMonth] + '</a>';
	oBuf += ' &nbsp;<A HREF="javascript:showCalendar(\'' + targetID + "','" + fTrgt + "'," + (dMonth + 1) + ',' + dYear + ',90);">';
	oBuf += '<img src="images/rightArrow.gif" border=0 /></A> &nbsp;&nbsp;';	
	oBuf += '</TD><td style="width:10%"><a href="'+fTrgt+'" onclick="';
	oBuf += 'SetSelectDate(\''+myNd+'\');showCalendar(\'' + targetID + "','" + fTrgt + "'," + myNow.getMonth() + ',' + myNow.getYear() + ','+myNow.getDate()+');';
	oBuf += '">Today</a></td>';
	
    oBuf += '<TD COLSPAN="3" CLASS="calendarhd" align="left" width="45%">';
	oBuf += '&nbsp;&nbsp;<A HREF="javascript:showCalendar(\'' + targetID + "','" + fTrgt + "'," + (dMonth) + ',' + (dYear-1) + ',90);">';
	oBuf += '<img src="images/leftArrow.gif" border=0 /></A> &nbsp;';
  	oBuf += ' <a href="'+fTrgt+'" onclick="SetSelectDate(\'' + sy + '\')">'+dYear +'</a> ';
	oBuf += '&nbsp;<A HREF="javascript:showCalendar(\'' + targetID + "','" + fTrgt + "'," + (dMonth) + ',' + (dYear+1) + ',90);">';
	oBuf += '<img src="images/rightArrow.gif"  border=0 /></A></TD></TR>';
    
	
	oBuf += '<TR style="calendarhdrow">';
    for(var e=0; e < 7; e++) oBuf += '<TD CLASS="calendarDays">' + calendar_DayNames[e] + '</TD>';          
    oBuf += '</TR>';
    var nextMonthFirstDay          = new Date(dYear, dMonth+1, 1);
    var IsNextMonthFirstDaySunday  = nextMonthFirstDay.getDay()==0;
    for(var iRows=0; iRows < 6; iRows++){
        dCurrentMonthDate = new Date(dCurFD.getFullYear(), dCurFD.getMonth(), dCurFD.getDate() + iDays);
        if(1==1){		
        if(iRows==5 && dCurrentMonthDate.getMonth() > dCurFD.getMonth()) continue;        
        if(iRows==5 && IsNextMonthFirstDaySunday) continue;
        oBuf += '<TR CLASS="calendarContent">';
        for(var iCols=0; iCols < 7; iCols++){
            dCurrentViewDate = new Date(dCurFD.getFullYear(), dCurFD.getMonth(), dCurFD.getDate() + iDays);
			var Mondd = dCurrentViewDate.getMonth() - dCurFD.getMonth();
            if((dGivenDate.toDateString() == dCurrentViewDate.toDateString()) && (dDay != 90)){
                oBuf += '<TD CLASS="selectedDate">';
				
            }else{
                if(dCurrentViewDate.getMonth() != dMonth || iDays < 0) {
                    oBuf += '<TD CLASS="negDate">';
					//continue;
                }else{
                    oBuf += '<TD CLASS="posDate">';
                }

            }            
            var args;
            if (targetURL.substr(0,11) == 'javascript:'){
              args = dCurrentViewDate.valueOf() + ")";
            }else{
              var sep = targetURL.indexOf('?') < 0 ? '?' : '&';
              args = sep + 'startDate=' + dCurrentViewDate.getFullYear()+ '-' + (dCurrentViewDate.getMonth()+1) + '-' +dCurrentViewDate.getDate() ;
            }
			var dd = dCurrentViewDate.getDate();
			if (dd<10) dd = '0' + dd.toString();
			var sd = dCurrentViewDate.getYear()+'-'+calendar_MonthNum[dCurrentViewDate.getMonth()];
			sd    += '-' + dd;
            oBuf  += '<A HREF="'+targetURL+'" onclick="SetSelectDate(\''+sd+'\');">' ;
			oBuf  += dCurrentViewDate.getDate() + '</A></TD>';
            iDays++;
        }
        oBuf += '</TR>';
        }
    }
    oBuf += '</TABLE>';
    document.getElementById(targetID).innerHTML = oBuf;
}

