$(function() {  
    if(existe('#recForm')){
        $('.rC').corner("5px");
        //$('.ddown ul').corner("5px");
        initRecForm();
        ddownRecForm();
        $('#step3 h3').css({'margin':'20px 0 24px 0'});    
        $('#step3 h3:first').css({'margin':'4px 0 14px 0'});
        $('#step3 .rFormW2').each(function(){
            $('.rCw8:first', this).css({'margin':'0 14px 0 0'});
        });
        $('#step4 > span').css({'margin':'10px 0 10px 0'});
        
/*    $('#step3 .multOrgans:first, #step4 .respons:first, #step5 .chq label:eq(0), #step5 .chq label:eq(1), #step5 .chq input:eq(0), #step5 .chq input:eq(1)').css({'margin-right':'20px'});*/    
    }
});
var rec = {};
function initRecForm(){
    rec.props = {
            step: Number(0), // step 0 a 6
            btn: true, // botoes true false
            btnNextF: function(){rec.s0next()}, // funcao p botoes Next
            btnPrevF: function(){}, // funcao p botoes Previous
            valSSF: function(){} // funcao validacao server-side
        };
    rec.msg = $('#recruitMsg');
    rec.btnsNext = $('#btnNext');
    rec.btnsPrev = $('#btnPrev');
    rec.doStuff = function(){ // indicador dos steps, recruitMsg
        $('#steps').removeClass().addClass('steps'+rec.props.step);
        $('#steps li').removeClass('on');
        if(rec.props.step>0&&rec.props.step<6){
            if(rec.props.step<3) rec.msg.removeClass().text(resources["ti_Campos_obrig"]).show();
            $('#steps li:eq('+Number(rec.props.step-1)+')').addClass('on');
        }
    }
    rec.btnsBind = function () { // liga botoes
        rec.btnsNext.click(function () {
            rec.props.btnNextF();
            return false;
        });
        rec.btnsPrev.click(function () {
            rec.props.btnPrevF();
            return false;
        });
    };
    rec.btnsUnbind = function(){ // desliga botoes
        this.btnsNext.unbind('click');
        this.btnsPrev.unbind('click');
    };
    rec.avanca = function () { // esconde step e mostra seguinte
        rec.msg.html('').hide();
        if (rec.props.step < 5) {
            $('#step' + rec.props.step).hide();
            rec.props.step += 1;
            if (rec.props.step != 0) rec.btnsPrev.show();
            $('#step' + rec.props.step).show();
            setTimeout(rec.btnsBind, 200);
            if (rec.props.step == 5) {
                rec.btnsNext.removeClass().addClass('submeter');
            }
            rec.doStuff();
        } else if (rec.props.step == 5) {
            $('#step' + rec.props.step).hide();
            rec.props.step += 1;
            rec.btnsNext.hide();
            rec.btnsPrev.hide();
            $('#step' + rec.props.step).show();
            rec.doStuff();
        }
    };
    rec.recua = function(){ // esconde step e mostra anterior
        rec.msg.html('').hide();
        if(rec.props.step>0){
            $('#step'+rec.props.step).hide();
            rec.props.step -= 1;
            if(rec.props.step==4) {
        //    rec.btnsPrev.css({right:178});  
            }
            if(rec.props.step!=0&&rec.props.step!=6) {
                rec.btnsPrev.show();
            } else {
                rec.btnsPrev.hide();
            }
            rec.btnsNext.removeClass();
            $('#step'+rec.props.step).show();
            rec.doStuff();
            setTimeout(rec.btnsBind,200);
        }
    };
    rec.s0next = function () { // ir p step 1
        rec.btnsUnbind();
        rec.props.btnNextF = function () { rec.s1next() };
        rec.props.btnPrevF = function () { rec.s1prev() };
        initRecFormS1(); // validacao client side p step 1
        rec.avanca();
    }
    rec.s1next = function () { // ir p step 2
        rec.btnsUnbind();
        if (removetEvt__)
          $('#s1FuncaoTxt').rules("remove","initialMessage")  
        if ($("#recForm").valid()) {
            ValidateStep1Candidature(function (data) {
                if (data.Status) {
                    rec.props.btnNextF = function () { rec.s2next() };
                    rec.props.btnPrevF = function () { rec.s2prev() };
                    initRecFormS2(); // validacao client side p step 2
                    rec.avanca();
                }
                else {
                    rec.btnsBind();
                }
            });
        } else {
            rec.btnsBind();
        }
    }  
    rec.s2next = function(){ // ir p step 3
        rec.btnsUnbind();
        if ($("#recForm").valid()){
            ValidateStep2Candidature(function(data){
                if (data.Status) {
                    rec.props.btnNextF = function(){rec.s3next()};
                    rec.props.btnPrevF = function(){rec.s3prev()};          
                    initRecFormS3(); // validacao client side p step 3
                    rec.avanca();
                }else {
                    rec.btnsBind();
                }
            });
        } else {
            rec.btnsBind();
        }
    }
    rec.s3next = function(){ // ir p step 4
        rec.btnsUnbind();
        if ($("#recForm").valid()){
//            ValidateStep3Candidature(function(data){
//                if (data.Status) {
                    rec.props.btnNextF = function(){rec.s4next()};
                    rec.props.btnPrevF = function(){rec.s4prev()};    
                    initRecFormS4(); // validacao client side p step 4
                    rec.avanca();
//                }
//            });
        } else {
            rec.btnsBind();
        }
    }
    rec.s4next = function(){ // ir p step 5
        rec.btnsUnbind();
        if ($("#recForm").valid()){
//            ValidateStep4Candidature(function(data){
//                if (data.Status) {
                    rec.props.btnNextF = function(){rec.s5next()};
                    rec.props.btnPrevF = function(){rec.s5prev()};          
                    initRecFormS5(); // validacao client side p step 5
                    rec.avanca();
//                }
//            });
        } else {
            rec.btnsBind();
        }
    }
    rec.s5next = function(){ // ir p step 6
        rec.btnsUnbind();
        if ($("#recForm").valid()){
            SubmitCandidature(function (data) {
                if (data.Status) {
                    rec.avanca();
                }
              else{rec.btnsBind();}
            });
        } else {
            rec.btnsBind();
        }
          rec.btnsBind();
    }    
    rec.s1prev = function(){ // ir p step 0
        rec.btnsUnbind();
        rec.props.btnNextF = function(){rec.s0next()};
        rec.props.btnPrevF = function(){};
        initRecFormS0();
        rec.recua();
    }  
    rec.s2prev = function(){ // ir p step 1
        rec.btnsUnbind();
        rec.props.btnNextF = function(){rec.s1next()};
        rec.props.btnPrevF = function(){rec.s1prev()};
        initRecFormS1();
        rec.recua();
    }        
    rec.s3prev = function(){ // ir p step 2
        rec.btnsUnbind();
        rec.props.btnNextF = function(){rec.s2next()};
        rec.props.btnPrevF = function(){rec.s2prev()};
        initRecFormS2();
        rec.recua();
    }      
    rec.s4prev = function(){ // ir p step 3
        rec.btnsUnbind();
        rec.props.btnNextF = function(){rec.s3next()};
        rec.props.btnPrevF = function(){rec.s3prev()};
        initRecFormS3();
        rec.recua();
    }      
    rec.s5prev = function(){ // ir p step 4
        rec.btnsUnbind();
        rec.props.btnNextF = function(){rec.s4next()};
        rec.props.btnPrevF = function(){rec.s4prev()};
        initRecFormS4();
        rec.recua();
    }        
    $('#recForm').each(function(){this.reset();});

    $('#s1AnoNascTxt, #s1MesNascTxt, #s1DiaNascTxt, #s1CP1Txt, #s1CP2Txt, #s2AnoInic1Txt, #s2AnoFim1Txt, #s2Media1Txt, #s2AnoInic2Txt, #s2AnoFim2Txt, #s2Media2Txt, #s2AnoInic3Txt, #s2AnoFim3Txt, #s2Media3Txt, #s3Horas1Txt, #s3Ano1Txt, #s3Mes1Txt, #s3Horas2Txt, #s3Ano2Txt, #s3Mes2Txt, #s3Horas3Txt, #s3Ano3Txt, #s3Mes3Txt, #s4Ano1Txt, #s4Mes1Txt, #s4Ano2Txt, #s4Mes2Txt, #s4Ano3Txt, #s4Mes3Txt').keypress(function (event) {
        return permite(event,numbers);
    });
    
    $('#s1TlfTxt, #s1TlmTxt').keypress(function (event) {
        return permite(event,numbersTel);
    });  
    rec.btnsBind();
}
// form registo 
initRecFormS0 = function() {
  var form = $('#recForm').get(0); 
  $.removeData(form,'validator');  
}
initRecFormS1 = function() {
  var form = $('#recForm').get(0); 
  $.removeData(form,'validator');

    if (!removetEvt__)
        verifCampo('s1FuncaoTxt', $('#s1FuncaoTxt').val());

    verifCampo('s1ObjectTxt',$('#s1ObjectTxt').val());
    verifCampo('s1NomeTxt',$('#s1NomeTxt').val());
    verifCampo('s1AnoNascTxt',$('#s1AnoNascTxt').val());
    verifCampo('s1MesNascTxt',$('#s1MesNascTxt').val());
    verifCampo('s1DiaNascTxt',$('#s1DiaNascTxt').val());
    verifCampo('s1NaturalidTxt',$('#s1NaturalidTxt').val());
    verifCampo('s1MoradaTxt',$('#s1MoradaTxt').val());
    verifCampo('s1LocalTxt',$('#s1LocalTxt').val());
    verifCampo('s1EmailTxt',$('#s1EmailTxt').val());
    verifCampo('s1CP1Txt',$('#s1CP1Txt').val());
    verifCampo('s1CP2Txt',$('#s1CP2Txt').val());
    verifCampo('s1TlfTxt',$('#s1TlfTxt').val());  
    verifCampo('s1TlmTxt',$('#s1TlmTxt').val());
  
  $('#recForm').validate({
    errorPlacement: function(error, element) {
      error.hide();
    },
    invalidHandler: function(form, validator) {  
      if(!$('#s1SexoRadio1').is(':checked')&&!$('#s1SexoRadio2').is(':checked')){
         $('.rBtn').addClass('erro');
      } else {
          $('.rBtn').removeClass('erro');
      }  
    },    
    rules: {
      s1FuncaoTxt: {initialMessage:true,required:true},  
      s1ObjectTxt: {initialMessage:true,required:true},  
      s1NomeTxt: {initialMessage:true,required:true},  
      s1AnoNascTxt: {initialMessage:true,required:true},  
      s1MesNascTxt: {initialMessage:true,required:true},  
      s1DiaNascTxt: {initialMessage:true,required:true},  
      s1NaturalidTxt: {initialMessage:true,required:true},  
      s1EstadoCivTxt: {initialMessage:true,required:true},  
      s1MoradaTxt: {initialMessage:true,required:true},  
      s1LocalTxt: {initialMessage:true,required:true},  
      s1EmailTxt: {initialMessage:true,email:true,required:true},  
      s1CP1Txt: {initialMessage:true,required:true},  
      s1CP2Txt: {initialMessage:true,required:true},  
      s1TlmTxt: {initialMessage:true,required:true},                                              
      s1SexoRadio: {required:true,minlength:1}
    },
    onsubmit: false
   
   });
}
initRecFormS2 = function() {
  var form = $('#recForm').get(0); 
  $.removeData(form,'validator');  

    verifCampo('s2Estabelec1Txt',$('#s2Estabelec1Txt').val());
    verifCampo('s2Curso1Txt',$('#s2Curso1Txt').val());
    verifCampo('s2AnoInic1Txt',$('#s2AnoInic1Txt').val());
    verifCampo('s2AnoFim1Txt',$('#s2AnoFim1Txt').val());
    verifCampo('s2Media1Txt',$('#s2Media1Txt').val());
    verifCampo('s2Estabelec2Txt',$('#s2Estabelec2Txt').val());
    verifCampo('s2Curso2Txt',$('#s2Curso2Txt').val());
    verifCampo('s2Estabelec3Txt',$('#s2Estabelec3Txt').val());
    verifCampo('s2Curso3Txt',$('#s2Curso3Txt').val());
  
  $('#recForm').validate({
    errorPlacement: function(error, element) {
      error.hide();
    },
    invalidHandler: function(form, validator) {  
    },    
    rules: {
      s2GrauTxt: {initialMessage:true,required:true},  
      s2Estabelec1Txt: {initialMessage:true,required:true},  
      s2Curso1Txt: {initialMessage:true,required:true},  
      s2AnoInic1Txt: {initialMessage:true,required:true},  
      s2AnoFim1Txt: {initialMessage:true,required:true},  
      s2Media1Txt: {initialMessage:true,required:true}                              
     },
    onsubmit: false
   });
}
initRecFormS3 = function() {
  var form = $('#recForm').get(0); 
  $.removeData(form,'validator');
  
    verifCampo('s3OutraTxt',$('#s3OutraTxt').val());
    verifCampo('s3OutrosTxt',$('#s3OutrosTxt').val());
    verifCampo('s3Acao1Txt',$('#s3Acao1Txt').val());
    verifCampo('s3Entidade1Txt',$('#s3Entidade1Txt').val());
    verifCampo('s3Acao2Txt',$('#s3Acao2Txt').val());
    verifCampo('s3Entidade2Txt',$('#s3Entidade2Txt').val());
    verifCampo('s3Acao3Txt',$('#s3Acao3Txt').val());
    verifCampo('s3Entidade3Txt',$('#s3Entidade3Txt').val());  
  
  $('#recForm').validate({
    errorPlacement: function(error, element) {
      error.hide();
    },
    invalidHandler: function(form, validator) {  
    },    
    rules: {
    },
    onsubmit: false
   });
}
initRecFormS4 = function() {
  var form = $('#recForm').get(0); 
  $.removeData(form,'validator');
  
    verifCampo('s4Empresa1Txt',$('#s4Empresa1Txt').val());
    verifCampo('s4Funcao1Txt',$('#s4Funcao1Txt').val());
    verifCampo('s4Descr1Txt',$('#s4Descr1Txt').val());
    verifCampo('s4Empresa2Txt',$('#s4Empresa2Txt').val());
    verifCampo('s4Funcao2Txt',$('#s4Funcao2Txt').val());
    verifCampo('s4Descr2Txt',$('#s4Descr2Txt').val());
    verifCampo('s4Empresa3Txt',$('#s4Empresa3Txt').val());
    verifCampo('s4Funcao3Txt',$('#s4Funcao3Txt').val());
    verifCampo('s4Descr3Txt',$('#s4Descr3Txt').val());

  $('#recForm').validate({
    errorPlacement: function(error, element) {
      error.hide();
    },
    invalidHandler: function(form, validator) {  
    },    
    rules: {
    },
    onsubmit: false
   });
}
initRecFormS5 = function() {
  var form = $('#recForm').get(0); 
  $.removeData(form,'validator');
  
    verifCampo('s5OutrosElemTxt',$('#s5OutrosElemTxt').val());  
  
  $('#recForm').validate({
    errorPlacement: function(error, element) {
      error.hide();
    },
    invalidHandler: function(form, validator) {  
    },    
    rules: {
    },
    onsubmit: false
   });
}
/* permite */
var numbersTel='+()1234567890 ';
var numbers='1234567890';
function permite(e,allow) {
  var k;
  k=e.keyCode?parseInt(e.keyCode): parseInt(e.charCode);
  if (!((k > 36 && k < 47)||(k > 7 && k < 10))){ // para alem do allow, permite delete, tab, arrows, etc
    return (allow.indexOf(String.fromCharCode(k))!=-1);
  }
}
/* verifCampo */
function verifCampo(oCampo,oValorInic){
    $('#'+oCampo).focus(function () { if ($(this).val() == oValorInic) {$(this).val('');}});
    $('#'+oCampo).blur(function () { if ($(this).val() == '') { $(this).val(oValorInic); } });  
}

/* ddownRecForm */
function ddownRecForm(){
    $('.ddown').each(function(){
        var oDiv = '#'+$(this).attr('id'),
            oInput = '#'+$('input', this).attr('id');
        ddRecForm(oDiv,oInput);
    });
    $('#step3 .ddown').each(function(intIndex){
        $(this).css({'z-index':Number(20-intIndex)});
    });
}
function ddRecForm(elemento,input){
    $(elemento).click(function () {
        $('.dd', this).show();
    });
    $(elemento+','+elemento+' ul').mouseleave(function () {
        $('.dd', elemento).hide();
    });
    $(elemento + ' li a').each(function () {
        $(this).click(function () {
            $('.dd', elemento).hide();
            mudaInput($(this).text());
            $(input).next("input:hidden").val($(this).attr("nodeId"));
            return false;
        });
    });
    function mudaInput(valor) {
        $(input).removeClass('error').val(valor);
    }
   

}
