/*
 * funciones.js
 *
 * Interesa Consultores
 * 
 */
 

var classDivContenedor='div_tabs'; //class del div que contiene las pestañas y los divs
var classInicial='activo'; //class del div que inicialmente tiene que estar abierto
var classTabs='tabs'; //class del ul de las pestañas
var classTabsSeleccionado='seleccionado'; //class de la pestaña cuando esta seleccionado
var classOcultar='oculto';
var classMostrar='mostrar';
var classFlotar='flotante';
var posicion;
var classCapa='enlace';
var classCapaCerrar='cerrar';
var class_no_js="no_js";


//inicializar las pestañas
function iniciar(){
	
	ocultar_div_inicio();
	var array_divs = document.getElementsByTagName('div');
	for(var i=0; i < array_divs.length; i++){//recorrer todos los divs
		
		var class_div=array_divs[i].getAttribute(obtenerPropiedadClass());
		if(class_div!=null){
			if(class_div.indexOf(classDivContenedor+"_")!=-1 && class_div.indexOf(classInicial)==-1){ //Si hay un div que contiene el class del contenedor y no contiene el class que indica que por defecto tiene que estar abierto lo oculta.
				array_divs[i].className = nombreClass(class_div,classOcultar);//ocultar
			}
			
			
			if(class_div.indexOf("ventana")!=-1){ 
				if(class_div.indexOf("no_flotante")==-1){ //si no contiene el class no_flotante
					array_divs[i].className = nombreClass(class_div,"ventana_flotante " + classOcultar);//ocultar y flotar
				}else{
					//solo lo oculta
					array_divs[i].className = nombreClass(class_div,classOcultar);//ocultar
				}
			}

			
		}
	}

            
		cargarEventoTab();
		
}

//cargar el evento del click al tab
function cargarEventoTab(){
	
	var array_li = document.getElementsByTagName('li');
	
	for(var i=0; i < array_li.length; i++){//recorrer todos los li
		var class_ul=array_li[i].parentNode.getAttribute(obtenerPropiedadClass());
		if(class_ul!=null){
			if(class_ul.indexOf(classTabs)!=-1){//Si el class corresponde a una lista pestaña
				//crear evento
				addEvent(array_li[i], 'click', eventoTab);
			}
		}
	}
}


function eventoTab(evnt) {
         ev = (evnt) ? evnt : event;
         li_actual = (ev.target) ? ev.target : ev.srcElement;
		 var css_tab=li_actual.href;
		 var grupo=li_actual.getAttribute(obtenerPropiedadClass());
		 var div_buscador=li_actual.parentNode.parentNode.parentNode.parentNode.parentNode.className;
		 css_tab=css_tab.slice(css_tab.lastIndexOf('#')+1,css_tab.length);
		 noSeleccionarTab(li_actual.parentNode.parentNode);//pasamos el padre del padre, [a] -> [li] -> [ul]
		 li_actual.parentNode.className = nombreClass('',classTabsSeleccionado);//seleccionar
		 
		 mostrarTab(grupo,css_tab); //pasamos el grupo al que pertenece las pestañas, y el css del bloque a mostrar
		 
		 
		  if((div_buscador.indexOf('avanzado')!=-1)||(div_buscador.indexOf('simple')!=-1)){
		  }else{	
			 curvyCorners.redraw();
	      }
		 
		 
}

function mostrarTab(grupo,css_tab){
	ocultarTab(grupo);
		var array_divs = document.getElementsByTagName('div');
	for(var i=0; i < array_divs.length; i++){//recorrer todos los divs
		var class_div=array_divs[i].getAttribute(obtenerPropiedadClass());
		if(class_div!=null){
			//si el div contiene el grupo como class
			if(class_div.indexOf(grupo)!=-1){
				if(class_div.indexOf(classDivContenedor +"_"+ css_tab)!=-1){ //Si hay un div que contiene el class del contenedor  lo muestra.
					array_divs[i].className = nombreClass(class_div,classMostrar);//mostrar
				}
			}
		}
	}
}
//Ocultar todas las pestañas
function ocultarTab(grupo){
	var array_divs = document.getElementsByTagName('div');
	for(var i=0; i < array_divs.length; i++){//recorrer todos los divs
		var class_div=array_divs[i].getAttribute(obtenerPropiedadClass());
		if(class_div!=null){
			//si el div contiene el grupo como class
			if(class_div.indexOf(grupo)!=-1){
				if(class_div.indexOf(classDivContenedor+"_")!=-1){ //Si hay un div que contiene el class del contenedor  lo oculta.
					array_divs[i].className = nombreClass(class_div,classOcultar);//ocultar
				}
			}
		}
	}
}


//No seleccionar todas las pestañas
function noSeleccionarTab(padre){
			for (j = 0; j < padre.childNodes.length; j++) {
				var elemento_lista = padre.childNodes[j];
				
				elemento_lista.className = nombreClass('','');//No seleccionar
			}

}




//Obtener el atributo para el class según navegador
function obtenerPropiedadClass(){
	if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)){
		
		if(versionNavegador()!=8){
			return 'className';
		}else{
			return 'class';
		}
	}
		return 'class';
	
}




//Obtener el nombre del class a poner
function nombreClass(nombre,class_nuevo){
	if(nombre==null){
		return class_nuevo;
	}else{
		if(class_nuevo==class_no_js){
			nombre=nombre.replace(" "+ class_no_js, "");
			nombre=nombre.replace(class_no_js, "");
		}else{
			nombre=nombre.replace(" "+ classOcultar, "");
			nombre=nombre.replace(" "+ classMostrar, "");	
			nombre=nombre.replace(" "+ classTabsSeleccionado, "");
			nombre=nombre.replace(classOcultar, "");
			nombre=nombre.replace(classMostrar, "");	
			nombre=nombre.replace(classTabsSeleccionado, "");
			
				if(nombre.indexOf(class_nuevo)==-1){
					return nombre+" "+class_nuevo;
				}
		}
	}
	return class_nuevo;
}


//Obtener versión navegador
function getInternetExplorerVersion() {

    var rv = -1; // Return value assumes failure.

    if (navigator.appName == 'Microsoft Internet Explorer') {

        var ua = navigator.userAgent;

        var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");

        if (re.exec(ua) != null)

            rv = parseFloat(RegExp.$1);

    }

    return rv;

}


function versionNavegador(){
	return getInternetExplorerVersion();
}

//Lanzar el evento onload del body
function addEvent(obj, evType, fn){ 
 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; 
 } 
}




/*******************************
	Mostrar y ocultar capas
********************************/

function iniciarCapa(){
	
	var array_tag_name= new Array() ;
	array_tag_name[array_tag_name.length]='a';
	array_tag_name[array_tag_name.length]='input';

		for(var i=0; i < array_tag_name.length; i++){//recorrer todos los tag que pueden tener el class	
			var array_obj = document.getElementsByTagName(array_tag_name[i]);
			for(var j=0; j < array_obj.length; j++){//recorrer todos
				var class_obj=array_obj[j].getAttribute(obtenerPropiedadClass());
				
				if(class_obj!=null){
					if(class_obj.indexOf(classCapa+"_")!=-1){ //Si hay un objeto que contiene el class enlace le crea un evento click.
						//cargar evento al enlace para que abra la ventana
						
						addEvent(array_obj[j], 'click', eventoCapa);
					}
					
					if(class_obj.indexOf(classCapaCerrar+"_")!=-1){ //Si hay un objeto que contiene el class cerrar le crea un evento click.
						//cargar evento al enlace para que cierre la ventana
						
						addEvent(array_obj[j], 'click', eventoCapaCerrar);
					}
				}
	
			}
		}
	//ocultarCapa('avanzado');//ocultamos el buscador avanzado
}

function eventoCapa(evnt) {
         ev = (evnt) ? evnt : event;
         objeto_actual = (ev.target) ? ev.target : ev.srcElement;
		 var css_tab=objeto_actual.getAttribute(obtenerPropiedadClass());		 
		 css_tab=css_tab.slice(css_tab.indexOf('_')+1,css_tab.length);
		 posicion = posicion_obj(objeto_actual);
		 posicion_obj
		 
		 if(css_tab.indexOf(classCapaCerrar+"_")!=-1){ //Si hay un objeto que contiene el cerrar como segunda parte del class abre la capa y se cierra asi mismo
		 	css_tab=css_tab.slice(css_tab.indexOf('_')+1,css_tab.length);
			mostrarCapa(css_tab);
			var elemento_ocultar=objeto_actual.parentNode.parentNode;
			if(elemento_ocultar.tagName=='LI'){
				elemento_ocultar=objeto_actual.parentNode.parentNode.parentNode.parentNode;
			}
			elemento_ocultar.className = nombreClass(elemento_ocultar.getAttribute(obtenerPropiedadClass()),classOcultar);
		 }else{		 
			 if((css_tab.indexOf('avanzado')!=-1)||(css_tab.indexOf('simple')!=-1)){
				 controlBuscadorCapa(css_tab);
			 }else{
				 mostrarCapa(css_tab);
			     curvyCorners.redraw();
			 }
		 }
		
}




//Muestra la capa si tiene el class que se le pasa
function mostrarCapa(css_tab){			
	var array_divs = document.getElementsByTagName('div');
	for(var i=0; i < array_divs.length; i++){//recorrer todos los divs
		var class_div=array_divs[i].getAttribute(obtenerPropiedadClass());
		
		if(class_div!=null){
			if(class_div.indexOf(css_tab)!=-1){ //Si hay un div que contiene el class lo muestra.				
				if(class_div.indexOf(classMostrar)!=-1){ //si el div ya contiene el class mostrar lo oculta.
					array_divs[i].className = nombreClass(class_div,classOcultar);//ocultar
				}else{
					if(class_div.indexOf(classFlotar)!=-1){ //si el div contiene el class flotar lo posiciona.
						array_divs[i].style.left=posicion[0]+'px';
						array_divs[i].style.top=(posicion[1]+25)+'px';						
					}
					array_divs[i].className = nombreClass(class_div,classMostrar);//mostrar
				}
			}
		}
	}
}


function mostrarCapaActivaBuscador(css_tab){			
	var array_divs = document.getElementsByTagName('div');
	for(var i=0; i < array_divs.length; i++){//recorrer todos los divs
		var class_div=array_divs[i].getAttribute(obtenerPropiedadClass());
		
		if(class_div!=null){
					if(array_divs[i].parentNode.parentNode.className.indexOf('avanzado')!=-1){
						if(array_divs[i].className.indexOf(classInicial)!=-1){//si esta activo
							array_divs[i].className = nombreClass(class_div,classMostrar);//mostrar
						}else{
							array_divs[i].className = nombreClass(class_div,classOcultar);//ocultar
						}
					}
		}
	}
}


//controla cuando tiene que mostrar el buscador simple y cuando el avanzado
function controlBuscadorCapa(css_capa){
	//si el css_capa contiene el termino avanzado tiene que cargar la capa avanzada y ocultar la capa simple
	
		if(css_capa.indexOf('avanzado')!=-1){
			ocultarCapa('simple');
			mostrarCapa('avanzado');
			//mostrarCapaActivaBuscador(classInicial);
			//mostrar la activada

	}else{		
		
		ocultarCapa('avanzado');
		mostrarCapa('simple');
		
	}
	
}


function eventoCapaCerrar(evnt) {
         ev = (evnt) ? evnt : event;
         objeto_actual = (ev.target) ? ev.target : ev.srcElement;
		 var css_tab=objeto_actual.getAttribute(obtenerPropiedadClass());; 		 
		 css_tab=css_tab.slice(css_tab.indexOf('_')+1,css_tab.length);
		 ocultarCapa(css_tab); 
}

//Muestra la capa si tiene el class que se le pasa
function ocultarCapa(css_tab){
		var array_divs = document.getElementsByTagName('div');
	for(var i=0; i < array_divs.length; i++){//recorrer todos los divs
		var class_div=array_divs[i].getAttribute(obtenerPropiedadClass());
		
		if(class_div!=null){
			if(class_div.indexOf(css_tab)!=-1){ //Si hay un div que contiene el class lo muestra.
				array_divs[i].className = nombreClass(class_div,classOcultar);//ocultar
			}
		}
	}
}


function posicion_obj(obj) {
    var curleft = 0;
      var curtop = 0;
      if (obj.offsetParent) {
            do {
                  curleft += obj.offsetLeft;
                  curtop += obj.offsetTop;
            } while (obj = obj.offsetParent);
      }
      return [curleft,curtop];
}





/****************************************************/
//	Restaurar el valor de los inputs Y textarea
/****************************************************/

	function limpiar_valor_input(evnt) {
         ev = (evnt) ? evnt : event;
         input_actual = (ev.target) ? ev.target : ev.srcElement;
		// if (input_actual.value == input_actual.defaultValue) {
        if (input_actual.value == input_actual.title) {
            input_actual.value = "";
         }

      }

      function restaurar_valor_input(evnt) {
         ev = (evnt) ? evnt : event;
         input_actual = (ev.target) ? ev.target : ev.srcElement;
         if (input_actual.value == "") {
            //input_actual.value = input_actual.defaultValue;
			input_actual.value = input_actual.title;
         }
      }
      
      function setAutoRestore() {
      
         function assignHandlerFF(obj) {//Asignar el evento en Firefox
            obj.addEventListener("focus", limpiar_valor_input, false);
            obj.addEventListener("blur", restaurar_valor_input, false);
         }
         
         function assignHandlerIE(obj) { //Asignar el evento en IE
            obj.attachEvent("onfocus", limpiar_valor_input);
            obj.attachEvent("onblur", restaurar_valor_input);
         }
         //añadir los eventos a los input
         var array_input = document.getElementsByTagName("INPUT");
         if (array_input.length == 0) return true;
         var assignHandlerFunc = (array_input[0].addEventListener) ? assignHandlerFF : assignHandlerIE;
         for (var i = 0; i < array_input.length; i++) {
			 if(array_input[i].type !="submit" && array_input[i].type !="button" && array_input[i].type !="hidden"){ //si no es un campo de tipo submit o hidden
               assignHandlerFunc(array_input[i]);
			 }
         }
		 
		 
		 //añadir los eventos a los textarea
         var array_textarea = document.getElementsByTagName("TEXTAREA");
         if (array_textarea.length == 0) return true;
         var assignHandlerFunc = (array_textarea[0].addEventListener) ? assignHandlerFF : assignHandlerIE;
         for (var i = 0; i < array_textarea.length; i++) {
               assignHandlerFunc(array_textarea[i]);
         }
         
      }
      
    



//no_js, obtenerPropiedadClass

function no_js(){
		
		var array_divs = document.getElementsByTagName('div');
		
		for(var i=0; i < array_divs.length; i++){//recorrer todos los divs
			var class_div=array_divs[i].getAttribute(obtenerPropiedadClass());
			
			if(class_div!=null){
				if(class_div.indexOf(class_no_js)!=-1){ //Si hay un div que contiene el class lo muestra.

					array_divs[i].className = nombreClass(class_no_js,'');//ocultar
				}
			}

		}
}

//Ocultar los div por defecto, y sin el js lo muestra

function ocultar_div_inicio(){
	var class_inicio="inicio_oculto";
	var array_divs = document.getElementsByTagName('div');
		for(var i=0; i < array_divs.length; i++){//recorrer todos los divs
			var class_div=array_divs[i].getAttribute(obtenerPropiedadClass());
			
			if(class_div!=null){
				if(class_div.indexOf(class_inicio)!=-1){ //Si hay un div que contiene el class lo cambia a oculto.
					class_div=class_div.replace(class_inicio, classOcultar);
					array_divs[i].className =class_div;
				}
			}

		}
	
}

//addEvent(window, 'load', setAutoRestore);
addEvent(window, 'load', iniciar);
addEvent(window, 'load', iniciarCapa);

addEvent(window, 'load', no_js);

