jQuery.noConflict();

var plauditAnalytics = (function($) {
	
	var isPageTrackerLoaded = function() {
		return typeof(_gaq) != "undefined" && _gaq != null;
	};
	
	return {
		trackPage: function(url) {
			if ( url.substring(0,1) != '/' )
				url = '/' + url;
			if ( isPageTrackerLoaded() ) {
				_gaq.push(['_trackPageview', url]);
			} else if ( typeof(console) != "undefined" ) {
				console.log("Google Analytics not loaded. Trying to track page: " + url);
			}
		},
		trackEvent: function(category, action, opt_label, opt_value) {
			if ( isPageTrackerLoaded() ) {
				_gaq.push(['_trackEvent', category, action, opt_label, opt_value]);
			} else if ( typeof(console) != "undefined" ) {
				console.log("Google Analytics not loaded. Trying to track event with category '" + category +"', action '" + action +"', opt_label '" + opt_label +"', and opt_value '" + opt_value +"'.");
			}
		},
		setupBinding: function() {
			$("a").filter("[href^='http://'], [href^='https://']").filter(":not([href*='://"+location.hostname+"'])").click(function(){
				plauditAnalytics.trackEvent("Outbound Link", "Click", $(this).attr("href"));
			});
			$("a").filter("[href^='mailto:']").click(function(){
				plauditAnalytics.trackEvent("Email Link", "Click", $(this).attr("href"));
			});
			$("form").filter("[action^='http://'], [action^='https://']").filter(":not([action*='://"+location.hostname+"'])").submit(function(){
				plauditAnalytics.trackEvent("Outbound Form Submissions", "Submit", $(this).attr("action"));
			});
		}
	};
})(jQuery);

jQuery(function(){
	plauditAnalytics.setupBinding();
});

var plauditSite = (function($){
	
	var ui = {
		
		init: function(){
			this.common();
			this.faq();
			this.homeGallery();
			this.videoOverlay();
		},
		
		common: function(){
			$("body").addClass("jsEnabled");
			
			$("tr:odd").addClass("odd");
			
			$("table tr:last").addClass("last");

			var searchField = $(".searchForm input.query"); 
			
			function addSearchText(input, type){
				var defaultValue = "Search...";
				
				if ( type === "removeText" ){
					if ( input.val() === defaultValue ) {
						input.val("")
					} 
				}
				
				if ( type === "insertText" ){
					if ( input.val() === "" ){
						input.val(defaultValue)
					}
				}
			}
			
			addSearchText(searchField,"insertText");
			
			searchField.blur(function(){
				addSearchText($(this), "insertText");
			});
			
			searchField.focus(function(){
				addSearchText($(this), "removeText");
			});
			
			if ( $.browser.msie	&& parseInt($.browser.version) < 9 ) {
				// Some versions of ie do not submit the form using the first submit if the field only contains
				// one input field. We must have it use the first button so the correct JSF action runs.
				$('input').keypress(function(event){
					var input = $(this);
				    if (event.keyCode == 13) {
				    	var submitButtons = input.closest("form").find(":submit:first, input.submit:first, input[type='image']:first");
				    	if ( submitButtons.length > 0 ) {
				    		// handle the submit
				    		submitButtons.first().click();
				        	return false;
				    	}
				    	return true;
				    }
				});
			}
			
		}, // End common object

		faq: function(){
			$("#content .toggle").hide();
			
			$(".qa h3").addClass("close")

			$(".qa h3").toggle(
				function() {
					$(this).next(".toggle").slideDown();
					$(this).removeClass("close");
					$(this).addClass("open");
				},
				function() {
					$(this).next(".toggle").hide();
					$(this).removeClass("open");
					$(this).addClass("close");
				}
			);
		},
		
		homeGallery: function(){
			var baseHref = $("base").attr("href");
			
			$("#animation-images").cycle({
				fx: 'fade',
				pause: 1,
				timeout: 3000,
				speed: 750,
				pagerEvent: 'mouseover',
                cleartypeNoBg: true,
				pauseOnPagerHover: true,
				pager: $("#animation-list"),
				pagerAnchorBuilder: createAnchors,
					onPagerEvent: function(index,ele){
				}
			});
			
			function createAnchors(index,ele){
				var currentItem = $("#animation-list li a")[index];
				return currentItem;
			}
			
			$("#animation-list a").click(function(){
				window.location = baseHref + $(this).attr("href");
			});
			
		}, // End homeGallery object
		
		videoOverlay: function(){
			// DOM Elements
			var overlayContainer = "video-container-wrap";
			var videoContainer = "video-container";
			var videoFile = $("a.video");
			$("body").append('<div id="'+overlayContainer+'"><div id="'+videoContainer+'"></div></div>');
			
			var obj = this,
			
				// Empty vars for use later
				selectedClip,
			
				// Flow Player Vars
				flowPlayerSWF = "assets/flash/flowplayer-3.2.5.swf",
				flowPlayerOptions = {
					clip: {
						autoPlay: false,
						autoBuffering: true
					}
				},
				
				// Overlay Vars 
				overlayOptions = {
					mask: {
						color: '#000000',
						loadSpeed: 200,
						opacity: 0.8
					},
					
					onLoad: loadVideo,
					onBeforeClose: hideVideo,
					closeOnClick: false
				},
				
				// Flowplayer video setup 
				videoPlayer = null,
				
				// Overlay setup
				overlay = $("#" + overlayContainer).overlay(overlayOptions),
				overlayApi = overlay.data("overlay");
			
	
			// End Variable Setup
			
			// Start function definitions
			
			function getClipURL(elem){
				return elem.attr("href");
			}
			
			function loadVideo(){
				if (videoPlayer == null) {
					videoPlayer = flowplayer(videoContainer,flowPlayerSWF,flowPlayerOptions);
					videoPlayer.load(function(){
						videoPlayer.play(selectedClip);
					});
				} else {
					videoPlayer.show();
					videoPlayer.play(selectedClip);
				}
			}
			
			function hideVideo(){
				videoPlayer.hide();
			}
			
			videoFile.click(function(e){
				e.preventDefault();
				selectedClip = jQuery("head base").attr("href") + getClipURL($(this));
				overlayApi.load();
			});
				
		}
			
	}; 
	
	ui.init();
})(jQuery);

