function oComprobacion(idPanel, nomObjeto) { /** * Cadena con el nombre del objeto * @access private * @var string nomObjeto */ this.nomObjeto = nomObjeto; /** * Cadena con el texto del Mensaje de error * @access private * @var string camposErroneos */ this.camposErroneos = ""; /** * Identificador del Panel donde se encuentra el objeto * Esta cadena esta relacionada con el nombre de otros * objetos de ese panel, así como con el formulario * @access private * @var string idPanel */ this.idPanel = idPanel; this.formulario = "F_"+idPanel; /** * Vector de campos * Esta cadena esta relacionada con el nombre de otros * objetos de ese panel, así como con el formulario * @access private * @var string idPanel */ this.vCamposComprobar = new Array(); /** * Instancia del objeto Paginador referenciará al * paginador de ese panel * @access private * @var oPaginacion objPaginador */ this.objPaginador = null; this.error = false; //Métodos de la Clase //Declaracion de las cabeceras this.esVacio = f_oComprobacion_esVacio; this.soloUnCheck = f_oComprobacion_soloUnCheck; this.establecerBooleano = f_oComprobacion_establecerBooleano; this.actualizarElemento = f_oComprobacion_actualizarElemento; this.comprobarMaximo = f_oComprobacion_comprobarMaximo; this.comprobarMinimo = f_oComprobacion_comprobarMinimo; this.informaAvisoJS = f_oComprobacion_informaAvisoJS; this.getCamposErroneos =f_oComprobacion_getCamposErroneos; this.getPagActiva =f_oComprobacion_getPagActiva; this.addCampo = f_oComprobacion_addCampo; this.getAccion = f_oComprobacion_getAccion; this.obtenerEtiquetaCampo = f_oComprobacion_obtenerEtiquetaCampo; this.comprobarObligatorios = f_oComprobacion_comprobarObligatorios; this.comprobarModificacion = f_oComprobacion_comprobarModificacion; this.bloquearSalida = f_oComprobacion_bloquearSalida; } /* Elimina caracteres blancos por delante y por detrás de la cadena */ function trimRight( str ) { var resultStr = ""; var i = 0; if (str+"" == "undefined" || str == null) return null; str += ""; if (str.length == 0) resultStr = ""; else { i = str.length - 1; while ((i >= 0) && (str.charAt(i) == " ")) i--; resultStr = str.substring(0, i + 1); } return resultStr; } function trimLeft( str ) { var resultStr = ""; var i = len = 0; if (str+"" == "undefined" || str == null) return null; str += ""; if (str.length == 0) resultStr = ""; else { len = str.length; while ((i <= len) && (str.charAt(i) == " ")) i++; resultStr = str.substring(i, len); } return resultStr; } function trim( str ) { var resultStr = ""; resultStr = trimLeft(str); resultStr = trimRight(resultStr); return resultStr; } String.prototype.trim = function() { return this.replace(/^\s*(\b.*\b|)\s*$/, "$1"); } /** * Instancia del objeto Paginador referenciará al * paginador de ese panel * @access private * @var oPaginacion objPaginador */ function f_oComprobacion_esVacio(tipoCampo, campo) { switch(tipoCampo) { case 'text': case 'textarea': if (trim(campo.value) == '') return true; break; case 'select-one': if (campo.options.selectedIndex == -1) return true; if (trim(campo.options[campo.options.selectedIndex].value) == '') return true; break; } return false; } // Comprobar que solamente se ha seleccionado un checkbox function f_oComprobacion_soloUnCheck() { formulario = eval('document.getElementById("'+this.formulario+'")'); contador = 0; checkSeleccionado = ''; for(i=0;i1) { checkSeleccionado = ''; break; } //checkSeleccionado = formulario.elements[i].name; checkSeleccionado = formulario.elements[i].id; } } return checkSeleccionado; } //funcion que copia el valor correspondiente al estado del check box function f_oComprobacion_establecerBooleano(campoCheck,nomCampoOculto,valorSi, valorNo) { nomForm = "F_"+this.idPanel; formulario = eval('document.forms["'+nomForm+'"]'); if (campoCheck.checked == true) { eval('formulario.'+nomCampoOculto+'.value=valorSi'); } else{ eval('formulario.'+nomCampoOculto+'.value=valorNo'); } } function f_oComprobacion_actualizarElemento(tipoDestino, objElemento, destino) { if (this.error) return; formulario = eval('document.getElementById("'+this.formulario+'")'); objElemento = eval(objElemento); tipo = objElemento.type; switch (tipo) { case 'select-one': valor = objElemento.options[objElemento.selectedIndex].value; action = 'camposDependientes'; //origen = objElemento.name; origen = objElemento.id; break; case 'text': case 'textarea': valor = objElemento.value; action = 'camposDependientes'; //origen = objElemento.name; origen = objElemento.id; break; case 'radio': valor = objElemento.value; action = 'camposDependientes'; //origen = objElemento.name; origen = objElemento.id; break; case 'hidden': valor = objElemento.value; action = 'camposDependientes'; //origen = objElemento.name; origen = objElemento.id; break; } claseManejadora = formulario.claseManejadora.value; accionAntigua = formulario.action; formulario.action = 'phrame.php?action='+action+'&claseManejadora='+claseManejadora+'&nomForm='+this.formulario+'&IGEPorigen='+origen+'&valor='+valor+'&destino='+destino+'&tipoActualizar='+tipoDestino; formulario.target = 'oculto'; formulario.submit(); formulario.action = accionAntigua; } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /*Comprueba que la longitud del campo es inferior a la longitud má}xima Devuelve true/false */ function f_oComprobacion_comprobarMaximo(tipoCampo, campo, maxLongitud) { switch(tipoCampo) { case 'textarea': if (campo.value.length > maxLongitud) campo.value = campo.value.slice(0, maxLongitud -1); break; case 'text': return(campo.value.length>maxLongitud); break; }; } /* Comprueba que la longitud del campo es superior a la longitud mínima Devuelve true/false */ function f_oComprobacion_comprobarMinimo(tipoCampo, campo, minLongitud) { return (campo.value.length < minLongitud); } function f_oComprobacion_informaAvisoJS(mensaje, objetoGenerador) { var descBreve=''; var textoAviso=''; var codAviso='IGEP-'; var tipoAviso=''; switch(mensaje) { case 'LONGITUDMAXIMA': this.codAviso = 'IGEP-902'; tipoAviso='ALERTA'; descBreve='Se sobrepasa la longitud
máxima permitida.'; textoAviso='No puede usted introducir más de '+arguments[2]+' caracteres.'; this.error=this.comprobarMaximo (objetoGenerador.type, objetoGenerador, arguments[2]); break; case 'LONGITUDMINIMA': this.codAviso = 'IGEP-903'; tipoAviso='ALERTA'; descBreve='Longitud mínima no alcanzada.'; textoAviso='Debe usted intruducir al menos '+arguments[2]+' caracteres.'; this.error=this.comprobarMinimo (objetoGenerador.type, objetoGenerador, arguments[2]); break; case 'FECHAINICIO': this.codAviso = 'IGEP-904'; tipoAviso='ALERTA'; descBreve='Fecha inferior al límite.'; textoAviso='La fecha debe ser posterior a: '+arguments[2]+'.'; this.error=comprobarLimiteFechas (objetoGenerador.value, arguments[2]); break; case 'FECHAFIN': this.codAviso = 'IGEP-905'; tipoAviso='ALERTA'; descBreve='Fecha superior al límite'; textoAviso='La fecha debe ser inferior a: '+arguments[2]+'.'; this.error=comprobarLimiteFechas (arguments[2], objetoGenerador.value); break; case 'RANGOFECHAS': this.codAviso = 'IGEP-906'; tipoAviso='ALERTA'; descBreve='Fecha fuera de rango'; textoAviso='La fecha debe situarse entre: '+arguments[2]+' y '+arguments[3]+'.'; error1 = comprobarLimiteFechas (arguments[2], objetoGenerador.value); error2 = comprobarLimiteFechas (objetoGenerador.value, arguments[3]); if (error1 || error2) { this.error = true; } break; case 'ESVACIO': this.codAviso = 'IGEP-907'; tipoAviso='ALERTA'; descBreve='Campo obligatorio'; textoAviso='El campo no puede ser vacío.'; this.error=this.esVacio (objetoGenerador.type, objetoGenerador); break; case 'MASCARA': //Métocdo en desuso? this.codAviso = 'IGEP-908'; //Si hay máscara y es de fecha (nn/nn/nnnn o nn/nn/nn) comprobamos //Si la fecha existe if ( (arguments[2]=='nn/nn/nnnn') || (arguments[2]=='nn/nn/nn' ) ) { tipoAviso='ALERTA'; descBreve='Fecha Errónea'; textoAviso='La fecha introducida ('+objetoGenerador.value+') no es una fecha válida.'; this.error=comprobarFecha(objetoGenerador.value); }; break; default: this.codAviso = 'IGEP-900'; tipoAviso='ERROR'; descBreve='Error indefinido'; textoAviso='Hay un error de E/S en la IU sin definir.'; }; if(this.error) { //this.error=false; aviso=eval('aviso'); aviso.set('aviso','capaAviso',tipoAviso,codAviso,descBreve,textoAviso); //aviso.mostrarAviso(objetoGenerador.name); aviso.mostrarAviso(objetoGenerador.id); } } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /* FUNCION: getCamposErroneos(); */ function f_oComprobacion_getCamposErroneos() { return(this.camposErroneos); } /* ----------------------------------- */ function f_oComprobacion_getPagActiva() { objPaginador = null; objPaginador = eval(this.idPanel+'_paginacion'); if ( (objPaginador==null) || (objPaginador===null) ) { alert('ObjComprobación: No existe un paginador, necesitas definirlo'); return(-1); } else { return(objPaginador.getPaginaActiva()); } } /* ----------------------------------- */ function f_oComprobacion_addCampo(campo) { //Añadimos al vector el campo a comprobar this.vCamposComprobar.push(campo); }//Fin método faddCampo function f_oComprobacion_getAccion() { btnToolTip = null; accionActiva = null; if ( eval('document.getElementById("accionActivaP_F_'+this.idPanel+'")') ) { btnToolTip = eval('document.getElementById("accionActivaP_F_'+this.idPanel+'")'); // Cdo es un cambio d capa } if ( eval('document.getElementById("accionActiva")') ) { accionActiva = eval('document.getElementById("accionActiva")'); // Para cdo viene d Phrame } if ((accionActiva != null) && (accionActiva.value != '')) return(accionActiva.value); if ((btnToolTip != null) && (btnToolTip.value != "")) return(btnToolTip.value); return('buscar'); } /* PRIVADA Devuelve el texto asociado a un campo */ function f_oComprobacion_obtenerEtiquetaCampo(nomCampo) { if ( eval('document.getElementById("txt'+this.idPanel+'_'+nomCampo+'")') ) { txtLabel = eval('document.getElementById("txt'+this.idPanel+'_'+nomCampo+'")'); txtLabel = txtLabel.innerHTML; } else { txtLabel = nomCampo; } return (txtLabel); } function f_oComprobacion_comprobarObligatorios() { switch (this.getAccion()) { case 'modificar': prefijo ="cam___"; break; case 'insertar': prefijo ="ins___"; break; default: prefijo =""; break; } this.camposErroneos=""; numCampos = this.vCamposComprobar.length; vCamposErroneos = new Array(); switch (this.idPanel) { case 'fil': case 'filDetalle': case 'filMaestro': for (i=0;i 1) { nomCampo = vCampo[1]; }; vCamposErroneos.push(nomCampo); this.camposErroneos += "
* "+this.obtenerEtiquetaCampo(this.vCamposComprobar[i]); } } } break; case 'lis': case 'lisDetalle': case 'lisMaestro': objTabla = eval(this.idPanel+'_tabla'); numFilas = objTabla.vFilasComprobar.length; // nomCampo = cam___nomCampo___panel_fila for (i=0;i 1) { campoComprobar = vCampo[1]; } yaExiste=false; for(j=0;j