/*
aqtree3clickable.js

Converts an unordered list to an explorer-style tree, with clickable
icons

To make this work, simply add one line to your HTML:
<script type="text/javascript" src="aqtree3clickable.js"></script>

and then make the top UL of your nested unordered list of class
"aqtree3clickable".

That's it. No registration function, nothing.

http://www.kryogenix.org/code/browser/aqlists/

Stuart Langridge, November 2002
sil@kryogenix.org

Inspired by Aaron's labels.js (http://youngpup.net/demos/labels/) and Dave Lindquist's menuDropDown.js (http://www.gazingus.org/dhtml/?id=109)

*/


var strVolver;
var strImprimir;


addEvent(window, "load", makeTreesC);

function makeTreesC() {
    // We don't actually need createElement, but we do
    // need good DOM support, so this is a good check.
    if (!document.createElement) return;
    
    uls = document.getElementsByTagName("ul");
    for (uli=0;uli<uls.length;uli++) {
        ul = uls[uli];
        if (ul.nodeName == "UL" && ul.className == "desplegable") {
            processULELC(ul);
        }
    }
}

function processULELC(ul) {
    if (!ul.childNodes || ul.childNodes.length == 0) return;
    // Iterate LIs
    for (var itemi=0;itemi<ul.childNodes.length;itemi++) {
        var item = ul.childNodes[itemi];
        if (item.nodeName == "LI") {
            // Iterate things in this LI
            var a;
            var subul;
	    subul = "";
            for (var sitemi=0;sitemi<item.childNodes.length;sitemi++) {
                var sitem = item.childNodes[sitemi];
                switch (sitem.nodeName) {
					/*
						Modificado por Borja Delgado: Ampliamos el proceso a STRONG
					*/
					case "A": a = sitem; break;
					case "STRONG": a = sitem; break; // BDM Abril/2007
                    case "UL": subul = sitem; 
                               processULELC(subul);
                               break;
                }
            }
            if (subul) {
                associateELC(a,subul);
            }
        }
    }
}

function associateELC(a,ul) {
    
	// Modificada por	Borja Delgado
	// 					http://www.orangeside.org
	//					07/2007
	
	if (a.parentNode.className == 'seccion_activa_n2') {
    	
		a.parentNode.className = 'aq3open seccion_activa_n2';
		
		a.onclick = function () {
        	this.parentNode.className = (this.parentNode.className=='aq3open seccion_activa_n2') ? "aq3closed seccion_activa_n2" : "aq3open seccion_activa_n2";
        	return false;
    	}
		
	} else if (a.parentNode.className == 'seccion_activa_n1') {
		
		a.parentNode.className = 'aq3open seccion_activa_n1';
		
		a.onclick = function () {
        	this.parentNode.className = (this.parentNode.className=='aq3open seccion_activa_n1') ? "aq3closed seccion_activa_n1" : "aq3open seccion_activa_n1";
        	return false;
    	}
		
	} else {
		
		a.parentNode.className = 'aq3closed';
		
		a.onclick = function () {
        	this.parentNode.className = (this.parentNode.className=='aq3open') ? "aq3closed" : "aq3open";
        	return false;
    	}
		
	}
	
	
}

/*function associateELC(a,ul) {
    if (a.parentNode.className.indexOf('aq3open') == -1)
      a.parentNode.className = 'aq3closed';
    a.onclick = function () {
        this.parentNode.className = (this.parentNode.className=='aq3open') ? "aq3closed" : "aq3open";
        return false;
    }
}*/

/*              Utility functions                    */

function addEvent(obj, evType, fn){
  /* adds an eventListener for browsers which support it
     Written by Scott Andrew: nice one, Scott */
  if (obj.addEventListener){
    obj.addEventListener(evType, fn, false);
    return true;
  } else if (obj.attachEvent){
	var r = obj.attachEvent("on"+evType, fn);
    return r;
  } else {
	return false;
  }
}



/*   Noticias desplegables                  */
addEvent(window, "load", cargar);



function cargar() {
 
   if (!document.createElement) return;
    var noticias=false;
	var listado=false;
    uls = document.getElementsByTagName("ul");
    for (uli=0;uli<uls.length;uli++) {
        ul = uls[uli];
        if (ul.nodeName == "UL" && ul.id == "list_noticias") listado=true;
    }
    uls = document.getElementsByTagName("div");
    for (uli=0;uli<uls.length;uli++) {
        ul = uls[uli];
        if (ul.nodeName == "DIV" && ul.id == "contendor_noticias")  noticias=true;
    }

	//comprobamos que se encuentren los elementos antes de ejecutar las funcones de js para evitar errores de ejecucion
    if ( listado && noticias)
    {		 
	 iniciaMenu2('list_noticias');
	 iniciaMenu('contendor_noticias');
    }
    
}


/* iniciaMenu: hacemos invisibles todas los noticias que estan dentro del div padre*/
function iniciaMenu(menu){	
	idMenu = menu
	menu = document.getElementById(menu);
	for(var m = 0; m < menu.getElementsByTagName('div').length; m++){
		el = menu.getElementsByTagName('div')[m];
		
		if (m==0)
		{
			el.style.display = 'block'
		}
		else el.style.display = 'none';		
	}	
}


/* iniciaMenu2: vemos cuantos elementos li hay y les asignamos la propiedad onCLick para captar su evento y mostrar la capa en cuestion*/

function iniciaMenu2(menu){   
	menu = document.getElementById(menu);
	for(var m = 0; m < menu.getElementsByTagName('li').length; m++){
	    
		el = menu.getElementsByTagName('li')[m]
		
		el.onclick = function(){
			for(var m = 0; m < menu.getElementsByTagName('li').length; m++){	    
		        el = menu.getElementsByTagName('li')[m]
				el.id='';
			}
			 this.id='activo';			
			 cont_noticias = document.getElementById("contendor_noticias");
			
	         for(var s = 0; s < cont_noticias.getElementsByTagName('div').length; s++){
			     noticia = cont_noticias.getElementsByTagName('div')[s]
			    
				 noticia = cont_noticias.getElementsByTagName('div')[s]
				 if (noticia.className==this.className)
				  {				 
			        noticia.style.display = 'block';
				  }
                  else noticia.style.display = 'none';
			
	        }           
		}
	}
	
}


/*   canales desplegables    */
addEvent(window, "load", initMenus);

function initMenus() {

   
  
	if (!document.getElementsByTagName) return;
	
	var aMenus = document.getElementsByTagName("LI");
	for (var i = 0; i < aMenus.length; i++) {

		var mclass = aMenus[i].className;
		if (mclass.indexOf("treenode") > -1) {
			var submenu = aMenus[i].childNodes;
		
			for (var j = 0; j < submenu.length; j++) {
				if (submenu[j].tagName == "IMG") {
					
					submenu[j].onclick = function() {
						//alert("onclick")
						var node = this.nextSibling;
						/* comprobamos la clase del LI para saber q imagen poner */
						if (this.className=='treeopen')
						{
						  this.src="/estaticos/imagenes/comunes/menu_seccion_desplegable_mas.gif";	 
						}
						else this.src="/estaticos/imagenes/comunes/menu_seccion_desplegable_menos.gif";					
						while (1) {
							if (node != null) {
								if (node.tagName == "UL") {
									var d = (node.style.display == "none")
									node.style.display = (d) ? "block" : "none";
									this.className = (d) ? "treeopen" : "treeclosed";
									return false;
								}
								node = node.nextSibling;
							} else {
								return false;
							}
						}
						return false;
					}
					var antes= submenu[j].className;

					submenu[j].className = (mclass.indexOf("open") > -1) ? "treeopen" : "treeclosed";
					var despues = submenu[j].className;
					if (antes !=despues ){
						//alert ("Antes:"+antes+"\nDespues:"+despues+"\nId:"+aMenus[i].id);
						
					}
					
				}
				
				if (submenu[j].tagName == "UL")
					submenu[j].style.display = (mclass.indexOf("open") > -1) ? "block" : "none";
			}
		}
	}
}


/*hsjhs*/

//Obtiene el contraste del aplicativo(normal=cn o alto contraste = ac ) 
//Obtine el idioma de la aplicacion y carga los literales -que se manejan en cliente - en base al idioma del aplicativo
var w3c =(navigator.userAgent.indexOf("Gecko")!=-1 || navigator.userAgent.indexOf("Opera")!=-1 );

document.getElementsByClassName=function(className) {
  var data = [];
  var node=(document.getElementById("wrapper"))? document.getElementById("wrapper"):document;
//var tags = node.getElementsByTagName("*") ? node.getElementsByTagName("*") : document.all;    
  var tags = (!document.all) ? node.getElementsByTagName("*") : document.all
  for(var i=0;i<tags.length;i++) { if(tags[i].className.match(className)) data[data.length]=tags[i];}
  return data;
}
var rutaRelativa="";

var contraste={
	alto:false,
	strContraste:"cn",
	strAc:"/ac/",   
	strCn:"/cn/",  
	calcula:function()
	{
		var btnSRC = document.getElementById("btnSeleccionar").src;
		contraste.alto = (btnSRC.indexOf(contraste.strAc)!=-1)? true:false
	}
}
// Gestiona el enlace volver
var volver={
	carga:function(){
		vol=document.getElementsByClassName("objectBack")
		var sourceOrigen = (contraste.alto)?   contraste.strAc:contraste.strCn;
		
		for(var ww=0;ww<vol.length;ww++){
			
			
			var impEnlace=document.createElement('a')			
			impEnlace.id="scriptImprmir";
	
			txt=document.createTextNode(strImprimir);
			impEnlace.appendChild(txt)
			vol[ww].appendChild(impEnlace)
		    document.getElementById("scriptImprmir").onclick=volver.imprimir;
		
			var volEnlace=document.createElement('a')
			volEnlace.href="";			
			volEnlace.id="scriptBtnVolver"+ww;

			txt=document.createTextNode(strVolver);
			volEnlace.appendChild(txt)
			vol[ww].appendChild(volEnlace)
			
			document.getElementById("scriptBtnVolver"+ww).onclick=volver.retrocede;
			//document.getElementById("scriptBtnVolver"+ww).onkeypress=volver.retrocede;
			document.getElementById("scriptBtnVolver"+ww).onkeypress=volver.filtraTab;
		}
	},
	filtraTab:function(e){
		if(window.event) {
			// IE	
			keynum = e.keyCode;
			volver.retrocede();
		}else if(e.which){
		 // Netscape/Firefox/Opera
			keynum = e.which
			volver.retrocede();
		}
	},
	
	imprimir:function(e){
		window.print()
	},
	retrocede:function(){
		if(w3c)history.go(-1)
		else history.back()
		return false;
	}
}


var acciones={
	existeId:function(cid){
		if(document.getElementById(cid)) return true;
		return false;
	},
	existeClase:function(cClass){
		if(document.getElementsByClassName(cClass).length>0)return true;
		return false
	},
	load:function() {
		
		if(acciones.existeClase("objectBack")){volver.carga();};
		
		if(acciones.existeClase("selectTagged")){
			var selectTaggedObj=document.getElementsByClassName("selectTagged")
			for(var pp=0; pp<selectTaggedObj.length; pp++){
				selectTag.create(selectTaggedObj[pp],pp);
			}
		}
		if(acciones.existeId("imessage")){msgTextField.clean();}
	}
}
addEvent(window, "load",acciones.load,false);




/* Multilenguaje 
 	Se pasa como parámetro el portal para poner el texto de los botones */
AQTREE = {
	// listeners modified from John Resig
	// http://ejohn.org/projects/flexible-javascript-events/
	addEventAqTree : function (idioma) {
	
	  if (idioma=="es_ES"){
		
		  strVolver = "Volver";
		  strImprimir ="Imprimir";		 
	  }
	  else{
		
		  strVolver = "Back";
		  strImprimir ="Print";
	  }
	  
	}
}
/* Multilenguaje */






