var comparadores = {
	aux:{
		formatNumber:function(c){
			var x = "";
			var auxX = c.replace(".","");
			auxX = parseFloat(auxX.replace(",",".")).toFixed(2);
			x = auxX.replace(".","");
			return x;
		},
		formatNumberType2:function(c){
			var x = "";
			var auxX = c.replace(".","");
			x = auxX.replace(",",".");
			return x;
		},
		formatNumberType3:function(c){
			var x = c.replace(".",",");
			return x;
		},
		formatNumberType4:function(c){
			var x = c.replace(",",".");
			return x;
		},
		renderNoResultData:function(){
			var list = $("#list");
			var tablaWrap = $("#TablaCom");
			var tabla = $(tablaWrap).find("table").eq(0);
			var tablaBody = tabla.find("tbody").eq(0);
			var aux = $.TR({Class: "noResult"},$.TD({colSpan:7},"No hay ningún producto que coincida con su búsqueda"))
			$(tabla).find("a").each(function(i) {
				$(this).get(0).onclick = function(){return false};
				$(this).get(0).href = "#";
			});
			tablaBody.append(aux);
			tabla.append(tablaBody);
		    list.show("slow");
		}
	},
	pagination:{
		obj:null,
		numPages:0,
		current:1,
		initItem:0,
		endItem:0,
		itemsByPage:10,
		numItems:0,
		topPagination:null,
		bottomPagination:null,
		loadingPanel:null,
		init:function(numItems, obj){
			var list = $("#list");
			comparadores.pagination.obj = obj;
			comparadores.pagination.topPagination = $(list).find(".paginado").eq(0);
			comparadores.pagination.bottomPagination = $("#list2");
			comparadores.pagination.numItems = numItems;
			comparadores.pagination.numPages = Math.ceil( comparadores.pagination.numItems / comparadores.pagination.itemsByPage)
			comparadores.pagination.topPagination.empty();
			comparadores.pagination.bottomPagination.empty();
			comparadores.pagination.createItemsPagination();
		},
		createItemsPagination:function(){
			var aux = li = null;
			var ol = document.createElement("ol");
			var select = comparadores.pagination.current-1;
			comparadores.pagination.topPagination.empty();
			comparadores.pagination.bottomPagination.empty();
			aux = $.SPAN({Class:"numResul"},"Estás viendo " + comparadores.pagination.current + " de " + comparadores.pagination.numPages);
			for(var i = 1; i <= comparadores.pagination.numPages; i++){
				li = $.LI({},$.A({href:""},i));
				ol.appendChild(li);
			}
			ol.getElementsByTagName("li")[select].className = "select";
			comparadores.pagination.topPagination.append(aux);
			comparadores.pagination.topPagination.append(ol);
			comparadores.pagination.bottomPagination.append(comparadores.pagination.topPagination.children().clone());
			comparadores.pagination.setEvents($(comparadores.pagination.topPagination).find("a"));
			comparadores.pagination.setEvents($(comparadores.pagination.bottomPagination).find("a"));
			comparadores.pagination.createNextPrevItems($(comparadores.pagination.topPagination).find("ol").eq(0).get(0));
			comparadores.pagination.createNextPrevItems($(comparadores.pagination.bottomPagination).find("ol").eq(0).get(0));
			comparadores.pagination.topPagination.show();
			comparadores.pagination.bottomPagination.show();
		},
		createNextPrevItems:function(ol){
			var select = comparadores.pagination.current-1;
			var li = null;
			var aux = 0;
			var tablaWrap = $("#TablaCom");
			var tabla = $(tablaWrap).find("table").eq(0);
			var tablaBody = tabla.find("tbody").eq(0);
			if (comparadores.pagination.current != comparadores.pagination.numPages) {
				li = $.LI({}, $.A({href: ""}, ">"));
				ol.appendChild(li);
				aux = ol.getElementsByTagName("a");
				aux[aux.length-1].onclick = function(){
					$(tabla).fadeOut("slow",function(){
						tablaBody.empty();
						comparadores.pagination.next();
						$(tabla).fadeIn("slow");
					});
					return false;
				}
			}
			if(comparadores.pagination.current != 1 || comparadores.pagination.current == comparadores.pagination.numPages){
				li = $.LI({}, $.A({href: ""}, "<"));
				ol.insertBefore(li, ol.getElementsByTagName("li")[0]);
				select++;
				ol.getElementsByTagName("a")[0].onclick = function(){
					$(tabla).fadeOut("slow",function(){
						tablaBody.empty();
						comparadores.pagination.prev();
						$(tabla).fadeIn("slow");
					});
					return false;
				}
			}
		},
		setEvents:function(lis){
			var tablaWrap = $("#TablaCom");
			var tabla = $(tablaWrap).find("table").eq(0);
			var tablaBody = tabla.find("tbody").eq(0);
			for(var i = 0; i < lis.length; i++){
				lis.eq(i).get(0).onclick = function(i){
					return function(e){
						$(tabla).fadeOut("slow",function(){
							tablaBody.empty();
							comparadores.pagination.to(i+1);
							$(tabla).fadeIn("slow");
						});
						return false;
					};
				}(i);
			}
		},
		next:function(){
			comparadores.pagination.to(comparadores.pagination.current + 1)
		},
		prev:function(){
			comparadores.pagination.to(comparadores.pagination.current - 1)
		},
		to:function(idx){
			var restantes = 0;
			var tablaWrap = $("#TablaCom");
			var tabla = $(tablaWrap).find("table").eq(0);
			var tablaBody = tabla.find("tbody").eq(0);
			var headers = tabla.find("thead").eq(0).find("a");
			var wrapComparacion = wrapComparacion2 = null;
			var loadingPanel = new yuiLoadingPanel();
			wrapComparacion = $.DIV({Class:"Union"},$.SPAN({Class:"RComparacion"},"Si quieres comparar hasta 4 productos marca la casilla Comparar y pulsa en:"),$.A({href:"", Class:"RCompa"},$.IMG({alt:"Realizar comparación", src:"/design/ezflow_site/images/realizar_comparacion.gif"})))
			loadingPanel.show();
			 $.ajax({
		         "type":"GET",
		         url: comparadores.pagination.obj.url + "?offset=" + idx,
				 dataType: "json",
		         success: function(datos){
				 	comparadores.pagination.obj.data = datos;
					comparadores.pagination.obj.numItems = comparadores.pagination.obj.data.total;
				 	comparadores.pagination.obj.items = [];
					// generamos un array para las ordenaciones
					for(var i = 0; i < comparadores.pagination.obj.data.item.length; i++){
						comparadores.pagination.obj.items[i] = comparadores.pagination.obj.data.item[i];
					}
					comparadores.pagination.initItem = (idx - 1) * comparadores.pagination.itemsByPage;
					restantes = comparadores.pagination.numItems - comparadores.pagination.initItem;
					comparadores.pagination.endItem = (restantes < comparadores.pagination.itemsByPage) ? comparadores.pagination.initItem + restantes : comparadores.pagination.initItem + comparadores.pagination.itemsByPage;
					tablaBody.empty();
					// si hay registros
					if (comparadores.pagination.obj.numItems > 0) {
						comparadores.pagination.obj.renderData(comparadores.pagination.obj.items);
						//si hay mas de 10 elementos, activamos la paginación
						if (comparadores.pagination.obj.numItems > comparadores.pagination.itemsByPage) {
							// pintamos los 10 primeros resultados
							comparadores.pagination.init(comparadores.pagination.obj.numItems, comparadores.pagination.obj);
						}else {
							comparadores.pagination.endItem = comparadores.pagination.obj.numItems;
							if (comparadores.pagination.obj.numItems > 1) {
								wrapComparacion2 = tablaWrap.get(0).insertBefore(wrapComparacion,tabla.get(0))
								tablaWrap.append(wrapComparacion2.cloneNode(true));
							}
						}
						comparadores.pagination.current = idx;
						comparadores.pagination.createItemsPagination();
						comparadores.setComparadores(comparadores.pagination.obj.id);
						comparadores.pagination.obj.linksHeader();
					 }else comparadores.aux.renderNoResultData();
					setTimeout(function(){loadingPanel.hide()},100);
		         }
		      })

		}
	},
	setErrorBlock: function(id, txt, tabla){
		if ($(id).find("span[@class=error]").length != 0)  $(id).find("span[@class=error]").remove();

		if (txt != "") {
			var spanElement = document.createElement("span");
			spanElement.className = "error";
			tabla.prev().before(spanElement)
			$(id).find(".error").html(txt)

			/*
			if ($(id).find("span[@class=error]").length != 0)

			else {
				//spanElement.appendChild(document.createTextNode(txt));

				$(id).each(function(){
					this.insertBefore(spanElement, this.firstChild)
				})
			}
			*/
		}
		else
			if ($(id).find("span[@class=error]").length != 0)  $(id).find("span[@class=error]").remove();
	},
	comparar:function(param,idbtn){
		 var arr_compare = [];
		 var ok = true;
		 var idTable=0;
		 var tablaWrap = $("#TablaCom");
		 var tabla='';

		 $(".Union").each(function(i){
		 		if(i==idbtn){
		 			if((idbtn%2)==0){
		 				tabla=$(this).next();

		 			}else{
		 				tabla=$(this).prev();

		 			}
		 		}
		 })

		 var checks = tabla.find("tbody").eq(0).get(0).getElementsByTagName('input');
		 for(var i=0; i<checks.length; i++)
			  if(checks[i].checked) arr_compare.push(checks[i].value);

		 if(arr_compare.length<2){
		 	  comparadores.setErrorBlock(tablaWrap,"Debes seleccionar al menos 2 para comparar",tabla);
			  ok = false;
		 }else if(arr_compare.length>4){
			  comparadores.setErrorBlock(tablaWrap,"Sólo puedes seleccionar 4 para comparar",tabla);
			  ok = false;
		 }

		 if (ok) {
		 	var url = '/comparativa/' + param + '/';
		 	url += arr_compare.join('/');
		 	document.location.href = url;
		 }

	},
	comparar2:function(param,idbtn){
		 var arr_compare = [];
		 var ok = true;
		 var idTable=0;
		 var tablaWrap = $("#content");
		 var tabla='';

		 $(".Union").each(function(i){
		 		if(i==idbtn){
		 			if((idbtn%2)==0){
		 				tabla=$(this).next();

		 			}else{
		 				tabla=$(this).prev();

		 			}
		 		}
		 })

		 var checks = tabla.find("tbody").eq(0).get(0).getElementsByTagName('input');
		 for(var i=0; i<checks.length; i++)
			  if(checks[i].checked) arr_compare.push(checks[i].value);

		 if(arr_compare.length<2){
		 	  comparadores.setErrorBlock(tablaWrap,"Debes seleccionar al menos 2 para comparar",tabla);
			  ok = false;
		 }else if(arr_compare.length>4){
			  comparadores.setErrorBlock(tablaWrap,"Sólo puedes seleccionar 4 para comparar",tabla);
			  ok = false;
		 }

		 if (ok) {
		 	var url = '/comparativa/' + param + '/';
		 	url += arr_compare.join('/');
		 	document.location.href = url;
		 }

	},
	setComparadores:function(param){
		var tablaWrap = $("#TablaCom");
		var linksComparadores = $(tablaWrap).find(".Union");

		$(linksComparadores).each(function(j){

			$(this).find('a').bind("click",function(){


				comparadores.comparar(param,j)
				return false;

			})

		})
	},
	setComparadores2:function(param){
		var tablaWrap = $("#content");
		var linksComparadores = $(tablaWrap).find(".Union");
		$(linksComparadores).each(function(j){
			$(this).find('a').bind("click",function(){
				comparadores.comparar2(param,j)
				return false;
			})

		})
	},
	depositos:{
		data:null,
		items:[],
		numItems:0,
		url:'',
		id:'depositos',
		update:function(param1, param2, param3){
			var loadingPanel = new yuiLoadingPanel();
			// actualizo parte izquierda
			var tablaWrap = $("#TablaCom");
			var tabla = $(tablaWrap).find("table").eq(0);
			var tablaBody = tabla.find("tbody").eq(0);
			var headers = tabla.find("thead").eq(0).find("a");
			var comparadoresDepositos = $("#comparadoresDepositos").parent().parent().find(".blockResult").eq(0);
			var txtUpdate = wrapComparacion = wrapComparacion2 = null;
			var dl = comparadoresDepositos.find("dl").eq(0);
			var plazo = dl.find("dd").eq(1).text().trim();
			var aux = dl.find("dd").eq(2).text();
			var tipo = parseFloat(param2) || "";
			var plazoAux = 0;
			var list = $("#list");
			var topPagination = $(list).find(".paginado").eq(0).empty();
			var bottomPagination = $("#list2").empty();
			tablaWrap.find(".Union").each(function(i) {$(this).remove()})
			tablaWrap.find(".error").each(function(i) {$(this).remove()})
			if(param3 == 0) plazo = "Menos de 3 meses";
			else if(param3 == 1) plazo = "Entre 3 y 6 meses";
			else if(param3 == 2) plazo = "Entre 6 meses y 1 año";
			else if(param3 == 3) plazo = "Más de 1 año";
			else plazo = "Cualquier plazo";
			loadingPanel.show();
			txtUpdate =
				$.DL({},
					$.DT({},"Importe del Depósito:"),
					$.DD({},calculadoras.auxiliares.formatCurrency(parseInt(param1),0) + " €"),
					$.DT({},"Plazo:"),
					$.DD({},plazo)
				)

			wrapComparacion = $.DIV({Class:"Union"},$.SPAN({Class:"RComparacion"},"Si quieres comparar hasta 4 productos marca la casilla Comparar y pulsa en:"),$.A({href:"", Class:"RCompa"},$.IMG({alt:"Realizar comparación", src:"/design/ezflow_site/images/realizar_comparacion.gif"})))

		   comparadoresDepositos.append(txtUpdate);
		   if(tipo != "") {
				comparadoresDepositos.find("dl").eq(1).append($.DT({},"Tipo de interés:"));
				comparadoresDepositos.find("dl").eq(1).append($.DD({},tipo + " %"));
		   }
		   dl.remove();
			// llamo json y actualizo array
			$.ajax({
		         "type":"GET",
		         url: "/json/depositos/"+parseInt(param1)+"/"+param3+"/"+tipo,
				 dataType: "json",
		         success: function(datos){
				 	comparadores.depositos.data = datos;
					comparadores.depositos.numItems = comparadores.depositos.data.total;
				 	comparadores.depositos.items = [];
					comparadores.depositos.url = "/json/depositos/"+parseInt(param1)+"/"+param3+"/"+tipo;
					// generamos un array para las ordenaciones
					for(var i = 0; i < comparadores.depositos.data.item.length; i++){
						comparadores.depositos.items[i] = comparadores.depositos.data.item[i];
					}
					tablaBody.empty();
					// si hay registros
					if (comparadores.depositos.numItems > 0) {
						//si hay mas de 10 elementos, activamos la paginación
						comparadores.depositos.renderData(comparadores.depositos.items);
						if (comparadores.depositos.numItems > 1) {
							wrapComparacion2 = tablaWrap.get(0).insertBefore(wrapComparacion,tabla.get(0))
							tablaWrap.append(wrapComparacion2.cloneNode(true));
							if (comparadores.depositos.numItems > comparadores.pagination.itemsByPage) {
								// pintamos los 10 primeros resultados
								comparadores.pagination.init(comparadores.depositos.numItems, comparadores.depositos);
							}else {
								comparadores.pagination.endItem = comparadores.depositos.numItems;

							}
						}
						comparadores.setComparadores(comparadores.depositos.id);
						comparadores.depositos.linksHeader();
					 }else comparadores.aux.renderNoResultData();
					 setTimeout(function(){loadingPanel.hide()},100);
				}
			});
		},
		sortByDeposito:{
			order:function(a,b){
				var x = a.deposito.name.toLowerCase();
			    var y = b.deposito.name.toLowerCase();
				var aux = (comparadores.depositos.sortByDeposito.ordenationType) ? (x < y) ? -1 : ((x > y) ? 1 : 0) : (x < y) ? 1 : ((x > y) ? -1 : 0);
				return (aux);
			},
			sortArray:function(type){
				var aux = comparadores.depositos.items;
				comparadores.depositos.sortByDeposito.ordenationType = type;
				aux.sort(comparadores.depositos.sortByDeposito.order);
				comparadores.depositos.renderData(aux);
			}
		},
		sortByEntidad:{
			order:function(a,b){
				var x = a.deposito.entidad.toLowerCase();
			    var y = b.deposito.entidad.toLowerCase();
				var aux = (comparadores.depositos.sortByEntidad.ordenationType) ? (x < y) ? -1 : ((x > y) ? 1 : 0) : (x < y) ? 1 : ((x > y) ? -1 : 0);
				return (aux);
			},
			sortArray: function(type){
				var aux = comparadores.depositos.items;
				comparadores.depositos.sortByEntidad.ordenationType = type;
				aux.sort(comparadores.depositos.sortByEntidad.order);
				comparadores.depositos.renderData(aux);
			}
		},
		sortByTAE:{
			order:function(a,b){
				var x = comparadores.aux.formatNumber(parseFloat(a.tae).toFixed(2));
			    var y = comparadores.aux.formatNumber(parseFloat(b.tae).toFixed(2));
				var aux = (comparadores.depositos.sortByTAE.ordenationType) ? (y-x) : (x-y);
				return aux;
			},
			sortArray: function(type){
				var aux = comparadores.depositos.items;
				comparadores.depositos.sortByTAE.ordenationType = type;
				aux.sort(comparadores.depositos.sortByTAE.order);
				comparadores.depositos.renderData(aux);
			}
		},
		sortByInteres:{
			order:function(a,b){
				var x = comparadores.aux.formatNumber(parseFloat(a.interes).toFixed(2));
			    var y = comparadores.aux.formatNumber(parseFloat(b.interes).toFixed(2));
				var aux = (comparadores.depositos.sortByInteres.ordenationType) ? (y-x) : (x-y);
				return aux;
			},
			sortArray: function(type){
				var aux = comparadores.depositos.items;
				comparadores.depositos.sortByInteres.ordenationType = type;
				aux.sort(comparadores.depositos.sortByInteres.order);
				comparadores.depositos.renderData(aux);
			}
		},
		sortByBeneficios:{
			order:function(a,b){
				var x = a.beneficios_adicionales.toLowerCase();
			    var y = b.beneficios_adicionales.toLowerCase();
				var aux = (comparadores.depositos.sortByBeneficios.ordenationType) ? (x < y) ? -1 : ((x > y) ? 1 : 0) : (x < y) ? 1 : ((x > y) ? -1 : 0);
				return (aux);
			},
			sortArray: function(type){
				var aux = comparadores.depositos.items;
				comparadores.depositos.sortByBeneficios.ordenationType = type;
				aux.sort(comparadores.depositos.sortByBeneficios.order);
				comparadores.depositos.renderData(aux);
			}
		},
		renderData:function(data){
			var list = $("#list");
			var tablaWrap = $("#TablaCom");
			var tabla = $(tablaWrap).find("table").eq(0);
			var tablaBody = tabla.find("tbody").eq(0);
			var trs = 0;
			for(var i = 0; i < data.length; i++){
				var classTr = (i % 2 == 0) ? "color_par" : "color_impar";
				var item = data[i];
				var masInf = (item.masinfo.indexOf("http://")  == -1) ? $.A({href:item.masinfo}, "Más información") : $.A({href:item.masinfo, target:"_blank"},$.IMG({src:"/design/ezflow_site/images/bt/solicitarAhora_peq_verde.gif", Class:"image"}));
				var aux = $.TR({Class: classTr},
							$.TD({Class:"link cajasol"},
								$.IMG({src:item.deposito.img, width:"18", height:"18", alt:item.deposito.entidad}),
								$.A({href:item.deposito.url}, item.deposito.name)
							),
							$.TD({},item.deposito.entidad),
							$.TD({},item.tae + "%"),
							$.TD({},item.interes + " %"),
							$.TD({},item.beneficios_adicionales),
							$.TD({Class:"masInf"},masInf),
							$.TD({},
								$.LABEL({Class:"check", htmlFor:"comparar"+i},
									$.INPUT({id:"comparar"+i, type:"checkbox", name:"Comparar", value:item.comparar}),
									" Comparar"
								)
							)
						)
				tablaBody.append(aux);
				if(data.length == 1) tablaBody.find("td").eq(tablaBody.find("td").length - 1).remove();
			}
			trs = tablaBody.find("tr").length;
			if(trs == comparadores.pagination.itemsByPage) comparadores.pagination.endItem = tablaBody.find("tr").length;
			tabla.append(tablaBody);
		    list.show("slow");
		},
		linksHeader:function(){
			var tablaWrap = $("#TablaCom");
			var tabla = $(tablaWrap).find("table").eq(0);
			var tablaBody = tabla.find("tbody").eq(0);
			var headers = tabla.find("thead").eq(0).find("a");
			//asignamos los eventos de ordenación a cada TH
				headers.eq(0).get(0).onclick = function(){
					$(tabla).fadeOut("slow",function(){
						var order = false;
						if(this.up){
							order = true;
							this.up = false;
						}else{
							order = false
							this.up = true;
						}
						tablaBody.empty();
						comparadores.depositos.sortByDeposito.sortArray(order);
						$(tabla).fadeIn("slow");
					 });
					return false;
				}
				headers.eq(1).get(0).onclick = function(){
					$(tabla).fadeOut("slow",function(){
						var order = false;
						if(this.up){
							order = true;
							this.up = false;
						}else{
							order = false
							this.up = true;
						}
						tablaBody.empty();
						comparadores.depositos.sortByEntidad.sortArray(order);
						$(tabla).fadeIn("slow");
					});
					return false;
				}
				headers.eq(2).get(0).onclick = function(){
					$(tabla).fadeOut("slow",function(){
						var order = false;
						if(this.up){
							order = true;
							this.up = false;
						}else{
							order = false
							this.up = true;
						}
						tablaBody.empty();
						comparadores.depositos.sortByTAE.sortArray(order);
						$(tabla).fadeIn("slow");
					});
					return false;
				}
				headers.eq(3).get(0).onclick = function(){
					$(tabla).fadeOut("slow",function(){
						var order = false;
						if(this.up){
							order = true;
							this.up = false;
						}else{
							order = false
							this.up = true;
						}
						tablaBody.empty();
						comparadores.depositos.sortByInteres.sortArray(order);
						$(tabla).fadeIn("slow");
					});
					return false;
				}
				headers.eq(4).get(0).onclick = function(){
					$(tabla).fadeOut("slow",function(){
						var order = false;
						if(this.up){
							order = true;
							this.up = false;
						}else{
							order = false
							this.up = true;
						}
						tablaBody.empty();
						comparadores.depositos.sortByBeneficios.sortArray(order);
						$(tabla).fadeIn("slow");
					});
					return false;
				}
		},
		init:function(){
			comparadores.depositos.numItems = comparadores.depositos.data.total;
			comparadores.depositos.url = comparadores.depositos.data.url;
			// generamos un array para las ordenaciones
			for(var i = 0; i < comparadores.depositos.data.item.length; i++){
				comparadores.depositos.items[i] = comparadores.depositos.data.item[i];
			}
			// si hay registros
			if (comparadores.depositos.numItems > 0) {
				//si hay mas de 10 elementos, activamos la paginación
				if (comparadores.depositos.numItems > comparadores.pagination.itemsByPage) {
					// pintamos los 10 primeros resultados
					comparadores.pagination.endItem = comparadores.pagination.itemsByPage;
					comparadores.pagination.init(comparadores.depositos.numItems, comparadores.depositos);
				}else {
					comparadores.pagination.endItem = comparadores.depositos.numItems;
				}
				comparadores.setComparadores(comparadores.depositos.id);
				comparadores.depositos.linksHeader();
			}
		}
	},
	tarjetas:{
		data:null,
		items:[],
		numItems:0,
		url:'',
		id:'tarjetas',
		sortByTarjeta:{
			order:function(a,b){
				var x = a.tarjeta.name.toLowerCase();
			    var y = b.tarjeta.name.toLowerCase();
				var aux = (comparadores.tarjetas.sortByTarjeta.ordenationType) ? (x < y) ? -1 : ((x > y) ? 1 : 0) : (x < y) ? 1 : ((x > y) ? -1 : 0);
				return (aux);
			},
			sortArray:function(type){
				var aux = comparadores.tarjetas.items;
				comparadores.tarjetas.sortByTarjeta.ordenationType = type;
				aux.sort(comparadores.tarjetas.sortByTarjeta.order);
				comparadores.tarjetas.renderData(aux);
			}
		},
		sortByEntidad:{
			order:function(a,b){
				var x = a.tarjeta.entidad.toLowerCase();
			    var y = b.tarjeta.entidad.toLowerCase();
				var aux = (comparadores.tarjetas.sortByEntidad.ordenationType) ? (x < y) ? -1 : ((x > y) ? 1 : 0) : (x < y) ? 1 : ((x > y) ? -1 : 0);
				return (aux);
			},
			sortArray:function(type){
				var aux = comparadores.tarjetas.items;
				comparadores.tarjetas.sortByEntidad.ordenationType = type;
				aux.sort(comparadores.tarjetas.sortByEntidad.order);
				comparadores.tarjetas.renderData(aux);
			}
		},
		sortByCuotaT:{
			order:function(a,b){
			    var x = comparadores.aux.formatNumber(parseFloat(a.cuota_anual_titular).toFixed(2));
			    var y = comparadores.aux.formatNumber(parseFloat(b.cuota_anual_titular).toFixed(2));
				var aux = (comparadores.tarjetas.sortByCuotaT.ordenationType) ? (y-x) : (x-y);
				return aux;
			},
			sortArray: function(type){
				var aux = comparadores.tarjetas.items;
				comparadores.tarjetas.sortByCuotaT.ordenationType = type;
				aux.sort(comparadores.tarjetas.sortByCuotaT.order);
				comparadores.tarjetas.renderData(aux);
			}
		},
		sortByCuotaB:{
			order:function(a,b){
			    var x = comparadores.aux.formatNumber(parseFloat(a.cuota_anual_beneficiario).toFixed(2));
			    var y = comparadores.aux.formatNumber(parseFloat(b.cuota_anual_beneficiario).toFixed(2));
				var aux = (comparadores.tarjetas.sortByCuotaB.ordenationType) ? (y-x) : (x-y);
				return aux;
			},
			sortArray: function(type){
				var aux = comparadores.tarjetas.items;
				comparadores.tarjetas.sortByCuotaB.ordenationType = type;
				aux.sort(comparadores.tarjetas.sortByCuotaB.order);
				comparadores.tarjetas.renderData(aux);
			}
		},
		sortByLimite:{
			order:function(a,b){
				var x = comparadores.aux.formatNumber(a.limite_credito);
			    var y = comparadores.aux.formatNumber(b.limite_credito);
				var aux = (comparadores.tarjetas.sortByLimite.ordenationType) ? (y-x) : (x-y);
				return aux;
			},
			sortArray: function(type){
				var aux = comparadores.tarjetas.items;
				comparadores.tarjetas.sortByLimite.ordenationType = type;
				aux.sort(comparadores.tarjetas.sortByLimite.order);
				comparadores.tarjetas.renderData(aux);
			}
		},
		sortByBeneficios:{
			order:function(a,b){
				var x = a.beneficios_adicionales.toLowerCase();
			    var y = b.beneficios_adicionales.toLowerCase();
				var aux = (comparadores.tarjetas.sortByBeneficios.ordenationType) ? (x < y) ? -1 : ((x > y) ? 1 : 0) : (x < y) ? 1 : ((x > y) ? -1 : 0);
				return (aux);
			},
			sortArray:function(type){
				var aux = comparadores.tarjetas.items;
				comparadores.tarjetas.sortByBeneficios.ordenationType = type;
				aux.sort(comparadores.tarjetas.sortByBeneficios.order);
				comparadores.tarjetas.renderData(aux);
			}
		},
		renderData:function(data){
			var list = $("#list");
			var tablaWrap = $("#TablaCom");
			var tabla = $(tablaWrap).find("table").eq(0);
			var tablaBody = tabla.find("tbody").eq(0);
			var trs = 0;
			for(var i = 0; i < data.length; i++){
				var classTr = (i % 2 == 0) ? "color_par" : "color_impar";
				var item = data[i];
				var masInf = (item.masinfo.indexOf("http://")  == -1) ? $.A({href:item.masinfo}, "Más información") : $.A({href:item.masinfo, target:"_blank"},$.IMG({src:"/design/ezflow_site/images/bt/solicitarAhora_peq_azul.gif", Class:"image"}));

				var aux = $.TR({Class: classTr},
							$.TD({Class:"link cajasol"},
								$.IMG({src:item.tarjeta.img, width:"18", height:"18"}),
								$.A({href:item.tarjeta.url}, item.tarjeta.name)
							),
							$.TD({},item.tarjeta.entidad),
							$.TD({},item.cuota_anual_titular + " €"),
							$.TD({},item.cuota_anual_beneficiario + " €"),
							$.TD({},item.limite_credito + " €"),
							$.TD({},item.beneficios_adicionales),
							$.TD({Class:"masInf"},masInf),
							$.TD({},
								$.LABEL({Class:"check", htmlFor:"comparar"+i},
									$.INPUT({id:"comparar"+i, type:"checkbox", name:"Comparar", value:item.comparar}),
									" Comparar"
								)
							)
						)
				tablaBody.append(aux);
				if(data.length == 1) tablaBody.find("td").eq(tablaBody.find("td").length - 1).remove();
			}
			trs = tablaBody.find("tr").length;
			if(trs == comparadores.pagination.itemsByPage) comparadores.pagination.endItem = tablaBody.find("tr").length;
			tabla.append(tablaBody);
		    list.show("slow");
		},
		linksHeader:function(){
			var tablaWrap = $("#TablaCom");
			var tabla = $(tablaWrap).find("table").eq(0);
			var tablaBody = tabla.find("tbody").eq(0);
			var headers = tabla.find("thead").eq(0).find("a");
			//asignamos los eventos de ordenación a cada TH
					//asignamos los eventos de ordenación a cada TH
				headers.eq(0).get(0).onclick = function(){
					$(tabla).fadeOut("slow",function(){
						var order = false;
						if(this.up){
							order = true;
							this.up = false;
						}else{
							order = false
							this.up = true;
						}
						tablaBody.empty();
						comparadores.tarjetas.sortByTarjeta.sortArray(order);
						$(tabla).fadeIn("slow");
					 });
					return false;
				}
				headers.eq(1).get(0).onclick = function(){
					$(tabla).fadeOut("slow",function(){
						var order = false;
						if(this.up){
							order = true;
							this.up = false;
						}else{
							order = false
							this.up = true;
						}
						tablaBody.empty();
						comparadores.tarjetas.sortByEntidad.sortArray(order);
						$(tabla).fadeIn("slow");
					});
					return false;
				}
				headers.eq(2).get(0).onclick = function(){
					$(tabla).fadeOut("slow",function(){
						var order = false;
						if(this.up){
							order = true;
							this.up = false;
						}else{
							order = false
							this.up = true;
						}
						tablaBody.empty();
						comparadores.tarjetas.sortByCuotaT.sortArray(order);
						$(tabla).fadeIn("slow");
					});
					return false;
				}
				headers.eq(3).get(0).onclick = function(){
					$(tabla).fadeOut("slow",function(){
						var order = false;
						if(this.up){
							order = true;
							this.up = false;
						}else{
							order = false
							this.up = true;
						}
						tablaBody.empty();
						comparadores.tarjetas.sortByCuotaB.sortArray(order);
						$(tabla).fadeIn("slow");
					});
					return false;
				}
				headers.eq(4).get(0).onclick = function(){
					$(tabla).fadeOut("slow",function(){
						var order = false;
						if(this.up){
							order = true;
							this.up = false;
						}else{
							order = false
							this.up = true;
						}
						tablaBody.empty();
						comparadores.tarjetas.sortByLimite.sortArray(order);
						$(tabla).fadeIn("slow");
					});
					return false;
				}
				headers.eq(5).get(0).onclick = function(){
					$(tabla).fadeOut("slow",function(){
						var order = false;
						if(this.up){
							order = true;
							this.up = false;
						}else{
							order = false
							this.up = true;
						}
						tablaBody.empty();
						comparadores.tarjetas.sortByBeneficios.sortArray(order);
						$(tabla).fadeIn("slow");
					});
					return false;
				}
		},
		init:function(){
			comparadores.tarjetas.numItems = comparadores.tarjetas.data.total;
			comparadores.tarjetas.url = comparadores.tarjetas.data.url;
			// generamos un array para las ordenaciones
			for(var i = 0; i < comparadores.tarjetas.data.item.length; i++){
				comparadores.tarjetas.items[i] = comparadores.tarjetas.data.item[i];
			}
			// si hay registros
			if (comparadores.tarjetas.numItems > 0) {
				//si hay mas de 10 elementos, activamos la paginación
				if (comparadores.tarjetas.numItems > comparadores.pagination.itemsByPage) {
					// pintamos los 10 primeros resultados
					comparadores.pagination.endItem = comparadores.pagination.itemsByPage;
					comparadores.pagination.init(comparadores.tarjetas.numItems, comparadores.tarjetas);
				}else {
					comparadores.pagination.endItem = comparadores.tarjetas.items.length;
				}
				comparadores.setComparadores(comparadores.tarjetas.id);
				comparadores.tarjetas.linksHeader();
			}
		}
	},
	prestamos:{
		data:null,
		items:[],
		numItems:0,
		url:'',
		id:'prestamos',
		update:function(param1, param2){
			// actualizo parte izquierda
			var loadingPanel = new yuiLoadingPanel();
			var tablaWrap = $("#TablaCom");
			var tabla = $(tablaWrap).find("table").eq(0);
			var tablaBody = tabla.find("tbody").eq(0);
			var headers = tabla.find("thead").eq(0).find("a");
			var comparadoresPrestamos = $("#comparadoresPrestamos").parent().parent().find(".blockResult").eq(0);
			var txtUpdate = wrapComparacion = wrapComparacion2 = null;
			var dl = comparadoresPrestamos.find("dl").eq(0);
			var plazo = dl.find("dd").eq(1).text().trim();
			var tipo = dl.find("dd").eq(2).text().trim();
			var motivo = dl.find("dd").eq(3).text().trim();
			var plazoAux = tipoAux = motivoAux = 0;
			var list = $("#list");
			var topPagination = $(list).find(".paginado").eq(0).empty();
			var bottomPagination = $("#list2").empty();

			tablaWrap.find(".Union").each(function(i) {$(this).remove()})
			tablaWrap.find(".error").each(function(i) {$(this).remove()})

			if(param2 == 0) plazo = "6 meses";
			else if(param2 == 1) plazo = "3 años";
			else if(param2 == 2) plazo = "6 años";
			else if(param2 == 3) plazo = "9 años";
			else if(param2 == 4) plazo = "1 año";
			else if(param2 == 5) plazo = "4 años";
			else if(param2 == 6) plazo = "7 años";
			else if(param2 == 7) plazo = "10 años";
			else if(param2 == 8) plazo = "2 años";
			else if(param2 == 9) plazo = "5 años";
			else if(param2 == 10) plazo = "8 años";
			else plazo = "más de 10 años";

			if(tipo == "Préstamo personal") tipoAux = "0"
			else if(tipo == "Préstamo negocio") tipoAux = "1"
			else tipoAux = "";

			if(motivo == "Hogar") movitoAux = "1"
			else if(motivo == "Celebración") motivoAux = "2";
			else if(motivo == "Viajes") motivoAux = "3";
			else if(motivo == "Familia y Salud") motivoAux = "4";
			else if(motivo == "Vehículo") motivoAux = "5";
			else if(motivo == "Otros") motivoAux = "0";
			else motivoAux = "";
			loadingPanel.show();
			txtUpdate =
				$.DL({},
					$.DT({},"Importe del Crédito:"),
					$.DD({},calculadoras.auxiliares.formatCurrency(parseInt(param1),0) + " €"),
					$.DT({},"Plazo:"),
					$.DD({},plazo)
				)

			wrapComparacion = $.DIV({Class:"Union"},$.SPAN({Class:"RComparacion"},"Si quieres comparar hasta 4 productos marca la casilla Comparar y pulsa en:"),$.A({href:"", Class:"RCompa"},$.IMG({alt:"Realizar comparación", src:"/design/ezflow_site/images/realizar_comparacion.gif"})))

		   comparadoresPrestamos.append(txtUpdate);
		   if(tipoAux != "") {
				comparadoresPrestamos.find("dl").eq(1).append($.DT({},"Tipo de préstamo:"));
				comparadoresPrestamos.find("dl").eq(1).append($.DD({},tipo));
		   }
		   if(motivoAux != ""){
				comparadoresPrestamos.find("dl").eq(1).append($.DT({},"Motivo de la solicitud:"));
				comparadoresPrestamos.find("dl").eq(1).append($.DD({},motivo));
		   }
		   dl.remove();
			$.ajax({
		         "type":"GET",
		         url: "/json/prestamos/"+parseInt(param1)+"/"+param2+"/"+tipoAux+"/"+motivoAux,
		         dataType: "json",
		         success: function(datos){
				 	comparadores.prestamos.data = datos;
				 	comparadores.prestamos.numItems = comparadores.prestamos.data.total;
				 	comparadores.prestamos.items = [];
				 	comparadores.prestamos.url = "/json/prestamos/"+parseInt(param1)+"/"+param2+"/"+tipoAux+"/"+motivoAux;
					// generamos un array para las ordenaciones
					for(var i = 0; i < comparadores.prestamos.data.item.length; i++){
						comparadores.prestamos.items[i] = comparadores.prestamos.data.item[i];
					}
					tablaBody.empty();
					// si hay registros
					if (comparadores.prestamos.numItems > 0) {
						//si hay mas de 10 elementos, activamos la paginación
						comparadores.prestamos.renderData(comparadores.prestamos.items);
						if (comparadores.prestamos.numItems > 1) {
							wrapComparacion2 = tablaWrap.get(0).insertBefore(wrapComparacion,tabla.get(0))
							tablaWrap.append(wrapComparacion2.cloneNode(true));
							if (comparadores.prestamos.numItems > comparadores.pagination.itemsByPage) {
								// pintamos los 10 primeros resultados
								comparadores.pagination.init(comparadores.prestamos.numItems, comparadores.prestamos);
							}else {
								comparadores.pagination.endItem = comparadores.prestamos.numItems;

							}
						}
						comparadores.setComparadores(comparadores.prestamos.id);
						comparadores.prestamos.linksHeader();
					 }else comparadores.aux.renderNoResultData();
					 setTimeout(function(){loadingPanel.hide()},100);
				}
			});

		},
		sortByPrestamos:{
			order:function(a,b){
				var x = a.prestamo.name.toLowerCase();
			    var y = b.prestamo.name.toLowerCase();
				var aux = (comparadores.prestamos.sortByPrestamos.ordenationType) ? (x < y) ? -1 : ((x > y) ? 1 : 0) : (x < y) ? 1 : ((x > y) ? -1 : 0);
				return (aux);
			},
			sortArray:function(type){
				var aux = comparadores.prestamos.items;
				comparadores.prestamos.sortByPrestamos.ordenationType = type;
				aux.sort(comparadores.prestamos.sortByPrestamos.order);
				comparadores.prestamos.renderData(aux);
			}
		},
		sortByEntidad:{
			order:function(a,b){
				var x = a.prestamo.entidad.toLowerCase();
			    var y = b.prestamo.entidad.toLowerCase();
				var aux = (comparadores.prestamos.sortByEntidad.ordenationType) ? (x < y) ? -1 : ((x > y) ? 1 : 0) : (x < y) ? 1 : ((x > y) ? -1 : 0);
				return (aux);
			},
			sortArray:function(type){
				var aux = comparadores.prestamos.items;
				comparadores.prestamos.sortByEntidad.ordenationType = type;
				aux.sort(comparadores.prestamos.sortByEntidad.order);
				comparadores.prestamos.renderData(aux);
			}
		},
		sortByTipo:{
			order:function(a,b){
				var x = a.tipo.toLowerCase();
			    var y = b.tipo.toLowerCase();
				var aux = (comparadores.prestamos.sortByTipo.ordenationType) ? (x < y) ? -1 : ((x > y) ? 1 : 0) : (x < y) ? 1 : ((x > y) ? -1 : 0);
				return (aux);
			},
			sortArray:function(type){
				var aux = comparadores.prestamos.items;
				comparadores.prestamos.sortByTipo.ordenationType = type;
				aux.sort(comparadores.prestamos.sortByTipo.order);
				comparadores.prestamos.renderData(aux);
			}
		},
		sortByCuota:{
			order:function(a,b){
				var x = comparadores.aux.formatNumber(a.cuota);
			    var y = comparadores.aux.formatNumber(b.cuota);
				var aux = (comparadores.prestamos.sortByCuota.ordenationType) ? (y-x) : (x-y);
				return aux;
			},
			sortArray: function(type){
				var aux = comparadores.prestamos.items;
				comparadores.prestamos.sortByCuota.ordenationType = type;
				aux.sort(comparadores.prestamos.sortByCuota.order);
				comparadores.prestamos.renderData(aux);
			}
		},
		sortByOtras:{
			order:function(a,b){
				var x = a.requisitos_otros.toLowerCase();
			    var y = b.requisitos_otros.toLowerCase();
				var aux = (comparadores.prestamos.sortByOtras.ordenationType) ? (x < y) ? -1 : ((x > y) ? 1 : 0) : (x < y) ? 1 : ((x > y) ? -1 : 0);
				return (aux);
			},
			sortArray:function(type){
				var aux = comparadores.prestamos.items;
				comparadores.prestamos.sortByOtras.ordenationType = type;
				aux.sort(comparadores.prestamos.sortByOtras.order);
				comparadores.prestamos.renderData(aux);
			}
		},
		renderData:function(data){
			var list = $("#list");
			var tablaWrap = $("#TablaCom");
			var tabla = $(tablaWrap).find("table").eq(0);
			var tablaBody = tabla.find("tbody").eq(0);
			var trs = 0;
			for(var i = 0; i < data.length; i++){
				var classTr = (i % 2 == 0) ? "color_par" : "color_impar";
				var item = data[i];
				var masInf = (item.masinfo.indexOf("http://")  == -1) ? $.A({href:item.masinfo}, "Más información") : $.A({href:item.masinfo, target:"_blank"},$.IMG({src:"/design/ezflow_site/images/bt/solicitarAhora_peq_rojo.gif", Class:"image"}));
				var aux = $.TR({Class: classTr},
							$.TD({Class:"link cajasol"},
								$.IMG({src:item.prestamo.img, width:"18", height:"18"}),
								$.A({href:item.prestamo.url}, item.prestamo.name)
							),
							$.TD({},item.prestamo.entidad),
							$.TD({},item.tipo),
							$.TD({},item.cuota),
							$.TD({},item.requisitos_otros),
							$.TD({Class:"masInf"},masInf),
							$.TD({},
								$.LABEL({Class:"check", htmlFor:"comparar"+i},
									$.INPUT({id:"comparar"+i, type:"checkbox", name:"Comparar", value:item.comparar}),
									" Comparar"
								)
							)
						)
				tablaBody.append(aux);
				if(data.length == 1) tablaBody.find("td").eq(tablaBody.find("td").length - 1).remove();
			}
			trs = tablaBody.find("tr").length;
			if(trs == comparadores.pagination.itemsByPage) comparadores.pagination.endItem = tablaBody.find("tr").length;
			tabla.append(tablaBody);
		    list.show("slow");
		},
		linksHeader:function(){
			var tablaWrap = $("#TablaCom");
			var tabla = $(tablaWrap).find("table").eq(0);
			var tablaBody = tabla.find("tbody").eq(0);
			var headers = tabla.find("thead").eq(0).find("a");
			//asignamos los eventos de ordenación a cada TH
				headers.eq(0).get(0).onclick = function(){
					$(tabla).fadeOut("slow",function(){
						var order = false;
						if(this.up){
							order = true;
							this.up = false;
						}else{
							order = false
							this.up = true;
						}
						tablaBody.empty();
						comparadores.prestamos.sortByPrestamos.sortArray(order);
						$(tabla).fadeIn("slow");
					 });
					return false;
				}
				headers.eq(1).get(0).onclick = function(){
					$(tabla).fadeOut("slow",function(){
						var order = false;
						if(this.up){
							order = true;
							this.up = false;
						}else{
							order = false
							this.up = true;
						}
						tablaBody.empty();
						comparadores.prestamos.sortByEntidad.sortArray(order);
						$(tabla).fadeIn("slow");
					});
					return false;
				}
				headers.eq(2).get(0).onclick = function(){
					$(tabla).fadeOut("slow",function(){
						var order = false;
						if(this.up){
							order = true;
							this.up = false;
						}else{
							order = false
							this.up = true;
						}
						tablaBody.empty();
						comparadores.prestamos.sortByTipo.sortArray(order);
						$(tabla).fadeIn("slow");
					});
					return false;
				}
				headers.eq(3).get(0).onclick = function(){
					$(tabla).fadeOut("slow",function(){
						var order = false;
						if(this.up){
							order = true;
							this.up = false;
						}else{
							order = false
							this.up = true;
						}
						tablaBody.empty();
						comparadores.prestamos.sortByCuota.sortArray(order);
						$(tabla).fadeIn("slow");
					});
					return false;
				}
				headers.eq(4).get(0).onclick = function(){
					$(tabla).fadeOut("slow",function(){
						var order = false;
						if(this.up){
							order = true;
							this.up = false;
						}else{
							order = false
							this.up = true;
						}
						tablaBody.empty();
						comparadores.prestamos.sortByOtras.sortArray(order);
						$(tabla).fadeIn("slow");
					});
					return false;
				}
		},
		init:function(){
			comparadores.prestamos.numItems = comparadores.prestamos.data.total;
			comparadores.prestamos.url = comparadores.prestamos.data.url;
			// generamos un array para las ordenaciones
			for(var i = 0; i < comparadores.prestamos.data.item.length; i++){
				comparadores.prestamos.items[i] = comparadores.prestamos.data.item[i];
			}

			// si hay registros
			if (comparadores.prestamos.numItems > 0) {
				//si hay mas de 10 elementos, activamos la paginación
				if (comparadores.prestamos.numItems > comparadores.pagination.itemsByPage) {
					// pintamos los 10 primeros resultados
					comparadores.pagination.endItem = comparadores.pagination.itemsByPage;
					comparadores.pagination.init(comparadores.prestamos.numItems, comparadores.prestamos);
				}else {
					comparadores.pagination.endItem = comparadores.prestamos.numItems;
				}
				comparadores.setComparadores(comparadores.prestamos.id);
				comparadores.prestamos.linksHeader();

			}
		}
	},
	hipotecas:{
		data:null,
		items:[],
		numItems:0,
		url:'',
		id:'hipotecas',
		update:function(param1, param2, param3){
			// actualizo parte izquierda
			var loadingPanel = new yuiLoadingPanel();
			var tablaWrap = $("#TablaCom");
			var tabla = $(tablaWrap).find("table").eq(0);
			var tablaBody = tabla.find("tbody").eq(0);
			var headers = tabla.find("thead").eq(0).find("a");
			var comparadoresHipotecas = $("#comparadoresHipotecas").parent().parent().find(".blockResult").eq(0);
			var txtUpdate = wrapComparacion = wrapComparacion2 = null;
			var dl = comparadoresHipotecas.find("dl").eq(0);
			var motivo = dl.find("dd").eq(1).text().trim();
			var edad = parseInt(dl.find("dd").eq(3).text());
			var tipo = dl.find("dd").eq(5).text().trim();
			var tipoAux = motivoAux = 0;
			var list = $("#list");
			var topPagination = $(list).find(".paginado").eq(0).empty();
			var bottomPagination = $("#list2").empty();

			tablaWrap.find(".Union").each(function(i) {$(this).remove()})
			tablaWrap.find(".error").each(function(i) {$(this).remove()})

			if(motivo == "Primera vivienda") motivoAux == 0
			else if(motivo == "Segunda vivienda") motivoAux == 1
			else if(motivo == "Subrrogación") motivoAux == 2
			else motivoAux == 3

			if(tipo == "Interés variable") tipoAux = 0
			else if(tipo == "Interés mixto") tipoAux = 1
			else tipoAux = 2;
			loadingPanel.show();
			txtUpdate =
				$.DL({},
					$.DT({},"Dinero solicitado:"),
					$.DD({},calculadoras.auxiliares.formatCurrency(parseInt(param1),0) + " €"),
					$.DT({},"La finalidad de la Hipoteca es:"),
					$.DD({},motivo),
					$.DT({},"Valor del inmueble:"),
					$.DD({},calculadoras.auxiliares.formatCurrency(parseInt(param3),0) + " €"),
					$.DT({},"Tu edad:"),
					$.DD({},edad + " años"),
					$.DT({},"Plazo:"),
					$.DD({},parseInt(param2) + " años"),
					$.DT({},"Tipo de interés de la Hipoteca:"),
					$.DD({},tipo)
				)

			wrapComparacion = $.DIV({Class:"Union"},$.SPAN({Class:"RComparacion"},"Si quieres comparar hasta 4 productos marca la casilla Comparar y pulsa en:"),$.A({href:"", Class:"RCompa"},$.IMG({alt:"Realizar comparación", src:"/design/ezflow_site/images/realizar_comparacion.gif"})))

		   comparadoresHipotecas.append(txtUpdate);
		   dl.remove();

			$.ajax({
		         "type":"GET",
		         url: "/json/hipotecas/"+parseInt(param1)+"/"+motivo+"/"+parseInt(param3)+"/"+edad+"/"+parseInt(param2)+"/"+tipoAux,
		         dataType: "json",
		         success: function(datos){
				 	comparadores.hipotecas.items = [];
				 	comparadores.hipotecas.data = datos;
				 	comparadores.hipotecas.numItems = comparadores.hipotecas.data.total;
					// generamos un array para las ordenaciones
					for(var i = 0; i < comparadores.hipotecas.data.item.length; i++){
						comparadores.hipotecas.items[i] = comparadores.hipotecas.data.item[i];
					}
					// si hay registros
					tablaBody.empty();
					// si hay registros
					if (comparadores.hipotecas.numItems > 0) {
						//si hay mas de 10 elementos, activamos la paginación
						comparadores.hipotecas.renderData(comparadores.hipotecas.items);
						if (comparadores.hipotecas.numItems > 1) {
							wrapComparacion2 = tablaWrap.get(0).insertBefore(wrapComparacion,tabla.get(0))
							tablaWrap.append(wrapComparacion2.cloneNode(true));
							if (comparadores.hipotecas.numItems > comparadores.pagination.itemsByPage) {
								// pintamos los 10 primeros resultados
								comparadores.pagination.init(comparadores.hipotecas.numItems, comparadores.hipotecas);
							}else {
								comparadores.pagination.endItem = comparadores.hipotecas.numItems;

							}
						}
						comparadores.setComparadores(comparadores.hipotecas.id);
						comparadores.hipotecas.linksHeader();
					 }else comparadores.aux.renderNoResultData();
					 setTimeout(function(){loadingPanel.hide()},100);
				}
			});


		},
		sortByHipoteca:{
			order:function(a,b){
				var x = a.hipoteca.name.toLowerCase();
			    var y = b.hipoteca.name.toLowerCase();
				var aux = (comparadores.hipotecas.sortByHipoteca.ordenationType) ? (x < y) ? -1 : ((x > y) ? 1 : 0) : (x < y) ? 1 : ((x > y) ? -1 : 0);
				return (aux);
			},
			sortArray:function(type){
				var aux = comparadores.hipotecas.items;
				comparadores.hipotecas.sortByHipoteca.ordenationType = type;
				aux.sort(comparadores.hipotecas.sortByHipoteca.order);
				comparadores.hipotecas.renderData(aux);
			}
		},
		sortByCuotaM:{
			order:function(a,b){
				var x = comparadores.aux.formatNumber(a.cuotam);
			    var y = comparadores.aux.formatNumber(b.cuotam);
				var aux = (comparadores.hipotecas.sortByCuotaM.ordenationType) ? (y-x) : (x-y);
				return (aux);
			},
			sortArray: function(type){
				var aux = comparadores.hipotecas.items;
				comparadores.hipotecas.sortByCuotaM.ordenationType = type;
				aux.sort(comparadores.hipotecas.sortByCuotaM.order);
				comparadores.hipotecas.renderData(aux);
			}
		},
		sortByCuotaI:{
			order:function(a,b){
				var x = comparadores.aux.formatNumber(a.cuotai);
			    var y = comparadores.aux.formatNumber(b.cuotai);
				var aux = (comparadores.hipotecas.sortByCuotaI.ordenationType) ? (y-x) : (x-y);
				return (aux);
			},
			sortArray:function(type){
				var aux = comparadores.hipotecas.items;
				comparadores.hipotecas.sortByCuotaI.ordenationType = type;
				aux.sort(comparadores.hipotecas.sortByCuotaI.order);
				comparadores.hipotecas.renderData(aux);
			}
		},
		sortByInteresV:{
			order:function(a,b){
				var x = y = 0;
				// comprobamos si interés variable o fijo
				a = (a.interesv.split("|").length > 1) ? a.interesv : a.interesv.split("|")[0]
				b = (b.interesv.split("|").length > 1) ? b.interesv : b.interesv.split("|")[0]
				x = comparadores.aux.formatNumber(a);
			    y = comparadores.aux.formatNumber(b);
				var aux = (comparadores.hipotecas.sortByInteresV.ordenationType) ? (y-x) : (x-y);
				return (aux);
			},
			sortArray:function(type){
				var aux = comparadores.hipotecas.items;
				comparadores.hipotecas.sortByInteresV.ordenationType = type;
				aux.sort(comparadores.hipotecas.sortByInteresV.order);
				comparadores.hipotecas.renderData(aux);
			}
		},
		sortByInteresI:{
			order:function(a,b){
				var x = comparadores.aux.formatNumber(parseFloat(a.interesi).toFixed(2));
			    var y = comparadores.aux.formatNumber(parseFloat(b.interesi).toFixed(2));
				var aux = (comparadores.hipotecas.sortByInteresI.ordenationType) ? (y-x) : (x-y);
				return (aux);
			},
			sortArray:function(type){
				var aux = comparadores.hipotecas.items;
				comparadores.hipotecas.sortByInteresI.ordenationType = type;
				aux.sort(comparadores.hipotecas.sortByInteresI.order);
				comparadores.hipotecas.renderData(aux);
			}
		},
		sortByComision:{
			order:function(a,b){
				var x = comparadores.aux.formatNumber(a.comision);
				var y = comparadores.aux.formatNumber(b.comision);
				var aux = (comparadores.hipotecas.sortByComision.ordenationType) ? (y-x) : (x-y);
				return (aux);

			},
			sortArray:function(type){
				var aux = comparadores.hipotecas.items;
				comparadores.hipotecas.sortByComision.ordenationType = type;
				aux.sort(comparadores.hipotecas.sortByComision.order);
				comparadores.hipotecas.renderData(aux);
			}
		},
		sortByProductos:{
			ordenationType:false,
			order:function(a,b){
				var x = a.productos.name.toLowerCase();
			    var y = b.productos.name.toLowerCase();
				var aux = (comparadores.hipotecas.sortByProductos.ordenationType) ? (x < y) ? -1 : ((x > y) ? 1 : 0) : (x < y) ? 1 : ((x > y) ? -1 : 0);
				return (aux);
			},
			sortArray:function(type){
				var aux = comparadores.hipotecas.items;
				comparadores.hipotecas.sortByProductos.ordenationType = type;
				aux.sort(comparadores.hipotecas.sortByProductos.order);
				comparadores.hipotecas.renderData(aux);
			}
		},
		renderData:function(data){
			var list = $("#list");
			var tablaWrap = $("#TablaCom");
			var tabla = $(tablaWrap).find("table").eq(0);
			var tablaBody = tabla.find("tbody").eq(0);
			var aux = aux2 = "";
			var trs = 0;
			for(var i = 0; i < data.length; i++){
				var classTr = (i % 2 == 0) ? "color_par" : "color_impar";
				var item = data[i];

				var masInf = (item.masinfo.indexOf("http://")  == -1) ? $.A({href:item.masinfo}, "Más información") : $.A({href:item.masinfo, target:"_blank"},$.IMG({src:"/design/ezflow_site/images/bt/solicitarAhora_peq_amarillo.gif", Class:"image"}));

				if(item.interesv.split("|").length > 1){
					aux2 = "(período inicial)"
					aux = "Euribor + " + item.interesv.split("|")[0] + " %"
				}else{
					aux2 = "";
					aux = item.interesv + " %";
				}
				var aux = $.TR({Class: classTr},
							$.TD({Class:"link cajasol"},
								$.IMG({src:item.hipoteca.img, width:"18", height:"18"}),
								$.A({href:item.hipoteca.url}, item.hipoteca.name)
							),
							$.TD({},item.cuotai + "€ " + aux2),
							$.TD({},aux),
							$.TD({},item.interesi + "%"),
							$.TD({},item.comision + "€"),
							$.TD({Class:"link"},
								$.A({href:item.productos.url},item.productos.name)
							),
							$.TD({Class:"masInf"},masInf),
							$.TD({},
								$.LABEL({Class:"check", htmlFor:"comparar"+i},
									$.INPUT({id:"comparar"+i, type:"checkbox", name:"Comparar", value:item.comparar}),
									" Comparar"
								)
							)
						)
				tablaBody.append(aux);
				if(data.length == 1) tablaBody.find("td").eq(tablaBody.find("td").length - 1).remove();
			}
			trs = tablaBody.find("tr").length;
			if(trs == comparadores.pagination.itemsByPage) comparadores.pagination.endItem = tablaBody.find("tr").length;
			tabla.append(tablaBody);
		    list.show("slow");
		},
		linksHeader:function(){
			var tablaWrap = $("#TablaCom");
			var tabla = $(tablaWrap).find("table").eq(0);
			var tablaBody = tabla.find("tbody").eq(0);
			var headers = tabla.find("thead").eq(0).find("a");
			//asignamos los eventos de ordenación a cada TH
				headers.eq(0).get(0).onclick = function(){
					$(tabla).fadeOut("slow",function(){
						var order = false;
						if(this.up){
							order = true;
							this.up = false;
						}else{
							order = false
							this.up = true;
						}
						tablaBody.empty();
						comparadores.hipotecas.sortByHipoteca.sortArray(order);
						$(tabla).fadeIn("slow");
					 });
					return false;
				};
				headers.eq(1).get(0).onclick = function(){
					$(tabla).fadeOut("slow",function(){
						var order = false;
						if(this.up){
							order = true;
							this.up = false;
						}else{
							order = false
							this.up = true;
						}
						tablaBody.empty();
						comparadores.hipotecas.sortByCuotaI.sortArray(order);
						$(tabla).fadeIn("slow");
					});
					return false;
				}
				headers.eq(2).get(0).onclick = function(){
					$(tabla).fadeOut("slow",function(){
						var order = false;
						if(this.up){
							order = true;
							this.up = false;
						}else{
							order = false
							this.up = true;
						}
						tablaBody.empty();
						comparadores.hipotecas.sortByInteresV.sortArray(order);
						$(tabla).fadeIn("slow");
					});
					return false;
				}
				headers.eq(3).get(0).onclick = function(){
					$(tabla).fadeOut("slow",function(){
						var order = false;
						if(this.up){
							order = true;
							this.up = false;
						}else{
							order = false
							this.up = true;
						}
						tablaBody.empty();
						comparadores.hipotecas.sortByInteresI.sortArray(order);
						$(tabla).fadeIn("slow");
					});
					return false;
				}
				headers.eq(4).get(0).onclick = function(){
					$(tabla).fadeOut("slow",function(){
						var order = false;
						if(this.up){
							order = true;
							this.up = false;
						}else{
							order = false
							this.up = true;
						}
						tablaBody.empty();
						comparadores.hipotecas.sortByComision.sortArray(order);
						$(tabla).fadeIn("slow");
					});
					return false;
				}
				headers.eq(5).get(0).onclick = function(){
					$(tabla).fadeOut("slow",function(){
						var order = false;
						if(this.up){
							order = true;
							this.up = false;
						}else{
							order = false
							this.up = true;
						}
						tablaBody.empty();
						comparadores.hipotecas.sortByProductos.sortArray(order);
						$(tabla).fadeIn("slow");
					});
					return false;
				}
		},
		init:function(){
			comparadores.hipotecas.numItems = comparadores.hipotecas.data.total;
			comparadores.hipotecas.url = comparadores.hipotecas.data.url;
			// generamos un array para las ordenaciones
			for(var i = 0; i < comparadores.hipotecas.data.item.length; i++){
				comparadores.hipotecas.items[i] = comparadores.hipotecas.data.item[i];
			}

			// si hay registros
			if (comparadores.hipotecas.numItems > 0) {
				//si hay mas de 10 elementos, activamos la paginación
				if (comparadores.hipotecas.numItems > comparadores.pagination.itemsByPage) {
					// pintamos los 10 primeros resultados
					comparadores.pagination.endItem = comparadores.pagination.itemsByPage;
					comparadores.pagination.init(comparadores.hipotecas.numItems, comparadores.hipotecas);
				}else {
					comparadores.pagination.endItem = comparadores.hipotecas.numItems;
				}
				comparadores.setComparadores(comparadores.hipotecas.id);
				comparadores.hipotecas.linksHeader();


			}
		}
	}
}