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($){
	$('html').removeClass('no-js');
	$("tr:odd").addClass("odd");

	function addSearchText(input, type){
		var defaultValue = "Site Search...";
		if ( type === "removeText" ){
			if ( input.val() === defaultValue ) {
				input.val("");
			}
		}
		if ( type === "insertText" ){
			if ( input.val() === "" ){
				input.val(defaultValue);
			}
		}
	}

	var searchField = $(".search-form input.query");

	searchField.each(function(){
		addSearchText($(this),"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;
		    }
		});
	}

	var cbox_vars = {
		speed: 700
		,rel: 'gallery'
		,transition: 'elastic'
		,opacity: .75
		,maxWidth: '750'
		,maxHeight: '750'
		,minWidth: 400
		,minHeight: 300
		,title: function(){
			return '<span class="group">'+$(this).find('img').attr('title')+'</span>'+$('#tags').html();
		}
	}
	var ui = {
		init: function(){
			this.lightbox();
			this.lightboxset();
			this.carousel();
			this.intro();
		}
		,lightbox: function(){
			$(".lightbox").find('a').colorbox(cbox_vars);
		}
		,lightboxset: function(){
			if ($('#gallery').length==0){ return; }

			function create_lightbox($category_cbox){
				$.get( $($category_cbox).attr('href'), function(data){
					$( "#portfolio-photos", $(data) ).find("a").each( function(){
						var that = $(this);
						that.attr('rel', 'gallery');
						$targetDOM.append( that );
					});
					$targetDOM.append( $( "#tags", $(data) ) );
					cbox_vars.open = true;
					$targetDOM.find('a[rel="gallery"]').colorbox( cbox_vars );
				});
			}

			$('#content').append( '<div id="hidden-lightbox" class="hidden"></div>' );

			var $targetDOM = $('#hidden-lightbox');
			$('#gallery').find('.lightbox-set').click( function(event){
				event.preventDefault();
				$targetDOM.html('');
				create_lightbox(this);
			});

		}
		,carousel: function(){
			$('#projects-controls').toggleClass('hidden');
			$('#projectsCarousel').cycle({
			     fx:     'fade'
			    ,pager:  '#projects-paginate'
			    ,next:   '#projects-right'
			    ,prev:   '#projects-left'
			   	,containerResize: 0
			    ,timeout: 2000
				,delay:  100
			    ,speed:  700
		        ,speedIn:  1000
		        ,speedOut: 700
			});
			$('#newsList').cycle({
			     fx:     'scrollLeft'
			    ,timeout: 5000
		        ,speedIn: 1500
		        ,speedOut: 500
		        ,animOut: {opacity: 0}
		        ,random: 1
			});
		}
		,intro: function(){
			// only on visit to entry
			if ( !$('#entry').length > 0 || $.cookie('the_cookie') ){
				$('body').removeClass('intro');
				return;
			}
			var altm = $('#alt-menu'),
				lght = $('#background-light'),
				logo = $('#logo'),
				menu = $('#main-menu'),
				misc = $('#main-search-form');
			lght.hide();
			altm.hide();
			menu.hide();
			misc.hide();
			logo.hide().delay('600').fadeIn('200', function(){
				menu.slideDown('slow', function(){
					misc.fadeIn('100');
					altm.fadeIn('100');
					lght.fadeIn('600');
				});
			});
			$.cookie('the_cookie', { path: '/'} );
		}
	};

	ui.init();
})(jQuery);


/* TODO: Possibly remove this fix for <= IE8 alphaopacity blackout */
/*
			if (!$.support.opacity){
				$("#productsCarousel").find('img').css('filter', function(){
					if (this.src){
				        imgSrc = this.src;
				        if (imgSrc.substr(imgSrc.length-4) === '.png' || imgSrc.substr(imgSrc.length-4) === '.PNG') {
							return "progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled='true',sizingMethod='scale',src='" + imgSrc + "')";
				        }
					}
				});
			}
*/

