sideNavHideTimeout = null;
allSideNavHideTimeout = null;

function showChildUl(){
	clearTimeout(allSideNavHideTimeout);
	neighbours = this.parentNode.childNodes;
	for (var i = 0; i < neighbours.length; i++) {
	    hideChildUls(neighbours[i]);
	}
	children = this.childNodes;
	if (children) {
	    for (var i = 0; i < children.length; i++) {
	        if (children[i].tagName == "UL") {
	            children[i].style.visibility = 'visible';
	            break;
	        } 
	    }
	}
}

function hideAllShedule(){
	sideNavElement = document.getElementById("sideNav");
	allSideNavHideTimeout = setTimeout(hideAll, 1000);
}

function hideAll(element){
	sideNavElementChildren = document.getElementById('sideNav').childNodes;
	for (var i = 0; i < sideNavElementChildren.length; i++) {
	    //top li elements
	    if (sideNavElementChildren[i].hasChildNodes()) {
	        sideNavElementChildrenChildren = sideNavElementChildren[i].childNodes;
	        for (k = 0; k < sideNavElementChildrenChildren.length; k++) {
	            hideChildUls(sideNavElementChildrenChildren[k]);
	        }
	    }
	}
}

function hideChildUls(element) {
    if (element.hasChildNodes()) {
        var children = element.childNodes;
        for (var i = 0; i < children.length; i++) {
            if (children[i].tagName == "UL") {
                children[i].style.visibility = 'hidden';
            }
            hideChildUls(children[i]);
        }
    }
}

function arrangeSideNav(){
    var arVersion = navigator.appVersion.split("MSIE");
    var version = parseFloat(arVersion[1]);

    attachAction(document.getElementById('sideNav'), "mouseout", hideAllShedule);

	sideNavElementChildren = document.getElementById('sideNav').childNodes;
	for (var i = 0; i < sideNavElementChildren.length; i++) {
	    //top li elements
	    if (sideNavElementChildren[i].hasChildNodes()) {
	        sideNavElementChildrenChildren = sideNavElementChildren[i].childNodes;
	        for (var k = 0; k < sideNavElementChildrenChildren.length; k++) {
	            //inner span or uls
	            if (sideNavElementChildrenChildren[k].tagName == 'UL') {
	                lis = sideNavElementChildrenChildren[k].getElementsByTagName('li');
	                for (var j = 0; j < lis.length; j++){
	                    var id = i+'-'+k+'-'+j;
	                    lis[j].onmouseover = showChildUl;
	                    uls = lis[j].getElementsByTagName('ul');
	                    for (var l = 0; l < uls.length; l++){
	                        uls[l].style.visibility = 'hidden';
	                        uls[l].style.display = 'block';
	                        if ((version >= 5.5 && version < 7) && (document.body.filters)) {
                                var iframe = document.createElement("iframe");
				                iframe.style.left = '0';
				                iframe.style.top = '0';
				                iframe.setAttribute('frameBorder', 'no');
				                iframe.setAttribute('src', '/shop/blankpage.htm');
				                iframe.style.width = (parseInt(uls[l].offsetWidth, 10) - 4)+'px';
				                iframe.style.height = (parseInt(uls[l].offsetHeight, 10) - 4)+'px';
	                            uls[l].appendChild(iframe);
	                        }
	                    }
	                }
	            }
	        }
	    }
	}
}

function attachAction(object, event, action) {
  try {
   	if (object.addEventListener) {
		object.addEventListener(event, action, false);
	} else if (object.attachEvent) {
		object.attachEvent("on"+event, action);
	} else if (document.getElementById) {
		object.onload = action;
	}
  } catch (e) {}
}

attachAction(window, "load", arrangeSideNav);
