var nO = new Object()

nO.version = parseFloat(navigator.appVersion)
nO.opera = (navigator.appName=="Opera" || navigator.userAgent.indexOf("Opera")>-1) ? 1:0
nO.opera = (navigator.appName=="Firefox" || navigator.userAgent.indexOf("Firefox")>-1) ? 1:0
nO.ie = nO.da = (document.all && !nO.opera) ? 1:0
nO.ns4 = nO.dl = (navigator.appName=="Netscape" && nO.version<5) ? 1:0
nO.w3c = (document.getElementById && !nO.da) ? 1:0
nO.win = (navigator.userAgent.toLowerCase().indexOf("win") > 0) ? 1:0
nO.mac = (navigator.userAgent.toLowerCase().indexOf("mac") > 0) ? 1:0
if(nO.ie) nO.realVersion = parseFloat(navigator.appVersion.match(/MSIE\s(\d+\.\d+)/)[1])
else if(nO.w3c) nO.realVersion = parseFloat(navigator.userAgent.match(/[\d\.]+$/)[0])
else if(nO.ns4) nO.realVerison = nO.version

nO.all = new Array()
nO.makeAllObj = function(objParent) {
	if(!objParent){nO.all = new Array();objParent=window}
	var arrCol = [objParent.document.layers, objParent.document.images, objParent.document.forms]
	for (var z=0; z<arrCol.length; z++) {
		for (var t=0; t<arrCol[z].length; t++) {
			var strCurId = arrCol[z][t].name
			if (strCurId!="" && !nO.all[strCurId]){
				if(strCurId.indexOf("_js_layer") > -1) for(var k in objParent.document.layers) if(objParent.document.layers[k].name==strCurId){strCurId = k;break}
				nO.all[strCurId] = arrCol[z][t]
				if(z == 0) nO.makeAllObj(arrCol[z][t])
				else nO.all[strCurId].parentLayer = objParent
			}
		}
	}
}

nO.getObj = function(strObj) {
	if(typeof(strObj)=="object") return strObj
	else{
		var obj
		if (nO.ie) obj = document.all[strObj]
		else if (nO.w3c) {
			obj = document.getElementById(strObj)
			if (!obj) obj = document.getElementsByName(strObj)[0]
		} 
		else if(nO.ns4) {
			if (!nO.all[strObj]) nO.makeAllObj()
			obj = nO.all[strObj]
		}
		return obj
	}
}

nO.show = function(strLayer) {
	var objLayer=nO.getObj(strLayer)
	if(objLayer){
		if (nO.ie||nO.w3c||nO.opera) objLayer.style.visibility = "visible";
		else if (nO.ns4) objLayer.visibility = "show";
	}
}

nO.hide = function(strLayer) {
	var objLayer=nO.getObj(strLayer)
	if(objLayer){
		if (nO.ie||nO.w3c||nO.opera) objLayer.style.visibility = "hidden";
		else if (nO.ns4) objLayer.visibility = "hide";
	}
}

nO.getX = function(strLayer) {
	var objLayer=nO.getObj(strLayer)
	if(objLayer){
		if(nO.ie||nO.w3c||nO.opera) return objLayer.offsetLeft;
		else if (nO.ns4) return objLayer.left;
	}
}

nO.getY = function(strLayer) {
	var objLayer=nO.getObj(strLayer)
	if(objLayer){
		if(nO.ie||nO.w3c||nO.opera) return objLayer.offsetTop;
		else if (nO.ns4) return objLayer.top;
	}
}

nO.getW = function(strLayer) {
	var objLayer=nO.getObj(strLayer)
	if(objLayer){
		if(nO.ie) return objLayer.style.pixelWidth
		else if(nO.ns4) return objLayer.clip.width
		else if(nO.w3c){
			var style=getComputedStyle(objLayer,null);
			return parseInt(style.getPropertyValue('width'));
		}
	}
}

nO.getH = function(strLayer) {
	var h
	var objLayer=nO.getObj(strLayer)
	if(objLayer){
		if (nO.ie || nO.w3c) {
			var c = objLayer.style.clip
			if (c.length > 0) {
				var arC = c.substr(c.indexOf("(") + 1).split(" ")
				h = parseInt(arC[2])
			} 
			else
				h = null
		} 
		else if(nO.ns4) h = objLayer.clip.height
	}
	return h
}

nO.getScrollH = function(strLayer) {
	var objLayer=nO.getObj(strLayer)
	if(objLayer){
		if (nO.ie) return (nO.mac) ? objLayer.offsetHeight : objLayer.scrollHeight
		else if(nO.ns4) return objLayer.document.height
		else if(nO.w3c) return objLayer.offsetHeight 
	}
}

nO.getScrollW = function(strLayer) {
	var objLayer=nO.getObj(strLayer)
	if(objLayer){
		if (nO.ie) return (nO.mac) ? objLayer.offsetWidth : objLayer.scrollWidth
		else if(nO.ns4) return objLayer.document.width
		else if(nO.w3c) return objLayer.offsetWidth 
	}
}

nO.getVis = function(strLayer){
	var objLayer=nO.getObj(strLayer)
	if(objLayer){
		if(nO.ie||nO.w3c) return (objLayer.style.visibility=="hidden") ? false:true
		else if(nO.ns4) return !objLayer.hidden
	}
}

nO.moveTo = function(strLayer, x, y) {
	var objLayer=nO.getObj(strLayer)
	if(objLayer){
		if (nO.ie||nO.opera) {
			if (x || x==0) objLayer.style.pixelLeft = x
			if (y || y==0) objLayer.style.pixelTop = y
		} 
		else if (nO.ns4) {
			if (x || x==0) objLayer.left = x
			if (y || y==0) objLayer.top = y
		} 
		else if (nO.w3c) {
			if (x || x==0) objLayer.style.left = x + "px";
			if (y || y==0) objLayer.style.top = y + "px";
		}		
	}
}

nO.moveBy = function(strLayer, dx, dy) {
	var objLayer=nO.getObj(strLayer)
	if(objLayer){
		if (nO.ie||nO.opera) {
			if (dx) {
				objLayer.style.pixelLeft += dx;
			}
			if (dy) objLayer.style.pixelTop += dy;
		} 
		else if (nO.ns4) {
			if (dx) objLayer.left += dx;
			if (dy) objLayer.top += dy;
		} 
		else if (nO.w3c) {
			if (dx) objLayer.style.left = (parseInt(objLayer.style.left) + dx) + "px";
			if (dy) objLayer.style.top = (parseInt(objLayer.style.top) + dy) + "px";
		}
	}
}

nO.clip = function(strLayer,t,r,b,l) {
	var objLayer=nO.getObj(strLayer)
	if(objLayer){
		if (nO.ie||nO.w3c) objLayer.style.clip = "rect("+t+"px "+r+"px "+b+"px "+l+"px)";
		else if (nO.ns4) {
			objLayer.clip.top = t;
			objLayer.clip.right = r;
			objLayer.clip.bottom = b;
			objLayer.clip.left = l;
		}
	}
}

nO.catchMouseEvent = function(strEventName, strHandlerFunction, strLayer, detachEvent){
	if (!(typeof (strLayer) == "string" && !nO.getObj(strLayer))) {
		objHandlerFunction = eval(strHandlerFunction)
		if(strLayer) var objTarget = (nO.ns4) ? nO.getObj(strLayer).document : nO.getObj(strLayer)
		else var objTarget = document
	
		if(nO.ns4) objTarget.captureEvents(Event[strEventName.toUpperCase()])
		objTarget["on"+strEventName] = (detachEvent) ? null : objHandlerFunction
	}
}

nO.getEventY = function(evt){
		if(nO.ns4) return evt.pageY
		else if (nO.ie) return window.event.clientY
		else if (nO.w3c) return evt.clientY
}

nO.createLayer = function(id, left, top, width, zIndex, content, parentLayer){

	if(parentLayer) parentLayer = nO.getObj(parentLayer)
	else parentLayer = (nO.ns4) ? window : document.body
	top = top || 0; left = left || 0; width = width || 0; content = content || " "

	if(nO.ie || nO.w3c){

		if(!(nO.ie && nO.realVersion<5)){
		
			var curLay = document.createElement("DIV");
			curLay.id = id
			curLay.style.position = "absolute"
		}
		else{
			parentLayer.innerHTML += "<div id='" + id + "' style='position:absolute;'></div>"
			var curLay = nO.getObj(id)
		}

		curLay.style.left = left + "px"
		curLay.style.top = top + "px"
		curLay.style.width = width + "px"
		curLay.style.zIndex = zIndex || 1
		curLay.innerHTML = content
		if(!(nO.ie && nO.realVersion<5)) parentLayer.appendChild(curLay)
	}

	else if(nO.ns4){
		var curLay = new Layer(width, parentLayer)
		curLay.left = left
		curLay.top = top
		curLay.visibility = "show"
		curLay.zIndex = zIndex || 1
		curLay.document.open()
		curLay.document.write(content)
		curLay.document.close()
		if(parentLayer) parentLayer.document.layers[id] = curLay
		else document.layers[id] = curLay
	}
}

nO.getImgPos = function(strImgName, blnParentPos) {
	var objImg=nO.getObj(strImgName)
	var objRet = new Object()
	if(objImg){
		var objParent
		if (nO.ns4) {
			objRet.x = objImg.x
			objRet.y = objImg.y
			if (!blnParentPos) {
				objParent = objImg.parentLayer
				while (objParent != window && objParent) {
					objRet.x += objParent.left
					objRet.y += objParent.top
					objParent = objParent.parentLayer
				}
			}
		} else {
			objRet.x = objImg.offsetLeft
			objRet.y = objImg.offsetTop
			if (nO.w3c) {
				objParent = objImg.parentNode
				if (objParent == document.body){
					objRet.x += document.body.offsetLeft
					objRet.y += document.body.offsetTop
				}
				else if (blnParentPos){
					objRet.x -= objParent.offsetLeft
					objRet.y -= objParent.offsetTop
				}
			} 
			else if (nO.ie) {
				objParent = objImg.offsetParent
				if (!blnParentPos) {
					objParent = (nO.ie) ? objImg.offsetParent : objImg.parentNode
					while (objParent != document.body) {
						objRet.x += objParent.offsetLeft
						objRet.y += objParent.offsetTop					
						objParent = objParent.offsetParent
					}
				}
			}
		}
	}	
	return objRet
}

nO.getImgW = function(strImgName) {
	var objImg=nO.getObj(strImgName)
	var objRet = new Object()
	if(objImg){
		var objParent
		objRet = objImg.width
	}	
	return objRet
}