/*

			FICHERO DE SCRIPTS DE AURTENECHE

*/

//// Parte para los titulos

addEvent(window, "load", makeNiceTitles);

var XHTMLNS = "http://www.w3.org/1999/xhtml";
var CURRENT_NICE_TITLE;
//var browser = new Browser();

function makeNiceTitles() {
 /*   if (!document.createElement || !document.getElementsByTagName) return;
    // add namespace methods to HTML DOM; this makes the script work in both
    // HTML and XML contexts.
    if(!document.createElementNS)
    {
        document.createElementNS = function(ns,elt) {
            return document.createElement(elt);
        }
    }

    if( !document.imgs )
    {
        document.imgs = document.getElementsByTagName("img");
    }
    for (var ti=0;ti<document.imgs.length;ti++) {
        var lnk = document.imgs[ti];
        if (lnk.title) {
            lnk.setAttribute("nicetitle",lnk.title);
			lnk.removeAttribute("alt");
			lnk.removeAttribute("title");
            addEvent(lnk,"mouseover",showNiceTitle);
            addEvent(lnk,"mouseout",hideNiceTitle);
            addEvent(lnk,"focus",showNiceTitle);
            addEvent(lnk,"blur",hideNiceTitle);
        }
    }*/
}

function findPosition( oLink ) {
  if( oLink.offsetParent ) {
    for( var posX = 0, posY = 0; oLink.offsetParent; oLink = oLink.offsetParent ) {
      posX += oLink.offsetLeft;
      posY += oLink.offsetTop;
    }
    return [ posX, posY ];
  } else {
    return [ oLink.x, oLink.y ];
  }
}

function showNiceTitle(e) {
    if (CURRENT_NICE_TITLE) hideNiceTitle(CURRENT_NICE_TITLE);
    if (!document.getElementsByTagName) return;
    if (window.event && window.event.srcElement) {
        lnk = window.event.srcElement
    } else if (e && e.target) {
        lnk = e.target
    }
    nicetitle = lnk.getAttribute("nicetitle");
    
    var d = document.createElementNS(XHTMLNS,"div");
    d.className = "nicetitle";
    tnt = document.createTextNode(nicetitle);
    pat = document.createElementNS(XHTMLNS,"p");
    pat.className = "titletext";
    pat.appendChild(tnt);
    d.appendChild(pat);
    mpos = findPosition(lnk);
    mx = mpos[0];
    my = mpos[1];
    d.style.left = (mx-180) + 'px';
    d.style.top = (my+20) + 'px';
	document.getElementsByTagName("body")[0].appendChild(d);
    
    CURRENT_NICE_TITLE = d;
}

function hideNiceTitle(e) {
    if (!document.getElementsByTagName) return;
    if (CURRENT_NICE_TITLE) {
        document.getElementsByTagName("body")[0].removeChild(CURRENT_NICE_TITLE);
        CURRENT_NICE_TITLE = null;
    }
}

// Add an eventListener to browsers that can do it somehow.
// Originally by the amazing Scott Andrew.
function addEvent(obj, evType, fn){
  if (obj.addEventListener){
    obj.addEventListener(evType, fn, true);
    return true;
  } else if (obj.attachEvent){
	var r = obj.attachEvent("on"+evType, fn);
    return r;
  } else {
	return false;
  }
}



//Muestra la capa que se pasa como parametro
function mostrarCapa(capa){
	if(document.getElementById){ //NS 6
        Refcapa='document.getElementById("'
        Refestilo='").style'
        Reftop='.top'
        Refleft='.left'
	}else if(document.layers){ //NS 4
        Refcapa='document.'
        Refestilo=''
        Reftop='.top'
        Refleft='.left'
	}else if(document.all){ //IE 4
	Refcapa=''
        Refestilo='.style'
        Reftop='.pixelTop'
        Refleft='.pixelLeft'
	}
	eval(Refcapa+capa+Refestilo+'.visibility="visible"');
}
//Oculta la capa que se pasa como parametro
function ocultarCapa(capa){
	if((document.getElementById)&&document.getElementById(capa)){ //NS 6
        Refcapa='document.getElementById("'
        Refestilo='").style'
        Reftop='.top'
        Refleft='.left'
        eval(Refcapa+capa+Refestilo+'.visibility="hidden"');
	}else if((document.layers)&&(document.layers.capa)){ //NS 4
        Refcapa='document.'
        Refestilo=''
        Reftop='.top'
        eval(Refcapa+capa+Refestilo+'.visibility="hidden"');
	}else if((document.all)){ //IE 4
        if (document.all(capa)) {
        Refcapa=''
        Refestilo='.style'
        Reftop='.pixelTop'
        Refleft='.pixelLeft'
        eval(Refcapa+capa+Refestilo+'.visibility="hidden"');
        }
	}
        
}

//funciones de validacion de datos
/*Funcion que valida la direccion de email*/

////////////////////////////////////////////////////////////////////////////////
function emailCorrecto(emailStr) {
////////////////////////////////////////////////////////////////////////////////

// Comprueba si el e-mail se adecua al formato usuario@dominio.
//  Tambien se usa para separar usuario de dominio.
var emailPat=/^(.+)@(.+)$/;

// Cadena que representa los patrones que son caracteres especiales.
//   Son  ( ) < > @ , ; : \ " . [ ]
var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]áéíóúÁÉÍÓÚâêîôû^ÂÊÎÔÛàèìòùÀÈÌÒÙÄËÏÖÜëïü¨";

// Rango de caracteres permitido en usuario o dominio.
//   Realmente afirma aquellos que no son permitido.
var validChars="\[^\\s" + specialChars + "\]";

// El siguiente patron se aplica si el "usuario" es una cadena con
// comillas (en ese caso no hay reglas sobre que caracteres se
// permiten y cuales no, todo vale). Por ejemplo, "evelio ojito"@talytal.com
// seria un e-mail legal.
var quotedUser="(\"[^\"]*\")";

// El siguiente patron aplica para dominios que son direcciones IP en
// vez de nombre simbolicos. P.ej. pepe@[123.124.233.4] es un e-mail legal
// NOTA: Se necesitan los corchetes.
var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;

// La siguiente cadena representa un atomo (basicamente como una serie de
// caracteres no especiales.
var atom=validChars + '+';

// La siguiente cadena represente una palabra en el nombre de usuario
// tipico. P.ej. pepe.rodriguez@algunsitio.com, pepe y rodriguez son palabras.
// Basicamente, una palabra es un atomo o una cadena entrecomillada.
var word="(" + atom + "|" + quotedUser + ")";

// Estructura del usuario
var userPat=new RegExp("^" + word + "(\\." + word + ")*$");

// Estructura de un dominio simbolico normal, en contraposicion a un
// patron de dominio IP, como mas arriba
var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");


// Finalmente averiguamos si la direccion es valida

// Empezamos con el patron burdo para romper usuario@dominio en distintas
// parte que son facilmente analizables

var matchArray=emailStr.match(emailPat);
if (matchArray==null) {
  // Demasiados o pocas @; basicamente, esta direccion no cuadra con el
  // molde general de una direccion de email valida
        return false
}
var user=matchArray[1]
var domain=matchArray[2]

// Mirar si "usuario" es valido
if (user.match(userPat)==null) {
    // usuario no es valido
    return false
}

// si el e-mail es una direccion IP (en vez de host simbolico)
// asegurarse que la IP es valida
var IPArray=domain.match(ipDomainPat);
if (IPArray!=null) {
    // this is an IP address
          for (var i=1;i<=4;i++) {
            if (IPArray[i]>255) {
                return false
            }
    }
    return true
}

// Dominio es un nombre simbólico
var domainArray=domain.match(domainPat)
if (domainArray==null) {
    return false
}

// Nombre de dominio parece valido, pero asegurarse que termina en una palabra
// de 3 letras (como com, edu, gov) o una palabra de 2 letras representando un
// pais (es, uk nl) y que hay un nombre de host precediendo al dominio o pais


// Necesitamos romper el dominio para contar cuantos atomos tiene

var atomPat=new RegExp(atom,"g");
var domArr=domain.match(atomPat);
var len=domArr.length
if (domArr[domArr.length-1].length<2 ||
    domArr[domArr.length-1].length>3) { 
// la dirección debe terminar en una palabra de 2 o 3 letras.
   return false;
}

// Asegurarse que hay un nombre de host precediendo al dominio
if (len<2) {
   return false;
}

// Si hemos llegado hasta aqui, todo es válido
return true;
}


function comprobarDatos(form){
	if (form.nombre.value=="") alert("Debe rellenar el nombre");
	else if (form.empresa.value=="") alert("Debe rellenar la empresa");
	else if (form.email.value=="") alert("Debe rellenar el correo electrónico");
	else if (!emailCorrecto(form.email.value)) alert("El correo que ha introducido no es correcto");
	else if (form.asunto.value=="") alert("Debe rellenar el asunto sobre el que trata la consulta");
	else if (form.consulta.value=="") alert("Debe indicar cual es la consulta que desea hacer");
	else form.submit();
}
function comprobarDatosBoletin(form){
	if (form.emailboletin.value=="") alert("Debe rellenar la direccion de  correo electrónico\n al que enviaremos el boletín");
	else if (!emailCorrecto(form.emailboletin.value)) alert("El correo electrónico que ha introducido no parece correcto");
	else form.submit();
}
function trim(cadena){
 cadena=cadena.replace(/^[\s]+/g,"");
 cadena=cadena.replace(/[\s]+$/g, ""); 
   return cadena;
}
function isValid(string,allowed){
    for (var i=0; i< string.length; i++){
        if (allowed.indexOf(string.charAt(i)) == -1) return false;
    }
    return true;
}
function buscador(form){

 valid = 'áéíóúabcdefghijklmnñopqrstuvwxyzÁÉÍÓÚABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890._- ';//letras y nuúmeros, algunos caracteres y espacios
 form.buscar.value=trim(form.buscar.value);
 if (!isValid(form.buscar.value, valid)) alert("El termino de búsqueda tiene algun caracter no válido");
 else if (form.buscar.value=="introduce tu email") alert("No ha introducido nada en la búsqueda");
    else form.submit();

} 