/* contains:
jQuery
styleswitcher.js
hint.jquery.js
Client Filters
*/

/* ---- jQuery ---- */
$(document).ready(function() {
    // Text Size
    $('#text-size').addClass("show");
    $('#text-medium').addClass("show");
    $('#text-large').addClass("show");
    $('#text-xlarge').addClass("show");
    $('li#text-medium a').click(function() { setActiveStyleSheet('Medium'); return false; });
    $('li#text-large a').click(function() { setActiveStyleSheet('Large'); return false; });
    $('li#text-xlarge a').click(function() { setActiveStyleSheet('X-Large'); return false; });

    // Sidebar Navigation
    //hide all the child categories
    $('a.toggler').next().hide();

    $('a.toggler').click(function() {
        $(this).parent().toggleClass("selected");
        $(this).toggleClass("open").next().toggle();
        $('a.toggler').not(this).removeClass("open").next().hide();
        return false;
    });

    //added new togglerIA class to support separation of client and IA nav menu clicks
    $('a.togglerIA').click(function() {
        $(this).parent().toggleClass("selected");
        $(this).toggleClass("open").next().toggle();
        $('a.toggler').not(this).removeClass("open").next().hide();
        if ($("#LocalResourceFilter")) {
            $("#LocalResourceFilterOptions").hide(function() { UpdateClientFilterState("none"); });
        }
        return false;
    });

    //show the child cats for the selected parent - note this only happens after a postback when the values are set by back code
    $('li.selected a.toggler').addClass("open").next().show();

    // Search Title
    $('input#query').hint();

    //===================
    //client filter 
    //===================
    if (ClientFilterState != "no filter") {
        if (ClientFilterState == "on") {
            $("#LocalResourceFilterOptions").show();
            $("#LocalResourceFilterToggle").addClass("open");
        }
        else {
            $("#LocalResourceFilterOptions").hide();
            $("#LocalResourceFilterToggle").removeClass("open");
        }

        $("#LocalResourceFilter input:checkbox").click(function() { UpdateFilters(); });
        $("#LocalResourceFilterToggle").click(function() {
            $("#LocalResourceFilterOptions").slideToggle('fast', function() {
                UpdateClientFilterState($(this).css("display"));
            });
            return false;
        });

        if (clientfilter) {
            var arrCF = clientfilter.split(",");
            for (var index = 0; index < arrCF.length; index++) {
                if (arrCF[index] != "") {
                    $("#LocalResourceFilter input:checkbox").each(function(chkIndex, domEle) {
                        if ($(domEle).val() == arrCF[index]) {
                            $(domEle).attr("checked", "checked");
                        }
                    });
                }
            }
        }
    }

});

/* ---- styleswitcher.js ---- */
function setActiveStyleSheet(title) {var i, a, main;for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {a.disabled = true;if(a.getAttribute("title") == title) a.disabled = false;}}}
function getActiveStyleSheet() {var i, a;for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title") && !a.disabled) return a.getAttribute("title");}return null;}
function getPreferredStyleSheet() {var i, a;for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {if(a.getAttribute("rel").indexOf("style") != -1&& a.getAttribute("rel").indexOf("alt") == -1&& a.getAttribute("title")) return a.getAttribute("title");}return null;}
function createCookie(name,value,days) {if (days) {var date = new Date();date.setTime(date.getTime()+(days*24*60*60*1000));var expires = "; expires="+date.toGMTString();}else expires = "";document.cookie = name+"="+value+expires+"; path=/";}
function readCookie(name) {var nameEQ = name + "=";var ca = document.cookie.split(';');for(var i=0;i < ca.length;i++) {var c = ca[i];while (c.charAt(0)==' ') c = c.substring(1,c.length);if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);}return null;}
window.onload = function(e) {var cookie = readCookie("style");var title = cookie ? cookie : getPreferredStyleSheet();setActiveStyleSheet(title);}
window.onunload = function(e) {var title = getActiveStyleSheet();createCookie("style", title, 365);}
var cookie = readCookie("style");
var title = cookie ? cookie : getPreferredStyleSheet();
setActiveStyleSheet(title);


/* ---- hint.jquery.js ---- */
/*
@author Remy Sharp
@url http://remysharp.com/2007/01/25/jquery-tutorial-text-box-hints/
*/
(function ($) {
$.fn.hint = function (blurClass) {
	if (!blurClass) blurClass = 'blur';
	return this.each(function () {
		var $$ = $(this); 
		var title = $$.attr('title'); 
		if (title) { 
			$$.blur(function () {if ($$.val() == '') {$$.val(title).addClass(blurClass);}})
			.focus(function () {if ($$.val() == title) {$$.val('').removeClass(blurClass);}})
			.parents('form:first').submit(function () {if ($$.val() == title) {$$.val('').removeClass(blurClass);}
			}).end()
			.blur();
			if ($.browser.mozilla && !$$.attr('autocomplete')) {setTimeout(function () {if ($$.val() == title) $$.val(''); $$.blur();}, 10);}
		}
	});
};
})(jQuery);


function UpdateFilters() {
    var LocalFilterChecked = [];
    $("#LocalResourceFilter input:checked").each(function(i, checked) {
        LocalFilterChecked[i] = $(checked).val();
    });
    $.ajax({
        type: "POST",
        url: "/resourcecenter/WebServices/ClientFilter.asmx/SetClientFilter",
        data: "{'_f':'" + LocalFilterChecked.join(",") + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
		//success: function(msg) {},      //alert(msg.d);},
        error: function(xhr, status, error) {alert (xhr.responseText);}        
    });
}

function UpdateClientFilterState(_elemDisplay) {
    $.ajax({
        type: "POST",
        url: "/resourcecenter/WebServices/ClientFilter.asmx/SetClientFilterState",
        data: "{'_f':'" + _elemDisplay + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json"
    });
    if (_elemDisplay == "block") {
        $("#LocalResourceFilterToggle").addClass("open");
    }
    else {
        $("#LocalResourceFilterToggle").removeClass("open");
    }
}
