//Inicializa variables y metodos
var simbolo_euro
simbolo_euro = String.fromCharCode(8364)
inicializa_trim()

//Funcion para confimar la eliminacion con Idioma
function confirmar_eliminar(Idioma) {
var mensaje 
	if (Idioma==0) {
		mensaje="&iquest;Desea borrar el elemento seleccionado?"
	}
	else if (Idioma==1){
		mensaje="Aukeratutako elementua ezabatu nahi duzu?"	
	}
	else if (Idioma==2){
		mensaje="Aukeratutako elementua ezabatu nahi duzu?\n&iquest;Desea borrar el elemento seleccionado?"	
	}				
	if(confirm_caracteres(mensaje)){
		return true
	}
	else {
	return false
	}
}

//Funcion para confimar la eliminacion 
function confirmar_guardar(toolbar, indice) {
// Se almacena en variable el origen del evento
estado = event.flatIndex
// Se obtiene el formulario
//formulario = document.form_editor_equipamiento

if (estado == indice) {

	if(confirm_caracteres("Aldaketak gorde nahi dituzu?\n&iquest;Desea guardar los cambios?")){
		// Continuar con el Submit
		return __doPostBack(toolbar,estado)
	}
	else {
	return false
	}
}
else {
	return __doPostBack(toolbar,estado)
}
}

function confirmar_guardar_asignacion(Idioma) {

var mensaje_confirmar
	if (Idioma==0){
		mensaje_confirmar="&iquest;Desea guardar los cambios?"
	}
	else if (Idioma==1){
		mensaje_confirmar="Aldaketak gorde nahi dituzu?"
	}
	else if (Idioma==2){
		mensaje_confirmar="Aldaketak gorde nahi dituzu?\n&iquest;Desea guardar los cambios?"
	}

	if(confirm_caracteres(mensaje_confirmar)){
		return true
	}
	else {
	return false
	}
}


//Funcion para confimar la eliminacion 
function confirm_desasignar(Idioma) {

var mensaje_desasignar
	if (Idioma==0){
		mensaje_desasignar="&iquest;Desea desasignar el elemento seleccionado?"
	}
	else if (Idioma==1){
		mensaje_desasignar="Aukeratutako elementua kendu nahi duzu?"
	}

		
	if(confirm_caracteres(mensaje_desasignar)){
		return true
	}
	else {
	return false
	}
}


function cierra_ventana() {
	window.close()
}

function abrir_calendario(ctl, entrada, Idioma){
var ventanaCalendario

if (Idioma==0){
titulo="calendario"
}
else if (Idioma==1){
titulo="egutegia"
}
else if (Idioma==2){
titulo="egutegiacalendario"
}

objeto=event.srcElement.id
ultimo=objeto.lastIndexOf("_")
if(ultimo == -1){
	indice = -1
}
else{
	indice=objeto.substring(ultimo-1, ultimo)
}

ventanaCalendario=window.open("Calendario.aspx?Ctl=" + ctl + "&Indice=" + indice + "&Entrada=" + entrada + "&Idioma=" + Idioma,titulo,"height=120,width=200,left=" + event.screenX + ",top=" + event.screenY + ",toolbar=no,resizable=no,scrollbars=no,menu=no,location=no,status=no")
ventanaCalendario.focus()


//estado = event.flatIndex

}
function cambio_calendario(valorFecha, Indice, Entrada){

// consigue del querystring el valor del parametro Ctl
// que es el nombre del input control en el formulario padre 
// que el usuario quiere seleccionar con el dia cliqueado

var fecha = new Date()
fecha = valorFecha

ctl = window.location.search.substr(1).substring(4);

ultimo_=ctl.indexOf("&")

if(Entrada==0){ 
//noticia
	if(Indice!=-1){
		a="DataListNoticia:_ctl" + Indice + ":" + ctl.substring(0,ultimo_)
		opener.document.form_noticia.elements(a).value = valorFecha;
	}
	else{
		opener.document.form_EditarNoticia.elements(ctl.substring(0,ultimo_)).value = valorFecha;
	}
}
else if(Entrada==1){
//evento
	if(Indice!=-1){
		a="DataListEvento:_ctl" + Indice + ":" + ctl.substring(0,ultimo_)
		opener.document.form_evento.elements(a).value = valorFecha;
	}
	else{
		opener.document.form_EditarEvento.elements(ctl.substring(0,ultimo_)).value = valorFecha;
	}
}
// cerra el popup
self.close();
}
function abrir_NuevoValor(Cod, CodPlan, CodEdit){
var ventanaNuevoValor
ventanaNuevoValor=window.open("NuevoValor.aspx?Cod=" + Cod + "&CodPlan=" + CodPlan + "&CodEdit=" + CodEdit,"NuevoValor","height=180,width=400,left=" + event.screenX + ",top=" + event.screenY + ",toolbar=no,resizable=no,scrollbars=no,menu=no,location=no,status=no")

ventanaNuevoValor.focus()

}


function cerrar_Popup() {
self.close();
}


function redireccionar_Popup(Cod, CodPlan) {
opener.location.href("EditarIndicador.aspx?Popup=1&Cod=" + Cod + "&CodPlan=" + CodPlan);
}


function redireccionar_Popup_Indicador(Cod, CodPlan, CodEdit) {
opener.location.href("Indicador.aspx?Popup=1&CodPlan=" + CodPlan + "&CodEdit=" + CodEdit);
}



// JavaScript Document
function trim_spaces (from_where) {

// Almacenar la cadena en una variable temporal
var temp_string = this

// Si no hay argumento, eliminar los espacios de ambos lados
if (arguments.length == 0) {
	from_where = "BOTH"
}

// Recortar los espacios de la izquierda
if (from_where.toUpperCase() == "LEFT" || from_where == "BOTH") {
	while (temp_string.left(1) == " ") {
		temp_string = temp_string.substring(1)
	}
}

// Recortar los espacios de la derecha
if (from_where.toUpperCase() == "RIGHT" || from_where == "BOTH") {
	while (temp_string.right(1) == " ") {
		temp_string = temp_string.substring(0, temp_string.length - 1)
	}
}
return temp_string
}

function extract_left(total_chars) {
	return this.substring(0, total_chars)
}

function extract_right(total_chars) {
	return this.substring(this.length - total_chars)
}

var a, mes, dia, anyo, febrero;
   
function anyoBisiesto(anyo)
{
        /**
        * si el año introducido es de dos cifras lo pasamos al periodo de 1900. Ejemplo: 25 > 1925
        */
		if (anyo < 100)
            var fin = anyo + 1900;
        else
            var fin = anyo ;

        /*
        * primera condicion: si el resto de dividir el año entre 4 no es cero > el año no es bisiesto
        * es decir, obtenemos año modulo 4, teniendo que cumplirse anyo mod(4)=0 para bisiesto
        */
        if (fin % 4 != 0)
            return false;
        else
        {
            if (fin % 100 == 0)
            {
                /**
                * si el año es divisible por 4 y por 100 y divisible por 400 > es bisiesto
                */
                if (fin % 400 == 0)
                {
                    return true;
                }
                /**
                * si es divisible por 4 y por 100 pero no lo es por 400 > no es bisiesto
                */
                else
                {
                    return false;
                }
            }
            /**
            * si es divisible por 4 y no es divisible por 100 > el año es bisiesto
            */
            else
            {
                return true;
            }
        }
}

function inicializa_trim() {
String.prototype.right = extract_right
String.prototype.left = extract_left
String.prototype.trim = trim_spaces
}
    
    /**
    * funcion principal de validacion de la fecha
    * argumento fecha > cadena de texto de la fecha introducida por el usuario
    */
function valida_fecha(texto) {
       /**
       * obtenemos la fecha introducida y la separamos en dia, mes y año
       */
       fecha = texto.trim()
       
       dia=fecha.split("/")[0];
       mes=fecha.split("/")[1];
       anyo=fecha.split("/")[2];
   	   if( (isNaN(dia)==true) || (isNaN(mes)==true) || (isNaN(anyo)==true) )
       {
       return false;
       }
	   
       if(anyoBisiesto(anyo))
           febrero=29;
       else
           febrero=28;
       /**
       * si el mes introducido es negativo, 0 o mayor que 12 > alertamos y detenemos ejecucion
       */
       if ((mes<1) || (mes>12))
       {
           return false;
       }
       /**
       * si el mes introducido es febrero y el dia es mayor que el correspondiente 
       * al año introducido > alertamos y detenemos ejecucion
       */
       if ((mes==2) && ((dia<1) || (dia>febrero)))
       {
           return false;
       }
       /**
       * si el mes introducido es de 31 dias y el dia introducido es mayor de 31 > alertamos y detenemos ejecucion
       */
       if (((mes==1) || (mes==3) || (mes==5) || (mes==7) || (mes==8) || (mes==10) || (mes==12)) && ((dia<1) || (dia>31)))
       {
           return false;
       }
       /**
       * si el mes introducido es de 30 dias y el dia introducido es mayor de 301 > alertamos y detenemos ejecucion
       */
       if (((mes==4) || (mes==6) || (mes==9) || (mes==11)) && ((dia<1) || (dia>30)))
       {
           return false;
       }
       /**
       * si el mes año introducido es menor que 1900 o mayor que 2010 > alertamos y detenemos ejecucion
       * NOTA: estos valores son a eleccion vuestra, y no constituyen por si solos fecha erronea
       */
       if ((anyo<1990) || (anyo>2020))
       {
		return false;
       } 
       /**
       * en caso de que todo sea correcto > enviamos los datos del formulario
       * para ello debeis descomentar la ultima sentencia
       */
       else
	   {
          return true;
          
	   }
}    


function valida_texto(texto) {
	//Para el caso en el que un campo se encuentre vacio.
	
	if (texto.trim() == "" ) {
		return false
	}
	else {
	return true
	}
}
function valida_numero(texto){
//Para el caso de los campos que requieran ser enteros.

var digitos = "0123456789"

    texto = texto.trim()

	for (var cont = 0; cont < texto.length; cont++){
		caracter_actual=texto.charAt(cont)
		
		if (digitos.indexOf(caracter_actual) == -1){
			return false
		}
	
	}
	if (texto.length == 0) {
		return false
	}
//si llegamos aqui la cadena solo contiene digitos, así que devuelve true.
	return true

}

function valida_numero_conpunto(texto){
//Para el caso de los campos que requieran ser enteros.

var digitos = "0123456789."

    texto = texto.trim()
    
	for (var cont = 0; cont < texto.length; cont++){
		caracter_actual=texto.charAt(cont)
		
		if (digitos.indexOf(caracter_actual) == -1){
			return false
		}
	
	}
//si llegamos aqui la cadena solo contiene digitos, así que devuelve true.
	return true

}


function valida_numero_decimal(texto){
//comprueba que la longitud por lo menos sea de 5. La mínima direccion valida será a@b.c	

texto = texto.trim()

texto = texto.replace(",",".")

if (valida_numero_conpunto(texto)){

	if (texto.length != 0){
		
		//Buscar el .
		pos_punto=texto.lastIndexOf(".")
		
		if (pos_punto != -1){
					
			if (pos_punto == texto.length -1){
			
				return false
			}
			
			if ((texto.length -1) - pos_punto > 2){
				if (pos_punto == 0){
					return true
				}
				else {
				return false
				}
			}
		}

		//si se llega a este punto el numero decimal es valido por lo que devuelve true.
		return true
	}
	else {
		return true	
	}
}
else {
	return false 
}
}


function valida_moneda(texto){
//Comprueba que el valor que se introduce sea decimal (pudiendo llevar el simbolo del euro o no)	
var cantidad

texto = texto.trim()

// Reemplaza las comas por puntos para poder comprobar si el numero
// es decimal utilizando una funcion auxiliar denominada valida_numero_conpunto()
texto = texto.replace(",",".")

// primero valida si el ultimo caracter es el simbolo monetario
if (texto.charAt(texto.length -1)== simbolo_euro) {
	cantidad = texto.left(texto.length - 1)
	if (cantidad.trim()=="") {
		// En el caso de que el valor a validar contenga
		// unicamente el simbolo del Euro se devuelve un
		// error
		return false
	}
}
else if (texto.trim()=="") {
	return false
}
else {
	cantidad = texto
}
cantidad = cantidad.trim()

// Una vez quitado el simbolo del euro al valor se comprueba si
// es un decimal valido
if (valida_numero_conpunto(cantidad)){

	if (cantidad.length != 0){
		
		//Buscar el .
		pos_punto=cantidad.lastIndexOf(".")
		
		if (pos_punto != -1){
					
			if (pos_punto == cantidad.length -1){
			
				return false
			}
			
			if ((cantidad.length -1) - pos_punto > 2){
				if (pos_punto == 0){
					return true
				}
				else {
				return false
				}
			}
		}

		//si se llega a este punto el numero decimal es valido por lo que devuelve true.
		return true
	}
	else {
		return true	
	}
}
else {
	return false 
}
}

function Eliminar_Caracteres(texto){
var string_limpio=""
var carac_prohibidos="'<>=()"
	for (var cont = 0; cont < texto.length; cont++){
		caracter_actual=texto.charAt(cont)
		if (carac_prohibidos.indexOf(caracter_actual) == -1){
			//solo vamos metiendo los caracteres que no esten en la lista de caracteres prohibidos
			string_limpio += caracter_actual
		}
	}
return string_limpio
}

function valida_email (textoEmail){
//comprueba que la longitud por lo menos sea de 5. La mínima direccion valida será a@b.c	

textoEmail = textoEmail.trim()
    
if (textoEmail.length != 0){
	if (textoEmail.length < 5){
		return false	
	}
	
	//Buscar la @ y el .
	pos_arroba=textoEmail.indexOf("@")
	pos_punto=textoEmail.lastIndexOf(".")
	
	if (pos_arroba == -1 || pos_punto == -1 || pos_arroba > pos_punto){
		return false
	}
	
	//Comprueba que haya al menos un caracter antes de la arroba
	if (pos_arroba == 0){
		return false
	}
	
	//comprueba que haya al menos un caracter entre la arroba y el punto.
	if (pos_punto - pos_arroba <= 1){
		return false
	}
	//Comprueba que haya al menos dos caracteres despues del punto
	if (textoEmail.length - pos_punto <= 2){
		return false	
	}
	//si se llega a este punto la direccion de correo es valida por lo que devuelve true.
	return true
}
else {
	return true	
}
}

function valida_cp(cp) {
var numero

cp = cp.trim()

if (cp.length == 5) {
	return valida_numero(cp)
}
else {
	return false
}
}

function valida_extension(Nombre,Tipo) {
	dots = Nombre.split(".")
	fileType = dots[dots.length-1]
	if (Tipo==0) {
		if ((fileType=="jpg")||(fileType=="gif")||(fileType=="png")) {
			return true
		}
		else {
			return false
		}
	}
	else {
		if ((fileType=="doc")||(fileType=="xls")||(fileType=="ppt")||(fileType=="pdf")) {
			return true
		}
		else {
			return false
		}
	}
}

function valida_fichero(fichero) {
}

function valida_numero_intervalo(valor,min,max){

valor = valor.trim()
min = min.trim()
max = max.trim()

valor=valor.replace(",",".")
min=min.replace(",",".")
max=max.replace(",",".")

valor=parseFloat(valor)
min=parseFloat(min)
max=parseFloat(max)


if (valor<min || valor>max) {
	return false 
}
else {
	return true
}
}



function alert_caracteres(x) { alert(acentos(x)) }

function confirm_caracteres(x) { 
	return confirm(acentos(x)) 
}

function acentos(x) {
	
	x = x.replace(/&iexcl;/g,"\xA1") //apertura exclamacion (¡)
	x = x.replace(/&iquest;/g,"\xBF") //apertura interrogacion(¿)
	
	x = x.replace(/&Aacute;/g,"\xC1") //A con acento
	x = x.replace(/&aacute;/g,"\xE1") //a con acento
	
	x = x.replace(/&Eacute;/g,"\xC9") //E con acento
	x = x.replace(/&eacute;/g,"\xE9") //e con acento
	 
	x = x.replace(/&Iacute;/g,"\xCD") //I con acento
	x = x.replace(/&iacute;/g,"\xED") //i con acento

	x = x.replace(/&Ntilde;/g,"\xD1") //Ñ
	x = x.replace(/&ntilde;/g,"\xF1") //ñ
	
	x = x.replace(/&Oacute;/g,"\xD3") //O con acento
	x = x.replace(/&oacute;/g,"\xF3") //o con acento
	
	x = x.replace(/&Uacute;/g,"\xDA") //U con acento
	x = x.replace(/&uacute;/g,"\xFA") //u con acento
	x = x.replace(/&Uuml;/g,"\xDC") //U con dieresis
	x = x.replace(/&uuml;/g,"\xFC") //u con dieresis
	
	x = x.replace(/\"/g,"\x22")
	x = x.replace(/\'/g,"\x27")
	x = x.replace(/\</g,"\x3C")
	x = x.replace(/\>/g,"\x3E")
	x = x.replace(/\[/g,"\x5B")
	x = x.replace(/\]/g,"\x5D")

	x = x.replace(/&cent;/g,"\xA2") //¢
	x = x.replace(/&pound;/g,"\xA3") //£
	x = x.replace(/&euro;/g,"\u20AC") //€
	x = x.replace(/&copy;/g,"\xA9") //©
	x = x.replace(/&reg;/g,"\xAE") //®
	x = x.replace(/&ordf;/g,"\xAA") //ª
	x = x.replace(/&ordm;/g,"\xBA") //º
	x = x.replace(/&deg;/g,"\xB0") //°
	x = x.replace(/&plusmn;/g,"\xB1") //±
	x = x.replace(/&times;/g,"\xD7") //×
	
	
	return x
}

function valida_fecha_comparacion(fechaComienzo,fechaFin){

	fechaComienzo = fechaComienzo.trim()
	fechaFin = fechaFin.trim()

	diaComienzo=fechaComienzo.split("/")[0]
	mesComienzo=fechaComienzo.split("/")[1]
	anyoComienzoAux=fechaComienzo.split("/")[2]
	anyoComienzo=anyoComienzoAux.split(" ")[0]

	diaFin=fechaFin.split("/")[0]
	mesFin=fechaFin.split("/")[1]
	anyoFinAux=fechaFin.split("/")[2]
	anyoFin=anyoFinAux.split(" ")[0]

	
	if (anyoComienzo < anyoFin){
		return true
	}
	else if (anyoComienzo == anyoFin){
		if (mesComienzo < mesFin){
			return true
		}
		else if (mesComienzo == mesFin){
			if (diaComienzo <= diaFin){
				return true
			}
		}
	}
	return false
}

function muestra_mensaje(tipo, campo, idioma) {
// La funcion muestra un mensaje diferente para cada tipo
// de necesidad, mostrando el nombre del campo en los
// casos en los que sea necesario

// castellano
if (idioma == 0) {
	switch (tipo) {
		case 0 : 
		{
			// Tipo Generico obligatorio
			alert_caracteres("El campo " + campo + " es obligatorio.")
			break
		}
		case 1 : 
		{
			// Tipo Generico formato numerico
			alert_caracteres("El campo " + campo + " debe ser num&eacute;rico.")
			break
		}
		case 2 : 
		{
			// Tipo Generico formato fecha
			alert_caracteres("El campo " + campo + " debe ser una fecha v&aacute;lida.\n\tFormato v&aacute;lido: dd/mm/aaaa (dd:d&iacute;a mm:mes aaaa:a&ntilde;o) P.Ej.: 31/12/2005")
			break
		}
		case 3 : 
		{
			// Tipo Generico valor incorrecto
			alert_caracteres("El valor del campo " + campo + " no es correcto.") 
			break
		}
		case 4 : 
		{
			// Campos de password no coincidentes
			alert_caracteres("Los passwords no son coincidentes.")
			break
		}
		case 5 :
		{
			// Servicio sin equipamientos no puede tener mas de un servicio definidos
			alert_caracteres("S&oacute;lo los equipamientos polivalentes\npueden tener m&aacute;s de un servicio.")
			break
		}
		case 6 :
		{
			// No existen mas Servicios sin eliminar
			alert_caracteres("No existen servicios asociados.")
			break
		}
		case 7 :
		{
			// No se han rellenado los dos idiomas en los campos duplicados.
			alert_caracteres("No se ha rellenado el campo " + campo + " en los dos idiomas.")
			break
		}
		case 8 :
		{
			// No se ha seleccionado un select.
			alert_caracteres("No se ha seleccionado el campo " + campo + ".")
			break
		}
		case 9 :
		{
			// Valor entre minimo y maximo.			
			alert_caracteres("El campo " + campo + " debe estar entre el M&iacute;nimo y el M&aacute;ximo.")
			break
		}
		case 10 :
		{
			// Fecha final mayor o igual a fecha comienzo.			
			alert_caracteres("El campo " + campo + " debe ser mayor o igual a la fecha de Comienzo.")
			break
		}
		case 11 :
		{
			// Fecha final mayor o igual a fecha comienzo.			
			alert_caracteres("La suma de Pesos no es inferior o igual a 100.")
			break
		}
		case 12 :
		{
			// El perfil seleccionado obliga la relación con un Municipio o Agrupacion.			
			alert_caracteres("El perfil seleccionado requiere un Municipio o Agrupaci&oacute;n.")
			break
		}
		case 13 :
		{
			// El usuario/a que se intenta guardar debe ir asociado/a a un Plan
			alert_caracteres("El usuario/a debe tener asociado/a un Plan.")
			break
		}
		case 14 :
		{
			// El archivo no tiene la extensión correcta
			alert_caracteres("La extensi&oacute;n del archivo no es correcta.")
			break
		}
		default :
		alert_caracteres("Error desconocido.")
	}
}

// euskera
if (idioma == 1) {
	switch (tipo) {
		case 0 : 
		{
			// Tipo Generico obligatorio
			alert_caracteres(campo + " eremua beharrezkoa da.")
			break
		}
		case 1 : 
		{
			// Tipo Generico formato numerico
			alert_caracteres(campo + " eremua zenbakia izan behar da.")
			break
		}
		case 2 : 
		{
			// Tipo Generico formato fecha
			alert_caracteres(campo + "eremua baliozko data izan behar da.\n\tBaliozko formatua: ee/hh/uuuu (ee:egun hh:hila uuuu:urte) Adibidez: 31/12/2005")
			break
		}
		case 3 : 
		{
			// Tipo Generico valor incorrecto
			alert_caracteres(campo + " eremuaren balioa ez da zuzena.") 
			break
		}
		case 4 : 
		{
			// Campos de password no coincidentes
			alert_caracteres("Pasahitzak ez dira berdinak.")
			break
		}
		case 5 :
		{
			// Servicio sin equipamientos no puede tener mas de un servicio definidos
			alert_caracteres("Balioanitzeko equipamentuek baino ezin dute\nzerbitzu bat baino gehiago eduki.")
			break
		}
		case 6 :
		{
			// No existen mas Servicios sin eliminar
			alert_caracteres("Ez da elkartutako zerbitzurik existitzen.")
			break
		}
		case 7 :
		{
			// No se han rellenado los dos idiomas en los campos duplicados.
			alert_caracteres(campo + " eremua ez da bete hizkuntza bietan.")
			break
		}
		case 8 :
		{
			// No se ha seleccionado un select.
			alert_caracteres(campo + " eremua ez da aukeratu.")
			break
		}
		case 9 :
		{
			// Valor entre minimo y maximo.			
			alert_caracteres(campo + " eremua ez dago Minimo eta Maximo artean.")
			break
		}
		case 10 :
		{
			// Fecha final mayor o igual a fecha comienzo.			
			alert_caracteres(campo + " eremua hasiera data baino handiagoa edo berdina izan behar da.")
			break
		}
		case 11 :
		{
			// Fecha final mayor o igual a fecha comienzo.			
			alert_caracteres("Pisuen batuketa 100 edo txikiagoa izan behar da.")
			break
		}
		case 12 :
		{
			// El perfil seleccionado obliga la relación con un Municipio o Agrupacion.			
			alert_caracteres("Hautatutako profilak udal edo elkartetza bati atxikitzea eskatzen du.")
			break
		}
		case 13 :
		{
			// El usuario/a que se intenta guardar debe ir asociado/a a un Plan
			alert_caracteres("Erabiltzaileari Plan bat egokitu behar zaio.")
			break
		}
		case 14 :
		{
			// El archivo no tiene la extensión correcta
			alert_caracteres("Fitxategiaren luzapena ez da zuzena.")
			break
		}
			
		default :
		alert_caracteres("Akats ezezaguna.")
	}
}

// bilingue
if (idioma == 2) {
	switch (tipo) {
		case 0 : 
		{
			// Tipo Generico obligatorio
			alert_caracteres(campo + " eremua beharrezkoa da\nEl campo " + campo + " es obligatorio.")
			break
		}
		case 1 : 
		{
			// Tipo Generico formato numerico
			alert_caracteres(campo + " eremua zenbakia izan behar da\nEl campo " + campo + " debe ser num&eacute;rico.")
			break
		}
		case 2 : 
		{
			// Tipo Generico formato fecha
			alert_caracteres(campo + "eremua baliozko data izan behar da.\n\tBaliozko formatua: ee/hh/uuuu (ee:egun hh:hila uuuu:urte) Adibidez: 31/12/2005\nEl campo " + campo + " debe ser una fecha v&aacute;lida.\n\tFormato v&aacute;lido: dd/mm/aaaa (dd:d&iacute;a mm:mes aaaa:a&ntilde;o) P.Ej.: 31/12/2005")
			break
		}
		case 3 : 
		{
			// Tipo Generico valor incorrecto
			alert_caracteres(campo + " eremuaren balioa ez da zuzena\nEl valor del campo " + campo + " no es correcto.") 
			break
		}
		case 4 : 
		{
			// Campos de password no coincidentes
			alert_caracteres("Pasahitzak ez dira berdinak\nLos passwords no son coincidentes.")
			break
		}
		case 5 :
		{
			// Servicio sin equipamientos no puede tener mas de un servicio definidos
			alert_caracteres("Balioanitzeko equipamentuek baino ezin dute\nzerbitzu bat baino gehiago eduki\nS&oacute;lo los equipamientos polivalentes\npueden tener m&aacute;s de un servicio.")
			break
		}
		case 6 :
		{
			// No existen mas Servicios sin eliminar
			alert_caracteres("Ez da elkartutako zerbitzurik existitzen\nNo existen servicios asociados.")
			break
		}
		case 7 :
		{
			// No se han rellenado los dos idiomas en los campos duplicados.
			alert_caracteres(campo + " eremua ez da bete hizkuntza bietan\nNo se ha rellenado el campo " + campo + " en los dos idiomas.")
			break
		}
		case 8 :
		{
			// No se ha seleccionado un select.
			alert_caracteres(campo + " eremua ez da aukeratu\nNo se ha seleccionado el campo " + campo + ".")
			break
		}
		case 9 :
		{
			// Valor entre minimo y maximo.			
			alert_caracteres(campo + " eremua ez dago Minimo eta Maximo artean\nEl campo " + campo + " debe estar entre el M&iacute;nimo y el M&aacute;ximo.")
			break
		}
		case 10 :
		{
			// Fecha final mayor o igual a fecha comienzo.			
			alert_caracteres(campo + " eremua hasiera data baino handiagoa edo berdina izan behar da.\nEl campo " + campo + " debe ser mayor o igual a la fecha de Comienzo.")
			break
		}
		case 11 :
		{
			// Fecha final mayor o igual a fecha comienzo.			
			alert_caracteres("Pisuen batuketa 100 edo txikiagoa izan behar da.\nLa suma de Pesos no es inferior o igual a 100.")
			break
		}
		
		case 12 :
		{
			// El perfil seleccionado obliga la relación con un Municipio o Agrupacion.			
			alert_caracteres("Hautatutako profilak udal edo elkartetza bati atxikitzea eskatzen du.\nEl perfil seleccionado requiere un Municipio o Agrupaci&oacute;n.")
			break
		}
		case 13 :
		{
			// El usuario/a que se intenta guardar debe ir asociado/a a un Plan
			alert_caracteres("Erabiltzaileari Plan bat egokitu behar zaio.\nEl usuario/a debe tener asociado/a un Plan.")
			break
		}
		case 14 :
		{
			// El archivo no tiene la extensión correcta
			alert_caracteres("Fitxategiaren luzapena ez da zuzena.\nLa extensi&oacute;n del archivo no es correcta.")
			break
		}
		default :
		alert_caracteres("Akats ezezaguna\nError desconocido.")
	}
}
}



function abrir_ayuda(tipo, idioma){
var ventanaAyuda
var height_ventana = 220
var width_ventana = 462
var left_ventana = (screen.availWidth / 2)-(width_ventana / 2)
var top_ventana = (screen.availHeight / 2)-(height_ventana / 2)
ventanaAyuda=window.open("Ayuda.aspx?tipo=" + tipo + "&idioma=" + idioma,"ayuda","height=" + height_ventana + ",width=" + width_ventana + ",left=" + left_ventana + ",top=" + top_ventana + ",toolbar=no,resizable=no,scrollbars=yes,menu=no,location=no,status=no")

ventanaAyuda.focus()

//estado = event.flatIndex

}


function mostrar_ayuda(tipo, idioma) {
// La funcion muestra un mensaje diferente para cada tipo
// de necesidad, mostrando el nombre del campo en los
// casos en los que sea necesario

tipo=parseInt(tipo)
idioma=parseInt(idioma)
document.getElementById('lblAyuda').style.display='block' 
if (idioma == 0) {
	switch (tipo) {
		case 0 : 
		{
			//Mensaje de ayuda de equipamientos
			msg="Este es el texto de ayuda para equipamientos"
			break
		}
		case 1 : 
		{
			//Mensaje de ayuda de servicios
			msg="Este es el texto de ayuda para servicios"
			break
		}
		case 2 : 
		{
			// Mensaje de Ayuda de Modulo personas
			msg="Este es el texto de ayuda para el m&oacute;dulo de personas"
			break
		}
		case 3 : 
		{
			// Mensaje de Ayuda de Modulo recursos
			msg="Este es el texto de ayuda para el m&oacute;dulo de recursos"
			break
		}
		case 4 : 
		{
			// Mensaje de Ayuda de Modulo agentes
			msg="Este es el texto de ayuda para el m&oacute;dulo de agentes"
			break
		}
		case 5 : 
		{
			// Mensaje de Ayuda de Modulo gestion econominca
			msg="Este es el texto de ayuda para el m&oacute;dulo de gesti&oacute;n econ&oacute;mica"
			break
		}
		case 6 : 
		{
			// Mensaje de Ayuda de Modulo indicadores
			msg="Este es el texto de ayuda para el m&oacute;dulo de indicadores"
			break
		}
		case 7 : 
		{
			// Mensaje de Ayuda de Asignacion Responsable
			msg="Este es el texto de ayuda para la asignaci&oacute;n de responsables"
			break
		}
		case 8 : 
		{
			// Mensaje de Ayuda de Asignacion de agentes
			msg="Este es el texto de ayuda para la asignaci&oacute;n de agentes"
			break
		}
		case 9 : 
		{
			// Mensaje de Ayuda de Asignacion de destinatarios
			msg="Este es el texto de ayuda para la asignaci&oacute;n de destinatarios"
			break
		}
		case 10 : 
		{
			// Mensaje de Ayuda de partidas.
			msg="Este es el texto de ayuda para la asignaci&oacute;n de partidas"
			break
		}
		case 11 : 
		{
			// Mensaje de Ayuda de Asignacion de Indicadores (solo los de nivel)
			msg="Este es el texto de ayuda para la asignaci&oacute;n de indicadores (solo los de nivel)"
			break
		}
		case 12 : 
		{
			// Mensaje de Ayuda de Asignacion de IndicadoresMadre (los de nivel + los generales)
			msg="Este es el texto de ayuda para la asignaci&oacute;n de indicadores de nivel e indicadores generales"
			break
		}
		case 13 : 
		{
			// Mensaje de Ayuda de Hitos
			msg="Este es el texto de ayuda para los Hitos"
			break
		}
		case 14 : 
		{
			// Mensaje de Ayuda de Asignacion de Persona
			msg="Este es el texto de ayuda para la asignaci&oacute;n de personas"
			break
		}
		case 15 : 
		{
			// Mensaje de Ayuda de Asignacion de Recurso
			msg="Este es el texto de ayuda para la asignaci&oacute;n de recursos"
			break
		}
	
		default :
		msg="No disponible ayuda."
	}
}

else if (idioma == 1) {
	switch (tipo) {
		case 0 : 
		{
			//Mensaje de ayuda de equipamientos
			msg="Euskera: Este es el texto de ayuda para equipamientos"
			break
		}
		case 1 : 
		{
			//Mensaje de ayuda de servicios
			msg="Euskera: Este es el texto de ayuda para servicios"
			break
		}
		case 2 : 
		{
			// Mensaje de Ayuda de Modulo personas
			msg="Euskera: Este es el texto de ayuda para el m&oacute;dulo de personas"
			break
		}
		case 3 : 
		{
			// Mensaje de Ayuda de Modulo recursos
			msg="Euskera: Este es el texto de ayuda para el m&oacute;dulo de recursos"
			break
		}
		case 4 : 
		{
			// Mensaje de Ayuda de Modulo agentes
			msg="Euskera: Este es el texto de ayuda para el m&oacute;dulo de agentes"
			break
		}
		case 5 : 
		{
			// Mensaje de Ayuda de Modulo gestion econominca
			msg="Euskera: Este es el texto de ayuda para el m&oacute;dulo de gesti&oacute;n econ&oacute;mica"
			break
		}
		case 6 : 
		{
			// Mensaje de Ayuda de Modulo indicadores
			msg="Euskera: Este es el texto de ayuda para el m&oacute;dulo de indicadores"
			break
		}
		case 7 : 
		{
			// Mensaje de Ayuda de Asignacion Responsable
			msg="Euskera: Este es el texto de ayuda para la asignaci&oacute;n de responsables"
			break
		}
		case 8 : 
		{
			// Mensaje de Ayuda de Asignacion de agentes
			msg="Euskera: Este es el texto de ayuda para la asignaci&oacute;n de agentes"
			break
		}
		case 9 : 
		{
			// Mensaje de Ayuda de Asignacion de destinatarios
			msg="Euskera: Este es el texto de ayuda para la asignaci&oacute;n de destinatarios"
			break
		}
		case 10 : 
		{
			// Mensaje de Ayuda de partidas.
			msg="Euskera: Este es el texto de ayuda para la asignaci&oacute;n de partidas"
			break
		}
		case 11 : 
		{
			// Mensaje de Ayuda de Asignacion de Indicadores (solo los de nivel)
			msg="Euskera: Este es el texto de ayuda para la asignaci&oacute;n de indicadores (solo los de nivel)"
			break
		}
		case 12 : 
		{
			// Mensaje de Ayuda de Asignacion de IndicadoresMadre (los de nivel + los generales)
			msg="Euskera: Este es el texto de ayuda para la asignaci&oacute;n de indicadores de nivel e indicadores generales"
			break
		}
		case 13 : 
		{
			// Mensaje de Ayuda de Hitos
			msg="Euskera: Este es el texto de ayuda para los Hitos"
			break
		}
		case 14 : 
		{
			// Mensaje de Ayuda de Asignacion de Persona
			msg="Euskera: Este es el texto de ayuda para la asignaci&oacute;n de personas"
			break
		}
		case 15 : 
		{
			// Mensaje de Ayuda de Asignacion de Recurso
			msg="Euskera: Este es el texto de ayuda para la asignaci&oacute;n de recursos"
			break
		}
	
		default :
		msg="Euskera: No disponible ayuda."
	}
}

else if (idioma == 2) {
	switch (tipo) {
		case 0 : 
		{
			//Mensaje de ayuda de equipamientos
			msg="Euskera: Este es el texto de ayuda para equipamientos<br>Este es el texto de ayuda para equipamientos"
			break
		}
		case 1 : 
		{
			//Mensaje de ayuda de servicios
			msg="Euskera: Este es el texto de ayuda para servicios<br>Este es el texto de ayuda para servicios"
			break
		}
		case 2 : 
		{
			// Mensaje de Ayuda de Modulo personas
			msg="Euskera: Este es el texto de ayuda para el m&oacute;dulo de personas<br>Este es el texto de ayuda para el m&oacute;dulo de personas"
			break
		}
		case 3 : 
		{
			// Mensaje de Ayuda de Modulo recursos
			msg="Euskera: Este es el texto de ayuda para el m&oacute;dulo de recursos<br>Este es el texto de ayuda para el m&oacute;dulo de recursos"
			break
		}
		case 4 : 
		{
			// Mensaje de Ayuda de Modulo agentes
			msg="Euskera: Este es el texto de ayuda para el m&oacute;dulo de agentes<br>Este es el texto de ayuda para el m&oacute;dulo de agentes"
			break
		}
		case 5 : 
		{
			// Mensaje de Ayuda de Modulo gestion econominca
			msg="Euskera: Este es el texto de ayuda para el m&oacute;dulo de gesti&oacute;n econ&oacute;mica<br>Este es el texto de ayuda para el m&oacute;dulo de gesti&oacute;n econ&oacute;mica"
			break
		}
		case 6 : 
		{
			// Mensaje de Ayuda de Modulo indicadores
			msg="Euskera: Este es el texto de ayuda para el m&oacute;dulo de indicadores<br>Este es el texto de ayuda para el m&oacute;dulo de indicadores"
			break
		}
		case 7 : 
		{
			// Mensaje de Ayuda de Asignacion Responsable
			msg="Euskera: Este es el texto de ayuda para la asignaci&oacute;n de responsables<br>Este es el texto de ayuda para la asignaci&oacute;n de responsables"
			break
		}
		case 8 : 
		{
			// Mensaje de Ayuda de Asignacion de agentes
			msg="Euskera: Este es el texto de ayuda para la asignaci&oacute;n de agentes<br>Este es el texto de ayuda para la asignaci&oacute;n de agentes"
			break
		}
		case 9 : 
		{
			// Mensaje de Ayuda de Asignacion de destinatarios
			msg="Euskera: Este es el texto de ayuda para la asignaci&oacute;n de destinatarios<br>Este es el texto de ayuda para la asignaci&oacute;n de destinatarios"
			break
		}
		case 10 : 
		{
			// Mensaje de Ayuda de partidas.
			msg="Euskera: Este es el texto de ayuda para la asignaci&oacute;n de partidas<br>Este es el texto de ayuda para la asignaci&oacute;n de partidas"
			break
		}
		case 11 : 
		{
			// Mensaje de Ayuda de Asignacion de Indicadores (solo los de nivel)
			msg="Euskera: Este es el texto de ayuda para la asignaci&oacute;n de indicadores (solo los de nivel)<br>Este es el texto de ayuda para la asignaci&oacute;n de indicadores (solo los de nivel)"
			break
		}
		case 12 : 
		{
			// Mensaje de Ayuda de Asignacion de IndicadoresMadre (los de nivel + los generales)
			msg="Euskera: Este es el texto de ayuda para la asignaci&oacute;n de indicadores de nivel e indicadores generales<br>Este es el texto de ayuda para la asignaci&oacute;n de indicadores de nivel e indicadores generales"
			break
		}
		case 13 : 
		{
			// Mensaje de Ayuda de Hitos
			msg="Euskera: Este es el texto de ayuda para los Hitos<br>Este es el texto de ayuda para los Hitos"
			break
		}
		case 14 : 
		{
			// Mensaje de Ayuda de Asignacion de Persona
			msg="Euskera: Este es el texto de ayuda para la asignaci&oacute;n de personas<br>Este es el texto de ayuda para la asignaci&oacute;n de personas"
			break
		}
		case 15 : 
		{
			// Mensaje de Ayuda de Asignacion de Recurso
			msg="Euskera: Este es el texto de ayuda para la asignaci&oacute;n de recursos<br>Este es el texto de ayuda para la asignaci&oacute;n de recursos"
			break
		}
	
		default :
		msg="Euskera: No disponible ayuda<br>No disponible ayuda"
	}
}

document.getElementById('lblAyuda').innerHTML=msg
}




function swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function swapImage() { //v3.0
  var i,j=0,x,a=swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}


function cambio_idioma(idioma) {

var TagSpan 
var Capa
TagSpan = document.getElementsByTagName("span")

	for (Capa=0; Capa<TagSpan.length; Capa++){
		objeto_actual = TagSpan[Capa]
		objeto_id = objeto_actual.id
		//izquierda = objeto_id.substring(0,5)
		
		// si el idioma es castellano (idioma=0) se ponen todas las 'span' 
		// que comiencen por '__eu_' invisibles y la que comiencen por '__ca_ visibles'
		if (idioma==0){
			if (objeto_id.search("__eu_") >= 0){
				//objeto_actual.style.visibility="hidden"
				objeto_actual.className="panel_absolute_invisible"
				
			}
						
		}	
		// si el idioma es euskera (idioma=1) se ponen todas las 'span' 
		// que comiencen por '__eu_' visibles y la que comiencen por '__ca_ invisibles'
		else if (idioma==1){
			if (objeto_id.search("__eu_") >= 0){
				//objeto_actual.style.visibility="visible"
				objeto_actual.className="panel_absolute"
			}
			else if (objeto_id.search("__ca_") >= 0){
				//objeto_actual.style.visibility="hidden"
				objeto_actual.className="panel_invisible"
				
			}
			else if (objeto_id.search("__lbl_") >= 0){
				//objeto_actual.style.visibility="hidden"
				objeto_actual.className="panel_absolute"
				
			}
		}	
	}

}


function abrirPopUp(codigoPopUp, idioma){
var ventanaAyuda
var height_ventana = 200
var width_ventana = 250
var left_ventana = (screen.availWidth / 2)-(width_ventana / 2)
var top_ventana = (screen.availHeight / 2)-(height_ventana / 2)
ventanaAyuda=window.open("Popup.aspx?codigoPopUp=" + codigoPopUp + "&idioma=" + idioma,"Infor","height=" + height_ventana + ",width=" + width_ventana + ",left=" + left_ventana + ",top=" + top_ventana + ",toolbar=no,resizable=no,scrollbars=yes,menu=no,location=no,status=no")

ventanaAyuda.focus()

//estado = event.flatIndex

}

function ancho_imagenes(){
var anchuraImagen
var alturaImagen
var anchuraImagenMaxima=350
var factorEscalaAltura
var alturaImagenMaxima=550

var PrimeraAnchuraImagenMaxima=250
var PrimeraFactorEscalaAltura
var PrimeraAlturaImagenMaxima=450

	anchuraImagen=document.getElementById("VisorMenuConocer_imgPrimera").width
	alturaImagen=document.getElementById("VisorMenuConocer_imgPrimera").height
	if (anchuraImagen>=PrimeraAnchuraImagenMaxima){
		PrimeraFactorEscalaAltura=PrimeraAnchuraImagenMaxima/anchuraImagen
		document.getElementById("VisorMenuConocer_imgPrimera").height=alturaImagen*PrimeraFactorEscalaAltura
		alturaImagen=alturaImagen*PrimeraFactorEscalaAltura
		document.getElementById("VisorMenuConocer_imgPrimera").width=PrimeraAnchuraImagenMaxima	
		anchuraImagen=PrimeraAnchuraImagenMaxima	
	}
	if (alturaImagen>=PrimeraAlturaImagenMaxima){
		PrimeraFactorEscalaAnchura=PrimeraAlturaImagenMaxima/alturaImagen
		document.getElementById("VisorMenuConocer_imgPrimera").width=anchuraImagen*PrimerafactorEscalaAnchura
		document.getElementById("VisorMenuConocer_imgPrimera").height=PrimeraAlturaImagenMaxima	
		anchuraImagen=anchuraImagen*PrimeraFactorEscalaAnchura	
		alturaImagen=PrimeraAlturaImagenMaxima	
	}

	for (var i = 0; i < VisorMenuConocer_DataListImagenes.rows.length; i++){
		anchuraImagen=document.getElementById("VisorMenuConocer_DataListImagenes__ctl" + i + "_image").width
		alturaImagen=document.getElementById("VisorMenuConocer_DataListImagenes__ctl" + i + "_image").height
		if (anchuraImagen>=anchuraImagenMaxima){
			factorEscalaAltura=anchuraImagenMaxima/anchuraImagen
			document.getElementById("VisorMenuConocer_DataListImagenes__ctl" + i + "_image").height=alturaImagen*factorEscalaAltura
			alturaImagen=alturaImagen*factorEscalaAltura
			document.getElementById("VisorMenuConocer_DataListImagenes__ctl" + i + "_image").width=anchuraImagenMaxima	
			anchuraImagen=anchuraImagenMaxima	
		}
		if (alturaImagen>=alturaImagenMaxima){
			factorEscalaAnchura=alturaImagenMaxima/alturaImagen
			document.getElementById("VisorMenuConocer_DataListImagenes__ctl" + i + "_image").width=anchuraImagen*factorEscalaAnchura
			document.getElementById("VisorMenuConocer_DataListImagenes__ctl" + i + "_image").height=alturaImagenMaxima	
			anchuraImagen=anchuraImagen*factorEscalaAnchura	
			alturaImagen=alturaImagenMaxima	
		}	
	}	
	
}

