var Site = {

	start: function(){

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

		//EXTERNAL LINKS
		if($$('a.external')) {
			Site.externalLinks();
		}

		// LOGIN DROP DOWN
		if($('member-login-controls')) {
			Site.UX();
		}

		// HOME FEATURE FADER
		if($('user_interaction')) {
			Site.featureFader();
		}

		// PREFFERRED PROVIDERS SLIDER
		if($('providers-carousel')) {
			Site.infiniSlider();
		}

		// PREFFERRED PROVIDERS SLIDER
		if($('calendar')) {
			Site.homeCalendar();
		}

		// FORM VALIDATION
		var valForms = $$('form.validate-form');
		if ( valForms.length ) {
			valForms.each(function(elem, idx) {
				new FormValidator.Inline(elem, {
					'onFormValidate': Site.formHandler,
					'errorPrefix': '',
					'useTitles': true
				});
			});
		}

		if ($('payment-method') && $('credit-card-fields')) {
			$('cheque-fields').hide();
			$('credit-card-fields').hide();
			$('payment-method').addEvent('change',function() {
				if ($(this).get('value') == 'mastercard' || $(this).get('value') == 'visa' || $(this).get('value') == 'amex') {
					$('cheque-fields').hide();
					$('credit-card-fields').show();
				} else if ($(this).get('value') == 'cheque') {
					$('cheque-fields').show();
					$('credit-card-fields').hide();
				} else {
					$('cheque-fields').hide();
					$('credit-card-fields').hide();
				}
			});
		}
	},


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

	externalLinks : function() {
		var extLinks = $$('a.external');
			extLinks.each(function(elem, idx) {
				elem.setProperty('target', '_blank');
			});
	},

	homeCalendar : function() {

		var calendar = new mooCalendar2.Event($('calendarInner'), 	{
			'calType': 'calTypeInline',
			'dayLength': 'dayLengthShort',

			'startDate': new Date(),

			'viewFrame': $('calViewHolder'),
			'filterFrame': $(),
			'weekFrame': $('calWeekHolder'),
			'eventFrame': $('event-holder'),
			'spinnerElement': $('calendarInner'),

			'requestUrl': '/page/Calendar/&rtemplate=3386'
		});

	},

	infiniSlider : function() {
		new InfiniSlider({
			container: $('providers-images'),
			indexItems: $$('#providers-controls'),
			nextButton: 'next3',
			previousButton: 'prev3',

			autoSlideTime: 2000,
			duration: 600,

			animateOn: 'left',
			showItems: 1
		});
	},

	featureFader : function() {

		$('user_interaction').fader({
			fadeWaitTime: 6000,
			duration: 500,
			//indexItems: '#pagination-container > span', /*index items selector */

			nextButton: 'next2',
			previousButton: 'prev2'

		});
	},

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


		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 ( $('print-page') ) {
			$('print-page').addEvent('click', function(e) {
				e.stop();
				window.print();
			});
		}

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

		$$('#member-login').each(function(dropdown) {

			var menu = dropdown.getNext('#member-login-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 = "12px";
		}

		if (element.style.lineHeight == "") {
			element.style.lineHeight = "21px";
		}

		var fontSize = parseFloat(element.style.fontSize);
		var lineHeight = parseFloat(element.style.lineHeight);

		if ( (fontSize > 8 && multiplier < 0) || (fontSize < 16 && multiplier > 0) ) {
			fontSize += (multiplier * 2);
			lineHeight += (multiplier * 4);
		}

		element.style.fontSize = fontSize + 'px';
		element.style.lineHeight = lineHeight + 'px';
	}

};

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