var selectedObj;
var offsetX, offsetY;

function setZIndex(obj, zOrder){
	var theObj = getObject(obj);
	if(theObj) theObj.zIndex=zOrder;
}

function setSelectedElem(evt){
	var target = (evt.target)? evt.target : evt.srcElement;
	var divID = (target.name && target.src) ? target.name + "Wrap" : "";
	if(divID){
		if(document.layers) selectedObj=document.layers[divID];
		else if(document.all) selectedObj=document.all(divID);
		else if(document.getElementById) selectedObj=document.getElementById(divID);
		setZIndex(selectedObj, 100);
		return;
	}
	selectedObj = null;
	return;
} 

function engage(evt){	
	evt = (evt)? evt : event;
	setSelectedElem(evt);
	if(selectedObj){
		if(document.body && document.body.setCapture) 
			document.body.setCapture();
		if(evt.pageX){
			offsetX = evt.pageX - ((selectedObj.offsetLeft)? selectedObj.offsetLeft : selectedObj.left);
			offsetY = evt.pageY - ((selectedObj.offsetTop)? selectedObj.offsetTop : selectedObj.top);
			if(!offsetX)offsetX=evt.pageX;
			if(!offsetY)offsetY=evt.pageY;
		}
		else if(typeof evt.clientX!="undefined"){
			offsetX=evt.clientX - ((selectedObj.offsetLeft) ? selectedObj.offsetLeft : 0);
			offsetY=evt.clientY - ((selectedObj.offsetTop) ? selectedObj.offsetTop : 0);				
		}
		else if(typeof evt.offsetX!="undefined"){
			offsetX=evt.offsetX - ((evt.offsetX<-2)? 0: document.body.scrollLeft);
			offsetX-=(document.body.parentElement && document.body.parentElement.scrollLeft)? 
				document.body.parentElement.scrollLeft : 0;
			offsetY=evt.offsetY - ((evt.offsetY<-2)? 0: document.body.scrollTop);
			offsetY-=(document.body.parentElement && document.body.parentElement.scrollTop)? 
				document.body.parentElement.scrollTop : 0;						
		}
		
		//setActivity(getObject('slider'), true);
	}
	return false;
}


/* drag on some area 'zone' */
function dragIt(evt){	
	evt=(evt)? evt : event;
	var x,y;
	if(selectedObj){
		if(evt.pageX){
			x=evt.pageX-offsetX;
			y=evt.pageY-offsetY;
			otop=0;			
		}
		else if (evt.clientX || evt.clientY){
			x=evt.clientX-offsetX;
			y=evt.clientY-offsetY;
			otop=0;
		}		
		
		s_w=objSlider.scrollWidth;
		a_w=objSlideArea.scrollWidth;
		b_w=objScroller.scrollWidth;
		c_w=objContainer.clipWidth;
		x=(x<otop) ? 0 : ((x>otop+a_w-s_w) ? a_w-s_w : x-otop);		
		y=0;
		objSlider.MoveArea(x, y);	
		objScroller.MoveArea(-Math.ceil(x/(a_w-s_w)*(b_w-c_w)),0);	
		
		evt.cancelBubble = true;		
		return false;
	}
}


function release(evt){	
	if(selectedObj){
		setZIndex(selectedObj,0);
		if(document.body && document.body.releaseCapture)		
			document.body.releaseCapture();
		selectedObj=null;
		//setActivity(getObject('slider'), false);
	}
}

function setSets(){	
	location.reload();	
}

function initDrag(){
	if(document.layers){
		document.captureEvents(Event.MOUSEDOWN | Event.MOUSEMOVE | Event.MOUSEUP);		
		return;
	}
	else if (document.body & document.body.addEventListener){
		window.addEventListener("resize", setSets, true);
		document.addEventListener("mousedown", engage, true);
		document.addEventListener("mousemove", dragIt, true);
		document.addEventListener("mouseup", release, true);		
	}
	window.onresize=setSets;
	document.onmousedown=engage;
	document.onmousemove=dragIt;
	document.onmouseup=release;
}