function preloadImages(){
	var d=document; if(d.images){ if(!d.p) d.p=new Array();
	var i,j=d.p.length,a=preloadImages.arguments; for(i=0; i<a.length; i++)
	if(a[i].indexOf("#")!=0){ d.p[j]=new Image; d.p[j++].src=a[i];}}
}

function LoadSuggest(item, lang, img, scale){
	fullSearch = true;
	InstallAC(document.forms[0], item, null, LANG_ROOT_PATH + 'AJAX/SuggestResult.aspx', lang, GetItemById(img), validateForm, scale);
}

function ShowHidePanel(object){
	var ctrl = GetItemById(object);

	if(ctrl.style.display == 'none')
		ctrl.style.display = '';
	else
		ctrl.style.display = 'none';
}

function toggleControl(object, displayState){
	if(displayState == 'show')
		GetItemById(object).style.display = '';
	else
		GetItemById(object).style.display = 'none';
}

function ExpandPanel(id, imgID, onImg, offImg){
	var panel = GetItemById(id);
	var image = GetItemById(imgID);

	if(panel.style.display == 'none'){
		panel.style.display = '';
		image.src = offImg;
	}
	else{
		panel.style.display = 'none';
		image.src = onImg;
	}
}

function parse_monthyear(monthyear){
	var strs = monthyear.split("-");
	var dateObj = new Object();
	dateObj.year = strs[0];
	dateObj.month = strs[1];
	return dateObj;
}

function parse_date(dt){
	var dateNow = new Date();
	var strs = dt.split("-");
	var dateObj = new Object();
	dateObj.year = (strs.length > 0 ? parseInt(strs[0], 10) : dateNow.getFullYear());
	dateObj.month = (strs.length > 1 ? parseInt(strs[1], 10) : (dateNow.getMonth() + 1));
	dateObj.day = (strs.length > 2 ? parseInt(strs[2], 10) : dateNow.getDate());
	return dateObj;
}

function calendarChanged(){
	var checkInDateObj = parse_date(GetItemById('checkIn').value);
	var checkOutDateObj = parse_date(GetItemById('checkOut').value);
	var checkInDate = new Date(checkInDateObj.year, checkInDateObj.month - 1, checkInDateObj.day);
	var checkOutDate = new Date(checkOutDateObj.year, checkOutDateObj.month - 1, checkOutDateObj.day);

	var today = new Date();
	if(checkInDate < today){
		checkInDate = today;
		GetItemById('ddCheckInDay').value = checkInDate.getDate();
		GetItemById('ddCheckInMonth').value = checkInDate.getFullYear() + "-" + (checkInDate.getMonth() + 1);
		GetItemById('checkIn').value = checkInDate.getFullYear() + "-" + (checkInDate.getMonth() + 1) + "-" + checkInDate.getDate();
	}

	if(checkOutDate <= checkInDate){
		checkOutDate = checkInDate;
		checkOutDate.setDate(checkOutDate.getDate() + 1);
		GetItemById('ddCheckOutDay').value = checkOutDate.getDate();
		GetItemById('ddCheckOutMonth').value = checkOutDate.getFullYear() + "-" + (checkInDate.getMonth() + 1);
		GetItemById('checkOut').value = checkOutDate.getFullYear() + "-" + (checkInDate.getMonth() + 1) + "-" + checkInDate.getDate();
	}
}

function dateDropdownChanged(){
	var checkInDay = GetItemById('ddCheckInDay').value;
	var checkInYM = GetItemById('ddCheckInMonth').value
	var checkInMonthYear = new parse_monthyear(checkInYM);
	var checkInDate = new Date(checkInMonthYear.year, checkInMonthYear.month - 1, checkInDay);
	GetItemById('checkIn').value = checkInDate.getFullYear() + "-" + (checkInDate.getMonth() + 1) + "-" + checkInDate.getDate();

	var checkOutDay = GetItemById('ddCheckOutDay').value;
	var checkOutYM = GetItemById('ddCheckOutMonth').value
	var checkOutMonthYear = new parse_monthyear(checkOutYM);
	var checkOutDate = new Date(checkOutMonthYear.year, checkOutMonthYear.month - 1, checkOutDay);
	GetItemById('checkOut').value = checkOutDate.getFullYear() + "-" + (checkOutDate.getMonth() + 1) + "-" + checkOutDate.getDate();

	var today = new Date();
	if(checkInDate < today){
		checkInDate = today;
	}
	GetItemById('ddCheckInDay').value = checkInDate.getDate();
	GetItemById('ddCheckInMonth').value = checkInDate.getFullYear() + "-" + (checkInDate.getMonth() + 1);
	GetItemById('checkIn').value = checkInDate.getFullYear() + "-" + (checkInDate.getMonth() + 1) + "-" + checkInDate.getDate();

	if(checkOutDate <= checkInDate){
		checkOutDate = checkInDate;
		checkOutDate.setDate(checkOutDate.getDate() + 1);
	}
	GetItemById('ddCheckOutDay').value = checkOutDate.getDate();
	GetItemById('ddCheckOutMonth').value = checkOutDate.getFullYear() + "-" + (checkOutDate.getMonth() + 1);
	GetItemById('checkOut').value = checkOutDate.getFullYear() + "-" + (checkOutDate.getMonth() + 1) + "-" + checkOutDate.getDate();
}

// FORM VALIDATION
function validateForm()
{
	if(abortSuggest){ abortSuggest(); }
	
	var errCity = GetItemById('errCity')
	var errDateOut = GetItemById('errDateReturn');
	var cityField = GetItemById('tbcity');
	var checkInField = GetItemById('checkIn');
	var checkOutField = GetItemById('checkOut');
	var currency = GetItemById('ddCurrency');

	if(trim(cityField.value).length == 0){
		errCity.innerHTML = '<font color=red>X</font>';
		alert(TXT_NO_DEST_ERROR);
		FocusItem(cityField);
		return false;
	}

	var inDateElems = checkInField.value.split('-');
	var outDateElems = checkOutField.value.split('-');

	try{
		var checkInDate = new Date(inDateElems[0], inDateElems[1], inDateElems[2]);
		var checkOutDate = new Date(outDateElems[0], outDateElems[1], outDateElems[2]);
		if(checkInDate > checkOutDate){
			errDateOut.innerHTML = '<font color=red>X</font>';
			return false;
		}
		else{ errDateOut.innerHTML = ''; }
	}
	catch(e){
		errDateOut.innerHTML = '<font color=red>X</font>';
		return false;
	}

	var URL = HOTELS_PATH + 'hotelsearch.aspx';
	URL += '?city=' + encodeURIComponent(cityField.value);
	URL += '&dtCheckIn=' + checkInField.value;
	URL += '&dtCheckOut=' + checkOutField.value;
	URL += '&occupancy=' + GetItemById('ddOccupants').value;
	URL += '&currency=' + currency.value;
	
	if(currency && currency.value.length > 0){
		document.cookie = 'Currency=' + currency.value + '; path=/;';
	}

	window.location.href = URL;

	return false;
}

function FocusItem(elem){
	elem.focus();
	elem.select();
}

function GetItemById(id){
	return (document.all ? document.all[id] : document.getElementById(id));
}

function trim(str){ return str.replace(/^\s+/, "").replace(/\s+$/, ""); };

