// Get layer object
function getLayerObj(layerName) {
	
	var layerObj
	
	// find layer in DOM
	if (document.getElementById) { // NS6, IE6
		layerObj = document.getElementById(layerName).style
	}
		
	return layerObj
	
}

// Get Window Width
function getWW() {

	var clwidth = 0

	if (document.body.clientWidth) { // MSIE
		clwidth = document.body.clientWidth
	} else if (window.innerWidth) { // Netscape
		clwidth = window.innerWidth
	}
	
	return clwidth
	
}

// Get Window Height
function getWH() {

	var clheight = 0

	if (document.body.clientHeight) { // MSIE
		clheight = document.body.clientHeight
	} else if (window.innerHeight) { // Netscape
		clheight = window.innerHeight
	}
	
	return clheight

}

// Center layer horizontally
function centerH(layerName) {
	
	var clwidth = getWW()
	
	if (clwidth != 0) {
		
		// Find layer object in DOM (browser specific)
		if (layerObj = getLayerObj(layerName)) {
		
			// if window width is larger than width of layer, center the layer
			if (clwidth > parseInt(layerObj.width)) {
		
				layerObj.left = (document.layers || document.getElementById) ? (clwidth - parseInt(layerObj.width)) / 2 : (clwidth - parseInt(layerObj.width)) / 2 + "px"	
		
			} else {
			
				layerObj.left = (document.layers || document.getElementById) ? 0 : "0px"
			
			}
		
		}
					
	}
	
}

// Center layer vertically
function centerV(layerName) {
	
	var clheight = getWH()
	
	if (clheight != 0) {
		
		// Find layer object in DOM (browser specific)
		if (layerObj = getLayerObj(layerName)) {
		
			// if window width is larger than width of layer, center the layer
			if (clheight > parseInt(layerObj.height)) {
		
				layerObj.top = (document.layers || document.getElementById) ? (clheight - parseInt(layerObj.height)) / 2 : (clheight - parseInt(layerObj.height)) / 2 + "px"	
		
			} else {
			
				layerObj.top = (document.layers || document.getElementById) ? 0 : "0px"
			
			}
		
		}
					
	}
	
}

// Show layer
function showLayer(layerName) {
	
	// Find layer object in DOM (browser specific)
	if (layerObj = getLayerObj(layerName)) {

		// check for Netscape 4 propriety requirements
		visible = (document.layers) ? "show" : "visible"
		
		// do visibility change			
		layerObj.visibility = visible

	}
	
}

// Slide Layer (vertically)
function slideLayerV(layerName, finalPos, incD, incT) {
	
	// Find layer object in DOM (browser specific)
	if (layerObj = getLayerObj(layerName)) {
	
		// Find out current top value
		currentTop = parseInt(layerObj.top)
			
		// Loop
		if (currentTop == finalPos) {
			 
			 // do nothing (finish)
			 
		} else {
			
			if (currentTop < finalPos) {
				
				layerObj.top = (document.layers || document.getElementById) ? (currentTop+incD) : (currentTop+incD)+"px"
						
			} else if (currentTop > finalPos) {
				
				layerObj.top = (document.layers || document.getElementById) ? (currentTop-incD) : (currentTop-incD)+"px"
	
				
			}
			
			timeoutStr = "slideLayerV('" + layerName + "'," + finalPos + "," + incD + "," + incT + ")"
			setTimeout(timeoutStr, incT)		
			
		}
	
	}
	
}

// Slide Layer (horizontally)
function slideLayerH(layerName, finalPos, incD, incT) {
	
	// Find layer object in DOM (browser specific)
	if (layerObj = getLayerObj(layerName)) {
	
		// Find out current left value
		currentLeft = parseInt(layerObj.left)
		
		// Loop
		if (currentLeft == finalPos) {
			 
			 // do nothing (finish)
			 
		} else {
			
			if (currentLeft < finalPos) {
				
				layerObj.left = (document.layers || document.getElementById) ? (currentLeft+incD) : (currentLeft+incD)+"px"
						
			} else if (currentLeft > finalPos) {
				
				layerObj.left = (document.layers || document.getElementById) ? (currentLeft-incD) : (currentLeft-incD)+"px"
	
				
			}
			
			if ((parseInt(layerObj.left) - finalPos) < incD) {
				timeoutStr = "slideLayerH('" + layerName + "'," + finalPos + "," + 1 + "," + incT + ")"
			} else {
				timeoutStr = "slideLayerH('" + layerName + "'," + finalPos + "," + incD + "," + incT + ")"
			}
			setTimeout(timeoutStr, incT)		
			
		}
		
	}
	
}

// Slide Panel
function slidePanel(layerName, finalPos, incD, incT, finishEval) {
	
	
	// Find layer object in DOM (browser specific)
	if (layerObj = getLayerObj(layerName)) {
	
		// Find out current left value
		currentLeft = parseInt(layerObj.left)

		// Get Panel layer and set width to right border's left
		layerObjPanel = getLayerObj('mainbg')
		
		// Loop
		if (currentLeft == finalPos) {
			 
			 eval(finishEval)
			 
		} else {
			
			if (currentLeft < finalPos) {
			
				layerObjPanel.width = (document.layers || document.getElementById) ? (currentLeft+incD) : (currentLeft+incD)+"px"
				layerObj.left = (document.layers || document.getElementById) ? (currentLeft+incD) : (currentLeft+incD)+"px"
				if ((finalPos - parseInt(layerObj.left)) > incD) {
					timeoutStr = "slidePanel('" + layerName + "'," + finalPos + "," + incD + "," + incT + ",\"" + finishEval + "\")"
				} else {
					timeoutStr = "slidePanel('" + layerName + "'," + finalPos + "," + 1 + "," + incT + ",\"" + finishEval + "\")"
				}
				
			} else if (currentLeft > finalPos) {

				layerObjPanel.width = (document.layers || document.getElementById) ? (currentLeft-incD) : (currentLeft-incD)+"px"
				layerObj.left = (document.layers || document.getElementById) ? (currentLeft-incD) : (currentLeft-incD)+"px"
				if ((parseInt(layerObj.left) - finalPos) < incD) {
					timeoutStr = "slidePanel('" + layerName + "'," + finalPos + "," + 1 + "," + incT + ",\"" + finishEval + "\")"
				} else {
					timeoutStr = "slidePanel('" + layerName + "'," + finalPos + "," + incD + "," + incT + ",\"" + finishEval + "\")"
				}
				
			} else {
				eval(finishEval)
			}
			

			setTimeout(timeoutStr, incT)		
			
		}
		
	}
	
}

function makeInvis(layerName) {
	if (layerObj = getLayerObj(layerName)) {
		layerObj.visibility = (document.layers || document.getElementById) ? "hidden" : "hide"
	}
}

function makeVis(layerName) {
	if (layerObj = getLayerObj(layerName)) {
		layerObj.visibility = (document.layers || document.getElementById) ? "visible" : "show"
	}
}
