﻿
function chkHost() {
    var strUrl = window.location;
    var addLink = "";
    if (strUrl.toString().indexOf("localhost") >= 0) {
        addLink = "/1800hotels";
    }
    if (strUrl.toString().indexOf("vdevappserver") >= 0) {
        addLink = "/1800hotels";
    }
     return addLink;
}

/* ------------------- Function to load children/infants ages ------------------- */

function updateChildAges(childSelectName, infantSelectName, childAgesArray) {

    var defaultChildAges = [
        [0, 1],
        [2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
    ];
    if (childAgesArray == null) {
        childAgesArray = defaultChildAges;
    }
    var childSelect = document.getElementById("MainContent_" + childSelectName);
    var infantSelect = document.getElementById("MainContent_" + infantSelectName);
    var childAgeHeading = document.getElementById("ChildAgeTextCell");
    if (childSelect != null && infantSelect != null) {
        var childCount = (childSelect.value - 0) + (infantSelect.value - 0);
        if (childAgeHeading != null) {
            if (childCount > 0) {
                childAgeHeading.style.display = "";
                document.getElementById("lblChild").style.display = "";
            } else {
                childAgeHeading.style.display = "none";
                document.getElementById("lblChild").style.display = "none";
            }
        }
        for (i = 0; i < 100; i++) {
            var title = document.getElementById("childAgeTitle" + i);
            var select = document.getElementById("childAgeSelect" + i);

            if (title == null && select == null) {
                break;
            }
            if (i < childCount) {
                if (title != null) title.style.display = "";
                if (select != null) select.style.display = "";
                updateAgeSelect(select, i < (childSelect.value - 0) ? childAgesArray[1] : childAgesArray[0]);
            } else {
                if (title != null) title.style.display = "none";
                if (select != null) select.style.display = "none";
            }
        }
    }
}

function updateAgeSelect(selectElement, ageArray) {
    var currentItem = selectElement[selectElement.selectedIndex].value;
    selectElement.length = 0;
    var i = 0;
    for (var i = 0; i < ageArray.length; i++) {
        selectElement.options[selectElement.options.length] = new Option(ageArray[i] + " Years", ageArray[i]);
        if (currentItem == ageArray[i]) {
            selectElement.selectedIndex = i;
        }
    }
}

/* ------------------- function to validate depart date ------------------- */

function validateDepartDate(strDate) {
    if (isDateValid(document.getElementById("MainContent_" + strDate).value) == false) {
        alert('Enter valid Departure Date (dd/mm/yyyy)');
        document.getElementById("MainContent_" + strDate).value = '';
        document.getElementById('MainContent_DepartDat').focus();
    } else {
        document.getElementById('MainContent_dura').selectedIndex = 0;
        document.getElementById('MainContent_ReturnDat').value = "";
    }
}

function isDateValid(dtStr) {
    var daysInMonth = DaysArray(12);
    var pos1 = dtStr.indexOf(dtCh);
    var pos2 = dtStr.indexOf(dtCh, pos1 + 1);
    var strDay = dtStr.substring(0, pos1);
    var strMonth = dtStr.substring(pos1 + 1, pos2);
    var strYear = dtStr.substring(pos2 + 1);
    strYr = strYear;
    if (strDay.charAt(0) == "0" && strDay.length > 1) strDay = strDay.substring(1);
    if (strMonth.charAt(0) == "0" && strMonth.length > 1) strMonth = strMonth.substring(1);
    for (var i = 1; i <= 3; i++) {
        if (strYr.charAt(0) == "0" && strYr.length > 1) strYr = strYr.substring(1);
    }
    month = parseInt(strMonth)
    day = parseInt(strDay)
    year = parseInt(strYr)
    if (pos1 == -1 || pos2 == -1) {
        return false;
    }
    if (strMonth.length < 1 || month < 1 || month > 12) {
        return false;
    }
    if (strDay.length < 1 || day < 1 || day > 31 || (month == 2 && day > daysInFebruary(year)) || day > daysInMonth[month]) {
        return false;
    }
    if (strYear.length != 4 || year == 0 || year < minYear || year > maxYear) {
        return false;
    }
    if (dtStr.indexOf(dtCh, pos2 + 1) != -1 || isInteger(stripCharsInBag(dtStr, dtCh)) == false) {
        return false;
    }
    return true;
}

/* ------------------- Check depart date for nights ------------------- */

function departDateCheck() {
    if (document.getElementById('MainContent_DepartDat').value == '') {
        alert('\n     -  Please enter Departure Date first');
        document.getElementById('MainContent_DepartDat').focus();
        document.getElementById('MainContent_dura').selectedIndex = 0;

    }
    else if (document.getElementById('MainContent_depa').value == 'any'){
        alert('\n      Please select Depart From ');
        document.getElementById('MainContent_depa').focus();
        document.getElementById('MainContent_dura').selectedIndex = 0;
    }
}

/* ------------------- Code for Page Validation and Submission ------------------- */

function validateFields() {

    missinginfo = "";
    if (document.getElementById('MainContent_depa').value == 'any') {
        missinginfo += '\n     -  Please select Depart From option';
        document.getElementById('MainContent_depa').focus();
    }
    if (document.getElementById('MainContent_dest').value == 'any') {
        missinginfo += '\n     -  Please select Country';
        document.getElementById('MainContent_dest').focus();
    } else if (document.getElementById('MainContent_dest').value != 0) {

        if (document.getElementById('MainContent_txtRegion').value == 0) {
            missinginfo += '\n     -  Please select Region';
            document.getElementById('MainContent_txtRegion').focus();
        }
        if (document.getElementById('MainContent_txtResort').value == 0) {
            missinginfo += '\n     -  Please select Resort';
            document.getElementById('MainContent_txtResort').focus();
        }

    }
    if (document.getElementById('MainContent_DepartDat').value == '') {
        missinginfo += '\n     -  Please enter Departure Date';
        document.getElementById('MainContent_DepartDat').focus();
    }

    if ((document.getElementById('MainContent_dura').value == '') || (isNaN(document.getElementById('MainContent_dura').value))) {
        missinginfo += '\n     -  Please enter No. of Nights (numeric value only)';
    }

    if (missinginfo != "") {
        missinginfo = "\nYou must fill in the following fields correctly:\n" + missinginfo + "\n\nPlease re-enter your information and submit it again. Thank You!";
        alert(missinginfo);
        return;
    } else {

        if (document.getElementById('MainContent_dest').value == 0) {
            document.getElementById('dest').value = "any";
            document.getElementById('desti').value = "any";
        } else {

            document.getElementById('desti').value = document.getElementById('MainContent_dest').value;
            document.getElementById('dest').value = document.getElementById('MainContent_des').value;

        }

        document.getElementById('dep').value = document.getElementById('MainContent_depa').value;
        document.getElementById('DepartDate').value = document.getElementById('MainContent_DepartDat').value;
        document.getElementById('dur').value = document.getElementById('MainContent_dura').value;
        document.getElementById('ReturnDate').value = document.getElementById('MainContent_ReturnDat').value;
        document.getElementById('adults').value = document.getElementById('MainContent_adult').value;
        document.getElementById('searchChildren').value = document.getElementById('MainContent_searchChild').value;
        document.getElementById('searchInfants').value = document.getElementById('MainContent_searchInfant').value;

        var splitDate = document.getElementById('MainContent_DepartDat').value;
        var DayMonth = splitDate.split("/");
        document.getElementById('checkInDateDay').value = DayMonth[0];
        if (DayMonth[1] < 10) {
            document.getElementById('checkInDateMonth').value = DayMonth[1].replace(/0/i, "");
        } else {
            document.getElementById('checkInDateMonth').value = DayMonth[1];
        }
        document.getElementById('checkInDateYear').value = DayMonth[2];
        document.getElementById('duration').value = document.getElementById('MainContent_dura').value;
        document.getElementById('departureOutLocation').value = document.getElementById('MainContent_depa').value;
        document.getElementById("holiday_date_day").value = splitDate.substring(0, 2);
        document.getElementById("holiday_date_month").value = splitDate.substring(3, 5);
        document.getElementById("holiday_date_year").value = splitDate.substring(6, 10);
        var chkID = document.getElementById('MainContent_resortID').value;
        document.getElementById("resort.id").value = chkID;
        document.getElementById("pax").value = document.getElementById("MainContent_adult").value + "," + document.getElementById("MainContent_searchChild").value;

        if (document.getElementById('dur').value < 11) {
            document.getElementById('dur').value = 7;
        } else if (document.getElementById('dur').value > 10) {
            document.getElementById('dur').value = 14;
        }


        /* ------------------- If search request not to All Countries ------------------- */
        if (document.getElementById('MainContent_dest').value != 0) {

            var displayBoth = true;
            var destArr = new Array('ACE', 'ADB', 'AGP', 'ALC', 'BJV', 'FAO', 'LPA', 'MIR', 'PMI', 'REU', 'TFS');

            for (x in destArr) {
                if (document.getElementById('dest').value == destArr[x] && document.getElementById('dep').value != 'DUB') {
                    displayBoth = false;
                }
            }

            if (document.getElementById("MainContent_chkWinterDate").value == "True") {

                if (document.getElementById("MainContent_inoutMSG").value == "") {

                    setCookies();
                    openWindow('http://www.budgettravel.ie/sun-holidays-cheap-flights-special-packages/sun-holidays-cheap-flights-special-packages-search.asp?fuseaction=home.results_summary' + g4goParameters(), 'BTPopupWinAlr', 800, 600);
                    window.open("" +    chkHost() + "/includes/submit_AlltriaPackage.aspx?action=" + ajaxGetMissingInfo("alltriaLink", document.getElementById('dep').value, document.getElementById('desti').value) + alltriaParameters(), '_new');
                  
                   // document.forms[0].action = "/includes/submit_AlltriaPackage.aspx?action=" + ajaxGetMissingInfo("alltriaLink", document.getElementById('dep').value, document.getElementById('desti').value) + alltriaParameters();
                   // document.forms[0].submit();

                } else {
                    alert(document.getElementById("MainContent_inoutMSG").value);
                    document.getElementById('MainContent_DepartDat').value = '';
                    document.getElementById('MainContent_dura').selectedIndex = 0;
                    document.getElementById('MainContent_ReturnDat').value = 0;
                }
            } else {

                $(function () {
                    window.open("sun-holidays-cheap-flights-special-packages/tabs/msgWinter.aspx", "WinterTime", "width=444,height=586");
                    document.getElementById('MainContent_DepartDat').value = '';
                    document.getElementById('MainContent_dura').selectedIndex = 0;
                    document.getElementById('MainContent_ReturnDat').value = 0;
                    document.getElementById('MainContent_chkWinterDate').value = '';
                });

            }

        }

        /* ------------------- Request to All Countries ------------------- */

        else {

            document.forms[0].action = 'http://www.budgettravel.ie/sun-holidays-cheap-flights-special-packages/sun-holidays-cheap-flights-special-packages-search.asp?fuseaction=home.results_summary';
            document.forms[0].submit();

             }
    }

}


/* ------------------- Function for Popup Window ------------------- */

function openWindow(url, wname, width, height) {
    popupWin = window.open(url, wname, "height=" + height + ",width=" + width + "location = 0, status = 1, resizable = 0, scrollbars=1, toolbar = 0");
    popupWin.opener.focus();
}


/* ------------------- Function build goforgo parameters ------------------- */

function g4goParameters() {
    var strparameters = '';
    strparameters = strparameters + "&dep=" + document.getElementById('dep').value;
    strparameters = strparameters + "&dest=" + document.getElementById('dest').value;
    strparameters = strparameters + "&dur=" + document.getElementById('dur').value;
    strparameters = strparameters + "&holiday_date_day=" + document.getElementById('holiday_date_day').value;
    strparameters = strparameters + "&holiday_date_month=" + document.getElementById('holiday_date_month').value;
    strparameters = strparameters + "&holiday_date_year=" + document.getElementById('holiday_date_year').value;
    strparameters = strparameters + "&pax=" + document.getElementById('pax').value;
    strparameters = strparameters + "&action=home.results_summary";
    strparameters = strparameters + "&Submit3=Search";
    //strparameters = strparameters + "&DepartDate=" + document.getElementById('DepartDate').value;
    g4gopamrameters = strparameters;
    return g4gopamrameters;

}


/* ------------------- Function build Alltria parameters ------------------- */

function alltriaParameters() {
    var strparameters = '';
    strparameters = strparameters + "&dep=" + document.getElementById('dep').value;
    strparameters = strparameters + "&dest=" + document.getElementById('dest').value;
    strparameters = strparameters + "&adults=" + document.getElementById('adults').value;
    strparameters = strparameters + "&checkInDateDay=" + document.getElementById('checkInDateDay').value;
    strparameters = strparameters + "&checkInDateMonth=" + document.getElementById('checkInDateMonth').value;
    strparameters = strparameters + "&checkInDateYear=" + document.getElementById('checkInDateYear').value;
    strparameters = strparameters + "&duration=" + document.getElementById('duration').value;
    strparameters = strparameters + "&ResortID=" + document.getElementById('resort.id').value;
    strparameters = strparameters + "&departureOutLocation=" + document.getElementById('departureOutLocation').value;
    strparameters = strparameters + "&DepartDate=" + document.getElementById('DepartDate').value;
    g4gopamrameters = strparameters;
    return g4gopamrameters;

} /* ------------------- Cookies Settings ------------------- */

function setCookies() {
    var duration = 1;
    $.cookie("MainContent_DepartDat", $("#MainContent_DepartDat").val(), {
        path: '/',
        expires: duration
    });
}

function getCookies() {
    if ($.cookie("MainContent_DepartDat") != null && $.cookie("MainContent_DepartDat") != "") $("#MainContent_DepartDat").val($.cookie("MainContent_DepartDat")).trigger("keyup");
}

/* ------------------- Submit page onClick Event ------------------- */

function onClickSubmit(dep, desti, region, resort, fromDate, duration, fromPrice, adults, sunSkiSwitcher) {



    document.getElementById('dep').value = dep;
    document.getElementById('DepartDate').value = fromDate;
    document.getElementById('adults').value = adults;
    var splitDate = fromDate;
    var DayMonth = splitDate.split("/");
    var RDate = ReturnDate(DayMonth[1] + "/" + DayMonth[0] + "/" + DayMonth[2], duration);
    document.getElementById('checkInDateDay').value = DayMonth[0];
    if (DayMonth[1] < 10) {
        document.getElementById('checkInDateMonth').value = DayMonth[1].replace(/0/i, "");
    } else {
        document.getElementById('checkInDateMonth').value = DayMonth[1];
    }
    document.getElementById('checkInDateYear').value = DayMonth[2];
    document.getElementById('duration').value = duration;
    document.getElementById('departureOutLocation').value = dep;
    document.getElementById("holiday_date_day").value = splitDate.substring(0, 2);
    document.getElementById("holiday_date_month").value = splitDate.substring(3, 5);
    document.getElementById("holiday_date_year").value = splitDate.substring(6, 10);
    document.getElementById("pax").value = adults + "," + document.getElementById("searchChildren").value;
    document.getElementById('ReturnDate').value = RDate;
    document.getElementById("CompanyName").value = "1800hotels";
    document.getElementById("startIndex").value = 0;
    document.getElementById('dest').value = ajaxGetMissingInfo("destinationCode", dep, "", region);
    document.getElementById("resort.id").value = ajaxGetMissingInfo("matchID", "", "", region, resort);

    if (duration < 11) {
        document.getElementById('dur').value = 7;
    } else if (duration > 10) {
        document.getElementById('dur').value = 14;
    }


    openWindow('http://www.budgettravel.ie/sun-holidays-cheap-flights-special-packages/sun-holidays-cheap-flights-special-packages-search.asp?fuseaction=home.results_summary' + g4goParameters(), 'BTPopupWinAlr', 800, 600);
    document.forms[0].action = "http://www.budgettravel.ie/submit_AlltriaPackage.asp?action=http://www.budgettravel.ie/" + ajaxGetMissingInfo("alltriaLink", dep, desti) + "/holiday/Search.do;jsessionid=895D4BDC857DFD393069191B64146CE1.CT1" + alltriaParameters();
    document.forms[0].submit();

}


/* ------------------- Return Date ------------------- */

function ReturnDate(dat, days) {
    var d = new Date(dat);
    var ddd;
    var mm = ['00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12']
    var ddays = ['00', '01', '02', '03', '04', '05', '06', '07', '08', '09']
    var dd = new setday(d);
    var tomor = new Date(dd.y, dd.m, dd.d + parseInt(days));
    if (tomor.getDate() < 10) {
        ddd = ddays[tomor.getDate()];
    } else {
        ddd = tomor.getDate();
    }
    return ddd + "/" + (mm[tomor.getMonth() + 1]) + "/" + tomor.getFullYear();
}

function setday(obj) {
    this.y = obj.getFullYear();
    this.m = obj.getMonth();
    this.d = obj.getDate();
}


/* ------------------- function to retrieve missing information ------------------- */

function ajaxGetMissingInfo(selection, dep, dest, regionID, resortID, dur, fromDate, returnDate) {
    var htmlResponse;
   
    $.Tache.Get({
        url: "" + chkHost() + "/includes/Sun_Holidays_PopulateLists.aspx",
        data: "selectionType=" + selection + "&dep=" + dep + "&dest=" + dest + "&regionID=" + regionID + "&resortID=" + resortID + "&duration=" + dur + "&fromDate=" + fromDate + "&returnDate=" + returnDate,
        async: false,
        success: function (data) {
            htmlResponse = data;
        }
    });
    return htmlResponse;
}
