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');
			});
		}

		// Form validation automagic
		var valForms = $$('form.validate-form');
		if ( valForms.length ) {
			valForms.each(function(elem, idx) { 
				new FormValidator.Inline(elem, {
					'onFormValidate': Site.formHandler,
					'errorPrefix': '',
					'useTitles': true
				});
			});
		}
		
		Site.UX();
		
		
	},
	
	
	formHandler: function(pass, form, submitEvent) {
		// Do anything necessary here
	},
	
	UX: 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');
			}
		});
		
		
		if ( $$('.hover-tip') ) {
			$$('.hover-tip').each( function(elem, idx) {
			
				if ( elem.title ) {
					
					elem.store('tip:title', '');
					elem.store('tip:text', elem.title);
						
					var helpTip = new Tips(elem, {
						fixed: false,
						className: 'tip-container'
					});
				}
					
			});
		}
		
		if ( $('text-decrease') ) {
			$('text-decrease').addEvent('click', function(e) {
				e.stop();
				Site.resizeText(-1);
			});
		}
		
		if ( $('text-increase') ) {
			$('text-increase').addEvent('click', function(e) {
				e.stop();
				Site.resizeText(1);
			});
		}
		
		if ( $('btn-print') ) {
			$('btn-print').addEvent('click', function(e) {
				e.stop();
				window.print();
			});
		}

		if (typeof(mooCalendar2) == 'function' && typeof(mooCalendar2.prototype) == "object") {
			if (typeof(mooCalendar2.Input) == 'function' && typeof(mooCalendar2.Input.prototype) == "object") {
				new mooCalendar2.Input();
			}
		}
		
		Site.UXDD();
		
	},
	
	UXDD: function() {
		
		var activeClass = 'ux-dropdown-toggler-active', showingDropdown, showingMenu, showingParent;

		var hideMenu = function() {
			if(showingDropdown) {
				showingDropdown.removeClass(activeClass);
				showingMenu.setStyle('display','none');
			}
		};

		$$('.ux-dropdown-toggler').each(function(dropdown) {

			var menu = dropdown.getNext('.ux-dropdown-menu'), parent = dropdown.getParent('div');

			var showMenu = function() {
				hideMenu();
				showingDropdown = dropdown.addClass(activeClass);
				showingMenu = menu.setStyle('display','block');
				showingParent = parent;
			};

			dropdown.addEvent('click',function(e) {
				if(e) e.stop();
				showMenu();
			});

			dropdown.addEvent('focus',function() {
				showMenu();
			});
		});

		$(document.body).addEvent('click',function(e) {
			if(showingParent && !e.target || !$(e.target).getParents().contains(showingParent)) { 
				hideMenu();
			}
		});
		
	},
	
	resizeText: function(multiplier) {
		var element = $('primary-inner');
		
		if (element.style.fontSize == "") {
			element.style.fontSize = "1em";
		}
		
		var fontSize = parseFloat(element.style.fontSize);
		
		if ( (fontSize > 0.6 && multiplier < 0) || (fontSize < 1.4 && multiplier > 0) ) {
			fontSize += (multiplier * 0.2);
		}
		
		element.style.fontSize = fontSize + 'em';
	}
	
};

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