/*
 * 
 **/

var timeout = 1000;
var timer = null;

var log = false;

var newWidth = 157;
var oldWidth = 183;

function clog(str) {
    if (log) console.log(str);
}

$(document).ready(function() {

    var level1 = $("ul.level_1");
    var level2 = $("ul.level_2");
    var level3 = $("ul.level_3");
    
    $("a.navi-link").hover(
        function() {
            clearTimeout(timer);
            
            level2.hide();
            level3.hide();
            
            var a = $(this);
            var id = a.attr("id").substring(2);
            var hasChildren = a.attr("class").indexOf("has-children") != -1 ? true : false;
            
            var parent = a.parents("ul");
            var grandParent = $("#parent_"+id);
            
            var par_id = parent.attr("id").substring(7);
            var link = $("#o_"+par_id);
            var pars = link.parents("ul");
            
            parent.show();
            pars.show();
            
            link.addClass("active-arrow");
            
            // check if grandparent needs some arrows too
            if(pars.hasClass("level_2")) {
                var gp_id = link.parents("ul").attr("id").substring(7);
                $("#o_" + gp_id).addClass("active-arrow");
            }
            
            grandParent.show();
            
            if(!hasChildren) {
                $("#parent_"+par_id).width(oldWidth);
                $("#parent_"+par_id+" div.stripes").show();
            } else {
                $("#parent_"+par_id).width(newWidth);
                $("#parent_"+par_id+" div.stripes").hide();
            }
            
            if(a.hasClass("level_1")) {
                $("div.stripes", level2).show();
                level2.width(oldWidth);
            }
            
            
        },
        function(e) {
            timer = setTimeout(function() {
                var a = $(e.target);
                var hasChildren = a.hasClass("has-children");

                $("div.stripes").show();
                
                if (a.hasClass("level_1")) {
                    $("div.stripes", level2).show();
                    level2.hide();
                    
                    level3.hide();
                    
                    level1.width(oldWidth);
                    level2.width(oldWidth);
                    $("div.stripes", level1).show();
                }
                else if (a.hasClass("level_2")) {
                    level3.hide();
                    
                    level2.width(oldWidth);
                    $("div.stripes", level2).show();
                    
                    level1.width(oldWidth);
                    $("div.stripes", level1).show();
                } else {
                    level2.hide();
                    level3.hide();
                    level1.width(oldWidth);
                }
                
                var a = $("a.has-children");
                a.removeClass("active-arrow");
                
            }, timeout);
            
            var a = $("a.has-children");
            a.removeClass("active-arrow");
            
        }
    );
    
});

