jQuery(function() {
    //Header menu mousover popup
    var headerMenuPopup = new menuPopupSimple;
    headerMenuPopup.start('headerMenu', 'headerMenuColumn', 'headerMenuContainer', 'visibility', 'visible', 'hidden', false);

    //Left menu level 1 mouseover popup
    var leftMenuPopup = new menuPopupSimple;
    leftMenuPopup.start('leftMenu', 'leftMenuLink', 'leftMenuContainer', 'display', 'block', 'none', false);

    //Left menu level 2 mouseover popup
    var leftSubmenuPopup = new menuPopupSimple;
    leftSubmenuPopup.start('leftMenuContainer', 'leftSubmenuLink', 'leftSubmenuContainer', 'display', 'block', 'none', false);

    //Left menu level 3 mouseover popup
    var leftSubmenuPopup2 = new menuPopupSimple;
    leftSubmenuPopup2.start('leftSubmenuContainer', 'leftSubmenuLink2', 'leftSubmenuContainer2', 'display', 'block', 'none', false);
});

menuPopupSimple = function() {
    this.timeout = 500,
    this.closetimer = 0,
    this.ddmenuitem = 0,
    this.menuContainerClassname = '',
    this.css = '',
    this.vis = '',
    this.nonVis = '',
    this.serialMenus = false,

    this.start = function(menuId, menuColumnClassname,
        menuContainerClassname, css, vis, nonVis, serialMenus) {
        this.css = css;
        this.vis = vis;
        this.nonVis = nonVis;
        this.menuContainerClassname = menuContainerClassname;
        this.serialMenus = serialMenus;

        var selectString = '#' + menuId + ' > div.'
        + menuColumnClassname;

        if($(selectString).html() == null) {
            selectString = '.' + menuId + ' > div.'
            + menuColumnClassname;
        }

        $(selectString).bind('mouseover', {
            obj : this
        }, this.main_menu_open);
        $(selectString).bind('mouseout', {
            obj : this
        }, this.main_menu_timer);
    },

    this.main_menu_open = function(event) {
        event.data.obj.main_menu_canceltimer(event.data.obj);
        event.data.obj.main_menu_close(event.data.obj);

        if(event.data.obj.serialMenus) {
            var nextElement = $(this).next();

            if($(nextElement).hasClass(event.data.obj.menuContainerClassname)) {
                event.data.obj.ddmenuitem = $(this).next().css(
                    event.data.obj.css, event.data.obj.vis);
            }
        } else {
            event.data.obj.ddmenuitem = $(this).find(
                'div.' + event.data.obj.menuContainerClassname).css(
                event.data.obj.css, event.data.obj.vis);
            
        }
    },

    this.main_menu_close = function(obj) {
        if (obj.ddmenuitem)
            obj.ddmenuitem.css(obj.css, obj.nonVis);
    },

    this.main_menu_timer = function(event) {
        var timeoutCall = function() {
            event.data.obj.main_menu_close(event.data.obj);
        };

        event.data.obj.closetimer = window.setTimeout(timeoutCall,
            event.data.obj.timeout);
    },

    this.main_menu_canceltimer = function(obj) {
        if (obj.closetimer) {
            window.clearTimeout(obj.closetimer);
            obj.closetimer = null;
        }
    };
};
