// JavaScript Document
function firstborn(obj, element)
{
var act=document.getElementById(obj);
var divs=act.getElementsByTagName('div');

var firstborn = Array();
var j=0;
	for (var i = 0; i < divs.length; i++)
	{
		if(divs[i].parentNode.id==act.id)
		{
			firstborn[j]=divs[i].id;
			j++;
		}
	}
return firstborn;
}
function addEventSimple(obj,evt,fn) {
if (obj.addEventListener)
obj.addEventListener(evt,fn,false);
else if (obj.attachEvent)
obj.attachEvent('on'+evt,fn);
}

function removeEventSimple(obj,evt,fn) {
if (obj.removeEventListener)
obj.removeEventListener(evt,fn,false);
else if (obj.detachEvent)
obj.detachEvent('on'+evt,fn);
}

function findPos(obj){
org=obj;
var posW = obj.offsetLeft;var posN = obj.offsetTop;
while(obj.offsetParent){
posW+=obj.offsetParent.offsetLeft;
posN+=obj.offsetParent.offsetTop;
if(obj==document.getElementsByTagName('body')[0]){break}
else{obj=obj.offsetParent;}
}
posE=(org.clientWidth)?posW+(org.clientWidth):posW+(org.offsetWidth);
posS=(org.clientHeight)?posN+(org.clientHeight):posN+(org.offsetHeight);
coordinadas = new Array(posN,posE,posS,posW);
return coordinadas;
}
dragDrop = {
//keyHTML: '<a href="#" class="keyLink">#</a>',
//keySpeed: 10, // pixels per keypress event
initialMouseX: undefined,
initialMouseY: undefined,
startX: undefined,
startY: undefined,
dXKeys: undefined,
dYKeys: undefined,
draggedObject: undefined,
renove:undefined,
contrato:undefined,
prepago:undefined,
empresas:undefined,
foto:undefined,
//, offtop, offleft
initElement: function (obref, element, rnv, tip, acnt, appg, aemp, pcnt, pcmb, pppg, pemp, img) {
if (typeof element == 'string')
element = document.getElementById(element);
element.onmousedown = dragDrop.startDragMouse;
element.renove = rnv;
element.ref = obref
element.tipo = tip;
element.altacontrato = acnt;
element.altaprepago = appg;
element.altaempresas = aemp;
element.portacontrato = pcnt;
element.portacambio = pcmb;
element.portaprepago = pppg;
element.portaempresas = pemp;
element.foto = img;

//element.innerHTML += dragDrop.keyHTML;
//var links = element.getElementsByTagName('a');
//var lastLink = links[links.length-1];
//lastLink.relatedElement = element;
//lastLink.onclick = dragDrop.startDragKeys;
},
startDragMouse: function (e) {
this.startY=this.offsetLeft;
this.startX=this.offsetTop;
var startLeft=this.offsetLeft;
var startTop=this.offsetTop;
this.style.position="absolute";
this.style.left=startLeft+"px";
this.style.top=startTop+"px";
dragDrop.startDrag(this);
var evt = e || window.event;
dragDrop.initialMouseX = evt.clientX;
dragDrop.initialMouseY = evt.clientY;
addEventSimple(document,'mousemove',dragDrop.dragMouse);
addEventSimple(document,'mouseup',dragDrop.releaseElement);
//addEventSimple(document,'mouseup',dragDrop.dropped);
return false;
},
dropped: function () {	
	//alert(this.style.left);
	//alert(this.style.top);
},
startDragKeys: function () {
dragDrop.startDrag(this.relatedElement);
dragDrop.dXKeys = dragDrop.dYKeys = 0;
addEventSimple(document,'keydown',dragDrop.dragKeys);
addEventSimple(document,'keypress',dragDrop.switchKeyEvents);
this.blur();
return false;
},
startDrag: function (obj) {
if (dragDrop.draggedObject)
dragDrop.releaseElement();
dragDrop.startX = obj.offsetLeft;
dragDrop.startY = obj.offsetTop;
dragDrop.draggedObject = obj;
obj.className += ' dragged';
},
dragMouse: function (e) {
var evt = e || window.event;
var dX = evt.clientX - dragDrop.initialMouseX;
var dY = evt.clientY - dragDrop.initialMouseY;

var coord=findPos(dragDrop.draggedObject)

hijos = firstborn('portright', 'div')
var y=hijos.length;
	for (var x = 0; x < y; x++)
	{		
	var cestadiv=document.getElementById(hijos[x]);
	cestacoord=findPos(cestadiv);
	
		if(coord[0]>cestacoord[0]&&coord[0]<cestacoord[2]&&coord[3]>cestacoord[3]&&coord[3]<cestacoord[1]&&coord[0]>cestacoord[0]&&coord[0]<cestacoord[2]&&coord[1]>cestacoord[3]&&coord[1]<cestacoord[1]&&coord[2]>cestacoord[0]&&coord[2]<cestacoord[2]&&coord[1]>cestacoord[3]&&coord[1]<cestacoord[1]&&coord[2]>cestacoord[0]&&coord[2]<cestacoord[2]&&coord[3]>cestacoord[3]&&coord[3]<cestacoord[1])
		{
		cestadiv.style.border = "1px solid #76B822";
		cestadiv.style.backgroundColor="#F0F0F0";
		}
		else
		{
		cestadiv.style.border = "1px solid #FFFFFF";
		cestadiv.style.backgroundColor="#FFFFFF";
		}

	}

dragDrop.setPosition(dX,dY);
return false;
},
dragKeys: function(e) {
var evt = e || window.event;
var key = evt.keyCode;
switch (key) {
case 37: // left
case 63234:
dragDrop.dXKeys -= dragDrop.keySpeed;
break;
case 38: // up
case 63232:
dragDrop.dYKeys -= dragDrop.keySpeed;
break;
case 39: // right
case 63235:
dragDrop.dXKeys += dragDrop.keySpeed;
break;
case 40: // down
case 63233:
dragDrop.dYKeys += dragDrop.keySpeed;
break;
case 13: // enter
case 27: // escape
dragDrop.releaseElement();
return false;
default:
return true;
}
dragDrop.setPosition(dragDrop.dXKeys,dragDrop.dYKeys);
if (evt.preventDefault)
evt.preventDefault();
return false;
},
setPosition: function (dx,dy) {
dragDrop.draggedObject.style.left = dragDrop.startX + dx + 'px';
dragDrop.draggedObject.style.top = dragDrop.startY + dy + 'px';
},
switchKeyEvents: function () {
// for Opera and Safari 1.3
removeEventSimple(document,'keydown',dragDrop.dragKeys);
removeEventSimple(document,'keypress',dragDrop.switchKeyEvents);
addEventSimple(document,'keypress',dragDrop.dragKeys);
},
releaseElement: function() {
removeEventSimple(document,'mousemove',dragDrop.dragMouse);
removeEventSimple(document,'mouseup',dragDrop.releaseElement);
removeEventSimple(document,'keypress',dragDrop.dragKeys);
removeEventSimple(document,'keypress',dragDrop.switchKeyEvents);
removeEventSimple(document,'keydown',dragDrop.dragKeys);
dragDrop.draggedObject.className = dragDrop.draggedObject.className.replace(/dragged/,'');
var overlapped=dragDrop.overlapping();
dragDrop.draggedObject = null;
},
overlapping: function() {
dragDrop.obtop=dragDrop.draggedObject.offsetTop;
dragDrop.obleft=dragDrop.draggedObject.offsetLeft;
dragDrop.obwidth=(dragDrop.draggedObject.clientWidth)?(dragDrop.draggedObject.clientWidth):(dragDrop.draggedObject.offsetWidth);
dragDrop.obheight=(dragDrop.draggedObject.clientHeight)?(dragDrop.draggedObject.clientHeight):(dragDrop.draggedObject.offsetHeight);
dragDrop.obright=dragDrop.obleft+dragDrop.obwidth;
dragDrop.obbottom=dragDrop.obtop+dragDrop.obheight;
checkAction(dragDrop.draggedObject,dragDrop.obtop,dragDrop.obright,dragDrop.obbottom,dragDrop.obleft,this.initialMouseX,this.initialMouseY);
}
}





