﻿function backButtonOverride() {
    setTimeout("backButtonOverrideBody()", 1);

}

function backButtonOverrideBody() {
    try {
        history.forward();
    } catch (e) {
    }
    setTimeout("backButtonOverrideBody()", 500);
}


$(document).ready(function() {
    $("#up").fontscale("p, h1, h2, h3, span, a", "up", { unit: "percent", increment: 10, useCookie: false });

    $("#down").fontscale("p, h1, h2, h3, span, a", "down", { unit: "percent", increment: 10, useCookie: false });
    $("#reset").fontscale("p, h1, h2, h3, span, a", "reset");
});


var toggleMenu = {
    init: function(sContainerClass, sHiddenClass) {
        if (!document.getElementById || !document.createTextNode) { return; } // Check for DOM support
        var arrMenus = this.getElementsByClassName(document, 'ul', sContainerClass);
        var arrSubMenus, oSubMenu, oLink;
        for (var i = 0; i < arrMenus.length; i++) {
            arrSubMenus = arrMenus[i].getElementsByTagName('ul');

            for (var j = 0; j < arrSubMenus.length; j++) {
                oSubMenu = arrSubMenus[j];

                oLink = oSubMenu.parentNode.getElementsByTagName('a')[0];
                myClass = arrSubMenus[j].parentNode.getElementsByTagName('a')[0].className;
                cssMenu = arrSubMenus[j].parentNode.parentNode.getElementsByTagName('a')[0].className;
                cssMenu2 = arrSubMenus[j].parentNode.getElementsByTagName('a')[0].className;

                topTopMenu = arrSubMenus[j].parentNode.getElementsByTagName('a')[0].innerHTML;

                topTopMenuLink = arrSubMenus[j].parentNode.getElementsByTagName('a')[0].href;


                if (topTopMenuLink.indexOf("#") != -1) {
                    oLink.onclick = function() { toggleMenu.toggle(this.parentNode.getElementsByTagName('ul')[0], sHiddenClass); return false; }
                }


                if (cssMenu == "AspNet-Menu-Link  AspNet-Menu-Selected" && cssMenu2 == "AspNet-Menu-Link  AspNet-Menu-Selected") {
                    this.toggle(oSubMenu, sHiddenClass);
                }
                else {


                    if (myClass == "AspNet-Menu-Link  AspNet-Menu-Selected" || myClass == "AspNet-Menu-Link  AspNet-Menu-ChildSelected") {

                    }
                    else {
                        this.toggle(oSubMenu, sHiddenClass);

                    }

                }

                //oLink.onclick = function() {toggleMenu.toggle(this.parentNode.getElementsByTagName('ul')[0], sHiddenClass);return false;}
                //this.toggle(oSubMenu, sHiddenClass);

            }
        }
    },
    toggle: function(el, sHiddenClass) {
        var oRegExp = new RegExp("(^|\\s)" + sHiddenClass + "(\\s|$)");
        el.className = (oRegExp.test(el.className)) ? el.className.replace(oRegExp, '') : el.className + ' ' + sHiddenClass; // Add or remove the class name that hides the element
    },
    /* addEvent function from http://www.quirksmode.org/blog/archives/2005/10/_and_the_winner_1.html */
    addEvent: function(obj, type, fn) {
        if (obj.addEventListener)
            obj.addEventListener(type, fn, false);
        else if (obj.attachEvent) {
            obj["e" + type + fn] = fn;
            obj[type + fn] = function() { obj["e" + type + fn](window.event); }
            obj.attachEvent("on" + type, obj[type + fn]);
        }
    },
    /*
    Written by Jonathan Snook, http://www.snook.ca/jonathan
    Add-ons by Robert Nyman, http://www.robertnyman.com
    */
    getElementsByClassName: function(oElm, strTagName, strClassName) {
        var arrElements = (strTagName == "*" && document.all) ? document.all : oElm.getElementsByTagName(strTagName);
        var arrReturnElements = new Array();
        strClassName = strClassName.replace(/\-/g, "\\-");
        var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
        var oElement;
        for (var i = 0; i < arrElements.length; i++) {
            oElement = arrElements[i];
            if (oRegExp.test(oElement.className)) {
                arrReturnElements.push(oElement);
            }
        }
        return (arrReturnElements)
    }
};
toggleMenu.addEvent(window, 'load', function() { toggleMenu.init('AspNet-Menu', 'hidden'); });



jQuery.cookie = function(name, value, options) {
    if (typeof value != 'undefined') { // name and value given, set cookie
        options = options || {};
        if (value === null) {
            value = '';
            options.expires = -1;
        }
        var expires = '';
        if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
            var date;
            if (typeof options.expires == 'number') {
                date = new Date();
                date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
            } else {
                date = options.expires;
            }
            expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
        }
        // CAUTION: Needed to parenthesize options.path and options.domain
        // in the following expressions, otherwise they evaluate to undefined
        // in the packed version for some reason...
        var path = options.path ? '; path=' + (options.path) : '';
        var domain = options.domain ? '; domain=' + (options.domain) : '';
        var secure = options.secure ? '; secure' : '';
        document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
    } else { // only name given, get cookie
        var cookieValue = null;
        if (document.cookie && document.cookie != '') {
            var cookies = document.cookie.split(';');
            for (var i = 0; i < cookies.length; i++) {
                var cookie = jQuery.trim(cookies[i]);
                // Does this cookie string begin with the name we want?
                if (cookie.substring(0, name.length + 1) == (name + '=')) {
                    cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
                    break;
                }
            }
        }
        return cookieValue;
    }
};

(function(a) { a.fn.fontscale = function(c, b, e) { var d = a.extend(a.fn.fontscale.defaults, e); if (!a.isFunction(a.cookie)) { d.useCookie = false } if (!d.cookieLoaded && a.cookie(d.cookieName) && d.useCookie) { cookieSettings = a.fn.fontscale.readcookie(d.cookieName); if (cookieSettings.unit == d.unit && !d.cookieLoaded) { a.fn.fontscale.scale(c, cookieSettings.delta, d, true) } } this.each(function() { a(this).bind(d.event, function() { a.fn.fontscale.scale(c, b, d, false); if (a.isFunction(d.onAfter)) { d.onAfter(c, b, d) } }) }); return this }; a.fn.fontscale.reset = function(b, c) { a(b).each(function(d) { a(this).css("font-size", ""); if (c.adjustLeading) { a(this).css("line-height", "") } }); if (c.useCookie) { a.fn.fontscale.savecookie(0, c) } }; a.fn.fontscale.scale = function(d, c, e, b) { var f = 0; if (c == "+" || c == "up") { f = e.increment } else { if (c == "-" || c == "down") { f = e.increment * -1 } else { if (c == "reset") { return a.fn.fontscale.reset(d, e) } else { if (b) { f = parseFloat(c); e.cookieLoaded = true } } } } if (e.unit == "percent" && !b) { f = 1 + (f / 100) } a(d).each(function(h) { var g = parseInt(a(this).css("font-size")); var j = parseInt(a(this).css("line-height")); if (e.unit == "percent") { a(this).css("font-size", Math.round(g * f)); if (e.adjustLeading) { a(this).css("line-height", Math.round(j * f)) } } else { a(this).css("font-size", g + f); if (e.adjustLeading) { a(this).css("line-height", j + f) } } if (e.useCookie && !b) { a.fn.fontscale.savecookie(f, e) } }); return }; a.fn.fontscale.savecookie = function(c, b) { if (a.cookie(b.cookieName)) { properties = a.fn.fontscale.readcookie(b.cookieName) } else { properties = { delta: 0} } if (b.unit == properties.unit) { if (b.unit == "percent") { properties.delta = (c) ? properties.delta * c : 1 } else { properties.delta = parseInt(properties.delta) + c } return a.cookie(b.cookieName, "delta=" + properties.delta + "&unit=" + properties.unit, b.cookieParams) } else { a.cookie(b.cookieName, "delta=" + c + "&unit=" + b.unit, b.cookieParams); return true } }; a.fn.fontscale.readcookie = function(b) { val_string = a.cookie(b); var c = {}; a.each(val_string.split("&"), function() { var d = this.split("="); c[d[0]] = d[1] }); return c } })(jQuery); $.fn.fontscale.defaults = { useCookie: true, cookieName: "fontscale", cookieParams: { expires: 30, path: "/" }, increment: 2, unit: "px", adjustLeading: false, event: "click", cookieLoaded: false };
