/*
Librería de validación
Versión: 3.0
Autor: GEEKBOX
URL: http://www.geekbox.cl
*/

function validacionSimple(id,min_digitos){
	var ok=1;
	casilla=$(id);
	
	if(min_digitos!=""){
		if(casilla.value.length<min_digitos){ ok=0; }
	}
	else{
		if(casilla.value.length<1){ ok=0; }
	}
	
	return ok;
}

function validacionAlfabetica(id,min_digitos){
	var ok=1;
	var patron=/[^a-zA-Z \-'áéíóúÁÉÍÓÚñÑäëïöüÄËÏÖÜâêîôûÂÊÎÔÛ]/;
	casilla=$(id);
	txt=casilla.value;
	
	if(min_digitos!=""){
		if(casilla.value.length<min_digitos){ ok=0; }
	}
	if(casilla.value.length<1){ ok=0; }
	if(patron.test(txt)){ ok=0; }
	return ok;
}

function validacionNumerica(id,min_digitos){
	var ok=1;
	var patron=/\D/;
	casilla=$(id);
	
	if(min_digitos!=""){
		if(casilla.value.length<min_digitos){ ok=0; }
	}
	if(casilla.value.length<1){ ok=0; }
	if(patron.test(casilla.value)){ ok=0; }
	
	return ok;
}

function validarFecha(id){
	var ok=0;
	var patron=/^\d{1,2}\/\d{1,2}\/\d{4}$/;
	casilla=$(id);

	if(patron.test(casilla.value)){ ok=1; }
	return ok;
}

function validarEmail(id){
	casilla=$(id);
	var ok=1;
	var es_email=/^(.+\@.+\..+)$/;
	if(!es_email.test(casilla.value)){ ok=0; }
	
	return ok;
}

function validarRutCompleto(rut){
	var ok=0;
	var rut=$(rut).value;
	if(rut.substr(rut.length-1,1)!="K" && rut.substr(rut.length-1,1)!="k"){
		var dv=rut.substr(rut.length-1,1);
		rut=rut.substr(0,rut.length-1);
	}
	else{ dv="K"; }
	rut=rut.replace(/\D/g,"");

	var largo=rut.length;
	var suma=0;
	var mult=2;
	largo--;
	
	while(largo>=0){
		suma=suma+(rut.charAt(largo)*mult);
		if(mult>6){ mult=2; }
		else { mult++; }
		largo--;
	}

	var resto=suma%11;
	var digito=11-resto;
	
	if(digito==10){ digito="K"; }
	if(digito==11){ digito=0; }
	
	if(!rut || !dv){ ok=0; }
	else if(digito!=dv){ ok=0; }
	else { ok=1; }
	
	return ok;
}

function validarRutSeparado(rut,dv){
	var ok=0;
	var rut=$(rut).value;
	var dv=$(dv).value;

	var largo=rut.length;
	var suma=0;
	var mult=2;
	largo--;
	
	while(largo>=0){
		suma=suma+(rut.charAt(largo)*mult);
		if(mult>6){ mult=2; }
		else { mult++; }
		largo--;
	}

	var resto=suma%11;
	var digito=11-resto;
	
	if(digito==10){ digito="k"; }
	if(digito==11){ digito=0; }
	
	if(!rut || !dv){ ok=0; }
	else if(digito!=dv){ ok=0; }
	else { ok=1; }
	
	return ok;
}

function validarSelect(id){
	var ok=1;
	casilla=$(id);
	if(casilla.value=="" || casilla.value==0){ ok=0; }

	return ok;
}

function validarCheckbox(id){
	var ok=1;
	casilla=$(id);
	
	if(casilla.checked==false){ ok=0; }

	return ok;
}

/* LIMITAR CARACTERES ****/
function maximo(e,obj,num){
	k=e.code;
	if (permitidos.contains(k)) return true;
	else{ return obj.value.length<num; }
}

var permitidos=[37,38,39,40,13,46,8,35,36,9];

function soloUsername(e){
	k=e.code;
	if (permitidos.contains(k)) return true;
	var patron = /\w/;
	return patron.test(String.fromCharCode(k));
}

function soloPassword(e){
	k=e.code;
	if (permitidos.contains(k)) return true;
	var patron = /\w/;
	return patron.test(String.fromCharCode(k));
}

function soloRut(e){
	k=e.code;
	if (permitidos.contains(k)) return true;
	var patron = /[kK0-9]/;
	return patron.test(String.fromCharCode(k));
}

function soloEmail(e){
	k=e.code;
	if (permitidos.contains(k)) return true;
	var patron = /[a-zA-Z\@\-\_0-9]/;
	return patron.test(String.fromCharCode(k));
}

function soloTelefono(e){
	k=e.code;
	if (permitidos.contains(k)) return true;
	var patron=/[0-9\s\-\)\(]/;
	return patron.test(String.fromCharCode(k));
}

function soloNumeros(e){
	k=e.code;
	if (permitidos.contains(k)) return true;
	var patron = /\d/;
	return patron.test(String.fromCharCode(k));
}

function soloTexto(e){
	k=e.code;
	if (permitidos.contains(k)) return true;
	var patron=/[a-zA-Z \-'áéíóúÁÉÍÓÚñÑäëïöüÄËÏÖÜâêîôûÂÊÎÔÛ]/;
	return patron.test(String.fromCharCode(k));
}

function soloPrecio(e){
	k=e.code;
	if (permitidos.contains(k)) return true;
	var patron = /[0-9\.,]/;
	return patron.test(String.fromCharCode(k));
}
/*************************/

/* AUTOMATIZAR AL INICIO */
window.addEvent('domready', function(){
	$$('.ayuda').each(function(el){
		el.slide('hide');
		el.style.display="block";
	});
	$$('.automatizar').each(function(el){
		el.txtOriginal=el.value;
		el.addEvent('focus', function(){
			if(this.value==this.txtOriginal){ this.value=""; }
		});
		el.addEvent('blur', function(){
			if(this.value==""){ this.value=this.txtOriginal; }
		});
	});
	$$('.text','textarea','select').each(function(el){	
		el.addEvent('focus', function(){
			if(!el.hasClass('readonly')){ el.addClass('activo'); }
			if($("ayuda_"+this.id)){
				$("ayuda_"+this.id).slide('in');
			}
		});
		el.addEvent('blur', function(){
			if(!el.hasClass('readonly')){ el.removeClass('activo'); }
			if($("ayuda_"+this.id)){
				$("ayuda_"+this.id).slide('out');
			}
		});
		
		if(el.hasClass('solo_email')){
			el.addEvent('keypress', function(event){
				return soloEmail(event);
			});
		}
		if(el.hasClass('solo_precio')){
			el.addEvent('keypress', function(event){
				return soloPrecio(event);
			});
		}
		if(el.hasClass('solo_texto')){
			el.addEvent('keypress', function(event){
				return soloTexto(event);
			});
		}
		if(el.hasClass('solo_numeros')){
			el.addEvent('keypress', function(event){
				return soloNumeros(event);
			});
		}
		if(el.hasClass('solo_telefono')){
			el.addEvent('keypress', function(event){
				return soloTelefono(event);
			});
		}
		if(el.hasClass('solo_username')){
			el.addEvent('keypress', function(event){
				return soloUsername(event);
			});
		}
		if(el.hasClass('solo_password')){
			el.addEvent('keypress', function(event){
				return soloPassword(event);
			})
		}
	});
});
/*************************/
