//*********************************************
// pagetools.js
// Functions for:
//   remembering the audio preference (audio autoplay)
//   sliding the transcript in/out
//   collecting GET variables and building query strings
//   needs to be called on load
//*********************************************

// Set defaults

// Show the transcript
transcript = true;
// autoplay the audio
autoplay = true;

// For pages that have floating boxes or images, we need to define a variable to hold the current shown div
currentdiv = "";

function toggletranscript() {
	if (transcript == false) {
		new Effect.Move('transcript', { duration: .2, transition: Effect.Transitions.linear, x: 204, y: 0, mode: 'relative'});
		$('wrapper').morph('width:1004px;', {duration: .2});
		transcript = true;
	
		var obj= document.getElementById('transcriptLnk');
		obj.style.color = "#015ea4";

	} else {
		new Effect.Move('transcript', { duration: .2, transition: Effect.Transitions.linear, x: -204, y: 0, mode: 'relative' });
		$('wrapper').morph('width:800px;', {duration: .2});
		transcript = false;

		var obj= document.getElementById('transcriptLnk');
		obj.style.color = "#222";
	}	
}

function toggleaudio() {
	if (autoplay == false) {
		autoplay = true;

		var obj= document.getElementById('autoplayLnk');
		obj.style.color = "#015ea4";
	} else {
		autoplay = false;
	
		var obj= document.getElementById('autoplayLnk');
		obj.style.color = "#222";
	}
}

// method from http://www.netlobo.com/url_query_string_javascript.html
function gup(name) {
	name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
	var regexS = "[\\?&]"+name+"=([^&#]*)";
	var regex = new RegExp( regexS );
	var results = regex.exec(window.location.href);
	if(results == null) {
		return "";
	} else {
		return results[1];
	}
}
	
function addAudio(filename) {	
	setAudioColor();
	
	var s1 = new SWFObject("flash/mediaplayer.swf","mediaplayer","100","20","8");
	s1.addParam("allowfullscreen","false");
	s1.addVariable("width","100");
	s1.addVariable("height","20");
	s1.addVariable('backcolor','0xCCCCCC');
	s1.addVariable('frontcolor','0x535353');
	s1.addVariable("file",filename);
	s1.addVariable('autostart',autoplay);
	s1.addVariable('showdigits',false);
	s1.addVariable('searchbar',false);
	s1.write("audiodiv");
}

function setAudioColor() {
	// handle audio
	var autoplayGET = gup('autoplay');
	if (autoplayGET == "false") {
		autoplay = false;
		
		var obj= document.getElementById('autoplayLnk');
		obj.style.color = "#222222";
	} else {
		autoplay = true;
		
		var obj= document.getElementById('autoplayLnk');
		obj.style.color = "#015EA4";
	}
}

function setTranscript() {
	var transcriptGET = gup('transcript');

	if (transcriptGET == "false") {
		transcript = false;

		var obj= document.getElementById('wrapper');
		obj.style.width = "800px";
		var obj= document.getElementById('transcript');
		obj.style.left = "596px";

	} else {
		transcript = true;
	}
}


function setTranscriptColor() {
	var transcriptGET = gup('transcript');

	if (transcriptGET == "false") {
		var obj= document.getElementById('transcriptLnk');
		obj.style.color = "#222";
		
	} else {
		var obj= document.getElementById('transcriptLnk');
		obj.style.color = "#015ea4";
	}
}

function makeFloatingdiv() {
		
	// We need to set floatingdiv's position dynamically, so we can accomidate non-js people
	var obj= document.getElementById('floatingdiv');
	obj.style.position = "absolute";
	obj.style.left = "20px";
	obj.style.top = "60px";
	obj.style.width = "760px";
	
	for (i = 0; i < divarray.length; i++) {
		var obj= document.getElementById(divarray[i]);
		obj.style.display = "none";
	}
	
}

function showdiv(divname) {

	var obj= document.getElementById('floatingdiv');
	obj.style.zIndex = "12";

	var fadediv = new Array();
	
	j = 0;
	
	for (i = 0; i < divarray.length; i++) {
		if (divname != divarray[i]) {

			var obj= document.getElementById(divarray[i]);
			obj.style.display = "none";
		}
	}
	
	Effect.Appear(divname, { duration: .1});
	
	// We need to set this so we know which div to hide
	currentdiv = divname;
}

function hidediv() {
	Effect.Fade(currentdiv, { duration: .1, onComplete: backtozero});
	
	function backtozero() {
		var obj= document.getElementById('floatingdiv');
		obj.style.zIndex = "0";
	}
}


function showimg(imgname) {
	
	if (currentdiv == "") {
		currentdiv = "img1";
	}
	
	if (currentdiv == imgname) {
		
	} else {
		Effect.toggle(imgname, 'appear', { duration: 0.5 });
		Effect.toggle(currentdiv, 'appear', { duration: 0.5 });
	}
	
	// We need to set this so we know which div to hide
	currentdiv = imgname;
}

function transferto(urlstring) {
		window.location = urlstring + "?autoplay=" + autoplay + "&transcript=" + transcript;
}