﻿/// <reference path="../External/jquery.watermark.min.js" />

Agility.RegisterNamespace("Subaru.SearchBox");

(function(SearchBox) {

    var QuerySearch = "?Search=";
    var HashSearch = "#Search=";

    SearchBox.OnInit = function() {
        setTimeout("Subaru.SearchBox.EnableEvents()", 100);

        if (SearchBox.UrlContainsSearchCriteria()) {
            var criteria = SearchBox.GetUrlSearchCriteria();
            $("#txtSearchBox").val(criteria);
            setTimeout("Subaru.ActivitySearchResults.PerformSearch('LikeCount')", 2000);
        }
        else {
            setTimeout("Subaru.SearchBox.SetWatermark()", 2000);
        }
    }

    SearchBox.SetWatermark = function() {
        $("#txtSearchBox").val(Subaru.AgilityData.GetGlobalLanguageResource("Header_SearchWatermark"));

        $("#txtSearchBox").focus(function() {
            var searchTerm = $("#txtSearchBox").val();
            if (searchTerm == Subaru.AgilityData.GetGlobalLanguageResource("Header_SearchWatermark")) {
                $("#txtSearchBox").val("");
            }
        });

        $("#txtSearchBox").blur(function() {
            var searchTerm = $("#txtSearchBox").val();
            if (searchTerm == "") {
                $("#txtSearchBox").val(Subaru.AgilityData.GetGlobalLanguageResource("Header_SearchWatermark"));
            }
        });
    }


    SearchBox.EnableEvents = function() {
        $("#txtSearchBox").keydown(function(event) {

            if (event.keyCode == 13) {
                Subaru.ActivitySearchResults.PerformSearch('LikeCount');
                return false;
            }
        });
    }

    SearchBox.RemoveUrlSearchCriteria = function() {
        if (window.location.href.indexOf(HashSearch) > -1) {
            window.location = window.location.href.substring(0, window.location.href.indexOf(HashSearch)) + "#";
        }
    };

    SearchBox.UrlContainsSearchCriteria = function() {
        if (location.href.indexOf(QuerySearch) > -1) {
            window.location = window.location.href.replace("?", "#");
        }
        else {
            return (location.href.indexOf(HashSearch) > -1);
        }
    };

    SearchBox.GetUrlSearchCriteria = function() {
        var criteria = "";

        if (window.location.href.indexOf(HashSearch) > -1) {
            criteria = window.location.href.substring(window.location.href.indexOf(HashSearch) + HashSearch.length);
        }

        return unescape(criteria);
    };

    SearchBox.AddSearchCriteriaToUrl = function(criteria) {
        if (window.location.href.indexOf(HashSearch) > -1) {
            window.location = window.location.href.substring(0, window.location.href.indexOf(HashSearch)) + HashSearch + criteria;
        }  
        else {
            window.location = window.location.href.replace('#', '') + HashSearch + criteria;
        }
    }

})(Subaru.SearchBox);


function Search(searchCriteria) {
    $("#txtSearchBox").val(searchCriteria);
    Subaru.ActivitySearchResults.PerformSearch('LikeCount');
}
