/*no intrusivo*/
/*funcion que llama a diferentes funciones que se quedan pendientes de ser llamadas mediante eventos como onclick*/	
(function() {
	window.onload = function() {
			mostrarMenuV();
			mostrarMenuH();
			/*colapsadores();*/
			selec_code();
			tdSelec();
			botHover();
			orderColum(); 
			imgPopUp();
			abrirCapa();
	  		cerrarCapa();
			volver();
			layers();
			checkbox();
			
			colapInicial();
			getCapas();
			mostrar();
 	}
})();

//bytefx.$event(window, "onload", function() {
//	/*alert("dentro");*/
//	var div = document.getElementById("bytefx"); // one div
// 	span = div.getElementsByTagName("span").item(1); // its header
//	realheight = 23; // real div size
//	realheight = bytefx.$size(span).height; // to get real div height
//	
//	bytefx.$event(span, "onclick", function(){
//
//		// header wasn't clicked ? it's closed, size to new height, otherwise come back to old height
//		var newsize = {width:258, height:(!this.bytefx.clicked ? realheight : 356), $width:2, width$:2};
//		bytefx.size(div, newsize, 20);
//		this.bytefx.clicked = !this.bytefx.clicked;
//	});
//});

function checkbox(){
	var listaInput= document.getElementsByTagName("input");
	var listaInput2= document.getElementsByTagName("input");
	var listaInput3= document.getElementsByTagName("input");
	var checkName = "";
	var cont = "";
	for(var i = 0; listaInput[i] !=  null; ++i) {
		if(listaInput[i].type == "checkbox"){	
			listaInput[i].onclick = function() {
				checkName = this.name;
				if(this.value == "all"){
					for(var j = 0; listaInput2[j] !=  null; ++j) {
						if(listaInput2[j].name == checkName && this.checked == 1){
							listaInput2[j].checked = 1;
						}
						else if(listaInput2[j].name == checkName && this.checked == 0){
							listaInput2[j].checked = 0;
						}
					}
				}
				else{
					for(var j = 0; listaInput2[j] !=  null; ++j) {
						if(listaInput2[j].name == checkName  && listaInput2[j].value == "all" && this.checked == 0){
							listaInput2[j].checked = 0;
						}
					}
				}
   			}
		}
	}
};

function layers(){
	var listaAll = document.getElementsByTagName("*");
	var tag_id = "";
	var div_id = "";
	var div_class = "";
 	for(var i = 0; listaAll[i] !=  null; ++i) {
		tag_id = listaAll[i].id.substr(0, 3);
  		if(tag_id == "op_") {
			listaAll[i].onclick = function() {
				div_id = this.id.substr(5, this.id.length-1);
				for(var j = 0; listaAll[j] !=  null; ++j) {
					div_class = listaAll[j].className.substr(0, 5);
					if(div_class == 'capa_'){
						listaAll[j].style.visibility = "hidden";
					}
				}
			  	document.getElementById(div_id).style.visibility="visible";
   			}
  		}
		else if(tag_id == "cl_") {
			listaAll[i].onclick = function() {
				div_id = this.id.substr(5, this.id.length-1);
			  	document.getElementById(div_id).style.visibility = "hidden";
   			}
  		}
 	}
};

function abrirCapa() {
 	var listaBot = document.getElementsByTagName("button");
	var listaDiv = document.getElementsByTagName("div"); 
	/*var id_bot = "";
	var id_div = "";
	var class_div = "";*/
	var elemento = "";
	var element = "";
	var pos = "";
	var x = "";
	var y = "";
 	for(var i = 0; listaBot[i] !=  null; ++i) {
  		if(listaBot[i].className == "bot_calendar") {
			listaBot[i].onclick = function() {
				element = document.getElementById(this.id); 

				if (typeof element == "string")
				  element = document.getElementById(element)
	
				if (!element) /*return { top:0,left:0 }*/;
				
				y = 0;
				x = 0;
				while (element.offsetParent) {
					x += element.offsetLeft;
					y += element.offsetTop;
					element = element.offsetParent;
				}
				/*return {top:y,left:x};*/
				document.getElementById("cal01").style.position = "absolute";
				document.getElementById("iframecal01").style.position = "absolute";
				document.getElementById("cal01").style.top = y+21+'px';
				document.getElementById("iframecal01").style.top = y+21+'px';
				if(x > 775){
					alert(x);
					document.getElementById("cal01").style.left = x-170+'px';
					document.getElementById("iframecal01").style.left = x-170+'px';
					document.getElementById("calendario01").style.display="block";
				}
				else{
					document.getElementById("cal01").style.left = x+'px';
					document.getElementById("iframecal01").style.left = x+'px';
				}
				document.getElementById("calendario01").style.display="block";
				/*alert("top="+pos.top+" left="+pos.left)*/
				/*x = this.left;
				alert(this.left);*/
				/*id_bot = this.id.substr(4, 2);
				id_div = "cal"+id_bot;*/
   			}
  		}
 	}
};

function cerrarCapa() {
 	var listaA = document.getElementsByTagName("a");
	var id_a = "";
	var id_div = "";
 	for(var i = 0; listaA[i] !=  null; ++i) {
		if(listaA[i].parentNode.className == "cerrar"){
			listaA[i].onclick = function() {
				id_a = this.id.substr(11, 2);
				id_div = "calendario"+id_a;
				document.getElementById(id_div).style.display = "none";
			}
		}
	}
};

function imgPopUp(){
var listaDiv= document.getElementsByTagName("div");
	for(var i = 0; listaDiv[i] !=  null; ++i) {
		if(listaDiv[i].id=="img_popup_bot"){
			listaDiv[i].onmouseover = function() {
				this.style.cursor='pointer';
			}
			listaDiv[i].onclick = function() {
				var ventana = "";
				ventana=window.open('comp_botones.html','','');
				ventana.document.close();
			}
		}
		else if(listaDiv[i].id=="img_popup_enlaces"){
			listaDiv[i].onmouseover = function() {
				this.style.cursor='pointer';
			}
			listaDiv[i].onclick = function() {
				var ventana = "";
				ventana=window.open('comp_enlaces.html','','');
				ventana.document.close();
			}
		}
	}
};

/*comportamiento hover en botones*/
function botHover(){
var listaBot= document.getElementsByTagName("button");
var substr_glob = "";
var substr_glob_pos = "";
var substr_loc = "";
var substr_loc_pos = "";
var substr_pas = "";
var substr_pas_pos = "";
var substr_lupa = "";
var substr_lupa_pos = "";
	for(var i = 0; listaBot[i] !=  null; ++i) {
		substr_glob = listaBot[i].className.substr(0, 9);
		substr_loc = listaBot[i].className.substr(0, 8);
		substr_pas = listaBot[i].className.substr(0, 8);
		substr_lupa = listaBot[i].className.substr(0, 9);
		if(substr_glob == 'bot_glob1'){
			listaBot[i].onmouseover = function(){
				substr_glob_pos = this.className.substr(9, 6);
				this.className = 'bot_glob2'+substr_glob_pos;
			}
			listaBot[i].onmouseout = function(){
				this.className = 'bot_glob1'+substr_glob_pos;
			}
		}
		if(substr_loc == 'bot_loc1'){
			listaBot[i].onmouseover = function(){
				substr_loc_pos = this.className.substr(8, 6);
				this.className = 'bot_loc2'+substr_loc_pos;
			}
			listaBot[i].onmouseout = function(){
				this.className = 'bot_loc1'+substr_loc_pos;
			}
		}
		if(substr_pas == 'bot_pas1'){
			listaBot[i].onmouseover = function(){
				substr_pas_pos = this.className.substr(8, 6);
				this.className = 'bot_pas2'+substr_pas_pos;
			}
			listaBot[i].onmouseout = function(){
				this.className = 'bot_pas1'+substr_pas_pos;
			}
		}
		if(substr_lupa == 'bot_lupa1'){
			listaBot[i].onmouseover = function(){
				substr_lupa_pos = this.className.substr(9, 6);
				this.className = 'bot_lupa2'+substr_lupa_pos;
			}
			listaBot[i].onmouseout = function(){
				this.className = 'bot_lupa1'+substr_lupa_pos;
			}
		}
	}
};

/*cambio de flechas segun el foco y la ordenacion de columna*/
function orderColum(){
var listaOrderEnlace = document.getElementsByTagName("a");
var listaOrderEnlace2 = document.getElementsByTagName("a");
var padre_class = "";
var padre_id = "";
var substr_padre_class = "";
var substr_padre_class2 = "";
var substr_padre_class3 = "";
var substr_padre_id = "";
var substr_id2 = "";
var num_ord = "";
	for(var i = 0; listaOrderEnlace[i] !=  null; ++i) {
		/*enlaces*/
		if(listaOrderEnlace[i].className == 'ord1' || listaOrderEnlace[i].className == 'ord2'){
			
			listaOrderEnlace[i].style.cursor='pointer';	
			listaOrderEnlace[i].onclick = function(){
				
				/*valorar class del nodo padre*/
				padre_class = this.parentNode.className;
				substr_padre_class = padre_class.substr(0, 3);
				substr_padre_class2 = substr_padre_class.substr(0, 1);
				substr_padre_class3 = padre_class.substr(3, 9);
				
				/*valorar id del nodo padre*/
				padre_id = this.parentNode.id;
				substr_padre_id = padre_id.substr(0, 7);
				
				/*columnas sin la clase .th1 .th2 ...., sin scroll*/
				if(substr_padre_class2 != 't'){
					/**********FLECHAS ACTIVAS***************************/
					if(this.className == 'ord2' && padre_class == 'order2'){
						for(var j = 0; listaOrderEnlace2[j] !=  null; ++j) {
							if(listaOrderEnlace2[j].parentNode.id.substr(0, 7) == substr_padre_id){
								listaOrderEnlace2[j].parentNode.className = 'order2';
							}
						}
						this.parentNode.className = 'order1';
					}
					else if(this.className == 'ord2' && padre_class  == 'order2 sinborde'){
						for(var j = 0; listaOrderEnlace2[j] !=  null; ++j) {
							if(listaOrderEnlace2[j].parentNode.id.substr(0, 7) == substr_padre_id){
								listaOrderEnlace2[j].parentNode.className = 'order2 sinborde';
							}
						}
						this.parentNode.className = 'order1 sinborde';
					}
					else if(this.className == 'ord2' && padre_class  == 'order1'){
						this.parentNode.className = 'order1_up';
					}
					else if(this.className == 'ord2' && padre_class  == 'order1 sinborde'){
						this.parentNode.className = 'order1_up sinborde';
					}
					else if(this.className == 'ord2' && padre_class  == 'order1_up'){
						this.parentNode.className = 'order1';
					}
					else if(this.className == 'ord2' && padre_class  == 'order1_up sinborde'){
						this.parentNode.className = 'order1 sinborde';
					}
					/**********FLECHAS ARRIBA / ABAJO***************************/
					else if(this.className == 'ord1' && padre_class == 'order1'){
						this.parentNode.className = 'order1_up';
					}
					else if(this.className == 'ord1' && padre_class  == 'order1_up'){
						this.parentNode.className = 'order1';
					}
					else if(this.className == 'ord1' && padre_class == 'order2'){
						for(var j = 0; listaOrderEnlace2[j] !=  null; ++j) {
							if(listaOrderEnlace2[j].parentNode.id.substr(0, 7) == substr_padre_id){
								listaOrderEnlace2[j].parentNode.className = 'order2';
							}
						}
						this.parentNode.className = 'order1';
					}
				}
				
				/*columnas con clase .th1, .th2....., SCROLABLES*/
				else if(substr_padre_class2 == 't'){
					num_ord = padre_class.charAt(padre_class.length-1);
					/**********FLECHAS ACTIVAS***************************/
					if(this.className == 'ord2' && num_ord == '2' && substr_padre_class3 != 'editable '){
						for(var j = 0; listaOrderEnlace2[j] !=  null; ++j) {
							if(listaOrderEnlace2[j].parentNode.id.substr(0, 7) == substr_padre_id && listaOrderEnlace2[j].parentNode.className.substr(3, 9) != 'editable '){
								listaOrderEnlace2[j].parentNode.className = listaOrderEnlace2[j].parentNode.className.substr(0,3)+'order2';
							}
							else if(listaOrderEnlace2[j].parentNode.id.substr(0, 7) == substr_padre_id && listaOrderEnlace2[j].parentNode.className.substr(3, 9) == 'editable '){
								listaOrderEnlace2[j].parentNode.className = listaOrderEnlace2[j].parentNode.className.substr(0,3)+'editable '+'order2';
							}
						}
						this.parentNode.className = substr_padre_class+'order1';
					}
					else if(this.className == 'ord2' && num_ord == '2' && substr_padre_class3 == 'editable '){
						for(var j = 0; listaOrderEnlace2[j] !=  null; ++j) {
							if(listaOrderEnlace2[j].parentNode.id.substr(0, 7) == substr_padre_id && listaOrderEnlace2[j].parentNode.className.substr(3, 9) != 'editable '){
								listaOrderEnlace2[j].parentNode.className = listaOrderEnlace2[j].parentNode.className.substr(0,3)+'order2';
							}
							else if(listaOrderEnlace2[j].parentNode.id.substr(0, 7) == substr_padre_id && listaOrderEnlace2[j].parentNode.className.substr(3, 9) == 'editable '){
								listaOrderEnlace2[j].parentNode.className = listaOrderEnlace2[j].parentNode.className.substr(0,3)+'editable '+'order2';
							}
						}
						this.parentNode.className = substr_padre_class+'editable '+'order1';
					}
					else if(this.className == 'ord2' && num_ord == '1' && substr_padre_class3 != 'editable '){
						this.parentNode.className = substr_padre_class+'order1_up';
					}
					else if(this.className == 'ord2' && num_ord == '1' && substr_padre_class3 == 'editable '){
						this.parentNode.className = substr_padre_class+substr_padre_class3+'order1_up';
					}
					else if(this.className == 'ord2' && num_ord == 'p' && substr_padre_class3 != 'editable '){
						this.parentNode.className = substr_padre_class+'order1';
					}
					else if(this.className == 'ord2' && num_ord == 'p' && substr_padre_class3 == 'editable '){
						this.parentNode.className = substr_padre_class+substr_padre_class3+'order1';
					}
					/**********FLECHAS ARRIBA / ABAJO***************************/
					else if(this.className == 'ord1' && num_ord == '1' && substr_padre_class3 != 'editable '){
						this.parentNode.className = substr_padre_class+'order1_up';
					}
					else if(this.className == 'ord1' && num_ord == '1' && substr_padre_class3 == 'editable '){
						this.parentNode.className = substr_padre_class+substr_padre_class3+'order1_up';
					}
					else if(this.className == 'ord1' && num_ord == 'p' && substr_padre_class3 != 'editable '){
						this.parentNode.className = substr_padre_class+'order1';
					}
					else if(this.className == 'ord1' && num_ord == 'p' && substr_padre_class3 == 'editable '){
						this.parentNode.className = substr_padre_class+substr_padre_class3+'order1';
					}
					else if(this.className == 'ord1' && num_ord == '2' && substr_padre_class3 != 'editable '){
						for(var j = 0; listaOrderEnlace2[j] !=  null; ++j) {
							if(listaOrderEnlace2[j].parentNode.id.substr(0, 7) == substr_padre_id && listaOrderEnlace2[j].parentNode.className.substr(3, 9) != 'editable '){
								listaOrderEnlace2[j].parentNode.className = listaOrderEnlace2[j].parentNode.className.substr(0,3)+'order2';
							}
							else if(listaOrderEnlace2[j].parentNode.id.substr(0, 7) == substr_padre_id && listaOrderEnlace2[j].parentNode.className.substr(3, 9) == 'editable '){
								listaOrderEnlace2[j].parentNode.className = listaOrderEnlace2[j].parentNode.className.substr(0,3)+'editable '+'order2';
							}
						}
						this.parentNode.className = substr_padre_class+'order1';
					}
					else if(this.className == 'ord1' && num_ord == '2' && substr_padre_class3 == 'editable '){
						for(var j = 0; listaOrderEnlace2[j] !=  null; ++j) {
							if(listaOrderEnlace2[j].parentNode.id.substr(0, 7) == substr_padre_id && listaOrderEnlace2[j].parentNode.className.substr(3, 9) != 'editable '){
								listaOrderEnlace2[j].parentNode.className = listaOrderEnlace2[j].parentNode.className.substr(0,3)+'order2';
							}
							else if(listaOrderEnlace2[j].parentNode.id.substr(0, 7) == substr_padre_id && listaOrderEnlace2[j].parentNode.className.substr(3, 9) == 'editable '){
								listaOrderEnlace2[j].parentNode.className = listaOrderEnlace2[j].parentNode.className.substr(0,3)+'editable '+'order2';
							}
						}
						this.parentNode.className = substr_padre_class+'editable '+'order1';
					}
				}
			}
		}
	}
};

/*iluminacion de filas en las tablas*/
function tdSelec(){
var listaFilas= document.getElementsByTagName("tr");
var parent3 = "";
var parent4 = "";
var parent = "";
	for(var i = 0; listaFilas[i] !=  null; ++i) {
		parent3 = listaFilas[i].parentNode.parentNode.parentNode.className.substring(0, 5);
		parent4 = listaFilas[i].parentNode.parentNode.parentNode.parentNode.className.substring(0, 5);
    	parent = listaFilas[i].parentNode.tagName;
		if((parent3 == "tabla" || parent3 == "scrol" || parent4 == "tabla") && (parent == "TBODY")){
			listaFilas[i].onmouseover = function(){
					this.bgColor='#f5e9ea';
			}
			listaFilas[i].onmouseout = function(){
				this.bgColor='';
			}
		}
	}
};

/*seleccinar codigo mediante boton*/
function selec_code(){
var listaBotones= document.getElementsByTagName("button");
var listaText= document.getElementsByTagName("textarea");
var num_bot = "";
var num_text = "";
var substr_id = "";
var result = "";
 	for(var i = 0; listaBotones[i] !=  null; ++i) {
		listaBotones[i].onclick = function(){
			num_bot = this.id.charAt(this.id.length-1);
			substr_id = this.id.substring(0, 7);
  			if(substr_id == "txtbot_") {
				for(var i = 0; listaText[i] !=  null; ++i) {
					num_text = listaText[i].id.charAt(listaText[i].id.length-1);
					if(num_text == num_bot){
						result = 'txtarea_'+num_text;
						document.getElementById(result).focus();
						document.getElementById(result).select();
					}
				}
			}
		}
	}
};

/* menu vertical*/	
function mostrarMenuV(){
	var listaEnlaces = document.getElementsByTagName("span");
	for(var i = 0; listaEnlaces[i] !=  null; ++i) {
		var miString = "";
		var result = "" ;
		var allTags = "";
		var id = "";
		var substr_id = "";
		var result_id = "";
		var clicado = "";
		listaEnlaces[i].onmouseover = function(){
			if(this.className == "mv_inactivo" || this.className == "mv_activo"){ 
				this.style.cursor='pointer';
			}
		}
		listaEnlaces[i].onclick = function(){
			miString = this.id;
			result = miString.charAt(miString.length-1); 
			clicado = miString.substring(3, 10);
			allUl = document.getElementsByTagName('ul');
			for(i=0; i<allUl.length; i++){
				id = allUl[i].id;
				substr_id = id.substring(0, 4);
				result_id = id.charAt(id.length-1);
				if(substr_id == "mv1_" && result_id == result){
					if(clicado == "ocultar"){
						mostrado = "mv1_"+result_id;
						if(this.className=="mv_activo"){					
							document.getElementById(mostrado).style.display='none';
							document.getElementById(miString).className="mv_inactivo";
						}
						else if(this.className=='mv_inactivo'){	
							document.getElementById(mostrado).style.display='block';
							document.getElementById(miString).className="mv_activo";
						}
					}
				}
			}
		}
	}												
};

/*menú horizontal*/
function mostrarMenuH(){
var listaListas = document.getElementsByTagName("li");
var lista_id = "";
var substr_id = "";
var result = "";
var mostrado = "";
	for(var i = 0; listaListas[i] !=  null; ++i) {
		listaListas[i].onmouseover = function() {
			lista_id = this.id;
			substr_id = lista_id.substring(0, 2);
			if(substr_id == 'mh' && this.parentNode.className == 'nav'){
				result = '_'+lista_id.charAt(lista_id.length-1);
				mostrado = lista_id + result;
				this.style.cursor = "default";
				this.style.color = "#002740";	
				document.getElementById(mostrado).style.visibility = "visible";
			}
		}
		listaListas[i].onmouseout = function() {
			if(substr_id == 'mh' && this.parentNode.className == 'nav'){
			   document.getElementById(mostrado).style.visibility = "hidden";
			   if(this.className != "activo"){
				   this.style.color="#567080";
			   }
		   }
		}
	}
};

/*volver*/
function volver(){
	var listaEnlaces= document.getElementsByTagName("a");
	for(var i = 0; listaEnlaces[i] !=  null; ++i) {
		if(listaEnlaces[i].className=="volver"){
			listaEnlaces[i].onclick= function() {
				history.back();
			}
		}
	}
};

/*colapsadores*/
/*function colapsadores(){
var listaEnlaces = document.getElementsByTagName("*");
 	for(var i = 0; listaEnlaces[i] !=  null; ++i) {
		var colapsador = "";
		var span_ocultar = "";
		var allTags = "";

		if(listaEnlaces[i].className == "colap_oculto col1") {
			listaEnlaces[i].onclick = function() {
				document.getElementById(this.id).style.display='none';
				allTags = document.getElementsByTagName('*');
				for(i=0; i<allTags.length; i++){
					if(allTags[i].className == "col1") allTags[i].style.display = 'block';
					if(allTags[i].className == "cont colap_oculto col1") allTags[i].style.display = 'none';
					
				}
			}
		}
		else if(listaEnlaces[i].className == "col1") {
			listaEnlaces[i].onclick = function() {
				colapsador = this.id + 'm';
				span_ocultar = this.id + 'o';
				allTags = document.getElementsByTagName('*');
				for(i=0; i<allTags.length; i++){
					if(allTags[i].className == "col1") allTags[i].style.display = 'block';
					if(allTags[i].className == "colap_oculto col1") allTags[i].style.display = 'none';
					if(allTags[i].className == "cont colap_oculto col1") allTags[i].style.display = 'none';
				}
				document.getElementById(this.id).style.display='none';
				document.getElementById(span_ocultar).style.display='block';
				document.getElementById(colapsador).style.display='block';
			}
		}
 	}
};
*/

/**
Colapsa todas las capas al cargar la página 
*/
function colapInicial()
{
	var listaCap = document.getElementsByTagName("li");	
	for(var i=0; i<listaCap.length; i++)
	{
		if(listaCap[i].className=="colap_v")
			listaCap[i].className="colap_o";

	}
}

/** 
Devuelve un array con todas las capas que se muestran/ocultan
*/
function getCapas()
{
	var listaAux;
	var listaCapas=new Array();
	var aux;
	
	listaAux=document.getElementsByTagName("li");
	for(var i=0; i<listaAux.length; i++)
	{
		aux=listaAux[i].className;
		
		if(aux.substring(0,5)=="colap")
		{
			listaCapas[listaCapas.length]=listaAux[i];
			
		}		
	}				
	return listaCapas;
}


function mostrar()
{
	var selecc;
	var aes;
	var listaCapas;
	var capa;
	var esc;
	var numProy;
	
	if(document.getElementsByName("despl"))
	{
		var listaA = document.getElementsByName("despl"); /*todos los enlaces colapsadores*/
		listaCapas=getCapas();	/*array con todas las capas que se muestran/ocultan*/	
		for(var i = 0; listaA[i] !=  null; ++i) 
		{
			var element=listaA[i].parentNode.parentNode.className;
			if((element == "proy_sub")) 
			{
				aes = listaA[i];
				aes.onclick = function() 
				{
					numProy=this.parentNode.parentNode.parentNode.id.substring(5,6);
					selecc = this.id;
					selecc = selecc.substring(3,6)
					capa = "det"+numProy+"_" + selecc;
					for(var i = 0; listaCapas[i] !=  null; ++i) 
					{
						if(listaCapas[i].id == capa) /*se muestra/oculta la capa correspondiente al enlace clicado*/
						{
							if(listaCapas[i].className=="colap_o")
								listaCapas[i].className="colap_v";
							else
								listaCapas[i].className="colap_o";
						}
						else /*se ocultan las capas de todos los enlace no clicados*/
						{
							listaCapas[i].className="colap_o";
						}
					}
				}
			}
		}
	}
};






