var piexhlist_containerEl;


window.addEvent('domready',function(){
	
	
	if($('piexhlist-container')){
		//tabs
		var container = $('piexhlist-container');
		piexhlist_containerEl = container;
		container.getElements('ul.efTabs2 li').each(function(liEl){
			liEl.addEvent('click',function(){
				var rel = this.getProperty('rel');
				var thisTab = container.getElement('div.efTabs-content[rel='+rel+']');
				if(thisTab.getStyle('display','none')){
					thisTab.setStyle('display','block');
					container.getElement('div.efTabs-content[rel='+(rel==1?2:1)+']').setStyle('display','none');
				}
				container.getElements('ul.efTabs2 li[rel='+rel+']').addClass('active');
				container.getElements('ul.efTabs2 li[rel='+(rel==1?2:1)+']').removeClass('active');
				Cookie.write('ef_piexhlist_tab',rel,{duration:900});
			});
		});
		
		//what tab to show first ?
		var tabToShowFirst = 1;
		var tabCookie = Cookie.read('ef_piexhlist_tab');
		if(tabCookie==1 || tabCookie==2){
			tabToShowFirst = tabCookie;
		}
		if($get('tx_ef_piexhlist%5BlistingMode%5D')=='taxo'){
			tabToShowFirst = 2;
		}
		container.getElement('div.efTabs-content[rel='+tabToShowFirst+']').setStyle('display','block');
		if(tabToShowFirst==2){
			container.getElement('div.efTabs-content[rel=1]').setStyle('display','none');
		}
		container.getElements('ul.efTabs2 li[rel='+tabToShowFirst+']').addClass('active');
		//tabs end
		
		
		window.piexhlist_scrollingElement = (typeof(window.piexhlist_scrollingElement)=="undefined"?window:window.piexhlist_scrollingElement);
		
		
		// ALPHA GROUPS
		//prepare accords
		container.getElements('li.group-alpha div.accord').each(function(groupEl){
			groupEl.store('accord',new Fx.Slide(groupEl,{
				duration:200
			}));
		});
		//events
		container.getElements('.list_alpha_controls a').each(function(linkEl){
			if(linkEl.getProperty('class')=='disabled') return false;
			var rel = linkEl.getProperty('rel');
			
			if(rel!='all'){
				linkEl.addEvent('click',function(e){
					e.stop();
					container.getElements('.list_alpha_controls a').removeClass('active');
					this.addClass('active');
					container.getElements('li.group-alpha[rel!='+rel+'] div.accord').each(function(groupEl){
						groupEl.retrieve('accord').slideOut().chain(function(){this.subject.getParent().getParent().setStyle("display","none");});
					});
					container.getElement('li.group-alpha[rel='+rel+'] div.accord').getParent().getParent().setStyle("display","block");
					container.getElement('li.group-alpha[rel='+rel+'] div.accord').retrieve('accord').slideIn();
					//new Fx.Scroll(window).toElement(container.getElement('li.group-alpha[rel='+rel+'] div.accord'));
				});
			}else{
				linkEl.addClass('active');
				linkEl.addEvent('click',function(e){
					e.stop();
					container.getElements('.list_alpha_controls a').removeClass('active');
					this.addClass('active');
					container.getElements('li.group-alpha div.accord').each(function(groupEl){
						groupEl.getParent().getParent().setStyle("display","block");
						groupEl.retrieve('accord').slideIn();
					});
				});
			}
		});
		//in_taxo
		container.getElements('li.group-alpha p.in_taxo a').each(function(inTaxoEl){
			var rel = inTaxoEl.getProperty('rel');
			inTaxoEl.addEvent('click',function(e){
				e.stop();
				container.getElements('ul.efTabs2 li[rel=2]').fireEvent('click');
				container.getElements('li.group-taxo[rel!='+rel+']').each(function(groupEl){
					groupEl.retrieve('accord').hide();
					groupEl.getElement('h3').removeClass('open');
				});
				if(container.getElement('li.group-taxo[rel='+rel+']')){
					container.getElement('li.group-taxo[rel='+rel+']').retrieve('accord').slideIn();
					new Fx.Scroll(window.piexhlist_scrollingElement).toElement(container.getElement('li.group-taxo[rel='+rel+']'));
				}else{
					new Fx.Scroll(window.piexhlist_scrollingElement).toElement(container.getElement('h2[rel='+rel+']'));
				}
				
			});
		});
		
		
		
		function getStandHTML(uid){
			var li = $("piexhlist-standpreviewpanes").getElement("li.preview[stand_id="+uid+"]");
			if(li) return li.getElement('.ro').innerHTML;
			return '';
		}
		
		
		// TAXO GROUPS
		container.getElements('li.group-taxo').each(function(groupEl){
			var ul = groupEl.getElement('ul');
			var h3 = groupEl.getElement('h3');
			var accord = new Fx.Slide(ul,{duration:200});
			accord.hide();
			h3.addEvent('click',function(){
				
				if(ul.getElements('li').length==0){
					var uidsToLoad = ul.getProperty('stand_ids').split(',');
					
					var ulinner = "";
					for(var i=0;i<uidsToLoad.length;i++){
						ulinner+='<li class="notaxo preview" stand_id="'+uidsToLoad[i]+'">'+getStandHTML(uidsToLoad[i])+'<div class="previewPane"></div></li>';
					}
					
					ul.innerHTML = ulinner;
					
					var lis = ul.getElements('li');
					
					for(var i=0;i<lis.length;i++){
						easyFairs.cart.enableTicker(lis[i].getElement('.cart-ticker'),function(el){
							refreshCartCount();
							refreshCartList();
						});
						
						setPreviewPane(lis[i]);
						
					}
					
				}
				
				accord.toggle();
			});
			accord.addEvent('complete',function(el){
				if(el.getStyle('margin-top').toInt()==0){
					el.getParent().getParent().getElement('h3').addClass('open');
				}else{
					el.getParent().getParent().getElement('h3').removeClass('open');
				}
			})
			groupEl.store('accord',accord);
		});
		container.getElements('.list_taxo_controls a').each(function(linkEl){
			var rel = linkEl.getProperty('rel');
			linkEl.addEvent('click',function(e){
				e.stop();
				container.getElements('li.group-taxo[rel!='+rel+']').each(function(groupEl){
					groupEl.retrieve('accord').hide();
					groupEl.getParent().getParent().getElement('h3').removeClass('open');
				});
				container.getElement('li.group-taxo[rel='+rel+']').retrieve('accord').slideIn();
				new Fx.Scroll(window.piexhlist_scrollingElement).toElement(container.getElement('li.group-taxo[rel='+rel+']'));
			});
		});
		
		var default_taxo_group = $get('tx_ef_piexhlist%5Bdef_taxo%5D');
		if(default_taxo_group!=''){
			rel = default_taxo_group;
			container.getElements('li.group-taxo[rel!='+rel+']').each(function(groupEl){
				groupEl.retrieve('accord').slideOut();
			});
			container.getElement('li.group-taxo[rel='+rel+']').retrieve('accord').slideIn();
			new Fx.Scroll(window.piexhlist_scrollingElement).toElement(container.getElement('li.group-taxo[rel='+rel+']'));
		}
		
		
		
		
		/// CART
		function refreshCartCount(){
			if($("piexhlist-cartAmount")) $("piexhlist-cartAmount").set("text",tx_ef_piexhlist_jslabels.label_catalog__x_exhibitor_in_cart.substitute({count:easyFairs.cart.count("this")}));
		}
		function refreshCartList(){
			if(typeof(easyFairs.cart)=="undefined" || typeof(easyFairs.cart.data)=="undefined" || typeof(easyFairs.cart.data[easyFairs.showID])=="undefined" || typeof(easyFairs.cart.data[easyFairs.showID]['stand'])=="undefined") return;
			if($('piexhlist-planner-list-target')){
				var listEl = $('piexhlist-planner-list-target');
				listEl.empty();
				var cart = easyFairs.cart,stand,stands=[],uid;
				//create new array for sorting
				for(var uid in cart.data[easyFairs.showID]['stand']){
					var o = {uid:uid,name:cart.data[easyFairs.showID]['stand'][uid].name}
					stands.push(o);
				}
				//sort by name
				stands.sort(sortFirstNameAscendingHandler);
				//populate list
				for(var i=0,j=stands.length;i<j;i++){
					stand = cart.data[easyFairs.showID]['stand'][stands[i].uid];
					uid = stands[i].uid;
					new Element("li").adopt(
						new Element("div",{'class':'remove','cart':"this-stand-"+uid,events:{click:function(){easyFairs.cart.removeEl(this)}},title:easyFairs.ll.label_remove}),
						new Element("div",{'class':'text','text':stand.name+' ('+stand.stand_number+')'})
					).inject(listEl);
				}
				new Element('li',{
					styles:{clear:"both",'padding-top':5,'cursor':'pointer'},
					text:window.tx_ef_piexhlist_jslabels.label_catalog__clear_cart,
					events:{
						click:function(e){
							e.stop();
							if(confirm(window.tx_ef_piexhlist_jslabels.label_catalog__clear_cart_confirm)){
								easyFairs.cart.clearShow('this');
							}
						}
					}
				}).inject(listEl);
			}
		}
		function loadCart(){
			
			easyFairs.cart.load("this",function(){
				//easyFairs.cart.updateTickers();
				easyFairs.cart.enableTickers(function(el){
					//easyFairs.cart.updateTickers();//this will update the other list... all tickers are doubled here
					//if(el.hasClass("ticked")) alert("added");
					//else alert("removed");
					refreshCartCount();
					refreshCartList();
				});
				refreshCartCount();
				refreshCartList();
				//easyFairs.cart.updateTickers();
			});
			
			var addAllEls = $$('.addAll');
			for(var i=0,j=addAllEls.length;i<j;i++){
				addAllEls[i].addEvent('click',function(e){
					e.stop();
					var uids = this.getProperty("uids");
					if(this.getProperty("cmd")=="add"){
						easyFairs.cart.add('this','stand',uids);
						this.setProperty("cmd","remove");
						this.set("text",tx_ef_piexhlist_jslabels.label_catalog__remove_all_taxo);
					}else{
						easyFairs.cart.remove('this','stand',uids);
						this.setProperty("cmd","add");
						this.set("text",tx_ef_piexhlist_jslabels.label_catalog__add_all_taxo);
					}
					
					
				});
				
				addAllEls[i].set("text",tx_ef_piexhlist_jslabels.label_catalog__add_all_taxo);
				
			}
			
			easyFairs.cart.addEvent("add",function(){
				//easyFairs.cart.updateTickers();
				refreshCartCount();
				refreshCartList();
			});
			easyFairs.cart.addEvent("remove",function(){
				//easyFairs.cart.updateTickers();
				refreshCartCount();
				refreshCartList();
			});
			easyFairs.cart.addEvent("clearShow",function(){
				//easyFairs.cart.updateTickers();
				refreshCartCount();
				refreshCartList();
			});
			
		}
		var loadCartInt = (function(){
			if(easyFairs.cart!=null){
				$clear(loadCartInt);
				loadCart();
			}
		}).periodical(10);
		function sortFirstNameAscendingHandler(thisObject,thatObject) {
			if (thisObject.name > thatObject.name) return 1;
			else if (thisObject.name < thatObject.name) return -1;
			return 0;
		}

		
		// PREVIEW
		
		function setPreviewPane(el){
			
			if(!el.getElement('.previewPane') || !container.getElement(".proxy-"+el.getProperty("stand_id"))) return;
			
			console.log('-->',el.getElement('.previewPane'));
			
			el.addEvent('mouseenter',function(){
				if(typeof(window.piexhlist_disablePreview)!="undefined") return;
				var pos = this.getPosition();
				var refEl = this.getElement(".previewPane");
				if(refEl.innerHTML.trim()==""){
					refEl.innerHTML = container.getElement(".proxy-"+this.getProperty("stand_id")).innerHTML;
					var theid = refEl.getElement('.cart-ticker').getProperty("forlabel");
					refEl.getElement('.cart-ticker').setProperty("forlabel",theid+"b");
					refEl.getElement('.cart-ticker-label').setProperty("id",theid+"b");
					refEl.getElement('.cart-ticker').removeEvents('click');
					easyFairs.cart.updateTicker(refEl.getElement('.cart-ticker'));
					easyFairs.cart.enableTicker(refEl.getElement('.cart-ticker'));
					easyFairs.cart.enableTickerLabel(refEl.getElement('.cart-ticker'));
				}
				//console.log("top",pos.y);
				refEl.setStyles({
					display:"block",
					/*top:pos.y.toInt()-190,*/
					left:this.getWidth(),
					'margin-top':this.getHeight().toInt()*-1
				});
			});
			el.addEvent('mouseleave',function(){
				if(typeof(window.piexhlist_disablePreview)!="undefined") return;
				this.getElement(".previewPane").setStyles({
					display:"none"
				});
			});
		}
		
		var prevs = container.getElements("li.preview");
		for(var i=0,j=prevs.length;i<j;i++){
			
			setPreviewPane(prevs[i]);
			/*
			prevs[i].addEvent('mouseenter',function(){
				if(typeof(window.piexhlist_disablePreview)!="undefined") return;
				var pos = this.getPosition();
				var refEl = this.getElement(".previewPane");
				if(refEl.innerHTML.trim()==""){
					refEl.innerHTML = container.getElement(".proxy-"+this.getProperty("stand_id")).innerHTML;
					var theid = refEl.getElement('.cart-ticker').getProperty("forlabel");
					refEl.getElement('.cart-ticker').setProperty("forlabel",theid+"b");
					refEl.getElement('.cart-ticker-label').setProperty("id",theid+"b");
					refEl.getElement('.cart-ticker').removeEvents('click');
					easyFairs.cart.updateTicker(refEl.getElement('.cart-ticker'));
					easyFairs.cart.enableTicker(refEl.getElement('.cart-ticker'));
					easyFairs.cart.enableTickerLabel(refEl.getElement('.cart-ticker'));
				}
				//console.log("top",pos.y);
				refEl.setStyles({
					display:"block",
					left:this.getWidth(),
					'margin-top':this.getHeight().toInt()*-1
				});
			});
			prevs[i].addEvent('mouseleave',function(){
				if(typeof(window.piexhlist_disablePreview)!="undefined") return;
				this.getElement(".previewPane").setStyles({
					display:"none"
				});
			});
			*/
		}
		
		
		
		
		
		
	}
	
	
	if($('tx-ef-piexhlist-singleView')){
		
		
		//CART
		
		easyFairs.cart.load("this",function(){
			easyFairs.cart.enableTickers();
			easyFairs.cart.updateTickers();
		});
		/*
		easyFairs.cart.addEvent("add",function(){
			easyFairs.cart.updateTickers();
		});
		easyFairs.cart.addEvent("remove",function(){
			easyFairs.cart.updateTickers();
		});
		easyFairs.cart.addEvent("clearShow",function(){
			easyFairs.cart.updateTickers();
		});
		*/
		
		
	}
});

//handy func ;)
function piexhlist_getPreviewPaneContent(stand_id){return $("piexhlist-standpreviewpanes").getElement("li[stand_id="+stand_id+"] .previewPane").innerHTML;}
