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 toggleRes(lang)
{
	var onlineResEl = document.getElementById('onlineRes');
	var phoneResEl = document.getElementById('phoneRes');
	var toggleLinkEl = document.getElementById('toggleLink');

	var display = onlineResEl.style.display;

	if ( display != 'none' )
	{
		onlineResEl.style.display = 'none';
		phoneResEl.style.display = 'block';

		switch (lang)
		{
		case 'en':
			toggleLinkEl.innerHTML = 'Online reservation';
		break;
        case 'fr':
			toggleLinkEl.innerHTML = 'Réservation Online';
		break;
        case 'de':
			toggleLinkEl.innerHTML = 'Online Reservierung';
		break;
		case 'es':
			toggleLinkEl.innerHTML = 'Reserva online';
		break;
		case 'it':
			toggleLinkEl.innerHTML = 'Prenotazione online';
		break;
        case 'hu':
			toggleLinkEl.innerHTML = 'Online foglal&aacute;s';
		break;
        case 'ru':
            toggleLinkEl.innerHTML = '&#1041;&#1088;&#1086;&#1085;&#1080;&#1088;&#1086;&#1074;&#1072;&#1085;&#1080;&#1077; &#1086;&#1085;-&#1083;&#1072;&#1081;&#1085;';
		break;
		default:
			toggleLinkEl.innerHTML = 'Rezervare online';
		break;
		}
	}else
	{
		onlineResEl.style.display = 'block';
		phoneResEl.style.display = 'none';

		switch (lang)
		{
		case 'en' :
			toggleLinkEl.innerHTML = 'Phone reservation';
		break;
        case 'fr' :
			toggleLinkEl.innerHTML = 'Par téléphone';
		break;
        case 'de':
			toggleLinkEl.innerHTML = 'Telefonisch buchen';
		break;
		case 'es':
			toggleLinkEl.innerHTML = 'Reserva telefónica';
		break;
		case 'it':
			toggleLinkEl.innerHTML = 'Prenotazione telefonica';
		break;
        case 'hu':
			toggleLinkEl.innerHTML = 'Telefonos foglal&aacute;s';
		break;
        case 'ru':
            toggleLinkEl.innerHTML = '&#1041;&#1088;&#1086;&#1085;&#1080;&#1088;&#1086;&#1074;&#1072;&#1085;&#1080;&#1077; &#1087;&#1086; &#1090;&#1077;&#1083;&#1077;&#1092;&#1086;&#1085;&#1091';
        break;    
		default:
			toggleLinkEl.innerHTML = 'Rezervare telefonica';
		break;
		}
	}
}

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;
}
