//parametros aceitaveis: // Avisos: [ { aviso: 'alguma coisa', label: 'outra coisa' } ] // textoTit: 'texto que aparece como título do aviso de espera.' // tempoAberto: tempo em que o elemento ficará aberto até se fechar // temFechar: true/false. Se for verdadeiro insere um botão de fechar no aviso // classe: para inserir uma classe a mais no elemento // comEspera: 'pq' ou 'gr' ou 'aviso' - serve para dizer se será inserido logotipo do kaits girando (pequeno ou grande) ou inserir a imagem de aviso. // aparece: 'baixo', 'cima', 'esquerda', 'direita' (para onde será o slide que mostra o aviso) // qst: se houver o qst então o aviso só será fechado quando o usuario clicar sim ou não... // ****************************************************************************************************************************** // Classe que gerencia um quadro de avisos com informações sobre algum item // ****************************************************************************************************************************** function clAviso(parametros) { for (var i in parametros) { this[i] = parametros[i]; } } clAviso.prototype.cria = function() { this.ehAviso = true; var classeNova = (this.classe) ? this.classe : ''; this.div = this.onde = cria('div', { className: 'aviso ' + classeNova }); if (!this.avisos || this.avisos.length === 0) return this.div; var esteAviso = this; if (this.comEspera) colocaClasse(this.div, 'espera ' + this.comEspera); if (this.textoTit || this.temFechar) var tit = this.div.appendChild(cria('h6', { innerHTML: (this.textoTit) ? this.textoTit : '' })); if (this.temFechar) tit.appendChild(cria('img', { src: 'img/ico16_fechar.png', title: "fechar este aviso", onclick: function() { esteAviso.fecha.apply(esteAviso); } })); var listaAvisos = this.div.appendChild(cria('ul')); if (this.avisos.length === undefined || this.qst) { colocaClasse(listaAvisos, 'soUm'); listaAvisos.appendChild(this.linha(this.avisos)); if (this.classe == 'salve') colocaClasse(listaAvisos.appendChild(this.linha({ aviso: "alteraçoes ainda não gravadas" })), 'impressao'); } else { for (var i = 0; i < this.avisos.length; i++) listaAvisos.appendChild(this.linha(this.avisos[i])); } if (this.campo) { if (this.campo.tipo) { var objetoCampo = eval(this.campo.tipo); this.objetoCampo = new objetoCampo(this.campo, this); var divCampo = this.objetoCampo.cria(); this.div.appendChild(divCampo); this.campoFoca = this.objetoCampo.campo; } else { for (var i = 0; i < this.campo.length; i++) { var objetoCampo = eval(this.campo[i].tipo); this.campo[i].objetoCampo = new objetoCampo(this.campo[i], this); var divCampo = this.campo[i].objetoCampo.cria(); if (this.campoJuntoCadaAviso){ listaAvisos.childNodes[this.campo[i].campoJuntoCadaAviso].append(divCampo); } else this.div.appendChild(divCampo); } this.campoFoca = this.campo[0].objetoCampo.campo; } } if (this.botoes) this.objBotoes = new clBotoes(this, false); if (this.limpa) { var lista = listaAvisos.childNodes; for (var i = 0; i < lista.length; i++) { lista[i].appendChild($("
")[0]); } } return this.div; }; clAviso.prototype.linha = function(cadaAviso) { var li = cria('li'); if (!this.qst) { if (typeof cadaAviso.aviso == "object") { li.appendChild(cadaAviso.aviso[0]); } else if (cadaAviso.aviso.indexOf("<") >= 0 && cadaAviso.aviso.indexOf(">") > 0) { // tem tag html li.appendChild(cria("span", { innerHTML: ((cadaAviso.label) ? cadaAviso.label.replace(/\:$/, '') + ': ' : '') + cadaAviso.aviso })); } else { li.appendChild(cria('txt', ((cadaAviso.label) ? cadaAviso.label.replace(/\:$/, '') + ': ' : '') + cadaAviso.aviso)); } } else { for (var i = 0; i < cadaAviso.length; i++) { var bot = li.appendChild(cria('input', { type: 'button', value: cadaAviso[i].aviso, className: 'botQst'} )); adicionaEvento(bot, 'click', cadaAviso[i].funcao); } } return li; }; clAviso.prototype.mostra = function() { $(this.div).show(); //slideDown(200); var esteAviso = this; this.visivel = true; if (this.campoFoca) this.campoFoca.focus(); if (this.tempoAberto > 0) this.intervalo = setTimeout(function() { esteAviso.fecha.call(esteAviso) esteAviso.visivel = false }, this.tempoAberto); }; clAviso.prototype.fecha = function() { var divAviso = this.div; $(divAviso).slideUp(200, function() { removeObj(divAviso); }); this.visivel = false; if (this.aposFechar) this.aposFechar.call(this); }; // ******************************************************************************************************************************* // *******************************************************************************************************************************