/********************
*** Modified by Pop *
*********************
*** Inspired by *****
/********************
//* jQuery Multi Level CSS Menu (horizontal)- By Dynamic Drive DHTML code library: http://www.dynamicdrive.com
//* Menu instructions page: http://www.dynamicdrive.com/dynamicindex1/ddlevelsmenu/
//* Last modified: Sept 6th, 08'. Usage Terms: http://www.dynamicdrive.com/style/csslibrary/tos/
*********************/

var CssMenu = function() {
};

var c = CssMenu.prototype;

c._rootAppear = function(node) {
    var $cobj = $(node);
    var $targetul = $cobj.children("ul:eq(0)");

    $targetul.css({ 'left': '0px' }).show();
};

c.initialize = function(nodeId, arrows) {
    var self = this;

    var fadeSettings = {
        overDur: 350,
        outDur: 100
    };

    var $node = $('#' + nodeId + '> ul');

    var $rootMenu = $node.children();
    var isRootAppear = false;

    $('body').bind('click', function(e) {
        $node.find('ul').hide();
        isRootAppear = false;
    });

    // add arrow down for root menu
    $rootMenu.each(function(i) {
        var $cobj = $(this);

        if ($cobj.find('> ul').length > 0) {
            var arrowImg = '<img src="' + arrows.down[1] + '" class="' + arrows.down[0] + '" style="border:0;" />';
            //$cobj.children("a:eq(0)").css({ 'padding-right': 25 }).append(arrowImg);
        }

        $cobj.bind('click', function(e) {
            e.stopPropagation();

            $cobj.siblings().find('ul').hide();
            self._rootAppear(this);
            isRootAppear = true;
        });

        $cobj.bind('mouseover', function(e) {
            e.stopPropagation();

            if (isRootAppear) {
                $cobj.siblings().find('ul').hide();
                self._rootAppear(this);
            }
        });
    });

    var $childMenu = $rootMenu.find('ul ul').parent();
    var $allMenu = $rootMenu.find('>ul li');

    $allMenu.each(function(i) {
        var $cobj = $(this);

        if ($cobj.find('> ul').length == 0) {
            $cobj.bind('mouseover', function(e) {
                $cobj.siblings().find('ul').hide();
            });
        }
    });

    var $allLink = $allMenu.find('a[href]');

    $allLink.each(function(i) {
        var $cobj = $(this);

        $cobj.bind('click', function(e) {
            e.stopPropagation();
            $('body').trigger('click');
        });
    });

    $childMenu.each(function(i) {
        var $cobj = $(this);
        var $subul = $(this).find('ul:eq(0)');

        var dimensions = {
            w: this.offsetWidth,
            h: this.offsetHeight,
            subulw: $subul.outerWidth(),
            subulh: $subul.outerHeight()
        };

        var arrowimg = '<img src="' + arrows.right[1] + '" class="' + arrows.right[0] + '" style="border:0;" />';
        $cobj.children("a:eq(0)").append(arrowimg);

        $cobj.bind('mouseover', function(e) {
            var $targetul = $(this).children("ul:eq(0)");
            var _offsets = $(this).offset();
            var menuleft = dimensions.w;

            menuleft = (_offsets.left + menuleft + dimensions.subulw > $(window).width()) ? -dimensions.w : menuleft;

            $targetul.css({ 'left': menuleft + 'px' }).show();
            $(this).siblings().find('> ul:eq(0)').hide();
        });
    });

    $node.find('ul').css({ 'display': 'none', 'visibility': 'visible' });
};


/*
var jquerycssmenu = {
fadesettings: {
overduration: 350,
outduration: 100
}, //duration of fade in/out animation, in milliseconds

buildmenu: function(menuid, arrowsvar) {
jQuery(document).ready(function($) {
var $mainmenu = $("#" + menuid + ">ul");
var $headers = $mainmenu.find("ul").parent();

$headers.each(function(i) {
var $curobj = $(this);
var $subul = $(this).find('ul:eq(0)');

this._dimensions = {
w: this.offsetWidth,
h: this.offsetHeight,
subulw: $subul.outerWidth(),
subulh: $subul.outerHeight()
};

this.istopheader = $curobj.parents("ul").length == 1 ? true : false;

$subul.css({ top: this.istopheader ? this._dimensions.h + "px" : 0 });

$curobj.children("a:eq(0)").css(this.istopheader ? { paddingRight: arrowsvar.down[2]} : {}).append(
'<img src="' + (this.istopheader ? arrowsvar.down[1] : arrowsvar.right[1])
+ '" class="' + (this.istopheader ? arrowsvar.down[0] : arrowsvar.right[0])
+ '" style="border:0;" />'
);

$curobj.hover(function(e) {
var $targetul = $(this).children("ul:eq(0)");
this._offsets = { left: $(this).offset().left, top: $(this).offset().top };
var menuleft = this.istopheader ? 0 : this._dimensions.w;

menuleft = (this._offsets.left + menuleft + this._dimensions.subulw > $(window).width()) ?
(this.istopheader ? -this._dimensions.subulw + this._dimensions.w : -this._dimensions.w) : menuleft;

$targetul.css({ left: menuleft + "px" }).fadeIn(jquerycssmenu.fadesettings.overduration);
}, function(e) {
$(this).children("ul:eq(0)").fadeOut(jquerycssmenu.fadesettings.outduration);
}); //end hover
}); //end $headers.each()

$mainmenu.find("ul").css({ display: 'none', visibility: 'visible' });
}) //end document.ready
}
};
*/

//build menu with ID="myjquerymenu" on page:
//jquerycssmenu.buildmenu("myjquerymenu", arrowimages);
