﻿jQuery.fn.quickSearch = function(options) {
    return this.each(function() {
        var settings = jQuery.extend({
            ddlAdultCount: null,
            ddlChildrenCount: null,
            ddlInfantCount: null,
            ddlDuration: null,
            petFree: null,
            featuresetMask: null,
            petCount: null,
            ddlCountry: null,
            hfQuickSearchDefaultQueryString: null,
            shouldClearData: false,
            datePicker: null,
            searchError: null,
            isAboutPages: false,
            isProductDetailPage: false
        }, options);

        var searchBtn = $(this);

        searchBtn.click(function(e) {
            //Build deep link
            var selectedDate = settings.datePicker.datepicker("getDate");
            var dayValue = 0;
            var monthValue = 0;
            var yearValue = 0;
            if (selectedDate != null) {
                dayValue = selectedDate.getDate();
                monthValue = selectedDate.getMonth() + 1;
                yearValue = selectedDate.getFullYear();
            }
            var regionCode = "";
            var adultCount = settings.ddlAdultCount.get(0).value;
            var childrenCount = settings.ddlChildrenCount.get(0).value;
            var infantCount = settings.ddlInfantCount.get(0).value;
            var petFree = settings.petFree[0].checked;
            var duration = settings.ddlDuration.get(0).value.replace(" Nights", "");
            if (!settings.isProductDetailPage) {
                if (settings.ddlSubRegion.get(0).value != null && settings.ddlSubRegion.get(0).value != '')
                { regionCode = settings.ddlSubRegion.get(0).value; }
                else if (settings.ddlRegion.get(0).value != null && settings.ddlRegion.get(0).value != '')
                { regionCode = settings.ddlRegion.get(0).value; }
            }
            var featureSetMask = 0;
            featureSetMask = settings.featuresetMask;

            var queryStringToAppend = settings.hfQuickSearchDefaultQueryString.get(0).value;
            var petCount = 0;
            petCount = settings.petCount.get(0).value;

            if (!settings.isProductDetailPage && regionCode.length == 0) {
                settings.searchError.html("Error - Please select a region");
                settings.searchError.css("display", "block");
                return false;
            } else if (selectedDate == null) { // NO DATE SEARCH
                //PageMethods.SaveQuickSearchEvent(adultCount55, adultCount, childrenCount, infantCount, petCount, duration, regionCode, "0-0-0");
                if (settings.isProductDetailPage) {
                    this.href = "../Scotland/ProductDetailPage.aspx?" + queryStringToAppend + "&ISPF=" + petFree + "&FMASK=" + featureSetMask;
                }
                else if (settings.isAboutPages) {
                    this.href = "../SearchResultsPage.aspx?ADCT=" + adultCount + "&CHCT=" + childrenCount + "&INCT=" +
                    infantCount + "&DURTN=" + duration + "&RCODE=" + regionCode + "&ISPF=" + petFree + "&PETCT=" + petCount + (queryStringToAppend.length > 0 ? "&" + queryStringToAppend : "");
                }
                else {
                    this.href = "../Scotland/SearchResultsPage.aspx?ADCT=" + adultCount + "&CHCT=" + childrenCount + "&INCT=" +
                    infantCount + "&DURTN=" + duration + "&FMASK=" + featureSetMask + "&RCODE=" + regionCode + "&ISPF=" + petFree + "&PETCT=" + petCount + (queryStringToAppend.length > 0 ? "&" + queryStringToAppend : "");
                }
            }
            else { // DATE SEARCH
                //PageMethods.SaveQuickSearchEvent(adultCount55, adultCount, childrenCount, infantCount, petCount, duration, regionCode,  dayValue + "-" + monthValue + "-" + yearValue);

                if (settings.isProductDetailPage) {
                    this.href = "../Scotland/ProductDetailPage.aspx?" + queryStringToAppend +"&ADCT=" + adultCount + "&CHCT=" + childrenCount + "&INCT=" + infantCount + "&DURTN=" + duration + "&SDATE=" + dayValue + "-" + monthValue +
                "-" + yearValue + "&ISPF=" + petFree + "&FMASK=" + featureSetMask + "&PETCT=" + petCount;
                }
                else if (settings.isAboutPages) {
                    this.href = "../SearchResultsPage.aspx?ADCT=" + adultCount + "&CHCT=" + childrenCount + "&INCT=" +
                infantCount + "&DURTN=" + duration + "&RCODE=" + regionCode + "&SDATE=" + dayValue + "-" + monthValue +
                "-" + yearValue + "&ISPF=" + petFree + "&PETCT=" + petCount + (queryStringToAppend.length > 0 ? "&" + queryStringToAppend : "");
                }
                else {
                    this.href = "../Scotland/SearchResultsPage.aspx?ADCT=" + adultCount + "&CHCT=" + childrenCount + "&INCT=" +
                infantCount + "&DURTN=" + duration + "&RCODE=" + regionCode + "&SDATE=" + dayValue + "-" + monthValue +
                "-" + yearValue + "&ISPF=" + petFree + "&FMASK=" + featureSetMask + "&PETCT=" + petCount + (queryStringToAppend.length > 0 ? "&" + queryStringToAppend : "");
                }

            }
        });
    }); // End this.each
}
