var engaged=false;
var obj1,obj2,style,eX,eY,offsetX,offsetY;
var currentOffsetX,currentOffsetY;
var OGG;
var engagedZindex=0;
var differL,differT;


if(document.getElementById)
	{
	obj1="document.getElementById('"
	obj2="')"
	style=".style"
	
	eX=(navigator.appName.indexOf("Internet Explorer")==-1)	?	
		"e.clientX":"event.clientX";
	eY=(navigator.appName.indexOf("Internet Explorer")==-1)?
		"e.clientY":"event.clientY";

	offsetX=(navigator.appName.indexOf("Internet Explorer")==-1)?
		"pageXOffset":"document.body.scrollLeft"
	offsetY=(navigator.appName.indexOf("Internet Explorer")==-1)?
		"pageYOffset":"document.body.scrollTop"
	}
else if(document.all)
	{
	obj1="document.all['"
	obj2="']"
	style=".style"
	eX="event.clientX"
	eY="event.clientY"

	offsetX="document.body.scrollLeft"
	offsetY="document.body.scrollTop"
	}
else if(document.layers)
	{
	obj1="document.layers['"
	obj2="']"
	style=""
	eX="e.pageX"
	eY="e.pageY" 

	offsetX="pageXOffset"
	offsetY="pageYOffset"
	document.captureEvents(Event.MOUSEMOVE)
	}



function engager(e,namer,x_min,y_min,x_max,y_max)
	{
	engaged=(engaged)?
		namer:false
	if(engaged)
		{
		OGG=eval(obj1+engaged+obj2+style);
		currentOffsetX=(document.layers)?
			0:eval(offsetX)
		currentOffsetY=(document.layers)?
			0:eval(offsetY)
		engagedZindex=OGG.zIndex;
		OGG.zIndex=101;
		
		OGG.x_min = x_min;
		OGG.y_min = y_min;
		OGG.x_max = x_max;
		OGG.y_max = y_max;
		
		
		var eXin=eval(eX)
		var eYin=eval(eY)
		differL=(eXin+currentOffsetX)-parseFloat(OGG.left)
		differT=(eYin+currentOffsetY)-parseFloat(OGG.top)
		document.onmousemove=dragLayerByCorner;
		return
		}

	OGG.zIndex=engagedZindex
	document.onmousemove=null;
	}

function move(e,namer,activation,x_min,y_min,x_max,y_max)
	{
	engaged=activation;
	engager(e,namer,x_min,y_min,x_max,y_max);
	}


function dragLayerByCorner(e)
	{
	if(!engaged)
		return true;
	var eXin=eval(eX)
	var eYin=eval(eY)

	top_  = (eYin+currentOffsetY)-differT;
	left_ = (eXin+currentOffsetX)-differL;
	
	// move limits
	if (top_  < OGG.y_min)  top_  = OGG.y_min;
	if (top_  > OGG.y_max)  top_  = OGG.y_max;
	if (left_ < OGG.x_min)	left_ = OGG.x_min;
	if (left_ > OGG.x_max)	left_ = OGG.x_max;
	
	OGG.top  = top_;
	OGG.left = left_;
	}



function move_layer(name_layer,xx,yy)
	{
	obj_layer		= eval(obj1+name_layer+obj2+style);

	obj_layer.top 	= yy;
	obj_layer.left 	= xx;
	}
