$(document).ready(function(){

/*
	CUFON
	400 = Book
	500 = Medium
	900 = Heavy
*/
	Cufon.replace('h2', {fontWeight:900});
	Cufon.replace('h3', {fontWeight:400});
	Cufon.replace('h4', {
		fontWeight:500
	});
	Cufon.replace('#navigation, p.flip', {
		fontWeight:900,
		hover:true
	});

/*
	MISC FIXES
*/
	$("a.current").css('textDecoration', 'none');
	$('div.post_box:nth-child(3n)').css("margin-right", "0").append('<p style="color:#000">-</p>');

/*
	Custom panel functions (for Contact Button slider)
*/
	var plusMinus = function(){
        if ($(".cpanel").is(":visible")) {
            $(".flip img").attr("src","http://www.audio-agent.com/wp-content/themes/audioAgent/images/contactCollapse.png")
        }
        else {
            $(".flip img").attr("src","http://www.audio-agent.com/wp-content/themes/audioAgent/images/contactExpand.png")
        }}
	
	var closePanel = function(){
    	if ($(".cpanel").is(":visible")) {
    	    $(".cpanel").slideToggle("medium",plusMinus)
    	}}

/*
	Contact Button slider
*/	
	$(".flip").click(function(){
	    $(".cpanel").slideToggle("medium",plusMinus);
	});
	
/*
	Slider - Coda Slider plugin
*/

	/*
		jQuery Coda-Slider v2.0 - http://www.ndoherty.biz/coda-slider
		Copyright (c) 2009 Niall Doherty
		This plugin available for use in all personal or commercial projects under both MIT and GPL licenses.
	*/

	var sliderCount = 1;

	$.fn.codaSlider = function(settings) {

		settings = $.extend({
			autoHeight: true,
			autoHeightEaseDuration: 1000,
			autoHeightEaseFunction: "easeInOutExpo",
			autoSlide: false,
			autoSlideInterval: 7000,
			autoSlideStopWhenClicked: true,
			crossLinking: true,
			dynamicArrows: true,
			dynamicArrowLeftText: "&#171; left",
			dynamicArrowRightText: "right &#187;",
			dynamicTabs: true,
			dynamicTabsAlign: "center",
			dynamicTabsPosition: "top",
			externalTriggerSelector: "a.xtrig",
			firstPanelToLoad: 1,
			panelTitleSelector: "h2.title",
			slideEaseDuration: 1000,
			slideEaseFunction: "easeInOutExpo"
		}, settings);

		return this.each(function(){

			// Uncomment the line below to test your preloader
			// alert("Testing preloader");

			var slider = $(this);

			// If we need arrows
			if (settings.dynamicArrows) {
				slider.parent().addClass("arrows");
				slider.before('<div class="coda-nav-left" id="coda-nav-left-' + sliderCount + '"><a href="#">' + settings.dynamicArrowLeftText + '</a></div>');
				slider.after('<div class="coda-nav-right" id="coda-nav-right-' + sliderCount + '"><a href="#">' + settings.dynamicArrowRightText + '</a></div>');
			};

			var panelWidth = slider.find(".panel").width();
			var panelCount = slider.find(".panel").size();
			var panelContainerWidth = panelWidth*panelCount;
			var navClicks = 0; // Used if autoSlideStopWhenClicked = true

			// Surround the collection of panel divs with a container div (wide enough for all panels to be lined up end-to-end)
			$('.panel', slider).wrapAll('<div class="panel-container"></div>');
			// Specify the width of the container div (wide enough for all panels to be lined up end-to-end)
			$(".panel-container", slider).css({ width: panelContainerWidth });

			// Specify the current panel.
			// If the loaded URL has a hash (cross-linking), we're going to use that hash to give the slider a specific starting position...
			if (settings.crossLinking && location.hash && parseInt(location.hash.slice(1)) <= panelCount) {
				var currentPanel = parseInt(location.hash.slice(1));
				var offset = - (panelWidth*(currentPanel - 1));
				$('.panel-container', slider).css({ marginLeft: offset });
			// If that's not the case, check to see if we're supposed to load a panel other than Panel 1 initially...
			} else if (settings.firstPanelToLoad != 1 && settings.firstPanelToLoad <= panelCount) { 
				var currentPanel = settings.firstPanelToLoad;
				var offset = - (panelWidth*(currentPanel - 1));
				$('.panel-container', slider).css({ marginLeft: offset });
			// Otherwise, we'll just set the current panel to 1...
			} else { 
				var currentPanel = 1;
			};

			// Left arrow click
			$("#coda-nav-left-" + sliderCount + " a").click(function(){
				navClicks++;
				if (currentPanel == 1) {
					offset = - (panelWidth*(panelCount - 1));
					alterPanelHeight(panelCount - 1);
					currentPanel = panelCount;
					slider.siblings('.coda-nav').find('a.current').removeClass('current').parents('ul').find('li:last a').addClass('current');
				} else {
					currentPanel -= 1;
					alterPanelHeight(currentPanel - 1);
					offset = - (panelWidth*(currentPanel - 1));
					slider.siblings('.coda-nav').find('a.current').removeClass('current').parent().prev().find('a').addClass('current');
				};
				$('.panel-container', slider).animate({ marginLeft: offset }, settings.slideEaseDuration, settings.slideEaseFunction);
				if (settings.crossLinking) { location.hash = currentPanel }; // Change the URL hash (cross-linking)
				return false;
			});

			// Right arrow click
			$('#coda-nav-right-' + sliderCount + ' a').click(function(){
				navClicks++;
				if (currentPanel == panelCount) {
					offset = 0;
					currentPanel = 1;
					alterPanelHeight(0);
					slider.siblings('.coda-nav').find('a.current').removeClass('current').parents('ul').find('a:eq(0)').addClass('current');
				} else {
					offset = - (panelWidth*currentPanel);
					alterPanelHeight(currentPanel);
					currentPanel += 1;
					slider.siblings('.coda-nav').find('a.current').removeClass('current').parent().next().find('a').addClass('current');
				};
				$('.panel-container', slider).animate({ marginLeft: offset }, settings.slideEaseDuration, settings.slideEaseFunction);
				if (settings.crossLinking) { location.hash = currentPanel }; // Change the URL hash (cross-linking)
				return false;
			});

			// If we need a dynamic menu
			if (settings.dynamicTabs) {
				var dynamicTabs = '<div class="coda-nav" id="coda-nav-' + sliderCount + '"><ul></ul></div>';
				switch (settings.dynamicTabsPosition) {
					case "bottom":
						slider.parent().append(dynamicTabs);
						break;
					default:
						slider.parent().prepend(dynamicTabs);
						break;
				};
				ul = $('#coda-nav-' + sliderCount + ' ul');
				// Create the nav items
				$('.panel', slider).each(function(n) {
					ul.append('<li class="tab' + (n+1) + '"><a href="#' + (n+1) + '">' + $(this).find(settings.panelTitleSelector).text() + '</a></li>');												
				});
				navContainerWidth = slider.width() + slider.siblings('.coda-nav-left').width() + slider.siblings('.coda-nav-right').width();
				ul.parent().css({ width: navContainerWidth });
				switch (settings.dynamicTabsAlign) {
					case "center":
						ul.css({ width: ($("li", ul).width() + 2) * panelCount });
						break;
					case "right":
						ul.css({ float: 'right' });
						break;
				};
			};

			// If we need a tabbed nav
			$('#coda-nav-' + sliderCount + ' a').each(function(z) {
				// What happens when a nav link is clicked
				$(this).bind("click", function() {
					navClicks++;
					$(this).addClass('current').parents('ul').find('a').not($(this)).removeClass('current');
					offset = - (panelWidth*z);
					alterPanelHeight(z);
					currentPanel = z + 1;
					$('.panel-container', slider).animate({ marginLeft: offset }, settings.slideEaseDuration, settings.slideEaseFunction);
					if (!settings.crossLinking) { return false }; // Don't change the URL hash unless cross-linking is specified
				});
			});

			// External triggers (anywhere on the page)
			$(settings.externalTriggerSelector).each(function() {
				// Make sure this only affects the targeted slider
				if (sliderCount == parseInt($(this).attr("rel").slice(12))) {
					$(this).bind("click", function() {
						navClicks++;
						targetPanel = parseInt($(this).attr("href").slice(1));
						offset = - (panelWidth*(targetPanel - 1));
						alterPanelHeight(targetPanel - 1);
						currentPanel = targetPanel;
						// Switch the current tab:
						slider.siblings('.coda-nav').find('a').removeClass('current').parents('ul').find('li:eq(' + (targetPanel - 1) + ') a').addClass('current');
						// Slide
						$('.panel-container', slider).animate({ marginLeft: offset }, settings.slideEaseDuration, settings.slideEaseFunction);
						if (!settings.crossLinking) { return false }; // Don't change the URL hash unless cross-linking is specified
					});
				};
			});

			// Specify which tab is initially set to "current". Depends on if the loaded URL had a hash or not (cross-linking).
			if (settings.crossLinking && location.hash && parseInt(location.hash.slice(1)) <= panelCount) {
				$("#coda-nav-" + sliderCount + " a:eq(" + (location.hash.slice(1) - 1) + ")").addClass("current");
			// If there's no cross-linking, check to see if we're supposed to load a panel other than Panel 1 initially...
			} else if (settings.firstPanelToLoad != 1 && settings.firstPanelToLoad <= panelCount) {
				$("#coda-nav-" + sliderCount + " a:eq(" + (settings.firstPanelToLoad - 1) + ")").addClass("current");
			// Otherwise we must be loading Panel 1, so make the first tab the current one.
			} else {
				$("#coda-nav-" + sliderCount + " a:eq(0)").addClass("current");
			};

			// Set the height of the first panel
			if (settings.autoHeight) {
				panelHeight = $('.panel:eq(' + (currentPanel - 1) + ')', slider).height();
				slider.css({ height: panelHeight });
			};

			// Trigger autoSlide
			if (settings.autoSlide) {
				slider.ready(function() {
					setTimeout(autoSlide,settings.autoSlideInterval);
				});
			};

			function alterPanelHeight(x) {
				if (settings.autoHeight) {
					panelHeight = $('.panel:eq(' + x + ')', slider).height()
					slider.animate({ height: panelHeight }, settings.autoHeightEaseDuration, settings.autoHeightEaseFunction);
				};
			};

			function autoSlide() {
				if (navClicks == 0 || !settings.autoSlideStopWhenClicked) {
					if (currentPanel == panelCount) {
						var offset = 0;
						currentPanel = 1;
					} else {
						var offset = - (panelWidth*currentPanel);
						currentPanel += 1;
					};
					alterPanelHeight(currentPanel - 1);
					// Switch the current tab:
					slider.siblings('.coda-nav').find('a').removeClass('current').parents('ul').find('li:eq(' + (currentPanel - 1) + ') a').addClass('current');
					// Slide:
					$('.panel-container', slider).animate({ marginLeft: offset }, settings.slideEaseDuration, settings.slideEaseFunction);
					setTimeout(autoSlide,settings.autoSlideInterval);
				};
			};

			sliderCount++;

		});
	};
	
	/*
	 * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/
	 *
	 * Uses the built in easing capabilities added In jQuery 1.1
	 * to offer multiple easing options
	 *
	 * TERMS OF USE - jQuery Easing
	 * 
	 * Open source under the BSD License. 
	 * 
	 * Copyright © 2008 George McGinley Smith
	 * All rights reserved.
	 * 
	 * Redistribution and use in source and binary forms, with or without modification, 
	 * are permitted provided that the following conditions are met:
	 * 
	 * Redistributions of source code must retain the above copyright notice, this list of 
	 * conditions and the following disclaimer.
	 * Redistributions in binary form must reproduce the above copyright notice, this list 
	 * of conditions and the following disclaimer in the documentation and/or other materials 
	 * provided with the distribution.
	 * 
	 * Neither the name of the author nor the names of contributors may be used to endorse 
	 * or promote products derived from this software without specific prior written permission.
	 * 
	 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
	 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
	 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
	 *  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
	 *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
	 *  GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 
	 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
	 *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 
	 * OF THE POSSIBILITY OF SUCH DAMAGE. 
	 *
	*/

	// t: current time, b: begInnIng value, c: change In value, d: duration
	jQuery.easing['jswing'] = jQuery.easing['swing'];

	jQuery.extend( jQuery.easing,
	{
		def: 'easeOutQuad',
		swing: function (x, t, b, c, d) {
			//alert(jQuery.easing.default);
			return jQuery.easing[jQuery.easing.def](x, t, b, c, d);
		},
		easeInQuad: function (x, t, b, c, d) {
			return c*(t/=d)*t + b;
		},
		easeOutQuad: function (x, t, b, c, d) {
			return -c *(t/=d)*(t-2) + b;
		},
		easeInOutQuad: function (x, t, b, c, d) {
			if ((t/=d/2) < 1) return c/2*t*t + b;
			return -c/2 * ((--t)*(t-2) - 1) + b;
		},
		easeInCubic: function (x, t, b, c, d) {
			return c*(t/=d)*t*t + b;
		},
		easeOutCubic: function (x, t, b, c, d) {
			return c*((t=t/d-1)*t*t + 1) + b;
		},
		easeInOutCubic: function (x, t, b, c, d) {
			if ((t/=d/2) < 1) return c/2*t*t*t + b;
			return c/2*((t-=2)*t*t + 2) + b;
		},
		easeInQuart: function (x, t, b, c, d) {
			return c*(t/=d)*t*t*t + b;
		},
		easeOutQuart: function (x, t, b, c, d) {
			return -c * ((t=t/d-1)*t*t*t - 1) + b;
		},
		easeInOutQuart: function (x, t, b, c, d) {
			if ((t/=d/2) < 1) return c/2*t*t*t*t + b;
			return -c/2 * ((t-=2)*t*t*t - 2) + b;
		},
		easeInQuint: function (x, t, b, c, d) {
			return c*(t/=d)*t*t*t*t + b;
		},
		easeOutQuint: function (x, t, b, c, d) {
			return c*((t=t/d-1)*t*t*t*t + 1) + b;
		},
		easeInOutQuint: function (x, t, b, c, d) {
			if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;
			return c/2*((t-=2)*t*t*t*t + 2) + b;
		},
		easeInSine: function (x, t, b, c, d) {
			return -c * Math.cos(t/d * (Math.PI/2)) + c + b;
		},
		easeOutSine: function (x, t, b, c, d) {
			return c * Math.sin(t/d * (Math.PI/2)) + b;
		},
		easeInOutSine: function (x, t, b, c, d) {
			return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;
		},
		easeInExpo: function (x, t, b, c, d) {
			return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;
		},
		easeOutExpo: function (x, t, b, c, d) {
			return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;
		},
		easeInOutExpo: function (x, t, b, c, d) {
			if (t==0) return b;
			if (t==d) return b+c;
			if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;
			return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;
		},
		easeInCirc: function (x, t, b, c, d) {
			return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b;
		},
		easeOutCirc: function (x, t, b, c, d) {
			return c * Math.sqrt(1 - (t=t/d-1)*t) + b;
		},
		easeInOutCirc: function (x, t, b, c, d) {
			if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b;
			return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b;
		},
		easeInElastic: function (x, t, b, c, d) {
			var s=1.70158;var p=0;var a=c;
			if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;
			if (a < Math.abs(c)) { a=c; var s=p/4; }
			else var s = p/(2*Math.PI) * Math.asin (c/a);
			return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
		},
		easeOutElastic: function (x, t, b, c, d) {
			var s=1.70158;var p=0;var a=c;
			if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;
			if (a < Math.abs(c)) { a=c; var s=p/4; }
			else var s = p/(2*Math.PI) * Math.asin (c/a);
			return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
		},
		easeInOutElastic: function (x, t, b, c, d) {
			var s=1.70158;var p=0;var a=c;
			if (t==0) return b;  if ((t/=d/2)==2) return b+c;  if (!p) p=d*(.3*1.5);
			if (a < Math.abs(c)) { a=c; var s=p/4; }
			else var s = p/(2*Math.PI) * Math.asin (c/a);
			if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
			return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;
		},
		easeInBack: function (x, t, b, c, d, s) {
			if (s == undefined) s = 1.70158;
			return c*(t/=d)*t*((s+1)*t - s) + b;
		},
		easeOutBack: function (x, t, b, c, d, s) {
			if (s == undefined) s = 1.70158;
			return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
		},
		easeInOutBack: function (x, t, b, c, d, s) {
			if (s == undefined) s = 1.70158; 
			if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;
			return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;
		},
		easeInBounce: function (x, t, b, c, d) {
			return c - jQuery.easing.easeOutBounce (x, d-t, 0, c, d) + b;
		},
		easeOutBounce: function (x, t, b, c, d) {
			if ((t/=d) < (1/2.75)) {
				return c*(7.5625*t*t) + b;
			} else if (t < (2/2.75)) {
				return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;
			} else if (t < (2.5/2.75)) {
				return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;
			} else {
				return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;
			}
		},
		easeInOutBounce: function (x, t, b, c, d) {
			if (t < d/2) return jQuery.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b;
			return jQuery.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b;
		}
	});

	/*
	 *
	 * TERMS OF USE - EASING EQUATIONS
	 * 
	 * Open source under the BSD License. 
	 * 
	 * Copyright © 2001 Robert Penner
	 * All rights reserved.
	 * 
	 * Redistribution and use in source and binary forms, with or without modification, 
	 * are permitted provided that the following conditions are met:
	 * 
	 * Redistributions of source code must retain the above copyright notice, this list of 
	 * conditions and the following disclaimer.
	 * Redistributions in binary form must reproduce the above copyright notice, this list 
	 * of conditions and the following disclaimer in the documentation and/or other materials 
	 * provided with the distribution.
	 * 
	 * Neither the name of the author nor the names of contributors may be used to endorse 
	 * or promote products derived from this software without specific prior written permission.
	 * 
	 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
	 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
	 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
	 *  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
	 *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
	 *  GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 
	 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
	 *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 
	 * OF THE POSSIBILITY OF SUCH DAMAGE. 
	 *
	 */

});

