/*
Script by Neil McCorrison
http://neilm.com
*/




function objectStyle(name) {
	if (document.getElementById) {
		return document.getElementById(name).style;
	}
	else if (document.all) {
		return document.all[name].style;
	}
	else if (document.layers) {
		return document.layers[name];
	}
}
netscape = navigator.appName == "Netscape" ? true : false;
///////////////////////////////////////////////////////////////////////
function setLayerPosition(layerName,left,top) {
	setLayerLeft(layerName,left);
	setLayerTop(layerName,top);
 }
///////////////////////////////////////////////////////////////////////
function setLayerTop(layerName, pos)
{
	objectStyle(layerName).top = pos;
	return;
	if(netscape)
		document.layers[layerName].top = pos;
	else
		document.all[layerName].style.top = pos+"px";
}
///////////////////////////////////////////////////////////////////////
function getLayerTop(layer_str) {
	return objectStyle(layerName).top;
	return;
	if(netscape) {
		return parseInt(document.layers[layer_str].top);
	}
	else {
		return parseInt( document.all[layer_str].style.top.substring(0, document.all[layer_str].style.top.length-2) );
	}
}
///////////////////////////////////////////////////////////////////////
function setLayerLeft(layerName, pos) {
	objectStyle(layerName).left = pos;
	return;
	if(netscape)
		document.layers[layerName].left = pos;
	else
		document.all[layerName].style.left = pos+"px";
}
///////////////////////////////////////////////////////////////////////
function getLayerLeft(layer_str) {
	return parseInt(objectStyle(layerName).left);
	return;
	if(netscape) {
		return document.layers[layer_str].left;
	}
	else {
		return parseInt( document.all[layer_str].style.left.substring(0, document.all[layer_str].style.left.length-2) );
	}
}

///////////////////////////////////////////////////////////////////////
function getLayerWidth(layer_str) {
	return parseInt(objectStyle(layerName).width);
	return;
	if(netscape) {
	
		return document.layers[layer_str].width;
	}
	else {	
		return parseInt( document.all[layer_str].style.width.substring(0, document.all[layer_str].style.width.length-2) );
	}
}

///////////////////////////////////////////////////////////////////////
function getLayerHeight(layer_str) {
	return parseInt(objectStyle(layerName).height);
	return;
	if(netscape) {
		return document.layers[layer_str].height;
	}
	else {
		return parseInt( document.all[layer_str].style.height.substring(0, document.all[layer_str].style.height.length-2) );
	}
}

///////////////////////////////////////////////////////////////////////
function setLayerVisibility(layerName, vis) {
	objectStyle(layerName).visibility = (vis) ? "visible" : "hidden";
	return;
	var vis_string;
	if(vis)
		vis_string = "visible";
	else
		vis_string = "hidden";

	if(netscape)
			document.layers[layerName].visibility = vis_string;
	else
			document.all[layerName].style.visibility = vis_string;
}
///////////////////////////////////////////////////////////////////////
function checkLayerVisibility(layerName) {
	return (objectStyle(layerName).visibility == "visible") ? true : false;
	return;
	if (netscape) {
			if (document.layers[layerName].visibility != 'hide')
				return true;
			else
				return false;
	}
	else {
			if (document.all[layerName].style.visibility == 'visible')
				return true;
			else
				return false;
	}
}
///////////////////////////////////////////////////////////////////////
function setLayerZIndex(layerName, z_index) {
	objectStyle(layerName).zIndex = z_index;
	return;
	if(netscape)
		document.layers[layerName].zIndex = z_index;
	else
		document.all[layerName].style.zIndex = z_index;

}
///////////////////////////////////////////////////////////////////////
function writeLayerContents(layerName, text) {
	document.getElementById(layerName).innerHTML = text;
	return;
	if(netscape)
	{
		document.layers[layerName].document.open();
		document.layers[layerName].document.clear();
		document.layers[layerName].document.write(text);
		document.layers[layerName].document.close();
	}
	else
		document.all[layerName].innerHTML = text;

}
///////////////////////////////////////////////////////////////////////
function setLayerImgSrc(layerName,imageName,newSource) {
	document.getElementById(imageName).src = newSource;
	return;
	if ( netscape )
		document.layers[layerName].document.images[imageName].src = newSource;
	else
		document.images[imageName].src = newSource;
}
///////////////////////////////////////////////////////////////////////
function layerToCoordinates(layerName,endX,endY,pixelsToMove) { // endX and endY must be divisible by pixelsToMove
		objectMoving = true;
		layerX = getLayerLeft(layerName);
		layerY = getLayerTop(layerName);
		if (layerX < endX)
			xDirection = 1;
		else if (layerX > endX)
			xDirection = -1;	
		else
			xDirection = 0;	

		if (layerY < endY )
			yDirection = 1;
		else if (layerY > endY)
			yDirection = -1;	
		else 
			yDirection = 0;

		layerX = layerX+pixelsToMove*xDirection;
		layerY = layerY+pixelsToMove*yDirection;
		setLayerPosition(layerName,layerX,layerY);

		if (layerX < endX || layerX > endX || layerY < endY || layerY > endY) {
			objectMovingTimeout = setTimeout('layerToCoordinates(\''+layerName+'\','+endX+','+endY+','+pixelsToMove+')',10);
		}
}



/* 
Drag and drop script by Paul Anderson, copyright 2001 CNET Builder.com.
May be freely used with attribution. Not for resale. This script will make 
content draggable that's marked up as follows:

<DIV id="itemID" style="top:50;left:50;width:50;height:50;position:absolute;">
<A href="#" onmouseover="drag('itemID')" onfocus="this.blur()">
<DRAGGABLE CONTENTS></A>
</DIV>

Make both instances of 'itemID' a unique label for that draggable item,
and adjust 'top', 'left', 'width', and 'height' values appropriately.
Navigator 4.x requires that these DIVs not be nested in other positioned
DIV or LAYER elements.

Remove indicated line in dragf() to keep dragged element from moving to front.
*/

var dragOn=0
var dragDiv=null;
var dragX=0,dragY=0;
var zMax=0;
var dragInit=0;

function initDrag() {
if (document.layers) document.captureEvents(Event.MOUSEMOVE|Event.MOUSEDOWN|Event.MOUSEUP);
document.onmousemove=dragf;
document.onmousedown=dragf;
document.onmouseup=dragf;
dragDiv=null;
dragInit=1;
if (document.getElementsByTagName) zMax=document.getElementsByTagName("DIV").length;
else if (document.all) zMax=document.body.all.tags("DIV").length;
else if (document.layers) zMax=document.layers.length;
}

mouseLeft=0;
mouseTop=0;

function dragf(arg) {
ev=arg?arg:event;

    if (navigator.appName == 'Netscape') {
		mouseLeft=ev.pageX;
		mouseTop=ev.pageY;
	}
	else {
		mouseLeft=event.x;
		mouseTop=event.y;
	}

if (dragDiv && ev.type=="mousedown") {
	dragOn=1;
	dragX=(ev.pageX?ev.pageX:ev.clientX)-parseInt(dragDiv.style.left);
	dragY=(ev.pageY?ev.pageY:ev.clientY)-parseInt(dragDiv.style.top);
	//dragDiv.style.zIndex=zMax++; // remove this line to preserve z-indexes
	return false;
	}
if (ev.type=="mouseup") {
	dragOn=0;
	}
if (dragDiv && ev.type=="mousemove" && dragOn) {
	dragDiv.style.left=(ev.pageX?ev.pageX:ev.clientX)-dragX;
	dragDiv.style.top=(ev.pageY?ev.pageY:ev.clientY)-dragY;
	return false;
	}
 if (ev.type=="mouseout") {
	if (!dragOn) dragDiv=null;
	}
}

function drag(div) {
if (!dragInit) initDrag();
if (!dragOn) {
	dragDiv=document.getElementById?document.getElementById(div):document.all?document.all[div]:document.layers?document.layers[div]:null;
	if (document.layers) dragDiv.style=dragDiv;
	dragDiv.onmouseout=dragf;
	}
}


