﻿$(function() {
    $('.dropdown dd').hover(function() {
        $(this).parent().find('ul').stop(true, true).parent().removeClass('over');

        $(this).children('ul').animate({
            "height": "show",
            "opacity": "show"
        }, "slow", "swing", function() {
            $(this).parent().addClass('over');
            $(this).css({ "height": "", "opacity": "", "display": "" });
        });

    }, function() {
        $(this).parent().find('ul').stop(true, true).parent().removeClass('over');
        $(this).children('ul').animate({
            "opacity": "hide"
        }, "slow", "swing", function() {
            $(this).parent().removeClass('over');
            $(this).css({ "height": "", "opacity": "", "display": "" });
        });
    });

    $("a[rel*=external], a[href^=http://], a[href^=/out-click.aspx]").each(function() {
        $(this).attr("target", "_blank");
    });

});

function printWin(url) {
    popWin(url, "printWin", 700, 500, true);
}

var popWin = function(url, name, width, height, center) {
    var win,
    opt = [];
    if (width || height) {
        height = height || 570;
        width = width || 770;
        opt.push('height=' + height, 'width=' + width);
        if (center === false) {
            opt.push('top=' + ((screen.width) ? (screen.width - width) / 2 : 0));
            opt.push('left=' + ((screen.height) ? (screen.height - height) / 2 : 0));
        }
        opt.push('scrollbars=yes', 'resizable', 'menubar=1');
    }
    win = window.open(url, name, opt.join(','));
    if (win) win.focus();
    return win;
}

$(document).ready(function() {
    var sizer = $('#fontSizeMap').FontSizer('main', 'fsUp', 'fsDown', 'fsNormal');
});

var Cookies = {
    add: function(name, value, days) {
        var expires = '';
        if (days) {
            var date = new Date();
            date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
            expires = '; expires=' + date.toGMTString(); ;
        }
        document.cookie = name + "=" + escape(value) + expires + "; path=/";
    },
    remove: function(name) {
        this.add(name, '', -1);
    },
    get: function(name) {
        var results = document.cookie.match(name + '=([^;]*?)(;|$)');
        if (results)
            return (unescape(results[1]));
        else
            return null;
    }
};

(function($) {
    jQuery.fn.FontSizer = function(type, upid, downid, resetid) {
        $.extend(this, {
            theconstructor: function(type, upid, downid, resetid) {
                this.type = type;
                this.baseSize = 14;
                this.minSize = 9;
                this.maxSize = 20;
                this.stepSize = 2;
                this.cookieName = type + 'FontSize';
                var x = Cookies.get(this.cookieName);
                this.currentSize = x ? parseInt(x) : this.baseSize;
                if (this.currentSize != this.baseSize) {
                    this.update();
                }
                var sizer = this;
                $('#' + upid).click(function(e) {
                    sizer.increase(e, this);
                });
                $('#' + downid).click(function(e) {
                    sizer.decrease(e, this);
                });
                $('#' + resetid).click(function(e) {
                    sizer.reset(e, this);
                });
                return this;
            },
            reset: function(e) {
                e.preventDefault();
                Cookies.remove(this.cookieName);
                this.currentSize = this.baseSize;
                this.update();
            },
            update: function() {
                Cookies.add(this.cookieName, this.currentSize, 7);
                cont = this.type;
                $('#' + cont).css('font-size', (this.currentSize / this.baseSize) + 'em');
            },
            increase: function(e) {
                e.preventDefault();
                this.currentSize = Math.min(this.currentSize + this.stepSize, this.maxSize);
                this.update();
            },
            decrease: function(e) {
                e.preventDefault();
                this.currentSize = Math.max(this.currentSize - this.stepSize, this.minSize);
                this.update();
            }
        });
        this.theconstructor(type, upid, downid, resetid);
        return this;
    };
})(jQuery);
