// nos olvidamos de este fichero ya que se encarga del calendario inicial

//-------------------Calendar Functions-------------------------
//-----------Needed to make departure dates update when arrival date changes

function isLeapYear( yrStr ) {
    var leapYear = false;
    var year = parseInt( yrStr, 10 );
    // every fourth year is a leap year
    if ( year % 4 == 0 ) {
        leapYear = true;
        // unless it's a multiple of 100
        if( year % 100 == 0 ) {
            leapYear = false;
            // unless it's a multiple of 400
            if( year % 400 == 0 ) {
                leapYear=true;
			}
		}
	}
    return leapYear;
}

function getDaysInMonth( mthIdx, YrStr ) {
    // all the rest have 31
    var maxDays = 31
    // expect Feb. (of course)
    if( mthIdx == 1 ) {
	    if( isLeapYear( YrStr ) ) {
		    maxDays=29;
		} else {
		    maxDays=28;
		}
	}

    // thirty days hath...
    if( mthIdx == 3 || mthIdx == 5 || mthIdx == 8 || mthIdx == 10 ) {
	    maxDays=30;
	}
    return maxDays;
}

//the function which does some magic to the date fields
// return non-zero if it is the last day of the month
function adjustDate( mthIdx, Dt ) {
    var value = 0;

    var today = new Date()
    var theYear = parseInt( today.getYear(), 10 )

    if( mthIdx < today.getMonth() ) {
        theYear = ( parseInt( today.getYear(), 10 ) + 1 )
    }
    if( theYear < 100 ) {
        theYear = "19" + theYear
    } else {
        if( ( theYear - 100 ) < 10 ) {
            theYear = "0" + ( theYear - 100 )
        } else {
            theYear = ( theYear - 100 ) + ""
        }
        theYear = "20" + theYear
    }


    var numDays = getDaysInMonth( mthIdx, theYear );

    if( mthIdx == 1 ) {
	    if( Dt.options.selectedIndex + 1 < numDays ) {
		    return 0;
		} else {
		    Dt.options.selectedIndex=numDays - 1;
		    //check for leap year
		    if( numDays == 29 ) {
			    return 99;
			} else {
			    return 1;
			}
		}
	}

    if( Dt.options.selectedIndex + 1 < numDays ) {
	    value = 0;
	} else {
	    if ( Dt.options.selectedIndex + 1 > numDays ) {
		    Dt.options.selectedIndex--;
		    value = 3;
		} else {
		    //index is 31 or 30
		    value = 2;
		}
	}
    return value;
}	
function amadChange(arrivalMonth,arrivalDay,departureMonth,departureDay)
{

var res = adjustDate(arrivalMonth.options.selectedIndex, arrivalDay);
if (res != 0)
	{
	       departureDay.options.selectedIndex=0;
	       if (departureMonth.options.selectedIndex==12){
			departureMonth.options.selectedIndex=0
		   }else{
			departureMonth.options.selectedIndex=arrivalMonth.options.selectedIndex + 1;
	       }
	}
else
	{
	departureMonth.options.selectedIndex = arrivalMonth.options.selectedIndex;
	departureDay.options.selectedIndex = arrivalDay.options.selectedIndex+1;
	}
return;
}

function dmddChange(departureMonth,departureDay)
{
	//ECD - 03/06/2010-la siguiente comprobación falla. Lo comento.
//if (!isBrowserSupp())
	//{
	//return;
	//}

adjustDate(departureMonth.options.selectedIndex,departureDay);
return;
}

//ECD - 10-06-2010 - Get parameter from querystring. Return value
function GetUrlParam(name ){  
	name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");  
	var regexS = "[\\?&]"+name+"=([^&#]*)";  
	var regex = new RegExp( regexS );  
	var results = regex.exec( window.location.href );  
	if( results == null )    
		return null;  
	else    
		return results[1];
}




//=========Build calendar 

	var calendar = new Date();
	var calendar2 = new Date();
	var cal;
	var cal2;
	var date;
	var month;
	var year;
	var date2;
	var month2;
	var year2;
	
	
	//Here is the variable to change to advance the arrival Date
	 var advanceArrival = 1; 
	
	//Here is the variable to change to advance the departure Date
	 var advanceDeparture = 2; 
	
	
	//Set the arrival Days
	
	//ECD -10/06/2010 - Primero miramos a ver si disponemos de la fecha a través de la querystring.
	
	//ECD - 02/06/2010 - Comprobamos si disponemos de valores que nos indiquen que venimos de un post... en este caso, nos lo puede indicar el HFarrivalDay o directamente el arrivalDay.
	
	if (document.hotavailbox.hfarrivalDay!=null) {
		//calendar.setDate(calendar.getDate()+ advanceArrival);
		date = document.hotavailbox.hfarrivalDay.value;
		month = document.hotavailbox.hfarrivalMonth.value-1;
		year = document.hotavailbox.hfarrivalYear.value;
		calendar.setDate(date);
		calendar.setMonth(month);
		calendar.setYear(year);
	}else
	{
		var auxarrivalDate=null;
		//comprobamos si disponemos del valor por la url.
		auxarrivalDate=GetUrlParam('arrivalDate');
		
		if (auxarrivalDate==null) {
			//No disponemos del valor por la querystring. Lo comprobamos en el form.
			var auxarrivalsDate=document.getElementsByName('arrivalDate');	
			if (auxarrivalsDate[0] !=null) 
				auxarrivalDate=auxarrivalsDate[0].value;
		}
		if (auxarrivalDate !=null){
			//Diponemos del valor, lo cargamos.
			var auxCalendar=new Date(auxarrivalDate);
			date = auxCalendar.getDate();
			month = auxCalendar.getMonth();
			year = auxCalendar.getYear();
			calendar.setDate(date);
			calendar.setMonth(month);
			calendar.setYear(year);
			
		}else 
		{
			calendar.setDate(calendar.getDate()+ advanceArrival);
			date = calendar.getDate();
			month = calendar.getMonth();
			year = calendar.getYear();
		}
	}
	
	//Set the Departure Days
	//ECD -10/06/2010 - Primero miramos a ver si disponemos de la fecha a través de la querystring.
	//ECD - 03/06/2010 - Comprobamos si disponemos de valores que nos indiquen que venimos de un post... en este caso, nos lo puede indicar el HFdepartureDay o directamente el departureDay.
	
	
	//Comprobamos si dispone de valor a através de los hiddenField Definidos.
	if (document.hotavailbox.hfdepartureDay!=null) {
		//calendar.setDate(calendar.getDate()+ advanceArrival);
		date2 = document.hotavailbox.hfdepartureDay.value;
		month2 = document.hotavailbox.hfdepartureMonth.value-1;
		year2 = document.hotavailbox.hfdepartureYear.value;
		calendar2.setDate(date2);
		calendar2.setMonth(month2);
		calendar2.setYear(year2);
	}else
	{
		//comprobamos si disponemos del valor por la url.
		var auxdepartureDate=null;
		
		auxdepartureDate=GetUrlParam('departureDate');
		if (auxdepartureDate==null) {
			//No disponemos del valor por la querystring. Lo comprobamos en el form.
			var auxdeparturesDate=document.getElementsByName('departureDate');
			if (auxdeparturesDate[0] !=null) 
				auxdepartureDate=auxdeparturesDate[0].value;
		}
		if (auxdepartureDate !=null){
			//Diponemos del valor, lo cargamos.
			var auxCalendarD=new Date(auxdepartureDate);
			date2 = auxCalendarD.getDate();
			month2 = auxCalendarD.getMonth();
			year2 = auxCalendarD.getYear();
			calendar2.setDate(date2);
			calendar2.setMonth(month2);
			calendar2.setYear(year2);
			
		}else
		{
			//Ponemos los valores por defecto
			calendar2.setDate(calendar2.getDate()+ advanceDeparture); 
			date2 = calendar2.getDate();
			month2 = calendar2.getMonth();
			year2 = calendar2.getYear();
		}
	}
	
	//Form the Arrival Select Boxes 
	//ECD - 25/5/2010 - Corrijo la correlación de dias para que coincidan con los meses
	cal = '<select  name="arrivalMonth" onchange="amadChange(document.hotavailbox.arrivalMonth, document.hotavailbox.arrivalDay, document.hotavailbox.departureMonth, document.hotavailbox.departureDay)">';
	cal += '<option ';
		if (month == 0) { cal += 'selected '; }
		cal += 'value="01">Jan</option>';
		
		cal += '<option ';
		if (month == 1) { cal += 'selected '; }
		cal += 'value="02">Feb</option>';	
		
		cal += '<option ';
		if (month == 2) { cal += 'selected '; }
		cal += 'value="03">Mar</option>';	
		
		cal += '<option ';
		if (month == 3) { cal += 'selected '; }
		cal += 'value="04">Apr</option>';		
		
		cal += '<option ';
		if (month == 4) { cal += 'selected '; }
		cal += 'value="05">May</option>';		
	
		cal += '<option ';
		if (month == 5) { cal += 'selected '; }
		cal += 'value="06">Jun</option>';		
	
		cal += '<option ';
		if (month == 6) { cal += 'selected '; }
		cal += 'value="07">Jul</option>';		
		
		cal += '<option ';
		if (month == 7) { cal += 'selected '; }
		cal += 'value="08">Aug</option>';		
		
		cal += '<option ';
		if (month == 8) { cal += 'selected '; }
		cal += 'value="09">Sep</option>';		
		
		cal += '<option ';
		if (month == 9) { cal += 'selected '; }
		cal += 'value="10">Oct</option>';		
	
		cal += '<option ';
		if (month == 10) { cal += 'selected '; }
		cal += 'value="11">Nov</option>';			
		
		cal += '<option ';
		if (month == 11) { cal += 'selected '; }
	cal += 'value="12">Dec</option>';

		
	cal += '</select>&nbsp; <select  name="arrivalDay" onchange="amadChange(document.hotavailbox.arrivalMonth, document.hotavailbox.arrivalDay, document.hotavailbox.departureMonth, document.hotavailbox.departureDay)">';

	cal += '<option ';
	if (date == 1) { cal += 'selected '; }
	cal += 'value="01">1</option>';
	
		cal += '<option ';
		if (date == 2) { cal += 'selected '; }
	cal += 'value="02">2</option>';
	
		cal += '<option ';
		if (date == 3) { cal += 'selected '; }
	cal += 'value="03">3</option>';
	
		cal += '<option ';
		if (date == 4) { cal += 'selected '; }
	cal += 'value="04">4</option>';
	
		cal += '<option ';
		if (date == 5) { cal += 'selected '; }
	cal += 'value="05">5</option>';
	
		cal += '<option ';
		if (date == 6) { cal += 'selected '; }
	cal += 'value="06">6</option>';
	
		cal += '<option ';
		if (date == 7) { cal += 'selected '; }
	cal += 'value="07">7</option>';
	
		cal += '<option ';
		if (date == 8) { cal += 'selected '; }
	cal += 'value="08">8</option>';
	
		cal += '<option ';
		if (date == 9) { cal += 'selected '; }
	cal += 'value="09">9</option>';
	
		cal += '<option ';
		if (date == 10) { cal += 'selected '; }
	cal += 'value="10">10</option>';
	
		cal += '<option ';
		if (date == 11) { cal += 'selected '; }
	cal += 'value="11">11</option>';
	
		cal += '<option ';
		if (date == 12) { cal += 'selected '; }
	cal += 'value="12">12</option>';
	
		cal += '<option ';
		if (date == 13) { cal += 'selected '; }
	cal += 'value="13">13</option>';
	
		cal += '<option ';
		if (date == 14) { cal += 'selected '; }
	cal += 'value="14">14</option>';
	
		
		cal += '<option ';
		if (date == 15) { cal += 'selected '; }
	cal += 'value="15">15</option>';
	
		cal += '<option ';
		if (date == 16) { cal += 'selected '; }
	cal += 'value="16">16</option>';
	
		cal += '<option ';
		if (date == 17) { cal += 'selected '; }
	cal += 'value="17">17</option>';
	
		cal += '<option ';
		if (date == 18) { cal += 'selected '; }
	cal += 'value="18">18</option>';
	
		cal += '<option ';
		if (date == 19) { cal += 'selected '; }
	cal += 'value="19">19</option>';
	
		cal += '<option ';
		if (date == 20) { cal += 'selected '; }
	cal += 'value="20">20</option>';
	
		cal += '<option ';
		if (date == 21) { cal += 'selected '; }
	cal += 'value="21">21</option>';
	
		cal += '<option ';
		if (date == 22) { cal += 'selected '; }
	cal += 'value="22">22</option>';
	
		cal += '<option ';
		if (date == 23) { cal += 'selected '; }
	cal += 'value="23">23</option>';
	
		cal += '<option ';
		if (date == 24) { cal += 'selected '; }
	cal += 'value="24">24</option>';
	
		cal += '<option ';
		if (date == 25) { cal += 'selected '; }
	cal += 'value="25">25</option>';
	
		cal += '<option ';
		if (date == 26) { cal += 'selected '; }
	cal += 'value="26">26</option>';
	
		cal += '<option ';
		if (date == 27) { cal += 'selected '; }
	cal += 'value="27">27</option>';
	
		cal += '<option ';
		if (date == 28) { cal += 'selected '; }
	cal += 'value="28">28</option>';
	
		cal += '<option ';
		if (date == 29) { cal += 'selected '; }
	cal += 'value="29">29</option>';
	
		cal += '<option ';
	if (date == 30) { cal += 'selected '; }	
	cal += 'value="30">30</option>';
	
		cal += '<option ';
	if (date == 31) { cal += 'selected '; }
	cal += 'value="31">31</option>';
	
 var d=new Date();

	cal += '</select>&nbsp; <select name="arrivalYear">';
	//ECD -25/5/2010 - Componemos el año progresivamente y permitimos seleccionar un valor.
	cal += '<option ';
	if (d.getFullYear()==year) { cal += 'selected '; }
	cal += 'value="' + d.getFullYear() + '">' + d.getFullYear() + '</option>';
	cal += '<option ';
	if (d.getFullYear()+1==year) { cal += 'selected '; }
	cal += 'value="' + (d.getFullYear() + 1) + '">' + (d.getFullYear() + 1) + '</option>';
	cal += '</select>';


	//  PRINT CALENDAR
	document.write(cal);
	
	//End of the Arrival Select Boxes
//  End -->	

