function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function openCentered( destURL, winName, width, height )
{
	var leftOffset = ( screen.width - width ) / 2;
	var topOffset = ( screen.height - height ) / 2;

	var winHandle = window.open( destURL, winName, 'statusbar=0,toolbar=0,width=' + width + ",height=" + height + ",top=" + topOffset + ",left=" + leftOffset + "'" );
}

function UpdateDaysOfMonth( stringDate, workingString )
{
	var dayStartEl = document.reservation_form.day_start;
	var dayEndEl = document.reservation_form.day_end;
	
	//set the working element
	var workingEl = ( workingString == 'start' ) ? dayStartEl : dayEndEl;
	
	//save the currently selected day
	var day = workingEl.options[workingEl.selectedIndex].value;
	
	//get the selected month and year
	var dateArray = stringDate.split("-");
	var month = dateArray[0];
	var year = dateArray[1];

	//get the number of days in selected month
	var days =  32 - new Date(year, month-1, 32).getDate();
	
	//reset days select
	workingEl.options.length=0;
	
	//replace the days loop based on the new selection
	for(i=0; i<days; i++)
	{
		// mentain previously selected day only if current month's no of days allows that
		var selected = ( (day <= days) && ( i == day-1 ) ) ? true : false;
			
		workingEl.options[i]= new Option(i+1, i+1, false, selected);
	}
}

function UpdateNights()
{
    var dayStartSel = document.getElementById( 'day_start' );
    var dayEndSel = document.getElementById( 'day_end' );
    var monthStartSel = document.getElementById( 'month_start' );
    var monthEndSel = document.getElementById( 'month_end' );
    var nightsEl = document.getElementById( 'nights' );
    
    var day     = dayStartSel.value
    var arr = monthStartSel.value.split("-");
    var month   = arr[0];
    var year    = arr[1];

    var date_start = year + '/' + month + '/' + day;

    var day     = dayEndSel.value
    var arr = monthEndSel.value.split("-");
    var month   = arr[0];
    var year    = arr[1];
    var date_end = year + '/' + month + '/' + day;
        
    var aDateStart  = new Date( date_start );
    var aDateEnd    = new Date( date_end );

    if( ( aDateStart.valueOf() < 0 ) || (aDateEnd.valueOf() < 0 ) ) return false; // not valid dates

    if( !validInterval( aDateStart, aDateEnd ) )
    {
        nightsEl.value = 0;
        var errorMessage = 'Please make sure that arrival date comes before departure date!';
        alert( errorMessage );
        return false;
    }
    
    // compute the difference between the two dates, in miliseconds
    var diff = aDateEnd - aDateStart;
    // convert to days
    var days = Math.round( diff/86400000 );
    
    nightsEl.value = days;
    
    return true;
}

function validInterval( aDateStart, aDateEnd ) 
{
    aDateStart = new Date( aDateStart );
    aDateEnd = new Date( aDateEnd );
    
    if( ( aDateStart.getTime() > aDateEnd.getTime() ) )
    {
        return false;
    }
    
    return true;
}
