var stackHideSelect = new Array();
var preloadFlag = false;

function newImage(arg) {
	if (document.images) {
		rslt = new Image();
		rslt.src = arg;
		return rslt;
	}
}

function changeImages() {
	if (document.images && (preloadFlag == true)) {
		for (var i=0; i<changeImages.arguments.length; i+=2) {
			document[changeImages.arguments[i]].src = changeImages.arguments[i+1];
		}
	}
}

function preloadImages() {
	if (document.images) {
		inicio_over = newImage("/img/main/btn_inicio-over-over.gif");
		catalogo_over = newImage("/img/main/btn_catalogo-over.gif");
		la_empresa_over = newImage("/img/main/btn_empresa-over.gif");
		servicios_over = newImage("/img/main/btn_contactar-over.gif");
		contacta_over = newImage("/img/main/btn_seleccion-over.gif");
		preloadFlag = true;
	}
}

function getSelectedRadio(buttonGroup) {
   // returns the array number of the selected radio button or -1 if no button is selected
   if (buttonGroup[0]) { // if the button group is an array (one button is not an array)
      for (var i=0; i<buttonGroup.length; i++) {
         if (buttonGroup[i].checked) {
            return i
         }
      }
   } else {
      if (buttonGroup.checked) { return 0; } // if the one button is checked, return zero
   }
   // if we get to this point, no radio button is selected
   return -1;
} // Ends the "getSelectedRadio" function

function getSelectedRadioValue(buttonGroup) {
   // returns the value of the selected radio button or "" if no button is selected
   var i = getSelectedRadio(buttonGroup);
   if (i == -1) {
      return "";
   } else {
      if (buttonGroup[i]) { // Make sure the button group is an array (not just one button)
         return buttonGroup[i].value;
      } else { // The button group is just the one button, and it is checked
         return buttonGroup.value;
      }
   }
} // Ends the "getSelectedRadioValue" function



function bodegas_delay(time_delay){
	string="void(0)";
	setTimeout(string,time_delay);
}

var XHR = new xHttpRequest();

function ajaxutil(url, params, id_contenedor, mostrarCapaCargando)
{
	if (mostrarCapaCargando)
		xInnerHtml(id_contenedor,XGetElementById('capaCargando').innerHTML);


	XHR.send('GET', url, params, 10000, false, false, id_contenedor, cargarpagina);
}

function init_capas() {
		xLeft('capa_busqueda_productos', xPageX('search_name_field_id') );
		xTop('capa_busqueda_productos', xPageY('search_name_field_id') + 20 );
	}

function wait(delay){
string="pauseforalert("+delay+");";
setTimeout(string,delay);
}
function pauseforalert(delay){
	void(0);
}

	function cambio_text_productos() {
		var campo = document.search_form.search_name_field.value;
		if (campo.length >= 2) {
			hideSelect();
			stackHideSelect.push(true);
			ajaxutil('ajaxutils.php?', '&accion=cuadro_productos&texto='+campo, 'capa_busqueda_productos');
			xVisibility('capa_busqueda_productos',true);
		}
		else {
			unhideSelect();
			xInnerHtml('capa_busqueda_productos', '');
			xVisibility('capa_busqueda_productos',false);
		}
	}
	function blur_text_productos() {
		unhideSelect();
		xInnerHtml('capa_busqueda_productos', '');
		xVisibility('capa_busqueda_productos',false);
	}
	function putNombreProducto(nombre) {
		var campo = document.search_form.search_name_field;
		campo.value = nombre;
		xInnerHtml('capa_busqueda_productos', '');
		xVisibility('capa_busqueda_productos',false);
	}

function cargarpagina(http_request, status, id_contenedor)
{
	if (status == XHR.OK) {
			var data = http_request.responseText.split("||JavaScriptCode||");
			txt=unescape(data[0]);
			txt2=txt.replace(/\+/gi ," ");
            document.getElementById(id_contenedor).innerHTML=txt2;
            if (data[1]) {
            	eval(data[1]);
            }
            quita_cargando();
        }
}

function cambiaEstilo_product(obj,is_on) {
	obj.className = (is_on) ? 'product_selected' : 'product';
}

function cambio_categoria_cargar_subcategorias(campo_form) {
	var form = document.catalog_form;
	var campo = campo_form.value;

	xInnerHtml('div_subcategoria', 'Cargando subcategorías...');
	ajaxutil('ajaxutils.php?', '&accion=cargar_subcategorias&id_categoria='+campo, 'div_subcategoria');
	//xVisibility('capa_busqueda_productos',true);
}
function cambio_cargar_categorias() {
	xInnerHtml('div_categoria', 'Cargando categorías...');

	var form = document.catalog_form;
	var campo = form.vinos;
	var vinos = getSelectedRadioValue(campo);

	xInnerHtml('div_subcategoria', '');
	ajaxutil('ajaxutils.php?', '&accion=cargar_categorias&vinos='+vinos, 'div_categoria');
	//xVisibility('capa_busqueda_productos',true);
}

function cambio_cargar_productos_paginacion() {
	categoria = xGetElementById('catalog_field');
	subcategoria = xGetElementById('subcategoria_field');
	var texto = '';
	if (categoria != undefined) {
		texto += '&categoria=' + categoria.value;
	}
	if (subcategoria != undefined) {
		texto += '&subcategoria=' + subcategoria.value;
	}
	ajaxutil('ajaxutils.php?', '&accion=cargar_productos_paginacion' + texto, 'div_search_paginacion');
}

function paginacion(cambia_a, paginas) {
	cargando();
	for(var i=1;i<=paginas;i++) {
		obj = xGetElementById('paginacion_'+i);
		if (obj != undefined) {
			if (i==cambia_a) {
				obj.className = 'pagination_current';
			}
			else {
				obj.className = 'pagination_not_current';
			}
		}
	}
	ajaxutil('ajaxutils.php?', '&accion=cargar_productos_paginacion&pagina=' + cambia_a, 'div_search_productos');
}

function quita_cargando() {
	xHide('capaCargando');
	xHide('capaCargandoFondo');
	unhideSelect();
}


function cargando() {
	mostrarCapaFondo();

	nombre = 'capaCargando';
	ancho = xClientWidth();
	alto = xClientHeight();
	xWidth (nombre,ancho);
  	xHeight (nombre,alto);
	xMoveTo(nombre,0,xScrollTop());
	xShow(nombre);
}

function mostrarCapaFondo() {
	nombre = 'capaCargandoFondo';
	if (xGetElementById(nombre)) {
		hideSelect();
		ancho = document.body.scrollWidth;
		alto = document.body.scrollHeight;
		xWidth (nombre,ancho);
	  	xHeight (nombre,alto);
		xMoveTo(nombre,0,0);
		xShow(nombre);
	}
}

function hideSelect() {

  if (document.all) {
    for (formIdx=0; formIdx<document.forms.length; formIdx++) {
      var theForm = document.forms[formIdx];
      for (elementIdx=0; elementIdx<theForm.elements.length; elementIdx++) {
        if(theForm[elementIdx].type == "select-one") {
          theForm[elementIdx].style.visibility = "hidden";
        }
      }
    }
  }
}

// Unhide all select boxes
function unhideSelect() {
	  if (document.all) {
	    for (formIdx=0; formIdx<document.forms.length; formIdx++) {
	      var theForm = document.forms[formIdx];
	        for(elementIdx=0; elementIdx<theForm.elements.length; elementIdx++) {
	          if(theForm[elementIdx].type == "select-one") {
	            theForm[elementIdx].style.visibility = "visible";
	          }
	         }
	      }
	  }
}

function encima_campo(obj) {
	if (obj.className == 'pagination_not_current')
		obj.className = 'pagination_not_current_hover';
}

function fuera_campo(obj) {
	if (obj.className == 'pagination_not_current_hover')
		obj.className = 'pagination_not_current';
}

function mailAntiSpam(usuario,dominio)
{
	document.write("<a class=enlace_listados href=\"mailto:" + usuario + "@" + dominio + "\">" + usuario + "@" + dominio + "</a>")
}

function enviar_form_busqueda(form) {
	var campo = form.search_name_field;
	if (campo.value.length < 2) {
		alert('Debe introducir al menos 2 carácteres para realizar la búsqueda');
		return false;
	}
	cargando();
	return true;
}

function enviar_form_catalog() {
	categoria = xGetElementById('catalog_field');
	// + " - " + (categoria?categoria.options[categoria.selectedValue].value:'n/a'));
	rc = false;
	if (categoria && categoria.value != -1) {
		rc = true;
	}

	return rc;
	//subcategoria
}

function cambio_cargar_productos() {
	if (enviar_form_catalog()) {
		categoria = xGetElementById('catalog_field');
		subcategoria = xGetElementById('subcategoria_field');
		var texto = '';
		if (categoria != undefined) {
			texto += '&categoria=' + categoria.value;
		}
		if (subcategoria != undefined) {
			texto += '&subcategoria=' + subcategoria.value;
		}
		ajaxutil('ajaxutils.php?', '&accion=cargar_productos' + texto, 'div_search_productos');
		cargando();
	}
}

function validarEmail(emailStr) {
	var emailPat=/^(.+)@(.+)$/;
	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
	var validChars="\[^\\s" + specialChars + "\]";
	var quotedUser="(\"[^\"]*\")";
	var ipDomainPat=/^(\d{1,3})[.](\d{1,3})[.](\d{1,3})[.](\d{1,3})$/;
	var atom=validChars + '+';
	var word="(" + atom + "|" + quotedUser + ")";
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat=new RegExp("^" + atom + "(\\." + atom + ")*$");
	var matchArray=emailStr.match(emailPat);
	if (matchArray == null) {
	   return false;
	}
	var user=matchArray[1];
	var domain=matchArray[2];
	if (user.match(userPat) == null) {
	   return false;
	}
	var IPArray = domain.match(ipDomainPat);
	if (IPArray != null) {
	   for (var i = 1; i <= 4; i++) {
	      if (IPArray[i] > 255) {
	         return false;
	      }
	   }
	   return true;
	}
	var domainArray=domain.match(domainPat);
	if (domainArray == null) {
	   return false;
	}
	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)) {
	   return false;
	}
	if (len < 2) {
	   return false;
	}
	return true;
}
