var selectedMenu = '';

function preloadImage(elem) {
    var imgs = elem.select('img');
    var imgArray = new Array();
    
    imgs.each(function(imgElem) {
        imgArray[0] = new Image;
        imgArray[0].src = imgElem.src;    // precarica versione normale
        rollFile = imgElem.src.sub(/_norm\.([^\\]+)$/, '_hover.#{1}');
        imgArray[1] = new Image;
        imgArray[1] = rollFile;   // precarica versione rolled
    });
}

function normalMenu(event, elem) {
    var element = elem != undefined ? elem : Event.element(event);
    
    if (element.tagName != 'IMG') {
        element = element.down('img');
    }
    
    var div_container = element.up('div');
    
    if (elem || div_container.id != selectedMenu) {
        var imageFile = element.src;
        imageFile = imageFile.sub(/_(hover|selected)\.([^\\]+)$/, '_norm.#{2}');
        element.src = imageFile;
        element.style.cursor = '';
    }
}

function rollMenu(event) {
    var element = Event.element(event);
    
    if (element.tagName != 'IMG') {
        element = element.down('img');
    }
    
    var div_container = element.up('div');
    
    if (div_container.id != selectedMenu) {
        var imageFile = element.src;
        imageFile = imageFile.sub(/_norm\.([^\\]+)$/, '_hover.#{1}');
        element.src = imageFile;
        element.style.cursor = 'pointer';
    }
}

function changeSecondaryMenu(event, elem) {
    var clickedMenu = elem != undefined ? elem : Event.element(event).up('div');
    var secondary_menus = $$('div.secondary_menu');
    
    if (selectedMenu != '') {
        normalMenu(null, $(selectedMenu));
    }
    
    var selectedImage = clickedMenu.down('img');
    var imageFile = selectedImage.src;
    imageFile = imageFile.sub(/_(norm|hover)\.([^\\]+)$/, '_selected.#{2}');
    selectedImage.src = imageFile;
    selectedImage.style.cursor = '';
    
    selectedMenu = clickedMenu.id;
    var selected_secondary_menu = selectedMenu + "_sec_menu";
    
    secondary_menus.each(function(menu) {
        if (menu.id == selected_secondary_menu) {
            menu.show();
        }
        else {
            menu.hide();
        }
    });
}

function initMenu() {
    var menu_elems = $('main_menu').select('div.main_elem');
    menu_elems.each(function(elem) {
        preloadImage(elem);
        elem.observe('click', changeSecondaryMenu);
        elem.observe('mouseover', rollMenu);
        elem.observe('mouseout', normalMenu);
        
        if (elem.hasClassName('selectedMenu')) {
            changeSecondaryMenu(null, elem);
        }
    });
    
    menu_elems = $$('div.sec_elem');
    menu_elems.each(function(elem) {
        preloadImage(elem);
        elem.observe('mouseover', rollMenu);
        elem.observe('mouseout', normalMenu);
    });
}

Event.observe(window, 'load', initMenu);