
function CursorWaiting() {
    $("#HotelResults").animate({ opacity: 0.2 }, 400);
    $("#Search-Loading").dialog("open");
    $("*").css("cursor", "wait");
}

function CursorDefault() {
    $("#Search-Loading").dialog("close");
    $("*").css("cursor", "");
}

function UpdateFormFilter(obj, value) {
    obj.value = value;
    document.aspnetForm.submit();
}

/* CustomFields Variables */

String.prototype.trim = function () {
    return this.replace(/^\s*/, "").replace(/\s*$/, "");
}

var BaseUrl = "/ajax/GetHotelResults.aspx?";

var CustomUrl = "";
var countCustomValidators = 0;
var currentPage = 1;

function AddCustomField(custom_field, custom_value, results, label) {
    var objCustomControl = document.getElementById("customise_" + custom_field);
    var objFilterItems = document.getElementById("filter_items");
    var objResetButton = document.getElementById("filter_reset_button");

    CustomUrl = CustomUrl + custom_field + "=" + custom_value + "&";
    objCustomControl.style.display = "none";

    var objFilterField = document.createElement('div');
    objFilterField.setAttribute("id", "filter_" + custom_field);
    objFilterField.setAttribute("class", "filter_item");
    objFilterField.innerHTML = "<div class=\"filter_name\"><span>" + label + "</span></div><div class=\"filter_remove\"><a href=\"javascript:;\" onclick=\"RemoveCustomField('" + custom_field + "','" + custom_value + "');\">Remove</a></div>";
    objFilterItems.appendChild(objFilterField);
    objResetButton.style.display = "block";

    countCustomValidators++;

    SearchUrl = SearchUrl.replace(/page=[0-9]*/, "page=1");
    showResults(BaseUrl + SearchUrl + CustomUrl);
}

function RemoveCustomField(custom_field, custom_value) {
    var objCustomControl = document.getElementById("customise_" + custom_field);
    var objFilterItems = document.getElementById("filter_items");
    var objFilterField = document.getElementById("filter_" + custom_field);
    var objResetButton = document.getElementById("filter_reset_button");

    objCustomControl.style.display = "block";
    CustomUrl = CustomUrl.replace(custom_field + "=" + custom_value + "&", "");
    objFilterItems.removeChild(objFilterField);

    countCustomValidators--;

    if (countCustomValidators == 0) {
        objResetButton.style.display = "none";
    }

    SearchUrl = SearchUrl.replace(/page=[0-9]*/, "page=1");
    showResults(BaseUrl + SearchUrl + CustomUrl);
}

function RemoveAllCustomFields() {
    var objFilterItems = document.getElementById("filter_items");
    var objResetButton = document.getElementById("filter_reset_button");
    var arrCustomControls = $(".filter_tool_box");

    for (var x = 0; x < arrCustomControls.length; x++) {
        arrCustomControls[x].style.display = "block";
    }

    objFilterItems.innerHTML = "";
    CustomUrl = "";
    objResetButton.style.display = "none";

    countCustomValidators = 0;

    SearchUrl = SearchUrl.replace(/page=[0-9]*/, "page=1");
    showResults(BaseUrl + SearchUrl + CustomUrl);
}

function showResults(url) {
    //document.getElementById("A1").href = "/HotelsByMap.aspx?" + SearchUrl + CustomUrl;
    //decoGreyboxLinks();

    CursorWaiting();
    var arrCustomCounters = $(".tool_count");
    for (var x = 0; x < arrCustomCounters.length; x++)
        arrCustomCounters[x].innerHTML = "0";

    $.ajax({
        type: "GET",
        url: url,
        error: function () {
            CursorDefault();
            $("#HotelResults").animate({ opacity: 1 }, 400);
        },
        success: function (msg) {
            try {
                objHotels = $.parseJSON(msg);
            }
            catch (err) {
                objHotels = $.parseJSON(msg.replace(/\\\\\"/g, "'"));
            }
            SortHotels("5");
            CursorDefault();
            refreshCustomiser(SearchUrl + CustomUrl);
        }
    });
}

function refreshCustomiser(url) {
    url = "/ajax/GetCustomiser.aspx?" + url;

    $.ajax({
        type: "GET",
        url: url,
        success: function (msg) {
            SetNewCounters(msg.replace("\r\n", ""));
        }
    });
}

function SetNewCounters(data_set) {
    var arrDataSet = data_set.split("||");
    var arrDataSubSet;
    var strCityList = "";

    document.getElementById("city_list").innerHTML = strCityList;

    for (var x = 1; x < arrDataSet.length; x++) {
        arrDataSubSet = arrDataSet[x].split("|");
        if (arrDataSubSet[0].indexOf("city") == -1) {
            document.getElementById(arrDataSubSet[0]).innerHTML = arrDataSubSet[1].trim();
        }
        else {
            strCityList += "<div class=\"filter_tool_item\">";
            strCityList += "<p class=\"filter_tool_link\">";
            strCityList += "<a href=\"javascript:;\" onclick=\"AddCustomField('city','" + arrDataSubSet[0].replace("city_", "") + "','" + arrDataSubSet[1].trim() + "','" + arrDataSubSet[2].trim() + "');\">";
            strCityList += arrDataSubSet[2].trim();
            strCityList += "</a>";
            strCityList += "</p>";
            strCityList += "<p class=\"filter_tool_count\">(" + arrDataSubSet[1].trim() + ")</p>";
            strCityList += "</div>";
        }
    }

    document.getElementById("city_list").innerHTML = strCityList;
}

function SelectPageSize(page_size_value) {
    var arrSelectBoxes = $(".PageSizeList");
    for (var x = 0; x < arrSelectBoxes.length; x++) {
        arrSelectBoxes[x].value = page_size_value;
    }
}

//New JSON Functions

var objHotels = new Array();
var intSortBy = 5;
var intPage = 1;
var intItemsPerPage = 10;
var strHotelTemplate;
var isWhitelabel = false;

function ChangeItemsPerPage(newItemsPerPage) {
    intItemsPerPage = newItemsPerPage;
    intPage = 1;
    FadeHotels();
}

function SortHotels(newSortBy) {
    newSortBy = parseInt(newSortBy);
    var sort_by = function (field, reverse, primer) {
        reverse = (reverse) ? -1 : 1;

        return function (a, b) {
            a = a[field];
            b = b[field];

            if (typeof (primer) != 'undefined') {
                a = primer(a);
                b = primer(b);
            }

            if (a < b) return reverse * -1;
            if (a > b) return reverse * 1;
            return 0;

        }
    }
    try {
        switch (newSortBy) {
            case 1:
                objHotels.Root.Hotels[0].Hotel.sort(sort_by('Name', false, function (a) { return a.toUpperCase() }));
                break;
            case 2:
                objHotels.Root.Hotels[0].Hotel.sort(sort_by('Rating', true, parseFloat));
                break;
            case 3:
                objHotels.Root.Hotels[0].Hotel.sort(sort_by('LowestPrice', false, parseFloat));
                break;
            case 4:
                objHotels.Root.Hotels[0].Hotel.sort(sort_by('CityName', false, function (a) { return a.toUpperCase() }));
                break;
            case 5:
                objHotels.Root.Hotels[0].Hotel.sort(sort_by('Availability', true, parseInt));
                break;
        }
    }
    catch (err) {
    }

    intPage = 1;
    FadeHotels();
}

function ChangePage(newPage) {
    intPage = newPage;
    FadeHotels();
}

function GetHotelTemplate() {
    strHotelTemplate = document.getElementById("HotelResults").innerHTML;
}

function FadeHotels() {
    $("#HotelResults").animate({ opacity: 0.20 }, 400, function () {
        ShowHotels();
        $("#HotelResults").animate({ opacity: 1 }, 400);
    });
}

function ShowHotels() {
    var objCount = document.getElementById("ResultsCount");
    var objHolder = document.getElementById("HotelResults");
    var objPages = document.getElementById("Pages");
    var objPages2 = document.getElementById("Pages2");
    var listHotels;
    var NumberOfHotels;
    var intPages;
    var PageStart;
    var PageEnd;
    var PageFirst = 1;
    var PageLast = 5;

    try {
        listHotels = objHotels.Root.Hotels[0].Hotel;
        NumberOfHotels = listHotels.length;
        intPages = Math.floor(NumberOfHotels / intItemsPerPage);
        if (NumberOfHotels % intItemsPerPage > 0)
            intPages++;
        PageStart = ((intPage - 1) * intItemsPerPage) + 1;
        PageEnd = intPage * intItemsPerPage;
        objHolder.innerHTML = "";

        if (PageEnd > NumberOfHotels)
            PageEnd = NumberOfHotels;

        if (intPage > 3) {
            if (intPage + 2 >= intPages)
                PageFirst = intPages - 4;
            else
                PageFirst = intPage - 2;
        }
        if (intPages < 5)
            PageLast = intPages;
        else
            PageLast = PageFirst + 4;
    }
    catch (Error) {
        NumberOfHotels = "0";
        intPages = 1;
        PageFirst = 1;
        PageLast = 1;
        PageStart = 1;
        PageEnd = 0;
        objHolder.innerHTML = "<div class='results-item'><div class='top'><h2>Sorry, we couldn't find any hotels that match your search.</h2></div>";
        objHolder.innerHTML += "<p>Please try again</p><div class='bottom'><div class='trip_advisor'></div></div></div>";
    }

    objCount.innerHTML = NumberOfHotels;
    objPages.innerHTML = "Go to page ( Page " + intPage + " of " + intPages + " ) ";
    objPages.innerHTML += "<a href='javascript:;' onclick='ChangePage(1);'><img src='/App_Themes/MainTheme/imgs/first.png' title='first' alt='first' border='0' /></a> "
    if (intPage != 1)
        objPages.innerHTML += "<a href='javascript:;' onclick='ChangePage(" + (intPage - 1) + ");'><img src='/App_Themes/MainTheme/imgs/prev.png' title='previous' alt='previous' border='0' /></a> ";
    else
        objPages.innerHTML += "<a href='javascript:;' onclick='ChangePage(1);'><img src='/App_Themes/MainTheme/imgs/prev.png' title='previous' alt='previous' border='0' /></a> ";

    for (var i = PageFirst; i <= PageLast; i++) {
        if (i != intPage)
            objPages.innerHTML += "<a href='javascript:;' onclick='ChangePage(" + i + ");'>" + i + "</a> ";
        else
            objPages.innerHTML += "<strong><u>" + i + "</u></strong> ";
        if (i == PageLast)
            i = PageLast + 1;
    }

    if (intPage != intPages)
        objPages.innerHTML += " <a href='javascript:;' onclick='ChangePage(" + (intPage + 1) + ");'><img src='/App_Themes/MainTheme/imgs/next.png' title='next' alt='next' border='0' /></a> ";
    else
        objPages.innerHTML += " <a href='javascript:;' onclick='ChangePage(" + intPages + ");'><img src='/App_Themes/MainTheme/imgs/next.png' title='next' alt='next' border='0' /></a> ";
    objPages.innerHTML += "<a href='javascript:;' onclick='ChangePage(" + intPages + ");'><img src='/App_Themes/MainTheme/imgs/last.png' title='last' alt='last' border='0' /></a>";

    objPages2.innerHTML = objPages.innerHTML.replace(/_1/g, "_2");

    for (var x = PageStart - 1; x <= PageEnd - 1; x++)
        BuildHotel(objHolder, listHotels[x]);

    $('tr.row').click(function (e) {
        var row_class = $(this).attr('class').replace(" row", "").replace(" selected", "");
        $('.selected.' + row_class).addClass('row');
        $('.selected.' + row_class).removeClass('selected');
        $(this).removeClass('row');
        $(this).addClass('selected');
        $(this).find('input:radio').attr('checked', true);
        $(this).find('input:radio').change();
    });

    $(".with-tooltip").livequery(function () {
        $(this).simpletooltip();
    });
}

function BuildHotel(obj, data) {
    var OutputHotel = strHotelTemplate;
    var OutputRooms = new Array(4);
    OutputRooms[0] = "";
    OutputRooms[1] = "";
    OutputRooms[2] = "";
    OutputRooms[3] = "";
    var RoomCount = new Array(4);
    RoomCount[0] = 0;
    RoomCount[1] = 0;
    RoomCount[2] = 0;
    RoomCount[3] = 0;
    var URL_Name = data.Name;
    URL_Name = URL_Name.replace(/\&amp;/g, "");
    URL_Name = URL_Name.replace(/\&/g, "");
    URL_Name = URL_Name.replace(/ /g, "_");
    var OfferName = function (a) {
        switch (a) {
            case "EA":
                return "Early Booking Per Arrival";
                break;
            case "ES":
                return "Early Booking Per Stay";
                break;
            case "SA":
                return "Special Offer Per Arrival";
                break;
            case "SP":
                return "Stay Pay Offer";
                break;
            case "SR":
                return "Special Rate";
                break;
            case "ST":
                return "Special Offer Per Stay";
                break;
            default:
                return "";
                break;
        }
    }

    OutputHotel = OutputHotel.replace(/\[Name\]/g, data.Name);
    OutputHotel = OutputHotel.replace(/\[URL_Name\]/g, URL_Name);
    OutputHotel = OutputHotel.replace(/\[CityName\]/g, data.CityName);
    OutputHotel = OutputHotel.replace(/\[Description\]/g, data.Description);
    OutputHotel = OutputHotel.replace(/\[ID\]/g, data.ID);
    OutputHotel = OutputHotel.replace(/\[ImageThumbURL\]/g, data.ImageThumbURL);
    OutputHotel = OutputHotel.replace(/\[LowestPrice\]/g, data.LowestPrice);
    OutputHotel = OutputHotel.replace(/\[Rating\]/g, data.OfficialRating);
    OutputHotel = OutputHotel.replace(/\[OurRating\]/g, data.Rating);
    OutputHotel = OutputHotel.replace(/\[StateProvinceName\]/g, data.StateProvinceName);
    OutputHotel = OutputHotel.replace(/\[Overnights\]/g, objHotels.Root.Hotels[0].Overnights);
    OutputHotel = OutputHotel.replace(/\[RoomsNumber\]/g, objHotels.Root.Hotels[0].NumberOfRooms);
    if (parseInt(data.TravelAdvisor) > 0) {
        OutputHotel = OutputHotel.replace("<div id=\"TripAdvisor" + data.ID + "\" class=\"trip_advisor_hidden\">", "<div id=\"TripAdvisor" + data.ID + "\" class=\"trip_advisor\">");
        OutputHotel = OutputHotel.replace("<DIV id=TripAdvisor" + data.ID + " class=trip_advisor_hidden>", "<DIV id=TripAdvisor" + data.ID + " class=trip_advisor>");
    }

    var listRooms = data.Rooms[0].Rooms[0].Room;
    var listOccupancy;
    var x;
    listRooms.sort(function (a, b) { return parseInt(b.Availability) - parseInt(a.Availability) });
    for (var a in listRooms) {
        var hasValue = false;
        listOccupancy = listRooms[a].Occupancy;
        for (var b in listOccupancy) {
            switch (listOccupancy[b].Code) {
                case "R1":
                    x = 0;
                    break;
                case "R2":
                    x = 1;
                    break;
                case "R3":
                    x = 2;
                    break;
                case "R4":
                    x = 3;
                    break;
            }
            RoomCount[x]++;
            OutputRooms[x] += "<tr class='r" + x + data.ID + " row'><td class='room-type'><p>" + listRooms[a].Name + "</p></td>";
            OutputRooms[x] += "<td class='room-price' align='left' nowrap='nowrap'><p>";
            if (listOccupancy[b].RR[0].value != "") {
                hasValue = true;
                if (parseFloat(listOccupancy[b].RR[0].Discount) < parseFloat(listOccupancy[b].RR[0].value))
                    OutputRooms[x] += "<span class='with-tooltip' title='" + OfferName(listOccupancy[b].RR[0].Offer) + "'><input type='hidden' id='Board" + listOccupancy[b].Code + listRooms[a].ID + "' value='RR|" + listOccupancy[b].RR[0].Discount + "' />Room Rate - <span class='strike'>&euro;" + listOccupancy[b].RR[0].value + "</span> <span class='discount'>&euro;" + listOccupancy[b].RR[0].Discount + "</span></span><br />";
                else
                    OutputRooms[x] += "<input type='hidden' id='Board" + listOccupancy[b].Code + listRooms[a].ID + "' value='RR|" + listOccupancy[b].RR[0].value + "' />Room Rate - &euro;" + listOccupancy[b].RR[0].value + "<br />";
            }
            if (listOccupancy[b].BB[0].value != "") {
                hasValue = true;
                if (parseFloat(listOccupancy[b].BB[0].Discount) < parseFloat(listOccupancy[b].BB[0].value))
                    OutputRooms[x] += "<span class='with-tooltip' title='" + OfferName(listOccupancy[b].BB[0].Offer) + "'><input type='hidden' id='Board" + listOccupancy[b].Code + listRooms[a].ID + "' value='BB|" + listOccupancy[b].BB[0].Discount + "' />Bed &amp; Breakfast - <span class='strike'>&euro;" + listOccupancy[b].BB[0].value + "</span> <span class='discount'>&euro;" + listOccupancy[b].BB[0].Discount + "</span></span><br />";
                else
                    OutputRooms[x] += "<input type='hidden' id='Board" + listOccupancy[b].Code + listRooms[a].ID + "' value='BB|" + listOccupancy[b].BB[0].value + "' />Bed &amp; Breakfast - &euro;" + listOccupancy[b].BB[0].value + "<br />";
            }
            if (listOccupancy[b].HB[0].value != "") {
                hasValue = true;
                //alert(listRooms[a].Name + " - Discount: " + listOccupancy[b].HB[0].Discount + ", Price: " + listOccupancy[b].HB[0].value);
                if (parseFloat(listOccupancy[b].HB[0].Discount) < parseFloat(listOccupancy[b].HB[0].value))
                    OutputRooms[x] += "<span class='with-tooltip' title='" + OfferName(listOccupancy[b].HB[0].Offer) + "'><input type='hidden' id='Board" + listOccupancy[b].Code + listRooms[a].ID + "' value='HB|" + listOccupancy[b].HB[0].Discount + "' />Half Board - <span class='strike'>&euro;" + listOccupancy[b].HB[0].value + "</span> <span class='discount'>&euro;" + listOccupancy[b].HB[0].Discount + "</span></span><br />";
                else
                    OutputRooms[x] += "<input type='hidden' id='Board" + listOccupancy[b].Code + listRooms[a].ID + "' value='HB|" + listOccupancy[b].HB[0].value + "' />Half Board - &euro;" + listOccupancy[b].HB[0].value + "<br />";
            }
            if (listOccupancy[b].FB[0].value != "") {
                hasValue = true;
                if (parseFloat(listOccupancy[b].FB[0].Discount) < parseFloat(listOccupancy[b].FB[0].value))
                    OutputRooms[x] += "<span class='with-tooltip' title='" + OfferName(listOccupancy[b].FB[0].Offer) + "'><input type='hidden' id='Board" + listOccupancy[b].Code + listRooms[a].ID + "' value='FB|" + listOccupancy[b].FB[0].Discount + "' />Full Board - <span class='strike'>&euro;" + listOccupancy[b].FB[0].value + "</span> <span class='discount'>&euro;" + listOccupancy[b].FB[0].Discount + "</span></span><br />";
                else
                    OutputRooms[x] += "<input type='hidden' id='Board" + listOccupancy[b].Code + listRooms[a].ID + "' value='FB|" + listOccupancy[b].FB[0].value + "' />Full Board - &euro;" + listOccupancy[b].FB[0].value + "<br />";
            }
            if (listOccupancy[b].AI[0].value != "") {
                hasValue = true;
                if (parseFloat(listOccupancy[b].AI[0].Discount) < parseFloat(listOccupancy[b].AI[0].value))
                    OutputRooms[x] += "<span class='with-tooltip' title='" + OfferName(listOccupancy[b].AI[0].Offer) + "'><input type='hidden' id='Board" + listOccupancy[b].Code + listRooms[a].ID + "' value='AI|" + listOccupancy[b].AI[0].Discount + "' />All Inclusive - <span class='strike'>&euro;" + listOccupancy[b].AI[0].value + "</span> <span class='discount'>&euro;" + listOccupancy[b].AI[0].Discount + "</span></span>";
                else
                    OutputRooms[x] += "<input type='hidden' id='Board" + listOccupancy[b].Code + listRooms[a].ID + "' value='AI|" + listOccupancy[b].AI[0].value + "' />All Inclusive - &euro;" + listOccupancy[b].AI[0].value + "";
            }
            if (listOccupancy[b].UI[0].value != "") {
                hasValue = true;
                if (parseFloat(listOccupancy[b].UI[0].Discount) < parseFloat(listOccupancy[b].UI[0].value))
                    OutputRooms[x] += "<span class='with-tooltip' title='" + OfferName(listOccupancy[b].UI[0].Offer) + "'><input type='hidden' id='Board" + listOccupancy[b].Code + listRooms[a].ID + "' value='UI|" + listOccupancy[b].UI[0].Discount + "' />Ultra Inclusive - <span class='strike'>&euro;" + listOccupancy[b].UI[0].value + "</span> <span class='discount'>&euro;" + listOccupancy[b].UI[0].Discount + "</span></span>";
                else
                    OutputRooms[x] += "<input type='hidden' id='Board" + listOccupancy[b].Code + listRooms[a].ID + "' value='UI|" + listOccupancy[b].UI[0].value + "' />Ultra Inclusive - &euro;" + listOccupancy[b].UI[0].value + "";
            }

            OutputRooms[x] += "</p></td>";
            OutputRooms[x] += "<td class='room-book' align='left'>";
            if (listOccupancy[b].ReleaseError == 1)
                OutputRooms[x] += "<p><span class='info-highlight'>Please Select Later Dates</span></p>";
            if (listOccupancy[b].ReleaseError == 0 && listOccupancy[b].MinLOSError == 1)
                OutputRooms[x] += "<p><span class='info-highlight'>More Days of Stay Required</span></p>";
            if (!hasValue && listOccupancy[b].ReleaseError != 1 && listOccupancy[b].MinLOSError != 1)
                OutputRooms[x] += "<p><span class='info-highlight'>No Price Available</span></p>";
            if (listOccupancy[b].ReleaseError == 0 && listOccupancy[b].MinLOSError == 0 && listOccupancy[b].Availability > 0 && hasValue)
                OutputRooms[x] += "<p><span class='info-highlight'><input type='radio' id='Radio" + listOccupancy[b].Code + listRooms[a].ID + "' name='Occupancy" + listOccupancy[b].Code + data.ID + "' class='hid" + data.ID + "' value='" + listOccupancy[b].Availability + "' onchange='SetSubmitValues(" + objHotels.Root.Hotels[0].NumberOfRooms + "," + data.ID + ");' /> <span id='Span" + listOccupancy[b].Code + listRooms[a].ID + "' class='Room" + listRooms[a].ID + "'>" + listOccupancy[b].Availability + "</span> Room(s) Available</span></p>";
            if (listOccupancy[b].ReleaseError == 0 && listOccupancy[b].MinLOSError == 0 && listOccupancy[b].Availability < 1 && hasValue) {
                if (listOccupancy[b].StopSales > 0 && isWhitelabel)
                    OutputRooms[x] += "<p><span class='info-highlight'>Stop Sales</span></p>";
                else
                    OutputRooms[x] += "<p><span class='info-highlight'><input type='radio' id='Radio" + listOccupancy[b].Code + listRooms[a].ID + "' name='Occupancy" + listOccupancy[b].Code + data.ID + "' value='0' onchange='SetSubmitValues(" + objHotels.Root.Hotels[0].NumberOfRooms + "," + data.ID + ");' /> On request</span></p>";
            }
            OutputRooms[x] += "</td></tr>";
        }
    }
    var OutRoomsTitle = "<tr><td><p>Room Type</p></td><td><p>Price From</p></td><td><p>Selection</p></td></tr>";
    var OutRoomsNone = "<tr><td colspan='3'><p>No rooms available.</p></td></tr>";
    if (OutputRooms[0] != "")
        OutputRooms[0] = "<tr><th colspan='3'><p>Room 1 - " + objHotels.Root.Hotels[0].Room1[0].Adults + " Adults, " + objHotels.Root.Hotels[0].Room1[0].Children + " Children</p></th></tr>" + OutRoomsTitle + OutputRooms[0];
    else
        OutputRooms[0] = "<tr><th colspan='3'><p>Room 1 - " + objHotels.Root.Hotels[0].Room1[0].Adults + " Adults, " + objHotels.Root.Hotels[0].Room1[0].Children + " Children</p></th></tr>" + OutRoomsNone;
    if (OutputRooms[1] != "")
        OutputRooms[1] = "<tr><th colspan='3'><p>Room 2 - " + objHotels.Root.Hotels[0].Room2[0].Adults + " Adults, " + objHotels.Root.Hotels[0].Room2[0].Children + " Children</p></th></tr>" + OutRoomsTitle + OutputRooms[1];
    else {
        try {
            OutputRooms[1] = "<tr><th colspan='3'><p>Room 2 - " + objHotels.Root.Hotels[0].Room2[0].Adults + " Adults, " + objHotels.Root.Hotels[0].Room2[0].Children + " Children</p></th></tr>" + OutRoomsNone;
        } catch (err) {
        }
    }
    if (OutputRooms[2] != "")
        OutputRooms[2] = "<tr><th colspan='3'><p>Room 3 - " + objHotels.Root.Hotels[0].Room3[0].Adults + " Adults, " + objHotels.Root.Hotels[0].Room3[0].Children + " Children</p></th></tr>" + OutRoomsTitle + OutputRooms[2];
    else {
        try {
            OutputRooms[2] = "<tr><th colspan='3'><p>Room 3 - " + objHotels.Root.Hotels[0].Room3[0].Adults + " Adults, " + objHotels.Root.Hotels[0].Room3[0].Children + " Children</p></th></tr>" + OutRoomsNone;
        } catch (err) {
        }
    }
    if (OutputRooms[3] != "")
        OutputRooms[3] = "<tr><th colspan='3'><p>Room 4 - " + objHotels.Root.Hotels[0].Room4[0].Adults + " Adults, " + objHotels.Root.Hotels[0].Room4[0].Children + " Children</p></th></tr>" + OutRoomsTitle + OutputRooms[3];
    else {
        try {
            OutputRooms[3] = "<tr><th colspan='3'><p>Room 4 - " + objHotels.Root.Hotels[0].Room4[0].Adults + " Adults, " + objHotels.Root.Hotels[0].Room4[0].Children + " Children</p></th></tr>" + OutRoomsNone;
        } catch (err) {
        }
    }

    OutputHotel = OutputHotel.replace("<!--[Rooms]-->", OutputRooms[0] + OutputRooms[1] + OutputRooms[2] + OutputRooms[3]);
    obj.innerHTML += OutputHotel;
}

function SetSubmitValues(NumberOfRooms, HotelID) {
    var BookButton = document.getElementById("BookBtn" + HotelID);
    var RequestButton = document.getElementById("RequestBtn" + HotelID);
    var SelectButton = document.getElementById("SelectBtn" + HotelID);
    var arrRoomID = new Array(NumberOfRooms);
    var arrRoomAvailability = new Array(NumberOfRooms);
    var isBook = true;
    var Counter = 0;
    var TotalPrice = 0;

    // Set Availability
    var arrAllRooms = $(".hid" + HotelID);
    var arrUniqueRooms = new Array();
    var arrCheckedRooms = new Array();
    var strRadioButton = "";

    for (var a = 0; a < arrAllRooms.length; a++) {
        arrUniqueRooms.push(arrAllRooms[a].id.replace("RadioR", "").substr(1));
        if (arrAllRooms[a].checked)
            arrCheckedRooms.push(arrAllRooms[a].id.replace("RadioR", "").substr(1));
    }
    arrUniqueRooms.sort();
    arrCheckedRooms.sort();

    var thisUniqueRoom = 0;

    for (var a = arrUniqueRooms.length - 1; a >= 0; a--) {
        if (arrUniqueRooms[a] == thisUniqueRoom) {
            thisUniqueRoom = arrUniqueRooms[a]
            arrUniqueRooms.splice(a, 1);
        } else {
            thisUniqueRoom = arrUniqueRooms[a]
        }
    }
    for (var a = 0; a < arrUniqueRooms.length; a++) {
        var isChecked = false;
        for (var b = 0; b < arrCheckedRooms.length; b++) {
            if (arrUniqueRooms[a] == arrCheckedRooms[b])
                isChecked = true;
        }
        if (!isChecked) {
            if ($("#RadioR1" + arrUniqueRooms[a]).val() != undefined) { strRadioButton = "#RadioR1" + arrUniqueRooms[a]; }
            else if ($("#RadioR2" + arrUniqueRooms[a]).val() != undefined) { strRadioButton = "#RadioR2" + arrUniqueRooms[a]; }
            else if ($("#RadioR3" + arrUniqueRooms[a]).val() != undefined) { strRadioButton = "#RadioR3" + arrUniqueRooms[a]; }
            else if ($("#RadioR4" + arrUniqueRooms[a]).val() != undefined) { strRadioButton = "#RadioR4" + arrUniqueRooms[a]; }
            $(".Room" + arrUniqueRooms[a]).html($(strRadioButton).val());
        }
    }

    var thisRoomId = 0;
    var thisRoomCounter = 0;
    var thisRemainder = 0;

    for (var a = 0; a < arrCheckedRooms.length; a++) {
        if (arrCheckedRooms[a] != thisRoomId) {
            if (a != 0) {
                if ($("#RadioR1" + thisRoomId).val() != undefined) { strRadioButton = "#RadioR1" + thisRoomId; }
                else if ($("#RadioR2" + thisRoomId).val() != undefined) { strRadioButton = "#RadioR2" + thisRoomId; }
                else if ($("#RadioR3" + thisRoomId).val() != undefined) { strRadioButton = "#RadioR3" + thisRoomId; }
                else if ($("#RadioR4" + thisRoomId).val() != undefined) { strRadioButton = "#RadioR4" + thisRoomId; }
                thisRemainder = $(strRadioButton).val() - thisRoomCounter;
                if (thisRemainder < 0)
                    $(".Room" + thisRoomId).html("0");
                else
                    $(".Room" + thisRoomId).html(thisRemainder);
            }
            thisRoomCounter = 1;
            thisRoomId = arrCheckedRooms[a];
        } else {
            thisRoomCounter++;
        }
        if (a == arrCheckedRooms.length - 1) {
            if ($("#RadioR1" + thisRoomId).val() != undefined) { strRadioButton = "#RadioR1" + thisRoomId; }
            else if ($("#RadioR2" + thisRoomId).val() != undefined) { strRadioButton = "#RadioR2" + thisRoomId; }
            else if ($("#RadioR3" + thisRoomId).val() != undefined) { strRadioButton = "#RadioR3" + thisRoomId; }
            else if ($("#RadioR4" + thisRoomId).val() != undefined) { strRadioButton = "#RadioR4" + thisRoomId; }
            thisRemainder = $(strRadioButton).val() - thisRoomCounter;
            if (thisRemainder < 0)
                $(".Room" + thisRoomId).html("0");
            else
                $(".Room" + thisRoomId).html(thisRemainder);
        }
    }

    //End

    for (var i = 1; i <= NumberOfRooms; i++) {
        var objRoomRadios = document.getElementsByName("OccupancyR" + i + HotelID);
        var RoomFound = false;
        for (var x = 0; x < objRoomRadios.length; x++) {
            if (objRoomRadios[x].checked) {
                RoomFound = true;
                if (objRoomRadios[x].value == '0') {
                    isBook = false;
                }
                var RoomID = objRoomRadios[x].id.replace("Radio", "");
                var objBoard = document.getElementById("Board" + RoomID);
                var BoardID = objBoard.value.split("|")[0];
                var Price = objBoard.value.split("|")[1];
                TotalPrice = parseFloat(TotalPrice) + parseFloat(Price);
                arrRoomAvailability[i - 1] = objRoomRadios[x].value;
                arrRoomID[i - 1] = RoomID.replace("R" + i, "");
            }
        }
        if (RoomFound)
            Counter++;
    }

    BookButton.style.display = "none";
    RequestButton.style.display = "none";
    SelectButton.style.display = "none";

    if (Counter == NumberOfRooms) {
        if (isBook) {
            var thisRoomID;
            var thisRoomAvailability;
            for (var a = 0; a < NumberOfRooms; a++) {
                thisRoomID = arrRoomID[a];
                thisRoomAvailability = arrRoomAvailability[a];
                for (var b = 0; b < NumberOfRooms; b++) {
                    if (thisRoomID == arrRoomID[b])
                        thisRoomAvailability--;
                }
                if (thisRoomAvailability < 0)
                    isBook = false;
            }
        }

        if (isBook)
            BookButton.style.display = "";
        else
            RequestButton.style.display = "";
    } else
        SelectButton.style.display = "";

    document.getElementById("TotalRoomPrice" + HotelID).innerHTML = TotalPrice.toFixed(2);
}

function SubmitMulti(NumberOfRooms, HotelID, PageAction) {
    var RoomsDetail = "";

    for (var i = 1; i <= NumberOfRooms; i++) {
        var objRoomRadios = document.getElementsByName("OccupancyR" + i + HotelID);
        for (var x = 0; x < objRoomRadios.length; x++) {
            if (objRoomRadios[x].checked) {
                var RoomID = objRoomRadios[x].id.replace("Radio", "");
                var BoardID = document.getElementById("Board" + RoomID).value.split("|")[0];
                RoomsDetail += "R:" + i + "$ID:" + RoomID.replace("R" + i, "") + "$BOARD:" + BoardID;
                if (i != NumberOfRooms)
                    RoomsDetail += "|";
            }
        }
    }

    document.getElementById(strHotelID).value = HotelID;
    document.getElementById(strRoomsID).value = RoomsDetail;
    document.aspnetForm.action = PageAction;
    document.aspnetForm.submit();
    $("#Custom-Loading").dialog("open");
}
