var AddonBox = new Class({
	assocOpen: false,
	isoOpen: false,
	defaultOpen: true,
	
	initialize: function() {
		$('assoc').addEvent('click', function(event) { event.stop(); addon.toggle('assoc'); });
		$('iso').addEvent('click', function (event) { event.stop(); addon.toggle('iso'); });
				
		var closeButtons = $(document.body).getElements('a.close');
		closeButtons.each(function(element){
			element.addEvent('click', function(event) { event.stop(); addon.close(); });
		});

	},
	
	toggle: function (element) {
		if (this.assocOpen==false && element=='assoc') {
			if (this.isoOpen==true) {
				this.effect('assocdiv', 'isodiv');
			} else {
				this.effect('assocdiv', 'defaultdiv');
			}
			this.isoOpen = false;
			this.assocOpen = true;
		
		} else if (this.isoOpen==false && element=='iso') {
		
			if (this.assocOpen==true) {
				this.effect('isodiv', 'assocdiv');
			} else {
				this.effect('isodiv', 'defaultdiv');
			}
			this.assocOpen = false;
			this.isoOpen = true;
			
		} else {
			return false;
		}
	},
	
	effect: function (newElement, oldElement) {
		if (oldElement==null) {
			$(newElement).setStyles({'opacity': 0, 'left': '-280px', 'top': 0, 'display': 'block'});			
			new Fx.Morph($(newElement), {duration: 500}).start({'opacity': 1, 'left': 0});
		} else {
			$(newElement).setStyles({'opacity': 0, 'left': '-280px', 'top': 0, 'display': 'block'});
			new Fx.Morph($(newElement), {duration: 500}).start({'opacity': 1, 'left': 0});
			$(oldElement).setStyles({'opacity': 1, 'left': 0, 'top': 0, 'display': 'block'});
			new Fx.Morph($(oldElement), {duration: 250, onComplete: function() { $(oldElement).setStyles({'opacity': 0, 'left': 0, 'top': 0, 'display': 'none'}); }}).start({'opacity': 0, 'top': '100px'});
		}
	},
	
	close: function () {
		if (this.assocOpen==true) {
			$('assocdiv').setStyles({'opacity': 1, 'left': 0, 'top': 0, 'display': 'block'});
			new Fx.Morph($('assocdiv'), {duration: 250, onComplete: function() { $('assocdiv').setStyles({'opacity': 0, 'left': 0, 'top': 0, 'display': 'none'}); }}).start({'opacity': 0, 'top': '100px'});
			this.assocOpen = false;
		} else if (this.isoOpen==true) {
			$('isodiv').setStyles({'opacity': 1, 'left': 0, 'top': 0, 'display': 'block'});
			new Fx.Morph($('isodiv'), {duration: 250, onComplete: function() { $('isodiv').setStyles({'opacity': 0, 'left': 0, 'top': 0, 'display': 'none'}); }}).start({'opacity': 0, 'top': '100px'});
			this.isoOpen = false;
		}
		$('defaultdiv').setStyles({'opacity': 0, 'left': '-280px', 'top': 0, 'display': 'block'});
		new Fx.Morph($('defaultdiv'), {duration: 500}).start({'opacity': 1, 'left': 0});
	}
});

var addon;

window.addEvent('domready', function() {
	addon = new AddonBox;
});