////////// // AJAX // ////////// /* * As definições abaixo correspondem a utilização de Popups */ var nomeDialogoAtivo = ""; var bloqBrowser = true; var hideBloq = true; $(function(){ // Dialog exemplo $('#dialog-exemplo').dialog({ autoOpen :false, modal :true, width :600, height :400, resizable :false }); // Dialog exemplo link $('#dialog-exemplo-link').click(function(){ $('#dialog-exemplo').dialog('open'); return false; }); // Dialog confirm $('#dialog-confirm').dialog({ autoOpen :false, modal :true, resizable :false, buttons: { "Não": function() { $(this).dialog("close"); }, "Sim": function() { submeter(); $(this).dialog("close"); } } }); // Dialog confirm link $('#dialog-confirm-link').click(function(){ $('#dialog-confirm').dialog('open'); return false; }); // Dialog funções gerais $('#dialog-funcoes').dialog({ autoOpen :false, modal :true, width :600, height :400, resizable :false }); // Dialog funções gerais link $('#dialog-funcoes-link').click(function(){ $('#dialog-funcoes').dialog('open'); return false; }); // Dialog funções gerais link $('#dialog-situacao-link').click(function(){ $('#dialog-situacao').dialog('open'); return false; }); // Datepicker $('#campo-data-de').datepicker({ changeMonth :true, changeYear :true, yearRange :'1900:2010' }); $('#campo-data-a').datepicker({ changeMonth :true, changeYear :true, yearRange :'1900:2010' }); $('input[name=paginaAtual]').off('click').off('keypress').on('keypress',function(e) { var tecla = (e.keyCode?e.keyCode:e.which); if(tecla == 13){ $(this).parent("form").submit(); return false; } }); $('#dialog-erro').dialog({ autoOpen :false, modal :true, resizable :false, buttons: { "Ok": function() { $(this).dialog("close"); } } }); definirReferenciasAjax(); $().ajaxStart(function(){ if(bloqBrowser){ $("#bloquerBrowser").show(); } }); $().ajaxComplete(function(){ definirReferenciasAjax(); if ( hideBloq ){ $("#bloquerBrowser").hide(); } }); $().ajaxSuccess(function(evnt, request, settings){ if ( nomeDialogoAtivo != '' && nomeDialogoAtivo != undefined ){ $("#" + nomeDialogoAtivo).dialog("destroy"); $("#" + nomeDialogoAtivo).remove(); $(document.body).append(request.responseText); $("#" + nomeDialogoAtivo).dialog({ autoOpen :false, modal :true, width :750, height :500, resizable :false, zIndex :1000 }); $("#" + nomeDialogoAtivo).dialog("open"); } }); $().ajaxError(function(request, settings, exception){ $("#bloquerBrowser").hide(); $('#dialog-erro').dialog('open'); }); $("form").submit(function(eventObject){ removerAreaMensagem(); //POG--Corrigir problema ao fazer download de relatórios, etc. if($('#isRelatorio') == undefined || $('#isRelatorio').attr('value') == undefined || $('#isRelatorio').attr('value') == 'false'){ $("#bloquerBrowser").show(); }else{ $('#isRelatorio').attr('value','false'); } //} }); $("input[type='submit']").click(function(eventObject){ if(($(this).attr('value').toUpperCase() == 'CONSULTAR') || ($(this).attr('value').toUpperCase() == 'CONSULTA')){ $("input[name='paginaAtual']").attr('value','1'); } }); }); function limparForm(botao, elementosNaoLimpos) { formulario = botao.form; if(elementosNaoLimpos == undefined){ elementosNaoLimpos = new Array(""); } $(formulario).find(':input').each(function() { podeLimpar = true; for(i = 0; i < elementosNaoLimpos.length; i++){ if(elementosNaoLimpos[i].indexOf(this.name) >= 0){ podeLimpar = false; } } if(podeLimpar){ switch(this.type) { case 'password': case 'text': case 'textarea': $(this).val(''); break; case 'select-multiple': $(this).empty(); break; case 'select': case 'select-one': this.selectedIndex = -1; break; case 'checkbox': case 'radio': this.checked = false; } } }); } //Funcao Ajax Generica a ser usado por submit popup. function registrarBotaoPopup(objJQuery) { $(objJQuery).unbind('click'); objJQuery.click(function() { var formPai = getElementoPai($(this), "FORM"); var formAcao = $(formPai).attr('action'); var indexSeparador = formAcao.indexOf("."); var nomeBotao = $(this).attr("name"); var botao = $(this); var url = formAcao.substring(0, indexSeparador); url += "!"; url += nomeBotao.substring(nomeBotao.indexOf(":")+1); url += ".action"; $.ajax({ type: "POST", url: url, data: $(formPai).serialize(), success: function(response){ var dialog = getElementoPai($(botao), "DIV", "dialog"); nomeDialogoAtivo = $(dialog).attr("id"); if (botao.attr('fechar')) { onclose = botao.attr('onclose'); if (onclose != null && onclose != '') { eval(onclose); } $("#"+nomeDialogoAtivo).dialog('close'); if (botao.attr('remover')) { $("#"+nomeDialogoAtivo).dialog('destroy').remove(); } nomeDialogoAtivo = ''; } } }); return true; }); objJQuery.each(function(index) { var frm = $(this).closest("form"); var btn = $('#submitPopup', frm); frm.unbind('submit'); frm.submit(function() { btn.click(); return false; }); }); }; function registrarSubmitPopup(objJQuery) { $(objJQuery).unbind('click'); objJQuery.click(function() { var idToId = $("#" + nomeDialogoAtivo + " > form > input[id='idToId']").get(0).value; var value = $("input[id='resultado_hidden']").get(0).value; var formSubmit = $("#" + nomeDialogoAtivo + " > form > input[id='formSubmit']").get(0).value; var metodoSubmit = $("#" + nomeDialogoAtivo + " > form > input[id='metodoSubmit']").get(0).value; $('input[id="'+idToId+'"]').val(value); $(getElementoPai($(this), "DIV", "dialog")).dialog('close'); if ((metodoSubmit.length > 0) && (formSubmit.length > 0)) { var formulario = $('form[id="'+formSubmit+'"]'); var formAcao = $(formulario).attr("action"); var metodoAcao = "!"+metodoSubmit+".action"; //Verifica se a url já está ajustada antes de fazê-lo if(!(new RegExp(metodoAcao).test(formAcao))) { var indexSeparador = formAcao.indexOf("."); var url = formAcao.substring(0, indexSeparador) + metodoAcao; $('form[id="'+formSubmit+'"]').get(0).action = url; } $('form[id="'+formSubmit+'"]').get(0).submit(); } return false; }); } function definirReferenciasAjax() { bloqBrowser = true; //Funcao Ajax Generica a ser usado por submit. registrarBotaoPopup($("button[id='submitPopup']")); registrarSubmitPopup($('#resultado-link')); } /* * Remover a div de mensagens da popup */ function removerBarraMensagens(popup) { $("#"+popup+" > div").remove(); } //-- fim ajax function chkBoxChildByName(objectCheck, nameChkChild){ var isChecked = !$(objectCheck).attr("checked"); $('input[name="'+nameChkChild+'"]').attr("checked", !isChecked); return true; } function unChekBox(nameCheckCabecalho, idCheckLista, idBtn){ $('.'+nameCheckCabecalho).click(function() { if ( !$('.'+nameCheckCabecalho).is(':checked') ) { $('input[name='+nameCheckCabecalho+']').removeAttr('checked'); $('#'+idCheckLista).removeAttr('checked'); $('#'+idBtn).attr('disabled', true); $('#'+idBtn).attr('class', 'form-button-disable'); } }); } function desabilitarInputsForm(){ $("input[type='text']").attr("disabled", true); $("input[type='radio']").attr("disabled", true); $("input[type='checkbox']").attr("disabled", true); $("select").attr("disabled", true); $("textarea").attr("disabled", true); $("span[class='form-campo-obrigatorio']").hide(); $("p[class='form-legenda-campo-obrigatorio']").hide(); } function habilitaInputsForm(){ $("input[type='text']").attr("disabled", false); $("input[type='radio']").attr("disabled", false); $("input[type='checkbox']").attr("disabled", false); $("select").attr("disabled", false); $("textarea").attr("disabled", false); $("span[class='form-campo-obrigatorio']").show(); $("p[class='form-legenda-campo-obrigatorio']").show(); } function limitar(id,limit){ var text = document.getElementById(id).value; if(text.length >= limit){ text = text.substring(0,limit); } document.getElementById(id).value = text; } function maxLengthTextArea(object, maxLen){ var tamanho = object.value.length; var tex=object.value; if (tamanho>=maxLen) { object.value=tex.substring(0,maxLen); return false; } return true; } function selecionarTodosComboMultiple(idCombo){ $("#"+idCombo +" option").each(function(){ $(this).attr('selected', true); }); } function adicionarItemCombo(select, value, text){ if(value != ''){ var naoAchou = true; $("#"+select+" option").each(function() { if($(this).attr("value") == value){ naoAchou = false; } }); if(naoAchou){ $("#"+select).append(""); } } } function preencherListaCombo(idSelect, idSelectDestino){ var select = document.getElementById(idSelect); for ( var i = 0; i < select.length; i++) { if(select[i].selected) { adicionarItemCombo(idSelectDestino, select[i].value, select[i].text); } } $("#"+idSelect+" option:selected").remove(); } function preencherTodosListaCombo(idSelect, idSelectDestino){ var select = document.getElementById(idSelect); for ( var i = 0; i < select.length; i++) { adicionarItemCombo(idSelectDestino, select[i].value, select[i].text); } $("#"+idSelect).attr("value",''); $("#"+idSelect).empty(); } function registrarMarcarDesmarcar(chkAll, chk){ var vChkAll = $(chkAll); var vChk = $(chk); vChkAll.click(function(){ var opCheck = false; if ( vChkAll.is(':checked') ){ opCheck = true; } vChk.each(function(){ $(this).attr('checked', opCheck); }); }); vChk.click(function(){ var opCheck = true; vChk.each(function(){ if ( !$(this).is(':checked') ){ opCheck = false; return; } }); vChkAll.attr('checked', opCheck); }); } function removerAreaMensagem(){ $('#area-mensagens').remove(); $('#areaMensagemDownload').html(''); } function isRelatorioCall(){ $('#isRelatorio').attr('value','true'); removerAreaMensagem(); $("#bloquerBrowser").hide(); } /* * Essa função permite mascarar um campo numerico com casas decimais e que * aceite apagar os valores sem deixar 0,00 * */ function maskNumber(event, element, limit, centsLimit, allowNegative){ var tecla = event.keyCode || event.witch; var valor = $(element).val(); if (valor != ''){ valor = valor.replace('\.', '').replace(',','\.'); } if (isNaN(valor) || ((tecla == 8 || tecla == 46) && (valor == '' || parseFloat(valor) == 0))) { $(element).val(''); $(element).unbind(); }else{ maskMoney(element, limit, centsLimit, allowNegative); } } function maskMoney(element, limit, centsLimit, allowNegative) { if (allowNegative == undefined){ allowNegative = false; } if (centsLimit == undefined){ centsLimit = 2; } //Configuração para campos de Real. $(element).priceFormat({ limit: limit, centsLimit: centsLimit, allowNegative: allowNegative }); } function somenteNumero(campo) { var digits = "0123456789"; var campo_temp; for ( var i = 0; i < campo.value.length; i++) { campo_temp = campo.value.substring(i, i + 1); if (digits.indexOf(campo_temp) == -1) { campo.value = campo.value.substring(0, i); } } } /** * Adiciona um option a um componente do tipo SELECT * @param key - ID DO ELEMENTO COM O CHAVE DO VALOR SELECIONADO * @param value - ID DO ELEMENTO COM A DESCRIÇÃO DO VALOR SELECIONADO * @param select - ID COMPONENTE HTML * @param idText - ID DO ELEMENTO COM A DESCICAO DO VALOR SELECIONADO A SER ADICIONADO */ function adicionarOpcao(key, value, select, idText, uniqueByValue) { if (uniqueByValue == undefined || uniqueByValue == null){ uniqueByValue = true; } if (key != null && jQuery.trim(key) != '') { var existe = false; if (uniqueByValue){ existe = $('#' + select).find('option[value="'+$('#'+key).val()+'"]').length > 0; }else{ $('#' + select).find('option').each(function(){ if ($(this).text() == $('#'+value).val()){ existe = true; } }); } if (!existe){ if($('#'+key).val()!='' && $('#'+key).val()!=undefined && $('#'+value).val()!='' && $('#'+value).val()!=undefined){ $('#' + select).append($('