var appFolder = '/';
var updatingDropOffPlace = false;
var currentCarGroup = '';
var currentCarData = '';
var _browserName = 'Unknown browser';
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); });
    }
    HideUnder25Microsite();
    //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');
        Element.removeClassName($('PriceCategoryGrossGPSHolder'), 'hidden');
        Element.removeClassName($('PriceCategoryAPlusGPSHolder'), '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');
        Element.addClassName($('PriceCategoryGrossGPSHolder'), 'hidden');
        Element.addClassName($('PriceCategoryAPlusGPSHolder'), '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';
        } else if ($('USATypeGrossGPS').checked) {
            usaPriceCat = 'grossgps';
        } else if ($('USATypeAPlusGPS').checked) {
            usaPriceCat = 'aplusgps';
        } 

        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);
    HideUnder25Microsite();
}

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 + "#" + spans[2].innerHTML + '#' + spans[3].innerHTML + '|';
        }
    }

    // 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]);
        alert(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()

    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';
    } 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) {
    RQ('Type=GetCancelBookingFee&Value=' + bookingNumber, function(data) { CancelBooking_Step2(data, lnk, bookingNumber) });


}

function CancelBooking_Step2(data, lnk, bookingNumber) {
    var results = data.responseText.split('|');
    HideUserLoading();
    if (results[0] != undefined && results[0] > 0) {
        alert("we will charge cancellation fee of " + results[0] + results[1] + " to cancell this booking!");
    }
    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);
    }
}

function HideUnder25Microsite() {
    var cityDropdownObject = $(cityDropdownClientId);
    var pickupDateObject = $(pickupDateClientId);
    var under25Object = $(under25ClientId);
    var grossGPSObject = $(grossGPSClientId);
    var aplusGPSObject = $(aplusGPSClientId);
    var stdObject = $(std);
    var checkDate = new Date(2012, 3, 1);
    var temp = pickupDateObject.value.split('-');
    var selectedDate = new Date(temp[0], temp[1] - 1, temp[2]);

    if (citiesInAlaska.indexOf(cityDropdownObject.value) != -1 && selectedDate >= checkDate && under25Object != null) {
        under25Object.checked = false;
        under25Object.disabled = true;
        if(grossGPSObject != null)
        {
        grossGPSObject.checked = false;
        grossGPSObject.disabled = true;
        }
        if(aplusGPSObject != null)
        {
        aplusGPSObject.checked = false;
        aplusGPSObject.disabled = true;
        }
        $(stdObject).checked = true;
    }
    else {
        if (under25Object != null)
            under25Object.disabled = false;
           
        if (grossGPSObject != null)
            grossGPSObject.disabled = false;
            
        if(aplusGPSObject != null)
            aplusGPSObject.disabled = false;
    }
}

function ShowMessage(msg) {
    alert(msg);
}
