//------------------------------------------------------------------------
// Fichero: fun_comun.js
// Objeto: Funciones javascript comunes para las páginas de la aplicación.
// Autor: Doo2Web Solutions
// (c) Copyright 2005, Doo2Web Solutions. Todos los derechos reservados.
// Para cualquier duda, pueden dirigirse a doo2web@doo2web.com
//------------------------------------------------------------------------

//Inicializamos Variables:
var ofertas = "/img/ofertas.gif"; 
var ofertas2 = "/img/ofertas_i.gif";
var outlet = "/img/outlet.gif"; 
var outlet2 = "/img/outlet_i.gif";
var empresa = "/img/empresa_n.gif"; 
var empresa2 = "/img/empresa_ni.gif"; 
var novedades = "/img/novedades_n.gif"; 
var novedades2 = "/img/novedades_ni.gif"; 
var asesoramiento = "/img/asesoramiento_n.gif"; 
var asesoramiento2 = "/img/asesoramiento_ni.gif";
var clientes = "/img/clientes_n.gif"; 
var clientes2 = "/img/clientes_ni.gif";
var contacto = "/img/contacto_n.gif"; 
var contacto2 = "/img/contacto_ni.gif";
var asociados = "/img/asociados_n.gif"; 
var asociados2 = "/img/asociados_ni.gif";
var packs = "/img/packs.gif"; 
var packs2 = "/img/packs_i.gif";
var precapa;
var estilo;
var top;
var left;
var contenido;
//Funciones para las imagenes
function activar (imgName) { 
	document.images[imgName].src = eval( imgName ); 
} 
function desactivar(imgName) { 
	document.images[imgName].src = eval( imgName + "2" ); 
} 
//funciones de visibilidad de capas
if(document.getElementById){
        precapa='document.getElementById("'
		estilo='").style'
        top='.top'
        left='.left'
		contenido='").innerHTML'
}else if(document.layers){
        precapa='document.'
        estilo=''
        top='.top'
        left='.left'
		contenido='.innerHTML'
}else if(document.all){
        precapa=''
        estilo='.style'
        top='.pixelTop'
        left='.pixelLeft'
		contenido='.innerHTML'
}
function mostrarcapa(capa){
	eval(precapa+capa+estilo+'.visibility="visible"');
}  
function ocultarcapa(capa){
	eval(precapa+capa+estilo+'.visibility="hidden"');
}

function mostrarcapa2(capa){
	capa1 = eval(precapa+capa+'2'+contenido);
	capa2 = eval(precapa+capa+contenido);
	//alert ('--'+capa1+'--');
	//alert ('--'+capa2+'--');
	tmp_capa1 = capa1;
	capa1 = capa2;
	eval(precapa+capa+'2'+estilo+'.visibility="visible"');
	//eval(precapa+capa+estilo+left+'='+((screen.width/2)-67));
	llenarcapa(capa+'2',capa2);
	llenarcapa(capa,tmp_capa1);
}  
// Función de creación de contenido de la capa
function llenarcapa (id, html) {
	//alert(id);
	//alert(html);
  if (document.layers) {
    var l = document[id];
    l.document.open();
    l.document.write(html);
    l.document.close();
  }
  else if (document.all) {
    document.all[id].innerHTML = html;
  }
  else if (document.getElementById) {
    var range = document.createRange();
    var l = document.getElementById(id);
    while (l.hasChildNodes())
      l.removeChild(l.firstChild);
    range.setStartAfter(l);
    var docFrag = range.createContextualFragment(html)
    l.appendChild(docFrag);
  }
}
//-abrirv-//Esta función abre una nueva ventana
function abrirv(pagina,nombre,w,h){
	var opciones='';
	var scrol = '';
	var top = (screen.height-h)/2;
	var left = (screen.width-w)/2;
	if (screen.height < h || screen.width < w) {
		scrol = 'yes';
			if (screen.height < h) {
					h = screen.height - 50;				
			} else {
				h = h + 20;
			}
			if (screen.width < w) {
					w = screen.width - 20;				
			}
		top = 0;
		left = 0;
	} else {
		scrol = 'no';
	}
	opciones = 'scrollbars=auto,resizable=no,width='+w+',height='+h+',top='+top+',left='+left+'';
	//pagina += '.html'
	window.open (pagina,nombre,opciones);
}

//-estaVacio2Campos-//Esta función comprueba si un campo está vacío
function estaVacio2campos(campo1, campo2, etiqueta) {
	if (campo1.value.length == 0 && campo2.value.length == 0) {
		alert("Atención, tiene que elegir al menos uno de los dos campos (" + etiqueta.toUpperCase() + ").");
		campo1.focus();
		return true;
	}
	return false;
}

//-estaSeleccionadoLos2-//Esta función comprueba si un campo está vacío
function estaSeleccionadoLos2(campo1, campo2, etiqueta) {
	if (campo1.value.length != 0 && campo2.value.length != 0) {
		alert("Atención, no puede elegir los dos campos. Solo seleccione uno: (" + etiqueta.toUpperCase() + ").");
		campo1.focus();
		return true;
	}
	return false;
}

//-estaVacio-//Esta función comprueba si un campo está vacío
function estaVacio(campo, etiqueta) {
	if (campo.value.length == 0) {
		alert("Atención, el valor del campo requerido (" + etiqueta.toUpperCase() + ") no puede estar vacío.");
		campo.focus();
		return true;
	}
	return false;
}
//-estaVacio-//Esta función comprueba si un campo está vacío
function esFotoValida(campo, etiqueta) {
	if (campo.value.length != 0) { 
		if (campo.value.substring (campo.value.length-3,campo.value.length) != 'jpg' ) {
			alert("Atención, el valor del campo requerido (" + etiqueta.toUpperCase() + ") tiene que ser jpg.");
			campo.focus();
			return true;
		}
	}
	return false;
}
//-tieneLongitud-//Esta función comprueba la longitud del usuario y el password
function tieneLongitud(campo, etiqueta, valor1, valor2) {
    if (!(campo.value.length == 0))
	{
		if (campo.value.length < valor1 || campo.value.length > valor2) {
			if (valor1 == valor2) {
				alert("Atención, el valor del campo requerido (" + etiqueta.toUpperCase() + ") tiene que tener " + valor1 + " caracteres.");
			}else {
				alert("Atención, el valor del campo requerido (" + etiqueta.toUpperCase() + ") tiene que tener entre " + valor1 + " y " + valor2 + " caracteres.");
			}
			campo.focus();
			return true;
		}
		return false;
	}
	return false;
}

//-sonIguales-//Esta función comprueba que la nueva password sea igual las dos veces
function sonIguales(pass1, pass2) {
	if (pass1.value == pass2.value) {
		return true;
	} else {
		alert("ERROR: La Nueva contraseña no se ha tecleado igual las 2 veces." );
		return false;		
	}
}

//-cif - nif valido //Esta función comprueba que el cif se valido (8 numeros y una letra)
function cif_valido (campo, etiqueta) {
    
	 var temp = campo.value.toUpperCase();
	 // son 9 dígitos
	 if (!/^[A-Za-z0-9]{9}$/.test(temp))  {
		alert("Atención, el campo requerido (" + etiqueta.toUpperCase() + ") tiene que tener 9 caracteres.");
		campo.focus();
		return true;
	} 
	if (!esNum (campo.value.substring(0,1))) { // Es un CIF
		// Es una letra de las admitidas ?
		if (!/^[ABCDEFGHJKLMNPQSVU]/.test(temp)) {
   			alert("Atención, el campo requerido (" + etiqueta.toUpperCase() + ") es incorrecto.");
			campo.focus();
			return true;
		// Tiene 7 números
		} else if (!esNum (campo.value.substring(1,7))) {
   			alert("Atención, el campo requerido (" + etiqueta.toUpperCase() + ") es incorrecto.");
			campo.focus();
			return true;
		// Comprobamos el dígito de control
		} else {
			
		   var v1 = new Array(0,2,4,6,8,1,3,5,7,9); 
		   var temp = 0;
		   for( i = 2; i <= 6; i += 2 ) 	{
		    temp = temp + v1[ parseInt(campo.value.substr(i-1,1))];
		    temp = temp + parseInt(campo.value.substr(i,1));
   		   };
			temp = temp + v1[ parseInt(campo.value.substr(7,1))];
			temp = (10 - ( temp % 10));
		  	switch (temp) {
				case 10: 
					numero = "0";
					letra = "J";
					break;
				case 9:
					numero = "9";
					letra = "I";
					break;
				case 8:
					numero = "8";
					letra = "H";
					break;
				case 7:
					numero = "7";
					letra = "G";
					break;
				case 6:
					numero = "6";
					letra = "F";
					break;
				case 5:
					numero = "5";
					letra = "E";
					break;
				case 4:
					numero = "4";
					letra = "D";
					break;
				case 3:
					numero = "3";
					letra = "C";
					break;
				case 2:
					numero = "2";
					letra = "B";
					break;
				case 1:
					numero = "1";
					letra = "A";
					break;					
				case 0:
					numero = "0";
					letra = "J";
					break;
				 };
  		
			if (campo.value.substring(8) != numero && campo.value.substring(8) != letra) {
		   		alert("Atención, el campo requerido (" + etiqueta.toUpperCase() + ") es incorrecto.");
				campo.focus();
				return true;
			} else {
				return false;
			}
		}
	} else { // Es un NIF
		// Comprobamos que sean 8 numeros
		if (!esNum (campo.value.substring(0,8))) {
   			alert("Atención, el campo requerido (" + etiqueta.toUpperCase() + ") es incorrecto.");
			campo.focus();
			return true;
 		} else {
  			var letras = 'TRWAGMYFPDXBNJZSQVHLCKE';
	  		var numero = campo.value.substring(0,8)%23;
			if (temp.substring(8) != letras.substring(numero,numero+1)) {
   				alert("Atención, el campo requerido (" + etiqueta.toUpperCase() + ") es incorrecto.\nLa letra no es válida.");
				campo.focus();
				return true;
			} else {
			 return false;
			}
		}
	}
}

//-noNumerico-//Estas funciones comprueban si el campo es numérico
function noNumerico(campo, etiqueta) {
	if (!esNum(campo.value)) {
		alert("Atención, el valor del campo requerido " + etiqueta.toUpperCase() + " debe ser numérico.");
		campo.focus();
		return true;
	}
	return false;
}

function esNum(dato){
	var numchars=0;
	var vabien=true;
	var subdato;
	
		numchars=eval(dato.length);
		for (var c=0;c<numchars;c++){
			subdato = dato.substring(c,c + 1);
			if (esNumero(subdato)==false) {
				vabien = false;
			}
		}
		return(vabien);
}
function esNumero(d){
	if ((d!='0') && (d!='1') && (d!='2') && (d!='3') && (d!='4') && (d!='5') &&
		(d!='6') && (d!='7') && (d!='8') && (d!='9')) {
		return false;
	}else{
		return true;
	}
}
function esComilla(c){
	if ((c!='\'') && (c!='\"')) {
		return false;
	} else {
		return true;
	}
}

//-noNumerico-//Estas funciones comprueban si el campo es numérico con ,
function noNumerico2(campo, etiqueta) {
	if (!esNum2(campo.value) || tiene2Comas(campo.value)) {
		alert("Atención, el valor del campo requerido " + etiqueta.toUpperCase() + " debe ser numérico.");
		campo.focus();
		return true;
	}
	return false;
}
function esNum2(dato){
	var numchars=0;
	var vabien=true;
	var subdato;
	
		numchars=eval(dato.length);
		for (var c=0;c<numchars;c++){
			subdato = dato.substring(c,c + 1);
			if (esNumero2(subdato)==false) {
				vabien = false;
			}
		}
		return(vabien);
}
function esNumero2(d){
	if ((d!='-') && (d!='0') && (d!='1') && (d!='2') && (d!='3') && (d!='4') && (d!='5') &&
		(d!='6') && (d!='7') && (d!='8') && (d!='9') && (d!=',')) {
		return false;
	}else{
		return true;
	}
}
//-tiene2Comas-//Esta función comprueban que no se teclee más de 1 coma (,)
function tiene2Comas(campo) {
	var numchars=0;
	var numcomas=0;
	numchars=eval(campo.length);
	for (var i=0;i<numchars;i++){
		subdato = campo.substring(i,i+1);
		if (subdato==",") {
			numcomas++;
		}
	}
	if (numcomas >=2) {
		return true;
	} else {
		return false;
	}
}


//-noEsMail-//Esta función comprueba si es una dirección valida
	function noEsMail(campo, etiqueta) {
		var sArroba=/^(.+)@(.+)$/;
		if (campo.value.match(sArroba)==null) {
			alert("ERROR: Campo incorrecto (" + etiqueta.toUpperCase() + ").");
			campo.focus();
			return true;
		}	
		var sPunto=campo.value.match(sArroba)[2];
		var iPunto=sPunto.length;
		var encontrado=0;
		for (i=0;i<iPunto;i++) {
			if (sPunto.charAt(i)==".") {
				encontrado = 1;
			}
		}
		if (!encontrado) {
			alert("ERROR: Campo incorrecto (" + etiqueta.toUpperCase() + ").");
			campo.focus();
			return true;
		}
		return false;
	}
//-duplicar_direccion-//Duplica la direccion de envio
function duplicar_direccion(formulario) 
{
		formulario["sDireccion_en"].value = formulario["sDireccion"].value;
		formulario["sLocalidad_en"].value = formulario["sLocalidad"].value;
		formulario["iCodPostal_en"].value = formulario["iCodPostal"].value;
		formulario["provincia_en"].value = formulario["provincia"].value;
}
//-duplicar_direccion-//Duplica la direccion de envio
function duplicar_direccion_modusu(formulario) 
{
		formulario["UsuDomicilio_en"].value = formulario["UsuDomicilio"].value;
		formulario["UsuLocalidad_en"].value = formulario["UsuLocalidad"].value;
		formulario["UsuCodPost_en"].value = formulario["UsuCodPostal"].value;
		formulario["provincia_en"].value = formulario["provincia"].value;
}


// Hay algún option de un select seleccionado. Si es 0 es Padre.
function NoHayAlgunoSeleccionado (campo, etiqueta) {
	
		if (campo.value == '0' ) {
	 		alert ("Atención, debe seleccionar algún " + etiqueta.toUpperCase());
			campo.focus();
			return true;
	 	} else {
			return false;
		}
}
//-validar_form_newsletters-//Esta función valida el formulario de registro de newsletters antes de enviarlo
function validar_form_newsletters(formulario) {
	if (estaVacio(formulario["sAlias"], "Nombre") ||
		estaVacio(formulario["sEmail"], "Email") ||
		noEsMail(formulario["sEmail"], "Email")
		) {
		return false;
	}
	return true;
}


//-reordenar-//Esta función reordena los selects ()
function reordenar(eSelect, iCurrentField, numSelects) {
    var eForm = eSelect.form;
    var iNewOrder = eSelect.selectedIndex + 1;
	var iNewValor = eSelect.selectedIndex + 1;
      var iPrevOrder;
      var positions = new Array(numSelects);
      var ix;
      for (ix = 0; ix < numSelects; ix++)
      {
              positions[ix] = 0;
      }
      for (ix = 0; ix < numSelects; ix++)
      {
              positions[eSelect.form["FormPosition" + ix].selectedIndex] = 1;
      }
      for (ix = 0; ix < numSelects; ix++)
      {
              if (positions[ix] == 0)
              {
                      iPrevOrder = ix + 1;
                      break;
              }
      }
      if (iNewOrder != iPrevOrder)
      {
              var iInc = iNewOrder > iPrevOrder? -1:1
              var iMin = Math.min(iNewOrder, iPrevOrder);
              var iMax = Math.max(iNewOrder, iPrevOrder);
              for (var iField = 0; iField < numSelects; iField++)
              {
                      if (iField != iCurrentField)
                      {
                              if (eSelect.form["FormPosition" + iField].selectedIndex + 1 >= iMin && eSelect.form["FormPosition" + iField].selectedIndex + 1<= iMax)
                              {
						       eSelect.form["FormPosition" + iField].selectedIndex += iInc;
						}
                      }
              }
      }
}
//-isUndefined-//Esta función comprueba si el objeto pasado está definido
function isUndefined(a) {
    return typeof a == 'undefined';
}
function isFunction(a) {
    return typeof a == 'function';
}
function isNull(a) {
    return typeof a == 'object' && !a;
}
function isObject(a) {
    return (a && typeof a == 'object') || isFunction(a);
}

//-selectHayAlgunoSeleccionado-//Esta función comprueba que se seleccione una opción
function selectHayAlgunoSeleccionado(combo) {
	if (combo.selectedIndex==0) {
		return false;
	}
	return true;
}

//-pasaAMayusculas-//Esta función pasa a mayúsculas el valor introducido en un campo
function pasaAMayusculas(formulario,campo) {
	formulario[campo].value=formulario[campo].value.toUpperCase();
}
//-pasaAMinusculas-//Esta función pasa a minúsculas el valor introducido en un campo
function pasaAMinusculas(formulario,campo) {
	formulario[campo].value=formulario[campo].value.toLowerCase();
}

//-esMenorNum-// Esta función comprueba si el valor del campoB es mayor que el campoA (para campos numericos).
function esMenorNum(campoA,campoB,etiquetaA,etiquetaB) {
	var a = eval(campoA.value);
	var b = eval(campoB.value);
	if (b <= a) {
		alert("Atención, el valor del campo " + etiquetaB.toUpperCase() + " tiene que ser mayor que el campo " + etiquetaA.toUpperCase() + ".");
		campoB.focus();
		return true;
	}
	else { return false; }
}
//Esta función valida el formulario antes de enviarlo
function validar_frm_busqueda(formulario) {
	if (
		estaVacio(formulario["sBusca"], "Palabra a buscar") ||
		tieneLongitud(formulario["sBusca"], "Palabra a buscar",3,50)
		) {
		return false;
	}
	return true;
}


function contaCaracteres(campo,cntfield,limite) {
	if (campo.value.length > limite) {
		campo.value = campo.value.substring(0, limite);
	} else {
		cntfield.value = limite - campo.value.length;
	}
}

function recarga(){
	document.location.href = window.location;
}	

function esFechaValida2(campo, etiqueta) {
	var sFecha = campo.value;
	var dia = parseInt(sFecha.substring(0,2));
	var mes = parseInt(sFecha.substring(3,5));
	var anno = parseInt(sFecha.substring(6,10));
	var diasmes = 31;
	switch (mes) {
		case 4: case 6: case 9: case 11:
			diasmes = 30;
			break;
		case 2:
			if ((anno % 4 == 0 && anno % 100 != 0) || anno % 400 == 0) {
				diasmes = 29;
			}
			else {
				diasmes = 28;
			}
			break;
		default:
			diasmes = 31;
	}
	if (dia > diasmes) {
		alert ("Atención, la fecha no es válida. Campo: "+ etiqueta.toUpperCase() + ".");
		campo.focus();
		return false;
	}
	if (mes > 12) {
		alert ("Atención, el mes no es correcto. Campo: "+ etiqueta.toUpperCase() + ".");
		campo.focus();
		return false;
	}
	if (anno < 1950) {
		alert ("Atención, el año debe ser posterior a 1950. Campo: "+ etiqueta.toUpperCase() + ".");
		campo.focus();
		return false;
	}
	return true;
}

// Esta función muestra u oculta un elemento dado
function ShowHide(div){ 
	if (document.getElementById(div).style.display=="none"){
		document.getElementById(div).style.display="";
	}
		else{
		document.getElementById(div).style.display="none";
	} 
}

<!-- Objetos AJAX -->
function nuevoAjax()
{
	var xmlhttp=false;
	try {
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
		try {
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (E) {
			xmlhttp = false;
		}
	}

	if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
		xmlhttp = new XMLHttpRequest();
	}
	return xmlhttp;
}

function EnvioAjax (method, divContenedor, queryString, bAsync)
{
	ajax = nuevoAjax();
	ajax.open(method, "D2W_EMOBLA_AJAX.php", bAsync);
	ajax.onreadystatechange=function() {
		if (ajax.readyState==4) {
			document.getElementById(divContenedor).innerHTML = ajax.responseText
		}
	}
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	ajax.setRequestHeader("encoding", "ISO-8859-1");
	ajax.send(queryString)
}

function ConsultaAjax (method, queryString, bAsync)
{
	ajax = nuevoAjax();
	ajax.open(method, "D2W_EMOBLA_AJAX.php", bAsync);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	ajax.setRequestHeader("encoding", "ISO-8859-1");
	ajax.send(queryString)
	return ajax.responseText;
}
<!-- Fin Objetos AJAX -->

//-->