﻿function beginDragBar(elementToDrag, elementToResize, minSize, event, dragClass, upClass)  {
	
	var pos			= AbsPosition(elementToDrag);
	var leftWidth	= pos[1];
	
	var delatX = event.clientX;

	if(document.addEventListener) {
		document.addEventListener("mousemove",moveHandler,true);
		document.addEventListener("mouseup",upHandler,true);
	}
	else if(document.attachEvent) {
		document.attachEvent("onmousemove",moveHandler);
		document.attachEvent("onmouseup",upHandler);
	}
	else {
		var oldmovehandler=document.onmousemove;
		var olduphandler=document.onmouseup;
		document.onmousemove=moveHandler;
		document.onmouseup=upHandler;	 
	}
	
	elementToDrag.className	= dragClass;

	if(event.stopPropagation)
		event.stopPropagation();
	else
		event.cancelBubble=true;
 
	if(event.preventDefault)
		event.preventDefault();
	else
		event.returnValue=false;
 
	 function moveHandler(e) {
	 
		 if(!e)e=window.event;
		 
		 var size	= leftWidth + e.clientX - delatX;
		 
		 if(size>=minSize)	 
			elementToResize.style.width = size + "px";
		 	 
		 if(e.stopPropagation)
			e.stopPropagation();
		 else
			e.cancelBubble=true;
	 }


 function upHandler(e) {
 
	 if(!e)
		e = window.event;
		
	 if(document.removeEventListener) {
		 document.removeEventListener("mouseup",upHandler,true);
		 document.removeEventListener("mousemove",moveHandler,true); 
	 }
	 else if(document.detachEvent) {
		 document.detachEvent("onmouseup",upHandler);
		 document.detachEvent("onmousemove",moveHandler);
	 }
	 else  {
		 document.onmouseup = olduphandler;
		 document.onousemove = oldmovehandler;
	 }
	 
	 if(e.stopPropagation)
		e.stopPropagation();
	 else
		e.cancelBubble=true;
		
		elementToDrag.className	= upClass;
	}
}

function beginDragBar1(elementToDrag, elementToResize, minSize, event, dragClass, upClass)  {
	
    if(event==null || (event.srcElement && event.srcElement.id!="splitBarTd") || (event.target && event.target.id != "splitBarTd"))
        return;

	var pos			= AbsPosition(elementToDrag);
	var leftWidth	= pos[1];
	
	var delatX = event.clientX;

	if(document.addEventListener) {
		document.addEventListener("mousemove",moveHandler,true);
		document.addEventListener("mouseup",upHandler,true);
	}
	else if(document.attachEvent) {
		document.attachEvent("onmousemove",moveHandler);
		document.attachEvent("onmouseup",upHandler);
	}
	else {
		var oldmovehandler=document.onmousemove;
		var olduphandler=document.onmouseup;
		document.onmousemove=moveHandler;
		document.onmouseup=upHandler;	 
	}
	
	elementToDrag.className	= dragClass;

	if(event.stopPropagation)
		event.stopPropagation();
	else
		event.cancelBubble=true;
 
	if(event.preventDefault)
		event.preventDefault();
	else
		event.returnValue=false;
 
   function moveHandler(e) {
	 
		 if(!e)e=window.event;
		 //var size	= leftWidth + e.clientX - delatX;
		 var size  = e.clientX;
		 if(size>=minSize)	 		
		    elementToDrag.style.left = size + "px";	 
		 else 
	        elementToDrag.style.left = minSize+"px";	 
	       
		 if(e.stopPropagation)
			e.stopPropagation();
		 else
			e.cancelBubble=true;
			return false;
	 }


 function upHandler(e) {
 
	 if(!e)
		e = window.event;
		
	 if(document.removeEventListener) {
		 document.removeEventListener("mouseup",upHandler,true);
		 document.removeEventListener("mousemove",moveHandler,true); 
	 }
	 else if(document.detachEvent) {
		 document.detachEvent("onmouseup",upHandler);
		 document.detachEvent("onmousemove",moveHandler);
	 }
	 else  {
		 document.onmouseup = olduphandler;
		 document.onousemove = oldmovehandler;
	 }
	 
	 if(e.stopPropagation)
		e.stopPropagation();
	 else
		e.cancelBubble=true;
		
	elementToDrag.className	= upClass;
		
	 /*-------------*/	
	 if(!e)e=window.event;
	 var left = elementToDrag.style.left;
	 if(left==null || left=="") left=0;
	 var size = parseInt(left.substring(0, left.length-2));	
	 if(size>=minSize)	 
	 	elementToResize.style.width = size + "px";
	 else 
	    elementToResize.style.width = minSize+"px";	
	 if(e.stopPropagation)
		e.stopPropagation();
	 else
		e.cancelBubble=true;
	 elementToDrag.style.visibility = "hidden";//hidden
	  /*-------------*/	
	}
}

function AbsPosition(e)
{
	var point = new Array(2);
	 point[0] =e.offsetTop;
	 point[1] =e.offsetLeft;
	while(e=e.offsetParent)
	{  
		point[0] +=e.offsetTop;
		point[1] +=e.offsetLeft;
	}
	
	return point;
}

function hideSplitBar(splitBarID)
{
    var splitBar = document.getElementById(splitBarID);
    if(splitBar == null)
        return;
    splitBar.style.visibility = "hidden";
}

function initSplitBar(e, elementToDrag, splitBarID)
{
   if(!e)
        e = window.event;
   if(e==null || (e.srcElement && e.srcElement.id!="splitBarTd") || (e.target && e.target.id != "splitBarTd"))	
        return;
 
   var splitBar = document.getElementById(splitBarID);
   if(splitBar == null || elementToDrag==null)
        return;
   var p = AbsPosition(elementToDrag);     
   splitBar.style.top     = p[0] + "px";
   splitBar.style.left    = (p[1]+2) + "px";
   splitBar.style.width   = 6 + "px";
   splitBar.style.height  = elementToDrag.offsetHeight + "px";
   splitBar.style.visibility = "visible";//hidden  
}