var cal1;
var cal2;

var minDateSaison = new Date(2006,9,8);
var maxDateSaison = new Date(2007,5,10);
var debutCal = (YAHOO.widget.DateMath.after(new Date(),minDateSaison)) ? new Date() : minDateSaison;
var defaultDelta = 5;

function calendarInit() {


	if (isset(formDefaults) && isset(formDefaults.fin) && isset(formDefaults.debut)) {

		this.today = dateFromString(formDefaults.debut);
		this.lastday = dateFromString(formDefaults.fin);
	} else {
		this.today = debutCal;
		this.lastday = YAHOO.widget.DateMath.add(debutCal, YAHOO.widget.DateMath.DAY, this.defaultDelta);
	}

	var thisMonth = this.today.getMonth();
	var thisDay = this.today.getDate();
	var thisYear = this.today.getFullYear();
	
	var thisMonthLast = this.lastday.getMonth();
	var thisDayLast   = this.lastday.getDate();
	var thisYearLast  = this.lastday.getFullYear();

	this.link1 = $('dateLink1');
	this.link2 = $('dateLink2');

	this.selMonth1 = $('selMonth1');
	this.selDay1 = $('selDay1');
	
	//console.debug(thisMonth);
	this.selMonth1.selectedIndex = setMonthIndex(thisMonth);
	this.selDay1.selectedIndex = thisDay-1;

	this.selMonth2 = $('selMonth2');
	this.selDay2 = $('selDay2');

	this.selMonth2.selectedIndex = setMonthIndex(thisMonthLast);
	this.selDay2.selectedIndex = thisDayLast -1;
	
	cal1 = new YAHOO.widget.Calendar2up_FR("cal1","container1",(thisMonth+1)+"/"+thisYear,(thisMonth+1)+"/"+thisDay+"/"+thisYear);
	cal1.title = "Votre 1er jour de ski";
	var calMinDate = YAHOO.widget.DateMath.add(debutCal, YAHOO.widget.DateMath.DAY, 1);
	cal1.pages[0].minDate = cal1.pages[1].minDate = calMinDate;
	cal1.setChildFunction("onSelect",setDate1);
	cal1.render();

	cal2 = new YAHOO.widget.Calendar2up_FR("cal2","container2",(thisMonthLast+1)+"/"+thisYearLast,(thisMonthLast+1)+"/"+thisDayLast+"/"+thisYearLast);
	cal2.title = "Votre dernier jour de ski:";
	cal2.pages[0].minDate = cal2.pages[1].minDate = YAHOO.widget.DateMath.add(debutCal, YAHOO.widget.DateMath.DAY, 2);
	cal2.setChildFunction("onSelect",setDate2);
	cal2.render();
	
	//Affichage de la duree sejour
	showDelta();
}



function setMonthIndex(jsMonth)
{
	var conv = new Array();
		conv[9]= 0;
		conv[10]= 1;
		conv[11]= 2;
		conv[0]= 3
		conv[1]= 4;
		conv[2]= 5;
		conv[3]= 6;
		conv[4]= 7;
		
		return conv[jsMonth];
}

function getMonthIndex(mIndex)
{
	var conv = new Array();
		conv[0]= 9;
		conv[1]= 10;
		conv[2]= 11;
		conv[3]= 0;
		conv[4]= 1;
		conv[5]= 2;
		conv[6]= 3;
		conv[7]= 4;

		return conv[mIndex];
}

function showCalendar1() {
	cal2.hide();
	
	var link1 = YAHOO.util.Dom.get('dateLink1');
	var pos = YAHOO.util.Dom.getXY('dateLink1');
	var calY = pos[1] +5;
	cal1.outerContainer.style.width = "410px";
	cal1.outerContainer.style.top = (calY+20) + "px";
	cal1.outerContainer.style.left = (pos[0]-100) + "px";
	cal1.outerContainer.style.display='block';
	

}

function showCalendar2() {
	cal1.hide();
	var link2 = YAHOO.util.Dom.get('dateLink2');
	var pos = YAHOO.util.Dom.getXY('dateLink2');
	var calY = pos[1] +5;
	cal2.outerContainer.style.width = "410px";
	cal2.outerContainer.style.top = (calY+20) + "px";
	cal2.outerContainer.style.left = (pos[0]-100) + "px";
	cal2.outerContainer.style.display='block';
}

function setDate1() {

	var date1 = cal1.getSelectedDates()[0];

	selMonth1.selectedIndex=setMonthIndex(date1.getMonth());
	selDay1.selectedIndex=date1.getDate()-1;
	
	var date2 = YAHOO.widget.DateMath.add(date1, YAHOO.widget.DateMath.DAY, defaultDelta);
	selMonth2.selectedIndex=setMonthIndex(date2.getMonth());
	selDay2.selectedIndex=date2.getDate()-1;
	cal1.hide();
	showDelta();
}

function setDate2() {
	var date2 = cal2.getSelectedDates()[0];
	selMonth2.selectedIndex=setMonthIndex(date2.getMonth());
	selDay2.selectedIndex=date2.getDate()-1;
	cal2.hide();
	showDelta();
}

function changeDate1() {
	var monthStr = this.selMonth1.options[this.selMonth1.selectedIndex].value;
	var dateArr  = monthStr.split('-');


	var day = this.selDay1.selectedIndex + 1;
	var year = parseInt(dateArr[0]);
	var month= parseInt(dateArr[1]);

	cal1.select(month + "/" + day + "/" + year);
	cal1.setMonth(month);
	cal1.setYear(year);
	cal1.render();
	showDelta();
}

function changeDate2() {
	var month = getMonthIndex(this.selMonth2.selectedIndex);
	var day = this.selDay2.selectedIndex + 1;
	var year = this.today.getFullYear();

	
	cal2.select((month+1) + "/" + day + "/" + year);
	cal2.setMonth(month);
	cal2.render();
	showDelta();
}


function showDelta()
{
	var debut = dateFromString($('selMonth1').value + '-' + $('selDay1').value);
	var fin   = dateFromString($('selMonth2').value + '-' + $('selDay2').value);
	
	// The number of milliseconds in one day
    var ONE_DAY = 1000 * 60 * 60 * 24

    // Convert both dates to milliseconds
    var date1_ms = debut.getTime()
    var date2_ms = fin.getTime()

    // Calculate the difference in milliseconds
    var difference_ms = Math.abs(date1_ms - date2_ms)
    
    // Convert back to days and return
    var delta =  Math.round(difference_ms/ONE_DAY) + 1;

	$('dureeSejour').innerHTML = "&nbsp;" + delta + ""; 
}

/**
 * Fonction supprim?e...
 */
function setCalendarDatesFromMagasin(dateDebut, dateFin)
{
	var now = new Date();
	var debutmag = dateFromString(dateDebut);
	var finmag   = dateFromString(dateFin);
	
	var debut = (YAHOO.widget.DateMath.after(now,debutmag)) ? now : debutmag;
		
	var finSejour = YAHOO.widget.DateMath.add(debut, YAHOO.widget.DateMath.DAY, 5);
	

	cal1.pages[0].minDate = debut;
	cal1.pages[0].maxDate = finmag;
	cal1.pages[1].maxDate = finmag;
	cal1.select((debut.getMonth() + 1) + "/" + debut.getDate() + "/" + debut.getFullYear());
	cal1.setMonth(debut.getMonth());
	cal1.setYear(debut.getFullYear());
	cal1.render();
	
	cal2.pages[0].minDate = debut;
	cal2.pages[0].maxDate = finmag;
	cal2.pages[1].maxDate = finmag;
	cal2.select((finSejour.getMonth() + 1) + "/" + finSejour.getDate() + "/" + finSejour.getFullYear());
	cal2.setMonth(finSejour.getMonth()+1);
	cal2.render();

}


