var Site = {

	start: function() {

		MooTools.lang.setLanguage("en-US");

		// Launch-in-new-window links automagically created
		var extLinks = $$('a.external');
		if ( extLinks.length ) {
			extLinks.each(function(elem, idx) {
				elem.setProperty('target', '_blank');
			});
		}

		// Safari Suckerfish 'fix'
		if ( navigator.appVersion.toLowerCase().indexOf('safari') != -1 ) {
			var navElems = $$('#navigation li a');
			navElems.each(function(elem, idx) {
				elem.set('title', '');
			});
		}

		// Form validation automagic
		Site.attachFormValidators();

		if ($('search')) Site.addSearchEventListeners();
		if ($('accordion')) Site.attachAccordion();

		/*
		$('suckerfish2_menu_1').addEvent('mouseover', function(event) {
			$('highlight').setStyle('background-position', '-923px 0');
		});
		*/

		$('hero').fader({
			fadeWaitTime: 5000,
			duration: 500
		});

	},

	formHandler: function(pass, form, submitEvent) {
		// Do anything necessary here
	},

	/**
	 *	Form validation automagic
	 *
	 */
	attachFormValidators: function() {
		var valForms = $$('form.validate-form');
		if ( valForms.length ) {
			valForms.each(function(elem, idx) {
				new FormValidator.Inline(elem, {
					'errorPrefix': '',
					'useTitles': true,
					'serial': false,
					'scrollToErrorsOnSubmit': false,
					'onFormValidate': function(passed, form, e) {
						elem.setProperty('valPassed', passed);
						if ( passed ) {
							elem.submit = null;
						} else {
							if ( $('error-msg-group').get('text') ) {
								var tmp = $('error-msg-group').get('text').split('.');
								alert(tmp[0]);
								$('error-msg-group').set('html', '');
								Site.firstFail.focus();
								Site.firstFail = null;
							}
						}
					},
					'onElementFail': function(e, val_msgs) {
						if ( Site.firstFail == null ) {
							Site.firstFail = e;
						}
					}
				});
			});
		}

	},

	addSearchEventListeners: function () {
		var label = $('search').getElement('label');
		var query = $('search').getElement('#query');
		query.addEvents({
			'focus' : function () {
				label.setStyle('left', '-9999px');
			},
			'blur' : function () {
				if (this.value == '')
					label.setStyle('left', '0');
			}
		});
	},

	attachAccordion: function() {

		var anchors = $$('h3.toggler a');
		$each(anchors, function(element,index) {
			element.addEvent('click', function(event) {
				event.preventDefault();
			});
		});

		var accordion = new MultipleOpenAccordion($('accordion'),  {
			elements: $$('#accordion .stretcher'),
			togglers: $$('#accordion .toggler'),
			openAll: true,
			opacity: false,
			onActive: function(toggler, element){
				toggler.addClass('selected');
			},
			onBackground: function(toggler, element){
				toggler.removeClass('selected');
			}
		});

		try {
			$('expand').addEvent('click', function(event) {
				event.preventDefault();
				accordion.showAll();
			});
			$('collapse').addEvent('click', function(event) {
				event.preventDefault();
				accordion.hideAll();
			});
		} catch(error) {};

	}

};

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