function countProperties(obj) {
  var prop;
  var propCount = 0;

  for (prop in obj) {
    propCount++;
  }
  return propCount;
}

function htmlEntities(texto){
       //by Micox - elmicox.blogspot.com - www.ievolutionweb.com
    var i,carac,letra,novo='';
    for(i=0;i<texto.length;i++){
        carac = texto[i].charCodeAt(0);
        if( (carac > 47 && carac < 58) || (carac > 62 && carac < 127) ){
            //se for numero ou letra normal
            novo += texto[i];
        }else{
            novo += "&#" + texto[i].charCodeAt(0) + ";";
        }
    }
    return novo;
}

/**
 * LIGHTBOX MAIS OPÇÕES
 *
 * Responsável por mostrar os lightboxes
 */
function showModal(este, tarefaId){

    $("#maisopcoes input[name=id]").attr( "value", tarefaId );
    $("#maisopcoes input[name=nome]").attr( "value", tarefas[tarefaId]["nome"] );
    $("#maisopcoes textarea[name=descricao]").html( tarefas[tarefaId]["descricao"] );

    /**
     * CRONÔMETRO
     *
     * Verificações de cronômetro
     */
    gerenciaHtmlCronometro(tarefaId);
    

    //armazena o atributo href do link
    var tarefaClasse = "#" + $(este).attr('class');

    //armazena a largura e a altura da tela
    var maskHeight = $(document).height();
    var maskWidth = $(document).width();

    //Define largura e altura do div#mask iguais às dimensoes da tela
    $('#mask').css({'width':maskWidth,'height':maskHeight});

    //efeito de transiàào
    $('#mask').fadeIn(400);
    $('#mask').fadeTo("slow", 0.9);

    //armazena a largura e a altura da janela
    var winH = $(window).height();
    var winW = $(window).width();

    //centraliza na tela a janela popup
    var top = (winH - $( tarefaClasse ).height()) / 2;
    var left = (winW - $( tarefaClasse ).width()) / 2;

    $( tarefaClasse ).css('top', top);
    $( tarefaClasse ).css('left', left);
    //efeito de transição
    $(tarefaClasse).fadeIn(800);

    if( cronometroTarefas[tarefaId]["cronometro"] == "iniciar" ){
        $("#cronometro .tempo_status").css("color", "green");
    } else {
        $("#cronometro .tempo_status").css("color", "#999999");
    }
    //$("#cronometro .tempo_status").css("color", "#999999");

    $("#maisopcoes input[name=nome]").focus();

}

/**
 * Função verifica se há tarefas e gerencia a amostragem de elementos HTML
 * de acordo
 */
function gerenciaHtml(){

    var qtdTarefasAtivas = 0;
    var qtdTarefasConcluidas = 0;
    var i = 0;
    /**
     *
     */
    jQuery.each(tarefas, function(i, value){

        if( tarefas[i]["tipo"] == "ativa" ){
            qtdTarefasAtivas++;
        } else if( tarefas[i]["tipo"] == "concluida" ){
            qtdTarefasConcluidas++;
        }
    })

    
    if( qtdTarefasAtivas > 0 ){
        $(".tarefa_ativa h2").show();
    } else {
        $(".tarefa_ativa h2").fadeOut("fast");
    }
    if( qtdTarefasConcluidas > 0 ){
        $(".tarefa_concluida h2").show();
    } else {
        $(".tarefa_concluida h2").fadeOut("fast");
    }

}

function segundosParaHoras(s){
    var segundos = ( s == "" ) ? 0 : s;
    var minutos = 0;
    var horas = 0;
    
    menorQueMinuto = false; // para verificar os segundos
    menorQueHora = false; // para verificar os minutos
    while( !menorQueMinuto ){
        if( segundos > 59 ){
            minutos++;
            segundos = segundos - 60;
        } else {
            menorQueMinuto = true;
        }
    }
    /**
     * Verifica as horas
     */
    while( !menorQueHora ){
        if( minutos > 60 ){
            horas++;
            minutos = minutos - 60;
        } else {
            menorQueHora = true;
        }
    }

    if( segundos < 10 || segundos == null ) { segundos = "0" + segundos; }
    if( minutos < 10 ) { minutos = "0" + minutos; }
    if( horas < 10 ) { horas = "0" + horas; }
    return horas + ":" + ""+minutos + ":" + segundos;
}

function validaCadastroUsuarios() {
    
    var error = '';
    if ( $("input[name='data[Usuario][nome]']").attr( "value" ) == '' ){
        error += "- Insira seu Nome\n";
    }

    var email = $("input[name='data[Usuario][email]']").attr( "value" );
    if ( email == ''){
        error += "- Insira um email Válido\n";
    } else if ( email.indexOf('@') == -1 || email.indexOf('.') == -1 ){
        error += "- Insira um email Válido\n";
    }

    if ( $("input[name='data[Usuario][senha]']").attr( "value" ) == '' ){
        error += "- Insira sua Senha\n";
    }
    if ( error != '' ){
        alert( "ERROS ENCONTRADOS:\n\n" +error );
        return false;
    } else {
        return true;
    }
    
}
