// Global object to hold drag information.
var dragObj 		= new Object();
dragObj.zIndex 		= 0;
var visible 		= false;

function findPosX(obj)
  {
    var curleft = 0;
    if(obj.offsetParent)
        while(1) 
        {
          curleft += obj.offsetLeft;
          if(!obj.offsetParent)
            break;
          obj = obj.offsetParent;
        }
    else if(obj.x)
        curleft += obj.x;
    return curleft;
  }

  function findPosY(obj)
  {
    var curtop = 0;
    if(obj.offsetParent)
        while(1)
        {
          curtop += obj.offsetTop;
          if(!obj.offsetParent)
            break;
          obj = obj.offsetParent;
        }
    else if(obj.y)
        curtop += obj.y;
    return curtop;
  }


//Mostrar Ocultar un elemento.
function hideshow(event,id)
{
	if (id)    
		dragObj.elNode = document.getElementById(id);
	else 
	{
		if (browser.isIE)      
			dragObj.elNode = window.event.srcElement;    
		if (browser.isNS)      
			dragObj.elNode = event.target;    
		
		// If this is a text node, use its parent element.    
		if (dragObj.elNode.nodeType == 3)      
			dragObj.elNode = dragObj.elNode.parentNode;  
	}
	if(dragObj.elNode.style.visibility == 'hidden')
	{
		dragObj.elNode.style.visibility = 'visible';
		dragObj.elNode.style.left	= (event.clientX-findPosX(dragObj.elNode.offsetParent)-65)+"px";  
		dragObj.elNode.style.top	= (event.clientY-findPosY(dragObj.elNode.offsetParent))+"px";
	}
	else
		dragObj.elNode.style.visibility = 'hidden';
}


//AQUI INICIA EL CODIGO PARA ARRASTRAR OBJETOS
function dragStart(event, id) 
{  
	var el;  
	var x, y;  
	
	// If an element id was given, find it. Otherwise use the element being  
	// clicked on.  
	if (id)    
		dragObj.elNode = document.getElementById(id);  
	else 
	{
		if (browser.isIE)      
			dragObj.elNode = window.event.srcElement;    
		if (browser.isNS)      
			dragObj.elNode = event.target;    
		
		// If this is a text node, use its parent element.    
		if (dragObj.elNode.nodeType == 3)      
			dragObj.elNode = dragObj.elNode.parentNode;  
	}
	
	// Get cursor position with respect to the page.  
	if (browser.isIE) 
	{    
		x = window.event.clientX + document.documentElement.scrollLeft + document.body.scrollLeft;
		y = window.event.clientY + document.documentElement.scrollTop  + document.body.scrollTop;
	}  
	if (browser.isNS) 
	{    
		x = event.clientX + window.scrollX;
		y = event.clientY + window.scrollY;
	}
	
	// Save starting positions of cursor and element.  
	dragObj.cursorStartX = x;  
	dragObj.cursorStartY = y;  
	dragObj.elStartLeft  = parseInt(dragObj.elNode.style.left, 10);  
	dragObj.elStartTop   = parseInt(dragObj.elNode.style.top,  10);  
	
	if (isNaN(dragObj.elStartLeft)) 
		dragObj.elStartLeft = 0;  
	if (isNaN(dragObj.elStartTop))  
		dragObj.elStartTop  = 0;
		
	// Update element's z-index.  
	dragObj.elNode.style.zIndex = 110;
	
	// Capture mousemove and mouseup events on the page.  
	if (browser.isIE) 
	{    
		document.attachEvent("onmousemove", dragGo);    
		document.attachEvent("onmouseup", dragStop);    
		window.event.cancelBubble = true;    
		window.event.returnValue = false;  
	}  
	if (browser.isNS) 
	{    
		document.addEventListener("mousemove", dragGo, true);    
		document.addEventListener("mouseup", dragStop, true);    
		event.preventDefault();  
	}
}

function dragGo(event) 
{  
	var x, y;  
	
	// Get cursor position with respect to the page.  
	if (browser.isIE) 
	{    
		x = window.event.clientX + document.documentElement.scrollLeft + document.body.scrollLeft;    
		y = window.event.clientY + document.documentElement.scrollTop + document.body.scrollTop;  
	}  
	if (browser.isNS) 
	{    
		x = event.clientX + window.scrollX;    
		y = event.clientY + window.scrollY;  
	}
	
	// Move drag element by the same amount the cursor has moved.  
	dragObj.elNode.style.left	= (dragObj.elStartLeft + x - dragObj.cursorStartX) + "px";  
	dragObj.elNode.style.top	= (dragObj.elStartTop + y - dragObj.cursorStartY) + "px";
	
	if (browser.isIE) 
	{    
		window.event.cancelBubble = true;    
		window.event.returnValue = false;  
	}  
	if (browser.isNS)    
		event.preventDefault();
}

function dragStop(event) 
{  
	// Stop capturing mousemove and mouseup events.  
	if (browser.isIE) 
	{    
		document.detachEvent("onmousemove", dragGo);    
		document.detachEvent("onmouseup", dragStop);  
	}  
	if (browser.isNS) 
	{    
		document.removeEventListener("mousemove", dragGo,   true);    
		document.removeEventListener("mouseup",   dragStop, true);  
	}
}