﻿$(function() {
    $("#searchBar > .body > ul.tabs").tabs("#searchBar > .body > div.panes > div", {
        onClick: function(event, tabIndex) {
            // Focus the first input element in the tab pane
            var currentPane = $(event.target.getPanes()[tabIndex]);
            var textBox = currentPane.find("input:text");
            if (textBox.val() != "" && textBox.val() != textBox.attr("placeholder")) {
                textBox.focus();
            } else {
                currentPane.find(":input:first").focus();
            }
        }
    });

    var searchKeywords = jQuery.url.param("keywords");
    if (searchKeywords) {
        $(".articleSearch :text").val(searchKeywords);
        $(".dictionarySearch :text").val(searchKeywords);
    }

    // Check URL for search parameters
    var searchTab = parseInt(jQuery.url.param("st"));
    if (!isNaN(searchTab)) {
        // Tab
        var tabApi = $("#searchBar > .body > ul.tabs").data("tabs");

        // Try changing the tab and check if successful
        if (tabApi.click(searchTab).getIndex() == searchTab) {
            var currentPane = tabApi.getCurrentPane();

            // Section
            var searchSection = jQuery.url.param("ss");
            if (searchSection && searchSection.trim() != "")
                currentPane.find("input:radio[value=" + searchSection + "]").attr("checked", true);

            // Keywords
            var searchKeywords = jQuery.url.param("sk");
            if (searchKeywords && searchKeywords.trim() != '') {
                currentPane.find("input:text").focus().val(decodeURIComponent(searchKeywords));
            }

            var versionDate = unescape(jQuery.url.param("vd"));
            if (versionDate) // && 0 != currentPane.find('select option[value=' + versionDate + ']').length)
            {
                var qOpts = currentPane.find('select option');
                for (var i = 0; i < qOpts.length; i++) {
                    var currOpt = qOpts[i];
                    var vDate = new Date(versionDate);
                    var sDate = new Date(currOpt.value);
                    var eDate = new Date(currOpt.value);
                    eDate.setMonth(eDate.getMonth() + 3);
                    eDate.setDate(eDate.getDate() - 1);
                    if (vDate >= sDate && vDate <= eDate)
                        currOpt.selected = true; //attr('selected', 'selected');
                }
            }
            //currentPane.find("select").val(versionDate);
        }
    }

    // Add the watermark.  Must be done after setting any default values.
    $("#searchBar > .body :text").simpleWaterMark("watermark");
});

function searchSubmitClick() {
    var query = new Array();

    var tabApi = $("#searchBar > .body > ul.tabs").data("tabs");
    var currentPane = tabApi.getCurrentPane();

    query.push("st=" + tabApi.getIndex());

    var radioValue = $(currentPane).find("input:radio:checked").val();
    query.push("ss=" + radioValue);

    var searchBox = $(currentPane).find("input:text");
    var searchText = searchBox.val().trim();

    if (searchBox.val() == searchBox.attr("placeholder"))
        searchText = "";

    if (searchText.length < 2) {
        alert("Please enter at least two characters to search for!");
        return false;
    }

    query.push("sk=" + encodeURIComponent(searchText));

    var baseUrl = ""

    switch (tabApi.getIndex()) {
        case 0:
            baseUrl = "/Cpt/Search.aspx";
            var quarter = $(currentPane).find("select").val();
            query.push("vd=" + quarter);
            break;
        case 1:
            baseUrl = "/Hcpcs/Search.aspx";
            var quarter = $(currentPane).find("select").val();
            query.push("vd=" + quarter);
            break;
        case 2:
            baseUrl = "/Icd9/Search.aspx";
            break;
    }

    window.location = baseUrl + "?" + query.join("&");
    return false;
}

function articleSearchClick() {
    var searchText = $(".articleSearch :text").val();
    window.location = "/Articles/Search.aspx?keywords=" + searchText;
    return false;
}

function dictionarySearchClick() {
    var searchText = $(".dictionarySearch :text").val();
    window.location = "/Dictionary/Search.aspx?keywords=" + searchText;
    return false;
}

// Run after partial postback
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(function() {
    var searchResults = $(".module.searchResults");

    if (searchResults.length > 0) {
        $("html, body").animate({
            scrollTop: searchResults.offset().top
        }, 500);
    }
});
