
//////////////////////////////// ±â°£ ¼³Á¤ °ü·Ã ÇÔ¼öµé  //////////////////

// agoDay ÀÌÀü ³¯Â¥¸¦ °¡Á®¿Â´Ù.
function getDateBefore( agoDay ){
	var Now = new Date();

	Now.setTime( Now.getTime()  -  agoDay*24*60*60*1000);

	var NowDay = Now.getDate();
	var NowMonth = Now.getMonth()+1;// 1¿ùÀÌ 0ºÎÅÍ ½ÃÀÛÇÔ.
	var NowYear = Now.getYear();

    if (NowYear < 2000) NowYear += 1900; //for Netscape
    if (NowMonth  < 10 )NowMonth ="0"+NowMonth
    if (NowDay    < 10 )NowDay ="0"+NowDay

    return NowYear+""+NowMonth+""+NowDay;

}

function periodSelecter(selectValue) {
	var sForm = document.searchForm;
	sForm.start_date.value = getDateBefore(selectValue); // ¸îÀÏÀü.
	sForm.end_date.value = getDateBefore(0);  //¿À´Ã
	sForm.settingDate.value = selectValue;

	//document.searchF.period[0].checked = true;
	//document.getElementById("search").disabled = true;
	//document.getElementById("search1").disabled = true;
	
	resetPeriods();
}
function resetPeriods(){
	document.getElementById("sAll").src = "../design/images/bt_period07_off.gif";
	document.getElementById("sWeek").src = "../design/images/bt_period02_off.gif";
	document.getElementById("s1month").src = "../design/images/bt_period03_off.gif";
	document.getElementById("s3month").src = "../design/images/bt_period04_off.gif";
	document.getElementById("s6month").src = "../design/images/bt_period05_off.gif";				
	document.getElementById("sYear").src = "../design/images/bt_period06_off.gif";
}

function setDate(which) {

	var sForm = document.searchF;
	var sValue;
	var eValue;
	var selectedValue = sForm.settingDate.value;

	//if(sForm.period[0].checked ) {
		if(selectedValue!=0){
			sForm.search_start.value = getDateBefore(selectedValue); // ¸îÀÏÀü.
			sForm.search_end.value = getDateBefore(0);  //¿À´Ã
		}
		resetPeriods();
		switch(parseInt(selectedValue, 10)){
			case 0:
				document.getElementById("sAll").src = "../design/images/bt_period07_on.gif";		
				break;
			case 7:
				document.getElementById("sWeek").src = "../design/images/bt_period02_on.gif";
				break;		
			case 30:
				document.getElementById("s1month").src = "../design/images/bt_period03_on.gif";
				break;		
			case 90:
				document.getElementById("s3month").src = "../design/images/bt_period04_on.gif";
				break;		
			case 183:
				document.getElementById("s6month").src = "../design/images/bt_period05_on.gif";
				break;		
			case 365:
				document.getElementById("sYear").src = "../design/images/bt_period06_on.gif";
				break;
		}
	//}else if (sForm.period[1].checked ){

		sValue = sForm.search_start.value ;
		eValue =sForm.search_end.value ;

		if (sValue > eValue ){
			sForm.search_start.value = eValue;
			sForm.search_end.value = sValue;
		}
	//}
	
	

}


// BROWSER SNIFFER. BEGIN BG MODIFY
ns4 = (navigator.appName.indexOf("Netscape")>=0 && document.layers)? true : false;
ie4 = (document.all && !document.getElementById)? true : false;
ie5 = (document.all && document.getElementById)? true : false;
ns6 = (document.getElementById && navigator.appName.indexOf("Netscape")>=0 )? true: false;
w3c = (document.getElementById)? true : false;
// END BG MODIFY

var HTMLCode = "";
var DaysList = new Array("","ÀÏ","¿ù","È­","¼ö","¸ñ","±Ý","Åä");
var MonthsList = new Array("Mois_Vide","1","2","3","4","5","6","7","8","9","10","11","12");
var MonthLength = new Array("Mois_longueur_vide",31,29,31,30,31,30,31,31,30,31,30,31);

var QueryDate = 0;      // Jour demande (date)
var QueryMonth = 0;     // Mois demande
var QueryYear = 0;      // Annee demandee
var QueryDay = 0;       // Jour de la semaine du jour demande, inconnu
var FirstDay = 0;       // Jour de la semaine du 1er jour du mois
var WeekRef = 0;        // Numerotation des semaines
var WeekOne = 0;        // Numerotation des semaines

var Today = new Date();

var TodaysYear = Today.getYear();		// ´Þ·Â»óÀÇ ÀÌ¹ø ³âµµ 
var TodaysMonth = Today.getMonth() + 1;
var TodaysDate = Today.getDate();
var TodaysDay = Today.getDay() + 1;

if (TodaysYear < 2000) { TodaysYear += 1900; }
var tmpTodayYear = Today.getYear();
if (tmpTodayYear < 2000) { tmpTodayYear += 1900; }
if(TodaysYear == tmpTodayYear && TodaysMonth == (Today.getMonth() + 1)) {  
	TodaysDate = Today.getDate();
	TodaysDay = Today.getDay() + 1;
}
else {
	TodaysDate = 1;
}

function CheckData(){
	QueryDate = TodaysDate;
	QueryMonth = TodaysMonth;
	QueryYear = TodaysYear;
	MonthLength[2] = CheckLeap(QueryYear);

	if((QueryYear * 10000 + QueryMonth * 100 + QueryDate) < 15821220){
		alert("You have chosen a date before Dec 20th 1582.\n\nPlease make another selection.");
		document.Cal.reset();
		CheckData();
	}else if (MonthLength[QueryMonth] < QueryDate){
		alert("Il n'y a pas " + QueryDate + " jours en " + MonthsList[QueryMonth] + " " + QueryYear + " mais " + MonthLength[QueryMonth] + ". \nVeuillez choisir une autre date.");
		document.Cal.reset();
		CheckData();
	}else{
		DisplaySchedule();
	}
}

function CheckLeap(yy){
	if((yy % 100 != 0 && yy % 4 == 0) || (yy % 400 == 0))
		return 29;
	else
		return 28;
}

function DefWeekNum(dd){
	numd = 0;
	numw = 0;
	for (n=1; n<QueryMonth; n++){
		numd += MonthLength[n];
	}
	numd = numd + dd - (9 - DefDateDay(QueryYear,1,1));
	numw = Math.floor(numd / 7) + 1;

	if (DefDateDay(QueryYear,1,1) == 1) numw++;

	return numw;
}

function DefDateDay(yy,mm,dd){
	return Math.floor((Date2Days(yy,mm,dd)-2) % 7) + 2;
}

function Date2Days(yy,mm,dd){
	if(mm > 2){
		var bis = Math.floor(yy/4) - Math.floor(yy/100) + Math.floor(yy/400);
		var zy = Math.floor(yy * 365 + bis);
		var zm = (mm-1) * 31 - Math.floor(mm * 0.4 + 2.3);
		return (zy + zm + dd);
	}else{
		var bis = Math.floor((yy-1)/4) - Math.floor((yy-1)/100) + Math.floor((yy-1)/400);
		var zy = Math.floor(yy * 365 + bis);
		return (zy + (mm-1) * 31 + dd);
	}
}


// ELEMENT FINDER. BEGIN BG MODIFY
function findid(name,doc){
	var i,layer;
	for(i=0;i<doc.layers.length;i++){
		layer=doc.layers[i];
		if(layer.name==name) return layer;
		if(layer.document.layers.length>0)
			if((layer=findid(name,layer.document))!=null) return layer;
	}

	return null;
}
// END BG MODIFY
var curInput = null;

function DisplaySchedule(){
	HTMLCode = "<table id=\"calTable\" class=\"hmCalendar hmCal\" width=\"100%\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" align=\"center\">";
	QueryDay = DefDateDay(QueryYear,QueryMonth,QueryDate);
	WeekRef = DefWeekNum(QueryDate);
	WeekOne = DefWeekNum(1);
	HTMLCode += '<tr class="header hmCal"><th class="blank hmCal" nowrap>&nbsp;</th>';

	for (s=1; s<8; s++){
		if (QueryDay == s){
			HTMLCode += "<th class=\"hmCal\">" + DaysList[s] + "</th>";
		}else if(s == 1){
			HTMLCode += "<th class=\"sunday hmCal\">" + DaysList[s] + "</th>";
		}else{
			HTMLCode += "<th class=\"hmCal\">" + DaysList[s] + " </th>";
		}
	}

	HTMLCode += '<th class="blank hmCal" nowrap>&nbsp;</th></tr>';
	a = 0;

	var tdIndex = 7;
	for (i=(1-DefDateDay(QueryYear,QueryMonth,1)); i<MonthLength[QueryMonth]; i++){
		var tmpHTMLCode = "";
		tmpHTMLCode += "<tr class=\"hmCal\"><td class=\"blank hmCal\" nowrap>&nbsp;</td>";
		var link = "";
		var strClass = "";
		var k = 0;
		var junkDay = 0;
		for (j=1; j<8; j++){
			k = i+j;
			var strText = String(k);
			
			var tmpMonth = TodaysMonth;
			if(String(tmpMonth).length < 2){
				tmpMonth = "0" + tmpMonth;
			}
	
			var tmpDay = k;
			if(tmpDay < 10){
				tmpDay = "0" + k;
			}
			
			var onclickText = "try{curInput.value = '" + TodaysYear + tmpMonth + tmpDay + "';document.getElementById('hmCal').style.display='none';}catch(ignored){}";
						
			tdIndex++;
			
			if(i+j > 0){
				strText = "<a href=\"#\" class=\"hmCal\" onclick=\""+ onclickText +"\" onfocus=\"this.blur();\">"+k+"</a>";
			}

			if(k <= 0 || k > MonthLength[QueryMonth]){
				tmpHTMLCode += "<td class=\"hmCal\">&nbsp;</td>";
				junkDay++;
			}else if(k == QueryDate){
				var tmpYear = Today.getYear();
				if (tmpYear < 2000){
					tmpYear += 1900;
				}

				if(parseInt(TodaysMonth,10) == Today.getMonth() + 1 && parseInt(TodaysYear,10) == tmpYear){
					tmpHTMLCode += "<td class=\"today hmCal\">"+strText+"</td>";
				}else{
					tmpHTMLCode += "<td class=\"hmCal\">"+strText+"</td>";
				}	
			}else if(j==1){
				tmpHTMLCode += "<td class=\"holiday hmCal\">"+strText+"</td>";
			}else{
				tmpHTMLCode += "<td class=\"hmCal\">"+strText+"</td>";
			}

			link = "";			
		}
		tmpHTMLCode += "<td class=\"blank hmCal\" nowrap>&nbsp;</td></tr>";
		if(junkDay < 7){
			HTMLCode += tmpHTMLCode;
		}else{
			tdIndex = tdIndex - 7;
		}
		junkDay = 0;
		a++;
		i = i + 6;
	}

	if(ie4)document.all['calendarBody'].innerHTML = HTMLCode + "</table>";
	if(w3c)document.getElementById('calendarBody').innerHTML= HTMLCode + "</table>";
	if(ns4){
		var tns4=findid('calendarBody',document);
		tns4.document.open();
		tns4.document.write('<center>'+HTMLCode+'</table></center>');
		tns4.document.close();
	}
	// END BG MODIFY

}

function initDates(){
	var prevYear = TodaysYear;
	var prevMonth = TodaysMonth;
	var	nextYear = TodaysYear;
	var nextMonth = TodaysMonth;
	
	var tmpMonth = TodaysMonth;
	if(String(tmpMonth).length < 2){
		tmpMonth = "0" + tmpMonth;
	}
	
	document.getElementById("dyear").innerHTML = TodaysYear;
	document.getElementById("dmonth").innerHTML = tmpMonth;
}

function prevMonth(){
	if(TodaysMonth == 1){
		TodaysMonth = 12;
		TodaysYear = TodaysYear - 1;
	}else {
		TodaysMonth = TodaysMonth - 1;
	}
//	TodaysDate = 1;
	initDates();
	CheckData();		//À±´Þ Ã¼Å© ÇÔ.	
}
function nextMonth(){
	if(TodaysMonth == 12){
		TodaysMonth = 1;
		TodaysYear = TodaysYear + 1;
	}else {
		TodaysMonth = TodaysMonth + 1;
	}
//	TodaysDate = 1;
	initDates();
	CheckData();		//À±´Þ Ã¼Å© ÇÔ.	
}

var initCalendar = function(){
	initDates();
	CheckData();		//À±´Þ Ã¼Å© ÇÔ.
}

function hmCalClear(e){
	if(!e) var e = window.event;
	var oSrc = e.srcElement || e.target;

	if(oSrc.className.indexOf("hmCal") == -1 && document.getElementById("hmCal").style.display != "none"){
		document.getElementById("hmCal").style.display = "none";
	}
}

function hmCal_getCoords(element){
	var coords = {
		x: 0,
		y: 0,
		right: 0,
		bottom: 0,
		width: element.offsetWidth,
		height:	element.offsetHeight
	};
	
	while(element){
		coords.x += element.offsetLeft;
		coords.y += element.offsetTop;	
		element = element.offsetParent;			
	}
	coords.right = coords.x + coords.width;
	coords.bottom = coords.y + coords.height;

	return coords;
}
	
function toggleCalendar(inputId){
	var oInput = document.getElementById(inputId);
	curInput = oInput;
	var oCal = document.getElementById("hmCal");
	
	var crds = hmCal_getCoords(oInput);
	
	if(oCal.style.display != "none"){
		oCal.style.display = "none";
	//	oneShot.removeEvent(document, "onclick", hmCalClear);
	}else{
		oCal.style.top = crds.bottom + "px";
		oCal.style.left = crds.x + 0 + "px";
		oCal.style.display = "block";
	//	oneShot.addEvent(document, "onclick", hmCalClear);
	}
}


