// Busca el control con el nombre especificado y valida
// si en él ha sido ingresado un rut correctamente.
function validateRut(controlName,eok) {
	var control=document.getElementById(controlName);
	if(!isValidRut(control.value,eok)) {		
		alert("Por favor, asegúrese de ingresar correctamente su RUT");
		control.focus();
		return false;
	}
	
	return true;
}

// Busca el control con el nombre especificado y valida
// si en él ha sido ingresado un rut correctamente.
function validateRutVD(controlName1,controlName2,eok) {
	var control1=document.getElementById(controlName1);
	var control2=document.getElementById(controlName2);
	var control=control1.value+control2.value;
	if(trim(control1.value)=='' || trim(control2.value)=='' || !isValidRut(control,eok)) {
		alert("Por favor, asegúrese de ingresar correctamente su RUT");
		control1.focus();
		return false;
	}

	return true;
}

function validateMandatoryOR(controlName1,alias1,controlName2,alias2) {
	var control1=document.getElementById(controlName1);
	var control2=document.getElementById(controlName2);
	var value1=trim(control1.value);
	var value2=trim(control2.value);
	if(value1=="" && value2=="") {
		var msg="Debe ingresar al menos un valor, ya sea " + alias1 + " o " + alias2;
		alert(msg);
		control1.focus();
		return false;
	}
	
	return true;
}

function validateMandatoryDependent(controlNameList, aliasList, controlNameText, aliasText){
	var control1=document.getElementById(controlNameList);
	var control2=document.getElementById(controlNameText);
	var value1=trim(control1.value);
	var value2=trim(control2.value);
	if (value1!="" && value2==""){
		var msg="Si indica un valor en " + aliasList + ", debe ingresar un valor en "+aliasText;
		alert(msg);
		control2.focus();
		return false;
	}
	return true;	
}

function validateMandatoryORCheck(controlName1Check,controlName2Check,controlName3Check,aliasCheck) {
	var control1=document.getElementById(controlName1Check);
	var control2=document.getElementById(controlName2Check);
	var control3=document.getElementById(controlName3Check);	
	var value1=control1.checked;
	var value2=control2.checked;
	var value3=control3.checked;	
	if(value1==false && value2==false && value3==false) {
		var msg="Debe ingresar al menos "+ aliasCheck ;
		alert(msg);
		control1.focus();
		return false;
	}
	
	return true;
}


function validateMandatoryDependentCheck(controlNameCheck, aliasCheck, controlNameText, aliasText){
	var control1=document.getElementById(controlNameCheck);
	var control2=document.getElementById(controlNameText);
	var value1=control1.checked;
	var value2=trim(control2.value);
	if ((value1==true) && value2==""){
		var msg="Si " + aliasCheck + ", debe ingresar un valor en "+aliasText;
		alert(msg);
		control2.focus();
		return false;
	}
	return true;  
	
}

function validateMandatory(controlName,alias) {
	var control=document.getElementById(controlName);
	var value=trim(control.value);
	if(value=="") {
		var msg="Debe ingresar " + alias;
		alert(msg);
		control.focus();
		return false;
	}
	
	return true;
}

function validateMandatoryWithoutFocus(controlName,alias) {
	var control=document.getElementById(controlName);
	var value=trim(control.value);
	if(value=="") {
		var msg="Debe ingresar " + alias;
		alert(msg);
		return false;
	}
	
	return true;
}

function validateMandatoryCheck(controlName,alias) {
	var control=document.getElementById(controlName);
	var value=control.checked;
	if(value==false) {
		var msg="Debe " + alias;
		alert(msg);
		control.focus();
		return false;
	}
	
	return true;
}

function validateEmail(controlName,eok) {
	var control=document.getElementById(controlName);
	if(!isEmail(control.value,eok)) {
		var msg="Por favor, asegúrese de ingresar correctamente su dirección de correo electrónico";
		alert(msg);
		control.focus();
		return false;
	}
	
	return true;
}

function areEquals(controlName1,controlName2,msg) {
	var control1=document.getElementById(controlName1);
	var control2=document.getElementById(controlName2);	
	
	var value1=trim(control1.value);
	var value2=trim(control2.value);
	
	if(value1!=value2) {
		alert(msg);
		control1.focus();
		return false;
	}
	
	return true;
}

function validateDateRange(controlName1,controlName2,eok,alias1,alias2) {
	var control1=document.getElementById(controlName1);
	var control2=document.getElementById(controlName2);
	
	var value1=trim(control1.value);
	var value2=trim(control2.value);

	if(value1=='' && value2=='' && eok)
		return true;
	
	if(!isValidDate(value1,eok)) {
		var msg='Por favor, asegúrese de ingresar correctamente la fecha ' + alias1;
		alert(msg);
		control1.focus();
		return false;
	}
	
	if(!isValidDate(value2,eok)) {
		var msg='Por favor, asegúrese de ingresar correctamente la fecha ' + alias2;
		alert(msg);
		control2.focus();
		return false;
	}
	
	if(dateCompare(value1,value2) > 0) {
		var msg='La fecha ' + alias1 + ' debe ser menor o igual que la fecha ' + alias2;
		alert(msg);
		control1.focus();
		return false;
	}
	
	return true;
}

function formatMeAsRut(control) {
	control.value=formatRut(control.value);	
}

function formatMeAsRutWithoutVD(control) {
	control.value=formatRutWithoutVD(control.value);
}

function setFocusOn(controlName) {
	var control=document.getElementById(controlName);
	control.focus();
}

function validateBirthDate(controlName,alias){
	var ns="";
	var control=document.getElementById(controlName);
	var value=trim(control.value);

	if(!isValidDate(value)) {
		var msg='Por favor, asegúrese de ingresar correctamente la ' + alias;
		alert(msg);
		control.focus();
		return false;
	}
	for(var i=0;i < value.length;i++) {
		if(isDigit(value.charAt(i)))
			ns+=value.charAt(i);
	}
	
	var year=ns.substring(4,8);
	var month=ns.substring(2,4);
	var day=ns.substring(0,2);
	
	if(year=='1900' || year=='9999'){
		if(month=='12'){
			if(day=='31'){
				var msg='No puede ingresar la fecha ' +day+'/'+month+'/'+ year + ' en su fecha de nacimiento';
				alert(msg);
				control.focus();
				return false;
			}
		}
	}
	return true;
}
