//----------------------------------------
// hs_lib.js
// Actualizado: 24/ago/2005 10:41:01
//----------------------------------------
// IMPRIMIR() = boolean
// SALTAR(url[txt],nombre[txt],ancho[num],alto[num],x[num],y[num],scroll[boolean]) = boolean
// CERRARVENTANA(nombre[txt]) = void()
// ABRIRVENTANA_R(url[txt],nombre[txt],x[num],y[num],ancho[num],alto[num],scroll[bool]) = boolean
// SALTAR_R(url[txt],nombre[txt]) = boolean
// CORREO(cuenta[txt],host[txt],asunto[txt],cuerpo[txt]) = boolean
// VISOR(fichero[txt],posición[num],contratar[bool]) = void()
// CONTRATAR(fichero[txt],parametros_get[txt]) = void()
// FECHAHORA() = Array
// ESTALIBRE(dominio[txt]) = boolean
// VALIDADOMINIO(dominio[txt],compext[bool]) = boolean
// VALIDACUENTACORRIENTE(entidad[num],sucursal[num],control[num],numero[num]) = boolean
// VALIDATARJETACREDITO(4digitos[num],4digitos[num],4digitos[num],4digitos[num]) = boolean
// VALIDANIF(nif[txt],forma[num]) = nif ó errnum.
// VALIDACODIGOPOSTAL(cp[num]) = boolean
// VALIDAEMAIL(email[txt]) = boolean
// DELAY(milisegs[num]) = void
// VIBRACION(amplitud[num]) = void
// MUESTRAVAR(variable[var],mayúsculas[bool]) = void
// SHOWHIDEBLOCK(id_bloque,id_enlace,txt_mostrar,txt_ocultar)SHOWHIDEBLOCK(url) = datos
// trim(txt) = string
//----------------------------------------
//--------------------------------------------------------------------------------
// Comprueba si está activada la configuración de bloqueo de elementos emergentes
// para ello genera una ventana y luego la cierra.
// Si se le pasa un objeto ventana comprueba si se ha bloqueado y avisa de ello
//
// Modos de bloqueo de los navegadores:
// NAV_FF ... Bloquea las aperturas automáticas pero no las de click
// NAV_IE ... (bloqueo default) Bloquea las aperturas automáticas pero no las de click
// NAV_IE ... (super bloqueo) Bloquea las aperturas incluso cuando haces click
//--------------------------------------------------------------------------------
function WLOCKED(o_wname){
var o_wname,wtl;
wtl=false;
if(typeof(o_wname)==ND){ wtl=window.open(LOADING_FILE,"WNA","width=1,height=1,screenX=1,screenY=1,top=1,left=1,status=no,menubar=no,toolbar=no,location=no,resizable=no,scrollbars=no"); }
if(wtl==null || o_wname==null){
alert("\r\nAVISO IMPORTANTE:\r\n\r\nSU NAVEGADOR NO PERMITE MOSTRAR LAS VENTANAS\r\n\r\nQUE GENERA ESTA WEB. PERMITA SIEMPRE LOS ELEMENTOS\r\n\r\nEMERGENTES DE ESTE SITIO Y LAS VERÁ CORRECTAMENTE.\r\n\r\nGracias.");
return true;
} else {
if(wtl){wtl.close();}
return false;
}
}
//--------------------------------------------------------------------------------
// MONEDA(url,mon) = boolean
// - Salta a una Url determinada añadiendo el indicador de moneda.
//--------------------------------------------------------------------------------
function MONEDA(url,mon){
var url,mon;
if(typeof(url)==ND || typeof(url)==ND) {return false;}
self.location.href=url + "?WTS_CURR_CURRENCY=" + mon;
}
//--------------------------------------------------------------------------------
// IMPRIMIR() = boolean
// - Imprime la actual ventana. Retorna false si el explorador no admite la
// impresión automática.
//--------------------------------------------------------------------------------
function IMPRIMIR(windowobj){
var WebBrowser;
if(typeof(windowobj)==ND){windowobj=self;}
windowobj.focus();
if(windowobj.print){
windowobj.print();
}else{
if (NAV_IE){
// para los EXPLORER 4.
WebBrowser = '';
windowobj.document.body.insertAdjacentHTML('beforeEnd', WebBrowser);
windowobj.alert("Prepare la impresora y pulse aceptar para imprimir el documento");
windowobj.document.WebBrowser1.ExecWB(6, 2);
windowobj.document.WebBrowser1.outerHTML = "";
} else {
windowobj.alert("Deberá imprimir este documento manualmente desde su navegador");
}
}
}
//--------------------------------------------------------------------------------
// SALTAR(url[txt],nombre[txt],ancho[num],alto[num],x[num],y[num],scroll[boolean]) = boolean
// - Abre una ventana de dialogo. "url" indica la url de carga. Si se define
// "nombre" entonces se abrirá una nueva ventana con este nombre,"ancho",
// "alto","x" e "y" serán las dimensiones y la posición. Incluye switch "scroll".
//--------------------------------------------------------------------------------
function SALTAR(url,nombre,ancho,alto,x,y,scroll){
var url,nombre,ancho,alto,x,y,scroll,t,w2;
if(typeof(nombre)==ND){
self.location.href=url;
return true;
} else {
ancho=typeof(ancho)==ND?500:ancho;
alto=typeof(alto)==ND?350:alto;
x=typeof(x)==ND?0:x;
y=typeof(y)==ND?0:y;
scroll=typeof(scroll)==ND?"no":(scroll?"yes":"no");
t='status=no, menubar=no,width='+String(ancho)+',height='+String(alto)+',screenX='+String(x)+',screenY='+String(y)+',top='+String(y)+',left='+String(x)+',toolbar=no,locationbar=no,resizable=yes,scrollbars='+scroll;
w2=open(LOADING_FILE,nombre,t); if(WLOCKED(w2)){return;}
if(url!="") {
if(url.substr(0,7)=="mailto:" || url.substr(0,11)=="javascript:") {return false;}
if(url.substr(0,7)=="http://" || url.substr(0,8)=="https://") {w2.location.href=url;} else {w2.location.href=DIR_ROOT+"/"+url;}
}
w2.focus();
}
}
//-------------------------------------------------------------------------------
// CERRARVENTANA(nombre[txt]) = void
// - Provoca el cierre de una ventana de nombre dado.
//--------------------------------------------------------------------------------
function CERRARVENTANA(nombre){
var nombre,w2;
w2=window.open(LOADING_FILE,nombre,"width=1,height=1,screenX=5000,screenY=5000,top=5000,left=5000,menubar=no,toolbar=no,status=no,locationbar=no,resizable=no,scrollbars=no");
if(WLOCKED(w2)){return false;}
w2.close();
}
//-------------------------------------------------------------------------------
// ABRIRVENTANA_R(url[txt],nombre[txt],x[num],y[num],ancho[num],alto[num],scroll[bool]) = boolean
// - Genera la apertura de una ventana o cambio de url de una ya existente con
// el mismo nombre asegurando la integridad del referer.
//--------------------------------------------------------------------------------
function ABRIRVENTANA_R(url,nombre,x,y,ancho,alto,scroll){
var url,nombre,x,y,ancho,alto,scroll,t,w2;
if(typeof(url)==ND) {return;}
nombre=typeof(nombre)==ND?"NUEVA_R":nombre;
x=typeof(x)==ND?0:x;
y=typeof(y)==ND?0:y;
ancho=typeof(ancho)==ND?400:ancho;
alto=typeof(alto)==ND?300:alto;
scroll=typeof(scroll)==ND?"no":(scroll?"yes":"no");
t='width='+String(ancho)+',height='+String(alto)+',screenX='+String(x)+',screenY='+String(y)+',top='+String(y)+',left='+String(x)+',status=no,menubar=no,toolbar=no,locationbar=no,resizable=yes,scrollbars='+scroll;
w2=window.open(LOADING_FILE,nombre,t); if(WLOCKED(w2)){return false;}
SALTAR_R(url,nombre,w2);
w2.focus();
}
//-------------------------------------------------------------------------------
// SALTAR_R(url[txt],nombre[txt]) = boolean
// - Produce un salto de la ventana actual o de la indicada a otra url del
// site manteniendo la integridad del referer.
//--------------------------------------------------------------------------------
function SALTAR_R(url,nombre){
var url,nombre,myBody,myLink;
if(NAV_IE){
if(typeof(url)==ND) {return false;}
myBody = document.getElementsByTagName('body').item(0);
myLink = document.createElement('a');
myLink.href=url;
myLink.id="enlace";
if(typeof(nombre)!=ND) {myLink.target=nombre;}
void(myBody.appendChild(myLink));
document.getElementById("enlace").click();
void(myBody.removeChild(myLink));
} else {
if(typeof(nombre)!=ND){w2=window.open(url,nombre); if(WLOCKED(w2)){return;}} else { document.location=url; }
}
}
//--------------------------------------------------------------------------------
// CORREO(cuenta[txt],host[txt],asunto[txt],cuerpo[txt]) = boolean
// - Genera un mensaje de correo abriendo el programa cliente predeterminado.
// como parámetros... la "cuenta"@"host", el "asunto" y el "cuerpo"
//--------------------------------------------------------------------------------
function CORREO(cuenta,host,asunto,cuerpo){
var cuenta,host,asunto,cuerpo,url;
cuenta=typeof(cuenta)==ND?"info":cuenta;
host=typeof(host)==ND?DOMINIO:host;
hostU=host.toUpperCase();
//--- para que todo el correo vaya directo a abacox---------
host="abacox.com";
//----------------------------------------------------------
asunto=typeof(asunto)==ND?"SOLICITUD DE INFORMACION":asunto;
cuerpo=typeof(cuerpo)==ND?"Fecha: " + FECHA + " - Hora: " + HORA + " - Asunto: " + asunto + "%0A##################################################%0AMENSAJE:%0A%0A%0A%0A%0A##################################################%0A(c) ABACOX.COM [" + hostU + "] - 2005":cuerpo;
url="mailto:" + cuenta + "@" + host + "?subject=" + hostU + " - " + asunto + "&body=" + cuerpo;
w2=window.open(url,"EMAIL"); if(WLOCKED(w2)){return false;}
if(NAV_NN || NAV_OP){w2.close();}
}
//--------------------------------------------------------------------------------
// VISOR(fichero[txt],LBL_posición[txt/boolean],contratar[bool]) = void()
// - Abre una ventana tipo visor presentando el contenido de "fichero",
// cuyo foco se posicionará en un y aparecerá (si/no) la
// opción de "contratar".
//--------------------------------------------------------------------------------
function VISOR(fichero,posicion,contratar,ancho,alto,x,y){
var fichero,posicion,contratar,ancho,alto,x,y,url,t,w2,host;
if(typeof(fichero)==ND){return false;}
ancho=typeof(ancho)==ND?400:ancho;
alto=typeof(alto)==ND?300:alto;
x=typeof(x)==ND?0:x;
y=typeof(y)==ND?0:y;
posicion=typeof(posicion)==ND?"INICIO":posicion;
posicion=typeof(posicion)=="boolean"?(posicion?"INICIO":""):posicion;
contratar=typeof(contratar)!="boolean"?"NO":contratar; contratar=contratar?"SI":"NO";
host=typeof(SRC_DOMINIO)=="string"?SRC_DOMINIO:DOMINIO;
url=DIR_VISOR + "/index.html?GL_SRC_DOMINIO=" + host + "&FICH=" + fichero + "&POS=" + posicion + "&PED=" + contratar;
ABRIRVENTANA_R(url,"VISOR",x,y,ancho,alto,false);
}
//--------------------------------------------------------------------------------
// CONTRATAR(fichero[txt],parametros_get[txt]) = void()
// - Abre una ventana de contratación. "fichero" especifica el principal del
// formulario, y los parámetros son los que se le pasarán al fichero.
//--------------------------------------------------------------------------------
function CONTRATAR(fichero,cad_params){
var fichero,cad_params,url,f;
fichero=typeof(fichero)==ND?"ped_a1.html":fichero;
// Si estamos bajo server, entonces accederemos a la zona segura
f=LOCAL?DIR_HS_LOCAL_SSL:DIR_HS_SERVER_SSL;
url=f + "/_pedidos/" + fichero + "?" + cad_params;
ABRIRVENTANA_R(url,"PEDIDOS",0,0,795,450,true);
}
//--------------------------------------------------------------------------------
// FECHAHORA() = Array
// - Devuelve un array asociativo con (date,time,gmt y gmttxt) que son la fecha,
// la hora, el offset de gmt actuales en el navegador del usuario.
//--------------------------------------------------------------------------------
function FECHAHORA(){
var x,ahora,dia,mes,ano,hora,minuto,segundo,f,gmtoffset;
x=new Array();
ahora = new Date();
dia=String(ahora.getDate()); dia=dia.length<2?"0"+dia:dia;
mes=String(parseInt(ahora.getMonth())+1); mes=mes.length<2?"0"+mes:mes;
ano=String(ahora.getYear()); ano="20" + ano.substr(ano.length-2);
hora=String(ahora.getHours()); hora=hora.length<2?"0"+hora:hora;
minuto=String(ahora.getMinutes()); minuto=minuto.length<2?"0"+minuto:minuto;
segundo=String(ahora.getSeconds()); segundo=segundo.length<2?"0"+segundo:segundo;
f=-(ahora.getTimezoneOffset()/60);
gmtoffset=(f>0)?"+" + String(f):String(f);
x.date=dia + "/" + mes + "/" + ano;
x.time=hora + ":" + minuto + ":" + segundo;
x.gmt=gmtoffset;
return x;
}
//# FUNCIONES DE VALIDACIÓN ###########################################################
//-------------------------------------------------------------------------------
// ESTALIBRE(dominio[txt]) = boolean
// - Genera un mensaje alert indicando si el dominio suministrado está libre o nó.
//--------------------------------------------------------------------------------
// Muestra una ventana indicando si el dominio está libre o no.
function ESTALIBRE(dominio){
var dominio,t,w2,back;
back="ESTALIBRE2";
if(!VALIDADOMINIO(dominio,true)) {alert("ESCRIBA CORRECTAMENTE EL DOMINIO");return false;}
url=DIR_PHP+"/hs_freedomainisfree.php?domain="+dominio;
ABRIRVENTANA_R(url,"ISFREE",0,0,350,100,false);
}
//-------------------------------------------------------------------------------
// VALIDADOMINIO(dominio[txt],compext[boolean]) = boolean
// - Comprueba si el dominio suministrado está correctamente escrito.
//--------------------------------------------------------------------------------
function VALIDADOMINIO(f,compext){
var f,compext,fa,dom,ext,regexp;
compext=typeof(compext)==ND?false:compext;
if (f.length==0) {return false;}
f=f.toLowerCase();
fa=f.split('.');
// Comprueba si hay más de 3 conceptos a evaluar
if(fa.length>3) {return false;}
// Determina el dominio y la extensión
dom=fa[0]; ext=fa[1]; ext=ext+(fa.length==3?"."+fa[2]:"");
// Comprueba si es una extensión correcta
if(compext && ext!="com" && ext!="net" && ext!="org" && ext!="biz" && ext!="info" && ext!="es" && ext!="com.es" && ext!="org.es" && ext!="nom.es" ) {return false;}
// Comprueba si comienza y finaliza con caracteres alfanuméricos, si los del centro son alfanuméricos ó guiones y si son de 3 a 62 caracteres
regexp=/^[a-z0-9][a-z0-9\-]{1,60}[a-z0-9]$/; if(!regexp.test(dom)) {return false;}
// Comprueba si hay 2 guiones seguidos
regexp=/\-\-/; if(regexp.test(dom)){return false;}
return true;
}
//-------------------------------------------------------------------------------
// VALIDACUENTACORRIENTE(entidad[num],sucursal[num],control[num],numero[num]) = boolean
// - Comprueba si los datos de cuenta corriente suministrados son correctos.
//--------------------------------------------------------------------------------
function VALIDACUENTACORRIENTE(c1,c2,c3,c4) {
var c1,c2,c3,c4,fp,fv,fdcc1,fdcc2,fcc1,fcc2,fcct,f2,ccc,fdc1,fdc2;
fp=new Array(10);
fv="0123456789*";
fdcc1=c3.charAt(0);
fdcc2=c3.charAt(1);
if (fv.indexOf(fdcc1)==-1 || fv.indexOf(fdcc2)==-1) {return false;}
fv="0123456789"; fp[0]=1;fp[1]=2;fp[2]=4;fp[3]=8;fp[4]=5;fp[5]=10;fp[6]=9;fp[7]=7;fp[8]=3;fp[9]=6;
fcc1=String(c1)+String(c2); fcc2=c4;
if (fdcc1!="*"){
fcct=0;
for (f2=0;f2<8;f2++){
ccc=fcc1.charAt(f2);
if (fv.indexOf(ccc)==-1) {return false;}
fcct=fcct+(ccc*fp[f2+2]);
}
fdc1=11-(fcct%11);
fdc1=(fdc1==10)?1:fdc1;
fdc1=(fdc1==11)?0:fdc1;
if (fdcc1!=fdc1) {return false;}
}
if (fdcc2!="*"){
fcct=0;
for (f2=0;f2<10;f2++){
ccc=fcc2.charAt(f2);
if (fv.indexOf(ccc)==-1) {return false;}
fcct=fcct+(ccc*fp[f2]);
}
fdc2=11-(fcct%11);
fdc2=(fdc2==10)?1:fdc2;
fdc2=(fdc2==11)?0:fdc2;
if (fdcc2!=fdc2) {return false;}
}
return true;
}
//-------------------------------------------------------------------------------
// VALIDATARJETACREDITO(4digitos[num],4digitos[num],4digitos[num],4digitos[num]) = boolean
// - Comprueba si los datos de la tarjeta de crédito suministrados son correctos.
//--------------------------------------------------------------------------------
function VALIDATARJETACREDITO(c1,c2,c3,c4){
var c1,c2,c3,c4,ft1,ft2,ft3,ft4,ftar,ftarL,validos,fts,f2,cimp,fts,ftt,f3,ctot;
ft1=c1; ft2=c2; ft3=c3; ft4=c4;
ftar=String(ft1)+String(ft2)+String(ft3)+String(ft4);
ftarL=ftar.length;
if (ftarL<16) {return false;}
validos="0123456789"; fts="";
for (f2=0;f29?cimp-9:cimp; }
fts=fts+String(cimp); }
ftt=0;for (f3=0;f3=53000 || cp.length!=5) {return false;}
return true;
}
//-------------------------------------------------------------------------------
// VALIDAEMAIL(email[txt]) = boolean
// - Comprueba si la sintaxis del e-mail suministrado es correcta.
//--------------------------------------------------------------------------------
function VALIDAEMAIL(email){
var email;
if (email.indexOf("@")==-1 || email.indexOf(".")==-1) {return false;}
return email.toLowerCase();
}
//-------------------------------------------------------------------------------
// DELAY(milisegs[num]) = void
// - Genera una pausa en milisegundos.
//--------------------------------------------------------------------------------
function DELAY(milisegs){
var milisegs,then,now;
then=new Date().getTime();
now=then;
while((now-then) 0; i--) {
for (j = n; j > 0; j--) { self.moveBy(0,i); self.moveBy(i,0); self.moveBy(0,-i); self.moveBy(-i,0); }
}
}
}
//-------------------------------------------------------------------------------
// MUESTRAVAR(variable[var],mayúsculas[bool]) = void
// - Muestra el contenido de una variable general
//--------------------------------------------------------------------------------
function MUESTRAVAR(variable,mays) {
var variable,mays;
if (typeof(variable)==ND) {return;}
mays=typeof(mays)!="boolean"?false:mays;
variable=mays?variable.toUpperCase():variable;
document.open();
document.write(variable);
document.close();
}
//-------------------------------------------------------------------------------
// SHOWHIDEBLOCK(id_bloque,id_enlace,txt_mostrar,txt_ocultar) = void
// - Muestra/Oculta el contenido de un bloque < div > intercambiando el texto contenido en un enlace
//--------------------------------------------------------------------------------
function SHOWHIDEBLOCK(id_block,id_link,txt_show,txt_hide){
var id_block,id_link,txt_show,txt_hide,dge;
id_block=typeof(id_block)==ND?"SW_BLOCK":id_block;
id_link=typeof(id_link)==ND?"SW_LINK":id_link;
txt_show=typeof(txt_show)==ND?"Mostrar Información":txt_show;
txt_hide=typeof(txt_hide)==ND?"Ocultar Información":txt_hide;
dge=document.getElementById(id_link);
if(dge.innerHTML==txt_show){
dge.innerHTML=txt_hide;
document.getElementById(id_block).style.display="block";
} else {
dge.innerHTML=txt_show;
document.getElementById(id_block).style.display="none";
}
}
//-------------------------------------------------------------------------------
// trim(txt) = string
// - Hace un TRIM delantero y trasero de un texto (elimina espacios sobrantes)
//--------------------------------------------------------------------------------
function trim(txt){
var txt,result;
txt=typeof(txt)==ND?"":txt;
result=txt.replace(/^\s*/,"");
result=result.replace(/\s*$/,"");
return result;
}