// -- 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. // -- recargar_divId() - Función que recarga una página dentro de una capa mediante AJAX function abrirventana(url,target,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=no,toolbar=no,status=no,titlebar=no,menubar=no,directories=no,resizable=no,scrollbars=no,copyhistory=no'; }else{ opciones='width='+ancho+',height='+alto+',left='+left+',top='+top+',location=no,toolbar=yes,status=no,menubar=yes,directories=yes,resizable=yes,scrollbars=yes,copyhistory=yes'; } window.open(url,target,opciones); } 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){ var ajax = new Ajax.Updater(divId,url, {method:'post',asynchronous:true, 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(); } }