﻿/* XML Functions */

var req = createXMLHttpRequest();
var calendarMonth1;
var calendarMonth2;
var calendarMonthYear1;
var calendarMonthYear2;
var calendarXML;
var counter;
var selcounter;
var searchDate;
var resultDate;

function ToggleOtherFilters(aFilterName) {

    if (aFilterName == 'departureports') {
        if (document.getElementById('divPortsMainControl').style.display == 'none') {

            document.getElementById('divPortsMainControl').style.display = 'block';
            document.getElementById('divDeparturePortsSel').style.display = 'none';
            document.getElementById("divDPControlTitleBckg").setAttribute("class", "Filter-sub-con-bg-2");
            document.getElementById("divDPControlTitleArrow").setAttribute("class", "Filter-arrow-close");

            document.getElementById('divPortsMainControl').style.top = getElTop(document.getElementById('divDPControlTitleArrow')) - 8 + 'px';
            document.getElementById('divPortsMainControl').style.left = getElLeft(document.getElementById('divDPControlTitleArrow')) + 13 + 'px';

        } else {

            document.getElementById('divPortsMainControl').style.display = 'none';
            document.getElementById('divDeparturePortsSel').style.display = '';
            document.getElementById("divDPControlTitleBckg").setAttribute("class", "Filter-sub-con-bg-1");
            document.getElementById("divDPControlTitleArrow").setAttribute("class", "Filter-arrow-expand");

        }
    } else {
        document.getElementById('divPortsMainControl').style.display = 'none';
        document.getElementById('divDeparturePortsSel').style.display = '';
        document.getElementById("divDPControlTitleBckg").setAttribute("class", "Filter-sub-con-bg-1");
        document.getElementById("divDPControlTitleArrow").setAttribute("class", "Filter-arrow-expand");
    }

    if (aFilterName == 'itinerary') {
        if (document.getElementById('divItineraryFilterMainControl').style.display == 'none') {

            document.getElementById('divItineraryFilterMainControl').style.display = 'block';
            document.getElementById('divItineraryFilterSel').style.display = 'none';
            document.getElementById("divITControlTitleBckg").setAttribute("class", "Filter-sub-con-bg-2");
            document.getElementById("divITControlTitleArrow").setAttribute("class", "Filter-arrow-close");

            document.getElementById('divItineraryFilterMainControl').style.top = getElTop(document.getElementById('divITControlTitleArrow')) - 8 + 'px';
            document.getElementById('divItineraryFilterMainControl').style.left = getElLeft(document.getElementById('divITControlTitleArrow')) + 13 + 'px';

        } else {

            document.getElementById('divItineraryFilterMainControl').style.display = 'none';
            document.getElementById('divItineraryFilterSel').style.display = '';
            document.getElementById("divITControlTitleBckg").setAttribute("class", "Filter-sub-con-bg-1");
            document.getElementById("divITControlTitleArrow").setAttribute("class", "Filter-arrow-expand");

        }
    } else {
        document.getElementById('divItineraryFilterMainControl').style.display = 'none';
        document.getElementById('divItineraryFilterSel').style.display = '';
        document.getElementById("divITControlTitleBckg").setAttribute("class", "Filter-sub-con-bg-1");
        document.getElementById("divITControlTitleArrow").setAttribute("class", "Filter-arrow-expand");
    }

    if (aFilterName == 'ships') {
        if (document.getElementById('divShipsFilterMainControl').style.display == 'none') {

            document.getElementById('divShipsFilterMainControl').style.display = 'block';
            document.getElementById('divShipsFilterSel').style.display = 'none';
            document.getElementById("divSHControlTitleBckg").setAttribute("class", "Filter-sub-con-bg-2");
            document.getElementById("divSHControlTitleArrow").setAttribute("class", "Filter-arrow-close");

            document.getElementById('divShipsFilterMainControl').style.top = getElTop(document.getElementById('divSHControlTitleArrow')) - 8 + 'px';
            document.getElementById('divShipsFilterMainControl').style.left = getElLeft(document.getElementById('divSHControlTitleArrow')) + 13 + 'px';

        } else {

            document.getElementById('divShipsFilterMainControl').style.display = 'none';
            document.getElementById('divShipsFilterSel').style.display = '';
            document.getElementById("divSHControlTitleBckg").setAttribute("class", "Filter-sub-con-bg-1");
            document.getElementById("divSHControlTitleArrow").setAttribute("class", "Filter-arrow-expand");

        }
    } else {
        document.getElementById('divShipsFilterMainControl').style.display = 'none';
        document.getElementById('divShipsFilterSel').style.display = '';
        document.getElementById("divSHControlTitleBckg").setAttribute("class", "Filter-sub-con-bg-1");
        document.getElementById("divSHControlTitleArrow").setAttribute("class", "Filter-arrow-expand");
    }

    if (aFilterName == 'duration') {
        if (document.getElementById('divDurationFilterMainControl').style.display == 'none') {

            document.getElementById('divDurationFilterMainControl').style.display = 'block';
            document.getElementById('divDurationFilterSel').style.display = 'none';
            document.getElementById("divDUControlTitleBckg").setAttribute("class", "Filter-sub-con-bg-2");
            document.getElementById("divDUControlTitleArrow").setAttribute("class", "Filter-arrow-close");

            document.getElementById('divDurationFilterMainControl').style.top = getElTop(document.getElementById('divDUControlTitleArrow')) - 8 + 'px';
            document.getElementById('divDurationFilterMainControl').style.left = getElLeft(document.getElementById('divDUControlTitleArrow')) + 13 + 'px';

        } else {

            document.getElementById('divDurationFilterMainControl').style.display = 'none';
            document.getElementById('divDurationFilterSel').style.display = '';
            document.getElementById("divDUControlTitleBckg").setAttribute("class", "Filter-sub-con-bg-1");
            document.getElementById("divDUControlTitleArrow").setAttribute("class", "Filter-arrow-expand");

        }
    } else {
        document.getElementById('divDurationFilterMainControl').style.display = 'none';
        document.getElementById('divDurationFilterSel').style.display = '';
        document.getElementById("divDUControlTitleBckg").setAttribute("class", "Filter-sub-con-bg-1");
        document.getElementById("divDUControlTitleArrow").setAttribute("class", "Filter-arrow-expand");
    }

    if (aFilterName == 'destination') {
        if (document.getElementById('divDestinationFilterMainControl').style.display == 'none') {

            document.getElementById('divDestinationFilterMainControl').style.display = 'block';
            document.getElementById('divDestinationFilterSel').style.display = 'none';
            document.getElementById("divDEControlTitleBckg").setAttribute("class", "Filter-sub-con-bg-2");
            document.getElementById("divDEControlTitleArrow").setAttribute("class", "Filter-arrow-close");

            document.getElementById('divDestinationFilterMainControl').style.top = getElTop(document.getElementById('divDEControlTitleArrow')) - 8 + 'px';
            document.getElementById('divDestinationFilterMainControl').style.left = getElLeft(document.getElementById('divDEControlTitleArrow')) + 13 + 'px';

        } else {

            document.getElementById('divDestinationFilterMainControl').style.display = 'none';
            document.getElementById('divDestinationFilterSel').style.display = '';
            document.getElementById("divDEControlTitleBckg").setAttribute("class", "Filter-sub-con-bg-1");
            document.getElementById("divDEControlTitleArrow").setAttribute("class", "Filter-arrow-expand");

        }
    } else {
        document.getElementById('divDestinationFilterMainControl').style.display = 'none';
        document.getElementById('divDestinationFilterSel').style.display = '';
        document.getElementById("divDEControlTitleBckg").setAttribute("class", "Filter-sub-con-bg-1");
        document.getElementById("divDEControlTitleArrow").setAttribute("class", "Filter-arrow-expand");
    }

    if (aFilterName == 'cruiseline') {
        if (document.getElementById('divCruiseLineFilterMainControl').style.display == 'none') {

            document.getElementById('divCruiseLineFilterMainControl').style.display = 'block';
            document.getElementById('divCruiseLineFilterSel').style.display = 'none';
            document.getElementById("divCLControlTitleBckg").setAttribute("class", "Filter-sub-con-bg-2");
            document.getElementById("divCLControlTitleArrow").setAttribute("class", "Filter-arrow-close");

            document.getElementById('divCruiseLineFilterMainControl').style.top = getElTop(document.getElementById('divCLControlTitleArrow')) - 8 + 'px';
            document.getElementById('divCruiseLineFilterMainControl').style.left = getElLeft(document.getElementById('divCLControlTitleArrow')) + 13 + 'px';

        } else {

            document.getElementById('divCruiseLineFilterMainControl').style.display = 'none';
            document.getElementById('divCruiseLineFilterSel').style.display = '';
            document.getElementById("divCLControlTitleBckg").setAttribute("class", "Filter-sub-con-bg-1");
            document.getElementById("divCLControlTitleArrow").setAttribute("class", "Filter-arrow-expand");

        }
    } else {
        document.getElementById('divCruiseLineFilterMainControl').style.display = 'none';
        document.getElementById('divCruiseLineFilterSel').style.display = '';
        document.getElementById("divCLControlTitleBckg").setAttribute("class", "Filter-sub-con-bg-1");
        document.getElementById("divCLControlTitleArrow").setAttribute("class", "Filter-arrow-expand");
    }

    if (aFilterName == 'calendar') {
        
        if (document.getElementById('divAllCalendar').style.display == 'none') {

            RefreshRangeDayPicker();

            document.getElementById('divAllCalendar').style.display = 'block';
            document.getElementById('ucDropDownCalendar_divSelCalendar').style.display = 'none';
            document.getElementById('divSelCalendarSpace').style.display = '';    
            document.getElementById("divCALControlTitleBckg").setAttribute("class", "Filter-sub-con-bg-2");
            document.getElementById("divCALControlTitleArrow").setAttribute("class", "Filter-arrow-close");

            document.getElementById('divAllCalendar').style.top = getElTop(document.getElementById('divCALControlTitleArrow')) - 8 + 'px';
            document.getElementById('divAllCalendar').style.left = getElLeft(document.getElementById('divCALControlTitleArrow')) + 13 + 'px';

        } else {

            document.getElementById('divAllCalendar').style.display = 'none';
            document.getElementById('ucDropDownCalendar_divSelCalendar').style.display = '';
            document.getElementById('divSelCalendarSpace').style.display = 'none';    
            document.getElementById("divCALControlTitleBckg").setAttribute("class", "Filter-sub-con-bg-1");
            document.getElementById("divCALControlTitleArrow").setAttribute("class", "Filter-arrow-expand");

        }
    } else {
        document.getElementById('divAllCalendar').style.display = 'none';
        document.getElementById('ucDropDownCalendar_divSelCalendar').style.display = '';
        document.getElementById('divSelCalendarSpace').style.display = 'none';    
        document.getElementById("divCALControlTitleBckg").setAttribute("class", "Filter-sub-con-bg-1");
        document.getElementById("divCALControlTitleArrow").setAttribute("class", "Filter-arrow-expand");
    }

    if (aFilterName == 'category') {
        if (document.getElementById('divCategoryFilterMainControl').style.display == 'none') {

            document.getElementById('divCategoryFilterMainControl').style.display = 'block';
            document.getElementById('divCategoryFilterSel').style.display = 'none';
            document.getElementById("divCTControlTitleBckg").setAttribute("class", "Filter-sub-con-bg-2");
            document.getElementById("divCTControlTitleArrow").setAttribute("class", "Filter-arrow-close");

            document.getElementById('divCategoryFilterMainControl').style.top = getElTop(document.getElementById('divCTControlTitleArrow')) - 8 + 'px';
            document.getElementById('divCategoryFilterMainControl').style.left = getElLeft(document.getElementById('divCTControlTitleArrow')) + 13 + 'px';

        } else {

            document.getElementById('divCategoryFilterMainControl').style.display = 'none';
            document.getElementById('divCategoryFilterSel').style.display = '';
            document.getElementById("divCTControlTitleBckg").setAttribute("class", "Filter-sub-con-bg-1");
            document.getElementById("divCTControlTitleArrow").setAttribute("class", "Filter-arrow-expand");

        }
    } else {
        if (document.getElementById('divCategoryFilterMainControl')) { document.getElementById('divCategoryFilterMainControl').style.display = 'none'; }
        if (document.getElementById('divCategoryFilterSel')) { document.getElementById('divCategoryFilterSel').style.display = ''; }
        if (document.getElementById('divCTControlTitleBckg')) { document.getElementById("divCTControlTitleBckg").setAttribute("class", "Filter-sub-con-bg-1"); }
        if (document.getElementById('divCTControlTitleArrow')) { document.getElementById("divCTControlTitleArrow").setAttribute("class", "Filter-arrow-expand"); }
    }


}

function RefreshCruiseSearchListsNew() {
    var myCultureNameShort = document.getElementById('hiddenShowCultureNameShort').value;

    var myWebID = document.getElementById('hiddenWebID').value;
    var myProductScope = document.getElementById('hiddenProductScope').value;
    var myCultureName = document.getElementById('hiddenCultureName').value;
    var myShowDateRange = document.getElementById('hiddenShowDateRange').value;
    var myShowCLCheckBox = document.getElementById('hiddenShowCruiseLineCheckBoxList').value;

    document.getElementById('ucQSManager_hidIsDurationRange').value = 0;
    document.getElementById('btnSearch').disabled = false;
    if (document.getElementById('hiddenCultureName').value == 'fr-CA') {
        document.getElementById('btnSearch').setAttribute('class', 'Filter-update-result-fr');
        document.getElementById('btnSearch').setAttribute('className', 'Filter-update-result-fr');
    } else {
        document.getElementById('btnSearch').setAttribute('class', 'buttonResultsSearchUpdateenca');
        document.getElementById('btnSearch').setAttribute('className', 'buttonResultsSearchUpdateenca');
    }
    
    CallLists_CruiseSearch(myWebID, myProductScope, myCultureName, myShowDateRange, myShowCLCheckBox);
}

function RefreshCruiseSearchLists() {
    var myCultureNameShort = document.getElementById('hiddenShowCultureNameShort').value;
    
    var myWebID = document.getElementById('hiddenWebID').value;
    var myProductScope = document.getElementById('hiddenProductScope').value;
    var myCultureName = document.getElementById('hiddenCultureName').value;
    var myShowDateRange = document.getElementById('hiddenShowDateRange').value;
    var myShowCLCheckBox = document.getElementById('hiddenShowCruiseLineCheckBoxList').value;
    
    document.getElementById('ucQSManager_hidIsDurationRange').value = 0;
    document.getElementById('ddlMonthTo').value = '';
    document.getElementById('ddlDay').value = '';
    document.getElementById('ddlDayTo').value = '';
    document.getElementById('btnSearch').disabled=false; 
    if (document.getElementById('hiddenCultureName').value=='fr-CA') {
        document.getElementById('btnSearch').setAttribute('class', 'Filter-update-result-fr');
        document.getElementById('btnSearch').setAttribute('className', 'Filter-update-result-fr');    
    } else {
        document.getElementById('btnSearch').setAttribute('class', 'buttonResultsSearchUpdateenca'); 
        document.getElementById('btnSearch').setAttribute('className', 'buttonResultsSearchUpdateenca');    
    }

    
    CallLists_CruiseSearch(myWebID, myProductScope, myCultureName, myShowDateRange, myShowCLCheckBox);
}

function removeElement(parentDiv, childDiv) {
    if (childDiv != parentDiv) {
        if (document.getElementById(childDiv)) {
            document.getElementById(parentDiv).removeChild(document.getElementById(childDiv));
        }
    }
}

function refreshSelectedCLList() {
    var myHid = document.getElementById('ucCruiseline_hidCruiselines');
    var i=0;
    
    for (i=0; i < selcounter; i++) {
        removeElement('divCruiselineSel', 'clsel' + (i + 1));
    }
    
    selcounter=myHid.value.split('@').length;
    for(i=0; i < selcounter; i++) {
        myValue=myHid.value.split('@')[i];
        addToSelectedList(myValue, myValue, i);
    }
}

/*Raz generic function for filter element list refresh*/
function refreshSelectedListGeneric(aHiddenElementID, aSelControlID, aType, aCounterSel, aWarningMessageEn, aWarningMessageFr) {
    var myCounterSel = 0;
    var myHid = document.getElementById(aHiddenElementID);
    var i = 0;
    var myText = '';

    if (document.getElementById(aCounterSel).value != '') {
        myCounterSel = document.getElementById(aCounterSel).value;
    }

    document.getElementById(aSelControlID).innerHTML = '';
    myCounterSel = myHid.value.split('@').length;

    for (i = 0; i < myCounterSel; i++) {
        myValue = myHid.value.split('@')[i];
        myText = myValue;
        if (aSelControlID == 'divDurationFilterSel') {
            if (document.getElementById('hiddenCultureName').value == 'fr-CA') {
                switch (myValue) {
                    case '1': { myText = '1 - 2 Jours'; myValue = '1'; break; }
                    case '1-2': { myText = '1 - 2 Jours'; myValue = '1'; break; }
                    case '2': { myText = '3 - 5 Jours'; myValue = '2'; break; }
                    case '3-5': { myText = '3 - 5 Jours'; myValue = '2'; break; }
                    case '3': { myText = '6 - 9 Jours'; myValue = '3'; break; }
                    case '6-9': { myText = '6 - 9 Jours'; myValue = '3'; break; }
                    case '4': { myText = '10 - 14 Jours'; myValue = '4'; break; }
                    case '10-14': { myText = '10 - 14 Jours'; myValue = '4'; break; }
                    case '5': { myText = '15+  Jours'; myValue = '5'; break; }
                    case '15+': { myText = '15+  Jours'; myValue = '5'; break; }
                    default: { myText = myValue; break; }
                };
            } else {
                switch (myValue) {
                    case '1': { myText = '1 - 2 Nights'; myValue = '1'; break; }
                    case '1-2': { myText = '1 - 2 Nights'; myValue = '1'; break; }
                    case '2': { myText = '3 - 5 Nights'; myValue = '2'; break; }
                    case '3-5': { myText = '3 - 5 Nights'; myValue = '2'; break; }
                    case '3': { myText = '6 - 9 Nights'; myValue = '3'; break; }
                    case '6-9': { myText = '6 - 9 Nights'; myValue = '3'; break; }
                    case '4': { myText = '10 - 14 Nights'; myValue = '4'; break; }
                    case '10-14': { myText = '10 - 14 Nights'; myValue = '4'; break; }
                    case '5': { myText = '15+  Nights'; myValue = '5'; break; }
                    case '15+': { myText = '15+  Nights'; myValue = '5'; break; }
                    default: { myText = myValue; break; }
                };
            }
        } else if (aSelControlID == 'divCategoryFilterSel') {
            if (myText == 'Popular') {
                myText = 'Popular Cruises';
            } else if (myText == 'Luxury') {
                myText = 'Luxury Cruises';
            } else if (myText == 'River') {
                myText = 'River Cruises';
            }
        }
        addToSelectedListGeneric(aHiddenElementID, aSelControlID, aCounterSel, aType, myText, myValue, i, aWarningMessageEn, aWarningMessageFr);
    }
    document.getElementById(aCounterSel).value = myCounterSel;
}

function addToSelectedList(text, value, index) {
    var myOption = document.createElement('input');
    var myLabel = document.createElement('label');
    var myDiv = document.createElement('div');
    
    myOption.type = 'checkbox';
    myLabel.innerHTML = text;
    myOption.value = value;
    myDiv.setAttribute('id','clsel' + (index + 1));
    myOption.onclick = function(){
        addRemoveHiddenCruiseLine(this, value);
    };     

    myDiv.appendChild(myOption);
    myDiv.appendChild(myLabel);
    myDiv.appendChild(document.createElement("br"))
    
    if (text!='') {
        document.getElementById('divCruiselineSel').appendChild(myDiv);
    }
    myOption.checked=true;
}

/*raz generic method*/
function addToSelectedListGeneric(aHiddenElementID, aSelControlID, aCounter, aType, text, value, index, aWarningMessageEn, aWarningMessageFr) {
    var myOption = document.createElement('input');
    var myLabel = document.createElement('label');
    var myDiv = document.createElement('div');

    myOption.type = aType;
    myOption.setAttribute('style', 'visibility:hidden; height:0px; width:0px; display:none;');
    myLabel.innerHTML = text;
    myOption.value = value;
    myDiv.setAttribute('id', aSelControlID + (index + 1));
    myOption.onclick = function () {
        addRemoveHiddenGeneric(aHiddenElementID, aSelControlID, aCounter, aType, this, value, aWarningMessageEn, aWarningMessageFr);
    };
    
    myDiv.appendChild(myOption);
    myDiv.appendChild(myLabel);
    myDiv.appendChild(document.createElement("br"))
   
    if (text != '') {
        document.getElementById(aSelControlID).appendChild(myDiv);
    }
    myOption.checked = true;
}

function addRemoveHiddenCruiseLine(myChk, value) {
    var myHid = document.getElementById('ucCruiseline_hidCruiselines');
    var myLen = myHid.value.split('@').length;

    if (myChk.checked==true) {
        if (myLen==6) {
            if(document.getElementById('hiddenCultureName').value=='fr-CA') {
                alert("A maximum of 5 cruise lines may be selected.");
            } else {
                alert("A maximum of 5 cruise lines may be selected.");
            }
            
            myChk.checked=false;
        } else {
            myHid.value = myHid.value + value + '@';
            refreshSelectedCLList();
            RefreshCruiseSearchLists();  
        }
    } else {
        myHid.value = myHid.value.replace(value + '@', '');
        refreshSelectedCLList();
        RefreshCruiseSearchLists();
    }
}

/*raz generic method*/
function addRemoveHiddenGeneric(aHiddenElementID, aSelControlID, aCounter, aType, myChk, value, aWarningMessageEn, aWarningMessageFr) {
    var myHid = document.getElementById(aHiddenElementID);
    var myLen = myHid.value.split('@').length;

    if (aType != 'radio') {
        if (myChk.checked == true) {
            if (myLen == 6) {
                if (document.getElementById('hiddenCultureName').value == 'fr-CA') {
                    alert(aWarningMessageFr);
                } else {
                    alert(aWarningMessageEn);
                }

                myChk.checked = false;
            } else {
                myHid.value = myHid.value + value + '@';
                //refreshSelectedListGeneric(aHiddenElementID, aSelControlID, aType, aCounter, aWarningMessageEn, aWarningMessageFr);
                RefreshCruiseSearchListsNew();
            }
        } else {
            myHid.value = myHid.value.replace(value + '@', '');
            //refreshSelectedListGeneric(aHiddenElementID, aSelControlID, aType, aCounter, aWarningMessageEn, aWarningMessageFr);
            RefreshCruiseSearchListsNew();
        }
    } else {
        myHid.value = '';
        myHid.value = value;
        RefreshCruiseSearchListsNew();
    }
    
}

function addToTypesList(text, value) {
    var myHid = document.getElementById('ucCruiseline_hidCruiselines');
    var myOption = document.createElement('input');
    var myLabel = document.createElement('label');
    var myDiv = document.createElement('div');

    myOption.type = 'checkbox';
    myLabel.innerHTML = text;
    myOption.value = value;
    myDiv.setAttribute('id','clnumber' + (counter + 1));
    myOption.onclick = function(){
        addRemoveHiddenCruiseLine(this, value);
    };    
    myOption.setAttribute('style','height: 12px; width: 12px;');
    
    myDiv.appendChild(myOption);
    myDiv.appendChild(myLabel);
    myDiv.appendChild(document.createElement("br"))
    
    document.getElementById('divCruiselineAll').appendChild(myDiv);
    
    if (myHid.value.indexOf(value)!=-1) {
        myOption.checked=true;
    }

}

/*Raz generic for filter sub-element population*/
function addToTypesListGeneric(
                        aHiddenElementID,
                        aControlID,
                        aCounter,
                        aText,
                        aValue,
                        aControlType,
                        aWarningMessageEn, 
                        aWarningMessageFr, 
                        aIsGroupHeader, 
                        aIsTopOfCol) {

    var myHid = document.getElementById(aHiddenElementID);
    var myOption = document.createElement('input');
    var myLabel = document.createElement('label');
    var myGroupHeader = document.createElement('label');
    var myDiv = document.createElement('div');
    var myDiv2 = document.createElement('div');
    var myDiv3 = document.createElement('div');
    var myBR = document.createElement('br');
    var myCounter = 0;

    myBR.setAttribute("class", "clear");
    myDiv2.setAttribute("style", "clear: both; height: 10px; font-size: 1px;");
    myDiv3.setAttribute("class", "v10");
    if (aIsGroupHeader == 0) {
        myOption.type = aControlType;
        if (aControlType=='radio') {
            myOption.setAttribute('name', aHiddenElementID + 'RBG');
        }
        if (aText == 'Popular') {
            myLabel.innerHTML = 'Popular Cruises';
        } else if (aText == 'Luxury') {
            myLabel.innerHTML = 'Luxury Cruises';
        } else if (aText == 'River') {
            myLabel.innerHTML = 'River Cruises';
        } else {
            myLabel.innerHTML = aText;
        }
        
        myOption.value = aValue;
        myCounter = 1 + parseInt(document.getElementById(aCounter).value);
        myDiv.setAttribute('id', aControlID + (myCounter));
        document.getElementById(aCounter).value = myCounter.toString();

        if (aControlType != 'radio') {
            myOption.onclick = function () {
                addRemoveHiddenGeneric(aHiddenElementID, aControlID, aCounter, aControlType, this, aValue, aWarningMessageEn, aWarningMessageFr);

                if (document.getElementById('divCruiseLineFilterMainControl').style.display == 'block') {
                    document.getElementById('chkCFAnyCruiseLine').checked = false;
                }
            };
        } else {
            myOption.onclick = function () {
                addRemoveHiddenGeneric(aHiddenElementID, aControlID, aCounter, aControlType, this, aValue, aWarningMessageEn, aWarningMessageFr);
            };
        }
        
        myOption.setAttribute("class", "filter-p-mainContent-dp-box-1-text");

        myDiv.appendChild(myOption);
        myDiv.appendChild(myLabel);
        myDiv.appendChild(myBR);
        if (aText == 'Any Cruise Length') {
            myDiv.appendChild(myDiv3);
        }

        document.getElementById(aControlID).appendChild(myDiv);

        if (myHid.value.indexOf(aValue) != -1) {
            myOption.checked = true;
        }
    } else {
        myGroupHeader.innerHTML = aText;
        myGroupHeader.style.fontWeight = "bold";
        myGroupHeader.style.marginTop = "8px";
        if (aIsTopOfCol != 1) {
            document.getElementById(aControlID).appendChild(myDiv2);
        }
        document.getElementById(aControlID).appendChild(myGroupHeader);
        myDiv.appendChild(myBR);
    }
}


function PopulateCheckboxList(aXML) {
    var myHid = document.getElementById('ucCruiseline_hidCruiselines');
    var myXML;
    var i;
    
    for (i=counter;i>0;i--) {
        removeElement('divCruiselineAll', 'clnumber' + (i + 1))
    }
    counter = 0;
        
    myXML = aXML[0].getElementsByTagName("item");
    for(var i=0; i < myXML.length; i++) {
        if (myXML[i].getAttribute("text") != "") {
            if (myXML[i].getAttribute("text") != "Any Cruise line" && myXML[i].getAttribute("text") != "Toutes les compagnies") {
                counter++;
                addToTypesList(myXML[i].getAttribute("text"), myXML[i].getAttribute("value"));
            }
        }
    }
    selcounter=myHid.value.split('@').length;
    if (selcounter==1) {
        if(document.getElementById('hiddenCultureName').value=='fr-CA') {
            document.getElementById('resAllCL').innerHTML='Toutes les compagnies';
        } else {
            document.getElementById('resAllCL').innerHTML='Any Cruise Line';
        }
    } else {
        if(document.getElementById('hiddenCultureName').value=='fr-CA') {
            document.getElementById('resAllCL').innerHTML='Compagnie de croisières';
        } else {
            document.getElementById('resAllCL').innerHTML='Cruise Line';
        }    
    }
    refreshSelectedCLList();
}


/*Raz trying to create a generic function for filter objects population*/
function PopulateCheckboxListGeneric(aXML,
                                     aHiddenElementID,
                                     aSelControlID,
                                     aAllControlID,
                                     aCounterSel,
                                     aCounterAll,
                                     aControlType,
                                     aWarningMessageEn,
                                     aWarningMessageFr,
                                     aColumnLength, 
                                     aTextAnyValEn, 
                                     aTextAnyValFr) {

    var myHid = document.getElementById(aHiddenElementID);
    var myCounterSel = 0;
    var myCounterAll = 0;
    var myGroup = "";
    var myGroupfr = "";
    var myXML;
    var i;
    var myColCounter = 1;
    var myColNumber = 0;
    var myTable = document.createElement('table');
    var myTableRow = document.createElement('tr');
    var myTableCol = document.createElement('td');
    var myIsNewColumn = 0;
    var myDummyText = '';
    var myStartNewColumnOfThings = false;
    var myInt = 1;
    var myFirstPass = 0;
    var myAvailableVals = '';
    var myHiddenVals = '';

    var myAnyDeparturePortCheckBox = document.createElement('input');
    myAnyDeparturePortCheckBox.setAttribute('id', 'chkDPAnyDeparturePort');
    myAnyDeparturePortCheckBox.setAttribute('type', 'checkbox');
    myAnyDeparturePortCheckBox.setAttribute('onclick', 'ResetToAnyDeparturePort();');

    var myAnyDeparturePortText = document.createElement('label');
    

    var myInputDiv = document.createElement('div');
    var mySpaceDiv = document.createElement('div');
    var myTextDiv = document.createElement('div');

    mySpaceDiv.setAttribute('class', 'v10');
    myTextDiv.setAttribute('class', 'filter-p-title-bold');
    myTextDiv.setAttribute('style', 'padding-left:0px;');
    if (document.getElementById('hiddenCultureName').value == 'fr-CA') {
        myTextDiv.innerHTML = 'Sélectionnez jusqu’à 5.';
        myAnyDeparturePortText.innerHTML = 'Tous les ports';
    } else {
        myTextDiv.innerHTML = 'Select up to 5.';
        myAnyDeparturePortText.innerHTML = 'Any Departure Port';
    }
    
    
    myInputDiv.appendChild(myAnyDeparturePortCheckBox);
    myInputDiv.appendChild(myAnyDeparturePortText);

    if (document.getElementById(aCounterSel).value != '') {
        myCounterSel = document.getElementById(aCounterSel).value;
    }

    if (document.getElementById(aCounterAll).value != '') {
        myCounterAll = document.getElementById(aCounterAll).value;
    }

    document.getElementById(aAllControlID).innerHTML = '<DIV id=' + aAllControlID + '0></DIV>';
    myCounterAll = 0;
    myXML = aXML[0].getElementsByTagName("item");

    myTableCol.setAttribute('id', aAllControlID + 'T' + myColNumber);
    myTableCol.setAttribute('style', 'text-align: left; vertical-align: top; white-space:nowrap; padding-right:15px;');
    myTableRow.setAttribute('id', aAllControlID+'TRows');
    myTable.setAttribute('id', aAllControlID + 'T');

    if (aTextAnyValEn == 'Any Port') {
        myTableCol.appendChild(myInputDiv);
        myTableCol.appendChild(mySpaceDiv);
        myTableCol.appendChild(myTextDiv);
        if (document.getElementById('ucDeparturePorts_hidDeparturePorts').value == '') {
            myAnyDeparturePortCheckBox.checked = true;
        } else {
            myAnyDeparturePortCheckBox.checked = false;
        }
    }
    var mytb = document.createElement('tbody');
    myTableRow.appendChild(myTableCol);
    mytb.appendChild(myTableRow);
    myTable.appendChild(mytb);

    document.getElementById(aAllControlID).appendChild(myTable);

    for (var i = 0; i < myXML.length; i++) {
        //grouping if any

        if (myColCounter == aColumnLength) {
            myColNumber++;
            myTableCol = document.createElement('td');
            myTableCol.setAttribute('id', aAllControlID + 'T' + myColNumber);
            //myTableCol.setAttribute('style', 'text-align: left; vertical-align: top; white-space:nowrap; padding-right:15px;background: yellow');

            myTableCol.style.textAlign = "left";
            myTableCol.style.verticalAlign = "top";
            myTableCol.style.whiteSpace = "nowrap";
            myTableCol.style.paddingRight = "15px";
            

            document.getElementById(aAllControlID + 'TRows').appendChild(myTableCol);
            myIsNewColumn = 1;
            myColCounter = 1;
        }

        if (myXML[i].getAttribute("group") != null && myXML[i].getAttribute("group") != "") {
            if (myGroup != myXML[i].getAttribute("group")) {
                myGroup = myXML[i].getAttribute("group");
                if (document.getElementById('hiddenCultureName').value == 'fr-CA') {
                    switch (myGroup) {
                        case 'United States': { myGroupfr = 'États-Unis'; break; }
                        case 'Latin America/ Caribbean': { myGroupfr = 'Amérique Latine/ Caraïbes'; break; }
                        case 'Latin America': { myGroupfr = 'Amérique Latine'; break; }
                        case 'Asia': { myGroupfr = 'Asie'; break; }
                        case 'Africa': { myGroupfr = 'Afrique'; break; }
                        case 'Australia & South Pacific': { myGroupfr = 'L\'Australie & Pacifique Sud'; break; }
                        case 'Other': { myGroupfr = 'Autres'; break; }
                        case 'Arctic / Antarctic': { myGroupfr = 'Arctique / Antarctique'; break; }
                        case 'Australia / New Zealand': { myGroupfr = 'Australie / Nouvelle-Zélande'; break; }
                        case 'Bermuda': { myGroupfr = 'Bermudes'; break; }
                        case 'Canada / New England': { myGroupfr = 'Canada / Nouvelle-Angleterre'; break; }
                        case 'Caribbean': { myGroupfr = 'Caraïbes'; break; }
                        case 'Central America': { myGroupfr = 'Amérique centrale'; break; }
                        case 'Hawaii': { myGroupfr = 'Hawaï'; break; }
                        case 'Mexico': { myGroupfr = 'Mexique'; break; }
                        case 'Middle East': { myGroupfr = 'Moyen-Orient'; break; }
                        case 'Pacific Coastal': { myGroupfr = 'Côte du Pacifique'; break; }
                        case 'Panama Canal': { myGroupfr = 'Canal de Panama'; break; }
                        case 'Repositioning': { myGroupfr = 'Replacer'; break; }
                        case 'South America': { myGroupfr = 'Amérique du Sud'; break; }
                        case 'South Pacific': { myGroupfr = 'Pacifique du Sud'; break; }
                        case 'Transatlantic': { myGroupfr = 'Transatlantique'; break; }
                        case 'World Cruises': { myGroupfr = 'Croisières mondiales'; break; }
                        default: { myGroupfr = myGroup; break; }
                    };
                }
                var isPopular = true;
                if (document.getElementById('ucCategoryFilter_hidCategoryFilter')) {
                    if (document.getElementById('ucCategoryFilter_hidCategoryFilter').value == 'River' ||
                        document.getElementById('ucCategoryFilter_hidCategoryFilter').value == 'Luxury') {
                        isPopular = false;
                    }
                } else {
                    var myCategory = '';
                    if (document.getElementById("rblCategory")) {
                        myCategory = GetRadioButtonValue("rblCategory");
                    } else if (document.getElementById("rblCategoryFilter")) {
                        myCategory = GetRadioButtonValue("rblCategoryFilter");
                    } else {
                        myCategory = '';
                    }
                    if (myCategory == 'River' || myCategory == 'Luxury') {
                        isPopular = false;
                    }
                }

                
                if ((myGroup == 'Other Destinations' ||
                (myGroup == 'Africa' && aHiddenElementID == 'ucDeparturePorts_hidDeparturePorts' && isPopular) ||
                (myGroup == 'Canada' && isPopular) ||
                myGroup == 'Holland America Line'  ||
                (myGroup == 'Afrique' && aHiddenElementID == 'ucDeparturePorts_hidDeparturePorts')) 
                && document.getElementById('hiddenRunSite').value != 'CSC') {
                    myColNumber++;
                    myTableCol = document.createElement('td');
                    myTableCol.setAttribute('id', aAllControlID + 'T' + myColNumber);
                    myTableCol.setAttribute('style', 'text-align: left; vertical-align: top; white-space:nowrap; padding-right:15px;');
                    document.getElementById(aAllControlID + 'TRows').appendChild(myTableCol);
                    myIsNewColumn = 1;
                    myColCounter = 1;
                }
                if (myIsNewColumn == 1 || (myColNumber == 0 && myFirstPass == 0)) {
                    myInt = 1;
                    myFirstPass = 1;
                } else {
                    myInt = 0;
                }
                if (document.getElementById('hiddenCultureName').value == 'fr-CA') {
                    addToTypesListGeneric(aHiddenElementID, aAllControlID + 'T' + myColNumber, aCounterAll, myGroupfr, myGroupfr, aControlType, aWarningMessageEn, aWarningMessageFr, 1, myInt);
                } else {
                    addToTypesListGeneric(aHiddenElementID, aAllControlID + 'T' + myColNumber, aCounterAll, myGroup, myGroup, aControlType, aWarningMessageEn, aWarningMessageFr, 1, myInt);
                }
                if (myIsNewColumn == 1) {
                    myIsNewColumn = 0;
                }
            }
        }
        //checkbox/radiobutton list
        if (myXML[i].getAttribute("text") != "") {
            if (myXML[i].getAttribute("text") != aTextAnyValEn && myXML[i].getAttribute("text") != aTextAnyValFr
            && myXML[i].getAttribute("text").indexOf("Choose") == -1 ) {
                if (myIsNewColumn == 1) {
                    if (myGroup != '') {
                        if (document.getElementById('hiddenCultureName').value == 'fr-CA') {
                            addToTypesListGeneric(aHiddenElementID, aAllControlID + 'T' + myColNumber, aCounterAll, myGroupfr + ' (Plus de choix)', myGroupfr + ' (Plus de choix)', aControlType, aWarningMessageEn, aWarningMessageFr, 1, 1);   
                        } else {
                            addToTypesListGeneric(aHiddenElementID, aAllControlID + 'T' + myColNumber, aCounterAll, myGroup + ' (continued)', myGroup + ' (continued)', aControlType, aWarningMessageEn, aWarningMessageFr, 1, 1);
                        }
                    } else {
                        if (document.getElementById('hiddenCultureName').value == 'fr-CA') {
                            addToTypesListGeneric(aHiddenElementID, aAllControlID + 'T' + myColNumber, aCounterAll, myGroupfr + 'Plus de choix', myGroupfr + 'Plus de choix', aControlType, aWarningMessageEn, aWarningMessageFr, 1, 1);
                        } else {
                            addToTypesListGeneric(aHiddenElementID, aAllControlID + 'T' + myColNumber, aCounterAll, myGroup + 'Continued', myGroup + 'Continued', aControlType, aWarningMessageEn, aWarningMessageFr, 1, 1);
                        }
                        
                    }
                    myIsNewColumn = 0;
                    myCounterAll++;
                }
                if (document.getElementById('hiddenCultureName').value == 'fr-CA') {
                    if (myXML[i].getAttribute("text") != 'Any Ship') {
                        if (myXML[i].getAttribute("text") != 'Any Length') {
                            myDummyText = myXML[i].getAttribute("text");
                        } else {
                            myDummyText = 'Toutes les durées';
                        }
                    } else {
                        myDummyText = 'N’importe quel navire';
                    }
                } else {
                    if (myXML[i].getAttribute("text") != 'Any Ship') {
                        if (myXML[i].getAttribute("text") != 'Any Length') {
                            myDummyText = myXML[i].getAttribute("text");
                        } else {
                            myDummyText = 'Any Cruise Length';
                        }
                    } else {
                        myDummyText = 'Any Cruise Ship';
                    }
                }
                
                addToTypesListGeneric(aHiddenElementID, aAllControlID + 'T' + myColNumber, aCounterAll, myDummyText, myXML[i].getAttribute("value"), aControlType, aWarningMessageEn, aWarningMessageFr, 0, 0);
                if (aControlType == 'checkbox') {
                    myAvailableVals = myAvailableVals + myXML[i].getAttribute("value") + '@';
                }
                myFirstPass = 1;
                myCounterAll++;
            }
        }

        myColCounter++;
    }

    myCounterSel = myHid.value.split('@').length;

    if (aControlType == 'checkbox') {
        myHiddenVals = myHid.value;
        for (i = 0; i < myCounterSel + 1; i++) {
            if (myAvailableVals.indexOf(myHid.value.split('@')[i]) == -1) {
                myHiddenVals = myHiddenVals.replace(myHid.value.split('@')[i] + '@', '');
            }
        }
        myHid.value = myHiddenVals;
    }
    
    document.getElementById(aCounterSel).value = myHid.value.split('@').length;
    refreshSelectedListGeneric(aHiddenElementID, aSelControlID, aControlType, aCounterSel, aWarningMessageEn, aWarningMessageFr);
}



function createXMLHttpRequest() {
    var xmlDoc;    
    if(window.XMLHttpRequest) {    
        try {     
            xmlDoc = new XMLHttpRequest();    
        } catch(e) {     
            xmlDoc = false;    
        }    
    } else if(window.ActiveXObject) {     
        try {       
            var xmlDoc=new ActiveXObject("Microsoft.XMLHTTP");
        } catch(e) {       
            xmlDoc = false;     
        }    
    }   
    return xmlDoc;  
}

function PopulateCalendarArray(aXML) {
    var myXML = aXML[0].getElementsByTagName("month");
    var myYearMonth;
    var myDepartureDays;
    
    calendarMonth1 = '';
    calendarMonth2 = '';
    
    for(var i=0; i < myXML.length; i++) {
        myYearMonth = myXML[i].getElementsByTagName("yearmonth")[0].firstChild.data;
        myDepartureDays = myXML[i].getElementsByTagName("departuredays")[0].firstChild.data;
        if (myYearMonth==calendarMonthYear2) {
            calendarMonth2 = myDepartureDays;
        }
        if (myYearMonth==calendarMonthYear1) {
            calendarMonth1 = myDepartureDays;
        }
    } 
}

function PopulateDDL(aXML, aDDL, aHidden) {
    var myXML;
    var x = 0;
    var y = 0;
    var myGroup = "";
    var isSubGroup = false;
    
    aHidden.value = ""
    aDDL.options.length = 0;
    myXML = aXML[0].getElementsByTagName("item");
    for(var i=0; i < myXML.length; i++) {
        if (myXML[i].getAttribute("group") != null && myXML[i].getAttribute("group") != "") {
            if (myGroup != myXML[i].getAttribute("group")) {
                isSubGroup = true;
                myGroup = myXML[i].getAttribute("group");
                aDDL.options[x] = new Option(myGroup, "");
                aDDL.options[x].setAttribute("style", "font-weight:bold;");
                x++;
            }
        }
        
        if (myXML[i].getAttribute("text") != "") {
            if (isSubGroup == true) {
                //aDDL.options[x] = new Option("└─ " + myXML[i].getAttribute("text"), myXML[i].getAttribute("value"));
                aDDL.options[x] = new Option("\xa0\xa0\xa0\xa0\xa0" + myXML[i].getAttribute("text"), myXML[i].getAttribute("value"));
            }
            else {
                aDDL.options[x] = new Option(myXML[i].getAttribute("text"), myXML[i].getAttribute("value"));
            }
            
            if (myXML[i].getAttribute("selected") == "1") {
                aDDL.selectedIndex = x;
                aHidden.value = myXML[i].getAttribute("value");
            }
            x++;
        }
    }
}

function PopulateTravellersDDL(aAdultValue, aChildValue) {
    var maxValue;
    var ddlAdult;
    var ddlChild;
    
    maxValue = 5 - aChildValue;
    ddlAdult = document.getElementById("ddlAdult");
    ddlAdult.options.length = 0;
    
    for(a = 1; a <= maxValue; a++) {
        ddlAdult.options[a - 1] = new Option(a, a);
    }
    
    ddlAdult.value = aAdultValue
    document.getElementById("hiddenAdult").value = aAdultValue
    
    maxValue = 5 - aAdultValue
    ddlChild = document.getElementById("ddlChild");
    ddlChild.options.length = 0;
    
    for(c = 0; c <= maxValue; c++) {
        ddlChild.options[c] = new Option(c, c);
    }
    
    ddlChild.value = aChildValue
    document.getElementById("hiddenChild").value = aChildValue
}

function DecodeXMLText(aText) {
    var myText;
    var lt = new RegExp("&lt;", "g");
    var gt = new RegExp("&gt;", "g");
        
    myText = aText;
    myText=myText.replace(lt,"<");
    myText=myText.replace(gt,">");
    
    return myText;    
}

function init() {
    divSearch.useService("search.asmx?WSDL", "svcSearch");
}

function CallLists_Home(aCultureName) {
    
    req.open('POST', 'Search.asmx/Home');
    req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');                           
    req.onreadystatechange = PopulateLists_Home;    
    req.send('aDestination=' + document.forms[0].ddlDestination.value +
                '&aMonth=' + document.forms[0].ddlMonth.value + 
                '&aCruiseLine=' + document.forms[0].ddlCruiseLine.value + 
                '&aShip=' + document.forms[0].ddlShip.value + 
                '&aCultureName=' + aCultureName);    
}

function CallLists_Home_New(aCultureName) {
    
    req.open('POST', 'Search.asmx/Home_New');
    req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');                           
    req.onreadystatechange = PopulateLists_Home_New;    
    req.send('aDestination=' + document.forms[0].ddlDestination.value +
                '&aMonth=' + document.forms[0].ddlMonth.value + 
                '&aCruiseLine=' + document.forms[0].ddlCruiseLine.value + 
                '&aDuration=' + document.forms[0].ddlDuration.value + 
                '&aCultureName=' + aCultureName);    
}

function PopulateLists_Home() {
    var myFilterSearch, myError, myText;
    
    if(req.readyState == 4){    
        myText = DecodeXMLText(req.responseText);
        
        if (window.ActiveXObject) {
            var xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
            xmlDoc.async="false";
            xmlDoc.loadXML(myText);
        } else {
            var parser=new DOMParser();
            var xmlDoc=parser.parseFromString(myText,"application/xml");        
        }
                
        myFilterSearch = xmlDoc.getElementsByTagName("home");
        myError = myFilterSearch[0].getElementsByTagName("error");
        
        if (myError[0].getAttribute('errortext') != '') {
            alert(myError[0].getAttribute('errortext'));
        } else {    
            PopulateDDL(myFilterSearch[0].getElementsByTagName("destination"), document.forms[0].ddlDestination, document.forms[0].hiddenDestination);
            PopulateDDL(myFilterSearch[0].getElementsByTagName("month"), document.forms[0].ddlMonth, document.forms[0].hiddenMonthYearFrom);
            PopulateDDL(myFilterSearch[0].getElementsByTagName("cruiseline"), document.forms[0].ddlCruiseLine, document.forms[0].hiddenCruiseline);
            PopulateDDL(myFilterSearch[0].getElementsByTagName("ship"), document.forms[0].ddlShip, document.forms[0].hiddenShip);
        }        
    }        
}

function PopulateLists_Home_New() {
    var myFilterSearch, myError, myText;
    
    if(req.readyState == 4){    
        myText = DecodeXMLText(req.responseText);
        
        if (window.ActiveXObject) {
            var xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
            xmlDoc.async="false";
            xmlDoc.loadXML(myText);
        } else {
            var parser=new DOMParser();
            var xmlDoc=parser.parseFromString(myText,"application/xml");        
        }
                
        myFilterSearch = xmlDoc.getElementsByTagName("home");
        myError = myFilterSearch[0].getElementsByTagName("error");
        
        if (myError[0].getAttribute('errortext') != '') {
            alert(myError[0].getAttribute('errortext'));
        } else {    
            PopulateDDL(myFilterSearch[0].getElementsByTagName("destination"), document.forms[0].ddlDestination, document.forms[0].hiddenDestination);
            PopulateDDL(myFilterSearch[0].getElementsByTagName("month"), document.forms[0].ddlMonth, document.forms[0].hiddenMonth);
            PopulateDDL(myFilterSearch[0].getElementsByTagName("cruiseline"), document.forms[0].ddlCruiseLine, document.forms[0].hiddenCruiseline);
            PopulateDDL(myFilterSearch[0].getElementsByTagName("duration"), document.forms[0].ddlDuration, document.forms[0].hiddenDuration);
        }        
    }        
}

function CallLists_ReviewHome(aCultureName) {

    req.open('POST', 'Search.asmx/ReviewHome');
    req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');                           
    req.onreadystatechange = PopulateLists_ReviewHome;    
    req.send('&aCruiseLine=' + document.forms[0].ddlCruiseline.value + 
                '&aShip=' + document.forms[0].ddlShip.value + 
                '&aCultureName=' + aCultureName);  
               
}

function PopulateLists_ReviewHome() {
    var myFilterSearch, myError, myText;
    if(req.readyState == 4) { 
        myText = DecodeXMLText(req.responseText);
    
        if (window.ActiveXObject) {
            var xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
            xmlDoc.async="false";
            xmlDoc.loadXML(myText);
        } else {
            var parser=new DOMParser();
            var xmlDoc=parser.parseFromString(myText,"application/xml");            
        }    
 
        myFilterSearch = xmlDoc.getElementsByTagName("reviewhome");
        myError = myFilterSearch[0].getElementsByTagName("error");
        
        if (myError[0].getAttribute('errortext') != '') {
            alert(myError[0].getAttribute('errortext'));
        } else {    
            
            PopulateDDL(myFilterSearch[0].getElementsByTagName("ship"), document.forms[0].ddlShip, document.forms[0].hiddenShip);
        }
    
    }
}

function CheckDateFormat(aDate) {
    myDate = new Date(aDate);
    mnth = aDate.substring(0, 2);
    mm = myDate.getMonth() + 1;
    dd = myDate.getDate();
    yyyy = myDate.getFullYear();

    myChDt = new Date(mm + '/' + dd + '/' + yyyy);

    if (myChDt.getMonth() + 1 == mm &&
            myChDt.getDate() == dd &&
            myChDt.getFullYear() == yyyy &&
            mnth < 13 && 
            yyyy > 1990 &&
            yyyy < 2020) {

        return 1
    } else {
        return 0
    }

}

function CallLists_CruiseSearch(aWebID, aProductScope, aCultureName, aShowDateRangeCalendar, aShowCruiselineCheckBoxList) {
    CallLists_CruiseSearch(aWebID, aProductScope, aCultureName, aShowDateRangeCalendar, aShowCruiselineCheckBoxList, "")
}

function CallLists_CruiseSearch(aWebID, aProductScope, aCultureName, aShowDateRangeCalendar, aShowCruiselineCheckBoxList, aSubdomain) {    
    var myDayRangeDay = '';
    var myCruiselines = '';
    var myDeparturePorts = '';
    var myShip = '';
    var mySubDestination = '';
    var myDuration = '';
    var myDestination = '';
    var mm, dd, yyyy;
    var myMonth = '';
    var myDDLMonthTo = '';
    var myDDLDay = '';
    var myDDLDayTo = '';

    var myDDLDayRange = '';
    var myTXTDayRangeDay = '';

    var myPromotion = '';
    var myCategory = '';

    if (document.getElementById("ucQSManager_hidPromotion")) {
        myPromotion = document.getElementById("ucQSManager_hidPromotion").value;
    }

    if (document.getElementById("txtDayRangeDay")) {
        myTXTDayRangeDay = document.getElementById("txtDayRangeDay");
        myDayRangeDay = myTXTDayRangeDay.value;
    }
    if (document.getElementById("ucDropDownCalendar_txtDayRangeDay")) {
        myTXTDayRangeDay = document.getElementById("ucDropDownCalendar_txtDayRangeDay");
        myDayRangeDay = myTXTDayRangeDay.value;
    }
    
    if (document.getElementById("ddlDayRange")) {
        myDDLDayRange = document.getElementById("ddlDayRange").value;
    }
    if (document.getElementById("ucDropDownCalendar_ddlDayRange")) {
        myDDLDayRange = document.getElementById("ucDropDownCalendar_ddlDayRange").value;
    }

    if (myDayRangeDay != '') {
        if (CheckDateFormat(myDayRangeDay) == 1) {
            myDayRangeDay = myDate.format("MMM dd yyyy");
            myTXTDayRangeDay.value = myDate.format("MM/dd/yyyy");
            searchDate = myTXTDayRangeDay.value;
        } else {
            myDayRangeDay = "Jan 01 1900";
        }
    } else {
        if (aShowCruiselineCheckBoxList != 'True') {
            myDDLMonthTo = document.getElementById("ddlMonthTo").value;
            myDDLDay = document.getElementById("ddlDay").value;
            myDDLDayTo = document.getElementById("ddlDayTo").value;
        }
    }

    if (aShowCruiselineCheckBoxList == 'True') {
        myMonth = '';
    } else {
        myMonth = document.getElementById("ddlMonth").value;
    }

    if (aShowDateRangeCalendar == 'True') {
        myMonth = '';
    }

    
        if (document.getElementById("ucCruiseLineFilter_hidCruiseLineFilter")) {
            myCruiselines = document.getElementById("ucCruiseLineFilter_hidCruiseLineFilter").value;
        } else {
            if (aShowCruiselineCheckBoxList == 'True') {
                if (document.getElementById("ucCruiseline_hidCruiselines")) {
                    myCruiselines = document.getElementById("ucCruiseline_hidCruiselines").value;
                }
            } else {
                myCruiselines = document.getElementById("ddlCruiseLine").value;
            }
        }
    

    if (document.getElementById("ucDeparturePorts_hidDeparturePorts")) {
        myDeparturePorts = document.getElementById("ucDeparturePorts_hidDeparturePorts").value;
    }else {
        myDeparturePorts = document.getElementById("ddlDeparturePort").value;
    }

    
    if (document.getElementById("ucShipsFilter_hidShipsFilter")) {
        myShip = document.getElementById("ucShipsFilter_hidShipsFilter").value;
    } else {
        myShip = document.getElementById("ddlShip").value;
    }

    if (document.getElementById("ucItineraryFilter_hidItineraryFilter")) {
        mySubDestination = document.getElementById("ucItineraryFilter_hidItineraryFilter").value;
    } else {
        mySubDestination = document.getElementById("ddlSubDestination").value;
    }

    if (document.getElementById("ucDurationFilter_hidDurationFilter")) {
        myDuration = document.getElementById("ucDurationFilter_hidDurationFilter").value;
    } else {
        myDuration = document.getElementById("ddlDuration").value;
    }

    if (document.getElementById("ucDestinationFilter_hidDestinationFilter")) {
        myDestination = document.getElementById("ucDestinationFilter_hidDestinationFilter").value;
    } else {
        myDestination = document.getElementById("ddlDestination").value;
    }

    if (document.getElementById("ucCategoryFilter_hidCategoryFilter")) {
        myCategory = document.getElementById("ucCategoryFilter_hidCategoryFilter").value;
    } else {
        if (document.getElementById("rblCategory")) {
            myCategory = GetRadioButtonValue("rblCategory");
        } else if (document.getElementById("rblCategoryFilter")) {
            myCategory = GetRadioButtonValue("rblCategoryFilter");
        } else {
            myCategory = '';
        }
    }

    req.open('POST', 'Search.asmx/CruiseSearch');
    req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');                           
    req.onreadystatechange = PopulateLists_CruiseSearch;
    req.send('&aDestination=' + myDestination +
                '&aSubDestination=' + mySubDestination +
                '&aDeparturePort=' + myDeparturePorts +
                '&aDuration=' + myDuration + 
                '&aMonth=' + myMonth + 
                '&aMonthTo=' + myDDLMonthTo + 
                '&aDay=' + myDDLDay +
                '&aDayTo=' + myDDLDayTo +
                '&aDayRange=' + myDDLDayRange +
                '&aDayRangeDay=' + myDayRangeDay +
                '&aCruiseLine=' + myCruiselines +
                '&aShip=' + myShip +
                '&aPromotion=' + myPromotion +
                '&aWebID=' + aWebID +
                '&aProductScope=' + aProductScope +
                '&aCultureName=' + aCultureName +
                '&aCategory=' + myCategory +
                '&aSubdomain=' + aSubdomain);

}

function GetRadioButtonValue(id) {

    var radio = document.getElementById(id);
    var inputs = radio.getElementsByTagName("input");
    var rvalue = '';
    for (var j = 0; j < inputs.length; j++) {

        if (inputs[j].checked) { rvalue = inputs[j].value; }

           

    }
    return rvalue

}

function SetRadioButtonValue(id, value) {

    var radio = document.getElementById(id);
    var inputs = radio.getElementsByTagName("input");
    
    for (var j = 0; j < inputs.length; j++) {

        if (inputs[j].value == value) {
            inputs[j].checked = true;
        } else {
            inputs[j].checked = false;
        }



    }
    

}

function InitLists_CruiseSearch(aWebID, aProductScope, aCultureName, aDestination, aSubDestination, aDeparturePort, aDuration, aMonth, aMonthTo, aDay, aDayTo, aCruiseLine, aShip, aPromotion, aDayRange, aDayRangeDay, aCategory) {
    InitLists_CruiseSearch(aWebID, aProductScope, aCultureName, aDestination, aSubDestination, aDeparturePort, aDuration, aMonth, aMonthTo, aDay, aDayTo, aCruiseLine, aShip, aPromotion, aDayRange, aDayRangeDay, aCategory, "")
}

function InitLists_CruiseSearch(aWebID, aProductScope, aCultureName, aDestination, aSubDestination, aDeparturePort, aDuration, aMonth, aMonthTo, aDay, aDayTo, aCruiseLine, aShip, aPromotion, aDayRange, aDayRangeDay, aCategory, aSubdomain) {
    var divAddOptions = document.getElementById('divAddOptions');
    
    if (divAddOptions != null) {
        if (aShip != '' || aSubDestination != '' || aDeparturePort != '' || aPromotion != '') {
            divAddOptions.style.display = ''
        }
    }
    myDate = new Date(aDayRangeDay);
    aDayRangeDay = myDate.format("MMM dd yyyy");
    searchDate = myDate.format("MM/dd/yyyy");

    req.open('POST', 'Search.asmx/CruiseSearch');
    req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');                           
    req.onreadystatechange = PopulateLists_CruiseSearch;    
    req.send('&aDestination=' + aDestination +
                '&aSubDestination=' + aSubDestination + 
                '&aDeparturePort=' + aDeparturePort + 
                '&aDuration=' + aDuration + 
                '&aMonth=' + aMonth + 
                '&aMonthTo=' + aMonthTo + 
                '&aDay=' + aDay +
                '&aDayTo=' + aDayTo +
                '&aDayRange=' + aDayRange +
                '&aDayRangeDay=' + aDayRangeDay +
                '&aCruiseLine=' + aCruiseLine + 
                '&aShip=' + aShip + 
                '&aPromotion=' + aPromotion +
                '&aWebID=' + aWebID +
                '&aProductScope=' + aProductScope +
                '&aCultureName=' + aCultureName + 
                '&aCategory=' + aCategory +
                '&aSubdomain=' + aSubdomain);     
}



function InitLists_CruiseSearchTake2() {
    var divAddOptions = document.getElementById('divAddOptions');
    
    if (divAddOptions != null) {
        if (document.getElementById("hiddenShip").value != '' || document.getElementById("hiddenSubDestination").value != '' || document.getElementById("hiddenDeparturePort").value != '' || document.getElementById("hiddenPromotion").value != '') {
            divAddOptions.style.display = ''
        }
    }
    
    req.open('POST', 'Search.asmx/CruiseSearch');
    req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');                           
    req.onreadystatechange = PopulateCruisesFound_CruiseSearch;    
    req.send('&aDestination=' + document.getElementById("ucQSManager_hidDestination").value +
                '&aSubDestination=' + document.getElementById("ucQSManager_hidSubDestination").value + 
                '&aDeparturePort=' + document.getElementById("ucQSManager_hidDeparturePort").value + 
                '&aDuration=' + document.getElementById("hiddenDuration").value + 
                '&aMonth=' + document.getElementById("hiddenMonth").value + 
                '&aMonthTo=' + document.getElementById("hiddenMonthTo").value + 
                '&aDay=' + document.getElementById("hiddenDay").value +
                '&aDayTo=' + document.getElementById("hiddenDayTo").value +
                '&aCruiseLine=' + document.getElementById("ucQSManager_hidCruiseLine").value + 
                '&aShip=' + document.getElementById("ucQSManager_hidShip").value + 
                '&aPromotion=' + document.getElementById("hiddenPromotion").value +
                '&aWebID=' + document.getElementById("hiddenWebID").value +
                '&aProductScope=' + document.getElementById("hiddenProductScope").value +
                '&aCultureName=' + document.getElementById("hiddenCultureName").value + '&aCategory=' +
                '&aSubdomain=' + document.getElementById("hiddenSubdomain").value);    
}

function PopulateCruisesFound_CruiseSearch() {
    var myFilterSearch, myError, myText, spnResult;
    var myIsDurationRange, myPseudoDuration;
    
    if(req.readyState == 4) { 
        myText = DecodeXMLText(req.responseText);         
        
        if (window.ActiveXObject) {
            var xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
            xmlDoc.async="false";
            xmlDoc.loadXML(myText);
        } else {
            var parser=new DOMParser();
            var xmlDoc=parser.parseFromString(myText,"application/xml");            
        }
        
        myFilterSearch = xmlDoc.getElementsByTagName("cruisesearch");
        myError = myFilterSearch[0].getElementsByTagName("error");
        
        if (myError[0].getAttribute('errortext') != '') {
            alert(myError[0].getAttribute('errortext'));
        } else {            
                    
            spnResult = document.getElementById("spnSearchResults")

            if (spnResult != null) {
                spnResult.innerHTML = myFilterSearch[0].getElementsByTagName("count")[0].getAttribute("number");
                
                document.getElementById("spnResultsReturned").innerHTML = myFilterSearch[0].getElementsByTagName("count")[0].childNodes[0].childNodes[0].nodeValue;
            }
        }
    }
}

function PopulateLists_CruiseSearch() {
    var myFilterSearch, myError, myText, spnResult;
    var myIsDurationRange, myPseudoDuration;
    var myTXTDayRangeDay = '';
    
    if(req.readyState == 4) { 
        myText = DecodeXMLText(req.responseText);         
        
        if (window.ActiveXObject) {
            var xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
            xmlDoc.async="false";
            xmlDoc.loadXML(myText);
        } else {
            var parser=new DOMParser();
            var xmlDoc=parser.parseFromString(myText,"application/xml");            
        }
        
        myFilterSearch = xmlDoc.getElementsByTagName("cruisesearch");
        myError = myFilterSearch[0].getElementsByTagName("error");
        
        if (myError[0].getAttribute('errortext') != '') {
            alert(myError[0].getAttribute('errortext'));
        } else {

            if (document.getElementById("txtDayRangeDay")) {
                myTXTDayRangeDay = document.getElementById("txtDayRangeDay");
            }
            if (document.getElementById("ucDropDownCalendar_txtDayRangeDay")) {
                myTXTDayRangeDay = document.getElementById("ucDropDownCalendar_txtDayRangeDay");
            }

            if (myFilterSearch[0].getElementsByTagName("count")[0].getAttribute("number") == '0' &&
                myTXTDayRangeDay.value != resultDate &&
                myTXTDayRangeDay.value != '__/__/____') {

                myDayRangeDay = myTXTDayRangeDay.value;
                if (resultDate == 'NaN/NaN/NaN') {
                    if (document.getElementById('hiddenCultureName')) {
                        if (document.getElementById('hiddenCultureName').value == 'fr-CA') { resultDate = ' Tous les mois'; }
                        else { resultDate = ' Any Month'; }
                    } else {
                        resultDate = ' Any Month';
                    }
                }

                myTXTDayRangeDay.value = resultDate;

//                if (CheckDateFormat(myDayRangeDay) == 0) {
//                    alert("Please use the following format: mm/dd/yyyy");
//                } else {
                    alert("No cruises could be found for this date.");
//                }

                PopulateCalendarArray(calendarXML);
                SetCalendarFromTextbox();

            } else {
                resultDate = searchDate;

                calendarXML = myFilterSearch[0].getElementsByTagName("calendar");
                PopulateCalendarArray(calendarXML);

                spnResult = document.getElementById("spnSearchResults")
                if (spnResult != null) {
                    spnResult.innerHTML = myFilterSearch[0].getElementsByTagName("count")[0].getAttribute("number");

                    document.getElementById("spnResultsReturned").innerHTML = myFilterSearch[0].getElementsByTagName("count")[0].childNodes[0].childNodes[0].nodeValue;
                }
               
                if (document.getElementById("ddlDestination")) {

                    // 1. Where would you like to go and for how long?
                    PopulateDDL(myFilterSearch[0].getElementsByTagName("destination"), document.getElementById("ddlDestination"), document.getElementById("hiddenDestination"));
                    PopulateDDL(myFilterSearch[0].getElementsByTagName("subdestination"), document.getElementById("ddlSubDestination"), document.getElementById("hiddenSubDestination"));
                    PopulateDDL(myFilterSearch[0].getElementsByTagName("departureport"), document.getElementById("ddlDeparturePort"), document.getElementById("hiddenDeparturePort"));
                    PopulateDDL(myFilterSearch[0].getElementsByTagName("duration"), document.getElementById("ddlDuration"), document.getElementById("hiddenDuration"));

                    if ((document.getElementById("ucQSManager_hidIsDurationRange") != null) && (document.getElementById("ucQSManager_hidDuration") != null)) {
                        myIsDurationRange = document.getElementById("ucQSManager_hidIsDurationRange").value;
                        myPseudoDuration = document.getElementById("ucQSManager_hidDuration").value;
                        if (myIsDurationRange > 0) {
                            document.getElementById("hiddenDuration").value = 0;
                            document.getElementById("ddlDuration").selectedIndex = 0;
                            InitLists_CruiseSearchTake2();
                        }
                    }

                    // 2. When would you like to go?
                    PopulateDDL(myFilterSearch[0].getElementsByTagName("month"), document.getElementById("ddlMonth"), document.getElementById("hiddenMonth"));

                    // 3. Do you prefer a specific cruise line?
                    PopulateDDL(myFilterSearch[0].getElementsByTagName("cruiseline"), document.getElementById("ddlCruiseLine"), document.getElementById("hiddenCruiseline"));
                    PopulateDDL(myFilterSearch[0].getElementsByTagName("ship"), document.getElementById("ddlShip"), document.getElementById("hiddenShip"));

                    if (document.getElementById('ucCruiseline_hidCruiselines')) {
                        PopulateCheckboxList(myFilterSearch[0].getElementsByTagName("cruiseline"));
                    }

                } else {

                    if (document.getElementById('ucDeparturePorts_hidDeparturePorts')) {
                        if (document.getElementById('hiddenRunSite').value == 'CSC') {
                            PopulateCheckboxListGeneric(myFilterSearch[0].getElementsByTagName("departureport"), 'ucDeparturePorts_hidDeparturePorts',
                                                'divDeparturePortsSel', 'divDeparturePortsAll',
                                                'hidDeparturePortsCounterSel', 'hidDeparturePortsCounterALL',
                                                'checkbox',
                                                "A maximum of 5 departure ports may be selected.", "Sélectionnez jusqu’à 5 ports de départ.",
                                                50,
                                                "Any Port", "Tous les ports");
                        } else {
                            PopulateCheckboxListGeneric(myFilterSearch[0].getElementsByTagName("departureport"), 'ucDeparturePorts_hidDeparturePorts',
                                                'divDeparturePortsSel', 'divDeparturePortsAll',
                                                'hidDeparturePortsCounterSel', 'hidDeparturePortsCounterALL',
                                                'checkbox',
                                                "A maximum of 5 departure ports may be selected.", "Sélectionnez jusqu’à 5 ports de départ.",
                                                27,
                                                "Any Port", "Tous les ports");
                        }
                    }


                    if (document.getElementById('ucShipsFilter_hidShipsFilter')) {
                        if (document.getElementById('hiddenRunSite').value == 'CSC') {
                            PopulateCheckboxListGeneric(myFilterSearch[0].getElementsByTagName("ship"), 'ucShipsFilter_hidShipsFilter',
                                                'divShipsFilterSel', 'divShipsFilterAll',
                                                'hidShipsFilterCounterSel', 'hidShipsFilterCounterALL',
                                                'radio',
                                                "", "",
                                                50,
                                                "", "");
                        } else {
                            PopulateCheckboxListGeneric(myFilterSearch[0].getElementsByTagName("ship"), 'ucShipsFilter_hidShipsFilter',
                                                'divShipsFilterSel', 'divShipsFilterAll',
                                                'hidShipsFilterCounterSel', 'hidShipsFilterCounterALL',
                                                'radio',
                                                "", "",
                                                33,
                                                "", "");
                        }
                    }

                    if (document.getElementById('ucItineraryFilter_hidItineraryFilter')) {
                        PopulateCheckboxListGeneric(myFilterSearch[0].getElementsByTagName("subdestination"), 'ucItineraryFilter_hidItineraryFilter',
                                                'divItineraryFilterSel', 'divItineraryFilterAll',
                                                'hidItineraryFilterCounterSel', 'hidItineraryFilterCounterALL',
                                                'radio',
                                                "", "",
                                                14,
                                                "", "");
                    }

                    if (document.getElementById('ucDurationFilter_hidDurationFilter')) {
                        PopulateCheckboxListGeneric(myFilterSearch[0].getElementsByTagName("duration"), 'ucDurationFilter_hidDurationFilter',
                                                'divDurationFilterSel', 'divDurationFilterAll',
                                                'hidDurationFilterCounterSel', 'hidDurationFilterCounterALL',
                                                'radio',
                                                "", "",
                                                18,
                                                "", "");
                    }

                    if (document.getElementById('ucDestinationFilter_hidDestinationFilter')) {
                        PopulateCheckboxListGeneric(myFilterSearch[0].getElementsByTagName("destination"), 'ucDestinationFilter_hidDestinationFilter',
                                                'divDestinationFilterSel', 'divDestinationFilterAll',
                                                'hidDestinationFilterCounterSel', 'hidDestinationFilterCounterALL',
                                                'radio',
                                                "", "",
                                                18,
                                                "", "");
                    }

                    if (document.getElementById('ucCruiseLineFilter_hidCruiseLineFilter')) {
                        PopulateCheckboxListGeneric(myFilterSearch[0].getElementsByTagName("cruiseline"), 'ucCruiseLineFilter_hidCruiseLineFilter',
                                                'divCruiseLineFilterSel', 'divCruiseLineFilterAll',
                                                'hidCruiseLineFilterCounterSel', 'hidCruiseLineFilterCounterALL',
                                                'checkbox',
                                                "A maximum of 5 cruise lines may be selected.", "Sélectionnez jusqu’à 5 compagnies de croisières.",
                                                18,
                                                "Any Cruise line", "Toutes les compagnies");


                    }

                    
                    

                }

            }
        }
    }
}

function SetRadioButtonCategory(id) {

    var radio = document.getElementById(id);
    var inputs = radio.getElementsByTagName("input");
    var rvalue = '';
    for (var j = 0; j < inputs.length; j++) {

        if (inputs[j].checked) { rvalue = inputs[j].value; }



    }

    if (id == 'rblCategory') {
        var rbnCategory = document.getElementById("rbn" + rvalue + "Cruise")
        if (rbnCategory) {
            rbnCategory.checked = true;
            document.getElementById("btnUpdateGrid").click();
        }
    } else {
        SetRadioButtonValue('rblCategory', rvalue);
    }

    return rvalue

}

