/* x_drag.js compiled from X 4.0 with XC 0.27b. Distributed by GNU LGPL. For copyrights, license, documentation and more visit Cross-Browser.com */
function xDisableDrag(id, last){
 if (!window._xDrgMgr) return;
 var ele = xGetElementById(id);
 ele.xDraggable = false;
 ele.xODS = null;
 ele.xOD = null;
 ele.xODE = null;
 xRemoveEventListener(ele, 'mousedown', _xOMD, false);
 if (_xDrgMgr.mm && last) {
  _xDrgMgr.mm = false;
  xRemoveEventListener(document, 'mousemove', _xOMM, false);
 }
//alert(ele);
}
var _xDrgMgr = {ele:null, mm:false};

function xEnableDrag(id,fS,fD,fE,hideIframes){
	var ele = xGetElementById(id);
         if(ele){    
         	ele.xDraggable = true;
         	ele.xODS = fS;
         	ele.xOD = fD;
         	ele.xODE = fE;
         	if(hideIframes)
		ele.hideIframes = hideIframes;
         	xAddEventListener(ele, 'mousedown', _xOMD, false);
         	if (!_xDrgMgr.mm) {
         		_xDrgMgr.mm = true;
         		xAddEventListener(document, 'mousemove', _xOMM, false);
         	}
	}
}
var iniOMDx,iniOMDy;

function _xOMD(e) { 

	var evt = new xEvent(e);
	var ele = evt.target;
	while(ele && !ele.xDraggable) {
		ele = xParent(ele);}
	if (ele) {


	//debugdiv.innerHTML += "down<br>"
	if(!window.md && !window.floating){
	window.md = true;
	window.floating = true;
	//debugdiv.innerHTML += "TRUE-"+window.md+" "+window.floating+"<br>";
	}
	else{
	//debugdiv.innerHTML += "FALSE-"+window.md+" "+window.floating+"<br>";
	disableIframes();
	//selects(1);
	window.skiphide = true;
	_xOMU();
	window.skiphide = false;
	
	return true;
	}




		/* FOR RESIZING TRANSLATOR hides target iframe to smooth out dragging in FF */
		if(ele.id == 'fenResBtn1'){document.getElementById('target').style.visibility = "hidden";}

		xPreventDefault(e);
		ele.xDPX = evt.pageX;
		ele.xDPY = evt.pageY;
//alert(evt.pageX + " "+evt.pageY);
		iniOMDx = evt.pageX - FindXY(ele).x;
		iniOMDy = evt.pageY - FindXY(ele).y;
		_xDrgMgr.ele = ele;
		xAddEventListener(document, 'mouseup', _xOMU, false);
		//if(ele.xODS == "barOnDrag"
		if(ele.hideIframes){	
		   //debugdiv.innerHTML += "killing iframes<br>";
		   disableIframes();
		   //selects(0);
		}
		
		if (ele.xODS) {
			ele.xODS(ele, evt.pageX, evt.pageY);
			}
		}
	}

function _xOMM(e) {
	var evt = new xEvent(e);
	if (_xDrgMgr.ele) {
		xPreventDefault(e);
		var ele = _xDrgMgr.ele;
		var dx = evt.pageX - ele.xDPX;
		var dy = evt.pageY - ele.xDPY;
		ele.xDPX = evt.pageX;
		ele.xDPY = evt.pageY;
		if (ele.xOD) {
			ele.xOD(ele, dx, dy);
		}
		else {
			xMoveTo(ele, xLeft(ele) + dx, xTop(ele) + dy);
		}
	}  
}
function _xOMU(e) {
	if (_xDrgMgr.ele) {

		if(window.md && window.floating){
		window.md = false;
		window.floating = false;
//		debugdiv.innerHTML += ""+window.md+" "+window.floating+"<br>";
		}
		

                if(_xDrgMgr.ele.id=='fenResBtn1')
			document.getElementById('target').style.visibility='visible';
		if(_xDrgMgr.ele.hideIframes){
			if(!window.skiphide){
				disableIframes();
				//selects(1);
			}
		}

		xPreventDefault(e);
		xRemoveEventListener(document, 'mouseup', _xOMU, false);
		if (_xDrgMgr.ele.xODE) {
			var evt = new xEvent(e);
			_xDrgMgr.ele.xODE(_xDrgMgr.ele, evt.pageX, evt.pageY);
		}
	_xDrgMgr.ele = null;
	}  
}
