////////////////////////////////////////////
// This is the audio control javascript file
// it relies on 2 main COOKIE variables:
//        'language'	- Page / Audio language - Either EN or FR
//        'audio'		- Audio autoplay / ment play - true or false
//	audio interface events, are stored in the loadAudioCues() function
//  the audioCues array in this function is an array of (startTime,stopTime,targetID);

var player = null;
var activeAnimations=new Array();	
var activeFlips=new Array();
var activeBackground=true;
var pausedBackground=false;
var audioCues= new Array();
var langPath='/French_AudioFiles/f';
var langPath='/English_AudioFiles/e';
var pageHolder='';
var playerWidth='800';	
var audioFile='';


function createPlayer(backgroundAudio) {
	//////////////////////////////////////////////////
	// This function is called after the body is loaded
	// It loads the background audio, and the top-navigation audio
	// It decides based on the users 'audio' cookie, if it should autostart
	// It also updates the Audio Control Text, with the appropriate text

	language = bc.lang.toUpperCase();
			
	var audioTest=Get_Cookie('audio');	
	if(audioTest=='true'){
	
		if(language == "EN") document.getElementById('audio').innerHTML='Audio Off';
		else document.getElementById('audio').innerHTML='Son désactivé';
		
	}else{
	
		if(language == "EN") document.getElementById('audio').innerHTML='Audio On';
		else  document.getElementById('audio').innerHTML='Son activé';
	}

	//var language = Get_Cookie('language');

	//if(language == '' || language == null){
	

		
	//}
		
	
	if(language=='EN'){	
		if(document.getElementById('lang')){document.getElementById('lang').innerHTML='Français';}
		langPath='/English_AudioFiles/e';
	}else{	
		if(document.getElementById('lang')){document.getElementById('lang').innerHTML='English';}
		langPath='/French_AudioFiles/f';
	}
	loadAudioCues(backgroundAudio);
	pageHolder=backgroundAudio;
	var audioTest=Get_Cookie('audio');		
	var flashvars = {file:langPath+audioFile,autostart:audioTest,displayClick:"none",icons:"false",frontcolor:'333333'} 
	var params = {allowfullscreen:"false", allowscriptaccess:"always",wmode:"transparent"} 
	var attributes = {id:"mp1",  name:"mp1"} 
	swfobject.embedSWF("/player/player-viral.swf", "placeholder1", "500", "24", "9.0.115", false, flashvars, params, attributes);
	var flashvars = {file:langPath+"5.mp3",autostart:"false",displayClick:"none",icons:"false",frontcolor:'333333',controlbar:"none"} 
	var params = {allowfullscreen:"false", allowscriptaccess:"always",wmode:"transparent"} 
	var attributes = {id:"mp2",  name:"mp2"} 
	swfobject.embedSWF("/player/player.swf", "placeholder2", "1", "1", "9.0.115", false, flashvars, params, attributes);	
}

function loadFAQplayers(){
	// This function loads the FAQ sound bars
	// The french / english files have different offsets
	// It determines if english / french, and loads the appropiate files (based on the offset)
	var i=0;
	//var language=Get_Cookie('language');

	//if(language=='') 
	
	language = bc.lang.toUpperCase();
	
	if(language=='EN'){	var fileStart=19;}
		else{var fileStart=20;}
	for (i=0;i<=6;i++){
		var thisFile=(fileStart+i)-1;
		var flashvars = {file:langPath+thisFile+".mp3",autostart:false,displayClick:"none",icons:"false",frontcolor:'333333'} 
		var params = {allowfullscreen:"false", allowscriptaccess:"always",wmode:"transparent"} 
		var attributes = {id:"faqPlayer"+i,  name:"faqPlayer"+i} 
		swfobject.embedSWF("/player/player-viral.swf", "faq"+i, 600, "24", "9.0.115", false, flashvars, params, attributes);	
	}	
}

function loadHomepagePlayer(){
		var flashvars = {file:langPath+"welcome.mp3",autostart:true,displayClick:"none",icons:"false",frontcolor:'333333'} 
		var params = {allowfullscreen:"false", allowscriptaccess:"always",wmode:"transparent"} 
		var attributes = {id:"homepagePlayer1",  name:"homepagePlayer1"} 
		swfobject.embedSWF("/player/player-viral.swf", "homepagePlayer", 370, "24", "9.0.115", false, flashvars, params, attributes);	
}
function loadAudioCues(backgroundAudio){
	// This function loads all the audio for background / menu navigation
	// Since french and english have different file structure, it is seperated VIA language
	//var language=Get_Cookie('language');

	//if(language=='') 
	
	language = bc.lang.toUpperCase();
	
	if(language=='EN'){	
		// ENGLISH SETUP HERE
			audioCues= new Array(
			new Array(4,9,'main-access-button'),
			new Array(20,26,'no-login'),
			new Array(27,34,'home1'),
			new Array(36,40,'home2'),	
			new Array(43,49,'home3')						
		);
		if(backgroundAudio=='homepage'){
			audioFile='homepage.mp3';	
			loadHomepagePlayer();
		}else if(backgroundAudio=='about'){	
			audioFile='12.mp3';	
			playerWidth='500';	
		}else if(backgroundAudio=='courses'){	
			audioFile='courses.mp3';	
			playerWidth='500';	
		}else if(backgroundAudio=='organizations'){	
			audioFile='17.mp3';	
			playerWidth='500';		
		}else if(backgroundAudio=='faq'){	
			audioFile='18.mp3';	
			playerWidth='500';	
			loadFAQplayers();
		}else if(backgroundAudio=='contact'){	
			audioFile='25.mp3';	
			playerWidth='500';		
		}
	}else{		
		// FRENCH SETUP HERE
		audioCues= new Array(
			new Array(4,9,'main-access-button'),
			new Array(20,26,'no-login'),
			new Array(27,34,'home1'),
			new Array(36,40,'home2'),	
			new Array(43,49,'home3')						
		);
		if(backgroundAudio=='homepage'){
			audioFile='homepage.mp3';		
			loadHomepagePlayer();
		}else if(backgroundAudio=='about'){	
			audioFile='13.mp3';	
			playerWidth='500';	
		}else if(backgroundAudio=='courses'){	
			audioFile='courses.mp3';	
			playerWidth='500';	
		}else if(backgroundAudio=='organizations'){	
			audioFile='18.mp3';	
			playerWidth='500';		
		}else if(backgroundAudio=='faq'){	
			audioFile='19.mp3';	
			playerWidth='500';	
			loadFAQplayers();
		}else if(backgroundAudio=='contact'){	
			audioFile='26.mp3';	
			playerWidth='500';		
		}
	}	
}

function chooseLanguage(chosenLanguage){

	//language=Get_Cookie('language');
	//if(language=='') 
	//language = opcmf.lang.toUpperCase();
		
	// set the cookie either way....
	Set_Cookie('language', chosenLanguage);		
				
			
	//if(language!=chosenLanguage){
	   // set the cookie and reload the french side
	   document.location = "/" + chosenLanguage.toLowerCase() + "/";
		
	//}
		
	//document.getElementById("overlay-content").style.display='none';
	
}

function playAudioNav(navVariable){
	//////////////////////////////////////////////////
	// This function is called on mouseover of a nav element, that needs an audio cue
	// It decides based on the users 'audio' cookie, if it should play anything
	// It loads the appropiate mp3 into the player
	// It checks to see if the background audio is playing, and if it is, it pauses it.
	// It sends the cue to play the audio, 100ms after its loaded, to ensure it is loaded.
	
	var audioTest=Get_Cookie('audio');	
	
	
	
	if(audioTest=='true'){		
	
		
		
		var playAudio=true;
		player=document.getElementById('mp2');
		backgroundPlayer=document.getElementById('mp1');
		switch(navVariable){
			case 'about':
				var obj = {file:langPath+"8.mp3", type:'sound',  title:"my song"};
			break;
			case 'courses':
				var obj = {file:langPath+"7.mp3", type:'sound',  title:"my song"};
			break;
			case 'organizations':
				var obj = {file:langPath+"9.mp3", type:'sound',  title:"my song"};
			break;
			case 'faq':
				var obj = {file:langPath+"10.mp3", type:'sound',  title:"my song"};
			break;
			case 'contact':
				var obj = {file:langPath+"11.mp3", type:'sound',  title:"my song"};
			break;		
			default: 
			 playAudio='false';
		}
		
		if(playAudio){
		

			
			if(activeBackground=='PLAYING'){		
				backgroundPlayer.sendEvent("PLAY","false");
				pausedBackground='true'; 		
			}else{
				pausedBackground='false';
			}			
			player.sendEvent("LOAD",obj );
			setTimeout("startPlayer()",100);				
		}
	}
}

function startPlayer(){
	/////////////////////////////////

	// This function sends a play event to the nav audio player
	// It is in its own function, so that it can be called via setTimeout
	player=document.getElementById('mp2');
	player.sendEvent("PLAY","true"); 	
}

function pausePlayer(id){
	/////////////////////////////////
	// This function sends a pause event to the nav audio player
	// It is in its own function, so that it can be called via setTimeout
	player=document.getElementById(id);
	player.sendEvent("PLAY","false");
}


function playerReady(thePlayer) {
	/////////////////////////////////////
	// This function is called when a player is loaded	 
	player = document.getElementById(thePlayer.id);		
	if(thePlayer.id=='mp1'){
		player.addModelListener("TIME", "positionListener");
		player.addModelListener("STATE", "stateListener");
	}else{
		player.addModelListener("STATE", "navStateListener");
	}		
	if(thePlayer.id.indexOf('faqPlayer')=='0'){
			player.addModelListener("STATE", "stateListener");
	}

}

///////////////////////////////////
// These listener functions respond to events in the player(s)

function stateListener(obj){

	// This function clears animations if the player has stopped
	if(obj.newstate=='PAUSED'){clearAnimations();}
	if(obj.newstate=='IDLE'){clearAnimations();}
	if(obj.id.indexOf('faqPlayer')=='0'){
		if(obj.newstate=='PLAYING'){			
				backgroundPlayer=document.getElementById('mp1');	
				backgroundPlayer.sendEvent("PLAY","false");		
		}
	}else{
		activeBackground=obj.newstate
	}
}
function navStateListener(obj){
	// This function listens to the state of the navigation audio player
	// and resumes the existing background playback, if it was playing
	player=document.getElementById('mp1');
	backgroundPlayer=document.getElementById('mp1');	
	if(obj.newstate=='COMPLETED'){
		if(activeBackground=='PAUSED'){
			if(pausedBackground=='true'){		
				pausedBackground=='false';
				player.sendEvent("PLAY","true");	
			}
		}		
	}	
}

function positionListener(obj) {	
	// This function listens to the position of the background player
	// it triggers animation events based on the times in the audioCue array
	currentPosition = obj.position;	
	for( var i in audioCues){
		if(currentPosition>=audioCues[i][0] && currentPosition<=audioCues[i][1] && currentPosition>.1){
			if( activeAnimations[i]!=1){						
				activeAnimations[i]=1;
				runAnimations(audioCues[i][2],1);
			}
		}else{
			if(activeAnimations[i]==1){						
				activeAnimations[i]=0;
				runAnimations(audioCues[i][2],0);
			}
		}				
	}								
}	
		
function runAnimations(trigger,value){	
	// This function starts an animation
	if(	document.getElementById(trigger)){
		if(value=='1'){
			document.getElementById(trigger).style.backgroundPosition='bottom';	
			activeFlips[trigger]= setInterval ( "swapBackrounder('"+trigger+"')",550 );
		}else{					
			clearIntervals(trigger);		
		}
	} else{

	}
}	
	
function clearAnimations(){
	// This function clears all animations
	for( var i in activeFlips){clearIntervals(i);}
	for( var i in activeAnimations){activeAnimations[i]=0;}
}

function clearIntervals(trigger){
	//This function clears all intervals
	clearInterval(activeFlips[trigger]);	
	if(	document.getElementById(trigger)){	
		document.getElementById(trigger).style.backgroundPosition='';
		if(trigger=='no-login'){						
			document.getElementById(trigger).style.color='#3D3D3D';	
		} 
	}
}	
function swapBackrounder(trigger){	
	// This function does the Physcal CSS manipulation for animations
	if(trigger=='about-1' || trigger=='about-2' || trigger=='about-3' ){	
		if(	document.getElementById(trigger)){	
			if(	document.getElementById(trigger).style.backgroundColor=='black'){
				document.getElementById(trigger).style.backgroundColor='green';						
			}else{					
				document.getElementById(trigger).style.backgroundColor='black';					
			}
		} 
	}else if(trigger=='no-login'){
		if(	document.getElementById(trigger)){		
			if(document.getElementById(trigger).style.color=='rgb(61, 61, 61)'){
				document.getElementById(trigger).style.color='rgb(149, 20, 23)';		
			}else{					
				document.getElementById(trigger).style.color='rgb(61, 61, 61';					
			}
		} 
	}else{
		if(	document.getElementById(trigger)){			
			if(	document.getElementById(trigger).style.backgroundPosition=='center bottom' 
				|| document.getElementById(trigger).style.backgroundPosition=='50% 100%'){
				document.getElementById(trigger).style.backgroundPosition='top';						
			}else{					
				document.getElementById(trigger).style.backgroundPosition='center bottom';					
			}
		} 
	}
}
function toggleAudio(){

	language = bc.lang.toUpperCase();

	// This function toggles audio on/off and sets the cookie
	var audioTest=Get_Cookie('audio');	

	if(audioTest=='true'){	
	
		Set_Cookie( 'audio', 'false');	
		if(	document.getElementById('audio')){
				
			if(language == "EN") document.getElementById('audio').innerHTML='Audio On';
			else document.getElementById('audio').innerHTML='Son activé';
		
	
		}
	}else{	

		Set_Cookie( 'audio', 'true');	
		if(	document.getElementById('audio')){
		
			if(language == "EN") document.getElementById('audio').innerHTML='Audio Off';
			else document.getElementById('audio').innerHTML='Son désactivé';
			
		}
	}
}

function toggleLanguage(){
	// This function toggles language to english / french and sets the cookie
	// It swaps all the audio content to be the new language.
	// setting a cookie, and re-loading the page will also work.
	
	//var language=Get_Cookie('language');	
	
	//if(language=='') 
	
	language = bc.lang.toUpperCase();
	
	if(language=='EN'){	
		Set_Cookie( 'language', 'FR');	
		langPath='/French_AudioFiles/f';
		if(	document.getElementById('lang')){document.getElementById('lang').innerHTML='English';}
	}else{	
		Set_Cookie( 'language', 'EN');
		langPath='/English_AudioFiles/e';	
		if(	document.getElementById('lang')){document.getElementById('lang').innerHTML='Français';}
	}
	

	loadAudioCues(pageHolder);			 
	player = document.getElementById('mp1');		
	var obj = {file:langPath+audioFile, type:'sound',  title:"my song"};
	player.sendEvent("LOAD",obj );
	player.sendEvent("PLAY",'false' );	
	if(pageHolder=='faq'){
		var i=0;
		
		//var language=Get_Cookie('language');	
		
		//if(language=='') 
		
		language = bc.lang.toUpperCase();
			
		if(language=='EN'){	var fileStart=19;}
		else{var fileStart=20;}
		for (i=1;i<=6;i++){	
			var thisFile=(fileStart+i)-1;	
			var obj = {file:langPath+thisFile+".mp3", type:'sound',  title:"my song"};
			if( document.getElementById('faqPlayer'+i)){
				player = document.getElementById('faqPlayer'+i);		
				player.sendEvent("LOAD",obj );
				setTimeout("pausePlayer('"+'faqPlayer'+i+"')");								
			}				
		}
	}
}

function Get_Cookie( name ) {
	// This function gets cookies
	var start = document.cookie.indexOf( name + "=" );
	var len = start + name.length + 1;
	if ( ( !start ) &&
	( name != document.cookie.substring( 0, name.length ) ) )
	{
	return null;
	}
	if ( start == -1 ) return null;
	var end = document.cookie.indexOf( ";", len );
	if ( end == -1 ) end = document.cookie.length;
	return unescape( document.cookie.substring( len, end ) );
}

function Set_Cookie( name, value, expires, path, domain, secure ){
	//This function sets cookies
	// set time, it's in milliseconds
	var today = new Date();
	today.setTime( today.getTime() );
	/*
	if the expires variable is set, make the correct
	expires time, the current script below will set
	it for x number of days, to make it for hours,
	delete * 24, for minutes, delete * 60 * 24
	*/
	if ( expires )
	{
	expires = expires * 1000 * 60 * 60 * 24;
	}
	var expires_date = new Date( today.getTime() + (expires) );

	document.cookie = name + "=" +escape( value ) +
	( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) +
	( ( path ) ? ";path=" + path : "" ) +
	( ( domain ) ? ";domain=" + domain : "" ) +
	( ( secure ) ? ";secure" : "" );
}
