﻿(function() {
    var searchPostsPage = window.searchPostsPage = function() {
        return new searchPostsPage.prototype.init();
    };

    if (!window.searchPostsPage) {
        window.searchPostsPage = searchPostsPage;
    }

    searchPostsPage.proto = searchPostsPage.prototype = {
        init: function() {
            return new searchPostsPage();
        }
    }
    searchPostsPage.DdlType = null;
    searchPostsPage.DdlCategpries = null;
    searchPostsPage.ddlSort = null;
    searchPostsPage.txtSearchCriteria = null;
    searchPostsPage.PnlContainer = null;
    searchPostsPage.pageUniqueID = null;
    searchPostsPage.divSearchResult = null;
    searchPostsPage.DatepickerFromDate = null;
    searchPostsPage.DatepickerToDate = null;
    searchPostsPage.TxtWriterName = null;
    searchPostsPage.ErrorMsgInvalidDateRange = null;
    searchPostsPage.ErrorMsgGeneral = null;
    searchPostsPage.ErrorTitle = null;

    searchPostsPage.Load = function(ddlCategpries, ddlType, ddlSort, btnSearchAdvanced, PnlContainer, divSearchResult, txtSearchCriteria, pageUniqueID, datepickerFromDate, datepickerToDate, txtWriterName, errorMsgInvalidDateRange, errorMsgGeneral, errorTitle) {
        this.DdlCategpries = ddlCategpries;
        this.DdlType = ddlType;
        this.ddlSort = ddlSort;
        this.txtSearchCriteria = txtSearchCriteria;
        this.PnlContainer = PnlContainer;
        this.pageUniqueID = pageUniqueID;
        this.divSearchResult = divSearchResult;
        this.ErrorTitle = errorTitle;
        searchPostsPage.DatepickerFromDate = datepickerFromDate;
        searchPostsPage.DatepickerToDate = datepickerToDate;
        searchPostsPage.TxtWriterName = txtWriterName;
        searchPostsPage.ErrorMsgInvalidDateRange = errorMsgInvalidDateRange;
        searchPostsPage.ErrorMsgGeneral = errorMsgGeneral;

        //Initialize calender control for FromDate and ToDate



        $('#' + datepickerFromDate).datepicker(
            {
                showOn: 'both',
                buttonText: 'Choose',
                buttonImage: 'CssImages/calc_icon.jpg',
                nextText: 'next',
                prevText: 'prev',
                buttonImageOnly: true/*,
                minDate: dateNow*/
            });

        $('#' + datepickerToDate).datepicker(
            {
                showOn: 'both',
                buttonText: 'Choose',
                buttonImage: 'CssImages/calc_icon.jpg',
                nextText: 'next',
                prevText: 'prev',
                buttonImageOnly: true/*,
                minDate: dateNow*/
            });



        $('#' + btnSearchAdvanced).click(function() {
            searchPostsPage.SearchAdvanced();
        })
        //        $('#' + ddlSort).change(function() {
        //            searchPostsPage.Sort();
        //        })

        //clear search type cookie
        userArticles.setCookie("SearchType", "", -1, "", "", "");
        //set cookie for sort:date(1),sorttype:desc(1)
        userArticles.setCookie("SortSearch", "1", 5, "", "", ""); //by date
        userArticles.setCookie("SortTypeSearch", "1", 5, "", "", ""); //Desc

    }
    searchPostsPage.SearchAdvanced = function() {
        if (searchPostsPage.Validate()) {

            var typeID = $('#' + searchPostsPage.DdlType).val();
            var CategoryID = $('#' + searchPostsPage.DdlCategpries).val();
            var SearchCriteria = $('#' + searchPostsPage.txtSearchCriteria).val();
            var FromDate = $('#' + searchPostsPage.DatepickerFromDate).val();
            //alert($('#' + searchPostsPage.DatepickerFromDate).val() + " ----- " + $('#' + searchPostsPage.DatepickerFromDate).datepicker('getDate'));
            var ToDate = $('#' + searchPostsPage.DatepickerToDate).val();
            var WriterName = $('#' + searchPostsPage.TxtWriterName).val();



            userArticles.setCookie("TypeID", typeID, 5, "", "", "");
            userArticles.setCookie("CategoryID", CategoryID, 5, "", "", "");
            userArticles.setCookie("SearchCriteria", SearchCriteria, 5, "", "", "");
            userArticles.setCookie("FromDate", FromDate, 5, "", "", "");
            userArticles.setCookie("ToDate", ToDate, 5, "", "", "");
            userArticles.setCookie("WriterName", WriterName, 5, "", "", "");
            userArticles.setCookie("SearchType", "advanced", 5, "", "", "");
            //set cookie for sort:date(1),sorttype:desc(1)
            userArticles.setCookie("SortSearch", "1", 5, "", "", ""); //by date
            userArticles.setCookie("SortTypeSearch", "1", 5, "", "", ""); //Desc

            userArticles.startLoader(searchPostsPage.PnlContainer);
            userArticles.ajax.doCallbackHtml(searchPostsPage.pageUniqueID, "SearchAdvanced|" + CategoryID + "|" + typeID + "|" + SearchCriteria + "|" + FromDate + "|" + ToDate + "|" + WriterName, searchPostsPage.SearchRes);

        }
    }
    searchPostsPage.Sort = function() {
        searchPostsPage.handleSorting();
        var Sort = userArticles.getCookie("SortSearch");
        var SortType = userArticles.getCookie("SortTypeSearch");
        var typeID = userArticles.getCookie("TypeID");
        var CategoryID = userArticles.getCookie("CategoryID");
        var SearchCriteria = userArticles.getCookie("SearchCriteria");
        var SearchType = userArticles.getCookie("SearchType");

        userArticles.startLoader(searchPostsPage.PnlContainer);
        userArticles.ajax.doCallbackHtml(searchPostsPage.pageUniqueID, "Sorting|" + SearchType + "|" + CategoryID + "|" + typeID + "|" + SearchCriteria + "|" + Sort + "|" + SortType, searchPostsPage.SearchResSort);


    }
    //    function SetData(data, status) {
    //        if (data.indexOf('SearchAdvanced') != -1) {
    //            var result = data.replace('SearchAdvanced', '');
    //            $('#<%=pnlContainer.ClientID %>').html(result);
    //            $('#loader<%=pnlContainer.ClientID %>').hide();
    //        }

    //    }

    searchPostsPage.handleSorting = function() {
        // sort:1 --> date
        // sort:2 --> Viewed
        //SortType:0 -->ASC
        //SortType:1 -->DESC

        var Sort = userArticles.getCookie("SortSearch");
        var SortType = userArticles.getCookie("SortTypeSearch");
        var selectedSort = $('#' + searchPostsPage.ddlSort).val();

        if (selectedSort == 1) {//date
            userArticles.setCookie("SortTypeSearch", "1", 5, "", "", "");
            userArticles.setCookie("SortSearch", "1", 5, "", "", "");
        }

        else if (selectedSort == 2) {//date
            userArticles.setCookie("SortTypeSearch", "0", 5, "", "", "");
            userArticles.setCookie("SortSearch", "1", 5, "", "", "");
        }
        else if (selectedSort == 3) {//views
            userArticles.setCookie("SortTypeSearch", "1", 5, "", "", "");
            userArticles.setCookie("SortSearch", "2", 5, "", "", "");
        }

        else if (selectedSort == 4) {//views
            userArticles.setCookie("SortTypeSearch", "0", 5, "", "", "");
            userArticles.setCookie("SortSearch", "2", 5, "", "", "");
        }

    }
    searchPostsPage.SearchRes = function(data, status) {
        if (data.indexOf('SearchAdvanced') != -1) {
            var result = data.replace('SearchAdvanced', '');
            $('#' + searchPostsPage.PnlContainer).html(result);
            $('#loader' + searchPostsPage.PnlContainer).hide();
        }
        else {
            $('#loader' + searchPostsPage.PnlContainer).hide();
            userArticles.showPrompt(searchPostsPage.ErrorTitle, 'PromptOkMsg', 'PpromptMsg', null, null, 0.5, searchPostsPage.ErrorMsgGeneral);
        }
    }
    searchPostsPage.SearchResSort = function(data, status) {
        if (data.indexOf('SearchResSort') != -1) {
            var result = data.replace('SearchResSort', '');
            $('#' + searchPostsPage.divSearchResult).html(result);
            $('#loader' + searchPostsPage.PnlContainer).hide();
        }
        else {
            $('#loader' + searchPostsPage.PnlContainer).hide();
            userArticles.showPrompt(searchPostsPage.ErrorTitle, 'PromptOkMsg', 'PpromptMsg', null, null, 0.5, searchPostsPage.ErrorMsgGeneral);
        }
    }
    searchPostsPage.Validate = function(timeType) {
        if (!userArticles.validation.isEmpty($('#' + searchPostsPage.txtSearchCriteria)[0])) {
            if ($('#' + searchPostsPage.DatepickerToDate).val() != '' && $('#' + searchPostsPage.DatepickerFromDate).val() != '') {
                if ($('#' + searchPostsPage.DatepickerToDate).datepicker('getDate') > $('#' + searchPostsPage.DatepickerFromDate).datepicker('getDate')) {
                    return true;
                }
                else {
                    //show prompt or so
                    userArticles.showPrompt(searchPostsPage.ErrorTitle, 'PromptOkMsg', 'PpromptMsg', null, null, 0.5, searchPostsPage.ErrorMsgInvalidDateRange);
                }
            }
            else {
                return true;
            }
            return false;
        }
        else
            return false;
    }

})();
