var Site = {
	// functions put here run on page load
	start: function() {
		if ($('page-tabs')) {
			Site.switchPageTabs();
		}
		if ($('sidenav')) {
			//Site.appearSideNav(); // do fancy appear animation
			Site.createSideNav(); // do not do the fancy appear animation
		}
		if ($('compare-form')) {
			Site.setupSubmit();
		}
	},
	
	// do not let the form submit with no products selected
	setupSubmit: function() {
		var form = $('compare-form');
		form.addEvent('submit', function(e) {
			if (form.toQueryString() == '') {
				e = new Event(e).stop(); // prevent bubble
				alert('Please select some products to compare.');
			}
		});
	},
	
	// makes the sidenav items pop in once the page is loaded
	appearSideNav: function() {
		var timer = 0;
		var sideblocks = $$('#sidenav .slide');
		
		var slidefxs = [];
		var colorfxs = [];
		
		sideblocks.each(function(el, i) {
			var left = el.getStyle('left');
			el.setStyle('left', '-170px');
			timer += 150;
			slidefxs[i] = new Fx.Style(el, 'left', {
				duration: 400,
				transition: Fx.Transitions.backOut,
				wait: false,
				onComplete: Site.createOver.pass([el])
			});
			slidefxs[i].start.delay(timer, slidefxs[i], left);
			
		});
	},
	
	// just add the mouse over events to the sidenav
	createSideNav: function() {
		var sideblocks = $$('#sidenav .slide');
		sideblocks.each(function(el, i) {
			Site.createOver(el);
		});
	},
	
	// creates the javascript hover transistion events for sidenav
	createOver: function(el) {
		if (el.hasClass('current')) {
			return;
		} else {
			var first = el.getFirst();
			if (!first || first.getTag() != 'a') return;
			var strong = first.getFirst();
			if (!strong || strong.getTag() != 'strong') return;
			var slidefxs = new Fx.Styles(strong, {'duration': 200, 'wait': false});
			el.mouseouted = true;
			el.addEvent('mouseenter', function(e) {
				slidefxs.start({
					'padding-left': 15,
					'margin-right': 5
				});
			});
			el.addEvent('mouseleave', function(e) {
				slidefxs.start({
					'padding-left': 10,
					'margin-right': 10
				});
			});
			if (!window.ie6 && !window.ie7) Site.createSubOver(el);
		}
	},
	
	// creates the javascript hover events to show the sidenav subnav
	createSubOver: function(el) {
		var subnav = el.getElement('ul');
		if (subnav) {
			var subfxs = new Fx.Slide(subnav, {'duration': 200, 'wait': false});
			var subfxTimer;
			subfxs.hide(); // make sure it's hidden
			subnav.setStyle('display', 'block');
			subfxs.hide(); // do it again for browser wierdness
			el.addEvent('mouseenter', function(e) {
				$clear(subfxTimer);
				subfxTimer = subfxs.slideIn.delay(300, subfxs);
			});
			el.addEvent('mouseleave', function(e) {
				$clear(subfxTimer);
				subfxTimer = subfxs.slideOut.delay(50, subfxs);
			});
		}
	},
	
	// adds onclick events to tabs
	switchPageTabs: function() {
		var tabs = $$('#page-tabs ul li');
		var blockids = [];
		// first get tab block ids so we can hide / show
		tabs.each(function(el, i) {
			var anchor = el.getFirst();
			if (!anchor || anchor.getTag() != 'a') return;
			blockids[i] = anchor.className;
		});
		tabs.each(function(el, i) {
			var anchor = el.getFirst();
			if (!anchor || anchor.getTag() != 'a') return;
			anchor.addEvent('click', function(e) {
				e = new Event(e).stop(); // prevent bubble
				blockids.each(function(blockId, i) {
					if (anchor.hasClass(blockId)) {
						$(blockId).setStyle('display', 'block');
					} else {
						$(blockId).setStyle('display', 'none');
					}
				});
				tabs.each(function(el, i) {
					el.removeClass('current');
				});
				el.addClass('current');
			});
		});
	}
};

window.addEvent('domready', Site.start);