// Array con el listado de trazas de una pagina
//var arrayCapas = new Array();

// Abre/cierra la capa de la traza
function showLayer(idCapa,size) {
	var miCapa = document.getElementById('trace_component_'+idCapa);
	var miEstado = eval('estado_'+idCapa);

	if (miEstado == 0) {
		eval('estado_'+idCapa+'=1'); // Cambio el estado a 1
		miCapa.style.width = size+"px"; // Ensancho la capa
		miCapa.className = miCapa.className.replace("traceLayer","traceLayerOpen"); // Cambio la classe CSS
		document.images['img_'+idCapa].src = "images/up.gif";  // Cambio el icono

	} else {
		eval('estado_'+idCapa+'=0'); // Cambio el estado a 0
		miCapa.className = miCapa.className.replace("traceLayerOpen","traceLayer"); // Cambio la classe CSS
		miCapa.style.width = "70px"; // Estrecho la capa
		document.images['img_'+idCapa].src = "images/down.gif";  // Cambio el icono
	}
}

// Cierra una capa
function closeLayer(idCapa) {
	var miCapa = document.getElementById('trace_component_'+idCapa);
	miCapa.style.display = "none";
}

// Muestra y coloca las capas encima de su componente asociado
function displayLayers() {

	var i=0;
	var aux="";
	var error="";

	try {
		for(i=0; i<arrayCapas.length; i++){
			aux = arrayCapas[i].split(":");

			try{
				traza = document.getElementById(aux[0]);
				componente = document.getElementById(aux[1]);

					traza.style.top = componente.offsetTop+"px";
					traza.style.left = componente.offsetLeft+"px";
					traza.style.display = "block";
			}catch(e){
				error += "ID '"+aux[1]+"' no encontrado\n";
				continue;
			}
		}
		//if (error != "") alert(error);
	} catch (e) {
		//print (e);
	}
}


// Envia un formulario
function postForm (formName, inputName, contenido) {

	formControl = document.getElementById (formName);
	inputControl = document.getElementById (inputName);
	inputControl.value = contenido;
	formControl.submit();

}


// Bloque de codigo para permitir arrastrar capas


function evitaEventos(event)
{
	// Funcion que evita que se ejecuten eventos adicionales
	if(navigator.userAgent.indexOf("MSIE")>=0)
	{
		window.event.cancelBubble=true;
		window.event.returnValue=false;
	}
	else event.preventDefault();
}

function comienzoMovimiento(event, id)
{
	elMovimiento=document.getElementById(id);

	/* Si el elemento que se le hizo click es texto (nodeType=3) se toma como target
	el elemento padre */
	if(elMovimiento.nodeType==3) elMovimiento=elMovimiento.parentNode;

	 // Obtengo la posicion del cursor
	if(navigator.userAgent.indexOf("MSIE")>=0)
	 {
	 	cursorComienzoX=window.event.clientX+document.documentElement.scrollLeft+document.body.scrollLeft;
		cursorComienzoY=window.event.clientY+document.documentElement.scrollTop+document.body.scrollTop;

		document.attachEvent("onmousemove", enMovimiento);
		document.attachEvent("onmouseup", finMovimiento);
	}
	else
	{
		cursorComienzoX=event.clientX+window.scrollX;
		cursorComienzoY=event.clientY+window.scrollY;

		document.addEventListener("mousemove", enMovimiento, true);
		document.addEventListener("mouseup", finMovimiento, true);
	}

	elComienzoX=parseInt(elMovimiento.style.left);
	elComienzoY=parseInt(elMovimiento.style.top);

	evitaEventos(event);
}

function enMovimiento(event)
{
	var xActual, yActual;
	if(navigator.userAgent.indexOf("MSIE")>=0)
	{
		xActual=window.event.clientX+document.documentElement.scrollLeft+document.body.scrollLeft;
		yActual=window.event.clientY+document.documentElement.scrollTop+document.body.scrollTop;
	}
	else
	{
		xActual=event.clientX+window.scrollX;
		yActual=event.clientY+window.scrollY;
	}

	elMovimiento.style.left=(elComienzoX+xActual-cursorComienzoX)+"px";
	elMovimiento.style.top=(elComienzoY+yActual-cursorComienzoY)+"px";

	evitaEventos(event);
}

function finMovimiento(event)
{
	if(navigator.userAgent.indexOf("MSIE")>=0)
	{
		document.detachEvent("onmousemove", enMovimiento);
		document.detachEvent("onmouseup", finMovimiento);
	}
	else
	{
		document.removeEventListener("mousemove", enMovimiento, true);
		document.removeEventListener("mouseup", finMovimiento, true);
	}
}
