function validarCampoForm (regexpTipo, texto, tamMax, tamMin, error, textoError)
{
	var textoErrorExtra = "";
	
	switch (regexpTipo)
	{
		case "mail":
			regexp = /^([_a-z0-9-]+)(\.[_a-z0-9-]+)*@([a-z0-9-]+)(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/;
		break;
		
		case "textoCorto":
			regexp = /^([0-9]|[a-zA-Z]|\'|\.|\,| |ñ|Ñ|á|é|í|ó|ú|Á|É|Í|Ó|Ú|ä|ë|ï|ö|ü|Ä|Ë|Ï|Ö|Ü)*$/;
		break;
		
		case "textoMedio":
			regexp = /^([0-9]|[a-zA-Z]|\"|\'|\,| |_|\.|-|ñ|Ñ|á|é|í|ó|ú|Á|É|Í|Ó|Ú|ä|ë|ï|ö|ü|Ä|Ë|Ï|Ö|Ü)*$/;
		break;
		
		case "textoLargo":
			regexp = /^([0-9]|[a-zA-Z]|\"|\'|\,|\;| |\(|\)|_|\/|\.|\r|\n|\t|#|:|\?|¿|¡|\!|-|ñ|Ñ|á|é|í|ó|ú|Á|É|Í|Ó|Ú|ä|ë|ï|ö|ü|Ä|Ë|Ï|Ö|Ü)*$/;
		break;
		
		case "telefono":
			regexp = /^(\+{0,1}[0-9]+){0,1}([0-9]+){0,1}([0-9]*)$/;
			textoErrorExtra = "(formato valido: +xxxxxx o xxxxxxx [x = numeros])";
		break;
		
		case "fechaAMD":
			regexp = /^(([0-9]){4}-([0-9]){2}-([0-9]){2})*$/;
		break;
		
		case "fechaDMA":
			regexp = /^(([0-9]){2}\/([0-9]){2}\/([0-9]){4})*$/;
			textoErrorExtra = "(formato valido: dd/mm/aaaa [d, m y a son numeros])";
		break;
		
		case "numeros":
			regexp = /^[0-9]*$/;
			textoErrorExtra = "(formato valido: solo numeros)";
		break;
		
		case "numerosDecimales":
			regexp = /^(([0-9])*(\.|\,)*([0-9]*))*$/;
			textoErrorExtra = "(formato valido: xxx o xx.xx o xx,xx [x = numeros])";
		break;
		
		case "linkWeb":
			//regexp = /^(http[s]?:\/\/(\w|_|-|\/)+[\.\w]+(\w|_|-|\?|\&|=|\/|\.)*)$/;
			regexp = /^(ftp|https|http):\/\/([a-zA-Z]|[0-9]|-|:|_|%)+((\.|\/)([a-zA-Z]|[0-9]|-|:|_|%)+)*(\.[a-zA-Z]{2,6})(\?([a-zA-Z]|[0-9]|-|:|_|%)+=([a-zA-Z]|[0-9]|-|:|_|%)+(&([a-zA-Z]|[0-9]|-|:|_|%)+=([a-zA-Z]|[0-9]|-|:|_|%)+)*)?$/i
			textoErrorExtra = "(formato ejemplo: http://www.dominio.com/)";
		break;
	}
	
	if (regexp != "" && (texto.search(regexp)))
		error = error + textoError + " --> Debe revisar la estructura y no debe utilizar caracteres especiales. "+textoErrorExtra+"\n\n";
	if (texto.length > tamMax)
		error = error + textoError + " --> El tamaño es mayor al permitido, (tamaño máximo permitido de caracteres es " + tamMax + ") [Tamaño actual " + texto.length + "]\n\n";
	if (texto.length < tamMin)
		error = error + textoError + " --> El tamaño es menor al permitido, (tamaño mínimo permitido de caracteres es " + tamMin + ") [Tamaño actual " + texto.length + "]\n\n";
	return error;
}

function trim(stringToTrim) {
	return stringToTrim.replace(/^\s+|\s+$/g,"");
}
function ltrim(stringToTrim) {
	return stringToTrim.replace(/^\s+/,"");
}
function rtrim(stringToTrim) {
	return stringToTrim.replace(/\s+$/,"");
}
function espaciosSeguidos(stringToTrim) {
	return stringToTrim.replace(/ +/," ");
}

/** Valida los campos de la busqueda noticias **/
function validarFBusquedaNot(form,tipo)
{
	var error = "";

	switch (tipo)
	{
		case 1:
			error = validarCampoForm ("textoMedio", trim(espaciosSeguidos(form.tituloContenidoNoticia.value)), 30, 3, error, "Palabras a Buscar (no debe estar vacio)");
		break;
	}

	if (error != "")
	{
		alert("Se han encontrado algunos inconvenientes con el llenado de los datos:\n\n"+error+"\n");
		return false;
	}
	return true;
}

/** Valida los campos de la recomendacion **/
function validarFormRecomendacion(form)
{
	var error = "";

	error = validarCampoForm ("textoCorto", trim(espaciosSeguidos(form.tellname.value)), 40, 3, error, "Tu Nombre (no debe estar vacio)");
	error = validarCampoForm ("mail", trim(espaciosSeguidos(form.tellemail.value)), 90, 10, error, "Tu E-Mail (no debe estar vacio)");
	error = validarCampoForm ("mail", trim(espaciosSeguidos(form.tellfriend.value)), 90, 10, error, "E-Mail de tu Amigo (no debe estar vacio)");

	if (error != "")
	{
		alert("Se han encontrado algunos inconvenientes con el llenado de los datos:\n\n"+error+"\n");
		return false;
	}
	return true;
}