﻿
var minWidth = 140;
var minWidthPadding = 30;


var flyInTime = 850;
var easeInTime = 200;
var easeOutTime = easeInTime;
var flyOutTime = flyInTime;

$(document).ready(function() {

    //Set Size Attribute


    $("a[target!=local]").click(function() {
        if ($(this).attr('target') != "_blank") {
            var newLocation = $(this).attr('href');
            setTimeout("easeOutPage('" + newLocation + "')", 100);
            return false;
        }
    });

    $(".MoreLink").each(function() {
        $(this).hover(function() { $(this).parent().stop().animate({ paddingRight: 8 }, 200) }, function() { $(this).parent().stop().animate({ paddingRight: 15 }, 200) });
    });

    //Reset CSS
    $(".MinWidth").css({ width: minWidth });
    $(".MenuItemText").css({ paddingRight: 0 });
    $(".SubMenu").each(function() {
        $(this).attr('toWidth', $(this).width());
        $(this).css({ paddingLeft: 0, opacity: 0, width: minWidth - $(this).parent().closest("div").find(".MenuItemText").width() - minWidthPadding, overflow: 'hidden' });
        $(this).hide();
    });
    $(".MenuDivider").css({ height: 0, marginLeft: 0, opacity: 0 });

    $(".MenuItemInnerTable").each(function() {
        $(this).hoverIntent(function() { showMenu(this); }, function() { hideMenu(this); });
    });

    //$(".BodyTitle").sifr({ font: 'calibri', path : '../fonts/');

    $(".PageContent").css("visibility", "visible");
    easeInPage();

    $(".MediaLink img").css({ opacity: .6 });
    $(".MediaLink img").hover(function() { $(this).stop().animate({ opacity: 1 }) }, function() { $(this).stop().animate({ opacity: .6 }) });

});


function easeInPage() {
    $(".PageContent").css({ position: 'absolute', left: -$(".PageContent").outerWidth() - 50, top: 10 });
    applysIFR();
    $(".PageContent").animate({ left: ($(document).width() / 2) - ($(".PageContent").outerWidth() / 2) + 75 }, flyInTime, function() {
        $(".PageContent").animate({ left: ($(document).width() / 2) - ($(".PageContent").outerWidth() / 2) }, easeInTime, function() {
            $(".PageContent").css({ position: 'static' });
        });
    });
}

function easeOutPage(loc) {

    $(".PageContent").css({ position: 'absolute' });
    $(".PageContent").animate({ left: ($(document).width() / 2) - ($(".PageContent").outerWidth() / 2) + 75 }, easeOutTime, function() {
        $(".PageContent").animate({ left: -$(".PageContent").outerWidth() - 50 }, flyOutTime, function() {
            window.location = loc;
        });

    });


}

function showMenu(baseitem) {
    var menuitem = $(baseitem).parent().closest("div").find(".MenuItemText");
    var submenu = $(baseitem).parent().closest("div").find(".SubMenu");
    var menudivider = $(menuitem).parent().closest("div").find(".MenuDivider");
    submenu.show();
    if (submenu.attr('toWidth') > minWidth) {
        $(".MinWidth").stop().animate({ width: minWidth - minWidthPadding });
    }
    
    menuitem.find("a").css("color", "#FA981D");
    menuitem.stop().animate({ paddingRight: 10 });
    menudivider.stop().animate({ opacity: 1, height: submenu.outerHeight() });
    submenu.stop().animate({ opacity: 1, paddingLeft: 10, width: submenu.attr('toWidth') });
}

function hideMenu(baseitem) {
    var menuitem = $(baseitem).parent().closest("div").find(".MenuItemText");
    var submenu = $(menuitem).parent().closest("div").find(".SubMenu");
    var menudivider = $(menuitem).parent().closest("div").find(".MenuDivider");
    $(".MinWidth").stop().animate({ width: minWidth });
    menuitem.find("a").css("color", "#0079C3");
    menuitem.stop().animate({ paddingRight: 0 });
    menudivider.stop().animate({ height: 0, marginLeft: 0 });
    submenu.stop().animate({ opacity: 0, paddingLeft: 0, width: minWidth - menuitem.width() - minWidthPadding }, function() { $(this).hide(); });
}

function dnPageMethod(fn, paramArray, successFn, errorFn, path) {
    this.Path = path || window.location.pathname;
    this.Parameters = paramArray;
    this.FunctionName = fn;
    this.SuccessCallback = successFn;
    this.ErrorCallback = errorFn;
}
(function($) {
    dnPageMethod.prototype.Invoke = function() {
        //Create list of parameters in the form:  
        //{"paramName1":"paramValue1","paramName2":"paramValue2"}  
        var paramList = '';
        if (this.Parameters.length > 0) {
            for (var i = 0; i < this.Parameters.length; i += 2) {
                if (paramList.length > 0) paramList += ',';
                paramList += '"' + this.Parameters[i] + '":"' + this.Parameters[i + 1] + '"';
            }
        }
        paramList = '{' + paramList + '}';
        //Call the page method  
        $.ajax({
            type: "POST",
            url: this.Path + "/" + this.FunctionName,
            contentType: "application/json; charset=utf-8",
            data: paramList,
            dataType: "json",
            success: this.SuccessCallback,
            error: this.ErrorCallback
        });
    }
})(jQuery);

function PageMethod(fn, paramArray, successFn, errorFn) {
    return PageMethodWithPath(window.location.pathname, fn, paramArray, successFn, errorFn);
}
function PageMethodWithPath(path, fn, paramArray, successFn, errorFn) {
    var pagePath = path;
    
    //Create list of parameters in the form:  
    //{"paramName1":"paramValue1","paramName2":"paramValue2"}  
    var paramList = '';
    if (paramArray.length > 0) {
        for (var i = 0; i < paramArray.length; i += 2) {
            if (paramList.length > 0) paramList += ',';
            paramList += '"' + paramArray[i] + '":"' + paramArray[i + 1] + '"';
        }
    }
    paramList = '{' + paramList + '}';
    //Call the page method  
    $.ajax({
        type: "POST",
        url: pagePath + "/" + fn,
        contentType: "application/json; charset=utf-8",
        data: paramList,
        dataType: "json",
        success: successFn,
        error: errorFn
    })
;
}  