function filterJobs(filter){
  lock('all');
  var filterCount = 0;
  $(".modulo").hideTooltip();
  $(".modulo").raise(0).find('.image_front')
  .stop(true, false).animate({
    opacity: 0.2
  });
  for(p in projetosReais){
    var jobs = projetosReais[p].jobs;
    for(j in jobs){
      job = jobs[j].Tipo;
      query = new RegExp(".*"+job+".*");
      if(filter == 'all'){
       query = RegExp(".*");
      } else if (filter == 'none'){
       job = undefined;
      }
      if(job !== undefined && filter.match(query)){
        if (filter !== "all") $(".modulo").eq(p);
        locked[p] = false;
        filterCount++;
        $(".modulo").eq(p).raise(30).find('.image_front')
        .stop(true, false).animate({
          opacity: 1
        });
      }
    };
  }
  return filterCount;
}

function setFilters(){

  tipos = discoverFilters();
  filtros = "";
  for(t in tipos){
    filtros += "<li><a href='#'>"+tipos[t]+"</a></li>"
  }
  $(".filtro_footer ul").append(filtros);

  lockFilter = 'none';

  $(".filtro_footer li").click(function(){
    $(".ativo").not(this).removeClass("ativo");
    if($(this).hasClass("ativo")){
      $(this).removeClass("ativo");
      filterJobs('none');
      lockFilter = 'none';
    } else {
      $(this).addClass("ativo");
      filterJobs($(this).text());
      lockFilter = $(this).text();
    }
    return false;
  });

  $(".filtro_footer").hover(
    function(){
      if(lockFilter == 'none'){ filterJobs('none')};
    }, function(){
      if(lockFilter == 'none'){ filterJobs('all')};
    });

  $(".filtro_footer li a").hover(function(){
      filterJobs($(this).text());
  }, function(){
      filterJobs(lockFilter);
    });
}

function discoverFilters(){
  var tipos = new Array();
  var projetos = projetosReais;
  for(p in projetos){
    jobs = projetos[p].jobs;
    for(j in jobs){
      tipo = jobs[j].Tipo;
      if(!hasValue(tipos, tipo) && typeof(tipo) !== "undefined" && tipo !== "") tipos.push(tipo);
    }
  }
  return tipos;
}

function hasValue (array, value){
  var found = 0;
  for(i in array){
    if(array[i] == value) found++;
  }
    return found > 0;
}
