
function Browser() {
 
  var ua, s, i;
 
  this.isIE    = false;
  this.isNS    = false;
  this.version = null;
 
  ua = navigator.userAgent;
 
  s = "MSIE";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isIE = true;
    this.version = parseFloat(ua.substr(i + s.length));
    return;
  }
 
  s = "Netscape6/";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isNS = true;
    this.version = parseFloat(ua.substr(i + s.length));
    return;
  }
 
  s = "Gecko";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isNS = true;
    this.version = 6.1;
    return;
  }
}
 
var browser = new Browser();
 
var dragObj = new Object();
dragObj.zIndex = 0;
 
function dragStart(event, id) {
 
  var el;
  var x, y;

  if (id)
    dragObj.elNode = document.getElementById(id);
  else {
    if (browser.isIE)
      dragObj.elNode = window.event.srcElement;
    if (browser.isNS)
      dragObj.elNode = event.target;

 
    if (dragObj.elNode.nodeType == 3)
      dragObj.elNode = dragObj.elNode.parentNode;
  }
 
 
  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;
  }
 
 
  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;}
 

  dragObj.elNode.style.zIndex = ++dragObj.zIndex;
 
 
  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;
 
  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;
  }

  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) {

  if (browser.isIE) {
    document.detachEvent("onmousemove", dragGo);
    document.detachEvent("onmouseup",	dragStop);
  }
  if (browser.isNS) {
    document.removeEventListener("mousemove", dragGo,	true);
    document.removeEventListener("mouseup",   dragStop, true);
  }
}






var AmplObj = new Object();
function Ampliar(event, id,tipo,padre) {
 
  var el;
  var x, y;

  if (id)
    AmplObj.elNode = document.getElementById(id);
	
  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;
  }
 
 
  AmplObj.cursorStartX = x;
  AmplObj.cursorStartY = y;

  AmplObj.elStartHeight  = parseInt(AmplObj.elNode.style.height, 10);
  AmplObj.elStartWidth  = parseInt(AmplObj.elNode.style.width, 10);
  AmplObj.Tipo=tipo;

  if (padre)
  		{
   		AmplObj.Padre = document.getElementById(padre);
  		AmplObj.elStartLeft  = parseInt(AmplObj.Padre.style.left, 10);
  		AmplObj.elStartTop   = parseInt(AmplObj.Padre.style.top,  10);
		}

  if (browser.isIE) {
    document.attachEvent("onmousemove", AmpliarStart);
    document.attachEvent("onmouseup",	AmpliarStop);
    window.event.cancelBubble = true;
    window.event.returnValue = false;
  }
  if (browser.isNS) {
    document.addEventListener("mousemove", AmpliarStart,   true);
    document.addEventListener("mouseup",   AmpliarStop, true);
    event.preventDefault();
  }
}

function AmpliarStart(event) {
 
  var x, y;
  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;
  }
  var H=AmplObj.elStartHeight + y - AmplObj.cursorStartY;
  var W=AmplObj.elStartWidth + x - AmplObj.cursorStartX;
  var T=AmplObj.elStartTop  + y - AmplObj.cursorStartY;
  var L=AmplObj.elStartLeft + x - AmplObj.cursorStartX;
  switch (AmplObj.Tipo)
  	{
	case 0:
	//Superior Izq
	var Fluct=  AmplObj.elStartTop - T;
		if (AmplObj.elStartHeight + Fluct>=0)
			{
	 		AmplObj.Padre.style.top  = T + "px";
			AmplObj.elNode.style.height = AmplObj.elStartHeight + Fluct + "px";
			}
	var Fluct =  AmplObj.elStartLeft - L;
		if (AmplObj.elStartWidth + Fluct >100)
			{
			AmplObj.Padre.style.left  = L + "px";
			AmplObj.elNode.style.width = AmplObj.elStartWidth + Fluct + "px";
			}
	break;
	case 1:
	//Superior
		var Fluct=  AmplObj.elStartTop - T;
		if (AmplObj.elStartHeight + Fluct>=0)
			{
	 		AmplObj.Padre.style.top  = T + "px";
			AmplObj.elNode.style.height = AmplObj.elStartHeight + Fluct + "px";
			}
	break;
	case 2:
	//Superior Der
		var Fluct=  AmplObj.elStartTop - T;
		if (AmplObj.elStartHeight + Fluct>=0)
			{
	 		AmplObj.Padre.style.top  = T + "px";
			AmplObj.elNode.style.height = AmplObj.elStartHeight + Fluct + "px";
			}
		if (W>100)
			AmplObj.elNode.style.width = W + "px";
	break;
	case 3:
	//Medio Izq
		var Fluct =  AmplObj.elStartLeft - L;
		if (AmplObj.elStartWidth + Fluct >100)
			{
			AmplObj.Padre.style.left  = L + "px";
			AmplObj.elNode.style.width = AmplObj.elStartWidth + Fluct + "px";
			}
	break;
	case 4:
	//Medio Der
		if (W>100)
			AmplObj.elNode.style.width = W + "px";
	break;
	case 5:
	//Inferior Izq
		var Fluct =  AmplObj.elStartLeft - L;
		if (AmplObj.elStartWidth + Fluct >100)
			{
			AmplObj.Padre.style.left  = L + "px";
			AmplObj.elNode.style.width = AmplObj.elStartWidth + Fluct + "px";
			}
		AmplObj.elNode.style.height = H + "px";
	break;
	case 6:
	//Inferior
		AmplObj.elNode.style.height = H + "px";
	break;
	case 7:
	//Inferior Der
		AmplObj.elNode.style.height = H + "px";
		if (W>100)
			AmplObj.elNode.style.width = W + "px";
	break;
	}
	
  if (browser.isIE) {
    window.event.cancelBubble = true;
    window.event.returnValue = false;
  }
  if (browser.isNS)
    event.preventDefault();
}
 
function AmpliarStop(event) {

  if (browser.isIE) {
    document.detachEvent("onmousemove", AmpliarStart);
    document.detachEvent("onmouseup",	AmpliarStop);
  }
  if (browser.isNS) {
    document.removeEventListener("mousemove", AmpliarStart,	true);
    document.removeEventListener("mouseup",   AmpliarStop, true);
  }
}

