window.addEvent('domready', function() {
	
	var getSelectedAlbums = function()
	{
		var albums = Cookie.read('albums');
		if (albums) {
			return JSON.decode(albums);
		} else {
			return [];
		}
	}

	var setSelectedAlbums = function(albums)
	{
		Cookie.write('albums', JSON.encode(albums), {'path': '/'});
	}
	
	
	var toolbar = $('toolbar');
	if (toolbar) {
		var thePosition = toolbar.getPosition().y;
		window.addEvent('scroll', function(e) {
			if (window.getScroll().y < thePosition) {
				toolbar.removeClass('fixed');
			} else {
				toolbar.addClass('fixed');
			}
		});

		var addToCartEvent = function(e) 
		{
			e.stop();
			var albums = getSelectedAlbums();
			var href = this.get('href');
			var id = href.substr(href.lastIndexOf('=') + 1);
			
			var li = theListing.getElement('.i-' + id);
			var parent = li.getParent();
			//var parent = this.getParent();
			var isAdd = true;
			if (!parent.hasClass('selected')) {
				parent.addClass('selected');
				albums.include(id);
				parent.getElement('a').set('text', 'Poista ostoslistalta -');
				this.getParent().getElement('a').set('text', 'Poista ostoslistalta -');
			  } else {
				parent.removeClass('selected');
				albums.erase(id);
				parent.getElement('a').set('text', 'Lisää ostoslistalle +');
				this.getParent().getElement('a').set('text', 'Lisää ostoslistalle +');
				isAdd = false;
			}
			
			setSelectedAlbums(albums);
			var cart = $('cart');
			cart.addClass('open');
			cart.getElement('.empty').addClass('hide');
			if (isAdd) {
				var img = parent.getElement('img').clone();
				img.inject(cart);
			} else {
				var img = cart.getElement('.i-' + id);
				if (img) {
					img.dispose();
				}
			}
			var count = cart.getElements('img').length;
			var countEl = cart.getElement('.count');
			var str = '';
			if (count == 0) {
				str = '';
				cart.removeClass('open');
				cart.getElement('.empty').removeClass('hide');
				cart.getElement('div').addClass('hide');
			} else if (count == 1) {
				str = '1 levy valittu';
			} else {
				str = count + ' levyä valittu';
			}
			countEl.set('text', str);
			if (count != 0) {
				var img = cart.getLast('img');
				img.set('style', '');
				cart.getElement('div').removeClass('hide');
				var prev = img.getPrevious('img');
				if (prev) {
					prev.setStyles({
						margin: '-5px -5px 0 0',
						opacity: '0.2'
					});
				}
			}
		}
		
		var openOverlay = function(e) {
			e.stop();
			var pos = this.getPosition();
			var overlay = new Element('div', {'class': 'overlay'});
			overlay.set('html', this.get('html'));
			var img = overlay.getElement('img');
			var src = img.get('src');
			img.set('src', src.replace('-50.jpg', '-150.jpg'));
			img.set('width', 150);
			img.set('height', 150);
			overlay.setStyles({
				top: pos.y,
				left: pos.x
			});
			var close = new Element('div', {'class': 'close'});
			
			overlay.addEvent('click', function(event) {
				event.stop();
				this.destroy();
			});
			close.addEvent('click', function(event) {
				event.stop();
				overlay.destroy();				
			});
			close.inject(overlay);
			overlay.getElement('a').addEvent('click', addToCartEvent);
			overlay.inject(theOverlay);
		}
		
		var theListing = $('listing');
		var theOverlay = $('overlay');
		
		theListing.set('load', {onComplete: function() {
			theListing.getElements('ul li').addEvent('click', openOverlay);
			var cont = new Element('div', {'class': 'sub-nav'});
			theListing.getElements('h3.in-nav').each(function(h3) {
				var a = new Element('a', {'href': '#' + h3.get('id'), 'text': h3.get('text')});
				a.addEvent('click', function(ev) {
					ev.stop();
					window.scroll(0, h3.getPosition().y-100);
				});
				
				a.inject(cont);
			});
			cont.inject(toolbar.getElement('#show'));
			toolbar.removeClass('loading');
		}});

		var links = toolbar.getElements('.nav a');
		links.addEvent('click', function(e) {
			e.stop();
			if (!this.hasClass('selected')) {
				$('overlay').empty();
				toolbar.addClass('loading');
				var url = this.get('href');
				if (url.match(/(artist|genre)/)) {
					toolbar.addClass('double');
				} else {
					toolbar.removeClass('double');
				}
				var tmp = toolbar.getElements('.sub-nav');
				
				if (tmp) {
					tmp.dispose();
				}
				
				links.removeClass('selected');
				this.addClass('selected');
				
				theListing.load(url + '&xhr=1');
				
			}
		});
		
		theListing.getElements('li').addEvent('click', openOverlay);
		
		window.addEvent('resize', function() {
			$('overlay').empty();
		});
	}
	var clearLink = $('clear-cart');
	if (clearLink) {
		clearLink.addEvent('click', function(e) {
			setSelectedAlbums([]);
		});
	}
})
