/*
 * @todo funções com json para selectBox, selectBox duplo, radio e checkBox
*/

/**
* Metodo de ajax generico
*
* @param url: arquivo php a ser processado
* @param div: div que será impresso o resultado do processamento
* @param valor: value a ser passado para o arquivo php
*
* <code>
* <input type="radio" onClick="ajax('ImagemQtd.php','qtdAjax',this.value);" />
* </code>
*
* @version 1.0
* @author Eduardo Dotto Martucci <eduardo@dmti.com.br>
* @copyright Copyright (c) 2010 DM Produções Ltda. ME
*/
function ajax(url,div,valor,valor1,valor2,valor3,valor4){
    $(div).html('<img src="img/ajax.gif" alt="carregando..." title="carregando..."/>');
    $.get(url,{
        valor : valor,
        valor1 : valor1,
        valor2 : valor2,
        valor3 : valor3,
        valor4 : valor4
    },
    function(data){
        $('#'+div).slideUp('slow', function(){
            $('#'+div).html(data);
            $('#'+div).slideDown('slow');
        });
        
        ajaxJQuery()
    },
    'html');
}


/**
* Metodo de recuperar os scripts jQuery após um processamento Ajax
*
* @param null
*
* <code>
* ajaxJQuery();
* </code>
*
* @version 1.0
* @author Eduardo Dotto Martucci <eduardo@dmti.com.br>
* @copyright Copyright (c) 2010 DM Produções Ltda. ME
*/
function ajaxJQuery(){

    $("#autocompletePessoaFisica").autocomplete("PessoaFisicaAutocomplete.php", {
        width: 260,
        selectFirst: false
    });

    $("#autocompletePessoaFisica").result(function(event, data, formatted) {
        if (data)
            $("#IdPessoa").val(data[1]);
    });

    $("#autocompletePessoaJuridica").autocomplete("PessoaJuridicaAutocomplete.php", {
        width: 260,
        selectFirst: false
    });

    $("#autocompletePessoaJuridica").result(function(event, data, formatted) {
        if (data)
            $("#IdPessoa").val(data[1]);
    });

    $(".data").datepicker({
        showOn: 'focus',
        buttonImage: 'img/calendar.gif'
    });

    var container = $("#mensagem");
	var validator = $("#form").bind("invalid-form.validate", function() {
		$("#mensagem").html("<p>O formulário possue " + validator.numberOfInvalids() + " erros, veja mais informações abaixo:</p>");
		container.css("display","block");
	}).validate({
		errorElement: "span",
		success: function(label) {
			label.text("ok!").addClass("successo");
		},
		submitHandler: function(form) {
			form.submit();
		}
	});
}

/**
* Metodo 
*
* @param null
*
* <code>
* 
* </code>
*
* @version 1.0
* @author Eduardo Dotto Martucci <eduardo@dmti.com.br>
* @copyright Copyright (c) 2010 DM Produções Ltda. ME
*/
$(function(){
    /*
    selects da grid
    selecionar e desselecionar campos de checkbox da .grid
    */
    $("#sel_todos").click(function(){
        $(".listar :checkbox").attr({
            checked : true
        });
        return false;
    });

    $("#sel_nenhum").click(function(){
        $(".listar :checkbox").attr({
            checked : false
        });
        return false;
    });

    /*
    linhas alternadas da .grid
    */
    $(".listar tbody tr:odd").addClass("alternada");
	
    /*
    cantos arredondados em elementos
    */
    $("#modulo_topo").corner("top 10px");
    $("#rodape").corner("bottom 10px");
    $('.bloco').corner("tl bl 5px");
    $(".mensagem_alerta, .mensagem_erro, .mensagem_sucesso").corner("5px");
	
    /*
    tabs
    */
    $(".tabs a").click(function(){
        changeTab(this.className);
    });

});

/**
* Metodo
*
* @param tab: id da tab a ser processada
*
* <code>
*
* </code>
*
* @version 1.0
* @author Eduardo Dotto Martucci <eduardo@dmti.com.br>
* @copyright Copyright (c) 2010 DM Produções Ltda. ME
*/
/*
ex: o unico requisito para que a função funcione é que as tags <a> ,dentro da lista tenha class
com um nome especifico, e esse nome+_atual para quando estiver selecionada.
*/
function changeTab(tab){
    //se o tab = aba atual
    if(tab.match(/_atual$/)){
        return false;
    }else{
        //resgata a tab atual
        var aTab = $(".tabs a[class$='_atual']");
        //armazena o nome de sua class
        var cTemp = aTab[0].className;
        //remove o atual desse nome
        cTemp = cTemp.substr(0,cTemp.length-6);
        aTab.removeClass();
        aTab.addClass(cTemp);
        var cTab = $("."+tab);
        cTab.addClass(tab+'_atual');
    }
}
