$(function() {
	$underline = $('<img src="images/underline.png" />').css({display:'block', position:'absolute', bottom:"-30px", left:"-60px", zIndex: 1000}).hide();
	$('#navigation a').hover(
		function() {
			$underline.appendTo($(this)).css({bottom:"-30px", left:"-60px"}).animate({bottom:"-10px", left:"10px"}, {queue:false, duration:400, easing:"easeOutElastic"}).show();
		},
		function() {
			$underline.hide().css({bottom:"-30px", left:"-60px"});
		}
	);

	$('.container').addClear();
	
	$('#slideshow img:first').addClass('active');
	$("#slideshow img").not(".active").css("opacity","0");
	setInterval("slideshowNext()", 5000);
});


$(window).load(function() {
	$('#main').addBorder({
		 imagePrefix: 'images/outline3',
		 size: {width: 11, height: 11},
		 location: 'inside',
		 borderWidth: 2
	});
	$('.outline1').addBorder({location:'inside'});
	$('.outline2').addBorder({
		 imagePrefix: 'images/outline2',
		 size: {width: 11, height: 11},
		 location: 'inside'
	});
	$('#masthead ul').addBorder({
		 imagePrefix: 'images/outline4',
		 size: {width: 4, height: 4},
		 location: 'outside'
	});
});

$.fn.addClear = function() {
	$clear = $('<div></div>').appendTo(this);
	$clear.css('clear', 'both');
	return this;
}


function slideshowNext() {
	$active = $('#slideshow img.active');
	
	if ($active.length == 0) {
		$active = $('#slideshow img:last');
	}
	
	$next = $active.next().length ? $active.next() : $('#slideshow img:first');
	
	$active.addClass('last-active');
	
	$next.addClass('active')
		.animate({opacity: 1}, 1000, function() {
			$active.removeClass('active last-active');
			$active.css({opacity: 0});
	});
}


$.fn.addBorder = function(settings) {
	settings = $.extend({
		size:			{width : 13, height : 13},
		imagePrefix:	'images/outline1',
		imageType:		'png',
		location:		'outside',
		borderWidth:	0
	}, settings);
	if($(this).css('position') == 'static') {
		$(this).css('position', 'relative');
	}
	var $topLeft = $('<div class="jq-border jq-corner"></div>').appendTo(this);
	var $topRight = $('<div class="jq-border jq-corner"></div>').appendTo(this);
	var $bottomLeft = $('<div class="jq-border jq-corner"></div>').appendTo(this);
	var $bottomRight = $('<div class="jq-border jq-corner"></div>').appendTo(this);
	var $left = $('<div class="jq-border jq-side"></div>').appendTo(this);
	var $right = $('<div class="jq-border jq-side"></div>').appendTo(this);
	var $top = $('<div class="jq-border jq-side"></div>').appendTo(this);
	var $bottom = $('<div class="jq-border jq-side"></div>').appendTo(this);
	
	$(this).find('.jq-border').css({position: 'absolute'});
	
	$(this).find('.jq-corner').width(settings.size.width).height(settings.size.height);
	
	$topLeft.css({
		'background-image': 'url(' + settings.imagePrefix + '_top_left.' + settings.imageType + ')'
	});
	$topRight.css({
		'background-image': 'url(' + settings.imagePrefix + '_top_right.' + settings.imageType + ')'
	});
	$bottomLeft.css({
		'background-image': 'url(' + settings.imagePrefix + '_bottom_left.' + settings.imageType + ')'
	});
	$bottomRight.css({
		'background-image': 'url(' + settings.imagePrefix + '_bottom_right.' + settings.imageType + ')'
	});
	$left.width(settings.size.width).css({
		'background-image': 'url(' + settings.imagePrefix + '_left.' + settings.imageType + ')',
		'background-repeat': 'repeat-y'
	});
	$right.width(settings.size.width).css({
		'background-image': 'url(' + settings.imagePrefix + '_right.' + settings.imageType + ')',
		'background-repeat': 'repeat-y'
	});
	$top.height(settings.size.height).css({
		'background-image': 'url(' + settings.imagePrefix + '_top.' + settings.imageType + ')',
		'background-repeat': 'repeat-x'
	});
	$bottom.height(settings.size.height).css({
		'background-image': 'url(' + settings.imagePrefix + '_bottom.' + settings.imageType + ')',
		'background-repeat': 'repeat-x'
	});
	
	if(settings.location == 'outside') {
		$topLeft.css({
			top: settings.size.height * -1,
			left: settings.size.width * -1
		});
		$topRight.css({
			top: settings.size.height * -1,
			right: settings.size.width * -1
		});
		$bottomLeft.css({
			bottom: settings.size.height * -1,
			left: settings.size.width * -1
		});
		$bottomRight.css({
			bottom: settings.size.height * -1,
			right: settings.size.width * -1
		});
		$left.css({
			top: 0,
			bottom: 0,
			left: settings.size.width * -1
		});
		$right.css({
			top: 0,
			bottom: 0,
			right: settings.size.width * -1
		});
		$top.css({
			top: settings.size.height * -1,
			left: 0,
			right: 0
		});
		$bottom.css({
			bottom: settings.size.height * -1,
			left: 0,
			right: 0
		});
	}
	else if(settings.location == 'inside') {
		$topLeft.css({
			top: settings.borderWidth * -1,
			left: settings.borderWidth * -1
		});
		$topRight.css({
			top: settings.borderWidth * -1,
			right: settings.borderWidth * -1
		});
		$bottomLeft.css({
			bottom: settings.borderWidth * -1,
			left: settings.borderWidth * -1
		});
		$bottomRight.css({
			bottom: settings.borderWidth * -1,
			right: settings.borderWidth * -1
		});
		$left.css({
			top: settings.size.height - settings.borderWidth,
			bottom: settings.size.height - settings.borderWidth,
			left: settings.borderWidth * -1
		});
		$right.css({
			top: settings.size.height - settings.borderWidth,
			bottom: settings.size.height - settings.borderWidth,
			right: settings.borderWidth * -1
		});
		$top.css({
			top: settings.borderWidth * -1,
			left: settings.size.width - settings.borderWidth,
			right: settings.size.width - settings.borderWidth
		});
		$bottom.css({
			bottom: settings.borderWidth * -1,
			left: settings.size.width - settings.borderWidth,
			right: settings.size.width - settings.borderWidth
		});
	}
	return this;
}

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;
	}
});
