var userAgent = navigator.userAgent.toLowerCase();
var is_opera = userAgent.indexOf('opera') != -1 && opera.version();
var is_moz = (navigator.product == 'Gecko') && userAgent.substr(userAgent.indexOf('firefox') + 8, 3);
var is_ie = (userAgent.indexOf('msie') != -1 && !is_opera) && userAgent.substr(userAgent.indexOf('msie') + 5, 3);

function subcatalog(o,m,x,y){
	var li = o, ul = li.getElementsByTagName("ul");
	ul = ul.length ? ul[0] : false;
	
	if(m && ul){
		//li.className = "hover";
		with(ul.style){
			top = moveYbySlicePos(isNaN(y)?18:y,li)+"px";
			left = moveXbySlicePos(isNaN(x)?0:x,li)+"px";
			display = "block";
		}
		if(is_ie){
			if(document.getElementById("layer_iframe")){
				document.getElementById("layer_iframe").style.left = ul.style.left;
				document.getElementById("layer_iframe").style.top = ul.style.top;
				document.getElementById("layer_iframe").style.visibility = "visible";
			}else{
				createIframeLayer(ul);
			}
		}
	}else if(ul){
		//li.className = "";
		ul.style.display = "none";
		if(is_ie && document.getElementById("layer_iframe")){
			document.getElementById("layer_iframe").style.visibility = "hidden";
			/*try{
				document.getElementById("layer_iframe").removeNode(true);
			}catch(e){
				document.getElementById("layer_iframe").parentNode.removeChild(document.getElementById("layer_iframe"));
			}*/
		}
	}
}
function createIframeLayer(menu){var layer = document.createElement('iframe');layer.tabIndex = '-1';layer.src = 'javascript:""';layer.id = 'layer_iframe';layer.frameBorder = '0';layer.scrolling = 'no';layer.style.position = 'absolute';layer.style.zIndex = 1;layer.style.left = menu.style.left;layer.style.top = menu.style.top;layer.style.filter = 'alpha(opacity=0)';layer.style.MozOpacity = 0;layer.style.opacity = 0;layer.style.width = menu.offsetWidth + 'px';layer.style.height = menu.offsetHeight + 'px';menu.parentNode.appendChild(layer);return layer;}
function moveXbySlicePos (x, obj) {if (!document.layers) {var onWindows = navigator.platform ? navigator.platform == "Win32" : false;var macIE45 = document.all && !onWindows && getExplorerVersion() == 4.5;var par = obj;var lastOffset = 0;while(par){if( par.leftMargin && ! onWindows ) x += parseInt(par.leftMargin);if( (par.offsetLeft != lastOffset) && par.offsetLeft ) x += parseInt(par.offsetLeft);if( par.offsetLeft != 0 ) lastOffset = par.offsetLeft;par = macIE45 ? par.parentElement : par.offsetParent;}} else if (obj.x) x += obj.x;return x;}
function moveYbySlicePos (y, obj) {if(!document.layers) {var onWindows = navigator.platform ? navigator.platform == "Win32" : false;var macIE45 = document.all && !onWindows && getExplorerVersion() == 4.5;var par = obj;var lastOffset = 0;while(par){if( par.topMargin && !onWindows ) y += parseInt(par.topMargin);if( (par.offsetTop != lastOffset) && par.offsetTop ) y += parseInt(par.offsetTop);if( par.offsetTop != 0 ) lastOffset = par.offsetTop;par = macIE45 ? par.parentElement : par.offsetParent;}} else if (obj.y >= 0) y += obj.y;return y;}