//FUNCIONES PARA VALIDAR TELEFONOS, CODIGOS POSTALES Y NIF
//FUNCION PARA VALIDAR NUMEROS

//******************************** VALIDAR TELEFONO ***************************************
function spc_off( dato )
{
var sRet = "";
var ch;
var CH_BLANCO = 32;
var s = dato.value;
 for( var pos=0; pos<s.length; pos++)
   {
     ch = s.charCodeAt(pos);
     if ( ch!=CH_BLANCO )
       {
	 sRet = s.substring(pos);
	 break;
       }
   }
dato.value = sRet;
return sRet;
}


function validar_tf( tffield )
{
var retCode=true;
var tf = spc_off(tffield);
var tfpuro="";
var prefijos = [];
var prefijo; 
prefijos[981]= 1;
prefijos[945]= 1
prefijos[967]= 1;
prefijos[96]= 1;
prefijos[950]= 1;
prefijos[98]= 1;
prefijos[920]= 1;
prefijos[924]= 1;
prefijos[93]= 1;
prefijos[947]= 1;
prefijos[927]= 1;
prefijos[956]= 1;
prefijos[942]= 1;
prefijos[964]= 1;
prefijos[956]= 1;
prefijos[926]= 1;
prefijos[957]= 1;
prefijos[969]= 1;
prefijos[972]= 1;
prefijos[958]= 1;
prefijos[949]= 1;
prefijos[943]= 1;
prefijos[959]= 1;
prefijos[974]= 1;
prefijos[971]= 1;
prefijos[953]= 1;
prefijos[941]= 1;
prefijos[928]= 1;
prefijos[987]= 1;
prefijos[973]= 1;
prefijos[982]= 1;
prefijos[91]= 1;
prefijos[95]= 1;
prefijos[968]= 1;
prefijos[948]= 1;
prefijos[988]= 1;
prefijos[979]= 1;
prefijos[986]= 1;
prefijos[923]= 1;
prefijos[922]= 1;
prefijos[921]= 1;
prefijos[975]= 1;
prefijos[977]= 1;
prefijos[978]= 1;
prefijos[925]= 1;
prefijos[96]= 1;
prefijos[983]= 1;
prefijos[94]= 1;
prefijos[980]= 1;
prefijos[976]= 1;
if ( tf=="" )
  {
    retCode=false;
  }
else
  {
    for( var tfd=0; tfd<tf.length; tfd++)
      {
	var ch = tf.substring(tfd, tfd+1);
	if ( !isNaN(ch) )
	  {
	    tfpuro+=ch;
	  }
      }
    if (tfpuro.length!=9)
      {
	retCode=false;
      }
  }
prefijo = tfpuro.substring(0,3);
if ( prefijos[prefijo]!=1 )
  {
    prefijo = tfpuro.substring(0,2);
    if ( prefijos[prefijo]!=1 )
      {
	if ( tfpuro.substring(0,1)!="6" ) // móviles
	  {
	    retCode=false;
	  }
      }
  }
if (retCode)
  {
    tffield.value=tfpuro;
  }
return retCode;
}

//******************************** VALIDAR NUMERO *****************************************
//devuelve true si el string tiene sólo caracteres numéricos
function validar_numero( string )
{
  var ok = "0123456789";
  var ch, i, j, long;
  long_ok = ok.length;
  for (i = 0; i < string.value.length; i++)
  {
    ch = string.value.charAt(i);
    for (j = 0;  j < long_ok;  j++)
      if (ch == ok.charAt(j))
        break;
    if (j == long_ok)
    {
      return false;
    }
  }
  return true;
}

function validar_alfanumerico( string ){

  var ok = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
  var ch, i, j, long;
  long_ok = ok.length;
  for (i = 0; i < string.value.length; i++)
  {
    ch = string.value.charAt(i);
    for (j = 0;  j < long_ok;  j++)
      if (ch == ok.charAt(j))
        break;
    if (j == long_ok)
    {
      return false;
    }
  }
  return true;
}

function validar_numero2( string )
{
  var ok = "0123456789";
  var ch, i, j, long;
  long_ok = ok.length;
  for (i = 0; i < string.length; i++)
  {
    ch = string.charAt(i);
    for (j = 0;  j < long_ok;  j++)
      if (ch == ok.charAt(j))
        break;
    if (j == long_ok)
    {
      return false;
    }
  }
  return true;
}

// ********************************** VALIDAR CP *********************************
function validar_cp( cp )
{
  var MIN_CP = 1000;
  var MAX_CP = 52999;

  if (cp == "")
  {
  	return false;
  }
  if ( parseFloat( cp ) < MIN_CP || parseFloat( cp ) > MAX_CP )
  {
  	return false;
  }
  return true;
}

// ********************************** VALIDAR NIF ******************************************
function validar_nif( nif )
{
  var d;
  var letra;
  var letra_valida;
  var retCode = true;
 
  if (nif == "")
    {
      retCode = false;
      return retCode;
    }
  
  letra = nif.substring(nif.length-1,nif.length).toUpperCase();
  if (letra.charCodeAt(0)<65 || letra.charCodeAt(0)>90)
    {
      retCode = false;
    }
  
  d = parseFloat(nif) % 23;
  switch( d )
    {
    case 0: letra_valida = "T"; break;
    case 1: letra_valida = "R"; break;
    case 2: letra_valida = "W"; break;
    case 3: letra_valida = "A"; break;
    case 4: letra_valida = "G"; break;
    case 5: letra_valida = "M"; break;
    case 6: letra_valida = "Y"; break;
    case 7: letra_valida = "F"; break;
    case 8: letra_valida = "P"; break;
    case 9: letra_valida = "D"; break;
    case 10: letra_valida = "X"; break;
    case 11: letra_valida = "B"; break;
    case 12: letra_valida = "N"; break;
    case 13: letra_valida = "J"; break;
    case 14: letra_valida = "Z"; break;
    case 15: letra_valida = "S"; break;
    case 16: letra_valida = "Q"; break;
    case 17: letra_valida = "V"; break;
    case 18: letra_valida = "H"; break;
    case 19: letra_valida = "L"; break;
    case 20: letra_valida = "C"; break;
    case 21: letra_valida = "K"; break;
    case 22: letra_valida = "E"; break;
    default:
      retCode = false;
    }
  if (letra!=letra_valida)
    {
      retCode = false;
    }
  return retCode;
}


function validarEmail(objEmail, incorrectEmailText) {
	var resp = true;
	
	if (objEmail.value != '')
	{
		var aValor = objEmail.value.split(';');			
		var v_ret = '';
	
		for (iCont = 0; iCont < aValor.length; iCont++)
		{
			
		}
		for (iCont = 0; iCont < aValor.length; iCont++)
		{
			if (!/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,6})+$/.test(aValor[iCont]))
			{
				if (incorrectEmailText == '') incorrectEmailText = 'Formato incorrecto en la dirección de email';
				alert(incorrectEmailText + ' "' + aValor[iCont] + '"');
				resp = false;			
			}
			else
			{
				v_ret = v_ret + ';' + aValor[iCont];
			}
		}

		objEmail.value = v_ret.substr(1);
		objEmail.focus();
	}			
	return resp;
}

