/*
 * Funcion que se pone en el onkeypress de un input.
 * Ejemplo:
 * <input name="mivalor" id="mivalor" type="text" onKeyPress="return aceptaEnteros(event);" >
 * -Sólo permitirá rellenar el input con numeros enteros
 */
function aceptaEnteros(e){
	if(window.event){// IE
		keynum = e.keyCode;
	}else if(e.which){ // Netscape/Firefox/Opera
		keynum = e.which;
	}
	if ( (keynum > 47 && keynum < 58) || keynum == 8){
		return true;
	}else{ 
		return false;
	}
}


/*
 * Funcion que se pone en el onkeypress de un input.
 * Ejemplo:
 * <input name="mivalor" id="mivalor" type="text" onKeyPress="return aceptaDecimales(event, 'mivalor');" >
 * -Sólo permitirá rellenar el input con numeros y 1 sóla coma "," (keynum = 44)
 */

function aceptaDecimales(e, campo_id){
	if(window.event){// IE
		keynum = e.keyCode;
	}else if(e.which){ // Netscape/Firefox/Opera
		keynum = e.which;
	}
//	alert(keynum);
	var contenido = document.getElementById(campo_id).value;
//	alert(contenido.length);
	if ( (keynum > 47 && keynum < 58) || keynum == 8){
		return true;
	}else{ 
		if(keynum == 44){ //si es la coma
			//alert("es una coma");
			var i;
			//si ya hay numeros en el campo, ponemos la coma
			if (contenido.length > 0){
				for(i=0; i<contenido.length; i++){
			//		alert(contenido.charAt(i));
					if (contenido.charAt(i) == ","){
		//				alert("ya hay una coma");
						return false;
					}
				}
	//			alert("no habian comas");
				return true;
			}else{
				document.getElementById(campo_id).value = "0";
				return true;
			}
		}
		return false;
	}

}

/**
* funcion para comprobar si una año es bisiesto
* argumento anyo > año extraido de la fecha introducida por el usuario
*/
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;
			}else{
				/**
				* si es divisible por 4 y por 100 pero no lo es por 400 > no es bisiesto
				*/
				return false;
			}
		}else{
			/**
			* si es divisible por 4 y no es divisible por 100 > el año es bisiesto
			*/
			return true;
		}
	}
}

/**
* funcion principal de validacion de la fecha
* argumento fecha > cadena de texto de la fecha introducida por el usuario
*/
function validaFecha(dia, mes, anyo){
	if( (isNaN(dia)==true) || (isNaN(mes)==true) || (isNaN(anyo)==true) ){
		alert("La fecha introducida debe estar formada sólo por números");
		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)){
		alert("El mes introducido no es valido. Por favor, introduzca un mes correcto");
		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))){
		alert("El dia introducido no es valido. Por favor, introduzca un dia correcto");
		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))){
		alert("El dia introducido no es valido. Por favor, introduzca un dia correcto");
		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))){
		alert("El dia introducido no es valido. Por favor, introduzca un dia correcto");
		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<1900) || (anyo>2010))
	{
	alert("El año introducido no es valido. Por favor, introduzca un año entre 1900 y 2010");
	document.forms[0].fecha.focus();
	document.forms[0].fecha.select();
	}*/
	/**
	* en caso de que todo sea correcto > enviamos los datos del formulario
	* para ello debeis descomentar la ultima sentencia
	*/
	else return true
} 
/*****************************************************************************************************************************/

function validacion_ayuda(tipo_ayuda){
	var hay_error = false;
	var error_msg = "Se han encontrado los siguientes errores:\n\n";
	var ext_permitidas_imagenes = new Array(".gif", ".jpg");
	var ext_permitidas_descargas = new Array(".zip", ".rar", ".pdf", ".doc");
	
	//comprobamos los datos del usuario que rellena el formulario
	if ($F('ayu_nombre').length == 0) {
		hay_error = true;
		error_msg += " -Debe introducir su nombre.\n\n";
	}
	
	if ($F('ayu_telefono').length == 0) {
		hay_error = true;
		error_msg += " -Debe introducir su teléfono.\n\n";
	}
	
	if ($F('ayu_email').length == 0) {
		hay_error = true;
		error_msg += " -Debe introducir su email.\n\n";
	}else{
		if(!validarEmail($F('ayu_email'))){
			hay_error = true;
			error_msg += " -Su email de contacto no es válido.\n\n";
		}
	}
	
	if ($F('ayu_fuente').length == 0) {
		hay_error = true;
		error_msg += " -Debe introducir la fuente de la información.\n\n";
	}
	
	//comprobamos los datos del formulario
	switch(tipo_ayuda){
		case 'articulo':
		
			if ($F('art_tart_id').length == 0) {
				hay_error = true;
				error_msg += " -Debe especificar una categoría.\n\n";
			}
			if ($F('art_prov_id').length == 0) {
				hay_error = true;
				error_msg += " -Debe especificar una provincia.\n\n";
			}
			if ($F('art_titulo').length == 0) {
				hay_error = true;
				error_msg += " -Debe introducir un título.\n\n";
			}
			if ($F('art_resumen').length == 0) {
				hay_error = true;
				error_msg += " -Debe introducir un resumen.\n\n";
			}
			if ($F('art_texto').length == 0) {
				hay_error = true;
				error_msg += " -Debe introducir un texto.\n\n";
			}
			
			if ($F('imagen1').length > 0){
				if(!extensionValida($F('imagen1'), ext_permitidas_imagenes)){
					hay_error = true;
					error_msg += " -Sólo se pueden subir imágenes con extensiones: " + ext_permitidas_imagenes.join()+"\n\n";
				}
			}
			
			if ($F('descarga1').length > 0){
				if(!extensionValida($F('descarga1'), ext_permitidas_descargas	)){
					hay_error = true;
					error_msg += " -Sólo se pueden subir descargas con extensiones: " + ext_permitidas_descargas.join()+"\n\n";
				}
			}

			
			break;
			
		case 'noticia':
			if ($F('not_tnot_id').length == 0) {
				hay_error = true;
				error_msg += " -Debe especificar una categoría.\n\n";
			}
			if ($F('not_prov_id').length == 0) {
				hay_error = true;
				error_msg += " -Debe especificar una provincia.\n\n";
			}
			if ($F('not_titular').length == 0) {
				hay_error = true;
				error_msg += " -Debe introducir un titular.\n\n";
			}
			if ($F('not_entradilla').length == 0) {
				hay_error = true;
				error_msg += " -Debe introducir una entradilla.\n\n";
			}
			if ($F('not_texto').length == 0) {
				hay_error = true;
				error_msg += " -Debe introducir un texto.\n\n";
			}
			if ($F('imagen1').length > 0){
				if(!extensionValida($F('imagen1'), ext_permitidas_imagenes)){
					hay_error = true;
					error_msg += " -Sólo se pueden subir imágenes con extensiones: " + ext_permitidas_imagenes.join()+"\n\n";
				}
			}
			
			break;
			
		case 'evento':
			if ($F('eve_teve_id').length == 0) {
				hay_error = true;
				error_msg += " -Debe especificar una categoría.\n\n";
			}
			if (($F('d_ini').length == 0) || ($F('m_ini').length == 0) || ($F('a_ini').length == 0) || ($F('d_ini') > 31) || ($F('d_ini') <= 0) || ($F('m_ini') <= 0) || ($F('m_ini') > 12) ){
				hay_error = true;
				error_msg += " -Debe introducir una fecha de inicio correcta.\n\n";
			}
			if (($F('d_fin').length == 0) || ($F('m_fin').length == 0) || ($F('a_fin').length == 0) || ($F('d_fin') > 31) || ($F('d_fin') <= 0) || ($F('m_fin') <= 0) || ($F('m_fin') > 12)) {
				hay_error = true;
				error_msg += " -Debe introducir una fecha de fin correcta.\n\n";
			}			
			if ($F('eve_prov_id').length == 0) {
				hay_error = true;
				error_msg += " -Debe especificar una provincia.\n\n";
			}
			if ($F('eve_titulo').length == 0) {
				hay_error = true;
				error_msg += " -Debe introducir un titulo.\n\n";
			}
			
			if ($F('eve_lugar').length == 0) {
				hay_error = true;
				error_msg += " -Debe introducir un lugar.\n\n";
			}
			if ($F('eve_resumen').length == 0) {
				hay_error = true;
				error_msg += " -Debe introducir un resumen.\n\n";
			}
			if ($F('eve_descripcion').length == 0) {
				hay_error = true;
				error_msg += " -Debe introducir una descripción.\n\n";
			}			
			if ($F('imagen1').length > 0){
				if(!extensionValida($F('imagen1'), ext_permitidas_imagenes)){
					hay_error = true;
					error_msg += " -Foto 1: Sólo se pueden subir imágenes con extensiones: " + ext_permitidas_imagenes.join()+"\n\n";
				}
			}
			if ($F('imagen2').length > 0){
				if(!extensionValida($F('imagen2'), ext_permitidas_imagenes)){
					hay_error = true;
					error_msg += " -Foto 2: Sólo se pueden subir imágenes con extensiones: " + ext_permitidas_imagenes.join()+"\n\n";
				}
			}
			break;
			
		case 'enlace':
			if ($F('enl_tenl_id').length == 0) {
				hay_error = true;
				error_msg += " -Debe especificar una categoría.\n\n";
			}
			if ($F('enl_descripcion').length == 0) {
				hay_error = true;
				error_msg += " -Debe introducir una descripción.\n\n";
			}
			if ($F('enl_link').length < 8) {
				hay_error = true;
				error_msg += " -Debe introducir un enlance.\n\n";
			}
			if ($F('imagen1').length > 0){
				if(!extensionValida($F('imagen1'), ext_permitidas_imagenes)){
					hay_error = true;
					error_msg += " -Foto: Sólo se pueden subir imágenes con extensiones: " + ext_permitidas_imagenes.join()+"\n\n";
				}
			}
			break;
			
		case 'servicio':
			if ($F('serv_tserv_id').length == 0) {
				hay_error = true;
				error_msg += " -Debe especificar una categoría.\n\n";
			}
			if ($F('serv_nombre').length < 0) {
				hay_error = true;
				error_msg += " -Debe introducir un nombre.\n\n";
			}			
			if ($F('serv_prov_id').length == 0) {
				hay_error = true;
				error_msg += " -Debe especificar una provincia.\n\n";
			}
			if ($F('serv_poblacion').length == 0) {
				hay_error = true;
				error_msg += " -Debe introducir una población.\n\n";
			}			
			if ($F('serv_cp').length == 0) {
				hay_error = true;
				error_msg += " -Debe introducir un código postal.\n\n";
			}
			if ($F('serv_direccion').length == 0) {
				hay_error = true;
				error_msg += " -Debe introducir una dirección.\n\n";
			}
			if ($F('serv_telefono').length == 0) {
				hay_error = true;
				error_msg += " -Debe introducir un teléfono.\n\n";
			}
			if ($F('serv_email').length == 0) {
				hay_error = true;
				error_msg += " -Debe introducir un email.\n\n";
			}else{
				if(!validarEmail($F('serv_email'))){
					hay_error = true;
					error_msg += " -El email introducido no es válido.\n\n";
				}
			}
			if ($F('serv_web').length == 0) {
				hay_error = true;
				error_msg += " -Debe introducir un web.\n\n";
			}
			if ($F('serv_resumen').length == 0) {
				hay_error = true;
				error_msg += " -Debe introducir un resumen.\n\n";
			}
			if ($F('serv_descripcion').length == 0) {
				hay_error = true;
				error_msg += " -Debe introducir una descripción.\n\n";
			}
			if ($F('imagen1').length > 0){
				if(!extensionValida($F('imagen1'), ext_permitidas_imagenes)){
					hay_error = true;
					error_msg += " -Foto 1: Sólo se pueden subir imágenes con extensiones: " + ext_permitidas_imagenes.join()+"\n\n";
				}
			}
			if ($F('imagen2').length > 0){
				if(!extensionValida($F('imagen2'), ext_permitidas_imagenes)){
					hay_error = true;
					error_msg += " -Foto 2: Sólo se pueden subir imágenes con extensiones: " + ext_permitidas_imagenes.join()+"\n\n";
				}
			}
			if ($F('imagen3').length > 0){
				if(!extensionValida($F('imagen3'), ext_permitidas_imagenes)){
					hay_error = true;
					error_msg += " -Foto 3: Sólo se pueden subir imágenes con extensiones: " + ext_permitidas_imagenes.join()+"\n\n";
				}
			}
			break;
	}
	if (hay_error){
		alert(error_msg);
		return false
	}else{
		return true;
	}	
}

//dice si un email es valido o no
function validarEmail(email){
	return /^[a-zA-Z0-9_\-]+(\.[a-zA-Z0-9_\-]+)*@[a-zA-Z0-9_\-]+(\.[a-zA-Z0-9_\-]+)+$/.test(email);
}//validarEmail

function extensionValida(archivo, extensiones_permitidas) {
   //extensiones_permitidas = new Array(".gif", ".jpg", ".doc", ".pdf");
   mierror = "";
   if (!archivo) {
      //Si no tengo archivo, es que no se ha seleccionado un archivo en el formulario
       //mierror = "No has seleccionado ningún archivo";
	   return true;
   }else{
      //recupero la extensión de este nombre de archivo
      extension = (archivo.substring(archivo.lastIndexOf("."))).toLowerCase();
      //alert (extension);
      //compruebo si la extensión está entre las permitidas
      permitida = false;
      for (var i = 0; i < extensiones_permitidas.length; i++) {
         if (extensiones_permitidas[i] == extension) {
			 permitida = true;
			 break;
         }
      }
      if (!permitida) {
		 /*mierror = false;
         mierror = "Sólo se pueden subir archivos con extensiones: " + extensiones_permitidas.join();*/
		 return false;
       }else{
  	     return true;
		//todo correcto
       }
   }
} 



function dateToSQL(date){
	if (date.length==0){
		return '';
	}
	var a=date.split(' '); //separamos la fecha de la hora
	var parteFecha=a[0].split('-'); //
	var sqlDate=parteFecha[2]+'-'+parteFecha[1]+'-'+parteFecha[0]+' 00:00:00';
	return sqlDate;
}

function ratonEncima(id, estilo)
{
	var celda=document.getElementById(id);
	celda.className=estilo;
}

function ratonFuera(id, estilo)
{
	var celda=document.getElementById(id);
	celda.className=estilo;
}

function myAlert(x)
{
	alert(decodeText(x));
}
function seleccionar_todo2(prefix)
{
   var lprefix=prefix.length;
//   alert("Long de "+prefix+"="+lprefix);
   for (i=0; i<document.forms[0].elements.length; i++)
   {
      if(document.forms[0].elements[i].type == "checkbox")
      {
      	var name=document.forms[0].elements[i].name;
      	if (name.substr(0,lprefix) == prefix)
         document.forms[0].elements[i].checked=1;
       }
	}
}
function deseleccionar_todo2(prefix)
{
   var lprefix=prefix.length;
  // alert("Long de "+prefix+"="+lprefix);
   for (i=0; i<document.forms[0].elements.length; i++)
   {
      if(document.forms[0].elements[i].type == "checkbox")
      {
      	var name=document.forms[0].elements[i].name;
      	if (name.substr(0,lprefix) == prefix)
         document.forms[0].elements[i].checked=0;
       }
	}
}
function seleccionar_todo(form_name)
{
   for (i=0; i<document.forms[form_name].elements.length; i++)
   {
      if(document.forms[form_name].elements[i].type == "checkbox")
         document.forms[form_name].elements[i].checked=1;
	}
}
function deseleccionar_todo(form_name){
   for (i=0; i<document.forms[form_name].elements.length; i++)
      if(document.forms[form_name].elements[i].type == "checkbox")
         document.forms[form_name].elements[i].checked=0;
}


