///////////////////////////////////
//      Script general v1.0      //
//	 Ultima revisión: 27-9-2001  //
///////////////////////////////////

// Implementación OPERA v.5

function esNumero(texto,cadena) {
	for (i = 0; i < texto.length; i++) {
		var carac = texto.charAt(i);
		if (carac < "0" || carac > "9") {
			alert("Se han introducido en el campo '" + cadena + "' caracteres que no son números.");
			return false;	
		}
	}
	return true;
}

function esTelefono(texto,cadena) {
	for (i = 0; i < texto.length; i++) {
		var carac = texto.charAt(i);
		if ((carac < "0" || carac > "9") && (carac != "(") && (carac != ")") && (carac != " ") && (carac != "+")) {
			alert("Se han introducido en el campo '" + cadena + "' caracteres no válidos.");
			return false;	
		}
	}
	return true;
}

function esAlfanumerico(texto,cadena) {
	for (i = 0; i < texto.length; i++) {
		var carac = texto.charAt(i);
		if ((carac < "a" || carac > "z") && (carac < "A" || carac > "Z") && (carac < "0" || carac > "9") && (carac.charCodeAt(0) != 241) && (carac.charCodeAt(0) != 209)){
			alert("Se han introducido en el campo '" + cadena + "' caracteres no alfanuméricos.");
			return false;	
		}
	}
	return true;
}
function esnoadmitido(texto,cadena, caracter) {
	for (i = 0; i < texto.length; i++) {
		var carac = texto.charAt(i);
		if (carac == caracter){
			alert("El caracter '" + caracter + "' no está permitido en el campo " + cadena + ".");
			return true;	
		}
	}
	return false;
}

function estaalfinal(texto,cadena, caracter, longitud) {

	if (texto.lastIndexOf(caracter)== longitud)
	{
		alert("El caracter '" + caracter + "' no está permitido al final del campo " + cadena + ".");
			return true;	
	}
	
	return false;
}
function esAlfanumericoespecial(texto,cadena) {
	for (i = 0; i < texto.length; i++) {
		var carac = texto.charAt(i);
		if ((carac < "a" || carac > "z") && (carac < "A" || carac > "Z") && (carac < "0" || carac > "9") && (carac != ".") && (carac.charCodeAt(0) != 241) && (carac.charCodeAt(0) != 209)){
			alert("Se han introducido en el campo '" + cadena + "' caracteres no alfanuméricos." );
			return false;	
		}
	}
	return true;
}

function esEMail(texto) {
	if(texto != "")
	{
		var exis = texto.indexOf("@")
		if (exis == -1){
			alert("La direccion de correo e-mail no es correcta");
			return false;
		}
		else
		{
			return true;
		}
	}
}


function MailNoVacio(texto) {
	if(texto == "")
	{
		alert("Debe indicar una dirección de correo electrónico");
		return false;		
	}
	return true;
}


function tieneNumero(texto, cadena) {
	for (i = 0; i < texto.length; i++) {
		var carac = texto.charAt(i);
		if(carac != " ")
		{
			if (carac > 0 || carac < 9) {
				alert("El dato introducido en el campo " + cadena + " contiene numeros");
				return false;	
			}
		}
	}
	return true;
}


function comprobarTarjeta(tarjeta, anio, mes)
{
	if(tarjeta.length != 0)
	{
		var fecha = new Date();
		if (ns4)
		{
			var lfecha;
			lfecha = String(fecha).length;
			anioactual = String(fecha).substring((lfecha-4),lfecha);
			anioactual = parseInt(anioactual);
		}
		else
		{
			anioactual = fecha.getYear();
		}
		if(tarjeta.length < 16)
		{
			alert("El numero de tarjeta no es válido");
			return false;	
		}
		if (!esNumero(mes)){
			alert("El mes no es válido");
			return false;
		}
		if (!esNumero(anio)){
			alert("El año no es válido");
			return false;
		}
		if (mes<1 || mes>12){
			alert("El mes debe comprender entre 1 y 12");
			return false;
		}
		//if (anio<1900 || anio>2000){ 
			if (anio<anioactual){
			alert("El año no es válido");
			return false;
		}
	}
	return true;
}

function comprobarDomiciliacion(cpbanco,codbanco,codsucursal,dc,cc)
{
	if(cpbanco.length != 0)
	{
		if (!esNumero(cpbanco, "codigo postal del banco")){
			alert("El codigo postal del banco no es válido.");
			return false;
		}
	}
	if(codbanco.length != 0)
	{
		if (!esNumero(codbanco, "codigo banco")){
			alert("El codigo del banco no es válido.");
			return false;
		}
	}
	if(codsucursal.length != 0)
	{
		if (!esNumero(codsucursal, "codigo sucursal")){
			alert("El codigo de la sucursal no es válido.");
			return false;
		}
	}
	if(dc.length != 0)
	{
		if (!esNumero(dc, "digito de control")){
			alert("El dígito de control no es válido.");
			return false;
		}
	}
	if(cc.length != 0)
	{
		if (!esNumero(cc, "codigo de cuenta")){
			alert("El código de cuenta no es válido.");
			return false;
		}
	}
	return true;
}

function esFechaEntera(dia,mes,anio){
	var anioactual;
	var fecha = new Date();

if (ns4)
{
var lfecha;
lfecha = String(fecha).length;
anioactual = String(fecha).substring((lfecha-4),lfecha);
anioactual = parseInt(anioactual);
}
else
{
anioactual = fecha.getYear();
}
	
	if (!esNumero(dia)){
		alert("El día no es válido.");
		return false;
	}
	if (!esNumero(mes)){
		alert("El mes no es válido.");
		return false;
	}
	if (!esNumero(anio)){
		alert("El año no es válido.");
		return false;
	}
	if (mes<1 || mes>12){
		alert("El mes debe comprender entre 1 y 12.");
		return false;
	}
	if (dia<1 || dia>31){
		alert("El día debe comprender entre 1 y 31.");
		return false;
	}
	if (anio<1900 || anio>anioactual){ 
		//if (anio<2002){
		alert("El año no es válido.");
		return false;
	}
	if ((mes==4 || mes==6 || mes==9 || mes==11) && dia==31){
		alert("El mes " + mes + " no tiene 31 dias.");
		return false;
	}
	if (mes==2){
		var bisiesto=(anio % 4 == 0 && (anio % 100 != 0 || anio % 400 == 0));
		//if (dia > 29 || (dia==29 && !bisiesto)){ 
		if ((dia > 29 && bisiesto)|| (dia > 28 && !bisiesto)){
			alert("Febrero de " + anio + " no tiene " + dia + " dias.");
			return false;
		}
	}
	return true;
}

function ValidarPeriodo(dia1, mes1, anio1, dia2, mes2, anio2){
	//if(anio1<=anio2){
	//	if(mes1<=mes2){
	//		if(dia1<=dia2)
	//			return true;
	//	}
	//}
	//return false;
	
	if(anio1<anio2)
		return true;
	else if (anio1==anio2){
		if(mes1<mes2)
			return true;
		else if(mes1==mes2){
			if(dia1<=dia2)
				return true;
			else
				return false;
		}
		else
			return false;
	}
	return false;
}

//Pasando espacios al principio y letras al final, ver si las letras forman un operador lógico
function eslogico(k, j, valor){
		var i
		
		if (valor.substr(k,1)==' ')
			for(i=k; valor.substr(i,1)== ' ';i++);
		else
			i=k;
		if (valor.substr(i,j-i)== 'and' || valor.substr(i,j-i)== 'or' || valor.substr(i,j-i)== 'or not' || valor.substr(i,j-i)== 'and not')
			return true;
		else if (valor.substr(i,j-i)== ' y ' || valor.substr(i,j-i)== ' o ' || valor.substr(i,j-i)== ' o no ' || valor.substr(i,j-i)== ' y no ')
			return true;
		return false;
}		


function isEmailAddress(theElement)
{
var s = theElement.value;

var filter=/^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@(([0-9a-zA-Z])+([-\w]*[0-9a-zA-Z])*\.)+[a-zA-Z]{2,9})$/;
if (s.length == 0 )
{
	return true;
}
else
{
   if (filter.test(s))
     return true;
   else
     alert("Por favor, introduzca una dirección de E-mail válida");
 }
theElement.focus();
return false;
}

function trim(str)
{
   return str.replace(/^\s*|\s*$/g,"");
}


function algunoesAlfanumerico(texto) {
	for (i = 0; i < texto.length; i++) {
		var carac = texto.charAt(i);
		if ((carac >="a" && carac <= "z") || (carac >= "A" && carac <= "Z") || (carac >= "0" && carac <= "9")){
			return true;	
		}
	}
	return false;
}