﻿var cmsmenutimeout = 500;
var cmsmenuclosetimer;
var cmsmenuitem;

function CmsMenuOpen() {
    CmsMenuCancelTimer();
    CmsMenuClose();
    cmsmenuitem = $(this).find('ul').css('visibility', 'visible');
}

function CmsMenuClose() {
    if (cmsmenuitem) {
        cmsmenuitem.css('visibility', 'hidden');
    }
}

function CmsMenuTimer() {
    cmsmenuclosetimer = window.setTimeout(CmsMenuClose, cmsmenutimeout);
}

function CmsMenuCancelTimer() {
    if (cmsmenuclosetimer) {
        window.clearTimeout(cmsmenuclosetimer);
        cmsmenuclosetimer = null;
    }
}

$(document).ready(function() {
    $('#cmsmenu > li').bind('mouseover', CmsMenuOpen);
    $('#cmsmenu > li').bind('mouseout', CmsMenuTimer);
    $('#editmenubackground').mouseout(function() { CmsEditMenuTimer(); });
    $('#editmenubackground').mouseover(function() { CmsEditMenuCancelTimer(); });
});

document.onclick = CmsMenuClose;

// Edit menu functions
var cmseditmenutimeout = 500;
var cmseditmenuclosetimer;
var cmseditmenuitem;
var cmseditmenushow = '';

function CmsEditMenuOpen(itemId) {
    if (cmseditmenushow != itemId) {
        CmsEditMenuCancelTimer();
        CmsEditMenuClose();
    
        var pos = $('#' + itemId).offset();
        cmseditmenuitem = $('#' + itemId + 'menu').css({ 'display': 'block', 'left': pos.left + 'px', 'top': pos.top + 'px' });
        $('#editmenubackground').css({ 'display': 'block', 'left': pos.left + 'px', 'top': pos.top + 'px', 'width': $('#' + itemId).width() + 'px', 'height': $('#' + itemId).height() + 'px' });
    }
}

function CmsEditMenuClose() {
    if (cmseditmenuitem) {
        cmseditmenuitem.css('display', 'none');
        $('#editmenubackground').css('display', 'none');
    }
    cmseditmenushow = '';
}

function CmsEditMenuTimer(itemId) {
    if (cmseditmenushow != itemId) {
        cmseditmenuclosetimer = window.setTimeout(CmsEditMenuClose, cmseditmenutimeout);
    }
}

function CmsEditMenuCancelTimer() {
    if (cmseditmenuclosetimer) {
        window.clearTimeout(cmseditmenuclosetimer);
        cmseditmenuclosetimer = null;
    }
}

function CmsEditMenuCloseOpen(itemId) {
    CmsEditMenuCancelTimer();
    CmsEditMenuClose();
    cmseditmenushow = itemId;
}