﻿function selectText(obj){
	obj.select();
}

function disableKeyPress(obj, changeFunc, evt){
	if(!evt && window.event){ evt = window.event; }
	var keyCode = evt.keyCode;	
	switch(keyCode){
		case 9://tab
			hideCalendar();
			return true;
		case 13://enter
			if(calendarVisible()){ hideCalendar(); }
			else{ obj.blur(); obj.focus(); }
			return true;
		case 16://shift
		case 17://ctrl
		case 18://alt
		case 19://pause/break
		case 20://caps lock
		case 27://escape
		case 144://num lock
			selectText(obj);
			return true;
		case 37://left arrow
			updatePopCalendar(obj, -1, changeFunc);
			break;
		case 38://up arrow
			updatePopCalendar(obj, -7, changeFunc);
			break;
		case 39://right arrow
			updatePopCalendar(obj, 1, changeFunc);
			break;
		case 40://down arrow
			updatePopCalendar(obj, 7, changeFunc);
			break;
	}
	selectText(obj);
	if(keyCode >= 112 && keyCode <= 123){ return true; }// F1 - F12
	return false;
}

function updatePopCalendar(obj, days, func){
	if(!calendarVisible()){ obj.blur(); obj.focus(); }
	var dt = mashupDate.parseDate(obj.value,DATE_FORMAT,DATE_SEPARATOR);
	dt.setDate(dt.getDate() + days);
	obj.value = mashupDate.buildDate(dt,DATE_FORMAT,DATE_SEPARATOR);
	if(func){func();}
	dt = mashupDate.parseDate(obj.value,DATE_FORMAT,DATE_SEPARATOR);
	if(constructCalendar){
		dateSelected = dt.getDate();
		monthSelected = dt.getMonth();
		yearSelected = dt.getFullYear();
		odateSelected = dateSelected;
		omonthSelected = monthSelected;
		oyearSelected = yearSelected;
		constructCalendar();
	}
}

function DoHotelsOpSearch(OPID){
	if(abortSuggest){ abortSuggest(); }

	var tbCityField = GetItemById('tbCity' + OPID);
	var tbDepDateField = GetItemById('tbDepDate' + OPID);
	var tbRetDateField = GetItemById('tbRetDate' + OPID);
	var ddlOccupancyField = GetItemById('ddlOccupancy' + OPID);
	var errCity = GetItemById('errCity'+ OPID)
	var errDateOut = GetItemById('errCheckOut'+ OPID);
	
	var CityElems = tbCityField.value.split(',');
	
	if(trim(tbCityField.value).length == 0){
		errCity.innerHTML = '<font color=red>X</font>';
		alert(TXT_NO_DEST_ERROR);
		FocusItem(tbCityField);
		return false;
	}

	try{
	    var checkInDate = mashupDate.parseDate(tbDepDateField.value,DATE_FORMAT,DATE_SEPARATOR);
	    var checkOutDate = mashupDate.parseDate(tbRetDateField.value,DATE_FORMAT,DATE_SEPARATOR);
		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 = LANG_ROOT_PATH + 'hotelredirect.aspx';
	url += '?opid=' + OPID;
	url += '&city=' + CityElems[0];
	url += '&persons=' + ddlOccupancyField.value;
	url += '&checkin=' + tbDepDateField.value;
	url += '&checkout=' + tbRetDateField.value;
	url += '&searchbox=true';
	
	var win = window.open(url);
	if (win == null)
    {	
	    window.location.href = url;
	}
}

function DoOpSearch(OPID){
	if(abortSuggest){ abortSuggest(); }

	var depField = GetItemById('tbAptDep' + OPID);
	var depIATAField = GetItemById('tbDepIata' + OPID);
	var destField = GetItemById('tbAptDest' + OPID);
	var destIATAField = GetItemById('tbDestIata' + OPID);
	var depDateField = GetItemById('tbDepDate' + OPID);
	var retDateField = GetItemById('tbRetDate' + OPID);
	var wayField = GetItemById('FLWay' + OPID);
	var errAptDep = GetItemById('errAptDep' + OPID);
	var errAptDest = GetItemById('errAptDest' + OPID);
	var errDateReturn = GetItemById('errDateRet' + OPID);

	var isError = false;

	if(trim(depField.value) == ''){
		errAptDep.innerHTML = '<font color=red>X</font>';
		isError = true;
		FocusItem(depField);
		alert(TXT_NO_DEP_ERROR);
	}
	else{ errAptDep.innerHTML = ''; }

	if(trim(destField.value) == ''){
		errAptDest.innerHTML= '<font color=red>X</font>';
		isError = true;
		FocusItem(destField);
		alert(TXT_NO_DEST_ERROR);
	}
	else{ errAptDest.innerHTML = ''; }

	if(	(depIATAField.value != '' && depIATAField.value == destIATAField.value) || 
		trim(destField.value).toLowerCase() == trim(depField.value).toLowerCase()){
		errAptDest.innerHTML= '<font color=red>X</font>';
		isError = true;
		FocusItem(destField);
		alert(TXT_SAME_DEP_DEST_ERROR);
	}
	else if(!isError){ errAptDest.innerHTML = ''; }

	var blnOneWay = GetItemById('optOneWay' + OPID).checked;

	try{
		var dtDepart = mashupDate.parseDate(depDateField.value,DATE_FORMAT,DATE_SEPARATOR);
		var dtReturn = mashupDate.parseDate(retDateField.value,DATE_FORMAT,DATE_SEPARATOR);
		if(!blnOneWay && dtDepart > dtReturn){
			errDateReturn.innerHTML = '<font color=red>X</font>';
			isError = true;
		}
		else{ errDateReturn.innerHTML = ''; }
	}
	catch(e){
		errDateReturn.innerHTML = '<font color=red>X</font>';
		isError = true;
	}
	
	if(isError){ return false; }

	var url = LANG_ROOT_PATH + 'redirect.aspx';
	url += '?opid=' + OPID;
	url += '&url=';
	url += '&DepartAirport=' + (depIATAField.value.length > 0 ? depIATAField.value : depField.value.replace(TXT_ALL_AIRPORTS,''));
	url += '&DestinationAirport=' + (destIATAField.value.length > 0 ? destIATAField.value : destField.value.replace(TXT_ALL_AIRPORTS,''));
	url += '&Adults=1';
	url += '&Children=0';
	url += '&Infants=0';
	url += '&DepartureDate=' + depDateField.value;
	url += '&ReturnDate=' + (!blnOneWay ? retDateField.value : '');

	var win = window.open(url);
	if (win == null)
    {	
	    window.location.href = url;
	}
}

function checkJourneyButtons(OPID){
	var onewayField = GetItemById('optOneWay' + OPID);
	var returnField = GetItemById('optReturn' + OPID);
	if(onewayField.checked){ onewayField.checked = true; }
	else{ returnField.checked = true; }
}

function GetItemById(id){
	return (document.all ? document.all[id] : document.getElementById(id));
}

function LoadOperatorSuggest(item,iata,lang,img,sendFunc,widthScale){
	if(!widthScale){ widthScale = 1.8; }
	UnInstall();
	InstallACBasic(document.CFLiveSearch, item, GetItemById(iata), LANG_ROOT_PATH + 'AJAX/SuggestResult.aspx', lang, GetItemById(img), sendFunc, widthScale, true);
}
