var Site = {

	INC_VAT: 'including',

	EXC_VAT: 'excluding',

	init: function () {
		Site.setupDefaultVat();
		Site.setupQuickLinks();
		Site.setupRollOvers();
		Site.setupSwitcher();
	},

	setupDefaultVat: function () {
		var defaultTax = Mage.Cookies.get('tax');
		if (null == defaultTax) {
			defaultTax = Site.INC_VAT;
		}

		Site.switchVat(defaultTax);
	},

	setupQuickLinks: function () {
		var quickLinksButton = $('quickLinksMenu').getElementsByTagName('a')[0];
		Element.extend(quickLinksButton);

		var quickLinks = $('quickLinks').remove();

		var container = new Element('div').setStyle({'borderLeft': 'none', 'margin': 0, 'padding': 0, 'float': 'none'});
		quickLinks.childElements().each(function (el) {
			container.insert(el)
		});

		$('quickLinksMenu').insert({
			after: new Element('div', {
				'id': 'quickLinks'
			}).insert(
				container
			)
		});

		// hide quicklinks by default
		$('quickLinks').setStyle({'display': 'none'});		
		quickLinksButton.addClassName('closed');

		Event.observe(quickLinksButton, 'click', function(e) {
			e.stop();		

			Effect.toggle('quickLinks', 'slide', {
				afterFinish: function () {
					if (quickLinksButton.hasClassName('closed')) {
						quickLinksButton.removeClassName('closed');
					} else {
						quickLinksButton.addClassName('closed');
					}
				},
				delay: 0.1
			});
		});
	},

	setupRollOvers: function() {
		$$('.rollOver').each(function(el) {
			el.applyRollOver();
		});
	},

	setupSwitcher: function () {
		var vatSwitchLink = $('vatSwitch');
		vatSwitchLink.addClassName(Mage.Cookies.get('tax'));

		Event.observe(vatSwitchLink, 'click', function(e) {
			e.stop();

			var oldState = Mage.Cookies.get('tax');
			var newState = Site._getInactiveState(oldState);
			
			Site.switchVat(newState);
			vatSwitchLink.removeClassName(oldState).addClassName(newState);
		});
	},

	switchVat: function (mode) {
		var hidePrice = Site._getInactiveState(mode);
		Mage.Cookies.set('tax', mode);

		$$('.price-' + hidePrice + '-tax').each(function(el){el.setStyle({'display': 'none'})});
		$$('.price-' + mode + '-tax').each(function(el){el.setStyle({'display': 'block'})});
	},

	_getInactiveState: function (mode) {
		var inactiveState = '';
		switch (mode) {
			case Site.EXC_VAT:
				inactiveState = Site.INC_VAT;
			break;

			case Site.INC_VAT:
			default:
				inactiveState = Site.EXC_VAT;
			break;
		}
		return inactiveState;
	}
};

Event.observe(window, 'load', Site.init);