var appFolder = '/';
var updatingDropOffPlace = false;
var currentCarGroup = '';
var currentCarData = '';
var _browserName = 'Unknown browser';
var _browserVersion = 'Unknown version';
var _yPos = 0;
var _obj = null;
var _objName = '';
var _objLi = '';
var _objExplainText = '';
var _objText = '';
var _pickupType = '';
var _pickupStationName = '';
var _returnStationName = '';
var _hasMadeChanges = false;
var _upgradedFrom = '';

function RQ(par, func) {
	if (func === undefined) {
		func = RQD;
	}
	var rq = new Ajax.Request(appFolder + 'AjaxRequester.aspx', {method:'post', parameters:par, onComplete:func});
}

function RQD(r) {}

function PutNameValuesIntoOptionList(nameOfList, values, topvalue) {
	var objList = $(nameOfList);
	ClearOptionList(nameOfList);
	arrValues = values.split('|');

	if (objList != null) {
		if (topvalue != '' && arrValues.length > 1) {
			objList.options[0] = new Option(topvalue,'');
		}
		for (i = 0; i < arrValues.length; i++) {
			arrValue = arrValues[i].split(';');
			objList.options[objList.options.length] = new Option(arrValue[1],arrValue[0]);
		}
	}
}

function PutOfficesInList(nameOfList, values, topvalue) {
	var objList = $(nameOfList);
	var option = null;
	ClearOptionList(nameOfList);
	arrValues = values.split('|');

	objList.options[0] = new Option($('ctl00_MainContentWrapper_lblSelectStationFirstValue').innerHTML, '');

	var groupCityOffices = document.createElement('optgroup');
	groupCityOffices.label = $('ctl00_MainContentWrapper_Search_Office_GityGroupName').innerHTML;

	for (i = 0; i < arrValues.length; i++) {
		arrValue = arrValues[i].split(';');
		if (arrValue[2] == 'CITY') {
			option = document.createElement('option');
			option.value = arrValue[0];
			option.innerHTML = arrValue[1];
			groupCityOffices.appendChild(option);
		}
	}
	
	var groupAirportOffices = document.createElement('optgroup');
	groupAirportOffices.label = $('ctl00_MainContentWrapper_Search_Office_AirportGroupName').innerHTML;

	for (i = 0; i < arrValues.length; i++) {
		arrValue = arrValues[i].split(';');
		if (arrValue[2] == 'AIRPORT') {
			option = document.createElement('option');
			option.value = arrValue[0];
			option.innerHTML = arrValue[1];
			groupAirportOffices.appendChild(option);
		}
	}

	if (groupCityOffices.childNodes.length > 0) {
		objList.appendChild(groupCityOffices);
	}
	if (groupAirportOffices.childNodes.length > 0) {
		objList.appendChild(groupAirportOffices);
	}
}

function ClearOptionList(listToClear) {
	var objSelect = $(listToClear);
	if (objSelect != null) {
		removeAllChildNodes(objSelect);
	}
}

function SetSelectValue(selectName, val) {
	var sel = $(selectName);

	for (var i = 0; i < sel.options.length; i++) {
		if (sel.options[i].value == val) {
			sel.options[i].selected = true;
		}
	}
}

function CopySelectOptions(from, to) {
	var selFrom = $(from);
	var selTo = $(to);
	var val = '';
	var txt = '';
	ClearOptionList(to);

	for (var i = 0; i < selFrom.options.length; i++) {
		val = selFrom.options[i].value;
		txt = selFrom.options[i].text;
		selTo.options[i] = new Option(txt, val);
		if (selFrom.options[i].selected) {
			selTo.options[i].selected = true;
		}
	}
}


function removeAllChildNodes(node) {
	if (node && node.hasChildNodes && node.removeChild) {
		while (node.hasChildNodes()) {
			node.removeChild(node.firstChild);
		}
	}
}



/*	MAIN SEARCH ENGINE FUNCTIONS:
	-------------------------------------------------------------------------------------------- */
function ToggleDropOffStations() {
	if ($('ctl00_MainContentWrapper_SameAsPickUp').checked) {
		Element.hide('ctl00_MainContentWrapper_SelectDropOffDestinationHolder', 'ctl00_MainContentWrapper_SelectDropOffStationHolder');
		if ($('ctl00_MainContentWrapper_txtExplainOneWayPaymentAndCost')) Element.hide('ctl00_MainContentWrapper_txtExplainOneWayPaymentAndCost');
		CopySelectOptions('ctl00_MainContentWrapper_SelectDestination', 'ctl00_MainContentWrapper_SelectDropOffDestination');
		GetOfficeList($F('ctl00_MainContentWrapper_SelectDestination'), true);
		// CopySelectOptions('ctl00_MainContentWrapper_SelectStation', 'ctl00_MainContentWrapper_SelectDropOffStation');
	} else {
		Element.show('ctl00_MainContentWrapper_SelectDropOffDestinationHolder', 'ctl00_MainContentWrapper_SelectDropOffStationHolder');
		if ($('ctl00_MainContentWrapper_txtExplainOneWayPaymentAndCost')) Element.show('ctl00_MainContentWrapper_txtExplainOneWayPaymentAndCost');
	}
}

function GetCityList(countryCode) {	

	if (countryCode.length > 0) {
		ShowLoading();
				
		// CLEAR LISTS:
		ClearOptionList('ctl00_MainContentWrapper_SelectDestination');
		ClearOptionList('ctl00_MainContentWrapper_SelectStation');
		ClearOptionList('ctl00_MainContentWrapper_SelectDropOffDestination');
		ClearOptionList('ctl00_MainContentWrapper_SelectDropOffStation');

		// GET LIST:
		RQ('Type=GetCityList&Value=' + countryCode, GetCityList_D);

	}
}

function GetCityList_D(r) {
	if (r.responseText != null && r.responseText.length > 0) {
		PutNameValuesIntoOptionList('ctl00_MainContentWrapper_SelectDestination', r.responseText, $('ctl00_MainContentWrapper_lblSelectDestinationFirstValue').innerHTML);
		PutNameValuesIntoOptionList('ctl00_MainContentWrapper_SelectDropOffDestination', r.responseText, $('ctl00_MainContentWrapper_lblSelectDestinationFirstValue').innerHTML);
		$('ctl00_MainContentWrapper_SelectDestination').disabled = false;

		// IF ONLY 1 CITY OR CITY IS SELECTED FROM COOKIE, GET OFFICES TOO:
		var cities = r.responseText.split('|');
		if (cities.length == 1) {
			GetOfficeList(cities[0].split(';')[0], updatingDropOffPlace);
			return;
		} else if (window.PreviousSearch) {
			if (window.PreviousSearch.city) {
				SetSelectValue('ctl00_MainContentWrapper_SelectDestination', PreviousSearch.city);
				GetOfficeList(PreviousSearch.city, false);
				window.PreviousSearch.city = null;
			}
			if (window.PreviousSearch.dropOff) {
				if (window.PreviousSearch.dropOff.city) {
					SetSelectValue('ctl00_MainContentWrapper_SelectDropOffDestination', PreviousSearch.dropOff.city);
					GetOfficeList(PreviousSearch.dropOff.city, true);
					window.PreviousSearch.dropOff.city = null;
				}
			}
		}

	}

	HideLoading();
	//$('ctl00_MainContentWrapper_SelectDestination').focus();
}
function SetCorrectFocus(){
	$('ctl00_MainContentWrapper_SelectDestination').blur();
	var steppern = $('Stepper');	
	var headern = $('Header');
	if(steppern && headern==null){
		steppern.scrollIntoView();
	}
	else if(headern){			
			headern.scrollIntoView();
	}

}

function GetOfficeList(destinationCode, updatingDropOff) {	
	updatingDropOffPlace = updatingDropOff;
	if (destinationCode.length > 0) {
		ShowLoading();
		if ($('ctl00_MainContentWrapper_SameAsPickUp') != null && $('ctl00_MainContentWrapper_SameAsPickUp').checked) {
			SetSelectValue('ctl00_MainContentWrapper_SelectDropOffDestination', destinationCode);
		}
		RQ('Type=GetOffices&Value=' + destinationCode, function(r) { GetOfficeList_D(r, updatingDropOff); });
	}
	//SetCorrectFocus();
}

function ReloadOfficeList(destinationCode) {
	RQ('Type=GetOffices&Value=' + destinationCode, ReloadOfficeList_D);
}

function ReloadOfficeList_D(r) {

	PutOfficesInList('ctl00_MainContentWrapper_SelectStation', r.responseText);
	var cookieValue = getCookie('SearchValues');
	if (cookieValue != null) {
		var cookieValues = cookieValue.split('|');
		SetSelectValue('ctl00_MainContentWrapper_SelectStation', cookieValues[2] + '#' + cookieValues[1]);
	}
}

function ReloadDropOffOfficeList(destinationCode) {
	RQ('Type=GetOffices&Value=' + destinationCode, ReloadDropOffOfficeList_D);
}

function ReloadDropOffOfficeList_D(r) {
	PutOfficesInList('ctl00_MainContentWrapper_SelectDropOffStation', r.responseText);
	var cookie = getCookie('SearchValues');
	if(cookie!=null){
	var cookieValues = cookie.split('|');
	SetSelectValue('ctl00_MainContentWrapper_SelectDropOffStation', cookieValues[6] + '#' + cookieValues[5]);
	}
}


function GetOfficeList_D(r, updatingDropOff) {
	var itemID = '';
	if (r.responseText != null && r.responseText.length > 0) {
		if (!updatingDropOff) {
			PutOfficesInList('ctl00_MainContentWrapper_SelectStation', r.responseText);
			if ($('ctl00_MainContentWrapper_SameAsPickUp').checked) {
				// PutOfficesInList('ctl00_MainContentWrapper_SelectDropOffStation', r.responseText);
			}
			$('ctl00_MainContentWrapper_SelectStation').disabled = false;
			itemID = 'ctl00_MainContentWrapper_SelectStation';
			if (window.PreviousSearch && window.PreviousSearch.office) {
				SetSelectValue('ctl00_MainContentWrapper_SelectStation', PreviousSearch.office);
				window.PreviousSearch.office = null;
			}
		} else {
			PutOfficesInList('ctl00_MainContentWrapper_SelectDropOffStation', r.responseText);
			$('ctl00_MainContentWrapper_SelectDropOffStation').disabled = false;
			itemID = 'ctl00_MainContentWrapper_SelectDropOffStation';
			if (window.PreviousSearch && window.PreviousSearch.dropOff && window.PreviousSearch.dropOff.office) {
				SetSelectValue('ctl00_MainContentWrapper_SelectDropOffStation', PreviousSearch.dropOff.office);
				window.PreviousSearch.dropOff.office = null;
			}
		}
	}

	HideLoading();
}


function GetChangeBookingOfficeList(destinationCode, select, btn) {
	_obj = btn;
	_objName = select;
	$(_obj).disabled = true;

	var objList = $(select);
	ClearOptionList(objList);

	objList.options[0] = new Option(' ------- ','');
	if (destinationCode.length > 0) {
		RQ('Type=GetOffices&Value=' + destinationCode, GetChangeBookingOfficeList_Done);
	}
}

function GetChangeBookingOfficeList_Done(r) {
	$(_obj).disabled = false;
	if (r.responseText != null && r.responseText.length > 0) {
		PutNameValuesIntoOptionList(_objName, r.responseText, '-- select area --');
	}
}

function SelectStationInSearch(stationValue) {
	if ($('ctl00_MainContentWrapper_SameAsPickUp').checked) {
		SetSelectValue('ctl00_MainContentWrapper_SelectDropOffStation', stationValue);
	}
	$('ctl00_MainContentWrapper_SameAsPickUp').focus; //to prevent other fields from being scrollable.
}

function FromDateSelected() {
	RQ('Type=AddDays&Value=' + $F('PickupDate') + '&Days=7', FromDateSelected_D);
}

function FromDateSelected_D(r) {
	if ($('ReturnDate').value == 'yyyy-mm-dd') {
		$('ReturnDate').value = r.responseText;
	}
}

function ToggleUsaRentalTypes(countryCode) {
    if (countryCode == 'US') {
        Element.removeClassName($('UsaRentalTypeHolder'), 'hidden')
        Element.removeClassName($('PriceCategoryU25Holder'), 'hidden');
        if ($('ctl00_MainContentWrapper_lblUSATypeAPlus')) {
            Element.removeClassName($('ctl00_MainContentWrapper_lblUSATypeAPlus'), 'hidden');
        }
        if ($('ctl00_MainContentWrapper_lblCATypeAPlus')) {
            Element.addClassName($('ctl00_MainContentWrapper_lblCATypeAPlus'), 'hidden');
        }
    } else if (countryCode == 'CA') {
        Element.removeClassName($('UsaRentalTypeHolder'), 'hidden')
        Element.addClassName($('PriceCategoryU25Holder'), 'hidden');
        if ($('ctl00_MainContentWrapper_lblUSATypeAPlus')) {
            Element.addClassName($('ctl00_MainContentWrapper_lblUSATypeAPlus'), 'hidden');
        }
        if ($('ctl00_MainContentWrapper_lblCATypeAPlus')) {
            Element.removeClassName($('ctl00_MainContentWrapper_lblCATypeAPlus'), 'hidden');
        }
    } else {
        Element.addClassName($('UsaRentalTypeHolder'), 'hidden')
    }
}

function Search() {
	ClearErrorStyles();

	if (ValidateMainSearchForm()) {


		Element.show('Searching');
		Element.hide('PerformSearch');
		Element.hide('ErrorMessage');

		var pickUpCountryCode = $F('ctl00_MainContentWrapper_SelectCountry');
		var dropOffCountryCode = $F('ctl00_MainContentWrapper_SelectCountry');
		var pickUpDestData = $F('ctl00_MainContentWrapper_SelectStation').split('#');
		var dropOffDestData = $F('ctl00_MainContentWrapper_SelectDropOffStation').split('#');
		var dateFrom = $F('ctl00_MainContentWrapper_PickupDate') + ' ' + $F('ctl00_MainContentWrapper_PickupTime');
		var dateTo = $F('ctl00_MainContentWrapper_ReturnDate') + ' ' + $F('ctl00_MainContentWrapper_ReturnTime');
		
		// CHECK FOR DROP OFF DESTINATION:
		var dropOffAreaCode = dropOffDestData[1];
		var dropOffCity = dropOffDestData[0];
		if ($('ctl00_MainContentWrapper_SameAsPickUp').checked) {
			dropOffAreaCode = pickUpDestData[1];
			dropOffCity = pickUpDestData[0];
		}

		// CHECK FOR USA PRICE CATEGORIES:
		var usaPriceCat;
		if ($('USATypeGross').checked) {
			usaPriceCat = 'gross';
		} else if ($('USATypeAPlus').checked) {
			usaPriceCat = 'aplus';
		} else if ($('USATypeU25').checked) {
			usaPriceCat = 'u25';
		}

		var params = 'Type=Search' +
			'&pcc=' + pickUpCountryCode +
			'&pac=' + pickUpDestData[1] +
			'&pdc=' + pickUpDestData[0] +
			'&pdi=' + $F('ctl00_MainContentWrapper_SelectDestination') +
			'&dcc=' + pickUpCountryCode +
			'&dac=' + dropOffAreaCode +
			'&ddc=' + dropOffCity +
			'&ddi=' + $F('ctl00_MainContentWrapper_SelectDropOffDestination') +
			'&pd=' + dateFrom +
			'&rd=' + dateTo +
			'&upc=' + usaPriceCat +
			'&dc=' + $F('ctl00_MainContentWrapper_DiscountCode');

		RQ(params, Search_D);
	} else {
		Element.show('ErrorMessage');
	}
}

function Search_D(r) {
	var resp = r.responseText.split('|');
	if (resp[0] == 'false') {
		Element.hide('Searching');
		Element.show('PerformSearch');
		Element.show('ErrorMessage');

		var html = $('ctl00_MainContentWrapper_Search_Errors_Heading').innerHTML + '<br />' + resp[2];

		$('ctl00_MainContentWrapper_lblShortErrorMessage').innerHTML = html;

		switch (resp[1]) {
			case '9' : 
				HandleMainSearchError($('ctl00_MainContentWrapper_PickupDate'));
				HandleMainSearchError($('ctl00_MainContentWrapper_ReturnDate'));
				break;
		}
	} else if (resp[0] == 'true') {

    	/*if a search*/
	var searchButton = $('ctl00_MainContentWrapper_btnSearchForCars');
	if (searchButton.target == '_blank') {
	        Element.hide('Searching');
	        Element.show('PerformSearch');
	        WO(resp[3] + '/CarList.aspx', '_blank', 700, 700, 'resizable=yes,scrollbars=yes,status=no,menubar=yes,toolbar=yes');
            // Works with <a href="thePage.aspx" onmouseup="Search();return false;" in all browsers 20 jan 2009	        
	    }
	    else {
	        document.location.href = resp[3] + '/CarList.aspx';
	    }
	
	} else {
		Element.hide('Searching');
		Element.show('PerformSearch');
		alert(r.responseText);
	}
}

function ClearFrontPageForm() {

	ClearOptionList('ctl00_MainContentWrapper_SelectDestination');
	ClearOptionList('ctl00_MainContentWrapper_SelectStation');
	ClearOptionList('ctl00_MainContentWrapper_SelectDropOffDestination');
	ClearOptionList('ctl00_MainContentWrapper_SelectDropOffStation');
	$('ctl00_MainContentWrapper_SelectCountry').selectedIndex = 0;
	$('ctl00_MainContentWrapper_PickupDate').value = 'yyyy-mm-dd';
	$('ctl00_MainContentWrapper_ReturnDate').value = 'yyyy-mm-dd';
	Element.hide('ErrorMessage');
}

function ValidateMainSearchForm() {
	var ret = true;

	// SELECT COUNTRY:
	if ($('ctl00_MainContentWrapper_SelectCountry').selectedIndex == 0) {
		HandleMainSearchError($('ctl00_MainContentWrapper_SelectCountry'));
		ret = false;
	}

	// PICK UP DESTINATION:
	if ($('ctl00_MainContentWrapper_SelectCountry').selectedIndex > 0 && $('ctl00_MainContentWrapper_SelectDestination').value.length == 0) {
		HandleMainSearchError($('ctl00_MainContentWrapper_SelectDestination'));
		ret = false;
	}

	// PICK UP STATION:

	if ($('ctl00_MainContentWrapper_SelectCountry').selectedIndex > 0 && $('ctl00_MainContentWrapper_SelectDestination').value.length > 0 && $('ctl00_MainContentWrapper_SelectStation').value.length == 0) {
		HandleMainSearchError($('ctl00_MainContentWrapper_SelectStation'));
		ret = false;
	}

	// DROP OFF DESTINATION:
	if (!$('ctl00_MainContentWrapper_SameAsPickUp').checked && $('ctl00_MainContentWrapper_SelectDropOffDestination').value.length == 0) {
		HandleMainSearchError($('ctl00_MainContentWrapper_SelectDropOffDestination'));
		ret = false;
	}

	// DROP OFF STATION:
	if (!$('ctl00_MainContentWrapper_SameAsPickUp').checked && $('ctl00_MainContentWrapper_SelectDropOffDestination').value.length > 0 && $('ctl00_MainContentWrapper_SelectDropOffStation').value.length == 0) {
		HandleMainSearchError($('ctl00_MainContentWrapper_SelectDropOffStation'));
		ret = false;
	}

	// PICKUP DATE:
	if ($F('ctl00_MainContentWrapper_PickupDate').length != 10 || $F('ctl00_MainContentWrapper_PickupDate') == 'yyyy-mm-dd') {
		HandleMainSearchError($('ctl00_MainContentWrapper_PickupDate').parentNode);
		ret = false;
	}

	// RETURN DATE:
	if ($F('ctl00_MainContentWrapper_ReturnDate').length != 10 || $F('ctl00_MainContentWrapper_ReturnDate') == 'yyyy-mm-dd') {
		HandleMainSearchError($('ctl00_MainContentWrapper_ReturnDate').parentNode);
		ret = false;
	}

	return ret;
}

function HandleMainSearchError(field) {
	field.parentNode.className = 'HasError';
}

function ClearErrorStyles() {
	var lis = $('SearchEngine').getElementsByTagName('li');

	for (var i = 0; i < lis.length; i++) {
		if (lis[i].className.indexOf('HasError') > -1) {
			lis[i].className = lis[i].className.replace('HasError', '');
		}
	}
}

function ShowLoading() {
	if ($('SearchOverlay') != null) {
		$('SearchOverlay').style.height = Element.getHeight('SearchEngine') + 'px';
		Element.show('SearchOverlay');
		Element.hide('SearchEngine');
	}
}

function HideLoading() {
	if ($('SearchOverlay') != null) {;
		Element.hide('SearchOverlay');
		Element.show('SearchEngine');

		var selects = $('SearchForm').getElementsByTagName('select');
		for (var i = 0; i < selects.length; i++) {
			Element.show(selects[i]);
		}
	}
}

function PickupDateSelected(d) {
	if (d != 'yyyy-mm-dd') {
		ShowReadbleDate(tnCalGetDateFromString(d), 'PickupDateReadable', 'ctl00_MainContentWrapper_PickupTime');
	}
	$('ctl00_MainContentWrapper_PickupTime').focus();
}

function ReturnDateSelected(d) {
	if (d != 'yyyy-mm-dd') {
		ShowReadbleDate(tnCalGetDateFromString(d), 'ReturnDateReadable', 'ctl00_MainContentWrapper_ReturnTime');
	}
	$('ctl00_MainContentWrapper_ReturnTime').focus();
}

function PickupDateLeave(d) {
	if (d != 'yyyy-mm-dd') {
		ShowReadbleDate(tnCalGetDateFromString(d), 'PickupDateReadable', 'ctl00_MainContentWrapper_PickupTime');
	}
}

function ReturnDateLeave(d) {
	if (d != 'yyyy-mm-dd') {
		ShowReadbleDate(tnCalGetDateFromString(d), 'ReturnDateReadable', 'ctl00_MainContentWrapper_ReturnTime');
	}
}

function ShowReadbleDate(theDate, target, timeHolder) {
	/* SHOW TIME ALSO :
	var str =  tnCalFullDayNames[theDate.getDay()] +
		' ' + theDate.getDate() + '. ' +
		tnCalFullMonthNames[theDate.getMonth()] + ' ' + theDate.getFullYear() +
		' ' + $F(timeHolder);*/

	var str =  tnCalFullDayNames[theDate.getDay()] +
		' ' + theDate.getDate() + '. ' +
		tnCalFullMonthNames[theDate.getMonth()] + ' ' + theDate.getFullYear();

	$(target).innerHTML = str;
	Element.show(target);
}

function CalculateTimeDifference() {
	var fromIndex = $('ctl00_MainContentWrapper_PickupTime').selectedIndex;
	var toIndex = $('ctl00_MainContentWrapper_ReturnTime').selectedIndex;
	Element.hide('ErrorMessage');
	
	if (toIndex > fromIndex) {
		$('ctl00_MainContentWrapper_lblShortErrorMessage').innerHTML = $('ctl00_MainContentWrapper_Notice_DropoffLaterThanPickupTime').innerHTML;
		Element.show('ErrorMessage');
	}
}

function ShowSection(section) {
	if (section == 'search') {
		Element.show('SearchEngine');
		Element.hide('ChangeBooking');
		Element.removeClassName($('ChangeTab'), 'Selected');
		Element.addClassName($('SearchTab'), 'Selected');
	} else if (section == 'change') {
		Element.hide('SearchEngine');
		Element.show('ChangeBooking');
		Element.addClassName($('ChangeTab'), 'Selected');
		Element.removeClassName($('SearchTab'), 'Selected');
	}
}



/*	CAR LIST FUNCTIONS:
	-------------------------------------------------------------------------------------------- */
function ToggleInformation(carGroup, link, carData) {
	var div = $('CarGroup_' + carGroup);
	currentCarGroup = carGroup;
	var showText = $('ctl00_MainContentWrapper_CarList_ShowMoreInformation').innerHTML;
	var hideText = $('ctl00_MainContentWrapper_CarList_HideInformation').innerHTML;

	if (div.className.indexOf('Selected') > -1) {
		Element.removeClassName(div, 'Selected');
		link.innerHTML = showText;
		Element.hide('CarInfo_' + carGroup);
	} else {
		Element.addClassName(div, 'Selected');
		link.innerHTML = hideText;
		Element.show('CarInfo_' + carGroup);

		// GET TEXTS:
		var textHolder = $('ProductInfo_CarGroup_' + carGroup);
		if (textHolder.innerHTML.length == 0) {
			LoadCarTexts(carData);
		}
	}
}

function LoadCarTexts(carData) {
	Element.show('ProductInfoLoader_CarGroup_' + currentCarGroup);
	RQ('Type=CarTexts&Value=' + carData, LoadCarTexts_Done);
}

function LoadCarTexts_Done(r) {
	Element.hide('ProductInfoLoader_CarGroup_' + currentCarGroup);
	Element.show('ProductInfo_CarGroup_' + currentCarGroup);
	$('ProductInfo_CarGroup_' + currentCarGroup).innerHTML = r.responseText;
}

function SelectCurrentCar() {
	if (currentCarData != null && currentCarData.length > 0) {
		RQ('Type=SaveCarData&Value=' + currentCarData + '&UpgradedFrom=' + _upgradedFrom, SelectCurrentCar_Done);
	}
}

function SelectCurrentCar_Done(r) {
	document.location.href = 'StationList.aspx';
}

function ToggleInsurance(buyInsurance, insurancePrice) {
	var carOnlyPrice = parseInt($('CarOnlyPrice').innerHTML.replace(' ', ''));

	if (buyInsurance) {
		$('CarTotalPrice').innerHTML = addCommas(carOnlyPrice + insurancePrice);
		$('InsurancePrice').innerHTML = insurancePrice;
	} else {
		$('CarTotalPrice').innerHTML = addCommas(carOnlyPrice);
		$('InsurancePrice').innerHTML = 0;
	}
}

function addCommas(nStr) {
	nStr += '';
	x = nStr.split(' ');
	x1 = x[0];
	x2 = x.length > 1 ? ' ' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ' ' + '$2');
	}
	return x1 + x2;
}

function ToggleCarBox(carData, carGroup) {
	currentCarData = carData;
	LoadCarInfoIntoBox(carData, carGroup);
	RQ('Type=SearchForUpgradePossibilities&Value=' + carGroup, SearchForUpgradePossibilities_Done);
}

function SearchForUpgradePossibilities_Done(r) {
	if (r.responseText.length > 0) {
		FixIE('hidden');
		SetSelectVisibility('hidden');
		$('UpgradeCarList').innerHTML = r.responseText;
		$('SelectCarBoxOverlay').style.display = 'block';
		$('UpgradeModule').style.display = 'block';
		scroll(0,0);
	} else {
		SelectCurrentCar();
	}
}

function HideCarBox() {
	FixIE('visible');
	$('SelectCarBoxOverlay').style.display = 'none';
	$('UpgradeModule').style.display = 'none';
	$('UpgradeCarList').innerHTML = '';
	SetSelectVisibility('visible');
}

function SetSelectVisibility(visibility) {
	var selects = document.getElementsByTagName('select');
	for (var i = 0; i < selects.length; i++) {
		selects[i].style.visibility = visibility;
	}
}

function LoadCarInfoIntoBox(carData, carGroup, insurancePrice) {
	var holder = $('CarGroup_' + carGroup);

	if (holder != null) {
		var info = $('CarInfo_' + carGroup).getElementsByTagName('div');

		var adults = info[6].getElementsByTagName('span')[1].innerHTML;
		var children = info[7].getElementsByTagName('span')[1].innerHTML;
		var suitcases = info[10].getElementsByTagName('span')[1].innerHTML;
		var bags = info[11].getElementsByTagName('span')[1].innerHTML;

		var ac = Element.hasClassName(holder.getElementsByTagName('div')[0], 'AirCondition');
		var request = holder.getElementsByTagName('div')[1].innerHTML;

		$('SelectedCarName').innerHTML = holder.getElementsByTagName('h2')[0].innerHTML;
		$('CarOnlyPrice').innerHTML = addCommas($('CarPrice_' + carGroup).innerHTML);
		$('SelectedCarImage').src = $(holder).getElementsByTagName('img')[0].src;

		var infoItems = $('SelectedCarInfo').getElementsByTagName('div');
		infoItems[0].innerHTML = 'x<b>' + adults + '</b>';
		infoItems[1].innerHTML = 'x<b>' + children + '</b>';
		infoItems[2].innerHTML = 'x<b>' + suitcases + '</b>';
		infoItems[3].innerHTML = 'x<b>' + bags + '</b>';
		$('SelectedCarInfo').getElementsByTagName('span')[0].innerHTML = (ac ? '<div class="AC">A/C</div>' : '') + '<div class="OnRequest">' + request + '</div>';
	}
}

function UpgradeToThisCar(carData) {
	_upgradedFrom = currentCarData;
	currentCarData = carData;
	SelectCurrentCar();
}



/*	STATION LIST FUNCTIONS:
	-------------------------------------------------------------------------------------------- */
function SelectPickupType(sel, station) {
	Element.hide('FlightInfo_' + station);
	Element.hide('DeliveryInfo_' + station);

	if (sel.value == 1) {
		Element.show('FlightInfo_' + station);
		$('FlightCode_' + station).focus();
	} else if (sel.value == 3) {
		Element.show('DeliveryInfo_' + station);
	}
}

function SelectStationFromList(stationCode, stationData) {
	var selType = $F('TypeOfPickUp_' + stationCode);
	var flightNumber = '';
	var arrivalTime = '';

	if (selType == '0') {
		alert($('ctl00_MainContentWrapper_Error_StationList_SelectPickupType').innerHTML);
		return;
	}

	if (selType == '1') {
		if ($F('FlightCode_' + stationCode).length == 0) {
			alert($('ctl00_MainContentWrapper_Error_StationList_EnterFlightNo').innerHTML);
			return;
		} else if (($F('ArrivalTimeHour_' + stationCode) + $F('ArrivalTimeMinute_' + stationCode)).length < 2) {
			alert($('ctl00_MainContentWrapper_Error_StationList_EnterFlightArrival').innerHTML);
			return;
		} else {
			flightNumber = $F('FlightCode_' + stationCode);
			arrivalTime = $F('ArrivalTimeHour_' + stationCode) + ':' + $F('ArrivalTimeMinute_' + stationCode);
		}
	} else if (selType == '3') {
		if ($('DeliveryFor_' + stationCode).selectedIndex == 0) {
			alert($('ctl00_MainContentWrapper_Error_StationList_SelectDeliveryHotel').innerHTML);
			return;
		}
	}
	
	// RESET DELIVERY CODE IF DELIVERY NOT SELECTED:
	var deliverySelect = $('DeliveryFor_' + stationCode);
	var deliveryCode = '';
	var deliveryHotelName = '';
	if ($(deliverySelect).options != null && $(deliverySelect).options.length > 1) {
		deliveryCode = $F(deliverySelect);
		deliveryHotelName = $(deliverySelect).options[deliverySelect.selectedIndex].text;
	}
	
	// EXTRAS:
	var extraItems = '';
	var spans;
	var itemName = '';
	var extraHolders = document.getElementsByClassName('ProductExtrasCount');

	// GET ALL SELECTED EXTRA ITEMS:
	for (var i = 0; i < extraHolders.length; i++) {
		if (extraHolders[i].value != '0') {
			spans = $(extraHolders[i].parentNode.parentNode).getElementsByTagName('span')
			itemName = spans[1].innerHTML;
			extraItems += extraHolders[i].id + '#' + extraHolders[i].value + '#' + itemName + '|';
		}
	}
	
	// CLIP LAST SPLITTER OFF;
	if (extraItems.length > 0) {
		extraItems = extraItems.substring(0, extraItems.length - 1);
	}

	RQ('Type=SaveStationData&Value=' + stationData + '&PickupType=' + selType + '&FlightNumber=' + flightNumber + '&ArrivalTime=' + arrivalTime + '&DeliveryCode=' + deliveryCode + '&DeliveryHotelName=' + deliveryHotelName + '&Extras=' + extraItems + '&Insurance=' + $('BuyInsurance').checked, SelectStationFromList_Done);
}

function GetUrl() {
	var innerUrl = document.location.href;
		innerUrl = innerUrl.substring((innerUrl.indexOf('://') + 3), innerUrl.length);
		innerUrl = innerUrl.substring(0, innerUrl.indexOf('/'));
	
	return innerUrl;
}

function SelectStationFromList_Done(r) {
	var arrResponse = r.responseText.split('|');

	if (arrResponse[0] == 'true') {
		document.location.href = 'https://' + GetUrl() + arrResponse[1] + '/Payment.aspx';
	} else if (arrResponse[0] == 'oneway') {
		ToggleReturnStationBox();
	}
}

function SelectReturnStation() {
	var rbs = document.getElementsByClassName('RadioButtonReturn');
	var stationCode = '';
	for (var i = 0; i < rbs.length; i++) {
		if ($(rbs[i]).checked) {
			stationCode = rbs[i].value;
		}
	}

	if (stationCode.length == 0) {
		alert($('ctl00_MainContentWrapper_Error_StationList_SelectReturnStation').innerHTML);
	} else {
		RQ('Type=SaveReturnStationData&Value=' + stationCode, SelectReturnStationFromList_Done);
	}
}

function SelectReturnStationFromList_Done(r) {
	document.location.href = 'https://' + GetUrl() + r.responseText + '/Payment.aspx';;
}

function ToggleReturnStationBox() {
	var overlay = $('SelectCarBoxOverlay');
	var box = $('SelectCarBox');

	if (overlay != null && box != null) {
		if (overlay.style.display == 'none' || overlay.style.display == '') {
			ShowOverLayAndBox('SelectCarBox');
			scroll(0,0);
		} else {
			ResetOverLay('SelectCarBox');
		}
	}
}

function LoadPickupTypes() {
	var list = document.getElementsByClassName('StationTypeOfPickup');
	
	for (var i = 0; i < list.length; i++) {
		var itemID = list[i].id.replace('TypeOfPickUp_', '');
		SelectPickupType(list[i], itemID)
	}
}



/*	PAYMENT PAGE FUNCTIONS:
	-------------------------------------------------------------------------------------------- */
function CopyFirstNames(firstName) {
	$('CreditCardOwnerFirstName').value = firstName;
	$('DriverFirstName').value = firstName;
}

function CopyLastNames(lastName) {
	$('CreditCardOwnerLastName').value = lastName;
	$('DriverLastName').value = lastName;
}

function BookCar() {
	if ($('TermsAgreed').checked) {
		
		if (ValidateInputs()) {

			Element.hide('CreateBookingHolder');
			Element.hide('ctl00_MainContentWrapper_ErrorMessage');
			Element.show('CreatingBooking');
			var newsletter = $('WantsNewsletter');
			var nl ='false';
			if(newsletter){
			nl = newsletter.checked;
			}

			var xml = '<?xml version="1.0" encoding="ISO-8859-1"?>' +
				'<Info>' +
				'	<Customer>' +
				'		<Gender>' + $F('ctl00_MainContentWrapper_Gender') + '</Gender>' +
				'		<FirstName>' + $F('FirstName') + '</FirstName>' +
				'		<LastName>' + $F('LastName') + '</LastName>' +
				'		<Email>' + $F('Email') + '</Email>' +
				'		<Address>' + $F('Address') + '</Address>' +
				'		<ZipCode>' + $F('ZipCode') + '</ZipCode>' +
				'		<City>' + $F('City') + '</City>' +
				'		<Telephone>' + $F('Telephone') + '</Telephone>' +
				'		<WantsNewsletter>' + nl + '</WantsNewsletter>' +
				'	</Customer>' +
				'	<PaymentData>' +
				'		<PaymentTypeID>' + $F('ctl00_MainContentWrapper_CreditCardType') + '</PaymentTypeID>' +
				'		<FirstName>' + $F('CreditCardOwnerFirstName') + '</FirstName>' +
				'		<LastName>' + $F('CreditCardOwnerLastName') + '</LastName>' +
				'		<Number>' + $F('CreditCardNumber') + '</Number>' +
				'		<ExpiresMonth>' + $F('ctl00_MainContentWrapper_CreditCardExpireMonth') + '</ExpiresMonth>' +
				'		<ExpiresYear>' + $F('ctl00_MainContentWrapper_CreditCardExpireYear') + '</ExpiresYear>' +
				'		<CvCode>' + $F('CreditCardCvCode') + '</CvCode>' + 
				($('rbCreditCardPayment') && $('rbCreditCardPayment').checked ? '<CcPayment>now</CcPayment>' : '') +
				'	</PaymentData>' +
				'	<DriverInformation>' +
				'		<FirstName>' + $F('DriverFirstName') + '</FirstName>' +
				'		<LastName>' + $F('DriverLastName') + '</LastName>' +
				'	</DriverInformation>' +
				'</Info>';

 			RQ('Type=BookCarWithCvv&Value=' + xml, BookCar_Done);
		} else {
			Element.show('ctl00_MainContentWrapper_ErrorMessage');
		}
	} else {
		alert($('ctl00_MainContentWrapper_Error_Payment_YouHaveToAcceptTerms').innerHTML);
	}
}

function BookCar_Done(r) {
	var rs = r.responseText.split('|');
	if (rs[0] == '1') {
		document.location.href = 'Receipt.aspx';
	} else {
		alert('An error occurred while booking!\n - ' + rs[1]);
		Element.hide('CreatingBooking');
		Element.show('CreateBookingHolder');
	}
}

function ValidateInputs() {
	var isValid = true;

	if ($('ctl00_MainContentWrapper_IsExternalAgent').value == 'true') {
		// Check that first and last name for the driver are present
		$('DriverFirstName').parentNode.className = '';
		$('DriverLastName').parentNode.className = '';

		if ($F('DriverFirstName').length === 0) {
			$('DriverFirstName').parentNode.className = 'HasError';
			isValid = false;
		}
		if ($F('DriverLastName').length === 0) {
			$('DriverLastName').parentNode.className = 'HasError';
			isValid = false;
		}
	} else {
		var inputs = null;
		var isPartnerSite = false;
		
		if ($('ctl00_MasterBody') == null) {
			inputs = $('ctl00_PartnterBody').getElementsByTagName('input');
			isPartnerSite = true;
		} else {
			inputs = $('ctl00_MasterBody').getElementsByTagName('input');
		}

		for (var i = 0; i < inputs.length; i++) {
			if (inputs[i].id != 'TermsAgreed' && inputs[i].id != 'WantsNewsletter') {
				inputs[i].parentNode.className = '';
			}
		}

		// COMPARE EMAIL ADDRESSES:
		if ($F('Email') != $F('EmailConfirm')) {
			$('Email').parentNode.className = 'HasError';
			$('EmailConfirm').parentNode.className = 'HasError';
			$('Payment_Form_Error').innerHTML = $('ctl00_MainContentWrapper_Error_Payment_EmailsDontMatch').innerHTML;
			return false;
		}

		for (var i = 0; i < inputs.length; i++) {
			if (inputs[i].name != '__VIEWSTATE') {
				if (inputs[i].value.length == 0) {
					inputs[i].parentNode.className = 'HasError';
					isValid = false;
				}
			}
		}

		var validCvCode = $F('CreditCardCvCode').match(/^[0-9]{3,4}$/);
		if (!validCvCode) {
			$('CreditCardCvCode').parentNode.className = 'HasError';
			isValid = false;
		}

		if ($('rbCreditCardPayment')) {
			// Make sure one of the payment decisions are selected
			if (!($('rbCreditCardPayment').checked || $('rbCreditCardPaymentLater').checked)) {
				$('rbCreditCardPayment').parentNode.className = 'HasError';
				$('rbCreditCardPaymentLater').parentNode.className = 'HasError';
				isValid = false;
				alert($('ctl00_MainContentWrapper_lblErrorPaymentCreditCardPayment').innerHTML);
			}
		}
	}

	if (!isValid) {
		$('Payment_Form_Error').innerHTML = $('ctl00_MainContentWrapper_Error_Payment_NotFilled').innerHTML;
	}

	return isValid;
}

function LoadPaymentPage() {
	if ($('ctl00_MainContentWrapper_IsExternalAgent').value == 'true') {

		var HideAndDisableFieldsets = function(root) {
			Element.addClassName(root, 'hidden');

			// Set class "Disabled" on all fieldsets
			var children = root.getElementsByTagName('fieldset');
			for (var i = 0; i < children.length; i++) {
				Element.addClassName(children[i], 'Disabled');
			}
		};

		HideAndDisableFieldsets($('CustomerInfo'));
		HideAndDisableFieldsets($('PaymentFormHolderBox'));

		$('ctl00_MainContentWrapper_Gender').disabled = true;
		$('FirstName').disabled = true;
		$('LastName').disabled = true;
		$('Email').disabled = true;
		$('EmailConfirm').disabled = true;
		$('Address').disabled = true;
		$('ZipCode').disabled = true;
		$('City').disabled = true;
		$('Telephone').disabled = true;
		$('ctl00_MainContentWrapper_CreditCardType').disabled = true;
		$('CreditCardOwnerFirstName').disabled = true;
		$('CreditCardOwnerLastName').disabled = true;
		$('CreditCardNumber').disabled = true;
		$('ctl00_MainContentWrapper_CreditCardExpireMonth').disabled = true;
		$('ctl00_MainContentWrapper_CreditCardExpireYear').disabled = true;
	}
}



/*	VARIOUS FUNCTIONS:
	-------------------------------------------------------------------------------------------- */
function WO(url, name, width, height, additional) {
    getBrowserInfo();

    // Support tabbed browsing of popups
    // http://msdn.microsoft.com/en-us/library/ms537636.aspx#DOM_Changes
    // New windows open as pop-up windows if any of the following features are disabled: resizable, menubar, location, toolbar, status, and scrollbars.
    var win;
    if (name == '_blank') {        
        win = window.open(url);
    }
    else {
        if (additional.length > 0) {
            additional = ', ' + additional;
        }
    
        win = window.open(url, name, 'width=' + width + ', height=' + height + additional);
	// Focus is not allowed anymore: http://msdn.microsoft.com/en-us/library/ms536425(VS.85).aspx
	win.focus();
    }
}

function LoadFrontPage() {
	// CREATE CALENDAR OBJECT:
	tnCal = new TnCalendar();

	// REQUESTING DATA LAYER:
	if ($('SearchOverlay') != null) {
		$('SearchOverlay').style.height = Element.getHeight('MainSearch') + 'px';
		getBrowserInfo();

		// LOAD READABLE DATES FOR PICKUP AND DROPOFF:
		if ($F('ctl00_MainContentWrapper_PickupDate') != 'yyyy-mm-dd') {
			ShowReadbleDate(tnCalGetDateFromString($F('ctl00_MainContentWrapper_PickupDate')), 'PickupDateReadable', 'ctl00_MainContentWrapper_PickupTime');
		}
		if ($F('ctl00_MainContentWrapper_ReturnDate') != 'yyyy-mm-dd') {
			ShowReadbleDate(tnCalGetDateFromString($F('ctl00_MainContentWrapper_ReturnDate')), 'ReturnDateReadable', 'ctl00_MainContentWrapper_ReturnTime');
		}
		
		// USA PRICE CATEGORY:
		if ($F('ctl00_MainContentWrapper_SelectCountry') == 'US') {
			ToggleUsaRentalTypes('US');
		}
	}
}

function LoadCarListPage() {
	// CREATE CALENDAR OBJECT:
	tnCal = new TnCalendar();
	getBrowserInfo();

	if ($F('ctl00_MainContentWrapper_PickupDate') != 'yyyy-mm-dd') {
		ShowReadbleDate(tnCalGetDateFromString($F('ctl00_MainContentWrapper_PickupDate')), 'PickupDateReadable', 'ctl00_MainContentWrapper_PickupTime');
	}
	if ($F('ctl00_MainContentWrapper_ReturnDate') != 'yyyy-mm-dd') {
		ShowReadbleDate(tnCalGetDateFromString($F('ctl00_MainContentWrapper_ReturnDate')), 'ReturnDateReadable', 'ctl00_MainContentWrapper_ReturnTime');
	}
}

function LoadDestinationPage() {
	// CREATE CALENDAR OBJECT:
	tnCal = new TnCalendar();
	getBrowserInfo();

	// REQUESTING DATA LAYER:
	$('SearchOverlay').style.height = Element.getHeight('MainSearch') + 'px';	
}

function ShowOverLayAndBox(boxID) {
	FixIE('hidden');
	Element.show('SelectCarBoxOverlay');
	Element.show(boxID);
}

function ResetOverLay(boxID) {
	Element.hide('SelectCarBoxOverlay');
	Element.hide(boxID);
	FixIE('visible');
}

function FixIE(visible) {
	if (_browserName == 'Internet Explorer') {
		var height;
		var overflow;
		var thisYPos;

		// SET SCROLL POSITION:
		GetScroll();

		// HIDE ALL SELECTS:
		var selects = document.getElementsByTagName('select');
		for (var i = 0; i < selects.length; i++) {
			$(selects[i]).style.visibility = visible;
		}

		// SET VALUES:
		if (visible != 'visible') {
			height = '100%';
			overflow = 'hidden';
			thisYPos = 0;
		} else {
			height = 'auto';
			overflow = 'auto';
			thisYPos = _yPos;
		}

		// BODY AND HTML HEIGHT:
		bod = document.getElementsByTagName('body')[0];
		bod.style.height = height;
		bod.style.overflow = overflow;
  
		htm = document.getElementsByTagName('html')[0];
		htm.style.height = height;
		htm.style.overflow = overflow; 

		// FIX SCROLL:
		SetScroll(0, thisYPos);
	}
}

function SetClassName(el, className) {
	Element.addClassName($(el), className);
}

function RemoveClassName(el, className) {
	Element.removeClassName($(el), className);
}

function ShowUserLoading(msg) {
	if (msg.length == 0) {
		msg = 'Loading ...';
	}
	$('UserMessage').style.top = getOffsetTop() + 'px';
	$('UserMessage').innerHTML = msg;
	Element.removeClassName($('UserMessage'), 'hidden');
}

function HideUserLoading() {
	Element.addClassName($('UserMessage'), 'hidden');
}

function getCookie(cookieName) {
	oCookie = document.cookie;
	var index = oCookie.indexOf(cookieName + "=");

	if (index == -1) {
		return null;
	}

	index = oCookie.indexOf("=", index) + 1;
	var endstr = oCookie.indexOf(";", index);

	if (endstr == -1) {
		endstr = oCookie.length;
	}

	return unescape(oCookie.substring(index, endstr));
}

function getBrowserInfo() {
	GetScroll();
	var userAgentString = navigator.userAgent.toLowerCase()

	_browserVersion = 'Unknown version';

	if (checkIt(userAgentString, 'konqueror')) {
		_browserName = 'Konqueror';
	} else if (checkIt(userAgentString, 'safari')) {
		_browserName = 'Safari';
	} else if (checkIt(userAgentString, 'omniweb')) {
		_browserName = 'OmniWeb';
	} else if (checkIt(userAgentString, 'opera')) {
		_browserName = 'Opera';
	} else if (checkIt(userAgentString, 'webtv')) {
		_browserName = 'WebTV';
	} else if (checkIt(userAgentString, 'icab')) {
		_browserName = 'iCab';
	} else if (checkIt(userAgentString, 'msie')) {
	    _browserName = 'Internet Explorer';
	    if (document.documentElement && typeof document.documentElement.style.maxHeight != "undefined") {
	    _browserVersion = '7';
	    }
	} else if (!checkIt(userAgentString, 'compatible')) {
		_browserName = 'Netscape Navigator';
	}
}

function checkIt(detect, string) {
	place = detect.indexOf(string) + 1;
	thestring = string;
	return place;
}

function GetScroll() {
	if (self.pageYOffset) {
		_yPos = self.pageYOffset;
	} else if (document.documentElement && document.documentElement.scrollTop){
		_yPos = document.documentElement.scrollTop; 
	} else if (document.body) {
		_yPos = document.body.scrollTop;
	}
}

function SetScroll(x, y) {
	window.scrollTo(x, y); 
}

function ToggleFaqItem(itemID) {
	var item = $('Question_' + itemID);
	if (item.style.display == 'block') {
		Element.hide(item);
	} else {
		Element.show(item);
	}
}

function LimitChars(type, input) {
	var success = true;
	var value = input.value;
	var limiter = '';
	var checked = '';

	if (type == 'numbers') {
		limiter = '0123456789:';
	}

	for (var i = 0; i < value.length; i++) {
		var single = value.charAt(i);
		if (limiter.indexOf(single) > -1) {
			checked += single;
		}
	}

	input.value = checked;
}

function getOffsetTop() {
	if (window.innerHeight) {
		return parseInt(window.pageYOffset) + 3;
	} else if (document.documentElement && document.documentElement.scrollTop) {
		return parseInt(document.documentElement.scrollTop) + 3;
	} else if (document.body) {
		return parseInt(document.body.scrollTop) + 3;
	}
}

function $HI(el) {
	return $(el).innerHTML;
}

function GoToChange() {
	document.location = appFolder + 'ChangeBooking/?bid=' + $F('BookingNumber') + '&e=' + $F('EmailAddress');
}

function RegisterEmailAddress(lnk, color) {
	var emailAddress = $F('NewsletterEmailAddress');

	if (emailAddress.length >= 7) {
		var hol = lnk.parentNode;
		removeChildrenFromNode(hol);

		var img = document.createElement('img');
		img.src = appFolder + 'Images/loading_indicator_' + color + '.gif';
		
		Element.addClassName($(hol), 'NoBackground');
		hol.appendChild(img);

		RQ('Type=RegisterEmailAddressWithChecksum&Value=' + emailAddress, RegisterEmailAddress_Done);
	} 
}

function RegisterEmailAddress_Done(transport) {
	var prefix = '';
	if ($('ctl00_MainContentWrapper_ctl00_txtNewsletterIntroText') != null) {
		prefix = 'ctl00_MainContentWrapper_ctl00_';
	} else {
		prefix = 'ctl00_MainContentWrapper_';
	}

	Element.hide('EmailRegInputHolder');
	Element.hide(prefix + 'txtNewsletterIntroText');
	Element.show(prefix + 'txtNewsletterRegistartionDone');

	var result, url;
	var response = transport.responseText.split('|');
	result = response[0];
	url = response[1];

	if (result === 'true' && url) {
		var tracking = document.createElement('img');
		tracking.id = 'TradeDoublerTracker';
		tracking.width = 1;
		tracking.height = 1;
		tracking.src = url;

		var registrationDone = $(prefix + 'txtNewsletterRegistartionDone');
		var container = registrationDone.parentNode;
		container.insertBefore(tracking, registrationDone.nextSibling);
	}
}

function UnRegisterEmailAddress() {
	var emailAddress = $F('ctl00_MainContentWrapper_ctl00_UnregisterEmailAddress');
	if (emailAddress.length >= 7) {
		$('UnregisteringEmailAddress').style.visibility = 'visible';
		RQ('Type=UnRegisterEmailAddress&Value=' + emailAddress, UnRegisterEmailAddress_Done);
	} 
}

function UnRegisterEmailAddress_Done(r) {
	Element.show('ctl00_MainContentWrapper_ctl00_UnregisterEmail_Success');
	Element.hide('ctl00_MainContentWrapper_ctl00_UnregisterEmail_Text', 'UnregisterAllHolder');
	$('ctl00_MainContentWrapper_ctl00_UnregisterEmailAddress').style.visibility = 'hidden';
}

function addLoadEvent(func) {
    var oldOnload = window.onload;
    if (typeof window.onload !== 'function') {
        window.onload = func;
    } else {
        window.onload = function() {
            oldOnload();
            func();
        }
    }
} 



/*	AGENT MANAGEMENT FUNCTIONS:
	-------------------------------------------------------------------------------------------- */
function PerformAgentLogin() {
	$('Loading').style.visibility = 'visible';
	RQ('Type=AgentLogin&UserName=' + $F('AgentID') + '&Password=' + $F('AgentPassword'), PerformAgentLogin_Done);
	$('ctl00_MainContentWrapper_ctl00_Agents_Text_LoginError').style.visibility = 'hidden';
	$('ctl00_MainContentWrapper_ctl00_Agents_LoginButton').disabled = true;
	$('ctl00_MainContentWrapper_ctl00_Agents_LoginButton').blur();
}

function PerformAgentLogin_Done(r) {
	var response = r.responseText.split('|');
	if (response[0] == 'true') {
		top.location.href = appFolder + 'Default.aspx';
	} else {
		$('ctl00_MainContentWrapper_ctl00_Agents_LoginButton').disabled = false;
		$('ctl00_MainContentWrapper_ctl00_Agents_Text_LoginError').style.display = 'block';
		$('ctl00_MainContentWrapper_ctl00_Agents_Text_LoginError').style.visibility = 'visible';
	}
	
	$('Loading').style.visibility = 'hidden';
}

function PerformAgentLogout() {
	RQ('Type=AgentLogout', PerformAgentLogout_Done);
}

function PerformAgentLogout_Done(r) {
	top.window.location = appFolder + 'Default.aspx';
}

function ShowAgentMenu() {
	if (Element.hasClassName($('ctl00_MainContentWrapper_AgentControls_AgentOptions'), 'hidden')) {
		$('ShowAgentOptions').src = appFolder + 'images/agent_arrow_up.gif';
		Element.removeClassName($('ctl00_MainContentWrapper_AgentControls_AgentOptions'), 'hidden');
	} else {
		$('ShowAgentOptions').src = appFolder + 'images/agent_arrow_down.gif';
		Element.addClassName($('ctl00_MainContentWrapper_AgentControls_AgentOptions'), 'hidden');
	}
}

function CancelBooking(lnk, bookingNumber) {
	var reason = prompt($HI('ctl00_MainContentWrapper_AgentSS_Msg_WhyDoYouWantToCancel'),"");	
	if (reason!=undefined) {
		_obj = lnk;
		ShowUserLoading($HI('ctl00_MainContentWrapper_AgentSS_Msg_CancelingNow'));
		RQ('Type=CancelBooking&Value=' + bookingNumber + '&Reason=' + reason, CancelBooking_Done);
	}
}

function CancelBooking_Done(r) {
	var results = r.responseText.split('|');
	HideUserLoading();
	
	if (results[0] == 'true') {
		Element.addClassName($(_obj.parentNode.parentNode), 'deleted');
		alert($HI('ctl00_MainContentWrapper_AgentSS_Msg_BookingHasBeenCanceled'));
	} else {
		alert($HI('ctl00_MainContentWrapper_AgentSS_Msg_BookingCancelFailed') + "\n Errormessage:" + results[1]);
	}
}
function CancelInfo(lnk, info) {
	alert($HI('ctl00_MainContentWrapper_AgentSS_CancelReason') + ': \n' + info);		
}

function RequestDocument(lnk, docType, bookingNumber) {
	_obj = lnk;
	var email = prompt($HI('ctl00_MainContentWrapper_AgentSS_Msg_WhatEmailToSendTo'), '');
	if (email) {
		ShowUserLoading($HI('ctl00_MainContentWrapper_AgentSS_Msg_SendingDocuments'));
		RQ('Type=RequestDocument&Value=' + bookingNumber + '&DocType=' + docType + '&Email=' + email, RequestDocument_Done);
	}
}

function RequestDocument_Done(r) {
	var results = r.responseText.split('|');
	HideUserLoading();
	
	if (results[0] == 'true') {
		alert($HI('ctl00_MainContentWrapper_AgentSS_Msg_DocumentSent'));
	} else {
		alert($HI('ctl00_MainContentWrapper_AgentSS_Msg_DocumentSendingFailed'));
	}
}

function removeChildrenFromNode(node) {
	if (node != null) {
		while (node.hasChildNodes()) {
			node.removeChild(node.firstChild);
		}
	}
}



/*	CHANGE BOOKINGS:
	-------------------------------------------------------------------------------------------- */
function ChangeToSection(lnk, sectionID) {
	HideAllSections();
	
	Element.addClassName($(lnk.parentNode), 'Selected');
	Element.removeClassName($(sectionID), 'hidden');
}

function HideAllSections() {
	var lis = null;

	getBrowserInfo();

	if (_browserName == 'Internet Explorer') {
		lis = $('ChangeTabs').childNodes[0].childNodes;
	} else {
		lis = $('ChangeTabs').childNodes[1].childNodes;
	}

	var divs = document.getElementsByClassName('d');

	for (var i = 0; i < lis.length; i++) {
		Try.these(
			function() {Element.removeClassName($(lis[i]), 'Selected');}
		);
	}
	
	for (var i = 0; i < divs.length; i++) {
		Element.addClassName($(divs[i]), 'hidden');
	}
}

function ChangeDisruptProtection(btn) {
	PrepareAction(btn, 'LoadingDisruptProtection', 'liDisruptProtection', 'ChangedText_DisruptProtection');
	
	$(_obj).disabled = true;
	$(_obj).blur();
	Element.removeClassName($('LoadingDisruptProtection'), 'hidden');
	
	var pars = 'Type=ChangeBookings_DisruptProtection&BookingID=' + $('BookingNumber').innerHTML + '&DisruptProtection=' + $('cbDisruptProtection').checked + '&Email=' + $F('ctl00_MainContentWrapper_EmailAddress');
	RQ(pars, ActionDone);
}

function ChangeDriverName(btn) {
	PrepareAction(btn, 'LoadingDriverName', 'liDriverInfo', 'ChangedText_DriverInfo');
	var pars = 'Type=ChangeBookings_DriverName&BookingID=' + $('BookingNumber').innerHTML + '&FirstName=' + $F('DriverFirstName') + '&LastName=' + $F('DriverLastName') + '&Email=' + $F('ctl00_MainContentWrapper_EmailAddress');
	RQ(pars, ActionDone);
}

function ChangeFlightInfo(btn) {
	PrepareAction(btn, 'LoadingFlightInfo', 'liFlightInformation', 'ChangedText_FlightInfo');
	var pars = 'Type=ChangeBookings_FlightInfo&BookingID=' + $('BookingNumber').innerHTML + '&FlightNumber=' + $F('FligntNumber') + '&ArrivalTime=' + $F('FlightArrivalTime') + '&Email=' + $F('ctl00_MainContentWrapper_EmailAddress');
	RQ(pars, ActionDone);
}

function ChangeDiscount(btn) {
	PrepareAction(btn, 'LoadingDiscount', 'liDiscount', 'ChangedText_Discount');
	var pars = 'Type=ChangeBookings_Discount&BookingID=' + $('BookingNumber').innerHTML + '&Discount=' + $F('DiscountValue') + '&Email=' + $F('ctl00_MainContentWrapper_EmailAddress');
	RQ(pars, ActionDone);
}

function DeleteExtra(lnk, productExtraID) {
	_obj = lnk;
	_obj.childNodes[0].src = appFolder + 'Images/loading_lightgrey_small.gif';
	
	var pars = 'Type=ChangeBookings_DeleteExtraItem&BookingID=' + $('BookingNumber').innerHTML + '&ProductExtraID=' + productExtraID + '&Email=' + $F('ctl00_MainContentWrapper_EmailAddress');
	RQ(pars, DeleteExtra_Done);
}

function DeleteExtra_Done(r) {
	if (r.responseText == 'true') {
		var dd = _obj.parentNode;
		var dt = dd.previousSibling.previousSibling;
		
		_hasMadeChanges = true;
		ShowFinalize();
		
		Element.addClassName($(dd), 'hidden');
		Element.addClassName($(dt), 'hidden');
		
		Element.addClassName($('liExtras'), 'Changed');
	} else {
		alert('ERROR!');
	}
}

function LoadAvailableExtras() {
	var pars = 'Type=ChangeBookings_LoadAvailableExtras&BookingID=' + $('BookingNumber').innerHTML + '&Email=' + $F('ctl00_MainContentWrapper_EmailAddress');
	RQ(pars, LoadAvailableExtras_Done);
}

function LoadAvailableExtras_Done(r) {
	var h = $('CurrentAvailableExtras');
	var items = r.responseText.split('|');

	h.innerHTML = '';
	
	for (var i = 0; i < (items.length - 1); i++) {
		var item = items[i].split(';');
		var dt = document.createElement('dt');
		var dd = document.createElement('dd');	

		dt.innerHTML = '<input class="AddExtraItem" type="checkbox" value="' + item[0] + '" /> &nbsp;' + item[1];
		dd.innerHTML = item[2] + ' /' + item[3];

		h.appendChild(dt);
		h.appendChild(dd);
	}
}

function AddExtrasToBooking(btn) {
	PrepareAction(btn, 'LoadingAddExtras', 'liExtras', 'ChangedText_AddExtras');
	
	var cbs = document.getElementsByClassName('AddExtraItem');
	var productExtraIDs = '';
	
	for (var i = 0; i < cbs.length; i++) {
		if ($(cbs[i]).checked) {
			productExtraIDs += cbs[i].value + ';';
		}
	}
	
	if (productExtraIDs.length > 0) {
		productExtraIDs = productExtraIDs.substring(0, productExtraIDs.length - 1);
	}
	
	var pars = 'Type=ChangeBookings_AddExtraItem&BookingID=' + $('BookingNumber').innerHTML + '&ProductExtraID=' + productExtraIDs + '&Email=' + $F('ctl00_MainContentWrapper_EmailAddress');
	RQ(pars, ActionDone);
}

function SearchForAvailableCars(btn) {
	PrepareAction(btn, 'LoadingCarList', 'liCarOrDate', '');
	
	var pars = 'Type=ChangeBookings_LoadAvailableCars&BookingID=' + $('BookingNumber').innerHTML + '&From=' + $F('DateFrom') + '&To=' + $F('DateTo') + '&Email=' + $F('ctl00_MainContentWrapper_EmailAddress');
	RQ(pars, SearchForAvailableCars_Done);
}

function SearchForAvailableCars_Done(r) {
	if (r.responseText != 'nocars') {
		Element.addClassName($(_objName), 'hidden');
		$(_obj).disabled = false;
		$('ctl00_MainContentWrapper_CarListHolder').innerHTML = r.responseText;
	} else {
		alert('no cars !');
	}
}

function SelectThisCar(btn, productCode, grossPrice, productCost, oneWay, from, to) {
	var divs = document.getElementsByClassName('Car');
	_obj = btn;
	
	// REMOVE ALL SELECTED CLASSES:
	for (var i = 0; i < divs.length; i++) {
		Element.removeClassName($(divs[i]), 'Selected');
	}
	
	// SET CURRENT AS SELECTED:
	Element.addClassName($(_obj.parentNode.parentNode.parentNode), 'Selected');
	Element.removeClassName($(_obj.parentNode.previousSibling.previousSibling.childNodes[0]), 'hidden');
	
	// CHANGE CAR:
	var pars = 'Type=ChangeBookings_ChangeCarAndDate&BookingID=' + $('BookingNumber').innerHTML + '&p=' + grossPrice + '&pc=' + productCode + '&c=' + productCost + '&f=' + $F('DateFrom') + '&t=' + $F('DateTo') + '&Email=' + $F('ctl00_MainContentWrapper_EmailAddress');
	RQ(pars, SelectThisCar_Done);
}

function SelectThisCar_Done(r) {
	if (r.responseText == 'true') {
		_hasMadeChanges = true;
		ShowFinalize();
		Element.addClassName($('liCarOrDate'), 'Changed');
		Element.addClassName($(_obj.parentNode.previousSibling.previousSibling.childNodes[0]), 'hidden');

		var divs = document.getElementsByClassName('Car');
		for (var i = 0; i < divs.length; i++) {
			if (!Element.hasClassName($(divs[i]), 'Selected')) {
				Element.remove($(divs[i]));
			}
		}
		
		Element.removeClassName($('ChangedText_CarOrDate'), 'hidden');
	} else {
		alert('ERROR!');
	}
}

function LoadPickupStations(btn) {
	_pickupType = 'pickup';

	Element.removeClassName($('LoadingReturnStations'), 'hidden');
	$('ReturnStationListHolder').innerHTML = '';

	PrepareAction(btn, 'LoadingPickupList', 'liPickupStation', '');

	var pars = 'Type=ChangeBookings_LoadStations&BookingID=' + $('BookingNumber').innerHTML + '&DestinationCode=' + $F('PickupOfficeList') + '&ListType=pickup&Email=' + $F('ctl00_MainContentWrapper_EmailAddress');
	RQ(pars, LoadPickupStations_Done);
}

function LoadPickupStations_Done(r) {
	Element.addClassName($('LoadingPickupList'), 'hidden');
	$('Change_Pickup_Search').disabled = false;

	$('StationListHolder').innerHTML = r.responseText;
}

function LoadReturnStations(btn) {
	_pickupType = 'return';

	Element.removeClassName($('LoadingPickupStations'), 'hidden');
	$('StationListHolder').innerHTML = '';

	PrepareAction(btn, 'LoadingReturnList', 'liReturnStation', '');

	var pars = 'Type=ChangeBookings_LoadStations&BookingID=' + $('BookingNumber').innerHTML + '&DestinationCode=' + $F('ReturnOfficeList') + '&ListType=return&Email=' + $F('ctl00_MainContentWrapper_EmailAddress');
	RQ(pars, LoadReturnStations_Done);
}

function LoadReturnStations_Done(r) {
	Element.addClassName($('LoadingReturnList'), 'hidden');
	$('Change_Return_Search').disabled = false;
	$('ReturnStationListHolder').innerHTML = r.responseText;
}

function SelectThisStation(btn, stationCode, stationName) {
	var selPickup = $('TypeOfPickUp_' + stationCode);
	_objText = stationCode;

	if (selPickup.selectedIndex > 0) {
		var holder = btn.parentNode.parentNode;
		removeChildrenFromNode(btn.parentNode.parentNode);
		var img = document.createElement('img');
		img.src = appFolder + 'Images/loading_indicator_white.gif';
		holder.appendChild(img);

		_obj = img;

		if (_pickupType == 'pickup') {
			_pickupStationName = stationName;
		} else if (_pickupType == 'return') {
			_returnStationName = stationName;
		}

		SelectStation(_pickupType, stationCode, $F('TypeOfPickUp_' + stationCode));
	} else {
		alert($('ctl00_MainContentWrapper_Error_StationList_SelectPickupType').innerHTML);
	}
}

function SelectThisReturnStation(btn, stationCode, stationName) {
	_objText = stationCode;
	var holder = btn.parentNode.parentNode;
	removeChildrenFromNode(btn.parentNode.parentNode);
	var img = document.createElement('img');
	img.src = appFolder + 'Images/loading_indicator_white.gif';
	holder.appendChild(img);

	_obj = img;

	_returnStationName = stationName;

	SelectStation(_pickupType, stationCode, 0);
}

function SelectStation(type, stationCode, pickupType) {
	var cityAlphaCode = '';
	var areaCode = '';
	var destinationCode = '';
	var officeValues;
	
	if (type == 'pickup') {
		cityAlphaCode = $F('PickupDestinationList');
		officeValues = $F('PickupOfficeList').split('#');
		destinationCode = officeValues[0];
		areaCode = officeValues[1];
		_objLi = 'liPickupStation';
	} else if (type == 'return') {
		cityAlphaCode = $F('ReturnDestinationList');
		officeValues = $F('ReturnOfficeList').split('#');
		destinationCode = officeValues[0];
		areaCode = officeValues[1];
		_objLi = 'liReturnStation';
	}

	var pars = 'Type=ChangeBookings_SelectStation&BookingID=' + $('BookingNumber').innerHTML + '&StationCode=' + stationCode + '&PickupType=' + pickupType + '&StationType=' + type + '&DestinationCode=' + destinationCode + '&CityAlphaCode=' + cityAlphaCode + '&AreaCode=' + areaCode + '&Email=' + $F('ctl00_MainContentWrapper_EmailAddress');
	RQ(pars, SelectStation_Done);
}

function SelectStation_Done(r) {
	if (r.responseText == 'true') {
		if (_pickupType == 'pickup') {
			var divs = document.getElementsByClassName('Station');
			
			for (var i = 0; i < divs.length; i++) {
				Element.addClassName($(divs[i]), 'hidden');
			}
			
			Element.removeClassName($('StationID_' + _objText), 'hidden');
			Element.removeClassName($('ChangedText_PickupStation'), 'hidden');
			Element.addClassName($(_obj), 'hidden');
		} else if (_pickupType == 'return') {
			var divs = document.getElementsByClassName('ReturnStation');
			for (var i = 0; i < divs.length; i++) {
				Element.addClassName($(divs[i]), 'hidden');
			}
			
			Element.removeClassName($('StationID_' + _objText), 'hidden');
			Element.removeClassName($('ChangedText_ReturnStation'), 'hidden');
			Element.addClassName($(_obj), 'hidden');
		}
		_hasMadeChanges = true;
		
		ShowFinalize();
		Element.addClassName($(_objLi), 'Changed');
	} else {
		alert('ERROR!');
	}
}

function PrepareAction(btn, loadingImage, li, p) {
	_obj = btn;
	_objName = loadingImage;
	_objLi = li;
	if (p.length > 0) {
		_objExplainText = p;
	}

	$(_obj).disabled = true;
	$(_obj).blur();

	Element.removeClassName($(_objName), 'hidden');
}

function ActionDone(r) {
	Element.addClassName($(_objName), 'hidden');

	if (r.responseText == 'true') {
		_hasMadeChanges = true;
		ShowFinalize();
		Element.addClassName($(_objLi), 'Changed');
		Element.removeClassName($(_objExplainText), 'hidden');
	} else {
		alert('ERROR!');
	}
}

function FinalizeChanges(btn) {
	_obj = btn;

	$(_obj).disabled = true;
	$(_obj).blur();
	Element.removeClassName($('LoadingFinalize'), 'hidden');

	var pars = 'Type=ChangeBookings_Finalize&BookingID=' + $('BookingNumber').innerHTML + '&Email=' + $F('ctl00_MainContentWrapper_EmailAddress');
	RQ(pars, FinalizeChanges_Done);
}

function FinalizeChanges_Done(r) {
	Element.addClassName($('LoadingFinalize'), 'hidden');

	if (r.responseText == 'true') {
		document.location.href = 'BookingChanged.aspx';
	} else {
		alert('error!');
	}
}

function ShowFinalize() {
	if (_hasMadeChanges) {
		Element.addClassName($('Finalize'), 'Active');
		LoadChangedBookings();
		$('ctl00_MainContentWrapper_FinalizeButton').disabled = false;
	}
}

function LoadChangedBookings() {
	var pars = 'Type=ChangeBookings_GetChangedDetails&BookingID=' + $('BookingNumber').innerHTML + '&Email=' + $F('ctl00_MainContentWrapper_EmailAddress');
	RQ(pars, LoadChangedBookings_Done);
}

function LoadChangedBookings_Done(r) {
	if (r.responseText != 'nochange') {
		var values = r.responseText.split('|');
		
		$('ChangedCarCategory').innerHTML = values[0];
		$('ChangedCarExample').innerHTML = values[1];
		$('ChangedSupplierName').innerHTML = values[6];
		$('ChangedDriverName').innerHTML = values[4] + ' ' + values[5];
		$('ChangedPickup').innerHTML = values[2];
		$('ChangedReturn').innerHTML = values[3];
		$('ChangedBasePrice').innerHTML = values[7];
		$('ChangedInsurancePrice').innerHTML = values[8];
		$('ChangedTotalPrice').innerHTML = values[10];
		
		if (_pickupStationName.length > 0) {
			$('ChangedPickupStation').innerHTML = _pickupStationName;
		}

		if (_returnStationName.length > 0) {
			$('ChangedReturnStation').innerHTML = _returnStationName;
		}
	}
}

function adaction_register_order_simple(reference_id, product, currency, value, state, sensor) {
	var sensorcampaign = 138;
	var domain = 'cl369.v4.adaction.se';
	var protocol = document.location.protocol == 'https:' ? 'https:' : 'http:';
	var base_url = protocol + '//' + domain + '/sensororder.php?';
	var params = '';
		params += sensorcampaign+',';
		params += sensor+',';
		params += reference_id+',';
		params += escape(product)+',';
		params += currency+',';
		params += value+',';
		params += (Math.random()*100000000000000000)+',';
		params += state+',';
		params += ',';
	
	var url = base_url + params;
	var img = new Image();
	if (typeof(adaction_order_images) == 'undefined') {
		adaction_order_images = new Array();
	}
	var i = adaction_order_images.length;
	adaction_order_images[i] = img;
	img.onerror = function() {
		this.src = this.src + '&z=' + Math.random();
		this.onerror = null;
	}
	img.src = url;
}

function ToggleOpeningHours() {
	if ($('TopHeader_PopupInfoDiv').style.display.length == 0 || $('TopHeader_PopupInfoDiv').style.display == 'none') {
		$('TopHeader_PopupInfoDiv').style.display = 'block';
		$('SelectorHolder').style.display = 'none';
	} else {
		$('TopHeader_PopupInfoDiv').style.display = 'none';
		$('SelectorHolder').style.display = 'block';
	}
}

function pulldown_menu() {
	var selValue = $F('selector');
	if (selValue != '#') {
		top.location.href = selValue;
	}
}
//TellFriends page
function collectionToArray(col){
    a = new Array();
    for (i = 0; i < col.length; i++)
	    a[a.length] = col[i];
		return a;
}
function showCompetition(){
	var testbool=$('ctl00_MainContentWrapper_Tell_competition_bool');
	if(testbool.innerHTML=='1'){ //innerHTML works for IE, textContent does not
		Element.removeClassName($('ctl00_MainContentWrapper_Tell_competition'),'hidden');//.setAttribute("class", "");
		showAllAddressFields();
	}
}
function showAllAddressFields(){
    Element.removeClassName($('ctl00_MainContentWrapper_Tell_MoreAddresses'),'hidden');
    Element.addClassName($('Tell_MoreAddressesLink'),'hidden');
}
function runEmails(){
	var firstname = $F('ctl00_MainContentWrapper_Tell_firstname');
	var lastname = $F('ctl00_MainContentWrapper_Tell_lastname');
	var email = $('ctl00_MainContentWrapper_Tell_email');
	var friend1 = $('ctl00_MainContentWrapper_Tell_friend1');
	var friend2 = $('ctl00_MainContentWrapper_Tell_friend2');
	var friend3 = $('ctl00_MainContentWrapper_Tell_friend3');
	var friend4 = $('ctl00_MainContentWrapper_Tell_friend4');
	var friend5 = $('ctl00_MainContentWrapper_Tell_friend5');
	var message = $F('ctl00_MainContentWrapper_Tell_answer');
	var friends = new Array();
	friends = [friend1, friend2, friend3, friend4, friend5];
	sendTellFriends(firstname, lastname, email, friends, message);

}
function sendTellFriends(firstname, lastname, email, friends, message) {
		var faillist=new Array();
		var goodlist=new Array();
		if(email.value=='' || !regexpEmail(email.value)){
			faillist.push(email);
		}
		else{
			goodlist.push(email);
		}
		if (friends!=null){
			for(var friend=0; friend<friends.length; friend++){
				if (friends[friend].value!='' && !regexpEmail(friends[friend].value)){
					faillist.push(friends[friend]);
				}
				else if(friends[friend].value!=''){
					goodlist.push(friends[friend]);
				}
			}
		}
		if(faillist.length==0) {
			var emailstring ='&emails=';
			for(var i=0; i<goodlist.length; i++){
				emailstring = emailstring + goodlist[i].value + ":";
				Element.hide(goodlist[i].id+'_span');
			}
			emailstring = emailstring.replace(/:$/,'');
			var pars = 'Type=SaveEmailAddresses&firstname=' + firstname + '&lastname=' + lastname + '&message=' + message + emailstring;
			RQ(pars, tellMore);
		}else {
		    for (i=0; i<faillist.length; i++){
				Element.show(faillist[i].id+'_span');
			}
			for (i=0; i<goodlist.length; i++){
				Element.hide(goodlist[i].id+'_span');
			}
		}
	}
function tellMore(transport){
	Element.hide($('IntroText'));
	Element.hide($('FirstName'));
	Element.hide($('LastName'));
	Element.hide($('Email'));
	Element.hide($('CompetitionPart'));
	if(transport.responseText=='true'){
		Element.show($('ThankyouText'));
		$('ctl00_MainContentWrapper_Tell_friend1').value='';
		$('ctl00_MainContentWrapper_Tell_friend2').value='';
		$('ctl00_MainContentWrapper_Tell_friend3').value='';
		$('ctl00_MainContentWrapper_Tell_friend4').value='';
		$('ctl00_MainContentWrapper_Tell_friend5').value='';
	}
	else{
		Element.show($('WSError'))
	}
	
}
function tippedFriend(){
	var email = $('ctl00_MainContentWrapper_Su_email');
	if(email.value=='' || !regexpEmail(email.value)){
		Element.show(email.id+'_span');
	}
	else{
		var id = getURLParam("id");
		var pars = 'Type=SaveEmailAddresses&email=' + email.value + '&id=' + id;
		RQ(pars, tippedMore);
	}
}
function tippedMore(transport){
	if(transport.responseText=='true'){
		Element.hide($('ctl00_MainContentWrapper_Email'));
		Element.show($('Thankyou'));
	}
	else{
		Element.hide($('IntroText'));
		Element.show($('WSError'));
	}
}
function getURLParam(strParamName){
	var strReturn = "";
	var strHref = window.location.href;
	if ( strHref.indexOf("?") > -1 ){
		var strQueryString = strHref.substr(strHref.indexOf("?")).toLowerCase();
		var aQueryString = strQueryString.split("&");
		for ( var iParam = 0; iParam < aQueryString.length; iParam++ ){
		if (aQueryString[iParam].indexOf(strParamName.toLowerCase() + "=") > -1 ){
			var aParam = aQueryString[iParam].split("=");
			strReturn = aParam[1];
			break;
			}
		}
	}
	return unescape(strReturn);
} 
function regexpEmail(email){
    var emailRegexp = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	return emailRegexp.test(email);
}
function limitText(limitField, limitCount, limitNum) {
	if (limitField.value.length > limitNum) {
		limitField.value = limitField.value.substring(0, limitNum);
	} else {
		limitCount.value = limitNum - limitField.value.length;
	}
}

/**
* Replace a node with a div node given the same innerHTML and id tag.
* Eg for replace link tags with text tags
* @param parentNodeName Name of the parent node where the given node is located in the DOM
* @param oldChildNodeName Name of the node which should be replaced by a div tag
* @version 21jan2009
* @author DN
*/
function replaceNodeNameAsDiv0(parentNodeName, oldChildNodeName) {
    var parentNode = $(parentNodeName);
    var oldChildNode = $(oldChildNodeName);

    replaceNodeAsDiv(parentNode, oldChildNode, oldChildNode.innerHTML);
}

/**
* Replace a node with a div node given the same id tag and innerHTML of another node.
* Eg for replace link tags with text tags from inner nodes
* @param parentNodeName Name of the parent node where the given node is located in the DOM
* @param oldChildNodeName Name of the node which should be replaced by a div tag
* @param innerHTMLNodeName Name if the node which has the innerHTML for the new div tag
* @version 21jan2009
* @author DN
*/
function replaceNodeNameAsDiv1(parentNodeName, oldChildNodeName, innerHTMLNodeName) {
    var parentNode = $(parentNodeName);
    var oldChildNode = $(oldChildNodeName);
    if ($(innerHTMLNodeName)) {
        var innerHTML = $(innerHTMLNodeName).innerHTML;
        replaceNodeAsDiv(parentNode, oldChildNode, innerHTML);
    }    
}

/**
* Replace a node with a div node given the same id tag and innerHTML of another node.
* Eg for replace link tags with text tags from inner nodes
* @param parentNode The parent node where the given node is located in the DOM
* @param oldChildNode The node which should be replaced by a div tag
* @param innerHTML The innerHTML for the new div tag
* @version 21jan2009
* @author DN
*/
function replaceNodeAsDiv(parentNode, oldChildNode, innerHTML) {
    // Check that the replacement is possible
    if (parentNode !== null && oldChildNode !== null && innerHTML !== null) {
        // Create the new div node with old nodes id and innerHTML
        var newChildNode = document.createElement("div");
        newChildNode.setAttribute("id", oldChildNode.id);
        newChildNode.appendChild(document.createTextNode(innerHTML));

        // Replace the old node with the newly created div node
        parentNode.replaceChild(newChildNode, oldChildNode);
    }
}