// -- abrirventana() - Función que abre un pop up. // -- checkEmail() - Función que comprueba que un campo tenga formato de email. // -- fieldNumber() - Función que comprueba que un campo tenga formato de número. function abrirventana(url,ancho,alto,valorOpciones){ if (ancho==null)var ancho=517; if (alto==null) var alto=380; var left=(screen.width - ancho)/2; var top=(screen.height - alto)/2; if ( valorOpciones==1 ) opciones='width='+ancho+',height='+alto+',left='+left+',top='+top+',location=0,toolbar=0,status=0,menubar=0,directories=0,resizable=0,scrollbars=0,copyhistory=0'; else opciones='width='+ancho+',height='+alto+',left='+left+',top='+top+',location=yes,toolbar=yes,status=yes,menubar=yes,directories=yes,resizable=yes,scrollbars=yes,copyhistory=yes'; window.open(url,'',opciones); } function abrirVideo(fichero) { if (ancho==null)var ancho=370; if (alto==null) var alto=260; var left=(screen.width - ancho)/2; var top=(screen.height - alto)/2; var url ='/asc/video/test2.jsp'; url = url + '?video=' + fichero; opciones='width='+ancho+',height='+alto+',left='+left+',top='+top+',location=0,toolbar=0,status=0,menubar=0,directories=0,resizable=0,scrollbars=0,copyhistory=0'; window.open(url,'',opciones); } function isNumericChar(evento) { return (evento.keyCode <= 13 || evento.keyCode >= 48 && evento.keyCode <= 57) || evento.keyCode == 42 || evento.keyCode == 46; } function validarFecha(fecha){ var fecha = fecha.split("/"); var Dia = fecha[0]; var Mes = fecha[1]; var Ano = fecha[2]; // Valido el año if (isNaN(Ano) || Ano.length<4 || parseFloat(Ano)<1900){ //alert('Año inválido'); return false; } // Valido el Mes if (isNaN(Mes) || parseFloat(Mes)<1 || parseFloat(Mes)>12){ //alert('Mes inválido'); return false; } // Valido el Dia if (isNaN(Dia) || parseInt(Dia, 10)<1 || parseInt(Dia, 10)>31){ //alert('Día inválido'); return false; } if (Mes==4 || Mes==6 || Mes==9 || Mes==11 || Mes==2) { if (Mes==2 && Dia > 28 || Dia>30) { //alert('Día inválido'); return false; } } return true; } diferenciaFechas=function(CadenaFecha1,CadenaFecha2) { //Obtiene dia, mes y año var fecha1 = new fecha( CadenaFecha1 ); var fecha2 = new fecha( CadenaFecha2 ); //Obtiene objetos Date var miFecha1 = new Date( fecha1.anio, fecha1.mes, fecha1.dia ); var miFecha2 = new Date( fecha2.anio, fecha2.mes, fecha2.dia ); //Resta fechas y redondea var diferencia = miFecha1.getTime() - miFecha2.getTime(); var dias = Math.floor(diferencia / (1000 * 60 * 60 * 24)); return dias; } fecha=function( cadena ) { //Separador para la introduccion de las fechas var separador = "/" //Separa por dia, mes y año if ( cadena.indexOf( separador ) != -1 ) { var posi1 = 0 var posi2 = cadena.indexOf( separador, posi1 + 1 ) var posi3 = cadena.indexOf( separador, posi2 + 1 ) this.dia = cadena.substring( posi1, posi2 ) this.mes = cadena.substring( posi2 + 1, posi3 ) this.anio = cadena.substring( posi3 + 1, cadena.length ) } else { this.dia = 0 this.mes = 0 this.anio = 0 } } calcularEdad=function(){ var dia=document.getElementById('p_cli_dia').value; var mes=document.getElementById('p_cli_mes').value; var ano=document.getElementById('p_cli_any').value; var fecha_nac=dia + '/' + mes + '/' + ano; var dateEfect = document.getElementById('fecha_efecto').value; if(ano=='' && mes=='' && dia=='') document.getElementById('formulario[sol_aseEdad]').value = ""; if (ano!='' && mes!='' && dia!='') { if(validarFecha(dia+'/'+mes+'/'+ano)==true) { if((dia=='02') || (dia=='2')) dias_ano = 365.25; else dias_ano = 365.2; dias = diferenciaFechas(dateEfect,fecha_nac); var anyos = Math.floor(dias/dias_ano); document.getElementById('formulario[sol_aseEdad]').value = anyos; calcular_tarifa(); return true; } } document.getElementById('formulario[sol_aseEdad]').value = ""; return false; } calcular_tarifa=function() { var idProd = document.getElementById("idProducto").value; var edadAct = document.getElementById("formulario[sol_aseEdad]").value; var parametros = "idProd=" + idProd + "&edadAct=" + edadAct; var urltemplate ='/asc/productos/formulario/seccion/tarifas.jsp'; var ajax=new Ajax.Updater('total_tarifas', urltemplate,{method:'post', asynchronous:true, parameters:parametros, evalScripts:true}); } function checkEmail(str) { if(str!='') { var at="@"; var dot="."; var lat=str.indexOf(at) ; var lstr=str.length ; var ldot=str.indexOf(dot); if (str.indexOf(at)==-1){ return false; } if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){ return false; } if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){ return false; } if (str.indexOf(at,(lat+1))!=-1){ return false; } if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){ return false; } if (str.indexOf(dot,(lat+2))==-1){ return false; } if (str.indexOf(" ")!=-1){ return false; } return true; } } fieldNumber = function(e){ var tecla = (document.all) ? e.keyCode : e.which; switch (tecla){ case 0: case 8: case 48: case 49: case 50: case 51: case 52: case 53: case 54: case 55: case 56: case 57: case 13: break; default: return false; } return true; } recargar_divId = function(url,divId,form){ var parametros; if (form!=undefined) parametros = Form.serialize(form); var ajax = new Ajax.Updater(divId,url, {method:'post',asynchronous:true,parameters:parametros, evalScripts:true}); } var embeddedContent = { isMSIE : (document.all && !window.opera) ? true : false, /** * Reinserta en el documento HTML los elementos que han sido incrustados mediante * las etiquetas OBJECT, EMBED y/o APPLET, redefiniendo su propiedad outerHTML */ reinsertContent : function() { var totalNodes = new Array(3); totalNodes['OBJECT'] = document.getElementsByTagName('OBJECT').length; totalNodes['EMBED'] = document.getElementsByTagName('EMBED').length; totalNodes['APPLET'] = document.getElementsByTagName('APPLET').length; for(var tagName in totalNodes) { var counter = totalNodes[tagName] - 1; for(var node; node = document.getElementsByTagName(tagName)[counter]; counter--) { sourceCode = embeddedContent.getSourceCode(node); if(sourceCode) { node.outerHTML = sourceCode; } } } embeddedContent.isMSIE = null; }, /** * Obtiene el código HTML completo de un determinado nodo. * @param node (object) - El nodo analizado * @return sourceCode (string) - El código HTML obtenido */ getSourceCode : function(node) { var sourceCode = node.outerHTML; switch(node.nodeName) { case 'EMBED': return sourceCode; break; case 'OBJECT': case 'APPLET': var openTag = sourceCode.substr(0, sourceCode.indexOf('>') + 1).toLowerCase(); var closeTag = sourceCode.substr(sourceCode.length - 9).toLowerCase(); if(closeTag != '' && closeTag != '') { /* Si el nodo está mal formado (etiquetas de apertura y cierre) se debe anular el script ya que podría devolver un resultado incorrecto */ return null; } if(embeddedContent.isMSIE) { /* Para I. Explorer se debe obtener aparte el código HTML de los nodos hijos, ya que la propiedad outerHTML en ocasiones devolverá un resultado incompleto */ var innerCode = embeddedContent.getInnerCode(node); sourceCode = openTag + innerCode + closeTag; } return sourceCode; break; } }, /** * Obtiene el código HTML de los nodos hijos de un determinado nodo. No se debe utilizar directamente * la propiedad innerHTML ya que en ciertos casos I. Explorer devolverá un resultado incompleto. * @param node (object) - El nodo padre que será analizado * @return innerCode (string) - El código HTML obtenido */ getInnerCode : function(node) { var innerCode = ''; var totalChilds = node.childNodes.length - 1; for(var counter = totalChilds, child; child = node.childNodes[counter]; counter--) { innerCode += child.outerHTML; } return innerCode; } } /** * Activación: * ----------- * Detectamos el soporte de attachEvent() como filtro para I. Explorer y Ópera. * Para ejecutar el script sólo necesitamos que el DOM (Document Object Model); para * ello en Ópera recurrimos al evento DOMContentLoaded, mientras que en I. Explorer * emulamos dicho evento apoyándonos en el atributo DEFER de la etiqueta SCRIPT * con la que estamos cargando este archivo. */ if(document.attachEvent) { if(window.opera) { document.attachEvent("DOMContentLoaded", embeddedContent.reinsertContent); } else { embeddedContent.reinsertContent(); } }