    /*****************************************************************/
    //valida y procesa en una por ajax
    function ValidarUrl(datos) {
        
        if(!ejecutarValidacion()) return false;
        datos = datos.split('/');
        
        var url = datos[0];
        //armar el data con todos los campos que se marquen para pasar
        var data = $('.sendAjax').serializeArray();        
        $.ajax({ url: url, async: false,data: data,error: function(objeto,sError,asdas){alert(sError);},contentType: 'application/x-www-form-urlencoded', type: 'GET', dataType: 'html', 
             success: function(result){                                                            
                if(datos.length == 0)return;                
                var func = datos[1] + "('" + result + "');";                
                var ret = eval(func);
                
                limpiarFormulario();
        }});            
    }    

    /*****************************************************************/ 
    //valida y procesa en un formulario
    function ValidarForm() {
        
        //ejecuta todas las validaciones
        if(!ejecutarValidacion()) return false;
        
        if($('.hdnSubmit').length>0)
            $('.hdnSubmit').val($('.hdnSubmit').attr('alt'));
        
        $(".formProcess").submit();
    }
    /******************************************************************/
    
    function ejecutarValidacion() {
    
        /*if($('textarea').length > 0)
            tinyMCE.triggerSave();*/
        
        if(!validarCampos()) return false;
        if($('.reqMail').length >0)
            if(!validarCamposReqMail()) return false;
        /*
        if($('.chkCursos').length>0)
            if(!validarCheckCursos()) return false;
            */        
        if($('input:radio').length>0)
            if(!evalRadios()) return false;
            
        return true;
        /*
        if(!validarCamposReq()) return false;
        if(!validarCamposReqMail()) return false;            
        if(!validarCamposReqDate()) return false;
        if(!validarCamposReq_Drop()) return false;
        if(!validarCamposFechasMayor()) return false;
        */
        
    }
    
    
    /*****************************************************************/
    //
    /*****************************************************************/
    function validarCampoReq(objId) {       
        
       if(trim($('#' + objId).val()) != $('#' + objId).attr('alt')) {
            inlineMsg(objId,$('#' + objId).attr('title'),2,true);
            return false;
        }        
        return true;
    }
        
    function validarCamposReq() {       
       
       for(var i=0; i< $(".req").length;i++) {
            if(!validarCampoReq($(".req")[i].id))
                return false;
        }            
       return true;
    }

    /*****************************************************************/
    //valida los campos mails
    /*****************************************************************/
    function validarCampoReqMail(objId) {
       
       if(trim($('#' + objId).val()) == '' || !isEmailAddress($('#' + objId).val())) {
            inlineMsg(objId,$('#' + objId).attr('title'),3,true);
            return false;
        }        
        return true;
    }
    
    
    function validarCamposReqMail(objId) {
       
       for(var i=0; i< $(".reqMail").length;i++) {
            if(!validarCampoReqMail($(".reqMail")[i].id))
                return false
        }
        
        return true;
        
    }

    /*****************************************************************/
    //valida los Campos de Fecha
    /*****************************************************************/
    function validarCampoReqDate(objId) {       
       
       if(trim($('#' + objId).val() == '') || !isDate($('#' + objId).val())) {
            inlineMsg(objId,$('#' + objId).attr('title'),3,true);
            return false;
        }
        return true;
    }
    
    function validarCamposReqDate() {       
       
       var resultado = true;       
       for(var i=0; i< $(".reqDate").length;i++) {
            if(!validarCampoReqDate($(".reqDate")[i].id))
                return false;
        }
        
        return resultado;
    }
    
    /*****************************************************************/
    //valida los selects
    /*****************************************************************/
    function validarCampoReq_Drop(objId) {              
       if($('#' + objId).val() == $('#' + objId).attr('alt')) {
            inlineMsg(objId,$('#' + objId).attr('title'),3,true);
            return false;
        }
        return true;
    }
    
    function validarCamposReq_Drop() {       
       
       var resultado = true;       
       for(var i=0; i< $(".req_drop").length;i++) {
            if(!validarCampoReq_Drop($(".req_drop")[i].id))
                return false;
        }
        
        return resultado;
    }
    
    /*****************************************************************/
    //valida Fechas mayor a la actual y Mayor de edad
    /*****************************************************************/
    function ToDate(objId) {
        
        if(!fechaMenorActual($('#' + objId).val(), false)) {
            inlineMsg(objId,$('#' + objId).attr('title'),3,true);
            return false;
        }
        return true;
    
    }
    
    function ToDateMayor(objId) {        
        if(!fechaMenorActual($('#' + objId).val(),true)) {
            inlineMsg(objId,$('#' + objId).attr('title'),3,true);    
            return false;
        }
        return true;
    }
    
    function validarCamposFechasMayor() {       
       
       var resultado = true;       
       for(var i=0; i< $(".Hoy").length;i++) {
            if(!ToDate($(".Hoy")[i].id))
                return false;
        }
        
        for(var i=0; i< $(".MayorEdad").length;i++) {
            if(!ToDateMayor($(".MayorEdad")[i].id))
                return false;
        }
        
        return resultado;
    }
    
    /***********************************************************************/
    //valida el largo de un campo
    /***********************************************************************/
    function validarLargo(objId){
        
        if($('#' + objId).val().length < parseInt($('#' + objId).attr('maxlength'))) {
            inlineMsg(objId,$('#' + objId).attr('title'),3,true);    
            return false;
        }        
        return true;
    
    }
    
    function validarLargoCampos() {
    
       var resultado = true;       
       for(var i=0; i< $(".clv").length;i++) {
            if(!validarLargo($(".clv")[i].id))
                return false;
       }
        return resultado;    
    }
    
    function validarCampos(){
    
       
       var inputs = $(".valSubmit");
       var obj = '';

       for(var i=0; i< inputs.length;i++) {
            if(inputs[i].type == 'checkbox') continue;
            //si es un file verifico si tengo la ruta guardada en en hidden
            if(inputs[i].type == 'file') {
                var hdnId = inputs[i].id.replace('txt','hdn');
                if($('#'+ inputs[i].id).val() == '' &&  $('#'+ hdnId).val() == '') {
                    inlineMsg(inputs[i].id,$('#'+ inputs[i].id).attr('title'),3,true);    
                }
                continue;
            }
            if($('#'+ inputs[i].id).val() == $('#'+ inputs[i].id).attr('alt')) {
                //obj = inputs[i].type == 'textarea' ? (inputs[i].id + '_ifr') : inputs[i].id;
                inlineMsg(inputs[i].id,$('#'+ inputs[i].id).attr('title'),3,true);    
                return false;
            }
        }
        
        return true;
        
    }
    
    function validarCamposByClass(objClass){
    
       
       var inputs = $("." + objClass);
       
       var obj = '';

       for(var i=0; i< inputs.length;i++) {
            if(inputs[i].type == 'checkbox') continue;
            //si es un file verifico si tengo la ruta guardada en en hidden
            if(inputs[i].type == 'file') {
                var hdnId = inputs[i].id.replace('txt','hdn');
                if($('#'+ inputs[i].id).val() == '' &&  $('#'+ hdnId).val() == '') {
                    inlineMsg(inputs[i].id,$('#'+ inputs[i].id).attr('title'),3,true);    
                }
                continue;
            }
            if($('#'+ inputs[i].id).val() == $('#'+ inputs[i].id).attr('alt')) {
                obj = inputs[i].type == 'textarea' ? (inputs[i].id + '_ifr') : inputs[i].id;
                inlineMsg(obj,$('#'+ inputs[i].id).attr('title'),3,true);    
                return false;
            }
        }
        
        return true;
        
    }
    /*****************************************************************/
    function ejecutarServicio(data,Resultfnc, obj, ruta) {
        var url = ruta + '?timestamp=' + Number(new Date());    
        //var url = ruta;    
        $.ajax({ url: url, async: false,data: data,error: function(objeto,sError,asdas){alert(sError);},contentType: 'application/x-www-form-urlencoded', type: 'GET', dataType: 'html', 
             success: function(result){
                        Resultfnc(result, obj);                
              }});
    }
    
    function validarCheckCursos() {
        var chks = $('.chkCursos');
        var contadorChks = 0;
        for(var i= 0; i<chks.length;i++) {
            if($('#' + chks[i].id).attr('checked'))
                contadorChks++;
        }   
        
        if(contadorChks == 0){
            inlineMsg('btnEnviar','Debe seleccionar al menos un curso',3,true);
            return false;
        }
        
        return true;
    }
    function evalRadios(){
        
        var names = {};
        $('input:radio').each(function() {
              names[$(this).attr('name')] = true;
        });
        var count = 0;
        $.each(names, function() {
              count++;
        });
        if($('input:radio:checked').length != count) {
            inlineMsg('rdmotivo_1',$('#rdmotivo_1').attr('title'),2,true);
            return false;
        }
        return true;

    }
    
