var isNS = ((navigator.appName == "Netscape") ? 1 : 0);

function getLayer(layerID,noStyle) {
var layerObject = ((isNS) ? document.layers[layerID] : document.all[layerID]);
layerObject = (((!isNS) && (!noStyle)) ? layerObject.style : layerObject);
return layerObject;
}

function showLayer(layerID) {
var layerObject = getLayer(layerID);
layerObject.visibility = "visible";
}

function hideLayer(layerID) {
var layerObject = getLayer(layerID);
layerObject.visibility = "hidden";
}

function moveLayerTo(layerID,topPosition,leftPosition) {
var layerObject = getLayer(layerID);
layerObject.top = topPosition;
layerObject.left = leftPosition;
}

function moveLayerBy(layerID,moveTop,moveLeft) {
var layerObject = getLayer(layerID);
if (isNS) {
layerObject.moveBy(moveLeft, moveTop);
} else {
layerObject.pixelLeft += moveLeft;
layerObject.pixelLeft += moveTop;
}
}

function getTop(layerID) {
var layerObject = getLayer(layerID);
var layerTop = ((isNS) ? layerObject.top : layerObject.pixelTop);
return layerTop;
}

function getLeft(layerID) {
var layerObject = getLayer(layerID);
var layerLeft = ((isNS) ? layerObject.left : layerObject.pixelLeft);
return layerLeft;
}

function slideObject(objectName,slideTop,slideLeft,slideSpeed,stepSkip) {
var layerObject = getLayer(objectName);
var objTop = getTop(objectName);
var objLeft = getLeft(objectName);
for (x = 0; x <= stepSkip; x++) {
if (objTop != slideTop) { if (objTop > slideTop) { objTop--; } else { objTop++; } }
if (objLeft != slideLeft) { if (objLeft > slideLeft) { objLeft--; } else { objLeft++; } }
}
moveLayerTo(objectName,objTop,objLeft);
if ((objTop != slideTop) || (objLeft != slideLeft)) {
var timeOutCommand = "slideObject('" + objectName + "'," + slideTop + "," + slideLeft + "," + slideSpeed + "," + stepSkip + ");";
setTimeout(timeOutCommand,slideSpeed);
}
}

function doSlideIn(objectName,newTop,newLeft,slideSpeed,stepSkip) {
var slideTop = getTop(objectName);
var slideLeft = getLeft(objectName);
moveLayerTo(objectName,newTop,newLeft);
showLayer(objectName);
slideObject(objectName,slideTop,slideLeft,slideSpeed,stepSkip);
}

function calculateSumOffset(idItem, offsetName) {
	var totalOffset = 0;
	var item = eval('idItem');
	do {
		totalOffset += eval('item.'+offsetName);
		item = eval('item.offsetParent');
	} while (item != null);
	return totalOffset;
}

function getObjectTop(obj) {
var objLayer = getLayer(obj);
return ((isNS) ? objLayer.pageY : calculateSumOffset(obj, 'offsetTop'));
}

function getObjectLeft(obj) {
var objLayer = getLayer(obj);
return ((isNS) ? objLayer.pageX : calculateSumOffset(obj, 'offsetLeft'));
}

function getObjectWidth(obj) {
var objLayer = getLayer(obj,1);
return ((isNS) ? objLayer.clip.width : objLayer.offsetWidth);
}

function getObjectHeight(obj) {
var objLayer = getLayer(obj,1);
return ((isNS) ? objLayer.clip.height : objLayer.offsetHeight);
}

function getObjectBottom(obj) {
return (getObjectTop(obj) + getObjectHeight(obj));
}

function getObjectRight(obj) {
return (getObjectLeft(obj) + getObjectWidth(obj));
}

function calculateSumOffset(idItem, offsetName) {
	var item = getLayer(idItem,1);
	var totalOffset = 0;
	do {
		totalOffset += eval('item.'+offsetName);
		item = eval('item.offsetParent');
	} while (item != null);
	return totalOffset;
}

