
/* HOJA DE FUNCIONES JAVASCRIPT

   Autor: 		Interesa Consultores
   
   --------------------------------------------------------*/


/**************************************************************************************************
Función para marcar el menu
	var menu="menu-primerNivel-ul"; //id del menu principal
	var submenu ="menu-segundoNivel-ul"; //id del menu secundario
	
	var cadena_separacion = "+"; //cadena de separación 2o nivel
	var cadena_separacion2 = "_";//cadena de separación 3o nivel
	
	var dominio = "http://www.plantilla.es.des";//Dominio en el que te encuentras
**************************************************************************************************/

function setPage()
{
	var menu="menu-primerNivel-ul"; //id del menu principal
	var submenu ="menu-segundoNivel-ul"; //id del menu secundario
	var submenu1 = "menu-segundoNivel-ul-1";	
	var submenu2 = "menu-segundoNivel-ul-2";
	
	var cadena_separacion = "+"; //cadena de separación 2o nivel
	var cadena_separacion2 = "_";//cadena de separación 3o nivel
	
	var dominio = "http://www.tracasa.es";//Dominio en el que te encuentras

	if(document.location.href){ 
	    hrefString = retocarURL(document.location.href);
	    hrefStringSubmenu = document.location.href;
	}else
		hrefString = document.location;
	if (document.getElementById(menu)!=null) 
		setActiveMenu(document.getElementById(menu).getElementsByTagName("a"), extractPageName(hrefString,dominio),cadena_separacion,dominio);
		
	
	if (document.getElementById(submenu)!=null) 
		setActiveSubMenu(document.getElementById(submenu).getElementsByTagName("a"), extractPageName(hrefStringSubmenu,dominio),cadena_separacion,cadena_separacion2,dominio);
		
		if (document.getElementById(submenu1)!=null) 
		setActiveSubMenu(document.getElementById(submenu1).getElementsByTagName("a"), extractPageName(hrefStringSubmenu,dominio),cadena_separacion,cadena_separacion2,dominio);
		
		if (document.getElementById(submenu2)!=null) 
		setActiveSubMenu(document.getElementById(submenu2).getElementsByTagName("a"), extractPageName(hrefStringSubmenu,dominio),cadena_separacion,cadena_separacion2,dominio);
}

/*Pintar 1o Menu*/
function setActiveMenu(arr, crtPage,cadena_separacion,dominio)
{
	
	for(var i=0; i < arr.length; i++){
		var cadena1 = extractPageName(arr[i].href,dominio);
		var cadena2 = crtPage;
		if(String(cadena1) == String(cadena2))
		{
			var nombre;
			nombre=arr[i].parentNode.getAttribute("class");
			if(nombre==null){
				nombre="seleccionado";
			}else{
				if(nombre != "seleccionado"){				
					nombre=nombre + " seleccionado";
				}
			}
			
			
			arr[i].parentNode.className = nombre;

			//Pintar 1 nivel si aparece el 3 en el menu
				Pintar1Nivel_3siMenu(arr[i]);
			//Fin Pintar 1 nivel
			//Pintar el padre
				PintarPadre(arr[i]);
			//Fin pintar padre	
		}

			//Pintar 1 nivel si no aparece el 3 en el menu
			Pintar1Nivel_3noMenu(arr[i],crtPage,cadena_separacion);
	}

}

//Pintar 2o Menu
function setActiveSubMenu(arr, crtPage,cadena_separacion,cadena_separacion2,dominio)
{
	Pintar2Nivel_3noMenu(arr, crtPage,cadena_separacion,cadena_separacion2,dominio);
	for(var i=0; i < arr.length; i++){
		var cadena1 = extractPageName(arr[i].href,dominio);
		var cadena2 = crtPage;
		if(String(cadena1).toLowerCase() == String(cadena2).toLowerCase())
		{
			var nombre;
			nombre=arr[i].parentNode.getAttribute("class");
			if(nombre==null){
				nombre="seleccionado";
			}else{
				if(nombre != "seleccionado"){				
					nombre=nombre + " seleccionado";
				}
			}
			arr[i].parentNode.className = nombre;

		}
	}

}

//Pintar 2o Nivel en una página de 3o nivel si no aparece esta en el menu
function Pintar2Nivel_3noMenu(enlace, crtPage,cadena_separacion,cadena_separacion2,dominio)
{
	for(var i=0; i < enlace.length; i++){
		var cadena1 = extractPageName(enlace[i].href,dominio);
		var cadena2 = crtPage;
		/*Sacar el nombre del segundo nivel*/
		var arr = String(crtPage).split('.');
		 if(arr.length >= 2) {
		  arr = arr[arr.length-2].split('/');
		  var submenu = arr[arr.length-1].toLowerCase();
		  submenu = submenu.slice (0,submenu.indexOf(cadena_separacion2));
		  submenu = submenu.slice (submenu.indexOf(cadena_separacion)+1,submenu.length);		  

		 }
		 
		 /*Sacar el nombre de los enlaces de la lista del 2o nivel*/
		var arr2 = String(cadena1).split('.');
		
		 if(arr2.length >= 2) {
		  arr2 = arr2[arr2.length-2].split('/');
		  var submenu2 = arr2[arr2.length-1].toLowerCase();
		  submenu2 = submenu2.slice (submenu2.indexOf(cadena_separacion)+1,submenu2.length);		  
		 }

		
		/*Pintar como seleccionado*/
		if(submenu == submenu2){
		var nombre;
			nombre=enlace[i].parentNode.getAttribute("class");
			if(nombre==null){
				nombre="seleccionado";
			}else{
				if(nombre != "seleccionado"){				
					nombre=nombre + " seleccionado";
				}
			}
			enlace[i].parentNode.className = nombre;
		}
		
	}
}

function extractPageName(hrefString,dominio)
{
 return extractLinkName(hrefString,dominio);
}


function extractNivel(hrefString,cadena_separacion)
{
 var arr = hrefString.split('.');
 if(arr.length >= 2) {
  arr = arr[arr.length-2].split('/');
  var submenu = arr[arr.length-1].toLowerCase();
  //Ver submenu
  if (submenu.indexOf(cadena_separacion) != -1){//es una página de submenu
	submenu = submenu.slice (0,submenu.indexOf(cadena_separacion));
	return submenu;
  }
  return arr[arr.length-1].toLowerCase();
 } else {
  return "x";
 }
}

function nivel(hrefString,cadena_separacion){
var arr = hrefString.split('.');
 if(arr.length >= 2) {
  arr = arr[arr.length-2].split('/');
  var submenu = arr[arr.length-1].toLowerCase();
  //Ver submenu
  if (submenu.indexOf(cadena_separacion) != -1){//es una página de submenu
	return true;
  }
  
 }
 return false;
  
}


function retocarURL(hrefString){
    var aux = "";
    var resultado = "";
	if( hrefString.substring(10,hrefString.length).split('/').length >= 5){
        if (hrefString != null){
            if (hrefString.lastIndexOf("/")!= -1)
                aux = hrefString.substring(0,hrefString.lastIndexOf("/"))+".asp";
								
            if (aux.lastIndexOf("/") != -1)
                resultado = aux.substring(0,aux.lastIndexOf("/"))+"+"+aux.substring(aux.lastIndexOf("/")+1,aux.length);
				
        }
    }else{
        resultado = hrefString;
    }
    return resultado;
}


function extractLinkName(hrefString,dominio){
 var cadena_link;
 cadena_link = hrefString.split(dominio);
 cadena_link = cadena_link.slice (1,cadena_link.length);
 return cadena_link;
}







//Pintar 1oNivel en una página de 3o Nivel si aparece esta en el menu
function Pintar1Nivel_3siMenu(objeto){
	if(objeto.parentNode.parentNode.parentNode.parentNode.parentNode.tagName == 'LI'){
					var nombre;
						nombre=objeto.parentNode.parentNode.parentNode.parentNode.parentNode.getAttribute("class");
						if(nombre==null){
							nombre="seleccionado";
						}else{
							if(nombre != "seleccionado"){
								nombre=nombre + " seleccionado";
							}
						}
						objeto.parentNode.parentNode.parentNode.parentNode.parentNode.className= nombre;
				}
}


//Pintar 1oNivel en una página de 3o Nivel si no aparece esta en el menu
function Pintar1Nivel_3noMenu(objeto, objeto2,cadena_separacion){
	
			if(nivel(String(objeto2),cadena_separacion)){
				if( (String(extractNivel(objeto.href,cadena_separacion)) == extractNivel(String(objeto2),cadena_separacion)) && (objeto.pathname.indexOf(String(objeto2).substring(1,String(objeto2).lastIndexOf("/"))) != -1)  )
					{
					var nombre;
					nombre=objeto.parentNode.getAttribute("class");
					if(nombre==null){
						nombre="seleccionado";
					}else{
						if(nombre != "seleccionado"){
							nombre=nombre + " seleccionado";
						}
					}
					objeto.parentNode.className = nombre;	
				}
				PintarPadre(objeto);
			}
	
}


function PintarPadre(objeto){
	if(objeto.parentNode.parentNode.parentNode.tagName == 'LI'){
				var nombre;
					nombre=objeto.parentNode.parentNode.parentNode.getAttribute("class");
					if(nombre==null){
						nombre="seleccionado";
					}else{
						if(nombre != "seleccionado"){
							nombre=nombre + " seleccionado";
						}
					}
					objeto.parentNode.parentNode.parentNode.className= nombre;
			}
}
/**************************************************************************************************
**************************************************************************************************/





/**************************************************************************************************
Función para indicar que se abre en ventana nueva los enlaces target=_blank rel=external
**************************************************************************************************/
function externalLinks() {
	var txt_ventana = ". New window";
	var txt_ventana_no_title = " New window.";
	
 if (!document.getElementsByTagName) return;

 var anchors = document.getElementsByTagName("a");
 var tit="";
 for (var i=0; i<anchors.length; i++) {
	for (var b=0; b<anchors[i].childNodes.length; b++) {//Bucle para los hijos de cada enlace		
	   var imagen = anchors[i].childNodes[b];
	   var anchor = anchors[i];
		//sino tiene title lo pone el javascript
		
		if(anchor.getAttribute("title")){
		}else{
			if(comprobar_imagen(imagen) == 0 && comprobar_texto(anchor.innerHTML) != 0){
				anchor.title = anchor.innerHTML;	
			}else{
				if(comprobar_imagen(imagen) != 0){
					anchor.title = comprobar_imagen(imagen);
				}
			}
		}
		
		//Comprobar si el enlace tiene target _blank
		if (anchor.getAttribute("target") == "_blank"){
			if(anchor.getAttribute("title")){
				tit = anchor.getAttribute("title");
				asignar_title(anchor,txt_ventana,txt_ventana_no_title,tit)
			}else{
				if(comprobar_imagen(imagen) == 0 && comprobar_texto(anchor.innerHTML) != 0){
					tit = anchor.innerHTML;
				}else{
					tit = comprobar_imagen(imagen);
				}
				asignar_title(anchor,txt_ventana,txt_ventana_no_title,tit)
			}
			
		}
		
			if(anchor.getAttribute("rel") == "external"){
				anchor.target = "_blank";
				if(anchor.getAttribute("title")){
					tit = anchor.getAttribute("title");
					asignar_title(anchor,txt_ventana,txt_ventana_no_title,tit)
				}else{
					if(comprobar_imagen(imagen) == 0 && comprobar_texto(anchor.innerHTML) != 0){
						tit = anchor.innerHTML;
					}else{
						tit = comprobar_imagen(imagen);
					}
					asignar_title(anchor,txt_ventana,txt_ventana_no_title,tit)
				}
			}
	}
		

 }
}

function comprobar_imagen(imagen){
	if(imagen.tagName == "IMG"){
		return imagen.getAttribute("alt");
	}
	return 0;
}

function comprobar_texto(texto){
	if(texto != null){
		return texto.indexOf('<');
	}
	return -1
}

function asignar_title(anchor,txt_ventana,txt_ventana_no_title,tit){
	if(tit.slice(tit.length-1,tit.length)=='.'){
		anchor.title = tit + txt_ventana_no_title;
	}else{
		anchor.title = tit + txt_ventana;
	}
}

	/*Buscador*/
 function Acentos(Text)  
 {  
 /*del número 48 hasta el 57 son los números naturales desde el 0 hasta el 9 
del 65 hasta el 90 son letras de A hasta la Z en mayúsculas 
de 97 hasta 122 son letras de a hasta la z en minúsculas 
*/
 var cadena="";  
 var codigo="";  
 for (var j = 0; j < Text.length; j++)  
 {  
 var Char=Text.charCodeAt(j);
	 switch(Char)  //quitas acentos...
	 {  
		 case 225:  
		 cadena+="a";  
		 break;  
		 case 233:  
		 cadena+="e";  
		 break;  
		 case 237:  
		 cadena+="i";  
		 break;  
		 case 243:  
		 cadena+="o";  
		 break;  
		 case 250:  
		 cadena+="u";  
		 break;  
		 case 193:  
		 cadena+="A";  
		 break;  
		 case 201:  
		 cadena+="E";  
		 break;  
		 case 205:  
		 cadena+="I";  
		 break;  
		 case 211:  
		 cadena+="O";  
		 break;  
		 case 218:  
		 cadena+="U";  
		 break;  
		 case 241:  
		cadena+="n";  
		break;  
		case 209:  
		cadena+="n";  
		break;  
		default:  
		cadena+=Text.charAt(j);  
		break;  
	}
codigo+="_"+Text.charCodeAt(j);	
}  
return cadena;  
}


function esCadena(cadena){
	var patron=/^[a-zA-Z0-9+ \"]*$/;
	if(patron.test(cadena)){
		return true;
	}
	alert("The search term contains an invalid character");
	return false;
}



function validar_frm(){
 with (document.frm_google){
			if (q.value==""){
                alert("Please enter a search term");
				document.frm_google.q.focus();
                return false;
           }
		   var cadena = Acentos(q.value);
		   if(esCadena(cadena)==true){
			   q.value=cadena;
		   }
		   else{
			   q.value="";
  			   document.frm_google.q.focus();			   
			   return false;
		   }
 }
 return true;
}



window.onload=function()
{
  setPage();
  externalLinks();
  if(document.getElementById("img-carrusel")){
	  so_init();
  }
}