$(document).ready(function(){

	// Navigation - Search input focus
	$('input#search-term.textbox').toggleInput({toggleTerm:'Search for...'});
	
	// Toggle input text on focus/blur
	$('#keyword-search input, #press-release-search input').toggleInput({toggleTerm:'Keyword'});


	// Training and Events Table toggle
	$('#training-and-events-tab a').click(function(){

		$('#training-and-events-list table').hide();
		$('#training-and-events-tab a').removeClass('active');
		$(this.hash).show();
		$(this).addClass('active');
		return false;
	});


	// Training and Events row hover (IE)
	$('table.column-grid tr.row').hover(function(){ $(this).addClass('hover'); },function(){ $(this).removeClass('hover'); });


	// Homepage sliding header
	if($('#slider').length > 0) $('#slider').slider();


	// Generic collapsible content
	$('.ui-collapsible-content').collapsible();
	
	
	// Controls all tabbed content
	$('.ui-tabs').tabs({tabContentClass:'.ui-tabs-content'});


	// In-page scrolling
	if($.scrollTo) {

		$('a.in-page').click(function(){

			if(this.hash != '') $.scrollTo(this.hash, 400);
			return false;
		});
	}
});

(function($) {
		  
	$.fn.toggleInput = function(options) {
		
		return this.each(function(){
		
			$(this).focus(function(){
				
				if($(this).val() == options.toggleTerm) {
				
					$(this).addClass('focus').val('');
				}
			}).blur(function(){
				
				if($(this).val() == '') {
					
					$(this).removeClass('focus').val(options.toggleTerm);
				}
			});
		});
	};

	$.fn.tabs = function(options){
		
		var $tabContents = $(options.tabContentClass).hide();
		
		return this.each(function(){

			var $tabs = $('a', $(this));
			
			$tabs.each(function(){
				
				var $content = $($(this).attr('href'));
				
				if($content.length > 0) {
				
					if($(this).hasClass('active') && $content.is(':hidden')) {
						
						$content.show();
					};
					
					$(this).click(function(){
	
						$tabs.removeClass('active');
						$(this).addClass('active');
						$tabContents.hide();
						$content.show();
						
						return false;
					});
				}
			});
		});
	};

	$.fn.collapsible = function(){

		return this.each(function(i){

			var $content = $(this),
				$parent = $(this).parent(),
				$container = $(this).parents('.ui-collapsible-container'),
				$trigger = $('a:first', $container),
				urlHash = window.location.hash,
				h = $content.height();

			$content.css({height: h+'px', display:'none'});

			if($parent.hasClass('ui-collapsible-active') || (urlHash.length > 1 && $(urlHash).length > 0 && $container.attr('id') == urlHash.substring(1))) {

				$content.slideDown(200);

				if(!$parent.hasClass('ui-collapsible-active')) $parent.toggleClass('ui-collapsible-active');
			};

			$trigger.click(function(){

				$content.slideToggle(200);
				$parent.toggleClass('ui-collapsible-active');

				return false;
			});
		});
	};

	$.fn.slider = function(){
		
		var Automation 	= 0,
			$container 	= $(this), $header = $('#header-theme'), $imageContainer = $('#slider-image-container'),
			$navItems	= $('<ul></ul>').attr('id','slider-nav').addClass('slider-1').appendTo($container),
			$images 	= $('#slider-images').css('width', 922*SLIDER_COUNT).empty();

		// Build nav items
		for(var i=1;i<=SLIDER_COUNT;i++) {

			var $navItem = $('<a></a>').attr('href', '#image'+i).text(i).click(function(){
				
					var target = this.hash;
					clearInterval(Automation);
					nextSlide(target);
					return false;
				}),
				
				$listItem = $('<li></li>').append($navItem).appendTo($navItems);
			
			if(i==1) {
				
				$navItem.addClass('active');
			}
		};
		
		$('a', $navItems).each(function(i){
			
			var i = i+1,
				file = SLIDER_PATH + i +'.jpg',
				$image = $('<img>').attr({src: file, width: 922, height: 320, alt: '', id: 'image'+i}).appendTo($images);
		});

		Automation = setInterval(function(){ automateSlider(); }, 7000);
		
		function automateSlider(){

			var active = parseInt($('a.active', $navItems).text()),
				next = (active < 6) ? parseInt(active+1) : 1;

			if($('a[href="#image'+next+'"]', $navItems).length) {

				if(next==1) {
					nextSlide('#image'+next, true);
				} else {
					nextSlide('#image'+next);
				}
			}
		};

		function nextSlide(hash, isFirst){

			$navItems.fadeOut(200);
			$header.fadeOut(200);

			if(typeof isFirst != 'undefined') {
				
				$imageContainer.stop().fadeOut(500, function(){
					$(this).css('visibility','hidden').show().scrollTo(hash, 100, {
						axis:'x',
						onAfter: function(){ $(this).css('visibility','visible').hide().fadeIn(500); setNavItem(hash); }
					});
				});
			} else {

				$imageContainer.stop().scrollTo(hash, 1000, {
					axis:'x',
					onAfter: function(){ setNavItem(hash); }
				});
			}
		};

		function setNavItem(target){
				
			var i = target.substring(6);
			
			$('a', $navItems).each(function(){
			
				if($(this).attr('href') == target) {
					
					if(!$(this).hasClass('active')) $(this).addClass('active');
				} else {
					
					if($(this).hasClass('active')) $(this).removeClass('active');
				}
			});
			
			$navItems.attr('class', 'slider-'+i).fadeIn();
			$header.css('background-image', 'url('+SLIDER_PATH + 'header-'+i+'.gif)').fadeIn();
		}
	};
	
})(jQuery);