if ( this._JLHsCDIsLoaded != true ) {
	var frm;
	var days;
	var ymode;
	var today;
	var jtoday;
	var startdate;
	var tilldate;
	var selecteddate;
	var sweekday;
	var eweekday;
	var lastday;
	var cells_count;
	var ispostback = false;
	var todaybgcolor;
	var sundaybgcolor;
	var saturdaybgcolor;
	var generaldaybgcolor;
	var selecteddaybgcolor;
	var calbordercolor;
	var dateformat;
	var yearformat;
	var tagid;
	var datesplitsymbol;

	function chooseDate(getStr){
		divChDate.style.left = event.clientX;
		divChDate.style.top = event.clientY;
		divChDate.style.Top = document.body.scrollTop;
		ifrChDate.location.href = "tmpCal.asp?objName=" + getStr + "&bolsplitdate=true&bolchtdate=true&bolnocenter=true";
		divChDate.style.visibility = "visible";
	}

	function clearDate( dateobj ){
		var frm = document.forms[0];
		try{
			eval( "frm." + dateobj.id + ".value=''" );
			eval( "frm." + dateobj.id + "Year.value=''" );
			eval( "frm." + dateobj.id + "Month.value=''" );
			eval( "frm." + dateobj.id + "Day.value=''" );
		}catch(e){
			
		}
	}
	
	function create_cal( ){
		while( cal.rows.length > 2 ){
			cal.deleteRow();
		}
		
		var sdate = new Date( startdate );
		var edate = new Date( tilldate );
		sweekday = (new JDate( sdate )).weekday;
		eweekday = (new JDate( edate.adddays( -1 ) )).weekday;
		lastday = (new JDate( edate.adddays( -1 ) )).day;
		cells_count = edate.differ( sdate ).d + sweekday + ( 6-eweekday);
		days = new Array();

		var tmprow;
		var tmpcell;
		
		for( tmpiii = (0 - sweekday + 1) ; tmpiii < (cells_count - sweekday + 1) ; tmpiii++ ){
			days.push( tmpiii );
		}
		
		for( tmpiii = 0 ; tmpiii < cells_count ; tmpiii++ ){
			if ( tmpiii % 7 == 0 ) {
				tmprow = cal.insertRow();
			}
			
			if ( tmprow != undefined ){
				tmpcell = tmprow.insertCell();
				tmpcell.className = "border_solid_1px_999999_align_center";
				tmpcell.style.borderColor = calbordercolor;
				tmpcell.onmouseover = function() { setfocusbgcolor( this ); };
				tmpcell.onmouseout = function() { rebgcolor( this ); };
				tmpcell.setAttribute("DATEVALUE", sdate.adddays( days[ tmpiii ] - 1 ).format("yyyy/mm/dd"));
				tmpcell.innerHTML = ( days[ tmpiii ] > 0 && days[ tmpiii ] <= lastday ) ? days[ tmpiii ].toString().JFormatNum( 2 ) : "&nbsp;";
				
				if ( days[ tmpiii ] > 0 && days[ tmpiii ] <= lastday ) {
					tmpcell.innerHTML = days[ tmpiii ].toString().JFormatNum( 2 );
					tmpcell.style.setAttribute("cursor", "hand");
					tmpcell.onclick = function() { cal_selectdate( this.DATEVALUE ); }
				}else{
					tmpcell.innerHTML = "&nbsp;";
					tmpcell.style.setAttribute("cursor", "help");
					tmpcell.title = sdate.adddays( days[ tmpiii ] - 1 ).format("yyyy.mm.dd");
					tmpcell.onclick = function() { }
				}

				if ( ( new JDate( selecteddate ) ).format("yyyy/mm/dd") == tmpcell.DATEVALUE && days[ tmpiii ] > 0 && days[ tmpiii ] <= lastday ) {
					tmpcell.bgColor = selecteddaybgcolor;
				}else if ( ( new JDate( today ) ).format("yyyy/mm/dd") == tmpcell.DATEVALUE && days[ tmpiii ] > 0 && days[ tmpiii ] <= lastday ) {
					tmpcell.bgColor = todaybgcolor;
				} else if ( tmpiii % 7 == 0 ) {
					tmpcell.bgColor = sundaybgcolor;
				} else if ( tmpiii % 7 == 6 ) {
					tmpcell.bgColor = saturdaybgcolor;
				} else {
					tmpcell.bgColor = generaldaybgcolor;
				}
			}
		}

	}

	function setCurrentMonth( sw ){
		var tmpselyear;
		var tmpselmonth;
		var tmpselday;

		try{
			if ( yearformat == "chy" ) {
				tmpselyear = parseInt( frm.seluiyear.value.jsTrim(), 10 ) + 1911;
			}else{
				tmpselyear = parseInt( frm.seluiyear.value.jsTrim(), 10 );
			}
			
			if ( tmpselyear > 2500 ) {
				alert("◎ 年份不得超過 2500 年 !!");
				tmpselyear = jtodate.year;
			}
		}catch(e){
			tmpselyear = jtodate.year;
		}
		
		try{
			tmpselmonth = parseInt( frm.selmonth.value.jsTrim(), 10 );
		}catch(e){
			tmpselmonth = jtodate.month;
		}
		
		switch( sw ){
			case "reduce" :
				tmpselmonth--;
				break;
			case "increase" :
				tmpselmonth++;
				break;
			default :
				break;
		}

		var tmpd = new Date( tmpselyear, tmpselmonth - 1, 1, 0, 0, 0, 0 );
		startdate = tmpd.startdate();
		tilldate = tmpd.tilldate();
		
		frm.selyear.value = ( new JDate( tmpd ) ).year;
		frm.seluiyear.value = ( new JDate( tmpd ) ).format( yearformat );
		frm.selmonth.value = ( new JDate( tmpd ) ).month.toString().JFormatNum( 2 );
		
		cal.setAttribute("StartDate", startdate);
		cal.setAttribute("TillDate", tilldate);
		
		create_cal();	
	}
	
	this._JLHsCDIsLoaded = true;
}


