// JavaScript Document
/* Chequea que se hayan completado los campos obligatorios del form
 * @form id del formulario
 */
function check_requeridos(form, colorError, colorOk){
	var formulario = $(form);

	var error = false;
	var elements = formulario.getElements();

	for (var x=0; x<elements.length; x++){
		var nombre_ele = elements[x].id.split('_');	
		var label = $('error_'+(elements[x].name));
		
		if(nombre_ele[0] == 'obl'){ // si el id empieza con obl entonces es obligatorio
			switch(nombre_ele[2]){ // segun el tipo de dato valido q hayan ingresado
	
				case 'ci': 	if(elements[x].value=='' || !validar_cedula(elements[x].value)){
									pintarLabel(label,colorError);
									error = true;
								}
								else{
									pintarLabel(label,colorOk);
								}
								break;
								
				case 'email' : if(elements[x].value =='' || !isEmail(elements[x].value)){
										pintarLabel(label,colorError);
										error = true;
									}
									else{
										pintarLabel(label,colorOk);
									}
									break;
				case 'tel': if(elements[x].value == '' || isNaN(elements[x].value)){
									pintarLabel(label,colorError);
									error = true;
								}
								else{
									pintarLabel(label,colorOk);
								}
								break;
				case 'ciudad': if(elements[x].value == 'Ciudad'){
										pintarLabel(label,colorError);
										error = true;
									}
									else{
										pintarLabel(label,colorOk);
									}
									break;
				case 'opt':  if($('opt_'+nombre_ele[1]) && elements[x].value ==''){
										pintarLabel(label,colorError);
										error = true;
								  }
								  else{
										pintarLabel(label,colorOk);
								  }
				
				//controlar q hayan seleccionado al menos uno del grupo
				case 'grupo' :	if(validar_radios(nombre_ele[1]) == null){
										pintarLabel(label,colorError);
										error = true;
									}
									else{
										pintarLabel(label,colorOk);
									}
									break;
								
				case 'conf' :	if(elements[x].value == '' || elements[x].value != elements[x-1].value){
										pintarLabel(label,colorError);
										error = true;
									}
									else{
										pintarLabel(label, colorOk);
									}
									break;
										
				default :	if(elements[x].value==''){
									pintarLabel(label,colorError);
									error = true;
								}
								else{
									pintarLabel(label,colorOk);
								}
								break;
			}
		}
	}
	if(error){
		msg_error(form, "Verifique los datos ingresados","Todos los campos indicados con * son obligatorios");
	}

	return error;
}


//retorna el valor elegido o null en caso de no elegir ninguno
function validar_radios(name){
	var valor;
	var elementos = document.getElementsByName(name);
   for(var i=0;i<elementos.length;i++){
		if (elementos[i].checked) {
			valor = elementos[i].value;
      }  
	}
	
	return valor;
}

//Validar el formato de email
function isEmail(email)
{
	var filtro=/^[A-Za-z][A-Za-z0-9_.]*@[A-Za-z0-9_]+\.[A-Za-z0-9_.]+[A-za-z]$/;
	if (filtro.test(email))
		return true;
	else
		return false;
}

function validar_cedula(cadena){
	var regularexp = /^(\d{6,7})[^\w]?-(\d)$/;
	
	if(!regularexp.test(cadena)) return false;
	
	var matches = cadena.match(regularexp);
	var ci =matches[1];
	var guion =matches[2];

	if(ci.length<7) ci='0'+ci;
	
	var t1 = Math.abs(((
		((parseInt(ci.charAt(0),10)*2)%10)+
		((parseInt(ci.charAt(1),10)*9)%10)+
		((parseInt(ci.charAt(2),10)*8)%10)+
		((parseInt(ci.charAt(3),10)*7)%10)+
		((parseInt(ci.charAt(4),10)*6)%10)+
		((parseInt(ci.charAt(5),10)*3)%10)+
		((parseInt(ci.charAt(6),10)*4)%10))%10)-10)%10;
	
	return(t1.toString()==guion);
}
	
// marca el error poniendo color rojo a la label
function pintarLabel(objLabel,color){
	objLabel.style.color = "#"+color;	
}


/* Funciones  que muestran los mensajes  */
function msg_error(id, titulo, mensaje){
	if($('msg_ok_'+id)){
		$('msg_ok_'+id).style.display = "none";
	}
	if($('msg_error_'+id)){
		if(mensaje) $('txt_error_'+id).innerHTML = mensaje;
		$('tit_error_'+id).innerHTML = titulo
		$('msg_error_'+id).style.display = "";
	}
}

function msg_ok(id, titulo, mensaje){
	if($('msg_error_'+id)){
		$('msg_error_'+id).style.display = "none";
	}

	if($('msg_ok_'+id)){
		if(mensaje) $('txt_ok_'+id).innerHTML = mensaje;
		$('tit_ok_'+id).innerHTML = titulo
		$('msg_ok_'+id).style.display = "block";
	}
}

/* Fin funciones que muestran los mensajes  */ 