/**
 * Magento
 *
 * NOTICE OF LICENSE
 *
 * This source file is subject to the Academic Free License (AFL 3.0)
 * that is bundled with this package in the file LICENSE_AFL.txt.
 * It is also available through the world-wide-web at this URL:
 * http://opensource.org/licenses/afl-3.0.php
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@magentocommerce.com so we can send you a copy immediately.
 *
 * DISCLAIMER
 *
 * Do not edit or add to this file if you wish to upgrade Magento to newer
 * versions in the future. If you wish to customize Magento for your
 * needs please refer to http://www.magentocommerce.com for more information.
 *
 * @category    Varien
 * @package     js
 * @copyright   Copyright (c) 2010 Magento Inc. (http://www.magentocommerce.com)
 * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
 */
/**
 * @classDescription simple Navigation with replacing old handlers
 * @param {String} id id of ul element with navigation lists
 * @param {Object} settings object with settings
 */
var mainNav = function(){

    var main = {
        obj_nav: $(arguments[0]) || $("nav"),
        
        settings: {
            show_delay: 0,
            hide_delay: 0,
            _ie6: /MSIE 6.+Win/.test(navigator.userAgent),
            _ie7: /MSIE 7.+Win/.test(navigator.userAgent)
        },
        
        init: function(obj, level){
            obj.lists = obj.childElements();
            obj.lists.each(function(el, ind){
                main.handlNavElement(el);
                if ((main.settings._ie6 || main.settings._ie7) && level) {
                    main.ieFixZIndex(el, ind, obj.lists.size());
                }
            });
            if (main.settings._ie6 && !level) {
                document.execCommand("BackgroundImageCache", false, true);
            }
        },
        
        handlNavElement: function(list){
            if (list !== undefined) {
                list.onmouseover = function(){
                    main.fireNavEvent(this, true);
                };
                list.onmouseout = function(){
                    main.fireNavEvent(this, false);
                };
                if (list.down("ul")) {
                    main.init(list.down("ul"), true);
                }
            }
        },
        
        ieFixZIndex: function(el, i, l){
            if (el.tagName.toString().toLowerCase().indexOf("iframe") == -1) {
                el.style.zIndex = l - i;
            }
            else {
                el.onmouseover = "null";
                el.onmouseout = "null";
            }
        },
        
        fireNavEvent: function(elm, ev){
            if (ev) {
                elm.addClassName("over");
                elm.down("a").addClassName("over");
                if (elm.childElements()[1]) {
                    main.show(elm.childElements()[1]);
                }
            }
            else {
                elm.removeClassName("over");
                elm.down("a").removeClassName("over");
                if (elm.childElements()[1]) {
                    main.hide(elm.childElements()[1]);
                }
            }
        },
        
        show: function(sub_elm){
            if (sub_elm.hide_time_id) {
                clearTimeout(sub_elm.hide_time_id);
            }
            sub_elm.show_time_id = setTimeout(function(){
                if (sub_elm.className == "wiogmap") {
                    if (!sub_elm.hasClassName("shown-sub-wiogmap")) {
                        sub_elm.addClassName("shown-sub-wiogmap");
                    }
                }
                else 
                    if (sub_elm.className == "about-us") {
                        if (!sub_elm.hasClassName("shown-sub-about-us")) {
                            sub_elm.addClassName("shown-sub-about-us");
                        }
                    }
                    else {
                        if (!sub_elm.hasClassName("shown-sub")) {
                            sub_elm.addClassName("shown-sub");
                        }
                    }
            }, main.settings.show_delay);
        },
        
        hide: function(sub_elm){
            if (sub_elm.show_time_id) {
                clearTimeout(sub_elm.show_time_id);
            }
            sub_elm.hide_time_id = setTimeout(function(){
            
                if (sub_elm.hasClassName("shown-sub")) {
                    sub_elm.removeClassName("shown-sub");
                }
                
                if (sub_elm.hasClassName("shown-sub-wiogmap")) {
                    sub_elm.removeClassName("shown-sub-wiogmap");
                }
				
				if (sub_elm.hasClassName("shown-sub-about-us")) {
                    sub_elm.removeClassName("shown-sub-about-us");
                }
                
            }, main.settings.hide_delay);
        }
        
    };
    if (arguments[1]) {
        main.settings = Object.extend(main.settings, arguments[1]);
    }
    if (main.obj_nav) {
        main.init(main.obj_nav, false);
    }
};

document.observe("dom:loaded", function(){
    //run navigation without delays and with default id="#nav"
    //mainNav();
    
    //run navigation with delays
    mainNav("nav", {
        "show_delay": "100",
        "hide_delay": "100"
    });
});

