//--------------------------------------------------------------

function inicio(iResolucion, iIdidioma, dFecha){
	resolucion(iResolucion);
	obtenerResolucionLinks(iResolucion);
	imgAdjuntas(iIdidioma);
	externalLinks(iIdidioma);
	CargarUtilidades();
	obtenerLinksExternosXITI(dFecha);
}

// -------------------------------- ESTADISTICAS: RESOLUCION ----------------------------
//--------------Función para obtener la resolución mediante la "carga" (llamada) de una página oculta
// En el GET no hace falta pasar la ruta completa de la página a llamar
function resolucion(iResolucion){
	var xmlHttp
	if (iResolucion == 0) {
		if (window.ActiveXObject){
			xmlHttp = new ActiveXObject("Microsoft.XMLHTTP")
			xmlHttp.open("GET", "resolucion.asp?resolucion="+screen.width+"*"+screen.height, false);
			xmlHttp.send();
		} else {
			xmlHttp = new XMLHttpRequest();
			xmlHttp.open("GET", "resolucion.asp?resolucion="+screen.width+"*"+screen.height, false);
			xmlHttp.send(null);
		}
	}
}

//--------------------------------------------------------------

// En caso de que el navegador sea antiguo y no funcione el sistema anterior se usa la siguiente función para
// cambiar todos los enlaces de la página principal y poder obtener la resolución
function obtenerResolucionLinks(iResolucion) {
	if (iResolucion == 0){
		var i;
		var screenW = screen.width;
		var screenH = screen.height;
		var host = location.host;
		for (i=0;i<document.links.length;i++) {
			enlace = document.links[i].href;
			// Eliminar aquellos enlaces externos que, por lo tanto, no nos van a ayudar a obtener la resolución
			// eso lo hacemos mediante "host". Consideramos externo todo aquél enlace que no contenga "host"
			if ((enlace.indexOf("javascript") == -1)&&(enlace.indexOf(host) != -1)) {
				// además que no se añada a los enlaces "falsos" y a los que no tienen otros parámetros
				if ((enlace.indexOf("?") != -1)&&(enlace.indexOf("#") == -1)) {
					document.links[i].href=document.links[i].href+'&r='+screenW+'*'+screenH;
				}
			}
		}
	}
}

//--------------------------------------------------------------

//Esta función modifica el alt de la imagenes que tiene imagen adjunta, advirtiendo que la amplicación se abrirá en ventana nueva
function imgAdjuntas(iIdidioma){
	 var imgs = document.getElementsByTagName("img");
	 for (var i=0; i<imgs.length; i++) {
		var img = imgs[i];
		var sClass = img.className
		if (sClass.indexOf("cursorAdjunto") != -1){

	   	if(iIdidioma==1){
	   		img.alt = img.alt + " (Se abre en ventana nueva)";
	   	}
	   	if(iIdidioma==2){
	   		img.alt = img.alt + " (Open in a new window)";
	   	}
	  }
	}
}

//--------------------------------------------------------------

//Como el atributo target no esta permitido usamos esta función para poder abrir enlaces en ventanas nuevas
//en el enlace debemos añadir el atributo rel="external", esta funcion lo detectará y pondrá el target mediante javascript

function externalLinks(iIdidioma){
 if (!document.getElementsByTagName) return;
 var anchors = document.getElementsByTagName("a");
 for (var i=0; i<anchors.length; i++) {
   var anchor = anchors[i];
   if (anchor.getAttribute("href") && anchor.getAttribute("rel") == "external"){
   	if(iIdidioma==1){
   		anchor.title = anchor.title + " (Se abre en ventana nueva)";
   	}
   	if(iIdidioma==2){
   		anchor.title = anchor.title + " (Open in a new window)";
   	}
      anchor.target = "_blank";
   }
   
 }
}


//--------------------------------------------------------------

//Esta función se encarga de mostrar las utilidades que utilizan javascript (que viene ocultas mediante css por defecto)
//además de mostrar los botones les añade el evento onclick con la funcion correspondiente,
//Esto es debido a que en el front utilizamos un <a href=""> para poder asignar un accesskey, a parte de que sería obligatorio usar eventos duplicados

function CargarUtilidades(){

	var oEnlace

	//Tratamiento de los botones de Servicios Generales
	oServicioImprimir = document.getElementById("atajoImprimir");
	if(oServicioImprimir){
		oServicioImprimir.style.display = "inline";
		oEnlace = oServicioImprimir.getElementsByTagName("A");
		oEnlace[0].href="javascript:Imprimir();"
	}

	oServicioVolver = document.getElementById("atajoVolver");
	if(oServicioVolver) {
		oServicioVolver.style.display = "inline";
		oEnlace = oServicioVolver.getElementsByTagName("A");
		oEnlace[0].href="javascript:volver();"
	}

}
//--------------------------------------------------------------

function VerImagen(iIdImagen){

 var windowImagen;
 windowImagen = window.open("popup/popupimagen.asp?idimagen=" + iIdImagen,"Imagen","width=100,height=100,top=10,left=10,scrollbars=yes,resizable=yes");

}


//---------------------------------------------------------------------
// Función para escribir un flash.
// Parámetros:
// - Ruta del flash
// - Ancho del flash
// - Alto del flash
// - Color de fondo (Sin la #)
// - Parámetros (separados por ;)
function escribirFlash(sRuta,sAncho,sAlto,sColorFondo, sParametros) {

      if (sColorFondo == "") {
            sColorFondo = '000000';
      } 

      if(navigator.appName=="Microsoft Internet Explorer") {
            var sGenerado = '<object type="application/x-shockwave-flash" width="' + sAncho + '"  height="' + sAlto + '" >';
      } else {
            var sGenerado = '<object type="application/x-shockwave-flash" data="' + sRuta + '" width="' + sAncho + '"  height="' + sAlto + '" >';
      }

      sGenerado += '<param name="movie" value="' + sRuta + '" />';
	  sGenerado += '<param name="allowScriptAccess" value="sameDomain" />';
      sGenerado += '<param name="quality" value="high" />';
      sGenerado += '<param name="bgcolor" value="#' + sColorFondo + '" />';
	  
      if (sParametros.indexOf(';')>-1) {
            var array_parametros = sParametros.split(';');
            for (var i=0; i<array_parametros.length-1; i++) {
                  sGenerado += '<param name="'+array_parametros[i].split("=")[0]+'" value="'+array_parametros[i].split("=")[1]+'" />';
            }
      }     

      sGenerado += '</object>';
	  
	  document.write(sGenerado);
}


function obtenerLinksExternosXITI(dFecha) {

	var dominio = "www.cdti.es";
	var Externo, sEnlace, sNombre;
	
	var peticion = false;
	if (window.XMLHttpRequest){
		peticion = new XMLHttpRequest();
	}else if (window.ActiveXObject) {
		peticion = new ActiveXObject("Microsoft.XMLHTTP");
	}
	
	if (document.getElementsByTagName('a')) {
		for (var i = 0; (Externo = document.getElementsByTagName('a')[i]); i++) {
			if (Externo.href.indexOf("http") != -1) {
				if (Externo.href.indexOf(dominio) == -1 && Externo.onclick==null){      
					sEnlace = Externo.href;
					sNombre = formatearCadenaXiti(Externo.title);
					//Externo.onclick = function(){xt_med('C',xtn2,sNombre,'S',sEnlace);};
					Externo.onclick = function(){xt_med('C',xtn2,sEnlace,'S');};
					if(peticion) {
						peticion.open("GET", 'comprobarenlacesxiti.asp?llamada=xt_med(\'C\','+xtn2+','+sNombre+',\'S\','+sEnlace.replace('&','||')+');', true);
						peticion.send(null);	
					}
				}else{
					if(Externo.href.indexOf("feed")!=-1){
						if(Externo.href.indexOf("?")==-1){
							Externo.href = Externo.href+"?xtdate="+dFecha
						}else{
							Externo.href = Externo.href+"&xtdate="+dFecha
						}
					}
				}
			}
		}
	}
}

function formatearCadenaXiti(sCadena) {

	var cadenaXiti, cadenaComparacion

 	cadenaXiti = sCadena
	cadenaComparacion = ""

  	//caracteres especiales
	while(cadenaComparacion != cadenaXiti) {
	
		cadenaComparacion = cadenaXiti;
		
		cadenaXiti = cadenaXiti.replace(" ", "_");
		
		// mayúsculas acentuadas español (tílde)
		cadenaXiti = cadenaXiti.replace("Á", "A");
		cadenaXiti = cadenaXiti.replace("É", "E");
		cadenaXiti = cadenaXiti.replace("Í", "I");
		cadenaXiti = cadenaXiti.replace("Ó", "O");
		cadenaXiti = cadenaXiti.replace("Ú", "U");
		cadenaXiti = cadenaXiti.replace("Ñ", "N");
		cadenaXiti = cadenaXiti.replace("Ç", "S");
		
		// minúsculas acentuadas español (tílde)
		cadenaXiti = cadenaXiti.replace("á", "a");
		cadenaXiti = cadenaXiti.replace("é", "e");
		cadenaXiti = cadenaXiti.replace("í", "i");
		cadenaXiti = cadenaXiti.replace("ó", "o");
		cadenaXiti = cadenaXiti.replace("ú", "u");
		cadenaXiti = cadenaXiti.replace("ñ", "n");
		cadenaXiti = cadenaXiti.replace("ç", "s");
		
		// mayúsculas acentuadas francés (circunflejo)
		cadenaXiti = cadenaXiti.replace("Â", "A");
		cadenaXiti = cadenaXiti.replace("Ê", "E");
		cadenaXiti = cadenaXiti.replace("Î", "I");
		cadenaXiti = cadenaXiti.replace("Ô", "U");
		cadenaXiti = cadenaXiti.replace("Û", "U");
		
		// minúsculas acentuadas francés (circunflejo)
		cadenaXiti = cadenaXiti.replace("â", "a");
		cadenaXiti = cadenaXiti.replace("ê", "e");
		cadenaXiti = cadenaXiti.replace("î", "i");
		cadenaXiti = cadenaXiti.replace("ô", "o");
		cadenaXiti = cadenaXiti.replace("û", "u");
		
		// mayúsculas acentuadas francés (tilde invertida)
		cadenaXiti = cadenaXiti.replace("À", "A");
		cadenaXiti = cadenaXiti.replace("È", "E");
		cadenaXiti = cadenaXiti.replace("Ì", "I");
		cadenaXiti = cadenaXiti.replace("Ò", "O");
		cadenaXiti = cadenaXiti.replace("Ù", "U");
		
		// minúsculas acentuadas francés (tilde invertida)
		cadenaXiti = cadenaXiti.replace("à", "a");
		cadenaXiti = cadenaXiti.replace("è", "e");
		cadenaXiti = cadenaXiti.replace("ì", "i");
		cadenaXiti = cadenaXiti.replace("ò", "o");
		cadenaXiti = cadenaXiti.replace("ù", "u");
		
		// mayúsculas acentuadas francés (diéresis)
		cadenaXiti = cadenaXiti.replace("Ä", "A");
		cadenaXiti = cadenaXiti.replace("Ë", "E");
		cadenaXiti = cadenaXiti.replace("Ï", "I");
		cadenaXiti = cadenaXiti.replace("Ö", "O");
		cadenaXiti = cadenaXiti.replace("Ü", "U");
		
		// minúsculas acentuadas francés (diéresis)
		cadenaXiti = cadenaXiti.replace("ä", "a");
		cadenaXiti = cadenaXiti.replace("ë", "e");
		cadenaXiti = cadenaXiti.replace("ï", "i");
		cadenaXiti = cadenaXiti.replace("ö", "o");
		cadenaXiti = cadenaXiti.replace("ü", "u");
		
		// eliminar : sueltos
		cadenaXiti = cadenaXiti.replace("::", "Ñ");
		cadenaXiti = cadenaXiti.replace(":", "");
		cadenaXiti = cadenaXiti.replace("Ñ", "::");
	
	}
	
	// Eliminar todos los caracteres que no admite XITI
	var oRegExp = new RegExp("[^a-z 0-9 - . / _ ~]","gi");
	oRegExp.Pattern = "[^a-z 0-9 - . / _ ~]"
	cadenaXiti = cadenaXiti.replace(oRegExp,"")
	
	return cadenaXiti;

}
