/*
 * Contact ian{dot}dunn{at}mpangodev{dot}com with any questions about this or other parts of the landing page
 */

// Reassign $ in case the landing page has been integrated with a page that uses another JS library
$ = jQuery.noConflict();

// AnythingSlider -- http://css-tricks.com/anythingslider-jquery-plugin/
(function($){$.anythingSlider=function(f,g){var a=this;a.$el=$(f).addClass("anythingBase").wrap('<div class="anythingSlider"><div class="anythingWindow" /></div>');a.$el.data("AnythingSlider",a);a.init=function(){a.options=$.extend({},$.anythingSlider.defaults,g);a.$wrapper=a.$el.parent().closest("div.anythingSlider").addClass("anythingSlider-"+a.options.theme);a.$window=a.$el.closest("div.anythingWindow");a.$controls=$('<div class="anythingControls"></div>').appendTo(a.$wrapper);a.$items=a.$el.find("> li").addClass("panel"); a.pages=a.$items.length;a.timer=null;a.flag=false;a.playing=false;a.hovered=false;a.panelSize=[];a.currentPage=a.options.startPanel;a.hasEmb=!!a.$items.find("embed[src*=youtube]").length;a.hasSwfo=typeof swfobject!=="undefined"&&swfobject.hasOwnProperty("embedSWF")&&$.isFunction(swfobject.embedSWF)?true:false;a.runTimes=$("div.anythingSlider").index(a.$wrapper)+1;if(!$.isFunction($.easing[a.options.easing]))a.options.easing="swing";a.options.theme!="default"&&!$("link[href*="+a.options.theme+"]").length&& $("body").append('<link rel="stylesheet" href="'+a.options.themeDirectory.replace(/\{themeName\}/g,a.options.theme)+'" type="text/css" />');a.hasEmb&&a.hasSwfo&&a.$items.find("embed[src*=youtube]").each(function(b){($(this).parent()[0].tagName=="OBJECT"?$(this).parent():$(this)).wrap('<div id="ytvideo'+b+'"></div>');swfobject.embedSWF($(this).attr("src")+"&enablejsapi=1&version=3&playerapiid=ytvideo"+b,"ytvideo"+b,"100%","100%","10",null,null,{allowScriptAccess:"always",wmode:a.options.addWmodeToObject}, {})});if(a.options.resizeContents){a.options.width&&a.$wrapper.add(a.$items).css("width",a.options.width);a.options.height&&a.$wrapper.add(a.$items).css("height",a.options.height);a.hasEmb&&a.$el.find("object, embed").css({width:"100%",height:"100%"})}if(a.pages===1){a.options.autoPlay=false;a.options.buildNavigation=false;a.options.buildArrows=false}if(a.options.autoPlay){a.playing=!a.options.startStopped;a.buildAutoPlay()}a.buildNavigation();a.$el.prepend(a.$items.filter(":last").clone().addClass("cloned").removeAttr("id")); a.$el.append(a.$items.filter(":first").clone().addClass("cloned").removeAttr("id"));a.$items=a.$el.find("> li");a.setDimensions();a.options.resizeContents||$(window).load(function(){a.setDimensions()});a.options.buildArrows&&a.buildNextBackButtons();a.options.pauseOnHover&&a.$wrapper.hover(function(){if(a.playing){a.$el.trigger("slideshow_paused",a);$.isFunction(a.options.onShowPause)&&a.options.onShowPause(a);a.clearTimer(true)}},function(){if(a.playing){a.$el.trigger("slideshow_unpaused",a);$.isFunction(a.options.onShowUnpause)&& a.options.onShowUnpause(a);a.startStop(a.playing,true)}});if(a.options.hashTags===true&&!a.gotoHash()||a.options.hashTags===false)a.setCurrentPage(a.options.startPanel,false);a.$items.find("a").focus(function(){a.$items.find(".focusedLink").removeClass("focusedLink");$(this).addClass("focusedLink");a.$items.each(function(b){if($(this).find("a.focusedLink").length){a.gotoPage(b);return false}})});a.slideControls(false);a.$wrapper.hover(function(b){a.hovered=b.type=="mouseenter"?true:false;a.slideControls(a.hovered, false)});$(document).keyup(function(b){if(a.$wrapper.is(".activeSlider"))switch(b.which){case 39:a.goForward();break;case 37:a.goBack()}})};a.buildNavigation=function(){a.$nav=$('<ul class="thumbNav" />').appendTo(a.$controls);a.options.playRtl&&a.$wrapper.addClass("rtl");a.options.buildNavigation&&a.pages>1&&a.$items.each(function(b){var c=b+1;b=$("<a href='#'></a>").addClass("panel"+c).wrap("<li />");a.$nav.append(b.parent());if($.isFunction(a.options.navigationFormatter)){var d=a.options.navigationFormatter(c, $(this));b.html(d);parseInt(b.css("text-indent"),10)<0&&b.addClass(a.options.tooltipClass).attr("title",d)}else b.text(c);b.bind(a.options.clickControls,function(e){if(!a.flag){a.flag=true;setTimeout(function(){a.flag=false},100);a.gotoPage(c);a.options.hashTags&&a.setHash("panel"+a.runTimes+"-"+c)}e.preventDefault()})})};a.buildNextBackButtons=function(){a.$forward=$('<span class="arrow forward"><a href="#">'+a.options.forwardText+"</a></span>");a.$back=$('<span class="arrow back"><a href="#">'+ a.options.backText+"</a></span>");a.$back.bind(a.options.clickArrows,function(b){a.goBack();b.preventDefault()});a.$forward.bind(a.options.clickArrows,function(b){a.goForward();b.preventDefault()});a.$back.add(a.$forward).find("a").bind("focusin focusout",function(){$(this).toggleClass("hover")});a.$wrapper.prepend(a.$forward).prepend(a.$back);a.$arrowWidth=a.$forward.width()};a.buildAutoPlay=function(){a.$startStop=$("<a href='#' class='start-stop'></a>").html(a.playing?a.options.stopText:a.options.startText); a.$controls.append(a.$startStop);a.$startStop.bind(a.options.clickSlideshow,function(b){a.startStop(!a.playing);if(a.playing)a.options.playRtl?a.goBack(true):a.goForward(true);b.preventDefault()}).bind("focusin focusout",function(){$(this).toggleClass("hover")});a.startStop(a.playing)};a.setDimensions=function(){var b,c,d,e,i,h=0,j=a.$window.width(),k=$(window).width();a.$items.each(function(l){d=$(this).children("*");if(a.options.resizeContents){b=parseInt(a.options.width,10)||j;c=parseInt(a.options.height, 10)||a.$window.height();$(this).css({width:b,height:c});d.length==1&&d.css({width:"100%",height:"100%"})}else{b=$(this).width();i=b>=k?true:false;if(d.length==1&&i){e=d.width()>=k?j:d.width();$(this).css("width",e);d.css("max-width",e);b=e}b=i?a.options.width||j:b;$(this).css("width",b);c=$(this).outerHeight();$(this).css("height",c)}a.panelSize[l]=[b,c,h];h+=b});a.$el.css("width",h<a.options.maxOverallWidth?h:a.options.maxOverallWidth)};a.gotoPage=function(b,c){if(typeof b==="undefined"||b===null){b= a.options.startPage;a.setCurrentPage(a.options.startPage)}if(!a.checkVideo(a.playing)){a.$el.trigger("slide_init",a);$.isFunction(a.options.onSlideInit)&&a.options.onSlideInit(a);a.slideControls(true,false);if(b>a.pages+1)b=a.pages;if(b<0)b=1;if(c!==true)c=false;if(!c||a.options.stopAtEnd&&b==a.pages)a.startStop(false);a.$el.trigger("slide_begin",a);$.isFunction(a.options.onSlideBegin)&&a.options.onSlideBegin(a);a.options.resizeContents||a.$wrapper.filter(":not(:animated)").animate({width:a.panelSize[b][0], height:a.panelSize[b][1]},{queue:false,duration:a.options.animationTime,easing:a.options.easing});a.$window.filter(":not(:animated)").animate({scrollLeft:a.panelSize[b][2]},{queue:false,duration:a.options.animationTime,easing:a.options.easing,complete:function(){a.endAnimation(b)}})}};a.endAnimation=function(b){if(b===0){a.$window.scrollLeft(a.panelSize[a.pages][2]);b=a.pages}else if(b>a.pages){a.$window.scrollLeft(a.panelSize[1][2]);b=1}a.setCurrentPage(b,false);a.hovered||a.slideControls(false); if(a.hasEmb){b=a.$items.eq(a.currentPage).find("object[id*=ytvideo], embed[id*=ytvideo]");b.length&&$.isFunction(b[0].getPlayerState)&&b[0].getPlayerState()>0&&b[0].getPlayerState()!=5&&b[0].playVideo()}a.$el.trigger("slide_complete",a);$.isFunction(a.options.onSlideComplete)&&setTimeout(function(){a.options.onSlideComplete(a)},0)};a.setCurrentPage=function(b,c){if(a.options.buildNavigation){a.$nav.find(".cur").removeClass("cur");a.$nav.find("a").eq(b-1).addClass("cur")}if(!c){a.$wrapper.css({width:a.panelSize[b][0], height:a.panelSize[b][1]});a.$wrapper.scrollLeft(0);a.$window.scrollLeft(a.panelSize[b][2])}a.currentPage=b;if(!a.$wrapper.is(".activeSlider")){$(".activeSlider").removeClass("activeSlider");a.$wrapper.addClass("activeSlider")}};a.goForward=function(b){if(b!==true){b=false;a.startStop(false)}a.gotoPage(a.currentPage+1,b)};a.goBack=function(b){if(b!==true){b=false;a.startStop(false)}a.gotoPage(a.currentPage-1,b)};a.gotoHash=function(){var b=window.location.hash.match(/^#?panel(\d+)-(\d+)$/);if(b)if(parseInt(b[1], 10)==a.runTimes){b=parseInt(b[2],10);if(a.$items.filter(":eq("+b+")").length!==0){a.setCurrentPage(b,false);return true}}return false};a.setHash=function(b){if(typeof window.location.hash!=="undefined"){if(window.location.hash!==b)window.location.hash=b}else if(location.hash!==b)location.hash=b;return b};a.slideControls=function(b){var c=b?"slideDown":"slideUp",d=b?0:a.options.animationTime,e=b?a.options.animationTime:0;b=b?0:1;a.options.toggleControls&&a.$controls.stop(true,true).delay(d)[c](a.options.animationTime/ 2).delay(e);if(a.options.toggleArrows){if(!a.hovered&&a.playing)b=1;a.$forward.stop(true,true).delay(d).animate({right:b*a.$arrowWidth,opacity:e},a.options.animationTime/2);a.$back.stop(true,true).delay(d).animate({left:b*a.$arrowWidth,opacity:e},a.options.animationTime/2)}};a.clearTimer=function(b){if(a.timer){window.clearInterval(a.timer);if(!b){a.$el.trigger("slideshow_stop",a);$.isFunction(a.options.onShowStop)&&a.options.onShowStop(a)}}};a.startStop=function(b,c){if(b!==true)b=false;if(b&&!c){a.$el.trigger("slideshow_start", a);$.isFunction(a.options.onShowStart)&&a.options.onShowStart(a)}a.playing=b;if(a.options.autoPlay){a.$startStop.toggleClass("playing",b).html(b?a.options.stopText:a.options.startText);if(parseInt(a.$startStop.css("text-indent"),10)<0)a.$startStop.addClass(a.options.tooltipClass).attr("title",b?"Stop":"Start")}if(b){a.clearTimer(true);a.timer=window.setInterval(function(){a.checkVideo(b)||(a.options.playRtl?a.goBack(true):a.goForward(true))},a.options.delay)}else a.clearTimer()};a.checkVideo=function(b){var c, d,e=false;a.hasEmb&&a.$items.find("object[id*=ytvideo], embed[id*=ytvideo]").each(function(){c=$(this);if(c.length&&$.isFunction(c[0].getPlayerState)){d=c[0].getPlayerState();if(b&&(d==1||d>2)&&a.$items.index(c.closest("li.panel"))==a.currentPage&&a.options.resumeOnVideoEnd)e=true;else d>0&&c[0].pauseVideo()}});return e};a.init()};$.anythingSlider.defaults={width:null,height:null,resizeContents:true,tooltipClass:"tooltip",theme:"default",themeDirectory:"css/theme-{themeName}.css",startPanel:1,hashTags:true, buildArrows:true,toggleArrows:false,buildNavigation:true,toggleControls:false,navigationFormatter:null,forwardText:"&raquo;",backText:"&laquo;",autoPlay:true,startStopped:false,pauseOnHover:true,resumeOnVideoEnd:true,stopAtEnd:false,playRtl:false,startText:"Start",stopText:"Stop",delay:3E3,animationTime:600,easing:"swing",onShowStart:null,onShowStop:null,onShowPause:null,onShowUnpause:null,onSlideInit:null,onSlideBegin:null,onSlideComplete:null,clickArrows:"click",clickControls:"click focusin",clickSlideshow:"click", addWmodeToObject:"opaque",maxOverallWidth:32766};$.fn.anythingSlider=function(f){if((typeof f).match("object|undefined"))return this.each(function(){$(this).is(".anythingBase")||new $.anythingSlider(this,f)});else if(/\d/.test(f)&&!isNaN(f))return this.each(function(){var g=$(this).data("AnythingSlider");if(g){var a=typeof f=="number"?f:parseInt($.trim(f),10);a<1||a>g.pages||g.gotoPage(a)}})}})(jQuery);

// Hyjack Select v1.1.2 -- http://frontensemble.com/hyjack/
(function(a){var g=0;version="v1.1.2";hyjackable="select";a.hyjack_select={update:function(d){if(d){a(".hjsel_container").each(function(){if(a(this).data("hyjack.container")===a(d).data("hyjacked.index")){a(this).hide();return false}});a(d).data("is.hyjacked",false).hyjack_select()}else a.hyjack_select.update_all()},update_all:function(){a(".hjsel_container").hide();a(":input").filter(hyjackable).each(function(){a(this).data("is.hyjacked")&&a(this).data("is.hyjacked",false).hyjack_select()})},dispose:function(d){if(d){a(".hjsel_container").each(function(){if(a(this).data("hyjack.container")=== a(d).data("hyjacked.index")){a(this).hide();return false}});a(d).data("is.hyjacked",false).show()}else a.hyjack_select.dispose_All()},dispose_All:function(){a(".hjsel_container").each(function(){a(this).data("hyjack.container")&&a(this).hide()});a(":input").filter(hyjackable).each(function(){a(this).data("is.hyjacked",false).show()})}};a.fn.hyjack_select=function(d){function o(b,c){p(c);q(a(b),c);m(c);c.select.append(c.txtbox).append(c.ddCancel).append(c.ddImage);c.container.append(c.select).append(c.options); a(document).bind("click",function(e){if(a(e.target).data("hyjack.ddImage")===c.ddImage.data("hyjack.ddImage"))c.options.toggle();else if(a(e.target).data("hyjack.ddCancel")===c.ddCancel.data("hyjack.ddCancel"))n(c);else a(e.target).data("hyjack.txtbox")===c.txtbox.data("hyjack.txtbox")||a(e.target).parents().data("hyjack.container")===c.container.data("hyjack.container")?c.options.show():i(c);d.restrictSearch&&c.txtbox.val(h(a("option:selected",c.selector).text()));k(c)});a(window).load(function(){m(c)}); return c.container}function h(b){return a("<div/>").html(b).text()}function r(b){return a("<div/>").text(b).html()}function s(){switch(d.filter.toLowerCase()){case "first":a.expr[":"].hj_contains_first=function(b,c,e){return jQuery(b).text().toUpperCase().indexOf(e[3].toUpperCase())==0};break;case "words":a.expr[":"].hj_contains_words=function(b,c,e){b=jQuery(b).text().toUpperCase();c=e[3].toUpperCase();var f=c.split(/\s+/);if(f.length==1)return b.indexOf(c)>=0;for(c=0;e=f[c];c++)if(b.indexOf(e)< 0)return false;return true};break;default:d.filter="like";a.expr[":"].hj_contains_like=function(b,c,e){return jQuery(b).text().toUpperCase().indexOf(e[3].toUpperCase())>=0}}}function t(b,c){switch(c.keyCode){case 37:break;case 39:break;case 16:break;case 17:break;case 18:break;case 19:break;case 20:break;case 33:break;case 34:break;case 35:break;case 36:break;case 45:break;case 9:break;case 13:l(a(".hjsel_options_hover",b.options),b);k(b);i(b);b.selector.change();break;case 38:if(a(".hjsel_noitems", b.options).length)break;$dir=a(".hjsel_options_hover",b.options).prev();if(b.options.is(":visible"))for(;!$dir.is(":visible");)$dir=$dir.prev().attr("val")?$dir.prev():a("li",b.options).last();l($dir,b);break;case 40:if(a(".hjsel_noitems",b.options).length)break;$dir=a(".hjsel_options_hover",b.options).next();if(b.options.is(":visible"))for(;!$dir.is(":visible");)$dir=$dir.next().attr("val")?$dir.next():a("li",b.options).first();l($dir,b);break;case 27:i(b);break;default:var e=0,f=0;a("li",b.options).remove(".hjsel_noitems").removeClass("hjsel_options_hover").hide(); a("li:hj_contains_"+d.filter+'("'+b.txtbox.val()+'")',b.options).show();a("li",b.options).each(function(){a(this).is(":hidden")&&e++;f++});e==f&&b.options.append(a("<li/>").append(d.emptyMessage).addClass("hjsel_noitems"));b.options.scrollTop(0).show()}}function l(b,c){if(b!=null){c.txtbox.val(h(b.text()));c.selector.val(b.attr("val"))}a("li",c.options).each(function(e,f){a(f).removeClass("hjsel_options_hover");c.selector.val()==a(f).attr("val")&&a(f).addClass("hjsel_options_hover")})}function n(b){a(".hjsel_options").hide(); b.txtbox.val("").focus();b.options.show()}function k(b){a("li",b.options).show();a(".hjsel_noitems",b.options).remove()}function i(b){b.options.hide();b.txtbox.val()===""&&b.txtbox.val(h(a("option:selected",b.selector).text()))}function p(b){b.txtbox.bind("click",function(){n(b)}).bind("keydown",function(c){c.keyCode==9&&i(b)}).bind("keyup",function(c){t(b,c)}).val(h(a("option:selected",b.selector).text()))}function m(b){b.txtbox.width(b.selector.width()-(b.ddImage.attr("width")+b.ddCancel.attr("width")+ d.offset));b.options.width(b.selector.width());b.container.width(b.selector.width())}function q(b,c){var e=a("<ul/>");a("option",b).each(function(f,j){e.append(a("<li/>").attr("val",a(j).val()).append(r(a(j).text())).bind("mouseenter",function(){a("li",e).removeClass("hjsel_options_hover");a(this).addClass("hjsel_options_hover");c.txtbox.focus()}).bind("click",function(){a(this).addClass("hjsel_options_hover");c.txtbox.focus().val(h(a(j).text()));c.selector.val(a(j).val()).change();k(c)}))});c.options.append(e)} try{d=jQuery.extend({ddImage:"arrow_down.png",ddCancel:"cancel.png",ddImageClass:"hjsel_ddImage",ddCancelClass:"hjsel_ddCancel",emptyMessage:"No Items to Display",offset:15,filter:"like",restrictSearch:false},d);return this.filter(hyjackable).each(function(){if(!a(this).data("is.hyjacked"))if(a(this).attr("disabled"))a(this).show();else if(a("option",this).length){g++;s();a(this).attr("autocomplete","off").data("is.hyjacked",true).data("hyjacked.index",g);hj={selector:a(this),container:a("<div/>").data("hyjack.container", g).addClass("hjsel_container"),select:a("<div/>").data("hyjack.select",g).addClass("hjsel_select"),options:a("<div/>").data("hyjack.options",g).addClass("hjsel_options"),txtbox:a('<input type="text"/>').data("hyjack.txtbox",g).addClass("hjsel_txtbox"),ddImage:a("<img/>").data("hyjack.ddImage",g).addClass(d.ddImageClass).attr("src",d.ddImage),ddCancel:a("<img/>").data("hyjack.ddCancel",g).addClass(d.ddCancelClass).attr("src",d.ddCancel)};return a(this).hide().before(o(this,hj))}else a(this).show()})}catch(u){alert("Hyjack Select "+ version+" Error:\n"+u.description)}}})(jQuery);


// Main jQuery function
$(document).ready( function()
{
	$.cimcool = {
		imagePath	: $('#path').val() + '/landing-page-resources/images'
	};

	// Create image slider
	$('#image-slider').anythingSlider(
	{
		resizeContents		: false,
		buildArrows			: false,
		delay				: 5000,
		animationTime		: 1400,
		buildNavigation		: false,
		navigationFormatter	: function(index, panel) { return ''; }
	} );

	$("#slide-jump").click( function()
	{
		$('#image-slider').anythingSlider();
		return false;
	} );
	
	$('#image-slider li').css('display', 'block');
	
	
	// Illuminate map regions on hover
	$('.region-cover, .region-tab').hover
	(
		function(event)
		{
			var region, title;
			
			region = region = '#' + $(this).attr('id');
			
			if( region.indexOf('-cover') == -1 )
				region = region.replace('-tab', '-hover');
			else
			{
				region = region.replace('-cover', '-hover');
				region = region.substr(0, region.length - 2);
			}
				
			title = region.replace('-hover', '-title');
						
			$(region).show();
			$(title).show();
		},
		
		function(event)
		{
			var region, title;
			
			region = region = '#' + $(this).attr('id');
			
			if( region.indexOf('-cover') == -1 )
				region = region.replace('-tab', '-hover');
			else
			{
				region = region.replace('-cover', '-hover');
				region = region.substr(0, region.length - 2);
			}
				
			title = region.replace('-hover', '-title');
			
			$(region).hide();
			$(title).hide();
		}
	)
	
	
	// Show point titles on hover, highlight points
	$('.map-point').hover
	(
		function(event)
		{
			var title = '#' + $(this).attr('id').replace('-point', '-title');
			$(this).attr( 'src', $(this).attr('src').replace('-point.png', '-point-hover.png') );
			$(title).show();
		},
		
		function(event)
		{
			var title = '#' + $(this).attr('id').replace('-point', '-title');
			$(this).attr( 'src', $(this).attr('src').replace('-point-hover.png', '-point.png') );
			$(title).hide();
		}
	);
	
	
	// Transform standard <select> lists into more editable lists
	$('select.list').hyjack_select(
	{
		ddImage			: $.cimcool.imagePath + '/hyjack-select/arrow_down.png',
		ddCancel		: $.cimcool.imagePath + '/blank.png'
	} );
	
	
	// Track clicks
	$('a').click( trackClicks );
	$('#dropdown-list li select').change( trackClicks );
} );


// Saves basic info on clicks to the database, then redirects user to destination
function trackClicks( event )
{
	var url;
	var tag = $(this).context.tagName.toLowerCase();
	
	if( tag == 'a' )
		url = $(this).attr('href');
	else if( tag == 'select' )
		url = $(this).val();
	
	if( url )
	{
		$('body, #map, .region-tab, .region-cover').css('cursor', 'wait');
		
		$.post
		(
			$('#track-click-post-url').attr('value'),
			{
				action: 'track_landing_page_clicks',
				clicked_url: url,
				nonce: $('#track-click-nonce').attr('value')
			},
			function( response )
			{
				// We don't care what the response is, just redirect the user as soon as possible.
				window.location = url;
			}
		);
		
		event.preventDefault();	
	}
}
