var f=false;
var t=true;
var whitespace = " \t\n\r";
var decimalPointDelimiter = ","

function checkLogin(){
  var form1 = document.getElementById('myform');
  var rutFull = document.getElementById('rut_num').value; 
  var OrutFull = document.getElementById('rut_num')
  var pass = document.getElementById('password').value; 
  var Opass = document.getElementById('password'); 

	if (rutFull==''){alert('Ingrese su Rut'); OrutFull.focus(); return f;}
  if (!checkRut2(OrutFull,'Rut de cliente incorrecto',t)){return f;}
	if (pass==''){alert('Ingrese clave de cliente'); Opass.focus(); return f;}
  // if (!isInteger(pass)){alert('La clave debe ser numerica');return f;}
	// if (pass.length != 4){alert('La clave debe ser de 4 digitos');return f;}

	form1.submit();
}

function formatRut10Digits(rutDigits,checkDigit){
	var tmpStr;

	tmpStr = Trim(rutDigits);
	newRut = getNChars(9 - tmpStr.length,"0") + tmpStr + checkDigit;
	
	return newRut;
}

function formatRut(rut){
	var rutDigits,checkDigit,rutValue,newRut;
	
	rutValue = Trim(rut)
	if (rutValue.length!=10){	return "###.###.###-#";}
	rutDigits = rutValue.substr(0,rutValue.length-1);
	checkDigit = rutValue.substr(rutValue.length-1,1);
	newRut = rutDigits.substr(0,3)+".";
	newRut = newRut + rutDigits.substr(3,3)+".";
	newRut = newRut + rutDigits.substr(6,3);
	while (newRut.substr(0,1) == "0" || newRut.substr(0,1) == "."){
	   newRut = newRut.substr(1,newRut.length);
	}

	return newRut+"-"+checkDigit;
}

function digito(rut) {
	var i,total,cnt,div, resto,c,digver;

	total = 0;
	cnt = 2;
	for (i = rut.length - 1; i >= 0; i--) {
		c = rut.charAt(i);
		if (c < "0" || "9" < c)	return "";
		total += parseInt(c, 10) * cnt;
		cnt++;
		if (cnt == 8){
			cnt = 2;
		}
	}
	div = Math.round(total / 11 - 0.5);
	resto = total - div * 11;
	if ((11 - resto) == 10){
		digver = "K";
	}else if ((11 - resto) == 11){
		digver = "0";
	}else{
		digver = (11 - resto) + "";
	}

	return digver;
}

function doError(theField,doingSubmit,errorMessage){
	if ( (doingSubmit) && (theField.value != "") ){
		alert(errorMessage)
		theField.value = "";
		theField.focus();
	}

	return f;
}

function removeChar(s,ch){
	var i,c,newStr;

	newStr = "";
	for (i = 0; i < s.length; i++){
		var c = s.charAt(i);
		if (c != ch){
			newStr = newStr + c
		}
	}
	
	return newStr;
}

function checkRut2(rutFull,errorMessage,doingSubmit){
	var rutField,rutDigits,checkDigit,rutValue,minusChar
	rutField = eval(rutFull);
	if (typeof(rutField) == "undefined"){alert("Campo no existe en form");return f;}
	rutValue = rutField.value;
	rutDigits = rutValue.substr(0,rutValue.length-1);
	rutDigits = removeChar(rutDigits,'.');
	checkDigit = rutValue.substr(rutValue.length-1,1).toUpperCase();
	if (isEmpty(rutDigits) || isEmpty(checkDigit)){	return doError(rutField,doingSubmit,errorMessage);}
	minusChar = rutDigits.substr(rutDigits.length-1,1);
	if (minusChar == '-'){rutDigits = rutDigits.substr(0,rutDigits.length-1);}
	if (rutDigits.length > 9){return doError(rutField,doingSubmit,errorMessage);}
	if (!isInteger(rutDigits)){return doError(rutField,doingSubmit,errorMessage);}
	if (checkDigit !=  digito(rutDigits)){return doError(rutField,doingSubmit,errorMessage);}
	rutField.value = formatRut(formatRut10Digits(rutDigits,checkDigit));
	return t;
}

function LTrim(str){	
	while(str.length > 0 && str.charAt(0) == " "){
		str = str.substr(1,str.length)
	}

	return str
}

function RTrim(str){
	while(str.length > 0 && str.charAt(str.length-1) == " "){
		str = str.substr(0,str.length-1);
	}
	
	return str
}

function Trim(theStr){
	theStr = RTrim(theStr);
	theStr = LTrim(theStr);
	
	return theStr 
}

function isEmpty(s){
	return ((s == null) || (s.length == 0));
}

function isDigit(c){
	return ((c >= "0") && (c <= "9"));
}

function isInteger(s){
	var i;

	if (isEmpty(s)) {return f;}
	for (i = 0; i < s.length; i++){   
		if (!isDigit(s.charAt(i))){return f;}
	}

	return t;
}

function getNChars(n,ch){
	var i,newStr;

	newStr = "";
	for (i = 0; i < n; i++){
		newStr = newStr + ch;
	}
	
	return newStr;
}
