/**
 * Configuracion para bloqueo de teclado en formularios
 * 
 * Date:		2009/06/10
 *
 * @author		Leonardo Etchegaray <letchegaray@gmail.com>
 * @version		1.0
 */

// sololetra
// sololetranumero
// soloemail
// solonumero
// solotelefono
// solofecha
// solodecimal
// solodigitorut
// solorut
// valrut
$(document).ready(function(){
	
	$(".sololetra").live("keypress",function (e) {
		var key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0;

		var sKey = '193,201,205,211,218,';//acentos mayusculas
			sKey+= '225,233,237,243,250,';//acentos minusculas
			sKey+= '8,9,37,39,32,';//8=Backspace		9=Tabulador		37=izquierda	39= derecha y apostrofe		32=Espacio		13=Enter
			sKey+= '209,241,';//enies

		for(i=97;i<=122;i++){//97 a 122 a z
			sKey+=i+',';
		}
		for(i=65;i<=90;i++){//65 a 90 A Z
			sKey+=i+',';
		}
			// sKey+='90';
		
		var aKey = sKey.split(",");
		var encontrado = 0;
		$.each(aKey,function(indice){
			if(aKey[indice]==key){
				encontrado++;
			}
		});
		
		if(encontrado>0){
			return true;
		}else{
			e.preventDefault();
			return false;
		}		
    });

	$(".sololetranumero").live("keypress",function (e) {
		var key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0;
		//alert(key);		
		var sKey = '193,201,205,211,218,';//acentos mayusculas
			sKey+= '225,233,237,243,250,';//acentos minusculas
			sKey+= '8,9,37,39,32,13,';//8=Backspace		9=Tabulador		37=izquierda	39= derecha y apostrofe		32=Espacio		13=Enter
			sKey+= '209,241,';//enies

		for(i=45;i<=59;i++){//0 al 9
			sKey+=i+',';
		}
		for(i=97;i<=122;i++){//97 a 122 a z
			sKey+=i+',';
		}
		for(i=65;i<=90;i++){//65 a 90 A Z
			sKey+=i+',';
		}
		
		
		sKey+='44';//44		,
			// sKey+='90';
		
		
		var aKey = sKey.split(",");
		var encontrado = 0;
		$.each(aKey,function(indice){
			if(aKey[indice]==key){
				encontrado++;
			}
		});
		
		if(encontrado>0){
			return true;
		}else{
			e.preventDefault();
			return false;
		}		
    });


	$(".soloemail").live("keypress",function (e) {
		var key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0;

		var sKey = '8,9,37,39,';//8=Backspace		9=Tabulador		37=izquierda	39= derecha y apostrofe		32=Espacio		13=Enter		
			sKey+= '64,95,45,46,';//@	_	-	.

		for(i=48;i<=57;i++){//0 al 9
			sKey+=i+',';
		}
		for(i=97;i<=122;i++){//97 a 122 a z
			sKey+=i+',';
		}
		for(i=65;i<=90;i++){//65 a 90 A Z
			sKey+=i+',';
		}
			// sKey+='90';
		
		var aKey = sKey.split(",");
		var encontrado = 0;
		$.each(aKey,function(indice){
			if(aKey[indice]==key){
				encontrado++;
			}
		});
		
		if(encontrado>0){
			return true;
		}else{
			e.preventDefault();
			return false;
		}		
    });


	$(".solonumero").live("keypress",function (e) {
		var key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0;
		
		var sKey = '8,9,37,39,';//8=Backspace		9=Tabulador		37=izquierda	39= derecha y apostrofe		32=Espacio		13=Enter
				
		for(i=48;i<=57;i++){//0 al 9
			sKey+=i+',';
		}
		
		var aKey = sKey.split(",");
		var encontrado = 0;
		$.each(aKey,function(indice){
			if(aKey[indice]==key){
				encontrado++;
			}
		});
		
		if(encontrado>0){
			return true;
		}else{
			e.preventDefault();
			return false;
		}		
    });


	$(".solotelefono").live("keypress",function (e) {
		var key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0;
		
		var sKey = '8,9,37,39,45,';//8=Backspace		9=Tabulador		37=izquierda	39= derecha y apostrofe		32=Espacio		13=Enter	45 = -
				
		for(i=48;i<=57;i++){//0 al 9
			sKey+=i+',';
		}
		
		var aKey = sKey.split(",");
		var encontrado = 0;
		$.each(aKey,function(indice){
			if(aKey[indice]==key){
				encontrado++;
			}
		});
		
		if(encontrado>0){
			return true;
		}else{
			e.preventDefault();
			return false;
		}		
    });


	$(".solofecha").live("keypress",function (e) {
		var key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0;
		
		var sKey = '8,9,37,39,';//8=Backspace		9=Tabulador		37=izquierda	39= derecha y apostrofe		32=Espacio		13=Enter
				
		for(i=48;i<=57;i++){//0 al 9
			sKey+=i+',';
		}

			sKey+='47';//47		/ 
		
		var aKey = sKey.split(",");
		var encontrado = 0;
		$.each(aKey,function(indice){
			if(aKey[indice]==key){
				encontrado++;
			}
		});
		
		if(encontrado>0){
			return true;
		}else{
			e.preventDefault();
			return false;
		}		
    });


	$(".solodecimal").live("keypress",function (e) {
		var key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0;
		
		var sKey = '8,9,37,39,';//8=Backspace		9=Tabulador		37=izquierda	39= derecha y apostrofe		32=Espacio		13=Enter
				
		for(i=48;i<=57;i++){//0 al 9
			sKey+=i+',';
		}
		sKey+='46';//46		.
		
		var aKey = sKey.split(",");
		var encontrado = 0;
		$.each(aKey,function(indice){
			if(aKey[indice]==key){
				encontrado++;
			}
		});
		
		if(encontrado>0){
			return true;
		}else{
			e.preventDefault();
			return false;
		}		
    });


	$(".solodigitorut").live("keypress",function (e) {
		var key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0;
		
		var sKey = '8,9,37,39,';//8=Backspace		9=Tabulador		37=izquierda	39= derecha y apostrofe		32=Espacio		13=Enter
			sKey+= '107,75,';

		for(i=48;i<=57;i++){//0 al 9
			sKey+=i+',';
		}
		
		var aKey = sKey.split(",");
		var encontrado = 0;
		$.each(aKey,function(indice){
			if(aKey[indice]==key){
				encontrado++;
			}
		});
		
		if(encontrado>0){
			return true;
		}else{
			e.preventDefault();
			return false;
		}		
    });


	$(".solorut").live("keypress",function (e) {
		var key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0;
		
		var sKey = '8,9,37,39,';//8=Backspace		9=Tabulador		37=izquierda	39= derecha y apostrofe		32=Espacio		13=Enter
			sKey+= '107,75,45,';//k K -

		for(i=48;i<=57;i++){//0 al 9
			sKey+=i+',';
		}
		
		var aKey = sKey.split(",");
		var encontrado = 0;
		$.each(aKey,function(indice){
			if(aKey[indice]==key){
				encontrado++;
			}
		});
		
		if(encontrado>0){
			return true;
		}else{
			e.preventDefault();
			return false;
		}		
    });


	$(".solorutpunto").live("keypress",function (e) {
		var key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0;
		
		var sKey = '8,9,37,39,';//8=Backspace		9=Tabulador		37=izquierda	39= derecha y apostrofe		32=Espacio		13=Enter
			sKey+= '107,75,45,46,';//k K -	.

		for(i=48;i<=57;i++){//0 al 9
			sKey+=i+',';
		}
		
		var aKey = sKey.split(",");
		var encontrado = 0;
		$.each(aKey,function(indice){
			if(aKey[indice]==key){
				encontrado++;
			}
		});
		
		if(encontrado>0){
			return true;
		}else{
			e.preventDefault();
			return false;
		}		
    });


	$(".valrut").livequery("blur",function () {
		var idRut = this.id;
		var sRut = $("#"+idRut).val();
		if(verificaRut(sRut)==true){
			return true;
		}else{
			alert("El Rut ingresado no es valido");
			// $(".valrut").focus();
			$("#"+idRut).focus();
			return false;
		}
    });


});



function verificaRut(str){
  var resp=true;
  var rut=trim(str);
  if(rut.length>=9){
    var digver=rut.charAt(rut.length -1);
    rut=rut.substr(0,rut.length -1);
    digver=digver.toUpperCase();
    if(((digver>="0")&&(digver<="9"))||(digver=="K")){
      //eliminar caracteres extras
      nerut="";
      for(i=0;i<rut.length;i++){
        if(rut.charAt(i)>="0"&&rut.charAt(i)<="9")
          nerut += rut.charAt(i);
        else
          if(rut.charAt(i)!="." && rut.charAt(i)!="-")
          resp=false;
        }
      //calcula el digito
      if(resp){
        var sum=0;
        var mul=2;
        for(i=nerut.length-1;i>=0;i--){
          sum += mul++ * nerut.charAt(i);
          if(mul>7) mul=2;
        }
        var resul = 11 - (sum % 11);
        digcal = "" + ((resul<10)?resul:((resul==11)?0:"K"));
        resp = (digcal == digver);
      }
    }
    else
      resp=false;
  }
  else
    resp=false;
  return resp;
}

