var mensaje_error_alert = "";

function esta_chequeado(campo_formulario,alerta)
{	
	var error = 0;
	mensaje_error_alert = "";
	if (campo_formulario.type == "checkbox")
	{
		if (campo_formulario.checked == true)
		{
			error = 1;
		}
	}
	else
	{
		var i = 0;
		
		while (campo_formulario[i])
		{
			if (campo_formulario[i].checked == true)
			{
				error = 1;
				break;
			}
			i++;
		}
	}
	
	if ((error == 0) && alerta)
	{
		if (mensaje_error_alert == "")
		{
			mensaje_error_alert = alerta;
		}
	}
	
	return error;
}

function es_valido_campo_texto(campo_formulario,alerta_vacio,alerta_vocal,cantidad_carecteres_minimo,cantidad_caracteres_maximo,alerta_minimo,alerta_maximo)
{
	var salida = 0;
	mensaje_error_alert = "";
	if (campo_formulario)
	{
		if (campo_formulario.value == "")
		{
			if ((mensaje_error_alert == "") && alerta_vacio)
			{
				campo_formulario.focus();
				mensaje_error_alert = alerta_vacio;
			}
		}
		else if (!tiene_cantidad_de_caracteres_validos(campo_formulario,cantidad_caracteres_maximo,'1'))
		{
			if (mensaje_error_alert == "")
			{
				campo_formulario.focus();
				mensaje_error_alert = alerta_maximo;
			}
		}
		else if (!tiene_cantidad_de_caracteres_validos(campo_formulario,cantidad_carecteres_minimo,'0'))
		{
			if (mensaje_error_alert == "")
			{
				campo_formulario.focus();
				mensaje_error_alert = alerta_minimo;
			}
		}
		else if (!tiene_vocal(campo_formulario) && alerta_vocal)
		{
			if (mensaje_error_alert == "")
			{
				campo_formulario.focus();
				mensaje_error_alert = alerta_vocal;
			}
		}
		else
		{
			salida = 1;
		}
	}
	else
	{
		salida = 1;
	}
	
	return salida;
}

function establecer_valor(nombre_formulario,nombre_campo,valor,separador_varios_checkbox)
{
	//*****  FUNCION SOLO PARA TIPO DE CAMPOS RADIO, CHEQUED Y SELECT  *****//
	var i = 0;
	var campo_formulario = document[nombre_formulario];
	campo_formulario = campo_formulario[nombre_campo];
	
	
	if (!campo_formulario.type)
	{
		var tipo_campo = campo_formulario[i].type;
	}
	else
	{
		var tipo_campo = campo_formulario.type;
	}
	
//	alert(nombre_campo+": es de tipo \""+tipo_campo+"\"");
	
	if (tipo_campo == "radio")
	{
		while (campo_formulario[i])
		{
			if (campo_formulario[i].value == valor)
			{
				campo_formulario[i].checked = true;
				break;
			}
			i++;
		}
	}
	else if (tipo_campo == "checkbox")
	{
		if (separador_varios_checkbox)
		{
			var valor_campo = campo_formulario.value;
			var valor = String(valor);
			valor = valor.split(separador_varios_checkbox);
			var j = 0;
			var valor_tmp = "";
			
			while (j < valor.length)
			{
				valor_tmp = trim(valor[j]);
				if (campo_formulario.value == valor_tmp)
				{
					campo_formulario.checked = true;
					break;
				}
				j++;
			}
		}
		else
		{
			if (campo_formulario.value == valor)
			{
				campo_formulario.checked = true;
			}
		}		
	}
	else if (tipo_campo == "text")
	{
		campo_formulario.value = valor;
	}
	else
	{
		while (i < campo_formulario.options.length)
		{
			if (campo_formulario.options[i].value == valor)
			{
				campo_formulario.options[i].selected = true;
				break;
			}
			i++;
		}
	}
}

function tiene_vocal(campo_formulario)
{
	var salida = 1;
	var nom = new String(campo_formulario.value);
	nom = nom.toLowerCase()
	if (nom.indexOf("a")<0 && nom.indexOf("e")<0 && nom.indexOf("i")<0 && nom.indexOf("o")<0 && nom.indexOf("u")<0)
	{
		salida = 0;
	}
	
	return salida;
}

function tiene_cantidad_de_caracteres_validos(campo_formulario,cantidad,max_o_min)
{
	// SI ES MAXIMO DE CARACTERES max_o_min=1 Y SI ES EL MINIMO max_o_min=0
	var salida = 1;
	var nom = new String(campo_formulario.value);
	
	if ((cantidad >= 0) && (cantidad != ""))
	{
		if (max_o_min == 1)  //MAXIMO DE CARACTERES
		{
			if (nom.length > cantidad)
			{
				salida = 0;
			}
		}
		else //MINIMO DE CARACTERES
		{
			if (nom.length < cantidad)
			{
				salida = 0;
			}
		}
	}
	
	return salida;
}


function email_valido(campo_formulario,alerta)  // Devuelve 'true' si el formato es correcto de lo contrario devuelve 'false'
{
	var devuelve = true;
	var cadena_mail = new String(campo_formulario.value);
	mensaje_error_alert = "";
			
	var ext = cadena_mail.substring(cadena_mail.lastIndexOf("."),cadena_mail.length);
	if (ext.length>1 && ext.length<5)
	{	
		var template = /^[a-z][a-z-_0-9.]+@[a-z-_=>0-9.]+.[a-z]{2,3}$/i //Formato de direccion de correo electronico
		if (template.test(cadena_mail) == 0)
		{
			devuelve = false;
		}
	}
	else
	{
		devuelve = false;
	}
	
	if (!devuelve)
	{
		if ((mensaje_error_alert == "") && alerta)
		{
			campo_formulario.focus();
			mensaje_error_alert = alerta;
		}
	}
	
	return devuelve;
}

function trim(inputString)
{	
	if (typeof inputString != "string") 
		return inputString;

	var retValue = inputString;
	var ch = retValue.substring(0, 1);
	
	while (ch == " ")
	{ 
		retValue = retValue.substring(1, retValue.length);
		ch = retValue.substring(0, 1);
	}
	
	ch = retValue.substring(retValue.length-1, retValue.length);
	
	while (ch == " ")
	{ 
		retValue = retValue.substring(0, retValue.length-1);
		ch = retValue.substring(retValue.length-1, retValue.length);
	}
	
	while (retValue.indexOf("  ") != -1)
	{ 
		retValue = retValue.substring(0, retValue.indexOf("  ")) + retValue.substring(retValue.indexOf("  ")+1, retValue.length); 
	}
	return retValue; 
}

function es_numerico(campo_formulario)
{
	var salida = 1;	
	if (isNaN(campo_formulario.value) == true)
		salida = 0;
	
	return salida;
}  

function quitar_comitas(campo_formulario)
{
	var campo = campo_formulario.value;
	
	campo = campo.replace( /\'/g,'"');
	
	campo_formulario.value = campo;
}

//********************************************// 
//**********  COMPROVACION DEL DNI  **********//
function es_nif_correcto(nif)
{
	lon = nif.length;
	
	if (lon<6) return false
	
	letraDNI = nif.charAt(lon-1)
	letraDNI = letraDNI.toUpperCase()
	dni = nif.substring(0,lon-1)
	
	if(isNaN(dni))
		return(false)
	else
	{
		letraCorrecta = letraNif(dni)
		
		if (letraDNI != letraCorrecta)
			return(false)
		else
			return(true)
	}
}

function letraNif(dni) //calculo letra del nif
{
	var asc
	asc= dni % 23;
	
	if ( asc == 0) { letra="T"; };
	if ( asc == 1) { letra="R"; };
	if ( asc == 2) { letra="W"; };
	if ( asc == 3) { letra="A"; };
	if ( asc == 4) { letra="G"; };
	if ( asc == 5) { letra="M"; };
	if ( asc == 6) { letra="Y"; };
	if ( asc == 7) { letra="F"; };
	if ( asc == 8) { letra="P"; };
	if ( asc == 9) { letra="D"; };
	if ( asc == 10) { letra="X"; };
	if ( asc == 11) { letra="B"; };
	if ( asc == 12) { letra="N"; };
	if ( asc == 13) { letra="J"; };
	if ( asc == 14) { letra="Z"; };
	if ( asc == 15) { letra="S"; };
	if ( asc == 16) { letra="Q"; };
	if ( asc == 17) { letra="V"; };
	if ( asc == 18) { letra="H"; };
	if ( asc == 19) { letra="L"; };
	if ( asc == 20) { letra="C"; };
	if ( asc == 21) { letra="K"; };
	if ( asc == 22) { letra="E"; };
	if ( asc == 23) { letra="T"; };

	return letra;
}
//********************************************//
//********************************************//

function reemplazar_caracteres_especiales(campo_formulario,tipo) //***** SE COLOCA TIPO=0 o TIPO=1
{

	var REAcentos = new Array();
	var arrAcutes = new Array();
	
	REAcentos[0]="á";
	REAcentos[1]="é";
	REAcentos[2]="í";
	REAcentos[3]="ó";
	REAcentos[4]="ú";
	REAcentos[5]="Á";
	REAcentos[6]="É";
	REAcentos[7]="Í";
	REAcentos[8]="Ó";
	REAcentos[9]="Ú";
	REAcentos[10]="ñ";
	REAcentos[11]="Ñ";
	REAcentos[12]="ä";
	REAcentos[13]="ë";
	REAcentos[14]="ï";
	REAcentos[15]="ö";
	REAcentos[16]="ü";
	REAcentos[17]="Ä";
	REAcentos[18]="Ë";
	REAcentos[19]="Ï";
	REAcentos[20]="Ö";
	REAcentos[21]="Ü";
	
	arrAcutes[0]="&aacute;";
	arrAcutes[1]="&eacute;";
	arrAcutes[2]="&iacute;";
	arrAcutes[3]="&oacute;";
	arrAcutes[4]="&uacute;";
	arrAcutes[5]="&Aacute;";
	arrAcutes[6]="&Eacute;";
	arrAcutes[7]="&Iacute;";
	arrAcutes[8]="&Oacute;";
	arrAcutes[9]="&Uacute;";
	arrAcutes[10]="&ntilde;";
	arrAcutes[11]="&Ntilde;";
	arrAcutes[12]="&auml;";
	arrAcutes[13]="&euml;";
	arrAcutes[14]="&iuml;";
	arrAcutes[15]="&ouml;";
	arrAcutes[16]="&uuml;";
	arrAcutes[17]="&Auml;";
	arrAcutes[18]="&Euml;";
	arrAcutes[19]="&Iuml;";
	arrAcutes[20]="&Ouml;";
	arrAcutes[21]="&Uuml;";
	
	var i = 0;
	var caracter_original = "";
	var caracter_a_reemplazar = "";
	
	var valor_campo = String(campo_formulario.value);
	var expresion = "";
	if (tipo == 0)
	{
		valor_campo = valor_campo.replace(/\"/g,"'");
		valor_campo = valor_campo.replace(/\r\n/g,"<br>");
		
		while (i <= 21)
		{
			caracter_original = REAcentos[i];
			caracter_a_reemplazar = arrAcutes[i];
			
			expresion = "valor_campo = valor_campo.replace(/"+caracter_original+"/g,'"+caracter_a_reemplazar+"');";
			
			eval(expresion);
			
			i++;
		}
	}
	else
	{
		valor_campo = valor_campo.replace(/<br>/g,'\r\n');
		
		while (i <= 21)
		{
			caracter_original = arrAcutes[i];
			caracter_a_reemplazar = REAcentos[i];
			
			expresion = "valor_campo = valor_campo.replace(/"+caracter_original+"/g,'"+caracter_a_reemplazar+"');";
			
			eval(expresion);
		
			i++;
		}
	}
	
	campo_formulario.value = valor_campo;
}

function escribirCookie(name, value, hours)
{
  var expire = "";
  if(hours != null)
  {
    expire = new Date((new Date()).getTime() + hours * 3600000);
    expire = "; expires=" + expire.toGMTString();
  }
  document.cookie = name + "=" + escape(value) + expire;
}
// Example:
// alert( readCookie("myCookie") );
function leerCookie(name)
{
  var cookieValue = "";
  var search = name + "=";
  if(document.cookie.length > 0)
  { 
    offset = document.cookie.indexOf(search);
    if (offset != -1)
    { 
      offset += search.length;
      end = document.cookie.indexOf(";", offset);
      if (end == -1) end = document.cookie.length;
      cookieValue = unescape(document.cookie.substring(offset, end))
    }
  }
  return cookieValue;
}

function reemplazar_acutes(texto){
	texto = String(texto);
	texto = texto.replace(/&aacute;/g,"á");
	texto = texto.replace(/&eacute;/g,"é");
	texto = texto.replace(/&iacute;/g,"í");
	texto = texto.replace(/&oacute;/g,"ó");
	texto = texto.replace(/&uacute;/g,"ú");
	
	texto = texto.replace(/&Aacute;/g,"Á");
	texto = texto.replace(/&Eacute;/g,"É");
	texto = texto.replace(/&Iacute;/g,"Í");
	texto = texto.replace(/&Oacute;/g,"Ó");
	texto = texto.replace(/&Uacute;/g,"Ú");
	
	texto = texto.replace(/&Ntilde;/g,"Ñ");
	texto = texto.replace(/&ntilde;/g,"ñ");
	
	return texto;
}