/* Metzemaekers Javascript
	(c) 2006-2008 Omines - www.omines.com
	
	All rights explicitly reserved - unauthorized reproduction strictly prohibited
*/

// Site class - main active content wrapper
var Site = {
	start: function()
	{
		this.initTabs();
		this.initPaging();
		this.autoCompleteOff();
		this.initArtworkDescription();
	},
	
	initArtworkDescription: function()
	{
		if($('ArtworkDescription'))
		{
			$('ArtworkDescription').addEvent('click', function(){
				$('ArtworkDescription').set('value','');
			});
		}
	},
	initTabs: function()
	{
		$$('.tabs .tab').each(function (el) {
			el.addEvent('click', function(e) {
				el.getParent().getChildren('.tab').each(function(child) {
					child.removeClass('active');
					$(child.id+'cont').removeClass('active');
				});
				el.addClass('active');
				$(el.id+'cont').addClass('active');
				Cookie.write('tab', el.id, {duration:1});
			});
		}, this);
		var el = Cookie.read('tab');
		if(el && $(el)) {
			$(el).fireEvent('click');
			Cookie.dispose('tab');
		}
	},
	initPaging: function()
	{
		this.pagers = [];
		$$('.paging').each(function (el, idx) {
			this.pagers[idx] = new Pager(el);
		}, this);		
	},
	autoCompleteOff: function()
	{
		$$('.nocomplete').each(function (el) {
			el.set('autocomplete', 'off');
		});			
	}
};

// Pager class - controls Javascript paged elements
var Pager = new Class({
	initialize: function(element)
	{
		this.root = element;
		this.pages = element.getChildren('.page');
		this.active = 0;
		if(this.pages.length > 1)
			this.createPager();
	},	
	perform: function()
	{
		this.pages.each(function (el, idx) {
			if(idx != this.active)
				el.addClass('hidden');
			else
				el.removeClass('hidden');
		}, this);
		this.pagelinks.getChildren('a').each(function (el, idx) {
			if(idx != this.active)
				el.removeClass('active');
			else
				el.addClass('active');
		}, this);
		if(this.active == 0)
			this.previous.addClass('hidden');
		else
			this.previous.removeClass('hidden');
		if(this.active == this.pages.length-1)
			this.next.addClass('hidden');
		else
			this.next.removeClass('hidden');		
	},
	createPager: function(element)
	{
		this.pager = new Element('div', {'class':'page-selection'}).injectInside(this.root);
		this.previous = new Element('a', {'class':'hidden','href':'#'}).injectInside(new Element('div', {'class':'previous'}).injectInside(this.pager)).set('text','vorige').addEvent('click',this.prevClick.bindWithEvent(this));
		this.next = new Element('a',{'href':'#'}).injectInside(new Element('div', {'class':'next'}).injectInside(this.pager)).set('text','volgende').addEvent('click',this.nextClick.bindWithEvent(this));
		this.pagelinks = new Element('div', {'class':'pages'}).injectInside(this.pager);
		for(var i = 0; i != this.pages.length; i++)
		{
			if(i != 0)
				this.pagelinks.appendText(' | ');
			new Element('a',{'href':'#'}).set('text',i+1).injectInside(this.pagelinks).addEvent('click',this.pageClick.bindWithEvent(this));
		}
		this.perform();
	},
	pageClick: function(e)
	{
		this.active = e.target.get('text')-1;
		this.perform();
		e.stop();
	},
	nextClick: function(e)
	{
		this.active++;
		this.perform();
		e.stop();
	},
	prevClick: function(e)
	{
		this.active--;
		this.perform();
		e.stop();
	}
});

// Set event to start running active content when DOM is loaded
window.addEvent('domready', function() { Site.start(); });
