﻿var arrValores=[];

function ECampo(idCampo, valor){
    this.idCampo = idCampo;
    this.valor = valor;
}
function ValidarCampo(obligatorio, tipoCampo, campo){  
   var sError ='';
   switch(parseInt(tipoCampo)){
       case cTexto:
           if (obligatorio && (campo.value.replace(' ', '') == '')){
               sError = "- Debe completar el campo " + campo.title + "\n";
               sError += "(You must complete the field " + campo.title + ")" + "\n";
           }
       break;
       case cNumerico:
           if (obligatorio && (campo.value.replace(' ', '') == '')){
               sError = "- Debe completar el campo " + campo.title + "\n";
               sError += "(You must complete the field " + campo.title + ')' + "\n";
           }
           else if (!isNumeric(campo.value.replace("-","")) || (campo.value.split('-').length > 1 && campo.value.charAt(0) != "-")){
               sError = "- Ingrese un valor numerico para el campo " + campo.title + "\n";
               sError += "(Enter a valid number for the field " + campo.title + ')'  + "\n";
           }
       break;
       case cFecha:
           if (obligatorio && (campo.value.replace(' ', '') == '')){
               sError = "- Debe completar el campo " + campo.title + "\n";
               sError += "(You must complete the field " + campo.title + ')' + "\n";
           }
            else if ((campo.value.replace(' ', '') != '') && !isDate(campo.value, dateFormat)){
               sError = "- Ingrese una fecha valida para el campo " + campo.title + "\n";
               sError += "(Enter a valid date for the field " + campo.title + ')' + "\n";
           }
       break;
       case cEmail:
           if (obligatorio && (campo.value.replace(' ', '') == '')){
               sError = "- Debe completar el campo " + campo.title + "\n";
               sError += "(You must complete the field " + campo.title + ')' + "\n";
           }
            else if (!isMail(campo.value) && (campo.value.replace(' ', '') != '')){
               sError = "- Ingrese un e-mail valido para el campo " + campo.title  + "\n";
               sError += "(Enter a valid e-mail address for the field " + campo.title + ')'  + "\n";
          }
       break;
       case cCombo:
           if (obligatorio && campo.selectedIndex == 0){
               sError = "- Seleccione una opcion para el campo " + campo.title  + "\n";
               sError += "(Select an option for the field " + campo.title + ')'  + "\n";
           }
       break;
   }
   return sError;
}
function Guardar(){
    var codigoIngresado = document.getElementById(txtCaptcha).value.toUpperCase();
    var campos = document.forms[formName].elements;
    var tipoCampo;
    var errores="";
    var campo;
    var obligatorio;
    arrValores = [];
    for (var i=0;i < campos.length; i++){
       campo = campos[i];
       tipoCampo = campo.className.split(' ')[0];
       if (campo.className.split(' ').length > 1)
           obligatorio = true;
       else
           obligatorio = false;
       if (campo.type != "button" && campo.type != "hidden" && campo.id != txtCaptcha){
            errores += ValidarCampo(obligatorio, tipoCampo, campo);
            if (campo.type == "radio" || campo.type == "checkbox")
                arrValores[arrValores.length] = new ECampo(campo.id, campo.checked);
            if (campo.type == "text" || campo.type == "textarea" || campo.type == "select-one")
                    arrValores[arrValores.length] = new ECampo(campo.id, campo.value);
       }
    }
    if (errores != '')
       alert(errores);
    else
        ArmarEForm.ValidarCodigo(codigoIngresado, sCaptcha, ValidarCodigo_callback);        
}
function ValidarCodigo_callback(res){
    if (res.error != null)
		alert(res.error.Message);
	else{
        if (!res.value){
            alert('El código de verificación ingresado fue incorrecto.Intente nuevamente.\nThe verification code was entered incorrectly. Try again.');
            document.getElementById(txtCaptcha).value = '';            
            ArmarEForm.NuevoCaptcha(NuevoCaptcha_callback);
        }
        else
            ArmarEForm.Guardar(arrValores, idEForm, Guardar_callback);
    }
}
function Guardar_callback(res){
	if (res.error != null){	
		alert(res.error.Message);
	}
	else{
	    if (res.value != "")	    
	        parent.window.location = res.value;	    
	    else{
	        alert("La informacion ha sido enviada correctamente\n(The information has been sent correctly).");
            var campos = document.forms[formName].elements;
	        var campo;
            for (var i=0;i < campos.length; i++){
                campo = campos[i];
                if (campo.type != "button" && campo.type != "hidden")
                    campo.value = '';
	        }
	        document.getElementById(txtCaptcha).value = '';
	        document.location.reload();//Vuelve a cargar la pagina (regenerando el captcha)
	    }
	}
}
function NuevoCaptcha_callback(res)
{
	if (res.error != null)
		alert(res.error.Message);
	else{
	    sCaptcha = res.value;
	    document.getElementById(imgCaptcha).src = "GetImage.aspx?rcode=" + res.value;
	}
}
