/**
 * Magento Enterprise Edition
 *
 * NOTICE OF LICENSE
 *
 * This source file is subject to the Magento Enterprise Edition License
 * that is bundled with this package in the file LICENSE_EE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://www.magentocommerce.com/license/enterprise-edition
 * 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://www.magentocommerce.com/license/enterprise-edition
 */

/**
 * @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]) || $("anav") || $("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.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");
                }
            }, 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("anav", {"show_delay":"100","hide_delay":"100"});
	mainNav("nav", {"show_delay":"100","hide_delay":"100"});
});

// BOF :: Code Added to set different time for Cart page - ZEON
//var delay = 100; /* milli seconds */
var delay = delayTime;
var delayOnMouseOut = delayTimeOnMouseOut;
// EOF :: Code Added to set different time for Cart page - ZEON
function attachHooks() {
	Prototype.Browser.IE6 = Prototype.Browser.IE && parseInt(navigator.userAgent.substring(navigator.userAgent.indexOf("MSIE")+5))==6;
	
	if(!Prototype.Browser.IE6){
		var menu = document.getElementById("anav");
		
		 try {
	            var menuItems = menu.getElementsByTagName("li");
	   
				currentHover = menuItems[0];
			   
				for (var i = 0; i < menuItems.length; i++) {
					menuItems[i].onmouseover = function () {activateMenuWithDelay(this);};
					menuItems[i].onmouseout = function () {deactivateMenuWithDelay(this);};
				}
	
	     }
	     catch (e) {}
	}
}
 
function activateMenuWithDelay(ele) {
    if(ele.timer) {
        clearTimeout(ele.timer);
    }
    ele.timer = setTimeout(function(){activateShowMenu(ele)}, delay);
}
  
function activateShowMenu(ele) {
    var parent = ele;
    //parent.className = "over";
    Element.addClassName(parent, 'over');  
}
 
function deactivateMenu(ele) {
    var parent = ele;
    // parent.className = " ";

    Element.removeClassName(parent, 'over');
}
 
function deactivateMenuWithDelay(ele) {
    if(ele.timer) {
        clearTimeout(ele.timer);
    }
    ele.timer = setTimeout(function(){deactivateMenu(ele)}, delayOnMouseOut);
}
 
function initMenuDelay() {
    attachHooks();
    deactivateMenu();
}
 
function addLoadEvent(func) {
    var oldonload = window.onload;
    if (typeof window.onload != 'function') {
         window.onload = func;
    } else {
         window.onload = function() {
         oldonload();
         func();
         }
    }
}
addLoadEvent(attachHooks);

