jQuery.expr[':'].contains = function(a,i,m){
    return jQuery(a).text().toUpperCase().indexOf(m[3].toUpperCase())>=0;
};

var cal = Calendar.setup({ onSelect: function(cal) { cal.hide() }, fdow: 0 });

var filtro_tempo;
function filtrar(valor) {
  $('#listaStatus').css('display', 'inline');
  clearTimeout(filtro_tempo);
  filtro_tempo = setTimeout(function() {
    if(jQuery.trim(valor).length > 0) {
      $("#lista > li").css("display", "none");
      var resultado = $("#lista > li > label:contains('"+valor+"')");
      if (resultado.length > 0) {
        resultado.parent().css("display", "block");
        $("#listaAviso").css("display", "none");
      } else {
        $("#listaAviso").css("display", "block");
      }
    } else {
      $("#lista > li").css("display", "block");
      $("#listaAviso").css("display", "none");
    }
    $('#listaStatus').css('display', 'none');
  }, 1000);
}

function salario_set(quem, onde) {
  $("#"+onde+'_salario_faixa_min').val(quem.value);
  $("#"+onde+'_salario_faixa_max').val(quem.value);
}

function aplicaMascara(onde, tipo) {
  document.getElementById(onde).value = tipo(document.getElementById(onde).value);
}

var etapa = function(obj, etapa){
  $("#etapa1,#etapa2,#etapa3,#etapa4,#etapa5").css("display", "none");
  $(etapa).css("display", "block");
  $("#bolinhas > li > a").removeClass( "ativo" );
  obj.addClass( "ativo" );
}

var popular_cidades = function(estado, callback) {
  $("#cidades > select")
    .empty()
    .attr("disabled", "disabled");
  $("<option/>")
    .text("Escolha um estado")
    .appendTo("#cidades > select");
  $.getJSON("/estado/"+estado+"/municipios.json",
    function(data){
	  $("#cidades > select").empty();
      $.each(data, function(i,item){
        $("<option/>")
			.attr("value", item.municipio.codigo)
			.attr("id", item.municipio.id)
			.text(item.municipio.nome)
			.appendTo("#cidades > select");
      });
	  $("#cidades > select").attr("disabled", "");
	  if(callback != undefined) callback();
    });
};

var iniciar_vagas = function() {

  $("#vaga_divulga_data_inicial").change(function(){
    var vaga_inicial = $("#vaga_divulga_data_inicial").val().split("/");

    hoje = new Date();
    hoje_dia = hoje.getDate();
    hoje_mes = hoje.getMonth();
    hoje_ano = hoje.getFullYear();

    var idade_ano = (hoje_ano - vaga_inicial[2])
    if ((hoje_mes <= vaga_inicial[1]) && (hoje_dia < vaga_inicial[0])) {
      idade_ano = idade_ano - 1;
    }

    if ($("#vaga_divulga_data_inicial").val().length < 10) { jAlert("Data inválida.", "Aviso"); }
    if (vaga_inicial[2] < 1900)                            { jAlert("Ano não pode ser inferior a 1900.", "Aviso"); }
    else if (vaga_inicial[2].length < 4)                   { jAlert("Ano deve ter 4 dígitos.", "Aviso"); }
    else if (vaga_inicial[1] > 12)                         { jAlert("Mês inválido.", "Aviso"); }
    else if (vaga_inicial[0] > 31)                         { jAlert("Dia inválido.", "Aviso"); }
  });

  $("#vaga_divulga_data_final").change(function(){
    var vaga_final = $("#vaga_divulga_data_final").val().split("/");

    hoje = new Date();
    hoje_dia = hoje.getDate();
    hoje_mes = hoje.getMonth();
    hoje_ano = hoje.getFullYear();

    var idade_ano = (hoje_ano - vaga_final[2])
    if ((hoje_mes <= vaga_final[1]) && (hoje_dia < vaga_final[0])) {
      idade_ano = idade_ano - 1;
    }

    if ($("#vaga_divulga_data_final").val().length < 10) { jAlert("Data inválida.", "Aviso"); }
    if (vaga_final[2] < 1900)                            { jAlert("Ano não pode ser inferior a 1900.", "Aviso"); }
    else if (vaga_final[2].length < 4)                   { jAlert("Ano deve ter 4 dígitos.", "Aviso"); }
    else if (vaga_final[1] > 12)                         { jAlert("Mês inválido.", "Aviso"); }
    else if (vaga_final[0] > 31)                         { jAlert("Dia inválido.", "Aviso"); }
  });


  $(":button").each(function(){
  	$(this).click(function(){
  	  etapa($("#bolinhas > li > a[href='"+$(this).attr("alt")+"']"), $(this).attr("alt") );
    });
  });
  $("#vaga_estado").change(function(){
	  popular_cidades($(this).val());
  });
  $("#bolinhas > li > a").each(function(){
    $(this).click( function() {
      etapa($(this), $(this).attr("href"));
    });
  });

  $("#vaga_salario_fixo")     .val( $("#vaga_salario_faixa_min").val() );
  $("#vaga_salario_comissao") .val( $("#vaga_salario_faixa_min").val() );
  $("#vaga_salario_fixo")     .val( moeda( $("#vaga_salario_fixo").val()      ) );
  $("#vaga_salario_faixa_min").val( moeda( $("#vaga_salario_faixa_min").val() ) );
  $("#vaga_salario_faixa_max").val( moeda( $("#vaga_salario_faixa_max").val() ) );
  $("#vaga_salario_comissao") .val( moeda( $("#vaga_salario_comissao").val()  ) );
  $("#vaga_comissao")         .val( moeda( $("#vaga_comissao").val()          ) );

  cal.manageFields("calendario_inicial", "vaga_divulga_data_inicial", "%d/%m/%Y");
  cal.manageFields("calendario_final", "vaga_divulga_data_final", "%d/%m/%Y");
	
	if ($('#areas_error > .formError').length != 0) { $('#areas').addClass("fieldWithErrors") }

  if ($('#etapa4 > .fieldWithErrors').length != 0) { 
    $('#bola4').addClass("erro") 
    etapa($("#bolinhas > li > a[href='#etapa4']"), "#etapa4");
  }
  if ($('#etapa3 > .fieldWithErrors').length != 0) {
    $('#bola3').addClass("erro")
    etapa($("#bolinhas > li > a[href='#etapa3']"), "#etapa3"); 
  }
  if ($('#etapa2 > .fieldWithErrors').length != 0) { 
    $('#bola2').addClass("erro")
    etapa($("#bolinhas > li > a[href='#etapa2']"), "#etapa2");
  }
  if ($('#etapa1 > .formError').length != 0) {
     $('#bola1').addClass("erro")
     etapa($("#bolinhas > li > a[href='#etapa1']"), "#etapa1");
  }
	
	
};

var iniciar_empresas = function() {
  $("#empresa_estado").change(function(){
	  popular_cidades($(this).val());
  });

  $("#etapa0 > :button").click(function(){
  	$('#etapa0').hide();
    $('#etapa1').show();
  });

  $("#etapa1 > a[href='#termos']").click(function(){
  	$('#etapa1').hide();
    $('#etapa0').show();
  });

};

var iniciar_curriculos = function() {
  $("#curriculo_data_nascimento").change(function(){
    var data_nascimento = $("#curriculo_data_nascimento").val().split("/");

    hoje = new Date();
    hoje_dia = hoje.getDate();
    hoje_mes = hoje.getMonth();
    hoje_ano = hoje.getFullYear();

    var idade_ano = (hoje_ano - data_nascimento[2])
    if ((hoje_mes <= data_nascimento[1]) && (hoje_dia < data_nascimento[0])) {
      idade_ano = idade_ano - 1;
    }

    if ($("#curriculo_data_nascimento").val().length < 10) { jAlert("Data inválida.", "Aviso"); }
    if (idade_ano < 16)                                    { jAlert("Deve ter mais que 16 anos.", "Aviso"); }
    else if (data_nascimento[2] < 1900)                    { jAlert("Ano não pode ser inferior a 1900.", "Aviso"); }
    else if (data_nascimento[2].length < 4)                { jAlert("Ano deve ter 4 dígitos.", "Aviso"); }
    else if (data_nascimento[1] > 12)                      { jAlert("Mês inválido.", "Aviso"); }
    else if (data_nascimento[0] > 31)                      { jAlert("Dia inválido.", "Aviso"); }
  });

  cal.manageFields("calendario_nascimento", "curriculo_data_nascimento", "%d/%m/%Y");

  if($("#experiencias > div").size() == 0) addExperiencia();

  $("#experiencias > div > input[name='curriculo[curriculo_experiencias_attributes][][data_entrada]'] , #experiencias > div > input[name='curriculo[curriculo_experiencias_attributes][][data_saida]']").each(function(){
     cal.manageFields($("img[name='"+$(this).attr("id")+"']").attr("id"), $(this).attr("id"), "%d/%m/%Y");
  });

  $("#experiencias > div > input[name='curriculo[curriculo_experiencias_attributes][][salario]']").each(function(){
     $(this).val( moeda( $(this).val() ) );
  });

  $("#curriculo_estado").change(function(){
    popular_cidades($(this).val());
  });

  $("#curriculo_salario").val( moeda( $("#curriculo_salario").val() ) );

};

function toggleFaixa(qual) {

  $("#fixo,#faixas,#comissao").css("display","none");
  if(qual == "1") $("#fixo").css("display","inline");
  if(qual == "2") $("#faixas").css("display","inline");
  if(qual == "3") $("#comissao").css("display","inline");

}

function toggleDeficiencia(deficiencia) {
  if ($(deficiencia).attr("checked")) {
  	$("#opcoes_deficiencia").css("display","inline");
  } else {
	$("#opcoes_deficiencia").css("display","none");
	$("#opcoes_deficiencia > input").attr("checked", "");
  }
}

function toggleTermos(check, botao) {
  if ($("#"+check).attr("checked")) {
  	$("#"+botao).attr("disabled","").css("color","#333333");
  } else {
  	$("#"+botao).attr("disabled","disabled").css("color","#999999");
  }
}

function addSiteRelacionamento() {
  var div = $("#sitesrelacionamento > :first-child").clone();
  div.children().each(function(){
      $(this).val('http://');
  });
  div.css("display", "block").appendTo("#sitesrelacionamento");
}

function addIdioma() {
  var div = $("#idiomas > :first-child").clone();
  div.children().each(function(){
      $(this).removeAttr("checked");

      var options = $(this).children();
      options.each(function(){
          $(this).removeAttr("selected");
      });
  });
  div.css("display", "block").appendTo("#idiomas");
}

function addArea() {
  if ($("#areas > div:visible").size() < 2) {
    var div = $("#areas > :first-child").clone();
    div.children().each(function(){
        var options = $(this).children();
        options.each(function(){
            $(this).removeAttr("selected");
        });
    });
    div.css("display", "block").appendTo("#areas");
  } else {
    jAlert("Você só pode selecionar duas áreas no máximo.","Aviso");
  }
}


function addExperiencia() {
  var experiencias = $("#experiencias > div > input[name='curriculo[curriculo_experiencias_attributes][][data_entrada]']");
  var num = experiencias.size()+1;
  nId = "N"+num;

  var div =  $("#experiencias > :first-child").clone();
  div.children().each(function(){
      $(this).val('');
      if( $(this).attr("id").substring(0,29) == "curriculo_salario_experiencia") $(this).val('R$');
      if( $(this).attr("id").substring(0,24) == "experiencia_data_entrada") $(this).attr("id", "experiencia_data_entrada"+nId);
      if( $(this).attr("id").substring(0,23) == "calendario_data_entrada")  {
        $(this).attr("id", "calendario_data_entrada"+nId);
        $(this).attr("name", "experiencia_data_entrada"+nId);
      }
      if( $(this).attr("id").substring(0,22) == "experiencia_data_saida") $(this).attr("id", "experiencia_data_saida"+nId);
      if( $(this).attr("id").substring(0,21) == "calendario_data_saida") {
        $(this).attr("id", "calendario_data_saida"+nId);
        $(this).attr("name", "experiencia_data_saida"+nId);
      }
      if( $(this).attr("for") != undefined ) {
        if( $(this).attr("for").substring(0,24) == "experiencia_data_entrada") $(this).attr("for", "experiencia_data_entrada"+nId);
        if( $(this).attr("for").substring(0,22) == "experiencia_data_saida") $(this).attr("for", "experiencia_data_saida"+nId);
      }
  });
  div.css("display", "block").appendTo("#experiencias");

  cal.manageFields("calendario_data_entrada"+nId, "experiencia_data_entrada"+nId, "%d/%m/%Y");
  cal.manageFields("calendario_data_saida"+nId, "experiencia_data_saida"+nId, "%d/%m/%Y");
}

function removeAdd(qual) {
  $(qual).parent().css("display", "none").children().each(function(){
    $(this).val('').removeAttr("selected").removeAttr("checked");
  });
}

function removeTelefone(qual) {
  $(qual).parent().remove();
}

var iniciar_vaga_curriculo = function() {
  $("#vaga_curriculo a").click(function(){

    var json = {};
    json['vaga_curriculo[vaga_id]'] = $("#vaga_curriculo_vaga").val();
    json['vaga_curriculo[curriculo_id]'] = $("#vaga_curriculo_curriculo").val();

    $.ajax({
       type: "POST",
       data: json,
       url: "/vaga_curriculos.json",
       error: function(xhr, textStatus, errorThrown) {
         if(xhr.status == 406) { window.location = '/'; }
       },
       success: function(data){
         $("#vaga_curriculo").html("Currículo enviado com sucesso para essa vaga!");
       }
    });

  });
};

function filtro(){
	var restricoes = document.getElementsByName("restricoes[]");
	var j = false;
	
	for (i=0; i< restricoes.length; i++) {
		if (restricoes[i].checked) {
			j = true;
		}
	}
	if(j){
		$("#filtro").submit();	
	}else{
		jAlert("Selecione pelo menos um filtro", "Aviso");
	}
		
}

function valida_fale_conosco(){
	if (($("#nome").val() == "") || ($("#email").val() == "") || ($("#assunto").val() == "") || ($("#mensagem").val() == "")){
		jAlert('Preencha todos os campos', 'Aviso');
	}else{
		$("#fale").submit();
	}
}

var validar_comment = function() {

    var nome = $("#comentario_nome");
    var email = $("#comentario_email");
    var conteudo = $("#comentario_conteudo");

    if($.trim(nome.attr("value")) == "" ) {
        nome.attr("class", "fieldWithErrors").focus();
        return false;
    }

    if($.trim(email.attr("value")) != "") {
        var filter = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
        if(!filter.test(email.attr("value") )) {
            email.attr("class", "fieldWithErrors").focus();
            return false;
        }
    } else {
        email.attr("class", "fieldWithErrors").focus();
        return false;
    }

    if($.trim(conteudo.attr("value")) == "" ) {
        conteudo.attr("class", "fieldWithErrors").focus();
        return false;
    }
    return true;
};

