/*
@description Add tab JS for multiple pages tabs, using Ajax for loading each tab
@author VictoriaChan
@created 2009-02
Notes: Uses jQuery v. 1.1.4 + page_setup.js
*/

jQuery(function() {
	init();
});

function init(){
	var tab_links = jQuery('#tabbed-header ul.tabs li:not(.noajax)');

	if(tab_links.length){
		//init tab hover effect (function in page_setup.js)
		initSimpleRollovers(tab_links, 'active');
				
		//actions for tabs
		tab_links.click(function(eventObj){
			var this_anchor = jQuery(this).find('a');
			ajaxTabbedContentClicked(jQuery(this_anchor).attr('href'), this, tab_links, true);
			document.location.hash = jQuery(this_anchor).attr('class');
			
			eventObj.preventDefault();
		});
		
		//actions for inner section nav
		jQuery('#inner-section-nav a').click(ajaxTabbedInnerNavClicked);
		
		//which one to show first?
		var hash = document.location.hash;
		if(hash.length > 0){
			jQuery('#tabbed-header .tabs li a').each(function(){
				if('#' +jQuery(this).attr('class') == hash){
					jQuery(this).click();
				};
			});
		};
		
	}	
}
function ajaxTabbedInnerNavClicked(eventObj){
	var selected = jQuery(this).attr('href');
	jQuery('#inner-section-nav li a.selected').removeClass('selected');
	jQuery(this).addClass('selected');
	ajaxTabbedContentClicked(selected, jQuery('#tabbed-header ul.tabs li.currently-active'), jQuery('#tabbed-header ul.tabs li'), false);
	eventObj.preventDefault();
}
function ajaxTabbedContentClicked(selected, tab, tab_links, reload_nav){
	
	//load tab
	jQuery("#ajax-content-wrapper").fadeOut('fast', function(){
		jQuery("#ajax-content-wrapper").html('<p class="loading-notice">&nbsp;</p>');
		jQuery("#ajax-content-wrapper").fadeIn('slow', function(){
			//add to Google Analytics
			try{ pageTracker._trackPageview(selected); } 
				catch(err) { /*do nothing obvious if GA not set up*/ 
						jQuery('body').addClass('GA_Ajax_Problem'); }
			
			//fetch tab content
			if(jQuery(tab).hasClass('application')){
				jQuery("#ajax-content-wrapper").load(selected + "&isajax=1 #ajax_results", ajaxContentRefresh);
			}else{
				jQuery("#ajax-content-wrapper").load(selected + " #tab-content", ajaxContentRefresh);
			};
		});
	});
	
	//load inner-section-nav inner-section-nav-wrapper
	if(reload_nav == true){
		jQuery("#inner-section-nav-wrapper").slideUp('fast', function(){
			jQuery("#inner-section-nav-wrapper").html('');
			jQuery("#inner-section-nav-wrapper").load(selected + " #inner-section-nav", function(){
				if(jQuery("#inner-section-nav").length){
					jQuery("#inner-section-nav-wrapper").slideDown('slow');
					applySifr();
					jQuery('#inner-section-nav .inner-section-nav a').click(ajaxTabbedInnerNavClicked);
				};
			});
		});
	}

	
	//highlight tab
	tab_links.removeClass('currently-active');
	jQuery(tab).addClass('currently-active');
}

function knowledgeDatabaseAjaxTweaks(){
	/* KNOWLEDGE BASE SUBJECTS */
	$('#ajax-content-wrapper .knowledge_database_results .listing .subjects ul').hide();
	$('#ajax-content-wrapper .knowledge_database_results .listing .subjects > a').toggle(
		function(){
			$(this).parent().find('ul').show();
	},function(){
			$(this).parent().find('ul').hide();
	});
}

function ajaxContentRefresh(){	
	//reload swfobject and other onload functions
	knowledgeDatabaseAjaxTweaks();
	loadSWFMovInTab();
	loadSWFAudioInTab();
	initStandardTeasersRollover('#tab-content .hover-wrapper', 'hover-wrapper-hovered');
	loadSlideShowInTab();
	
	//need to reload sifr
	applySifr();
}
function loadSlideShowInTab(){
	if (jQuery('#tab-content .slideshow-wrapper').length){
		jQuery.getScript( "/javascript/jquery/jquery.scrollTo-1.4.0-min.js",  function(){	
			jQuery.getScript( "/javascript/jquery/jquery.serialScroll-1.2.1-min.js",  function(){
				jQuery.getScript( "/javascript/jquery/jquery.ifixpng.js",  function(){
					jQuery.getScript( "/javascript/slideshow.js");
				});
			});		
		});
	};
}

function correctTitle(containerId){
	var oldTitle = document.title // get the title before being bug
	try{
		// clean the title if needed
		if(oldTitle.indexOf('#')!=-1) oldTitle=oldTitle.substring(0,oldTitle.indexOf('#'));
		var iv = setInterval(function () {
			// Whenever its loaded just push in the old title again
			if ($('#'+containerId).readyState == 4) {
				clearInterval(iv)
				document.title = oldTitle;
			}
		}, 100)
	}
	catch(e){}	
}

function loadSWFMovInTab(){
	jQuery("#tab-content .swfobject-flvplayer").each(function(){
		var this_filename = jQuery(this).find("input[name='filename']").val();
		var this_duration = jQuery(this).find("input[name='duration']").val();
		var this_width = jQuery(this).find("input[name='width']").val();
		var this_height = jQuery(this).find("input[name='height']").val();
		var this_image = jQuery(this).find("input[name='image']").val();
		var this_container_id = jQuery(this).attr('id');
		
		correctTitle(this_container_id);
		
		var flashvars = {
			file: this_filename,
			skin: "/swf/jwplayer/skins/kf.swf",
			controlbar: "over",
			lightcolor: "AEBA33",
			backcolor:"333333",
			icons:"false",
			image: this_image,
			duration: this_duration
		};
		var params = {
			menu: "false",
			allowfullscreen: "true",
			allowscriptaccess: "always"
		};
		swfobject.embedSWF("/swf/jwplayer/player.swf", 
		this_container_id, this_width, this_height, "9.0.0", false, flashvars, params, false);
	});
}
function loadSWFAudioInTab(){	
	jQuery("#tab-content .swfobject-audioplayer").each(function(){
		var this_filename = jQuery(this).find("input[name='filename']").val();
		var this_duration = jQuery(this).find("input[name='duration']").val();
		var this_container_id = jQuery(this).attr('id');
		
		correctTitle(this_container_id);
		
		var flashvars = {
			file: this_filename,
			skin: "/swf/jwplayer/skins/kf_audio.swf",
			lightcolor: "AEBA33",
			backcolor:"333333",
			duration: this_duration
		};
		var params = {
			menu: "false",
			allowscriptaccess: "always"
		};
		swfobject.embedSWF("/swf/jwplayer/player.swf", 
		this_container_id, "250", "27", "9.0.0", false, flashvars, params, false);
	});
}