/** **************************** CREACIÓN(1.0) *****************************************
 **
 **	   General.js
 **	
 ** ----------------------MODIFICACIÓN(1.1)-----------------------------------------------
 **  	
 **
 **		Autor: CANO NOGUERAS ROBERTO. 
 **		E-mail: 9rcano@fraternidad.com
 **		Fecha: 2007.06.01 Versión: 1.1
 **		Descripción:
 **
 **		· se han adaptado las funciones oniputfocus y oninputblur para que no generen errores 
 **			en el navegador FireFox
 **
 **
 **
 **
 ** -----------------------MODIFICACION 1.2--------------------------------------------------
 **    
 **
 **     Autor: Vicente Carrillo Luque. 
 **		E-mail: 9vcarrillo@fraternidad.com
 **		Fecha: 2007.08.03 Versión: 1.2
 **		Descripción:
 **
 **     Se añade la funcion confirmarBorrado
 ** -----------------------MODIFICACION 1.3--------------------------------------------------
 **    
 **
 **     Autor: Roberto Cano Nogueras
 **		E-mail: 9rcano@fraternidad.com
 **		Fecha: 2007.09.27 Versión: 1.3
 **		Descripción:
 **
 **     No se permite que la función AbreDescarga se ejecute si nos encontramos en la ventana de impresión.
 ** -----------------------MODIFICACION 1.4--------------------------------------------------
 **    
 **		Fecha: 2007.10.15 Versión: 1.4
 **		Descripción:
 **
 **     Se permite scroll para resolver una incidencia de la Extranet referente a los examenes de SPFM
 ** 
 ** -----------------------MODIFICACION 1.5--------------------------------------------------
 **    
 **		Fecha: 2007.10.15 Versión: 1.5
 **		Descripción:
 **
 **     Se han añadido funciones para calcular el alto y el ancho del navegador
 **
 ** -----------------------MODIFICACION 1.6--------------------------------------------------
 **    
 **		Fecha: 2008.09.24 Versión: 1.6
 **		Descripción:
 **
 **     Se han introducido modificaciones en la funcion Abredescarga, para controlar cuando
 **			llegamos desde el boletín.
 ** 
 ** 
** -----------------------MODIFICACION 1.7--------------------------------------------------
 **    
 **		Fecha: 2008.10.30 Versión: 1.7
 **		Descripción:
 **
 **     Añadida la función para cambiar el color de las celdas de las tablas de datos
 **			
 ** 
 ** 
 ** ************************************************************************************/



function a2print_window(lloc){
	window.open(lloc, '', 'width=600, height=490, resizable=no, scrollbars=yes, titlebar=no, menubar=no, status=no' );
	return true;
}
function a2print_doc(){
	print();
	close();
}
function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}
function a2fraterburgo(lloc){
	var alto = (screen.height)/2;
	var ancho = (screen.width)/2;
	alto -= 540/2
	ancho -= 780/2

	vburgo = open(lloc, '', 'width=780, height=540, resizable=no, scrollbars=no, titlebar=no, menubar=no, status=no' );
	try{
	  	vburgo.focus(); 
		vburgo.moveTo(ancho,alto);
		return true;
		
	}catch(e){};

}
function galeriavirtual(lloc){
	var alto = (screen.height)/2;
	var ancho = (screen.width)/2;
	alto -= 520/2
	ancho -= 750/2

	vgaleria = open(lloc, '', 'width=750, height=520, resizable=no, scrollbars=no, titlebar=no, menubar=no, status=no' );
	try{
	  	vgaleria.focus(); 
		vgaleria.moveTo(ancho,alto);
		return true;
		
	}catch(e){};	

}

function AbreCalendario(origen,fecha) {

	var alto = (screen.height)/2;
	var ancho = (screen.width)/2;
	alto -= 150/2
	ancho -= 285/2
	
	var vPagina = "/almanaque.aspx?origenCTL=" + origen + "&FechaPeticion=" + fecha;
	var sTarget = "_blank";

	if(ventana!=null){
		ventana.close();
	} 	
	
	ventana = open(vPagina,sTarget,"width=285,height=150,top=0,left=100,status=yes,toolbar=no,menubar=no,status=no,location=no");
	try{
	  	ventana.focus(); 
		ventana.moveTo(ancho,alto);

		
	}catch(e){};
	return false;
 }
 
 function AbreDescarga(referencia) {
 	//MODIFICACION 1.3
 	//MODIFICACION 1.6
 	var URL = location.href;
 	var array_url =URL.split('/');
 	URL=array_url[array_url.length-1];
 	URL=URL.split('?')[0]; 
 	if (!URL.match("imprimir.aspx")){ 
  /*
	var alto = (screen.height)/2;
	var ancho = (screen.width)/2;
	alto -= 580/2
	ancho -= 600/2
	*/
	var no_thickbox="";
	if(URL=="boletinContenido.aspx")
		no_thickbox="&no_thickbox=t";
	var vPagina = "/descargas_popup.aspx?ref="+referencia+no_thickbox;
 	//FIN MODIFICACION 1.6	
	var sTarget = "_blank";
	
	ventanades = open(vPagina,sTarget,"width="+(screen.width-50)+",height="+(screen.height-150)+",top=0,left=100,status=yes,scrollbars=yes,toolbar=no,menubar=no,status=no,location=no");
	try{
	  	ventanades.focus(); 
		ventanades.moveTo(25,50);

		
	}catch(e){};
  }	
  //FIN MODIFICACION 1.3
	return false;
 }
 
 
 function AbreMapa(url) {

	var alto = 3*(screen.height/4);
	var ancho = 3*(screen.width/4);
	var tope = (screen.height/4)/2;
	var izqui = (screen.width/4)/2;
	var vPagina = url;
	var sTarget = "_blank";
	
	ventanamap = open(vPagina,sTarget,"width="+ancho+",height="+alto+",top="+tope+",left="+izqui+",status=yes,scrollbars=yes,toolbar=no,menubar=no,status=no,location=no");
	try{
	  	ventanamap.focus(); 
		ventanamap.moveTo(ancho,alto);

		
	}catch(e){};
	return false;
 }
 
  function AbreExtranet( url ) {

	var alto = (screen.height);
	var ancho = (screen.width);
	
	var vPagina = url;
	var sTarget = "_blank";
	
	// Inicio - Modificacion 1.4 -
      ventanaext = open(vPagina,sTarget,"width="+ancho+",height="+alto+", top=0,left=0,scrollbars=yes,toolbar=no,menubar=no,status=no,location=no");
 	// Fin  - Modificacion 1.4 -    
 	
	try{
	  	ventanaext.focus(); 
		ventanaext.moveTo(0,0);	
	}catch(e){};
	return false;
 }
 
   function AbrePrinter(url) {

	var alto = 540;
	var ancho = 600;
	var tope = (screen.height)/6;
	var izqui = (screen.width)/4;
	var vPagina = url;
	var sTarget = "_blank";
	
	ventanaprint = open(vPagina,sTarget,"width="+ancho+",height="+alto+",top="+tope+",left="+izqui+",status=yes,scrollbars=yes,toolbar=no,menubar=no,status=no,location=no");
	try{
	  	ventanaprint.focus(); 
		ventanaprint.moveTo(izqui,tope);
		ventanaprint.title="Fraternidad Muprespa. Buscador de centros - Versión Imprimible";
		//ventanaprint.print(); 

		
	}catch(e){};
	return false;
 }
/* Validación de datos */
 
function esFecha(f,obj)
{ 
/*Verifica si el patron o expresion regular esta contenido en la cadena*/

if (( f=="sin fecha" )||( f=="" )){
	document.getElementById(obj).blur();
	if (f=="") document.getElementById(obj).value="sin fecha";
	return true;
}
else
{
	if (/^([0-2]{1}[0-9]{1}|3[0-1]{1})\/(0[1-9]{1}|1[0-2]{1})\/(19[5-9]{1}[0-9]{1}|20[0-9]{2})$/.test(f))
	{ 
		document.getElementById(obj).blur();
		return true; 
	}
	else
	{ 
		alert('La fecha introducida tiene un formato incorrecto. El formato correcto es del tipo dd/mm/aaaa ej. 30/01/2006.');
        document.getElementById(obj).value="sin fecha";
		document.getElementById(obj).focus();
		document.getElementById(obj).select();
		return false; 

	}
}
}

avisado=false 

function validarEntero(valor){ 
      //intento convertir a entero. 
      //si era un entero no le afecta, si no lo era lo intenta convertir 
       valor = parseInt(valor) 

      //Compruebo si es un valor numérico 
      if (isNaN(valor)) { 
         //entonces (no es numero) devuelvo el valor cadena vacia 
         return "" 
      }else{ 
         //En caso contrario (Si era un número) devuelvo el valor 
         return valor 
      } 
} 


function ValidoCP( cod_postal ){ 
/* Verifica si la cadena introducida en un combo de texto es un código postal valido */
   CPValido=true 
   //si no tiene 5 caracteres no es válido 
   if ((cod_postal.length != 5) )
      CPValido=false 
   else{ 
      for (i=0;i<5;i++){ 
         CActual = cod_postal.charAt(i) 
         if (validarEntero(CActual)==""){ 
            CPValido=false 
            break; 
         } 
      } 
   } 

   if ((!CPValido) && (cod_postal != 0)){ 
      if ( (!avisado) ){ 
         //si no es valido, Lo aviso 
         alert ("Debe escribir un codigo postal valido o dejarlo a cero si no desea filtrar por este campo. ") 
         //selecciono el texto 
         document.forms(0).cpostal.select() 
         //coloco otra vez el foco 
         document.forms(0).cpostal.focus() 
         avisado=true 
		 setTimeout('avisado=false',50) 
		 return false;
      } 
   } else { return true;}
}

/* Fin Validación de datos */

function getScreenResolution(r){
	
	if(bGaleta('uRes')==null)
		document.cookie='uRes='+screen.width+'.'+screen.height+';';
	if(r==1)
		resolucion();
	

}
function bGaleta(name) {
    var arxiu = document.cookie;
    var prefixe = name + "=";
    var inici = arxiu.indexOf("; " + prefixe);
    if (inici == -1) {
        inici = arxiu.indexOf(prefixe);
        if (inici != 0) return null;
    } else {
        inici += 2;
    }
    var end = document.cookie.indexOf(";", inici);
    if (end == -1) {
        end = arxiu.length;
    }
    return unescape(arxiu.substring(inici + prefixe.length, end));
}

function resolucion() {
	
	var height = screen.height;
	if (height > 768){
			document.location.href="index.aspx?c=1";
		
	}	
	
}

//----------------------------------------------------------
//	Funciónes: CambiaObjeto (cellId,ver); 
//	Parámetros: cellId,ver
//	Valor de retorno: ninguno.
//	Descripción: Cambia la visibilidad de una tabla o una celda.
//  la tabla o celda tiene que estar bien identificada.
//  Se debe añadir esta propiedad al objeto (style="visibility:visible;display:block")
//----------------------------------------------------------

function CambiaVisibilidad(cellId,ver){ 

            var cell = document.getElementById(cellId); 
            if (ver==false) { 
                        cell.style.display="none";                      
            } 
            else {                
                        cell.style.display="block";
            } 

}

// Si esta visible lo oculta y si no lo esta lo muestra
function InvierteVisibilidad(theID) {
	
    var myID = document.getElementById(theID); 
    myID.style.display = (myID.style.display == 'block') ? 'none' : 'block';
	
}

//----------------------------------------------------------
//	Funciónes: validarEntero(valor); 
//	Parámetros: valor
//	Valor de retorno: true si es entero false si no lo es.
//	Descripción: Checkea un valor numérico par asaber si es entero o no.
//----------------------------------------------------------
function validarEntero(valor){ 
      //intento convertir a entero. 
     //si era un entero no le afecta, si no lo era lo intenta convertir 
     valor = parseInt(valor) 

      //Compruebo si es un valor numérico 
      if (isNaN(valor)) { 
            //entonces (no es numero) devuelvo el valor cadena vacia 
            return false
      }else{ 
            //En caso contrario (Si era un número) devuelvo el valor 
            return true
      } 
}

function oninputfocus(e) {
	
	// MODIFICACIÓN(1.1)
//evita que salte error en FireFox	
	if(!e)
		e=window.event;	
	
 if (typeof e == 'undefined') {
   var e = window.event;
 }
 var source;
 
 if(e!=null){
	 if (typeof e.target != 'undefined') {
	    source = e.target;
	 } else if (typeof e.srcElement != 'undefined') {
	    source = e.srcElement;
	 } else {
	   return;
	 }
}else{
		return;
		}
// fin MODIFICACIÓN(1.1)
 source.style.border='1px solid #FF6600';
}

function oninputblur(e) {
// MODIFICACIÓN(1.1)
//evita que salte error en FireFox	
	if(!e)
		e=window.event;
	
 if (typeof e == 'undefined') {
   var e = window.event;
 }
 var source;
	if(e!=null){
	 if (typeof e.target != 'undefined') {
	    source = e.target;
	 } else if (typeof e.srcElement != 'undefined') {
	    source = e.srcElement;
	 } else {
	   return;
	 }
	}else{
		return;
		}
 // fin MODIFICACIÓN(1.1)
 source.style.border='1px solid #999999';
}



function hideSelects(action) {
	if (action!='visible'){action='hidden';}
	if (ienaply()){
		for (var S = 0; S < document.forms.length; S++){
			for (var R = 0; R < document.forms[S].length; R++) {
				if (document.forms[S].elements[R].options) {
				document.forms[S].elements[R].style.visibility = action;
				}
			}
		}
	}
}

function ienaply(){
	var rv = -1;
	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 );
	}
	if(rv>=4 && rv<7)
		return(true);
	else
		return(false);
}

function getLabelForId(id) {
	 var label, labels = document.getElementsByTagName('label');
	 for (var i = 0; (label = labels[i]); i++) {
	   if (label.htmlFor == id) {
		 return label;
	   }
	 }
	 return false;
}

function verNulo(id) {
	 var formfield = document.getElementById(id);
	 var label = getLabelForId(id);
	 if (formfield.value.length == 0) {
	   label.className = 'p1';
	 } 
	 else {
	   label.className = 'p2';
	 }
}


// MODIFICACIÓN(1.2)
/***************
Funcion que abre un cuadro de confirmacion preguntando si desea borrar
***************/
function confirmarBorrado(objeto)
{
    var valor=confirm("¿Desea borrar el registro?");

    if(!valor)
        return false;
    else
        return true;
}

//fin MODIFICACIÓN(1.2)

// MODIFICACION(1.5)

/***************
Funcion que calcula el alto de la ventana de navegación y devuelve ese valor aplicandole
un factor de remidensionamiento
***************/

function altoVentana(){
	var resize_factor=1;
	var de = document.documentElement;
	var h = window.innerHeight || self.innerHeight || (de&&de.clientHeight) || document.body.clientHeight;		

	resize_factor=calucularResizeAlto(h);
	//el thickbox añade automáticamente 53px de alto. Lo restamos.	
	//alert("ALTO:"+(resize_factor*h-53));
	return (parseInt(resize_factor*h-53));
}

/***************
Funcion que calcula el ancho de la ventana de navegación y devuelve ese valor aplicandole
un factor de remidensionamiento
***************/

function anchoVentana(){
	var resize_factor=1;	
	var de = document.documentElement;
	var w = window.innerWidth || self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth;			

	resize_factor=calucularResizeAncho(w);	
	//el thickbox añade automáticamente 38px de ancho. Lo restamos.
	//alert("ALTO:"+(resize_factor*w-38));	
	return (parseInt(resize_factor*w - 38));	
}

/***************
Funcion que calcula el factor de redimensionamiento de la ventana thickbox, en función
de la resolución de la pantalla, partiendo de la base que para 800 tiene un factor 
de 0.9
	-ancho:  indica el ancho de la ventana actual.
***************/

function calucularResizeAncho(ancho){
	//regla de tres inversa 
	var factor_resize=(800*0.9)/ancho;
	if(factor_resize>0.9)
		factor_resize=0.9;
	return factor_resize;
}

/***************
Funcion que calcula el factor de redimensionamiento de la ventana thickbox, en función
de la resolución de la pantalla, partiendo de la base que para 400 tiene un factor 
de 0.9. Pongo 400 porque lo mínimo es 800X600, pero todos los navegadores tienen barras
de utilidades y el alto se suele reducir. Así evitamos un redimensionamiento > 1
	-alto:  indica el alto de la ventana actual.
***************/

function calucularResizeAlto(alto){
	//regla de tres inversa 
	var factor_resize=(550*0.9)/alto;
	if(factor_resize>0.9)
		factor_resize=0.9;
	return factor_resize;
}


// FIN MODIFICACION(1.5)

// MODIFICACION(1.7)

function marcaFilatablas()
{
		var tablas = document.getElementsByTagName("table");	
	for(var x=0;x!=tablas.length;x++){
		var tabla = tablas[x];
		if (! tabla) { return; }
		var trs = tablas[x].getElementsByTagName("tr");
		if(tabla.className=='datos')
			for (var i = 0; i < trs.length; i++) {
				trs[i].onmouseover=function(){
					this.className += " ruled"; return false
				}
				trs[i].onmouseout=function(){
					this.className = this.className.replace("ruled", ""); return false
				}
			}
	}
}

// fin MODIFICACION(1.7)



/***************

Funcion que abre la ventana necesaria para visualizar la postal navideña del 2008.

***************/

function AbreAplicacion(url) {
 	var URL = location.href;
	var ancho=956;
	var alto=625;
	
	if(window.screen.width<1024){
	   ancho=800;
	   alto=600;
    }
	
	var vPagina = url;
	var sTarget = "_blank";
	
	ventanades = open(vPagina,sTarget,"width="+ancho+",height="+alto+",top=0,left=0,status=yes,scrollbars=yes,toolbar=no,menubar=no,status=no,location=no");
	try{
	  	ventanades.focus();
	}
	catch(e){};
	return false;
 }