﻿$(document).ready(function() {
    // debug
    var dog = 0;
    
    $().keypress(function (e) {
        // explorer/chrome + firefox(65)
        if ((e.which == 1) || (e.which == 65)) {
            redirectToAdm();
        }
        
        if (e.which == 68) {
            showHideDebug();
        }    
    });
    
    function redirectToAdm() {
        window.location = "/auth";
    }
    
    function showHideDebug() {
        if (dog == 0) {
            dog = 1;
            $(".t_left").addClass("select_red");
            $(".t_right").addClass("select_red");
            $(".t_body").addClass("select_red");
            $(".t_header").addClass("select_red");
            $(".t_footer").addClass("select_red");
            $("#body").addClass("select_red");
            $(".workarea").addClass("select_red");
            $(".t_container").addClass("select_red");
        }
        else if (dog == 1) 
        {
            dog = 0;
            $(".t_left").removeClass("select_red");
            $(".t_right").removeClass("select_red");
            $(".t_body").removeClass("select_red");
            $(".t_header").removeClass("select_red");
            $(".t_footer").removeClass("select_red");
            $("#body").removeClass("select_red");
            $(".workarea").removeClass("select_red");
            $(".t_container").removeClass("select_red");
        }
    }
    
    $("#dog").live("click",function() {
        showHideDebug();
    });

    // init
    loadDefaultBehaviour();
 
    // vars
    var clickedElementId = null;
    var innerHeight = 30;
    var innerWidth = 200;
    
    // cached menu
    var cachedMenu;
    
    // handlers & functions
    
    $(window).resize(function(){
        setBodyHeight();
    });
    
    $.fn.delay = function(time, callback){
        jQuery.fx.step.delay = function(){};
        return this.animate({delay:1}, time, callback);
    }
    
    function loadDefaultBehaviour() {
        loadMenubar();
        $("#menuitem").hide();
        setBodyHeight(); // for chrome & firefox
    }
    
    function setBodyHeight() {
        var heightKiller = 185;
        if(jQuery.browser.msie)
        {
            if (jQuery.browser.version == "7.0") {
		        var currentHeight = $("#body").innerHeight();
		        $(".t_body").css("height",(document.documentElement.clientHeight-heightKiller));
            } else {
		        var currentHeight = $("#body").innerHeight();
        	    if (currentHeight < document.documentElement.clientHeight - 200) {
            		    $("#body").css("height",(document.documentElement.clientHeight-heightKiller));
        	    }
	        }
        } else {
		    var currentHeight = $("#body").innerHeight();
        	if (currentHeight < document.documentElement.clientHeight - 200) {
            		$("#body").css("height",(document.documentElement.clientHeight-heightKiller));
        	}
	    }
    }
    
    // menu dispose handler
    $().click(function(e){
        var ox = $("#menuitem").offset().left; 
        var oy = $("#menuitem").offset().top;
        if ((e.pageX < (ox)) || (e.pageX > (ox+innerWidth))) 
        {
            $("#menuitem").fadeOut();
            $("#menuitem .text").html("");
            $("a").removeClass("active_navi");
        }
        else if ((e.pageY < (oy-20)) || (e.pageY > (oy+innerHeight))) 
        {
            $("#menuitem").fadeOut();
            $("#menuitem .text").html("");
            $("a").removeClass("active_navi");
        }
    }); 
    
    // menu show handler
    $("a").delay(1000).live("mouseover", function() {
        var id = (($(this).attr("id")).split('_'))[1];
        if (id != null) {
            $("a").removeClass("active_navi");
            $("#menuitem").hide();
            $(this).addClass("active_navi");
            $("#menuitem").css("left", $(this).position().left - 20);
            $("#menuitem .text").html("");
            if (cachedMenu[id].menuitem.items.length != 0) {
                loadMenuitem(id);
                $().delay(10,function() {
                    innerHeight = $("#menuitem").innerHeight();
                    innerWidth = $("#menuitem").innerWidth();
                });
                $("#menuitem").fadeIn();
            }
        }
    }); 
   

    function loadMenuitem(id) { 
        var menuitem = cachedMenu[id].menuitem;
        var items = menuitem.items;
        for (i=0; i<items.length; i++) {
            if ((id != 0) && (id != 2)) {
                $("#menuitem .text").append(items[i].ititle+"<br/>");
            } else {
                $("#menuitem .text").append("<a href=\""+items[i].iurl+"\">"+items[i].ititle+"</a><br/>");
            }
        }
    }

    function loadMenubar() {
        $.getJSON(
            "/scripts/ajax/json/menubar.js",
            function (data) {
                $("#menulinks").html("");
                cachedMenu = data.menu;
                buildMenu();
            }
       );
    }
    
    function buildMenu() {
        for (i=0; i<cachedMenu.length; i++) {
            var menuitem = cachedMenu[i].menuitem;
            $("#menulinks").append("<a href=\""+menuitem.url+"\" id=\"link_"+i+"\">"+menuitem.title+"</a>");
        }
    }
   
});
