// funciones de animacion de botones, activacion de botones...
function activeTiposButton(buttonId) {
	if ( buttonId == 0){
		$('.btn_tiposmovil').removeClass("btn_activebuscador");
	}
	else {
		//Revisar
		//$('.btn_tiposmovil').removeClass("btn_activebuscador");
		$('#btn_tipos' + buttonId).addClass("btn_activebuscador");
	}
	return false;
};

function activeDisenoButton(buttonId) {
	if ( buttonId == 0){
		$('.btn_disenomovil').removeClass("btn_activebuscador");
	}else {
		$('.btn_disenomovil').removeClass("btn_activebuscador");
		$('#btn_diseno' + buttonId).addClass("btn_activebuscador");
	}
	return false;
};

function activeSmartPhoneButton(buttonId) {
	if ( buttonId == 0){
		$('.btn_smartphone').removeClass("btn_activebuscador");
	}else {
		$('.btn_smartphone').removeClass("btn_activebuscador");
		$('#btn_smartphone').addClass("btn_activebuscador");
	}
	return false;
};

function selectMovilComparador(BoxNum) {
	srcImgMovil = $('.active_drag img').attr('src');
	idImgMovil  = $('.active_drag img').attr('id');
	altImgMovil = $('.active_drag').attr('title');

	$('#drop' + BoxNum + ' .img_movilselected img').attr({
		  src:   srcImgMovil
		, id:    idImgMovil
		, alt:   altImgMovil
		, title: altImgMovil
	});

	if ($('#drop'+BoxNum+' .img_movilselected span').length > 0) {
		var elm = $('#drop'+BoxNum+' .img_movilselected span')[0];
		elm.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + srcImgMovil + "', sizingMethod='scale')";
	}
	if(BoxNum == 1){document.getElementById('idComparador1').value = idImgMovil;
		setComparatorDrop(idImgMovil, 1);
	}
	else if(BoxNum == 2){document.getElementById('idComparador2').value = idImgMovil;
		setComparatorDrop(idImgMovil, 2);
	}
	else if(BoxNum == 3){document.getElementById('idComparador3').value = idImgMovil;
		setComparatorDrop(idImgMovil, 3);
	}

	$('#drop' + BoxNum + ' p.txt_movilselected span').text(altImgMovil);
};

// Funciones de comunicacion con servidor y acciones resultantes

// Funcion para comunicarse con el servidor
function GetXmlHttpObject() {
	var xmlHttp = null;

	try {
		// Firefox, Opera 8.0+, Safari
		xmlHttp = new XMLHttpRequest();
	} catch (e) {
		// Internet Explorer
		try {
			xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}

	return xmlHttp;
}

// Funcion q se ejecuta al cargar la pagina
	$(document).ready(
		function()
		{
			$('#drop1').Droppable(
				{
					  accept:      'drag'
					, tolerance:   'cursor'
					, hoverclass:  'overespacio'
					, activeclass: 'activeespacio'
					, onHover:
						function () {
							$('#drop1').removeClass("activeespacio");
						}
					, onOut:
						function () {
							$('#drop1').addClass("activeespacio");
						}
					, ondrop:
						function () {
							selectMovilComparador(1);
						}
					, fit: true
				}
			);

			$('#drop2').Droppable(
				{
					  accept:      'drag'
					, tolerance:   'cursor'
					, hoverclass:  'overespacio'
					, activeclass: 'activeespacio'
					, onHover:
						function () {
							$('#drop2').removeClass("activeespacio");
						}
					, onOut:
						function () {
							$('#drop2').addClass("activeespacio");
						}
					, ondrop:
						function () {
							selectMovilComparador(2);
						}
					, fit: true
				}
			);

			$('#drop3').Droppable(
				{
					  accept:      'drag'
					, tolerance:   'cursor'
					, hoverclass:  'overespacio'
					, activeclass: 'activeespacio'
					, onHover:
						function () {
							$('#drop3').removeClass("activeespacio");
						}
					, onOut:
						function () {
							$('#drop3').addClass("activeespacio");
						}
					, ondrop:
						function () {
							selectMovilComparador(3);
						}
					, fit: true
				}
			);
/*
			$("#btn_diseno1").click(
				function() {
					activeDisenoButton(1);
					//disenno(1);
					return false;
				}
			);

			$("#btn_diseno2").click(
				function() {
					activeDisenoButton(2);
					//disenno(2);
					return false;
				}
			);

			$("#btn_diseno3").click(
				function() {
					activeDisenoButton(3);
					//disenno(3);
					return false;
				}
			);

			$("#btn_diseno4").click(
				function() {
					activeDisenoButton(4);
					//disenno(4)
					return false;
				}
			);

			$("#btn_diseno5").click(
				function() {
					activeDisenoButton(5);
					//disenno(5);
					return false;
				}
			);
*/

			$("#radio_cliente").click(
				function() {
					activarPrecio();
					caracteristica();

					return true;
				}
			);

			$("#radio_nocliente").click(
				function() {
					activarPrecio();
					caracteristica();

					return true;
				}
			);

			$("#text_precio").change(
				function() {
					caracteristica();

					return false;
				}
			);

			$("#checkbox_bluetooth").click(
				function() {
					caracteristica();
					return true;
				}
			);

			$("#checkbox_mms").click(
				function() {
					caracteristica();
					return true;
				}
			);

			$("#checkbox_vllamada").click(
				function() {
					caracteristica();
					return true;
				}
			);

			$("#checkbox_mem").click(
				function() {
					caracteristica();
					return true;
				}
			);

			$("#checkbox_radio").click(
				function() {
					caracteristica();
					return true;
				}
			);

			$("#checkbox_video").click(
				function() {
					caracteristica();
					return true;
				}
			);

			$("#checkbox_wifi").click(
				function() {
					caracteristica();
					return true;
				}
			);

			$("#checkbox_mp3").click(
				function() {
					caracteristica();
					return true;
				}
			);

			$("#checkbox_tv").click(
				function() {
					caracteristica();
					return true;
				}
			);

			$("#checkbox_3g").click(
				function() {
					caracteristica();
					return true;
				}
			);

			inicializar();
		}
	);

// Se copia la funcion porque AJAX's no lee la funcion JS.
// TODO ¿BORRAR?
/*function pngfix(id) {
	var arVersion = navigator.appVersion.split("MSIE")
	var version = parseFloat(arVersion[1])

	if	(
			(version < 7) &&
			(document.body.filters)
		)
   {
      for(var i=0; i<document.images.length; i++)
      {
         var img = document.images[i]
         var imgName = img.src.toUpperCase()
         if (imgName.substring(imgName.length-3, imgName.length) == "PNG")
         {
            if (img.className == 'skip') continue;
            var imgID = (img.id) ? "id='" + img.id + "' " : ""
            var imgClass = (img.className) ? "class='" + img.className + "' " : ""
            var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' "
            var imgStyle = "display:inline-block;" + img.style.cssText
            if (img.align == "left") imgStyle = "float:left;" + imgStyle
            if (img.align == "right") imgStyle = "float:right;" + imgStyle
            if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle
            var strNewHTML = "<span " + imgID + imgClass + imgTitle
            + " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
            + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
            + "(src=\'" + img.src + "\', sizingMethod='scale');\"><img src='" + img.src + "' ";
            if (img.id) strNewHTML += 'id="' + img.id + '" ';
            strNewHTML += "class='skip' style='display:none'></span>"
            img.outerHTML = strNewHTML
            i = i-1
         }
      }
   }
}*/



/*
 * Funcion que iguala la altura de la barra izquierda (de parametros de busqueda) con la parte central (de telefonos).
 */
function igualaralturas() {
	$('#buscador_colizq').css("padding-bottom", "10px");
	$('#buscador_colcentro').css("padding-bottom", "10px");

	var izq = $('#buscador_colizq').height();
	var cen = $('#buscador_colcentro').height();

	if (izq < cen) {
		$('#buscador_colizq').css("padding-bottom", ((cen - izq) + 20) + "px");
		$('#buscador_colcentro').css("padding-bottom", "10px");

	} else {
		$('#buscador_colizq').css("padding-bottom", "10px");
		$('#buscador_colcentro').css("padding-bottom", ((izq - cen)) + "px");

	}
}






/******************************************************************************
 *                              FUNCIONES DEL JSP                             *
 ******************************************************************************/
/*
 * Funcion que abre el comparador con los telefonos seleccionados en la barra del comparador.
 */
/*function comparar() {
	var id1 = $('#drop1 img').attr('id'); // Identificador del 1º telefono a comparar
	var id2 = $('#drop2 img').attr('id'); // Identificador del 2º telefono a comparar
	var id3 = $('#drop3 img').attr('id'); // Identificador del 3º telefono a comparar

	var f = $("form[@name='comparadorForm']");
	var oldAction = $("form[@name='comparadorForm']").attr('action');

	if ((id1 != null) || (id2 != null) || (id3 != null)) {
		oldAction += '?';

		if (id1 != null) {
			oldAction += 'check=' + id1;
		}

		if (id2 != null) {
			if (id1 != null) {
				oldAction += '&';
			}

			oldAction += 'check2=' + id2;
		}

		if (id3 != null) {
			if ((id1 != null) || (id2 != null)) {
				oldAction += '&';
			}

			oldAction += 'check3=' + id3
		}
	}

	$("form[@name='comparadorForm']").attr('action', oldAction);
	$("form[@name='comparadorForm']").submit();
}*/



/*
 * Funcion que abre la ficha del telefono consultado.
 */
function abrirFicha(id, marca, modelo, sap, captacion, contrato, ruta) {
	var c  = $('#secCliente');
	var nc = $('#secNoCliente');

	var url;

	if ((c != null) && (nc != null)) {
		if (c.css('z-index') == 30) {
			if (contrato) {
				url =
					"https://tienda.vodafone.es/puntos/do/catalog/item.htm?" +
					"p=" + sap + "&" +
					"title=" + escape(marca) + "%20" + escape(modelo) + "&" +
					"tipo=contrato";
			} else {
				url =
					"https://tienda.vodafone.es/puntos/do/catalog/item.htm?" +
					"p=" + sap + "&" +
					"title=" + escape(marca) + "%20" + escape(modelo) + "&" +
					"tipo=tarjeta";
			}
		}

		if (nc.css('z-index') == 30) {
			url = ruta + "?s=contrato";
		}
	} else {
		if (c != null) {
			if (contrato) {
				url =
					"https://tienda.vodafone.es/puntos/do/catalog/item.htm?" +
					"p=" + sap + "&" +
					"title=" + escape(marca) + "%20" + escape(modelo) + "&" +
					"tipo=contrato";
			} else {
				url =
					"https://tienda.vodafone.es/puntos/do/catalog/item.htm?" +
					"p=" + sap + "&" +
					"title=" + escape(marca) + "%20" + escape(modelo) + "&" +
					"tipo=tarjeta";
			}
		}

		if (nc != null) {
			url = ruta + "?s=contrato";
		}
	}

	$("form:eq(1)").attr("action", url);
	$("form:eq(1)").submit();
}



/*
 * Funcion que abre el comparador con el telefono consultado.
 */
function abrirComparacion(id) {
	var f = $("form[@name='comparadorForm']");
	var oldAction = $("form[@name='comparadorForm']").attr('action');
	$("form[@name='comparadorForm']").attr('action', oldAction + "?check=" + id);
	$("form[@name='comparadorForm']").submit();
}



/*
 * Funcion que abre si es o no cliente. TODO PARA BORRAR
 */
function abrirSeccion(open, close) {
	$('#'+close).css('display','none')
	$('#'+open).css('display','block');

	var c = document.getElementById(close);
	var o = document.getElementById(open);

	c.style.display = 'none';
	o.style.display = 'block';
}



/*
 * Funcion que abre el recuadro de caracteristicas del telefono.
 */
function abrirCaracteristicas(id, captacion, contrato, tarjeta) {
	xmlHttp = GetXmlHttpObject();

	if (xmlHttp == null) {
		alert("Your browser does not support AJAX!");
		return;
	}

	var url =
		"/do/buscador/moviles?opcion=caracteristicas&phoneId=" + id +
		"&" + clienteCaptacion() + "=" + captacion +
		"&" + clienteContrato() + "=" + contrato +
		"&" + clienteTarjeta() + "=" + tarjeta
		;

	xmlHttp.onreadystatechange =
		function() {
			if (xmlHttp.readyState == 4) {
				var caracts = xmlHttp.responseText;
				$('#seccion_caracteristicas').html(caracts);
				$('.layer_popup_buscador').css({ display: "block", opacity: "0.5" });
				$('.popup_buscador').show('fast');
				efectos2();
			}
		};

	xmlHttp.open("GET", url, true);
	xmlHttp.send(null);

	// Esto no es necesario pero es para no sobrecargar la memoria y poder enviar varias peticiones (varias pulsaciones de boton)
	delete XMLHttpRequestObject;

	XMLHttpRequestObject = null;
}



/*
 * Funcion que cierra el recuadro de caracteristicas del telefono.
 */
function cerrarCaracteristicas() {
	$('.layer_popup_buscador').hide('fast').css("display","none");
	$('.popup_buscador').hide('fast');
}



/*
 * Funcion que envia los parametros de busqueda y actualiza los telefonos.
 */
function enviar(url) {
	var xmlHttp = GetXmlHttpObject();

	if (xmlHttp == null) {
		alert("Your browser does not support AJAX!");
		return;
	}

	xmlHttp.onreadystatechange =
		function() {
			var efectosLoaded = false;

			if (xmlHttp.readyState == 1) {
				// Todavia no
				$('#buscador_colcentro').html("<p><img src='/img/buscador/ajax-loader.gif'/>Cargando resultados de la b&uacute;squeda</p>");
				igualaralturas();
			}
			else if (xmlHttp.readyState == 4) {
				var resultados = xmlHttp.responseText;
				$('#buscador_colcentro').html(resultados);
				igualaralturas();
				try{
					efectos();
				} catch(ex) {
					while( !efectosLoaded){
						try{
							setTimeout('efectos()',1)
							efectosLoaded = true;
						} catch(ex) {}
					}
		  		}
				pngfix("buscador_colcentro");
			}
		};

	xmlHttp.open("GET", url, true);
	xmlHttp.send(null);

	// Esto no es necesario pero es para no sobrecargar la memoria y poder enviar varias peticiones (varias pulsaciones de boton)
	delete XMLHttpRequestObject;

	XMLHttpRequestObject = null;
}



/*
 * Funcion que realiza una busqueda completa de los telefonos.
 */
function resetForm() {
	document.buscadorForm.reset();
	activeTiposButton(0);
	activeDisenoButton(0);
	activeSmartPhoneButton(0);
	$("#disennoV").attr("value", "nada");
	$("#funcionalidadV").attr("value", "nada");
	cargarTelefonos();
}



/*
 * Funcion que realiza una busqueda parametrizada de los telefonos.
 */
function cargarTelefonos() {
	var url =
		"/do/buscador/moviles?opcion=telefonos" +
		"&3g="				+ $("#checkbox_3g").attr("checked")			+
		"&bluetooth="		+ $("#checkbox_bluetooth").attr("checked")	+
		"&mms="				+ $("#checkbox_mms").attr("checked")		+
		"&mp3="				+ $("#checkbox_mp3").attr("checked")		+
		"&radioIntegrada="	+ $("#checkbox_radio").attr("checked")		+
		"&tarjeta_mem="		+ $("#checkbox_mem").attr("checked")		+
		"&tv="				+ $("#checkbox_tv").attr("checked")			+
		"&wifi="			+ $("#checkbox_wifi").attr("checked")		+
		"&video="			+ $("#checkbox_video").attr("checked")		+
		"&videollamada="	+ $("#checkbox_vllamada").attr("checked")	+

		"&disenno="			+ $("#disennoV").attr("value")				+
		"&funcionalidad="	+ $("#funcionalidadV").attr("value")		+
		"&precio="			+ $("#text_precio").attr("value");

	var f1 = $("#radio_cliente").attr("checked");
	var f2 = $("#radio_nocliente").attr("checked");

	if (f1 == null) f1 = false;
	if (f2 == null) f2 = false;

	if (f1 || f2) {
		if (f1) {
			url += "&cliente=true";
		} else {
			url += "&cliente=false";
		}
	} else {
		url += "&cliente=";
	}

	enviar(url);
}



/*
 * Funcion que procesa el formulario al pulsar sobre un checkbox o sobre un radiobutton.
 */
function caracteristica() {
	cargarTelefonos();
}

/*
 *
 */
function efectos2() {
	$("#soycliente").click(
		function(){
			$('.price_cliente').addClass("price_activo");
			$('.price_nocliente').removeClass("price_activo");
			return false;
		}
	);

	$("#nocliente") .click(
		function(){
			$('.price_cliente').removeClass("price_activo");
			$('.price_nocliente').addClass("price_activo");
			return false;
		}
	);
}



/*
 * Funcion que activa el campo precio solo si se ha seleccionado si se es o no cliente.
 */
function activarPrecio() {
	var f1 = $("#radio_cliente").attr("checked");
	var f2 = $("#radio_nocliente").attr("checked");

	if (f1 == null) f1 = false;
	if (f2 == null) f2 = false;

	if (f1 || f2) {
		$("#text_precio").attr("disabled", false);
	} else {
		$("#text_precio").attr("disabled", true);
	}
}

