///////////////////////////////////////////////////////////////////////
//     This script was designed by Erik Arvidsson for WebFX          //
//                                                                   //
//     For more info and examples see: http://webfx.eae.net          //
//     or send mail to erik@eae.net                                  //
//                                                                   //
//     Feel free to use this code as lomg as this disclaimer is      //
//     intact.                                                       //
///////////////////////////////////////////////////////////////////////
var checkZIndex = true;

var dragobject = null;
var tx;
var ty;

var ie5 = document.all != null && document.getElementsByTagName != null;

function getReal(el) {
	temp = el;

	while ((temp != null) && (temp.tagName != "BODY")) {
		if ((temp.className == "moveme") || (temp.className == "handle")){
			el = temp;
			return el;
		}
		temp = temp.parentNode;
	}
	return el;
}


function moveme_onmousedown(e) {
var evt = e? e : window.event;


    var srcEl = evt.srcElement? evt.srcElement : evt.target;
	el = getReal(srcEl);	
	if (el.className == "moveme" || el.className == "handle") {
		if (el.className == "handle") {
			tmp = el.getAttribute("handlefor");
			if (tmp == null) {
				dragobject = null;
				return;
			}
			else
				dragobject = eval(tmp);
		}
		else 
			dragobject = el;
		
		if (checkZIndex) makeOnTop(dragobject);
		
		ty = evt.clientY - getTopPos(dragobject);
		tx = evt.clientX - getLeftPos(dragobject);
		
		evt.returnValue = false;
		evt.cancelBubble = true;
		try
		{
			evt.preventDefault();
		}
		catch (err)
		{
		}
	}
	else {
		dragobject = null;
	}
}

function moveme_onmouseup(e) {
	if(dragobject)
	{
		dragobject = null;
	}
}

function moveme_onmousemove(e) {
     var evt = e? e : window.event
	if (dragobject) {
		//set one time the FIRST POSTIONS on the div, so it can be back there later...
		//if not exist yet, save first potions of the toolbar...
		
		if (dragobject.getAttribute("DivLeft")==null)
		{
			//get in first time only
			if (dragobject.style.left=="") {dragobject.style.left = dragobject.offsetLeft;}
			if (dragobject.style.top=="") {dragobject.style.top=dragobject.offsetTop;}
			dragobject.setAttribute("DivLeft",dragobject.style.left.replace("px",""));
			dragobject.setAttribute("DivTop",dragobject.style.top.replace("px",""));
			ty = evt.clientY - dragobject.offsetTop;
			tx = evt.clientX - dragobject.offsetLeft;
		}
		
		if (evt.clientX >= 0 && evt.clientY >= 0) {
			dragobject.style.left = evt.clientX - tx + "px";
			dragobject.style.top = evt.clientY - ty + "px";
			
		}
		evt.returnValue = false;
		evt.cancelBubble = true;
	}
}

function getLeftPos(el) {
		if (el.style.left == "auto")
			return 0;
		else
			return parseInt(el.style.left.replace("px",""));
}

function getTopPos(el) {
		if (el.style.top == "auto")
			return 0;
		else
			return parseInt(el.style.top.replace("px",""));
}

function makeOnTop(el) {
	var daiz;
	var max = 0;
	var da = document.body.childNodes;
	
	for (var i=0; i<da.length; i++) {
	   try
	   {
		daiz = da[i].style.zIndex;
		if (daiz != "" && daiz > max)
			max = daiz;
	   }
	   catch (err)
	   {
	   }	
	}
	el.style.zIndex = max + 1;
}

if (document.getElementsByTagName("body")) 
{ 
	var objBody = document.body;
	try
	{
		objBody.setAttribute("onmousedown","moveme_onmousedown(event)");
		objBody.setAttribute("onmouseup","moveme_onmouseup(event)");
		objBody.setAttribute("onmousemove","moveme_onmousemove(event)");
		objBody.onmousedown = moveme_onmousedown;
		objBody.onmouseup = moveme_onmouseup;
		objBody.onmousemove = moveme_onmousemove;
	}catch(ex){}
}

document.write("<style>");
document.write(".moveme		{cursor: move;}");
document.write(".handle		{cursor: move;}");
document.write("</style>");