
/// <summary>
/// Dédalo Systems 
/// (c) 2007 Dédalo Systems.  All Rights Reserved.
/// </summary>


function Limitar(Origen,Nombre,Tamano){
	
	var Destino =new String(Trim(Origen))
	if (Destino.length > Tamano){
		alert("Resuma el contenido de " + Nombre)
		return false
	}else{
		return true    
	}   
}


function BlancosRedundantes(Literal){
	
	var dame = new String(Literal);
	MuchosBlancos = / {2,}/gi;
	IzDer = /^ {1,}| {1,}$/gi;
	dame = dame.replace(MuchosBlancos, " ");
	dame = dame.replace(IzDer, "");
	return dame //.toUpperCase();
}

function GuionesRedundantes(Literal){

	var dame = new String(Literal);
	MuchosGuiones = /-{2,}/gi;
	IzDer = /^-{1,}|-{1,}$/gi;
	dame = dame.replace(MuchosGuiones, "-");
	dame = dame.replace(IzDer, "");
	return dame //.toUpperCase();
}

function BlancosRedundantesClave(Literal){

	var dame = new String(Literal);
	reSqrBr = /\[|\]/g;   // Corchetes
	reVarios= /[\n\r\\%_"{}*`´^()]/g; 
	dame = dame.replace(reSqrBr," ");
	dame = dame.replace(reVarios," ");
	dame = dame.replace('\'','’');
	MuchosBlancos = / {2,}/gi;
	IzDer = /^ {1,}| {1,}$/gi;
	dame = dame.replace(MuchosBlancos, " ");
	dame = dame.replace(IzDer, "");

	return dame //.toUpperCase();
}

function Rtrim (dame){
	
	if (dame == "")	{
		return (dame);
	}
	for (var i = dame.length - 1; i >= 0; i--)	{
		if (dame.charAt (i) != " "){
			return (dame.substring (0, i + 1));
		}
	}
	if (i < 0){
		return "";
	}else{
		return (dame);
	}
}



function Ltrim (dame){

	if (dame == "")	{
		return (dame);
	}
	for (var i = 0; i < dame.length; i++)	{
		if (dame.charAt (i) != " "){
			return (dame.substring (i));
		}
	}
	if (i==dame.length){
		return "";
	}else	{
		return (dame);
	}
}

function Trim(Dame){
	
	return Ltrim(Rtrim(Dame));
}

function ControlDeFecha(Toma){
	
	return true;
}

function BorrarRegistro (){
	if (! confirm ("¿Está seguro de que desea eliminar el registro?")){
		return (false);
	}else	{
		return (true);
	}
}


function AnalizarE_mail(Literal){

	var Origen = new String(BlancosRedundantes(Literal)); 

	var n = Origen.indexOf("@");

	if (n == -1) {
		alert("E-mail incorrecto.");
		return false;
	}
	var j = Origen.indexOf("@",n+1)
	if (j != -1) {
		alert("E-mail incorrecto.");
		return false;
	}else{
		if (Origen.length == n+1) {
			alert("E-mail incorrecto. @ no puede ser el último carácter.");
			return false;
		} else {
			// Esta última parte está tomada de no sé dónde,cubre alguna cosa
			arroba=Origen.indexOf("@")
			punto=Origen.indexOf(".",arroba)
			coma=Origen.indexOf(",")
			espacio=Origen.indexOf(" ")
			ultimopunto=Origen.lastIndexOf(".")+1
			tamano=Origen.length
			if ((arroba>0) && (punto>(1+1)) && (coma==-1) && (espacio==-1) && (tamano-ultimopunto >=2) && (tamano-ultimopunto<=3)) {
				return true;
			}else {
				alert("E-mail incorrecto.");
				return false;
			}
		}
	}
} 

function Analizarwww(Literal){
  
	return true;
} 


function Cambiar(dime){

	if (dime == "S"){
		return  "N";
	}else	{
		return "S";
	}
}


function AMayuscula(dame){
	
	s = new String(dame);
	return s.toUpperCase();
}


function ChequeaISSN (mCadena)
	{
		//mCadena-> 8 digitos. El ultimo (8) es de control.
		var busca = /[-\s]/gi;		
		mCadena = mCadena.replace(busca, "");						
		if (mCadena == "")
			return false;
		var vSumatorio = 0;
		for (var i = 0; i < mCadena.length; i ++)				
		{			
			if (String(mCadena.charAt(i)).toUpperCase() == "X" && i == mCadena.length - 1)
				vSumatorio += 10;
			else
				vSumatorio += parseInt(mCadena.charAt(i)) * (8-i);
		}			
		if (vSumatorio % 11 == 0)			
			return true;		
		return false;		
	}
	
function ChequeaISBN (mCadena)	{

	var busca = /[-\s]/gi;		
	mCadena = mCadena.replace(busca, "");						
	if (mCadena == "")
		return false;
	var vSumatorio = 0;
	for (var i = 0; i < mCadena.length; i ++)				
	{			
		if (String(mCadena.charAt(i)).toUpperCase() == "X" && i == mCadena.length - 1)
			vSumatorio += 10;
		else
			vSumatorio += parseInt(mCadena.charAt(i)) * (10-i);
	}			
	if (vSumatorio % 11 == 0)
		return true;
	return false;		
}	

function ValidarTelefono(pStr) {//--Validación de números telefónicos-------------------

	var vStr, ret;

	var ESBueno = /^(\+34)?[96](\d){8}$/g;
	var ESMalo = /^(\+34)(\d){0,9}$/g;
	var OTRO = /^(\+?[1-9](\d){0,4})?[1-9](\d){5,8}$/g;
	
	vStr = pStr.replace(/[ \-\/_.]/g,"");
	if (ESBueno.test(vStr))ret = 0;
	else if (ESMalo.test(vStr)) ret = 3;
	else if (OTRO.test(vStr)) ret = 1;
	else ret = 3;
	return (ret);
}// end-function Validar(pStr)--------------------------------------------------


/// <summary>
/// Funciones para validar cuenta bancaria
/// </summary>

function obtenerDigito(valor){

	valores = new Array(1, 2, 4, 8, 5, 10, 9, 7, 3, 6);
	control = 0;
	for (i=0; i<=9; i++){
	control += parseInt(valor.charAt(i)) * valores[i];
	}
	control = 11 - (control % 11);
	if (control == 11){ 
		control = 0;
	}else{
		if (control == 10){ control = 1;}
	}
	return control;
}

function numerico(valor){

	cad = valor.toString();
	for (var i=0; i<cad.length; i++) {
	var caracter = cad.charAt(i);
	if (caracter<"0" || caracter>"9")
		return false;
	}
	return true;
}

function ValidarCuentaBancaria(cuentabancaria) {

	var xBanco = "";
	var xSucursal = "";
	var xDigitoControl = "";
	var xCuenta = "";
	var micuenta = "";
	
	if (String(cuentabancaria).length != 20){
		alert ("Introduzca los 20 dígitos del número de cuenta");
		return false;
	}else{		
		xBanco = String(cuentabancaria).substring(0, 4);
		xSucursal = String(cuentabancaria).substring(4, 8);
		xDigitoControl = String(cuentabancaria).substring(8, 10);
		xCuenta = String(cuentabancaria).substring(10, 20);
		/// alert ("Banco: " + xBanco + "; Sucursal: " + xSucursal + "; DigitoControl: " + xDigitoControl + "; Cuenta: " + xCuenta);
	}
	

	if (xBanco == ""  || xSucursal == "" ||	xDigitoControl == "" || xCuenta == ""){
		alert("Por favor, introduzca los datos de su cuenta");
		return false;
	}else {
		if (xBanco.length != 4 || xSucursal.length != 4 ||	xDigitoControl.length != 2 || xCuenta.length != 10){
			alert("Por favor, introduzca correctamente los datos de su cuenta; no están completos");
			return false;
		}else {
			if (!numerico(xBanco) || !numerico(xSucursal) ||	!numerico(xDigitoControl) || !numerico(xCuenta)){
				alert("Por favor, introduzca correctamente los datos de su cuenta; no son numericos");
				return false;
			}else {
				if (!(obtenerDigito("00" + xBanco + xSucursal) == parseInt(xDigitoControl.charAt(0))) || !(obtenerDigito(xCuenta) ==	parseInt(xDigitoControl.charAt(1)))){
					alert("Los dígitos de control no se corresponden con los demás números de la cuenta");
					return false;
				}else{
					return true;
				}
			}
		}
	}
	return true;
}

/// <summary>
/// Validación de DNI
/// </summary>

function ValidarDNI(dni) {
	
	numero = dni.substr(0,dni.length-1);
	let = dni.substr(dni.length-1,1);
	numero = numero % 23;
	letra='TRWAGMYFPDXBNJZSQVHLCKET';
	letra=letra.substring(numero,numero+1);
	if (letra!=let){
		alert('El Dni introducido es erroneo, recuerde introducir la letra al final, sin espacios ni guiones');
		return false;		
	}
	return true;
}
