/* $Id: maxware.js 169 2006-09-15 01:47:44Z lwissing $ */

//---------------------------------------------------------------------------
// File.......: max_detector_scripts.js     
// Author.....: Jack Roy                   
// Created....: January 6, 2004                                                  
// Purpose....: this file contains media player detection script
// Revisions..:                                                              
// Copyright © 2004 Max Digital Broadcasting Corporation. All rights reserved.
//---------------------------------------------------------------------------


//---------------------------------------------------------------------------
// Media player information
// Detect ActiveX Architecture on Both IE and on Gecko
//---------------------------------------------------------------------------

//------------------------------------
//  media player 10
//  
//  <OBJECT ID="Player" CLASSID="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6">
//  <PARAM name="autoStart" value="True">
//  </OBJECT>

// initialize global variables

function detectWMP(){


var wmpInfo = {					// this is the media player information
	installed: false,			// is the player sciptable
	scriptable: false,			// what type of active x object win or geco
	type: null,					
	version: null,				// the version number (6,9)
	versionInfo: "not"			// the actual version number (6,7,8,9,10)
};

	var wmp64 = "MediaPlayer.MediaPlayer.1";
	var wmp7 = "WMPlayer.OCX.7";
	var wmp64csid = " classid=\"CLSID:22D6F312-B0F6-11D0-94AB-0080C74C7E95\" ";
	var wmp7csid = " classid=\"CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6\" ";
	var wmpFFcsid = " ";

	var w = 0;
	var h = 0;

	
	if((window.ActiveXObject && navigator.userAgent.indexOf('Windows') != -1 ) || window.GeckoActiveXObject){
		wmpInfo.type = "ActiveX";
		var player = createActiveXObject(wmp7);
		if(player){			
			wmpInfo.installed = true;
			wmpInfo.scriptable = true;
			wmpInfo.version = 6;
			wmpInfo.versionInfo = player.versionInfo.substring(0,1);
			if (wmpInfo.versionInfo == 9 || wmpInfo.versionInfo == 1){
				wmpInfo.version = 9
				wmpInfo.versionInfo = 9
				maxPlayer.DisplayString += wmp7csid;
				maxPlayer.DisplayString += " Style=\"width:"+maxPlayer.mpwidth+"; height:"+maxPlayer.mpheight+";\">"  //border: 3 inset #4A8CC4;
				return wmpInfo;
			}else{
				maxPlayer.DisplayString += wmp64csid + maxPlayer.codeBase;
				maxPlayer.DisplayString += " Style=\"width:"+maxPlayer.mpwidth+"; height:"+maxPlayer.mpheight+";\" " //border: 3 inset #4A8CC4;
				maxPlayer.DisplayString += " type=\"application/x-oleobject\">"
				return wmpInfo;
			}
			return wmpInfo;
		}
		else
		{
			player = createActiveXObject(wmp64);
			if(player)
			{
				wmpInfo.installed = true;
				wmpInfo.scriptable = true;
				wmpInfo.version = 6;
				maxPlayer.DisplayString += wmp64csid + maxPlayer.codeBase;
				maxPlayer.DisplayString += " Style=\"width:"+maxPlayer.mpwidth+"; height:"+maxPlayer.mpheight+";\" " // border: 3 inset #4A8CC4;
				maxPlayer.DisplayString += " type=\"application/x-oleobject\">"
				wmpInfo.versionInfo = 6;
				return wmpInfo;
			}
			else
			{
				if( navigator.userAgent.indexOf('Firefox') != -1 ){
					
					// Can we display Media player movies?
					var mtype = navigator.mimeTypes["application/x-ms-wmp"];
					if (mtype) {   // Yes, so can we display with a plug-in?   
						
						
						
						
						    var player = null;
						    try {
							player = new createActiveXObject('WMPlayer.OCX.7');
						    } catch (e) {
							alert(e);
						    }
						    
						// we know that the player is a plug in for firefox
						if(player){
							
							wmpInfo.type = "ActiveX";
							wmpInfo.installed = true;
							wmpInfo.version = 9;
							wmpInfo.versionInfo = 9;
							
							//wmpInfo.versionInfo = player.versionInfo.substring(0,1);
							maxPlayer.DisplayString += wmpFFcsid + maxPlayer.codeBase;
							maxPlayer.DisplayString += " Style=\"width:"+(maxPlayer.mpwidth-maxPlayer.nsoffsetwd)+"; height:"+(maxPlayer.mpheight-maxPlayer.nsoffsetht)+";\" "
							maxPlayer.DisplayString += " type=\"application/x-ms-wmp\">"
							maxPlayer.EmbedString += " width='"+(maxPlayer.mpwidth-maxPlayer.nsoffsetwd)+"' height='"+(maxPlayer.mpheight-maxPlayer.nsoffsetht)+"' ";
							return wmpInfo;
						}
						
					}
					wmpInfo.versionInfo = "none";
					return wmpInfo;
				}else{
					wmpInfo.versionInfo = "none";
					return wmpInfo;
				}
			}
		}
	}else if(navigator.mimeTypes){
		// Can we display Media player movies?
		var mtype = navigator.mimeTypes["application/x-mplayer2"];
		if (mtype) {   // Yes, so can we display with a plug-in?   
			var player = mtype.enabledPlugin;   
			// we know that the player is a plug in for netscape
			if(player){
				wmpInfo.type = "NetscapePlugin";
				wmpInfo.installed = true;
				wmpInfo.version = 6;
				wmpInfo.versionInfo = 6;
				maxPlayer.DisplayString += wmp64csid + maxPlayer.codeBase;
				maxPlayer.DisplayString += " Style=\"width:"+(maxPlayer.mpwidth-maxPlayer.nsoffsetwd)+"; height:"+(maxPlayer.mpheight-maxPlayer.nsoffsetht)+";\" "
				maxPlayer.DisplayString += " type=\"application/x-oleobject\">"
				maxPlayer.EmbedString += " width='"+(maxPlayer.mpwidth-maxPlayer.nsoffsetwd)+"' height='"+(maxPlayer.mpheight-maxPlayer.nsoffsetht)+"' ";
				return wmpInfo;
			}
		}
		return wmpInfo;
	}
}


//---------------------------------------------------------------------------
// Function.... createActiveXObject()
// Description: this function is used to create the media player object in
//				order to determin the player type and version
// Parameters.: id => object variable
// Revisions..:
//---------------------------------------------------------------------------
function createActiveXObject(id){
  var error;
  var control = null;

	try{
		if (window.ActiveXObject){
			control = new ActiveXObject(id);
		}else if (window.GeckoActiveXObject){
			control = new GeckoActiveXObject(id);
		}else{
			;
		}
	}catch (error){
	;
  }
  //alert(control);
  return control;
}

//---------------------------------------------------------------------------
// Function.... init_max_home()
// Description: this function is used initialise the page by setting up all
//              the parameter, if we have cookies we use them else we set the 
//              the global variables
// Parameters.: none
// Revisions..: July 22, 2003  -  added the max_home value
//			  : Aug 21, 2003  -  modified as part of script refinement
//---------------------------------------------------------------------------
function init_max_home(){		
	PageLoaded.Top = false;					// Top is the home page frameset
	PageLoaded.Player = false;				// Player is the player page frame
	PageLoaded.Content =false;				// the content page
	PageLoaded.Slide = false;				// Slide is the slide page frame
	PageLoaded.Nav = false;					// Nav is the header page frame
	PageLoaded.All = false;					// All pages 
	noLayer = true;
	testcount = 0;
	testtext ="";
	dloop = true;						    // just a loop flag
	
	if (document.layers){
		noLayer = false;
	}


	
	// move this function call out of the init function to
	// see if this will speed up detection and eliminate the
	// refresh problem
	// detect the media player and version 
	
	pi = detectWMP();
	//---------------------------------------------------------------------------
	// the paths are determined by the location of the home page
	//---------------------------------------------------------------------------
	
	thp = document.location.href.substring(0,document.location.href.lastIndexOf("/")+1);
	if (location.protocol == "file:"){ // local mode
		maxPath.home = unescape(thp+maxStreamInfo.lang+"/");
		maxPath.root = unescape(thp);
		maxStreamInfo.local = true;
	}else{	// web mode
		maxPath.home = thp+maxStreamInfo.lang+"/";
		maxPath.root = thp;
		maxStreamInfo.local = false;
	}
	
	maxPath.back = maxPath.root + "images/"+maxImages.background;		// path for the background image
	maxPath.button = maxPath.root + maxPath.button						// path for the buttons
	maxPath.labels = maxPath.home + "images/labels/"					// path for the labels
	maxPath.html = maxPath.root	+ "html/"								// path for html pages
	maxPath.digits = maxPath.root + maxPath.digits						// path for counter digits
	maxPath.slide = maxSlide.startPath									// slide directory
	
	hsimg = new Image();			// high speed image object
	lsimg = new Image();			// low speed image object
	
	// init function starts here	
	
	if (pi.installed){

		maxPlayer.SAMIFileName = maxSlide.startPath+maxStreamInfo.lang+"sami.smi";
		if (maxStreamInfo.lang == "f"){
			maxPlayer.SAMILang = "French Captions";
		}else{
			maxPlayer.SAMILang = "English Captions";
		}

		// finish building the object tag
		maxPlayer.ParamString = "<param name=\"windowlessVideo\" value="+maxPlayer.windowlessVideo+">\n";
		maxPlayer.ParamString += "<param name=\"CurrentPosition\" value="+maxPlayer.CurrentPosition+">\n";
		maxPlayer.ParamString += "<param name=\"CurrentMarker\" value="+maxPlayer.CurrentMarker+">\n";
		maxPlayer.ParamString += "<param name=\"playCount\" value="+maxPlayer.playCount+">\n";
		maxPlayer.ParamString += "<param name=\"rate\" value="+maxPlayer.rate+">\n";
		maxPlayer.ParamString += "<param name=\"enabled\" value="+maxPlayer.enabled+">\n";
		maxPlayer.ParamString += "<param name=\"enableContextMenu\" value="+maxPlayer.enableContextMenu+">\n";
		maxPlayer.ParamString += "<param name=\"AnimationAtStart\" value="+maxPlayer.AnimationAtStart+">\n";
		maxPlayer.ParamString += "<param name=\"PreviewMode\" value="+maxPlayer.PreviewMode+">\n";
		maxPlayer.ParamString += "<param name=\"TransparentAtStart\" value="+maxPlayer.TransparentAtStart+">\n";
		maxPlayer.ParamString += "<param name=\"invokeURLs\" value="+maxPlayer.invokeURLs+">\n";
		maxPlayer.ParamString += "<param name=\"Mute\" value="+maxPlayer.mute+">\n";
		if (pi.type == "ActiveX"){
			if (maxPlayer.useSami){
				maxPlayer.ParamString += "<param name=\"SAMILang\" value='"+maxPlayer.SAMILang+"'>\n";
				maxPlayer.ParamString += "<param name=\"SAMIStyle\" value="+maxPlayer.SAMIStyle+">\n";
				maxPlayer.ParamString += "<param name=\"SAMIFileName\" value='"+maxPath.home+maxPath.slide+"/"+maxPlayer.SAMIFileName+"'>\n";
				//alert("SAMIFileName = "+maxPath.home+maxPath.slide+"/"+maxPlayer.SAMIFileName);
			}
			if (pi.version == 9){
				maxPlayer.ParamString += "<param name=\"Volume\" value="+maxPlayer.p9Volume+">\n";
				maxPlayer.ParamString += "<param name=\"stretchToFit\" value="+maxPlayer.stretch+">\n";
				maxPlayer.ParamString += "<param name=\"uiMode\" value="+maxPlayer.uiMode+">\n";	
				maxPlayer.ParamString += "<param name=\"ShowTracker\" value=true>\n";
				maxPlayer.ParamString += "<param name=\"autoStart\" value=false>\n";
			}else if (pi.version == 6){
				maxPlayer.ParamString += "<param name=\"Volume\" value="+maxPlayer.p6Volume+">\n";
				maxPlayer.ParamString += eval("maxPlParam."+maxPlayer.uiMode);
				maxPlayer.ParamString += "<param name=\"AutoStart\" value=false>\n";
					
				// weird bug in the ver 6 player the autosize is the oposite of 
				// the stretch to fit value
				if (maxPlayer.stretch){
					maxPlayer.ParamString += "<param name=\"AutoSize\" value=false>\n";
				}else{
					maxPlayer.ParamString += "<param name=\"AutoSize\" value=true>\n";
				}
			}
		}else if (pi.type == "NetscapePlugin"){
			if (maxPlayer.useSami){
				maxPlayer.ParamString += "<param name=\"SAMIFileName\" value='"+maxPath.home+maxPath.slide+"/"+maxPlayer.SAMIFileName+"'>\n";
			}
			maxPlayer.ParamString += "<param name=\"AllowChangeDisplaySize\" value=true>\n";
			if (maxPlayer.stretch){
				maxPlayer.ParamString += "<param name=\"AutoSize\" value=false>\n";
			}else{
				maxPlayer.ParamString += "<param name=\"AutoSize\" value=true>\n";
			}
			maxPlayer.EmbedString += " autostart=0";
			maxPlayer.EmbedString += " ShowCaptioning=0";
			maxPlayer.EmbedString += " displaysize=0";
			maxPlayer.EmbedString += " CaptioningID=\"CC\"";
			maxPlayer.EmbedString += eval("maxEmbParam."+maxPlayer.uiMode);
		}
		if (pi.version == 9){
			maxPlayerState.stop = 1;
			maxPlayerState.pause = 2;
			maxPlayerState.play = 3;
			maxPlayerState.ended = 8;
			maxPlayerState.ready = 10;
		}else if (pi.version == 6){
			maxPlayerState.stop = 0;
			maxPlayerState.pause = 1;
			maxPlayerState.play = 2;
			maxPlayerState.ended = 9;
			maxPlayerState.ready = 10;
		}
	}
		
		
	if (!maxControlButtons.player){
		// load speed images
		hsimg.src = maxPath.root + "images/control/" + maxImages.HighSpeed;
		lsimg.src = maxPath.root + "images/control/" + maxImages.LowSpeed;
	}
		
	
	if (noLayer){
		parent.loader.setmode(maxStreamInfo.local);
	}
	if (maxSession.start <= 9){
		maxPath.slide = "s0"+maxSession.start;
	}else if (maxSession.start > 9){
		maxPath.slide = "s"+maxSession.start;
	}

	//update the progress bar
	//alert(pi.versionInfo);
	var	html_down_link;
	if( navigator.userAgent.indexOf('Firefox') != -1 ) {
		html_down_link = "http://port25.technet.com/pages/windows-media-player-firefox-plugin-download.aspx";
	} else {
		html_down_link = "http://www.microsoft.com/windows/windowsmedia/download/AllDownloads.aspx";
	}

	if(pi.versionInfo=='none') {
		if (maxStreamInfo.lang == "e"){
			if (noLayer){parent.loader.layerWrite("<b>Media Player not detected</b>.<br/> <a target='_blank' href='"+html_down_link+"'>Click here</a> to download required plug-in.",0,10)}
			maxBtnStatus.lang = new Array(true,false);
		}else{
			if (noLayer){parent.loader.layerWrite("<b>Lecteur Windows Media non détécté</b>.<br/> <a target='_blank' href='"+html_down_link+"'>Cliquez ici</a> pour téléchargez le plugin nécessaire.",0,10)}
			maxBtnStatus.lang = new Array(false,true); 
		}

		return;	
	}

	if (maxStreamInfo.lang == "e"){
		if (noLayer){parent.loader.layerWrite("Media Player "+pi.versionInfo+ " detected",0,10)}
		maxBtnStatus.lang = new Array(true,false);
	}else{
		if (noLayer){parent.loader.layerWrite("Détecter joueur media version "+pi.versionInfo,0,10)}
		maxBtnStatus.lang = new Array(false,true); 
	}


	// this tells the other frames that we are loaded
	PageLoaded.Top = true;
	
	// now we load the other frames 
	parent.navbar.location.replace(maxPath.html+maxPageNames.header);
	parent.control.location.replace(maxPath.html+maxPageNames.control);
	parent.player.location.replace(maxPath.html+maxPageNames.player);
	

	if (typeof(document.layers) != 'undefined' && document.layers){
		parent.content.location.replace(maxPath.html+maxPageNames.contentil);
	}else{
		parent.content.location.replace(maxPath.html+maxPageNames.contentif);
	}

	// check and see if all frames are loaded
	checkAllLoaded(noLayer,dloop);
}	

//---------------------------------------------------------------------------
// Function.... relaylink(v1,v2)
// Description: This function is used to relay the command to the content framed
//              due to a strange behaviour in netscape.
// Parameters.: qn - question number
// Revisions..: 
//---------------------------------------------------------------------------

function relaylink(v1,v2){
	parent.content.loadextrapage(v1,v2)
}

//---------------------------------------------------------------------------
// Function.... getfaq(qn)
// Author.....:
// Description: This function is used to display the answer to the faq
// Parameters.: qn - question number
// Revisions..:
//---------------------------------------------------------------------------

function getfaq(qn){
	parent.content.loadextrapage(maxPageNames.faqans,maxUserDef.helppage);
	maxSession.pages[5] = qn;
}

//---------------------------------------------------------------------------
// Function.... checkAllLoaded()
// Description: this function is a timer to check to see if all the pages
//              are loaded then we hide the one moment please label
// Parameters.: none
// Revisions..:
//---------------------------------------------------------------------------
function checkAllLoaded(noLayer,dloop){
	if (PageLoaded.Player && PageLoaded.Control && PageLoaded.Nav && PageLoaded.Content && PageLoaded.Slide) {
		PageLoaded.All = true;
		parent.control.set_player_controls();
		parent.control.set_speed_controls(maxStreamInfo.speed);
		parent.control.set_lang_controls(maxStreamInfo.lang);
		if (maxPlayer.useSami){
			parent.control.set_cc_controls();
		}

		if (noLayer){
			parent.loader.layerWrite("",1,298)
			top.document.body.cols = maxFrameVar.regsyscols;
			parent.loader.document.bgColor = maxFrameVar.bgcolor;
		}
		if (dloop){
			dloop = false;
			timerID = setTimeout("startPlaymode()", maxPlayer.pausetime);
		}else{
			if (maxPlayer.autostart){
				startPlaymode();
			}
		}
	}else {
		timerID = setTimeout("checkAllLoaded(" + noLayer + "," + dloop + ")", 50);
	}
}

//---------------------------------------------------------------------------
// Function.... startPlaymode()
// Description: this function is used to statrt the media player once
//              all pages are loaded
// Parameters.: none
// Revisions..:
//---------------------------------------------------------------------------
function startPlaymode(){
	if (pi.type == "ActiveX"){
		if (parent.player.document.MaxPlayer1.playState != maxPlayerState.play){
			if (pi.version == 9){
				parent.player.document.MaxPlayer1.controls.play();
			}else{
				parent.player.document.MaxPlayer1.Play();
			}
		}
	}else if (pi.type == "NetscapePlugin"){
		parent.player.document.MaxPlayer1.Play();
	}
}

//---------------------------------------------------------------------------
// Function.... seekToMarker(iWhichMarker)
// Description: This function receives an integer from the buttons above and 
//              resets the current position of the file to that marker. 
//              setVideoLabel
// Parameters.: iWhichMarker
// Revisions..:
//---------------------------------------------------------------------------
function seekToMarker(theMarker){

	if (theMarker == null){
		theMarker = maxSlide.current;
	}
	if (pi.type == "ActiveX"){
		if (pi.version == 9){
			if (theMarker <= parent.player.document.MaxPlayer1.currentMedia.markerCount) {
				// This resets the current marker in the file.
				parent.player.document.MaxPlayer1.controls.currentMarker = theMarker
				parent.player.document.MaxPlayer1.controls.play();
			}else {  
				if (parent.player.document.MaxPlayer1.playState == 10){
					parent.player.document.MaxPlayer1.controls.play();
					parent.player.document.MaxPlayer1.controls.currentMarker = theMarker
				}
		}
		}else{
			if (theMarker <= parent.player.document.MaxPlayer1.MarkerCount) {
				if (theMarker == 0 ){
					theMarker = 1;
				}
				// This resets the current marker in the file.
				parent.player.document.MaxPlayer1.CurrentMarker = theMarker;
				if (parent.player.document.MaxPlayer1.playState != maxPlayerState.play){
					parent.player.document.MaxPlayer1.Play();
				}
			} 
		}
	}else if (pi.type == "NetscapePlugin"){
		if (theMarker <= parent.player.document.MaxPlayer1.GetMarkerCount()) {
			parent.player.document.MaxPlayer1.SetCurrentMarker(theMarker);
			if (parent.player.document.MaxPlayer1.GetPlayState() != maxPlayerState.play){
				parent.player.document.MaxPlayer1.Play();
			}
		}
	}
}

//---------------------------------------------------------------------------
// Function.... changelang(lg)
// Description: this function is used to change the current speed
// Parameters.: lg - the language e or f
// Revisions..:
//---------------------------------------------------------------------------
function changelang(lg){
	if (maxUserDef.bilingual){
		if (maxStreamInfo.lang != lg ){
			maxStreamInfo.lang == lg;
			if (noLayer){
				parent.loader.document.bgColor = maxFrameVar.bgcolor;
				if (lg == "f"){
					parent.loader.layerWrite("One moment please switching to french...",0,0)
				}else{
					parent.loader.layerWrite("un moment svp changement à l'anglais commencera..",0,0)
				}
					PageLoaded.Top = false;
					PageLoaded.Player = false;
					PageLoaded.Content =false;
					PageLoaded.Slide = false;
					PageLoaded.Nav = false;	
					PageLoaded.All = false;
					top.document.body.cols = maxFrameVar.systemcols;
			}
			/* determine which URL parameters are available */
			URLParams = "";
			
			URLParams = "&w=" + maxPlayer.mpwidth; 
			URLParams = URLParams + "&h=" + maxPlayer.mpheight; 
			URLParams = URLParams + "&s=" + maxSession.current;
			URLParams = URLParams + "&pos=" + player_position; 
			URLParams = URLParams + "&m=" + maxSlide.current;
			URLParams = URLParams + "&v=" + parent.player.document.MaxPlayer1.settings.volume;

			top.location = maxPath.root+maxPageNames.home+"?l="+lg+URLParams;
		}
	}
}

//---------------------------------------------------------------------------
// Function.... getParams()
// Description: function which returns array of URL params
// Parameters.: 
// Revisions..: 
//---------------------------------------------------------------------------

function getParams() {
	var idx = location.search.indexOf('?');
	var params = new Array();
	if (idx != -1) {
		var pairs = location.search.substring(idx+1, location.search.length).split('&');
		for (var i=0; i<pairs.length; i++) {
			nameVal = pairs[i].split('=');
			params[nameVal[0]] = nameVal[1];
			}
		}
	return params;
}

//---------------------------------------------------------------------------
// Function.... changespeed(sp)
// Description: this function is used to change the current speed
// Parameters.: sp - the speed h or l
// Revisions..: July 23, 2003
//				do not need to reload the page when all we need to do is
//				change the asx file
//            : Aug 21, 2003  -  modified as part of script refinement
//---------------------------------------------------------------------------

function changespeed(sp){
	if (maxStreamInfo.local){
		return;
	}
	if (maxStreamInfo.speed != sp){	
		// speed is different so reload the asx file 
		maxStreamInfo.speed = sp;
		parent.control.set_speed_controls(maxStreamInfo.speed);
		//now if we are not on the first slide then seek to marker
		if (maxSlide.current > 0){
			maxStreamInfo.seek = true;	
		}
		// load the new asx file
		loadasxfile();
		// now change the speed img
		parent.content.switchpage(maxUserDef.slidepage);
	}
}

//---------------------------------------------------------------------------
// Function.... loadasxfile(sdir)
// Description: this function is used to load the asx file into the player 
// Parameters.: none
// Revisions..: Aug 21, 2003  -  modified as part of script refinement
//---------------------------------------------------------------------------
function loadasxfile(){

	// rebuild the path and the file name for the stream
	if (maxStreamInfo.local){
		maxStreamInfo.url = maxPath.root+"streams/"
		maxStreamInfo.asxname = maxPath.slide+maxStreamInfo.lang+maxStreamInfo.speed+pi.version+".wmv";
	}else{

		maxStreamInfo.url = maxPath.home+maxPath.slide+"/"
		maxStreamInfo.asxname = "asx"+maxStreamInfo.speed+pi.version+".asx";
	}
	if (maxPlayer.useSami ){
		maxPlayer.SAMIFileName = maxPath.home+maxPath.slide+"/"+maxPath.slide+maxStreamInfo.lang+"sami.smi";
		//alert("SAMIFileName = "+maxPlayer.SAMIFileName)
	}
	
	// load the file and start the player
	if (pi.type == "ActiveX"){
		if (pi.version == 9){
			parent.player.document.MaxPlayer1.URL = maxStreamInfo.url+maxStreamInfo.asxname;
			if (maxPlayer.useSami){ 
				parent.player.document.MaxPlayer1.closedCaption.SAMIFileName = maxPlayer.SAMIFileName;
			}
			parent.player.document.MaxPlayer1.controls.play();
		}else{
			parent.player.document.MaxPlayer1.Filename = maxStreamInfo.url+maxStreamInfo.asxname;
			if (maxPlayer.useSami){
				parent.player.document.MaxPlayer1.SAMIFileName = maxPlayer.SAMIFileName;
			}
			parent.player.document.MaxPlayer1.autoStart = true;
			if (parent.player.document.MaxPlayer1.playState != maxPlayerState.play){
				parent.player.document.MaxPlayer1.Play();
			}
		}
	}else if (pi.type == "NetscapePlugin"){
		parent.player.document.MaxPlayer1.SetFileName(maxStreamInfo.url+maxStreamInfo.asxname);
		parent.player.document.MaxPlayer1.SetAutoStart(true);
		if (parent.player.document.MaxPlayer1.GetPlayState() != maxPlayerState.play){
			parent.player.document.MaxPlayer1.Play();
		}
	}
}

//---------------------------------------------------------------------------
// Function.... setmarker(snum)
// Description: this function is used to load the slides page then seek the marker
// Parameters.: snum - this is the slide number
// Revisions..:
//---------------------------------------------------------------------------
function setmarker(snum){
	// set the bit to ignore state change
	maxPlayerState.checkstate = false;
	maxSlide.current = snum;
	parent.content.switchpage(maxUserDef.slidepage);
	parent.control.set_play(0);
	seekToMarker();
}

//---------------------------------------------------------------------------
// Function.... getfaq(qn)
// Description: This function is used to display the answer to the faq
// Parameters.: qn - question number
// Revisions..: 
//---------------------------------------------------------------------------

function getfaq(qn){
	parent.content.loadextrapage("faqanswer.htm",4);
	maxSession.pages[5] = qn;
}

//---------------------------------------------------------------------------
// Function.... punload()
// Description: this function is used reset the loaded flag when the page exits
// Parameters.: none
// Revisions..:
//---------------------------------------------------------------------------
function punload(){
	PageLoaded.Top = false;
}

//---------------------------------------------------------------------------
// Function.... nextslide()
// Description: this function is used change the slide image
// Parameters.: none
// Revisions..:
//---------------------------------------------------------------------------
function nextslide(nsn){
	parent.control.getslide(nsn)
}

/****************************************************************************
	Function.... stripSession(sessionVar)
	Author.....:
	Description: returns the session integer from the session variable
	Parameters.: sessionVar => string
	Revisions..:
****************************************************************************/
function stripSession ( sessionVar ){
	session = sessionVar.replace(/[^\d]/g, '');
	return eval(session);
}

/****************************************************************************
	Function.... passIncludesToMaxWareJS(theVar)
	Author.....:
	Description: function created to receive Includes array from the
				 contents_includes.js file. The array is used in checkevent
				 to determine which session to change it to.
	Parameters.: theVar => array
	Revisions..:
****************************************************************************/
var ContentsIncludes;
function passIncludesToMaxWareJS(theVar){
	ContentsIncludes = theVar;
}
//---------------------------------------------------------------------------
// Function.... loadsession(sdir)
// Description: this function is used to load the new session files
// Parameters.: sdir - this is the slide directory
// Revisions..:
//---------------------------------------------------------------------------
function loadsession(sdir, width, height, position){
	var tsdir = sdir.toLowerCase()	
	
	sdir = stripSession( sdir );
	// need to determine the current session vars and see if they are different
	// than the session we are going to, left/right switches require a reload
	// of the entire player
	
	// get width, height and position of current session
	sessionInfo = ContentsIncludes.RefLinks[maxSession.current][maxSession.current];
	sessionInfoArr = sessionInfo.split(',');
	
	w = sessionInfoArr[1];
	h = sessionInfoArr[2];
	pos = sessionInfoArr[3];
	pos = pos.replace(/[^\rl]/g, '');
	
	if(position!=pos){
	  // must reload entire player
	  // get current document href without search parameters
	  cleanHREF = document.location.href.replace(document.location.search, '');
	  
	  // redirect to document with new search params
	  document.location = cleanHREF + '?w=' +width+ '&h=' +height+ '&l=' +maxStreamInfo.lang+ '&s=' +sdir+ '&pos=' +position+ '&m=' +maxPlayer.CurrentMarker+ '&v=' +maxPlayer.volume;
	}
	
	// hide the div so we don't see the shift
	//player.document.MaxPlayer1.style.visibility = 'hidden';
	
	// set width and height of media player
	player.document.MaxPlayer1.style.width = width;
	player.document.MaxPlayer1.style.height = height;
	
	try{
		// reposition div
		player.document.getElementById('mp').style.left = (screen_width - width) / 2;
		player.document.getElementById('mp').top  = (screen_height - height)  / 2;
	}catch(error){
		;
	}
	
	// validate sdir
	if (maxSession.current != sdir){
		maxSession.current = sdir
		// if the value of sdir is less than 10
		// then pad it with a zero
		if (sdir <= 9){
			maxPath.slide = "s0"+sdir;
		}else if (sdir > 9){
			maxPath.slide = "s"+sdir;
		}
		maxSlide.current = maxSlide.start;
		PageLoaded.Slide = false;
		parent.navbar.init_main_header();
		//parent.navbar.init_max_home(); //********************************* check to see if init() called elsewhere
		parent.content.reloadframes();
		checkSlidesLoaded();
	}
	// show div again
	//player.document.MaxPlayer1.style.visibility = 'visible';
		parent.control.set_play(0);
}

//---------------------------------------------------------------------------
// Function.... checkSlidesLoaded()
// Description: this function is a timer to check to see if the slide page is  
//              loaded
// Parameters.: none
// Revisions..:
//---------------------------------------------------------------------------
function checkSlidesLoaded(){
	if (!PageLoaded.Slide) {
		window.setTimeout("checkSlidesLoaded()", 100);
	}else {
		loadasxfile();
		parent.content.switchpage(maxUserDef.slidepage);
		//parent.slide.location.reload();
	}
}


//---------------------------------------------------------------------------
// Function.... getsvapp()
// Description: this function is used to generate an e-mail message
// Parameters.:
// Revisions..:
//---------------------------------------------------------------------------
function getsvapp() {
  var mid = "application@maxdbc.net"
  var msubject = "" 
  var body = ""
	
	if (maxStreamInfo.lang == "e"){
		mid +="?cc=education@bank-banque-canada.ca"
		msubject = "Request for corporate server version" 
		body = "1) Name of organization: \n\n"+"2) Name of contact: \n\n"+"3) Title: \n\n"+"4) Telephone: \n\n"+"5) Server operating system:\n\n"
	}else if (maxStreamInfo.lang == "f"){
		mid +="?cc=education@bank-banque-canada.ca"
	 	msubject = "Demandez une version de serveur de corporation" 
		body = "1) Nom d'organisation: \n\n"+"2) Nom de contact: \n\n"+"3) Titre: \n\n"+"4) Téléphone: \n\n"+"5) Logiciel d'exploitation de serveur:\n\n"
	}

  
  // Build Mail Message Components 
  var doc = "mailto:" + mid + 
    "&subject=" + escape(msubject) + 
    "&body=" + escape(body); 

  // Pop Up EMail Meassage Window
	window.location = doc;
}

//---------------------------------------------------------------------------
// Function.... viewcc()
// Description: this function calls the function in the player to hide or
//              show the closed caption box
// Parameters.:
// Revisions..:
//---------------------------------------------------------------------------
function viewcc(sh){
	//alert(sh);
	parent.player.showcc(sh);
}

//---------------------------------------------------------------------------
// Function.... writetitle()
// Description: this function update the text for the title the presentor  
//              and the organization
// Parameters.:
// Revisions..:
//---------------------------------------------------------------------------
function writetitle(){
	if ((x=MM_findObj('pttl'))!=null){
		x.innerHTML = app_title[maxSession.current]
	}

	if ((x=MM_findObj('pnm'))!=null){
		x.innerHTML = app_speaker[maxSession.current]
	}

	if ((x=MM_findObj('porg'))!=null){
		x.innerHTML = app_orgname[maxSession.current]
	}
}

//---------------------------------------------------------------------------
// File.......: max_page_scripts.js
// Created....: July 15, 2003
// Purpose....: this file contains the scripts for the
//				session, topics, resources, option, support, requirements pages 
// Revisions..:
//---------------------------------------------------------------------------

function init_max_page_scripts(){
	Inc=null;
	
	PageValues = {				// various common values
		next:false,
		prev:false,
		sc:0,
		ec:0,
		ac:0,
		anchor:null,
		CntStr:null,
		cNum:0,
		ls:0,
		lpp:0,
		lc:0,
		PageHtml:null
	};
	
	
	Inc = Includes;
	//if (parent.noLayer){parent.loader.layerWrite("",10,10)}
	
	pc = null;
	
	if (parent.parent.maxStreamInfo.lang == "f"){
		ptag = "Précédente";
		ntag = "Suivante";
	}else{
		ptag = "Previous";
		ntag = "Next";
	}
	
	
	
	if (Inc.LabelName == "faqanswer"){
		pc = 5;
	}else{
		for (a=0; a<parent.parent.maxHeader.hbname.length; a++){
			if (Inc.LabelName == parent.parent.maxHeader.hbname[a]){
				pc = a;
			}
		}
		if (pc == null){
			pc = (parent.parent.maxHeader.hbname.length-1);
		}
	}
	
	lbwd = Inc.Labelwidth;
	theight=Inc.pageHeight;
	twidth=lbwd;
	vh= theight;
	
	PageValues.ac = parent.parent.maxSession.current;
	PageValues.cNum = parent.parent.maxSession.pages[pc];
	
	if(isArray(Inc.LabelCount)){
		PageValues.lc = Inc.LabelCount[PageValues.ac];
		PageValues.lpp = Inc.LabelPerPage[PageValues.ac];
		PageValues.ls = Inc.LabelStart[PageValues.ac];
	}else{
		PageValues.lc = Inc.LabelCount;
		PageValues.lpp = Inc.LabelPerPage;
		PageValues.ls = Inc.LabelStart;
	}
	// need to know what label number to start at if more than one page
	if(PageValues.lc > PageValues.lpp){
		// there is more than one page set the start counter
		if (PageValues.cNum > 1){
			PageValues.prev=true;
			PageValues.sc = ((PageValues.cNum-1)* PageValues.lpp);
			PageValues.sc = PageValues.sc +1
			if ((PageValues.sc+PageValues.lpp) <= PageValues.lc){
				PageValues.ec = (PageValues.cNum*PageValues.lpp);
				PageValues.next=true;
			}else{
				PageValues.ec = PageValues.lc;
				PageValues.next=false;
				PageValues.prev=true;
			}
		}else{
			PageValues.next=true;
			PageValues.prev=false;
			PageValues.sc = PageValues.ls;
			PageValues.ec = PageValues.lpp;
		}
		
	}else{
		if (pc != 1){
			parent.parent.maxSession.pages[pc] = 0;
		}
		PageValues.prev = false;
		PageValues.next = false;
		PageValues.sc = PageValues.ls;
		PageValues.ec = PageValues.lc;
	}
	
	initControls_max_page_scripts();	
}

//---------------------------------------------------------------------------
// Function.... initControls_max_page_scripts()
// Description: This function initializes the slide buttons and counter
// Parameters.:
// Revisions..:
//---------------------------------------------------------------------------

function initControls_max_page_scripts(){
	parent.parent.maxBtnStatus[pc][1] = true; 
	parent.parent.maxBtnStatus[pc][2] = (!PageValues.prev); 
	parent.parent.maxBtnStatus[pc][3] = (!PageValues.next); 
	parent.parent.maxBtnStatus[pc][4] = true; 

	if (parent.parent.PageLoaded.Control){
		parent.parent.control.set_slide_controls(pc);
	}
}

//---------------------------------------------------------------------------
// Function.... writeHtml()
// Description: This function is used to write the page html
// Parameters.: none
// Revisions..:
//---------------------------------------------------------------------------

function writeHtml(){
	document.write("<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\""+twidth+"\" height=\""+theight+"\">\n");
	vh = vh-Inc.LabelTopSpace;
	document.write("<tr><td width=\""+lbwd+"\" align=\"left\" height=\""+Inc.LabelTopSpace+"\" background=\"../../images/dot_clr.gif\"></td></tr>");
	// loop through all the labels for this page
	for (i=PageValues.sc; i<=(PageValues.ec); i++){
		// this is so the caption options dont show if we are not using cc
		if (Inc.LabelName == "option"&&!parent.parent.maxPlayer.captioning&&i>6){

		}else{
		if(isArray(Inc.LabelHeight)){
			lbht = Inc.LabelHeight[i];
		}else{
			lbht = Inc.LabelHeight;
		}
		document.write("<tr><td align=\"left\">");
		//alert("lbht = "+lbht+"\ni = "+i)

		if (Inc.ImgRollover[i]){
			document.write("<a href=\"#\" onclick=\""+Inc.RefLinks[i]+" return false;\" onMouseOver=\"MM_swapImage('ImageA"+i+"','','"+Inc.LabelPath+Inc.LabelName+(i)+"_on.gif',1);\" onMouseOut=\"MM_swapImgRestore()\" >");
			document.write("<img name=\"ImageA"+i+"\" id=\"ImageA"+i+"\" border=\"0\" src=\""+Inc.LabelPath+Inc.LabelName+(i)+".gif\" width=\""+lbwd+"\"	height=\""+lbht+"\"></a>");
		}else{
			document.write("<img border=\"0\" src=\""+Inc.LabelPath+Inc.LabelName+(i)+".gif\" width=\""+lbwd+"\" height=\""+lbht+"\">");
		}  
		document.write("</td></tr>");
		vh = vh-lbht;	
		}
	}
	if (PageValues.next && (Inc.LabelName != "faqanswer")){
		document.write("<tr><td align=\"left\">");
		document.write("<a href=\"#\" onclick=\"parent.parent.control.getpage('slide3','next'); return false;\"  >");
		document.write("<img border=\"0\" src=\""+parent.parent.maxPath.labels+"more.gif\" width=\"320\" height=\"15\">");
		document.write("</a></td></tr>");
		vh = vh-15;	
	}
	if (vh > 0){
		document.write("<tr><td width=\""+twidth+"\" align=\"left\" height=\""+vh+"\" background=\"../../images/spacer.gif\"></td></tr>");
	}
	document.write("</table>\n");
}

//---------------------------------------------------------------------------
// Function.... writeArrHtml()
// Description: This function is used to write the page html if it uses
//				an array like topics nad resources
// Parameters.: none
// Revisions..:
//---------------------------------------------------------------------------

function writeArrHtml(){
	document.write("<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\""+twidth+"\" height=\""+theight+"\">\n");
	document.write("<tr><td width=\""+lbwd+"\" align=\"left\" height=\""+Inc.LabelTopSpace[PageValues.ac]+"\" background=\"../../images/dot_clr.gif\"></td></tr>");
	// write the spacer
	vh = vh-Inc.LabelTopSpace[PageValues.ac];
	// loop through all the labels for this page
	for (i=PageValues.sc; i<=(PageValues.ec); i++){
		if(isArray(Inc.LabelHeight[PageValues.ac])){
			lbht = Inc.LabelHeight[PageValues.ac][i];
		}else{
			lbht = Inc.LabelHeight[PageValues.ac];
		}
		document.write("<tr><td align=\"left\">");
		if (Inc.ImgRollover[PageValues.ac][i]){
			document.write("<a href=\"#\" onclick=\""+Inc.RefLinks[PageValues.ac][i]+" return false;\" onMouseOver=\"MM_swapImage('ImageA"+i+"','','"+Inc.LabelPath[PageValues.ac]+Inc.LabelName+(i)+"_on.gif',1);\" onMouseOut=\"MM_swapImgRestore()\" >");
			document.write("<img name=\"ImageA"+i+"\" id=\"ImageA"+i+"\" border=\"0\" src=\""+Inc.LabelPath[PageValues.ac]+Inc.LabelName+(i)+".gif\" width=\""+lbwd+"\" height=\""+lbht+"\"></a>");
		}else{
			document.write("<img border=\"0\" src=\""+Inc.LabelPath[PageValues.ac]+Inc.LabelName+(i)+".gif\" width=\""+lbwd+"\" height=\""+lbht+"\">");
		}  
		document.write("</td></tr>");
		vh = vh-lbht;	
	}
	if (PageValues.next){
		if (vh > 15){
			vh = vh-15
			document.write("<tr><td width=\""+twidth+"\" align=\"left\" height=\""+vh+"\" background=\"../../images/dot_clr.gif\"></td></tr>");
		}

		document.write("<tr><td align=\"left\">");
		document.write("<a href=\"#\" onclick=\"parent.parent.control.getpage('slide3','next'); return false;\"  >");
		document.write("<img border=\"0\" src=\""+parent.parent.maxPath.labels+"more.gif\" width=\"320\" height=\"15\">");
		document.write("</a></td></tr>");
		vh = vh-15;	
	}else{
		if (vh > 0){
			document.write("<tr><td width=\""+twidth+"\" align=\"left\" height=\""+vh+"\" background=\"../../images/dot_clr.gif\"></td></tr>");
		}
	}
	document.write("</table>\n");
}

//---------------------------------------------------------------------------
// Function.... writeLabels()
// Description: This function is used to write the page labels
// Parameters.: none
// Revisions..: 
//---------------------------------------------------------------------------

function writeLabels(){

	pgtext = "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\""+twidth+"\" height=\""+theight+"\">\n";
	vh = vh-Inc.LabelTopSpace;
	pgtext += "<tr><td width=\""+lbwd+"\" align=\"left\" height=\""+Inc.LabelTopSpace+"\" background=\"../images/content/space.gif\"></td></tr>\n";
	// loop through all the labels for this page
	for (i=PageValues.sc; i<=(PageValues.ec); i++){
		if(isArray(Inc.LabelHeight)){
			lbht = Inc.LabelHeight[i];
		}else{
			lbht = Inc.LabelHeight;
		}
		pgtext += "<tr><td nowrap align=\"left\ valign=\"top\">";
		if (Inc.ImgRollover[i]){
			pgtext += "<a href=\"#\" onclick=\""+Inc.RefLinks[i]+" return false;\" onMouseOver=\"MM_swapImage('ImageA"+i+"','','../images/content/bullet_on.gif',1);\" onMouseOut=\"MM_swapImgRestore()\" >\n";
			pgtext += "<span class=\"lbltext\"><img name=\"ImageA"+i+"\" id=\"ImageA"+i+"\" border=\"0\" src=\"../images/content/bullet_off.gif\" width=\"30\" height=\"15\" align=\"top\"></span>\n";
			pgtext += "<span class=\"lbltext\">"+Inc.LabelText[i]+"</span></a>";
		}else{
			pgtext += "<img border=\"0\" src=\"../images/content/space.gif\" width=\"33\" height=\"15\">";
			pgtext += "<span class=\"lbltext\">"+Inc.LabelText[i]+"</span>";
		}  
		pgtext += "</td></tr>\n";
		vh = vh-lbht;	
	}
	if (vh > 0){
		pgtext += "<tr><td width=\""+twidth+"\" align=\"left\" height=\""+vh+"\" background=\"../../images/space.gif\"></td></tr>\n";
	}
	pgtext += "</table>\n";

	if (PageValues.next ||PageValues.prev ){
		pgtext += "<div style=\"position:absolute;left:0px;top:"+(theight-20)+"px;width:"+twidth+"px;height:30px;\">";
		pgtext += "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\""+twidth+"\" height=\"15\">\n";
		pgtext += "<tr><td align=\"left\">";
		if (PageValues.cNum > 1){
			pgtext += "<a href=\"#\" onclick=\"parent.parent.control.getpage('slide2','prev'); return false;\" onMouseOver=\"MM_swapImage('prevp','','../images/content/prev_bullet_on.gif',1);\" onMouseOut=\"MM_swapImgRestore()\" >\n";
			pgtext += "<span class=\"lbltext\"><img name=\"prevp\" id=\"prevp\" border=\"0\" src=\"../images/content/prev_bullet_off.gif\" width=\"30\" height=\"20\" align=\"top\"></span>\n";
			pgtext += "<span class=\"lblmore\">"+ptag+"</span></a>";
		}else{
			pgtext += "&nbsp;"
		}
		if (PageValues.next){
			pgtext += "</td><td align=\"right\">";
			pgtext += "<a href=\"#\" onclick=\"parent.parent.control.getpage('slide3','next'); return false;\" onMouseOver=\"MM_swapImage('nextp','','../images/content/next_bullet_on.gif',1);\" onMouseOut=\"MM_swapImgRestore()\" >\n";
			pgtext += "<span class=\"lblmore\">"+ntag+"</span><img name=\"nextp\" id=\"nextp\" border=\"0\" src=\"../images/content/next_bullet_off.gif\" width=\"30\" height=\"22\" align=\"top\">\n";
			pgtext += "</a>";
			pgtext += "</td></tr>";
			pgtext += "</table>\n";
			pgtext += "</div>";
		}
	}
	document.write(pgtext);
}

//---------------------------------------------------------------------------
// Function.... writeArrLabels()
// Description: This function is used to write the page html if it uses 
//				an array like topics nad resources
// Parameters.: none
// Revisions..: 
//---------------------------------------------------------------------------

function writeArrLabels(){
	pgtext = "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\""+twidth+"\" height=\""+theight+"\">\n";
	vh = vh-Inc.LabelTopSpace[PageValues.ac];
	pgtext += "<tr><td colspan=2>";
	pgtext += "<img border=\"0\" src=\"../images/content/space.gif\" width=\""+lbwd+"\" height=\""+Inc.LabelTopSpace[PageValues.ac]+"\" align=\"top\"></td></tr>\n";

	
	// loop through all the labels for this page
	for (i=PageValues.sc; i<=(PageValues.ec); i++){
		if(isArray(Inc.LabelHeight[PageValues.ac])){
			lbht = Inc.LabelHeight[PageValues.ac][i];
		}else{
			lbht = Inc.LabelHeight[PageValues.ac];
		}
		pgtext += "<tr><td nowrap align=\"left\ valign=\"top\">";
		if (Inc.ImgRollover[PageValues.ac][i]){

			if (Inc.LabelLeftTab[PageValues.ac][i] ){
			
				pgtext += "<img border=\"0\" src=\"../images/content/space.gif\" width=\""+Inc.LabelLeftTab[PageValues.ac][i]+"\" height=\"20\">";
			}


			pgtext += "<a href=\"#\" onclick=\""+Inc.RefLinks[PageValues.ac][i]+" return false;\" onMouseOver=\"MM_swapImage('ImageA"+i+"','','../images/content/bullet_on.gif',1);\" onMouseOut=\"MM_swapImgRestore()\" >\n";
			pgtext += "<span class=\"lbltext\"><img name=\"ImageA"+i+"\" id=\"ImageA"+i+"\" border=\"0\" src=\"../images/content/bullet_off.gif\" width=\"30\" height=\"15\" align=\"top\"></span>\n";

			pgtext += "<span class=\"lbltext\">"+Inc.LabelText[PageValues.ac][i]+"</span></a>";
		}else{
			pgtext += "<img border=\"0\" src=\"../images/content/space.gif\" width=\"30\" height=\"20\">";
			pgtext += "<span class=\"lbltext\">"+Inc.LabelText[PageValues.ac][i]+"</span>";
		}  
		pgtext += "</td></tr>\n";
		vh = vh-lbht;	
	}
	if (vh > 0){
		pgtext += "<tr><td width=\""+twidth+"\" align=\"left\" height=\""+vh+"\" background=\"../../images/space.gif\"></td></tr>\n";
	}
	pgtext += "</table>\n";

	if (PageValues.next ||PageValues.prev ){
		pgtext += "<div style=\"position:absolute;left:0px;top:"+(theight-20)+"px;width:"+twidth+"px;height:30px;\">";
		pgtext += "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\""+twidth+"\" height=\"20\">\n";
		pgtext += "<tr><td align=\"left\">";
		if (PageValues.cNum > 1){
			pgtext += "<a href=\"#\" onclick=\"parent.parent.control.getpage('slide2','prev'); return false;\" onMouseOver=\"MM_swapImage('prevp','','../images/content/prev_bullet_on.gif',1);\" onMouseOut=\"MM_swapImgRestore()\" >\n";
			pgtext += "<span class=\"lblmore\"><img name=\"prevp\" id=\"prevp\" border=\"0\" src=\"../images/content/prev_bullet_off.gif\" width=\"30\" height=\"15\" align=\"top\">\n";
			pgtext += ptag+"</span></a>";
		}else{
			pgtext += "&nbsp;"
		}
		if (PageValues.next){
			pgtext += "</td><td align=\"right\">";
			pgtext += "<a href=\"#\" onclick=\"parent.parent.control.getpage('slide3','next'); return false;\" onMouseOver=\"MM_swapImage('nextp','','../images/content/next_bullet_on.gif',1);\" onMouseOut=\"MM_swapImgRestore()\" >\n";
			pgtext += "<span class=\"lblmore\">"+ntag+"<img name=\"nextp\" id=\"nextp\" border=\"0\" src=\"../images/content/next_bullet_off.gif\" width=\"30\" height=\"15\" align=\"top\"></span>\n";
			pgtext += "</a>";
			pgtext += "</td></tr>";
			pgtext += "</table>\n";
			pgtext += "</div>";
		}

	}

	document.write(pgtext);
}

//---------------------------------------------------------------------------
// Function.... writenavLabels()
// Description: This function is used to write the nav page labels
// Parameters.: none
// Revisions..:
//---------------------------------------------------------------------------

function writenavLabels(){
	var alttext = "";

	document.write("<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\""+twidth+"\" height=\""+theight+"\">\n");
	vh = vh-Inc.LabelTopSpace;
	document.write("<tr><td colspan=2 width=\""+lbwd+"\" align=\"left\" height=\""+Inc.LabelTopSpace+"\" background=\"../images/content/space.gif\"></td></tr>");
	// loop through all the buttons labels for this page
	var bn = (parent.parent.maxHeader.hbname.length - 1);	// number of buttons
	for (i=0; i<=bn; i++){
		document.write("<tr><td align=\"center\" valign=\"top\" style=\"padding:5px;\">");
		document.write("<img src=\""+parent.parent.navbar.HBImage_path+parent.parent.maxHeader.hbname[i]+"_off.gif\" width=60 height=35 border=0></td>\n");
		document.write("<td align=\"left\" valign=\"top\" style=\"padding:5px;\">");
		eval('alttext = parent.parent.navbar.ToolTips.'+parent.parent.maxHeader.hbname[i]);
		document.write("<span class=\"lbltext\">"+alttext+"</span></td></tr>");
		vh = vh-35;	
		}
	if (vh > 0){
		document.write("<tr><td colspan=2 width=\""+twidth+"\" align=\"left\" height=\""+vh+"\" background=\"../images/content/space.gif\"></td></tr>");
	}
	document.write("</table>\n");
}

//---------------------------------------------------------------------------
// Function.... isArray(obj)
// Description: This function is check to see if an object is an array
//              returns true if object is an array, returns false if it is not 
// Parameters.: obj - the object name tobe checked
// Revisions..:
//---------------------------------------------------------------------------

function isArray(obj) {
   if (obj.constructor.toString().indexOf("Array") == -1)
      return false;
   else
      return true;
}

//---------------------------------------------------------------------------
// Function.... MM_swapImgRestore() 
// Description: 
// Parameters.: none
// Revisions..: 
//---------------------------------------------------------------------------

function MM_swapImgRestore() { //v3.0
	var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

//---------------------------------------------------------------------------
// Function.... MM_swapImage()
// Description: this function swaps an image
// Parameters.: none 
// Revisions..:
//---------------------------------------------------------------------------

function MM_swapImage() { //v3.0
	var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
	if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

//---------------------------------------------------------------------------
// Function.... MM_findObj(n, d)
// Description: this function is used to find objects
// Parameters.: n - object name     , d - document
// Revisions..:
//---------------------------------------------------------------------------

function MM_findObj(n, d) { //v4.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}

//---------------------------------------------------------------------------
// File.......: max_content_scripts.js
// Created....: January 15, 2004 
// Purpose....: this file contains content page scripts used by various pages
//---------------------------------------------------------------------------

//---------------------------------------------------------------------------
// Function.... checktld_max_content_scripts()
// Description: This function checks to see if the home page is loaded
// Parameters.:
// Revisions..:
//---------------------------------------------------------------------------
function checktld_max_content_scripts() {
	var tlLoaded = parent.PageLoaded.Top;
	if (!tlLoaded) {
		setTimeout("checktld_max_content_scripts()", 30);
	}else {
		init_max_content();
	}
}

//---------------------------------------------------------------------------
// Function.... init_max_content()
// Description: This function initializes the page and sets the buttons if
//              required 
// Parameters.: none
// Revisions..:
//---------------------------------------------------------------------------

function init_max_content(){
	parent.content.maxPage.Imgload = true;
	//load the frames with the pages
	for (p=0; p<=parent.maxHeader.hblinks.length; p++){
		if (parent.maxHeader.hblinks[p] != null){
			if (p == parent.maxUserDef.startpage){
				//set this frame to be displayed
				parent.content.maxPage.pshow = "page"+p;
				parent.content.maxPage.name = parent.maxHeader.hbname[p];
				parent.content.maxPage.current = p;
			}
			// change the SRC attribute 
			pgf=parent.content.frames[p];

			if (pgf.src!=null) {
				if (document.layers){
					if (p == parent.maxUserDef.startpage){
						pgf.src = parent.maxPath.html+parent.maxHeader.hblinks[p]
					}
				}else{
					pgf.src = parent.maxPath.html+parent.maxHeader.hblinks[p]	
				}
			}else{
				pgf.location.replace(parent.maxPath.html+parent.maxHeader.hblinks[p]);
			}
		}

	}
	parent.content.maxPage.pnew = null;
	parent.PageLoaded.Content = true;
	if (parent.noLayer){parent.loader.layerWrite("",15,20)}
}

//---------------------------------------------------------------------------
// Function.... MM_showHideLayers()
// Description: this function shows or hides a layer
// Parameters.: none
// Revisions..: 
//---------------------------------------------------------------------------

function MM_showHideLayers() { //v3.0
	var i,p,v,obj,args=MM_showHideLayers.arguments;
	for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
	if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
	obj.visibility=v; }
}

//---------------------------------------------------------------------------
// Function.... preload(imgObj,imgSrc)
// Description: This function is used to preload images
// Parameters.: imgObj - the image object name,  imgSrc - the image source
// Revisions..:
//---------------------------------------------------------------------------

function preload(imgObj,imgSrc) {
	if (document.images) {
		eval(imgObj+' = new Image()')
		eval(imgObj+'.src = "'+imgSrc+'"')
	}
}

//---------------------------------------------------------------------------
// Function.... getIncvals(pname)
// Description: This function is used to load the button state in a central
//              array
// Parameters.: pname - the page name
// Revisions..:
//---------------------------------------------------------------------------

function getIncvals(pn){
	maxcBtnsts =  parent.maxBtnStatus[pn]
}

//---------------------------------------------------------------------------
// Function.... loadextrapage(pref,pname)
// Description: This function is used to get
// Parameters.: pref -      , pname - 
// Revisions..:
//---------------------------------------------------------------------------

function loadextrapage(pref,pn){
	pgf=parent.content.frames[pn]
	if (pgf.src!=null) {
		pgf.src = parent.maxPath.html+pref;
	}else{
		pgf.location.replace(parent.maxPath.html+pref);
	}
	maxPage.current = pn;
	parent.maxSession.pages[pn] = 0;
	parent.control.set_slide_controls(pn);
	if (parent.navbar.selectedButton != null){
		parent.navbar.imgReset()
	}
	parent.navbar.selectedButton = null;
}

//---------------------------------------------------------------------------
// Function.... reloadframes()
// Description: This function is used to reload frames 1,2,3 when new session
//              is loaded
// Parameters.:
// Revisions..:
//---------------------------------------------------------------------------

function reloadframes(){ 
	for (i=1; i<4; i++){
		pgf=parent.content.frames[i]
		if (pgf.src!=null) {
			pgf.src = pgf.src;
		}else{
			pgf.location = pgf.location;
		}
	}
}

//---------------------------------------------------------------------------
// Function.... switchpage()
// Description: This function is used to get the next or previous page
// Parameters.: bn - button number  2 = previous  3 = next
// Revisions..: 
//---------------------------------------------------------------------------

function switchpage(bnum){
	var tst = "";
	var cref = "";
	pgf=parent.content.frames[bnum]

	//debugger;
	// get the current page source
	if (pgf.src!=null){
		tst = pgf.src;
	}else{
		// cannot get pgf.location.href for url's that are not located within
		// the project (cross-site scripting security feature)
		if( parent.button_name[bnum]=="participate" ){
			cref = "participate";
		} else {
			tst = pgf.location.href;
			cref = tst.substring((tst.lastIndexOf("/")+1),tst.lastIndexOf("."))
		}
	}	
	
	// is the page curently loaded and displayed
	if (maxPage.current == bnum && parent.maxHeader.hbname[bnum] == cref){
	//	getIncvals(bname);
		return;  // yes
	}else{	//no
		if (parent.maxHeader.hbname[bnum]  != cref){
			// page is not loaded so we need to reload it	
			if (pgf.src!=null) {
				pgf.src = parent.maxPath.html+parent.maxHeader.hblinks[bnum]
			}else{
				pgf.location.replace(parent.maxPath.html+parent.maxHeader.hblinks[bnum]);
			}
		}
		getIncvals(bnum);
		maxPage.pnew = "page"+bnum;
		MM_showHideLayers(maxPage.pshow,'','hide');
		MM_showHideLayers(maxPage.pnew,'','show');
	
		maxPage.current = bnum;
		maxPage.name = parent.maxHeader.hbname[bnum];
		maxPage.pshow = maxPage.pnew;
		maxPage.pnew = null;

		parent.control.set_slide_controls(bnum);

		if (parent.navbar.selectedButton != null){
			if (parent.navbar.selectedButton.rnum != bnum){
				parent.navbar.imgReset()
				parent.navbar.imgSet(bnum)
			}
		}
	}
}

function hideAllContentPages (){		
	MM_showHideLayers("page0",'','hide');
	MM_showHideLayers("page1",'','hide');
	MM_showHideLayers("page2",'','hide');
	MM_showHideLayers("page3",'','hide');
	MM_showHideLayers("page4",'','hide');
	MM_showHideLayers("page5",'','hide');
	MM_showHideLayers("page6",'','hide');	
}


//---------------------------------------------------------------------------
// Function.... writecss()
// Description: This function is used to write the css styles for the
//              content page
// Parameters.:
// Revisions..:
//---------------------------------------------------------------------------

function writecss(){
	document.write("<style type=\"text/css\" >\n");
	document.write("<!--\n");
	document.write("#pInterface {position:absolute; left:"+maxPage.left+"; top:"+maxPage.top+"; width: "+maxPage.width+"; height: "+maxPage.height+";clip:rect(0,"+maxPage.width+","+maxPage.height+",0);visibility:visible;}\n");
	for (d=0; d<=maxPage.count; d++){
		document.write("#page"+d+" {position:absolute;overflow:hidden; left:0; top:0; width:"+maxPage.width+"; height: "+maxPage.height+"; clip:rect(0,"+maxPage.width+","+maxPage.height+",0);");
		if (d == parent.maxUserDef.startpage){
			document.write("visibility:visible;}");
		}else{
			document.write("visibility:hidden;}");
		}
	}
	document.write("-->\n");
	document.write("</style>\n");
}

//---------------------------------------------------------------------------
// File.......: header_scripts.js
// Created....: Jan 5, 2004
// Purpose....: this file contains the scripts for header page
//---------------------------------------------------------------------------

//---------------------------------------------------------------------------
// Function.... checktop()
// Description: This function checks to see if the home page is loaded
// Parameters.:
// Revisions..:
//---------------------------------------------------------------------------

function checktop() {
	var tlLoaded = parent.PageLoaded.Top;
	if (!tlLoaded) {
		setTimeout("checktop()", 30);
	}else {
		init_main_header();
	}
}

//---------------------------------------------------------------------------
// Function.... init_main_header_vars()
// Description:
// Parameters.:
// Revisions..:
//---------------------------------------------------------------------------

function init_main_header_vars(){
	ac = parent.maxSession.current;
	bn = parent.maxHeader.hbname.length;	// number of buttons
	//var bc = 5;		// number of button;s
	bc = (bn - 1);

	selectedButton = new Object();
	
	//preload the button images		
	for (b=0; b<=bc; b++){

		preload(HBname+b+"on",HBImage_path+parent.maxHeader.hbname[b]+"_on.gif");
		preload(HBname+b+"off",HBImage_path+parent.maxHeader.hbname[b]+"_off.gif");
		preload(HBname+b+"dis",HBImage_path+parent.maxHeader.hbname[b]+"_dis.gif");
		preload(HBname+b+"dn",HBImage_path+parent.maxHeader.hbname[b]+"_down.gif");
	
	}
}

//---------------------------------------------------------------------------
// Function.... init_main_header()
// Description: This function is used to initialize the page images
// Parameters.: imgObj - the image object name,  imgSrc - the image source
// Revisions..:
//---------------------------------------------------------------------------

function init_main_header(){

	init_main_header_vars();
	
	//parent.maxImages.navbtn = HBname;
	//ac = 1;
	ac = parent.maxSession.current;
	if (parent.maxUserDef.useheader){
		// loop through the buttons and 
		// change the disbled ones
		for (b=0; b<=bc; b++){
			if ((x=MM_findObj(HBname+b))!=null){
				x.fsrc = HBImage_path+parent.maxHeader.hbname[b]+bstate[0]+img_ext	//off
				x.osrc = HBImage_path+parent.maxHeader.hbname[b]+bstate[1]+img_ext	//on
				x.dsrc = HBImage_path+parent.maxHeader.hbname[b]+bstate[2]+img_ext	//down
				x.ssrc = HBImage_path+parent.maxHeader.hbname[b]+bstate[3]+img_ext	//dis
				x.rnum = b									//button number
				if (b == parent.maxUserDef.startpage){
					x.src  = x.osrc;
					//document.body.selectedItem = x
					selectedButton = x;
					x.disabled = false;
				}else{
					if (nav_but_sts[b][ac]){
						x.src = x.ssrc;
						x.disabled = nav_but_sts[b][ac];
					}else{
						x.src = x.fsrc;
						x.disabled = nav_but_sts[b][ac];
					}
				}
			}
		}	
	}		
	parent.PageLoaded.Nav = true;
	if (parent.noLayer){parent.loader.layerWrite("Navigation Loaded",12,10)}
}

//---------------------------------------------------------------------------
// Function.... toggleimg(en, state)
// Description: This function is used to check if the button is disabled 
// Parameters.: en => object name   state => on, off, down
// Revisions..:
//---------------------------------------------------------------------------

function isDefined(variable){
    return (typeof(window[variable]) == "undefined")?  false: true;
}

function toggleimg(en,state){
	if ((x=MM_findObj(en))!=null){
		if (!x.disabled){
			
			if(typeof selectedButton != 'undefined' && selectedButton) {
				if (selectedButton != x) { // First selection
					if (state == "on"){
						x.src  = x.osrc;
					}else if (state == "off"){
						x.src  = x.fsrc;
					}else if (state == "dn"){
						x.src  = x.dsrc;
					}
				}
			}else{
				if (state == "on"){
					x.src  = x.osrc;
				}else if (state == "off"){
					x.src  = x.fsrc;
				}else if (state == "dn"){
					x.src  = x.dsrc;
				}
			}
		}
	}
}


//---------------------------------------------------------------------------
// Function.... checklink()
// Description: This function is used to check if the button is disabled 
//				if not then execute the command 
// Parameters.: bnum - button number  
//              bname - name of the button
//				btarg - the target       
// Revisions..:     0,'sessions','content'      
//---------------------------------------------------------------------------

function checklink(en, bnum, bname, btarg){
	if ((x=MM_findObj(en))!=null){
		if (!x.disabled){
			if (selectedButton != x) { 
			// deselect the current button image
				if (selectedButton != null){
					var cx = selectedButton;
					cx.src = cx.fsrc;
				}
				selectedButton = x;
				x.src  = x.osrc;
				// do the switch page function here
//				parent.content.movepage(1); // Move to first page of content window
				if(bname == "participate" || bname == "share") {
					//
				} else {
					parent.content.switchpage(bnum);
				}
			} else {
			//	alert(bname);
				if(bname = "participate" || bname == "share") {
					if (selectedButton != null){
						var cx = selectedButton;
						cx.src = cx.fsrc;
					}
					selectedButton = x;
					x.src  = x.osrc;
					// do the switch page function here
					//parent.content.switchpage(bnum);
				}
			}
		}
	}
}

function doParticipate(checklink_en, checklink_bname, checklink_bnum, checklink_btarg){
	
			var strLoc = ""
			strLoc = strLoc + location;
			strLoc = strLoc.replace("html/main_header.htm", "max_home.htm");
			if (parent.maxStreamInfo.lang == "e")
				theLanguage = "EN";
			else
				theLanguage = "FR";
			
			
			var strURL = strLoc;

			//bnum is usually used for top nav button number, in this case we are using it for the div page number in max_content_if.htm 
			bnum = 6;
			pgf=parent.content.frames[bnum];
			parent.content.maxPage.pnew = "page"+bnum;

			// load the page in iframe id=pg6frame and div=page6
			if (pgf.src!=null) {
				pgf.src = "participate_"+theLanguage+".htm?w="+parent.maxPlayer.mpwidth+"&h="+parent.maxPlayer.mpheight+"&l="+theLanguage+"&pos="+parent.player_position+"&m="+parent.maxSlide.current+"&prj="+parent.project_name+"&id="+strURL;
			}else{

				pgf.location.replace("participate_"+theLanguage+".htm?w="+parent.maxPlayer.mpwidth+"&h="+parent.maxPlayer.mpheight+"&l="+theLanguage+"&pos="+parent.player_position+"&m="+parent.maxSlide.current+"&prj="+parent.project_name+"&id="+strURL);
			}
			
			getIncvals(bnum);
			parent.content.maxPage.pnew = "page"+bnum;
			parent.content.MM_showHideLayers(parent.content.maxPage.pshow,'','hide');
			parent.content.MM_showHideLayers(parent.content.maxPage.pnew,'','show');
			parent.content.maxPage.current = -1;
			parent.content.maxPage.name = "participate";
			parent.content.maxPage.pshow = parent.content.maxPage.pnew;
			parent.content.maxPage.pnew = null;
			//disable the next and previous slide buttons, 0 represents a top nav button that would disable the nav buttons
			parent.control.set_slide_controls(0);
			if (parent.navbar.selectedButton != null){
				if (parent.navbar.selectedButton.rnum != bnum){
					parent.navbar.imgReset();
					parent.navbar.imgSet(bnum);
				}
			}
			
			checklink(checklink_en, checklink_bname, checklink_bnum, checklink_btarg);
			
			return false;
		}

		function sendEmailLink(checklink_en, checklink_bname, checklink_bnum, checklink_btarg) {
			var strLoc = ""
			strLoc = strLoc + location;
			strLoc = strLoc.replace("html/main_header.htm", "max_home.htm");
			if (parent.maxStreamInfo.lang == "e")
				theLanguage = "EN";
			else
				theLanguage = "FR";

			var strURL = encodeHex(parent.window.location.href);
			//bnum is usually used for top nav button number, in this case we are using it for the div page number in max_content_if.htm
			bnum = 6;
			pgf=parent.content.frames[bnum];
			parent.content.maxPage.pnew = "page"+bnum;

			// load the page in iframe id=pg6frame and div=page6
			if (pgf.src!=null) {
				pgf.src = "share_"+theLanguage+".htm?w="+parent.maxPlayer.mpwidth+"&h="+parent.maxPlayer.mpheight+"&l="+theLanguage+"&s="+parent.maxSession.current+"&pos="+parent.player_position+"&m="+parent.maxSlide.current+"&prj="+parent.project_name+"&id="+strURL;
			}else{
				pgf.location.replace("share_"+theLanguage+".htm?w="+parent.maxPlayer.mpwidth+"&h="+parent.maxPlayer.mpheight+"&l="+theLanguage+"&s="+parent.maxSession.current+"&pos="+parent.player_position+"&m="+parent.maxSlide.current+"&prj="+parent.project_name+"&id="+strURL);
			}

			getIncvals(bnum);
			parent.content.maxPage.pnew = "page"+bnum;
			parent.content.MM_showHideLayers(parent.content.maxPage.pshow,'','hide');
			parent.content.MM_showHideLayers(parent.content.maxPage.pnew,'','show');
			parent.content.maxPage.current = -1;
			parent.content.maxPage.name = "share";
			parent.content.maxPage.pshow = parent.content.maxPage.pnew;
			parent.content.maxPage.pnew = null;
			//disable the next and previous slide buttons, 0 represents a top nav button that would disable the nav buttons
			parent.control.set_slide_controls(0);
			if (parent.navbar.selectedButton != null){
				if (parent.navbar.selectedButton.rnum != bnum){
					parent.navbar.imgReset()
					parent.navbar.imgSet(bnum)
				}
			}

			checklink(checklink_en, checklink_bname, checklink_bnum, checklink_btarg);
			
			return false;
		}		
//---------------------------------------------------------------------------
// Function.... writebuttons()
// Description: This function is used to write the buttons html to the page
// Parameters.: none
// Revisions..:       
//---------------------------------------------------------------------------

function writebuttons(){
	otherwidth = 149;   // 253; 
	blankwidth = 0;
	buttonwidth = 0;
	tiptext = "";

	buttonwidth = (bn * HBIwidth[0]);
	x = (buttonwidth + otherwidth);
	y = (750 - x);
	blankwidth = Math.abs(y /2);

	document.write("<tr>");
	document.write("<td><img src=\"../images/header/header_left.gif\" width="+hleft_wd+" height="+head_height+"></td>");
	document.write("<td><img src=\"../images/header/header_left_blank.gif\" width=\""+blankwidth+"\" height="+head_height+"></td>");
	document.write("<td><img src=\"../images/header/header_left_bedge.gif\" width="+hleft_edgewd+" height="+head_height+"></td>");
	document.write("<td>");
	document.write("<table width=\""+buttonwidth+"\" border=0 cellpadding=0 cellspacing=0>");
	document.write("<tr>");

	if (parent.maxUserDef.useheader){
		// loop through all the buttons for this page
		
		for (i=0; i<=bc; i++){
			eval('tiptext = ToolTips.'+parent.maxHeader.hbname[i]);
			document.write("<td>");

			switch(parent.maxHeader.hbname[i]) {
				case 'participate':
					document.write("<a href=\"#\" onclick=\"doParticipate('"+HBname+i+"',"+i+",'"+parent.maxHeader.hbname[i]+"'); return false;\" ");
				break;
				case 'share':
					document.write("<a href=\"#\" onclick=\"sendEmailLink('"+HBname+i+"',"+i+",'"+parent.maxHeader.hbname[i]+"'); return false;\" ");
				break;
				default:
					document.write("<a href=\"#\" onclick=\"checklink('"+HBname+i+"',"+i+",'"+parent.maxHeader.hbname[i]+"'); return false;\" ");
				break;
			}

			document.write("onMouseOver=\"toggleimg('"+HBname+i+"','on');\" ");

			//if (i != parent.maxUserDef.startpage){
				document.write("onMouseOut=\"toggleimg('"+HBname+i+"','off');\" ");
			//}
			document.write("onMouseDown=\"toggleimg('"+HBname+i+"','dn');\" ");
			document.write("onMouseUp=\"toggleimg('"+HBname+i+"','on');\" ");
			document.write("Title=\""+tiptext+"\" > ");
			document.write("<img id=\""+HBname+i+"\" name=\""+HBname+i+"\" ");
			document.write("src=\""+HBImage_path+parent.maxHeader.hbname[i]+"_blank.gif\" alt=\""+tiptext+"\" width="+HBIwidth[i]+" height="+HBIheight[i]+" border=0></a></td>\n");
		}
	}else{
		for (i=0; i<=bc; i++){
			document.write("<td>");
			document.write("<img id=\""+HBname+i+"\" name=\""+HBname+i+"\" ");
			document.write("src=\""+HBImage_path+parent.maxHeader.hbname[i]+"_blank.gif\" width="+HBIwidth[i]+" height="+HBIheight[i]+" border=0></td>\n");
		}

	}

	document.write("</tr></table></td>");
	document.write("<td><img src=\"../images/header/header_right_bedge.gif\" width="+hright_wd+" height="+head_height+"></td>");
	document.write("<td><img src=\"../images/header/header_right_blank.gif\" width=\""+blankwidth+"\" height="+head_height+"></td>");
	document.write("<td><img src=\"../images/header/header_right.gif\" width="+hright_edgewd+" height="+head_height+"></td>");
	document.write("</tr>");

}

//---------------------------------------------------------------------------
// Function.... imgReset(el)
// Description: This function is used to reset the selected button  
// Parameters.:
// Revisions..:  
//---------------------------------------------------------------------------

function imgReset(){
	if (selectedButton != null){
		selectedButton.disabled = false;
		selectedButton.src = selectedButton.fsrc;
	}
}

//---------------------------------------------------------------------------
// Function.... imgSet(el)
// Description: This function is used to set the button
// Parameters.:
// Revisions..:  
//---------------------------------------------------------------------------

function imgSet(bn){
	if ((x=MM_findObj(HBname+bn))!=null){
		selectedButton = x;
		selectedButton.src = selectedButton.osrc;
	}
}

//---------------------------------------------------------------------------
// File.......: max_control.js
// Created....: July 15, 2003
// Purpose....: this file contains scripts used by the control pages 
//---------------------------------------------------------------------------

//---------------------------------------------------------------------------
// Function.... checktop_max_control()
// Description: This function checks to see if the home page is loaded   
// Parameters.:
// Revisions..:  
//---------------------------------------------------------------------------

function checktop_max_control() {
	var tlLoaded = parent.PageLoaded.Top;
	if (!tlLoaded) {
		setTimeout("checktop_max_control()", 30);
	}else {
		init_max_control_scripts();
	}
}

function init_max_control_scripts_vars(){
	//---------------------------------------------------------------------------
	// this will preload the counter images
	//---------------------------------------------------------------------------
	for (i=0; i<=9; i++){
		preload("dg"+i,parent.maxPath.digits+"digit"+i+".gif")
	}
	
	preload("dg",parent.maxPath.digits+"digit.gif")
	
	//---------------------------------------------------------------------------
	// need to preload all the control images
	//---------------------------------------------------------------------------
	for (n=0; n<parent.maxControlButtons.names.length; n++){
		for (b=0; b<=parent.maxControlButtons.count[n]; b++){
			for (s=0; s<parent.maxControlButtons.state.length; s++){
				preload(parent.maxControlButtons.names[n]+b+parent.maxControlButtons.state[s],parent.maxPath.button+parent.maxControlButtons.names[n]+parent.maxControlButtons.isub+b+parent.maxControlButtons.state[s]+parent.maxControlButtons.iext);
			}
		}
	}
	
	//---------------------------------------------------------------------------
	//	This will preload the Play and Mute on buttons
	//  if the player flag is true
	//---------------------------------------------------------------------------
	//if (parent.maxControlButtons.player){
		cp = parent.maxPath.button+parent.maxControlButtons.names[0]+parent.maxControlButtons.isub
		PauseObj.fsrc = cp+0+parent.maxControlButtons.state[0]+parent.maxControlButtons.iext	//off
		PauseObj.osrc = cp+0+parent.maxControlButtons.state[1]+parent.maxControlButtons.iext	//on
		PauseObj.dsrc = cp+0+parent.maxControlButtons.state[2]+parent.maxControlButtons.iext	//down
		PauseObj.ssrc = cp+0+parent.maxControlButtons.state[3]+parent.maxControlButtons.iext	//dis
	
		MuteOffObj.fsrc = cp+1+parent.maxControlButtons.state[0]+parent.maxControlButtons.iext	//off
		MuteOffObj.osrc = cp+1+parent.maxControlButtons.state[1]+parent.maxControlButtons.iext	//on
		MuteOffObj.dsrc = cp+1+parent.maxControlButtons.state[2]+parent.maxControlButtons.iext	//down
		MuteOffObj.ssrc = cp+1+parent.maxControlButtons.state[3]+parent.maxControlButtons.iext	//dis
	
		PlayObj.fsrc = cp+"00"+parent.maxControlButtons.state[0]+parent.maxControlButtons.iext	//off
		PlayObj.osrc = cp+"00"+parent.maxControlButtons.state[1]+parent.maxControlButtons.iext	//on
		PlayObj.dsrc = cp+"00"+parent.maxControlButtons.state[2]+parent.maxControlButtons.iext	//down
		PlayObj.ssrc = cp+"00"+parent.maxControlButtons.state[3]+parent.maxControlButtons.iext	//dis
	
		MuteOnObj.fsrc = cp+"01"+parent.maxControlButtons.state[0]+parent.maxControlButtons.iext	//off
		MuteOnObj.osrc = cp+"01"+parent.maxControlButtons.state[1]+parent.maxControlButtons.iext	//on
		MuteOnObj.dsrc = cp+"01"+parent.maxControlButtons.state[2]+parent.maxControlButtons.iext	//down
		MuteOnObj.ssrc = cp+"01"+parent.maxControlButtons.state[3]+parent.maxControlButtons.iext	//dis
	
		for (b=0; b<=2; b++){
			for (s=0; s<parent.maxControlButtons.state.length; s++){
				preload(parent.maxControlButtons.names[0]+"0"+b+parent.maxControlButtons.state[s],parent.maxPath.button+parent.maxControlButtons.names[0]+parent.maxControlButtons.isub+"0"+b+parent.maxControlButtons.state[s]+parent.maxControlButtons.iext);
			}
		}
	//}
}

//---------------------------------------------------------------------------
// Function.... init_max_control_scripts()
// Description: This function initializes the page and sets the buttons if 
//              required  
// Parameters.: none      
// Revisions..: 
//---------------------------------------------------------------------------

function init_max_control_scripts(){
	cp = "";
	tat = "";
	at = null;

	if ((x=MM_findObj('logoimg'))!=null){
		x.fsrc = parent.maxPath.root+parent.maxImages.logoOff	//off
		x.osrc = parent.maxPath.root+parent.maxImages.logoOn//on
	}
	//now we load the french or english footer image 
	if ((x=MM_findObj('footimg'))!=null){
		x.src = parent.maxPath.home+parent.maxImages.footer;
	}
	if ((x=MM_findObj('vsimg1'))!=null){
		x.src = parent.maxPath.home+parent.maxImages.vsimg1;
	}
	if ((x=MM_findObj('vsimg2'))!=null){
		x.src = parent.maxPath.home+parent.maxImages.vsimg2;
	}


	if ((x=MM_findObj('maxFooterBanner'))!=null){
		if(parent.maxUserDef.showFootBanner==true) {
			x.src = parent.maxPath.root+parent.maxImages.footerBanner;
		} else {
			x.src = parent.maxPath.root+"images/control/frame33.gif";		
		}
	}		


	for (n=0; n<parent.maxControlButtons.names.length; n++){
		for (b=0; b<=parent.maxControlButtons.count[n]; b++){
			if ((x=MM_findObj(parent.maxControlButtons.names[n]+b))!=null){
				//tat = parent.maxControlButtons.names[n]+b
				//at = eval("altText."+tat);
				if (parent.maxControlButtons.names[n] == "lang"){
					cp = parent.maxPath.button+parent.maxStreamInfo.lang+"/"+parent.maxControlButtons.names[n]+parent.maxControlButtons.isub+b
				}else if (parent.maxControlButtons.names[n] == "speed"){
					cp = parent.maxPath.button+parent.maxStreamInfo.lang+"/"+parent.maxControlButtons.names[n]+parent.maxControlButtons.isub+b
				}else if (parent.maxControlButtons.names[n] == "ccb"){
					cp = parent.maxPath.button+parent.maxStreamInfo.lang+"/"+parent.maxControlButtons.names[n]+parent.maxControlButtons.isub+b
				}else if (parent.maxControlButtons.names[n] == "share"){
					cp = parent.maxPath.button+parent.maxStreamInfo.lang+"/"+parent.maxControlButtons.names[n]+parent.maxControlButtons.isub+b
				}else if (parent.maxControlButtons.names[n] == "participate"){
					cp = parent.maxPath.button+parent.maxStreamInfo.lang+"/"+parent.maxControlButtons.names[n]+parent.maxControlButtons.isub+b
				}else{
					cp = parent.maxPath.button+parent.maxControlButtons.names[n]+parent.maxControlButtons.isub+b
				}
				x.fsrc = cp+parent.maxControlButtons.state[0]+parent.maxControlButtons.iext	//off
				x.osrc = cp+parent.maxControlButtons.state[1]+parent.maxControlButtons.iext	//on
				x.dsrc = cp+parent.maxControlButtons.state[2]+parent.maxControlButtons.iext	//down
				x.ssrc = cp+parent.maxControlButtons.state[3]+parent.maxControlButtons.iext	//dis
				x.rnum = b									//button number
				x.disabled = false;
			}
			for (s=0; s<parent.maxControlButtons.state.length; s++){
				preload(parent.maxControlButtons.names[0]+"0"+b+parent.maxControlButtons.state[s],parent.maxPath.button+parent.maxControlButtons.names[0]+parent.maxControlButtons.isub+"0"+b+parent.maxControlButtons.state[s]+parent.maxControlButtons.iext);
			}
		}
	}
	if (parent.maxPlayer.useSami||parent.maxPlayer.captioning){
		if ((x=MM_findObj(parent.maxControlButtons.names[4]))!=null){
				cp = parent.maxPath.button+parent.maxControlButtons.names[4]+parent.maxControlButtons.isub
				x.fsrc = cp+parent.maxControlButtons.state[0]+parent.maxControlButtons.iext	//off
				x.osrc = cp+parent.maxControlButtons.state[1]+parent.maxControlButtons.iext	//on
				x.dsrc = cp+parent.maxControlButtons.state[2]+parent.maxControlButtons.iext	//down
				x.ssrc = cp+parent.maxControlButtons.state[3]+parent.maxControlButtons.iext	//dis
				x.rnum = b									//button number
				x.disabled = false;
				x.alt = altText.ccb
		}
	}
	parent.PageLoaded.Control = true;
	if (parent.noLayer){parent.loader.layerWrite("",13,20)}

}

//---------------------------------------------------------------------------
// Function.... toggleimg(el, bnum, state, bname)
// Description: This function is used to check if the button is disabled  
// Parameters.: el => image object  bnum => button number
//				state => on, off
//              bname => name of the button
// Revisions..: 
//---------------------------------------------------------------------------
/*
THIS FUNCTION IS DUPLICATED!

function toggleimg(en,state){
	if ((x=MM_findObj(en))!=null){
		if (!x.disabled){
			if (state == "on"){
				x.src  = x.osrc;
			}else if (state == "off"){
				x.src  = x.fsrc;
			}else if (state == "dn"){
				x.src  = x.dsrc;
			}
		}
	}
}
*/

//---------------------------------------------------------------------------
// Function.... speedimgOver(spid, state)
// Description: This function is used to do speed image roll over   
// Parameters.: spid - the speed h or l , state - the image source
// Revisions..:  
//---------------------------------------------------------------------------

function speedimgOver(spid, state){
	// check to see if the speed is high or low
	if (parent.maxStreamInfo.speed == spid){
		return;
	}else{
		if ((x=MM_findObj('speedimg'))!=null){
			// button is not disabled do roll over
			x.src = parent.maxPath.root+"images/control/"+state+parent.maxControlButtons.iext;
		}
	}
}


//---------------------------------------------------------------------------
// Function.... set_cc_controls()
// Description: This function is used to do speed image roll over   
// Parameters.: spid - the speed h or l , state - the image source
// Revisions..:  
//---------------------------------------------------------------------------

function set_cc_controls(){
	if ((x=MM_findObj('ccb0'))!=null){
		// button is not disabled do roll over
		x.src = x.fsrc;
	}
}

//---------------------------------------------------------------------------
// Function....  set_player_controls()
// Description: This function is used to set the buttons for the player
// Parameters.:
// Revisions..:
//---------------------------------------------------------------------------

function set_player_controls() {
	for (b=0; b<=parent.maxControlButtons.count[0]; b++){
		if ((x=MM_findObj(parent.maxControlButtons.names[0]+b))!=null){
			if (!x.disabled){
				x.src  = x.fsrc;
			}else{
				x.src  = x.ssrc;
			}
		}	
	}
	for (b=0; b<=parent.maxControlButtons.count[5]; b++){
		if ((x=MM_findObj(parent.maxControlButtons.names[5]+b))!=null){
			if (!x.disabled){
				x.src  = x.fsrc;
			}else{
				x.src  = x.ssrc;
			}
		}	
	}
	for (b=0; b<=parent.maxControlButtons.count[6]; b++){
		if ((x=MM_findObj(parent.maxControlButtons.names[6]+b))!=null){
			if (!x.disabled){
				x.src  = x.fsrc;
			}else{
				x.src  = x.ssrc;
			}
		}	
	}
}	

//---------------------------------------------------------------------------
// Function.... set_speed_controls(sp)
// Description: This function is used to switch the player button images
// Parameters.: el - the speed value
// Revisions..:
//---------------------------------------------------------------------------

function set_speed_controls(sp){
	if (parent.maxControlButtons.player){
		for (b=0; b<=parent.maxControlButtons.count[1]; b++){
			if ((x=MM_findObj(parent.maxControlButtons.names[1]+b))!=null){
				if (sp == "h" && b == 0){
					x.src  = x.osrc;
					x.disabled = true;
				}else if (sp == "l" && b == 0){
					x.src  = x.fsrc;
					x.disabled = false;
				}else if (sp == "h" && b == 1){
					x.src  = x.fsrc;
					x.disabled = false;
				}else if (sp == "l" && b == 1){
					x.src  = x.osrc;
					x.disabled = true;
				}
			}	
		}
	}else{
		if ((x=MM_findObj("speedimg"))!=null){
			if (sp == "h"){
				x.src = parent.hsimg.src;
			}else if (sp == "l") {
				x.src = parent.lsimg.src;
			}
		}
	}

}

//---------------------------------------------------------------------------
// Function.... set_lang_controls(lg)
// Description: This function is used to switch the player button images
// Parameters.: lg - the language value
// Revisions..:
//---------------------------------------------------------------------------

function set_lang_controls(lg){
	for (b=0; b<=parent.maxControlButtons.count[2]; b++){
		if ((x=MM_findObj(parent.maxControlButtons.names[2]+b))!=null){
			if (lg == "e" && b == 0){
				x.src  = x.osrc;
				x.disabled = true;
			}else if (lg == "f" && b == 0){
				x.src  = x.fsrc;
				x.disabled = false;
			}else if (lg == "e" && b == 1){
				x.src  = x.fsrc;
				x.disabled = false;
			}else if (lg == "f" && b == 1){
				x.src  = x.osrc;
				x.disabled = true;
			}
		}	
	}
}	

//---------------------------------------------------------------------------
// Function....  set_play(ps)
// Description: This function is used to set the player's butons to play or
//              pause state
// Parameters.:
// Revisions..:
//---------------------------------------------------------------------------

function set_play(ps){
	if (parent.maxControlButtons.player){
		if (ps == 0){
			switchbutton("player0",PauseObj)
		}else if (ps == 1){
			switchbutton("player0",PlayObj)
		}
	}
}

//---------------------------------------------------------------------------
// Function....  check_player_state()
// Description: This function is used to get the player's state
// Parameters.:
// Revisions..:
//---------------------------------------------------------------------------

function check_player_state() {
	var s = '';
	if (parent.pi.type == "ActiveX"){
		s = parent.player.document.MaxPlayer1.playState	
	}else if (parent.pi.type == "NetscapePlugin"){
		s =  parent.player.document.MaxPlayer1.GetPlayState() 
	}
	
	return s;
}

//---------------------------------------------------------------------------
// Function.... pcontrol(el,pb,state)
// Description: This function is used to preform the player functions
// Parameters.: el - the image object,  pb - the button name,   state - ?
// Revisions..:
//---------------------------------------------------------------------------
function pauseplay(mode) {
	pstate = check_player_state();
	mp = parent.player.document.MaxPlayer1;
	
	if (mode=='pause')
	{
		switchbutton('player0',PlayObj);
		if (parent.pi.version == 9){
			mp.controls.pause();
		}else{
			mp.Pause();
		}
	} else {
		switchbutton('player0',PauseObj);
		if (parent.pi.version == 9){
			mp.controls.play();
		}else{
			mp.Play();
		}
	}
}

function pcontrol(el,pb,state){
	pstate = check_player_state();

	mp = parent.player.document.MaxPlayer1;
	if (pb == "pause") {
		if (pstate == parent.maxPlayerState.play){
			switchbutton('player0',PlayObj);
			if (parent.pi.version == 9){
				mp.controls.pause();
			}else{
				mp.Pause();
			}

			if (parent.content.maxPage.chkflash == "flash")
			{
				parent.content.maxflash(parent.maxSlide.current,"trash");
			}

		}else if (pstate == parent.maxPlayerState.pause || pstate == parent.maxPlayerState.stop || pstate == parent.maxPlayerState.ready){
			switchbutton('player0',PauseObj);
			if (parent.pi.version == 9){
				mp.controls.play();
			}else{
				mp.Play();
			}
			parent.content.switchpage(parent.maxUserDef.slidepage);

			if (parent.content.maxPage.chkflash == "flash")
			{
				parent.content.maxflash(parent.maxSlide.current,"trash");
			}
		}	
	}
	if (pb == "stop"){
		switchbutton('player0',PlayObj);
		if (parent.pi.version == 9){
			mp.controls.stop();
		}else{
			mp.Stop();
		}
	}
	if (pb == "mute"){
		if (parent.pi.type == "ActiveX"){
			if (parent.pi.version == 9){
				bMuteState = parent.player.document.MaxPlayer1.settings.mute;
				if (bMuteState == true) {
					parent.player.document.MaxPlayer1.settings.mute = false;
					switchbutton('player1',MuteOffObj);
				}else{
					parent.player.document.MaxPlayer1.settings.mute = true;
					switchbutton('player1',MuteOnObj);
				}
			}else{
				bMuteState = parent.player.document.MaxPlayer1.mute;
				if (bMuteState == true) {
					parent.player.document.MaxPlayer1.mute = false;
					switchbutton('player1',MuteOffObj);
				}else{
					parent.player.document.MaxPlayer1.mute = true;
					switchbutton('player1',MuteOnObj);
				}
			}
    
		}else if (parent.pi.type == "NetscapePlugin"){
 			bMuteState = parent.player.document.MaxPlayer1.GetMute();
			if (bMuteState == true) {
				parent.player.document.MaxPlayer1.SetMute(false);
				switchbutton('player1',MuteOffObj);
			}else{
				parent.player.document.MaxPlayer1.SetMute(true);
				switchbutton('player1',MuteOnObj);
			}
		}		
	}
	if (pb == "syncmute"){
		if (parent.pi.type == "ActiveX"){
			if (parent.pi.version == 9){
				bMuteState = parent.player.document.MaxPlayer1.settings.mute;
			}else{
				bMuteState = parent.player.document.MaxPlayer1.mute;
			}
		}else if (parent.pi.type == "NetscapePlugin"){
 			bMuteState = parent.player.document.MaxPlayer1.GetMute();
		}
		if (bMuteState == true) {
			switchbutton('player1',MuteOnObj);
		}else{
			switchbutton('player1',MuteOffObj);
		}
	}
}

//---------------------------------------------------------------------------
// Function.... switchbutton(el,pbname)
// Description: This function is used to switch the player button images
// Parameters.: el - the image object,  pb - the button image name
// Revisions..:
//---------------------------------------------------------------------------

function switchbutton(b1,b2){
	if ((w=MM_findObj(b1))!=null){
		w.fsrc = b2.fsrc	//off
		w.osrc = b2.osrc	//on
		w.dsrc = b2.dsrc	//down
		w.ssrc = b2.ssrc	//dis
		w.rnum = b2.rnum	//button number
		w.disabled = b2.disabled
	}
	if (w && !w.disabled){
		w.src  = w.fsrc;
	}else if(w){
		w.src  = w.ssrc;
	}
}

//---------------------------------------------------------------------------
// Function.... set_slide_controls()
// Description: This function is used to reset the buttons for the current page
// Parameters.:
// Revisions..:
//---------------------------------------------------------------------------

function set_slide_controls(cpg) {

	bts = parent.maxBtnStatus[cpg];
	for (b=0; b<=parent.maxControlButtons.count[3]; b++){
		if ((x=MM_findObj(parent.maxControlButtons.names[3]+b))!=null){

			x.disabled = bts[b];
			
			if (bts[b]){
				x.src  = x.ssrc;
			}else{
				x.src  = x.fsrc;
			}
		}
	}

	if(parent.content.maxPage.name  == "slide" && parent.PageLoaded.Slide){
		CounterInit(parent.maxSlide.current);
		//if (parent.PageLoaded.Slide){
			// TODO - this occasionally throws an error
			// Seems to work with out this line
			//parent.content.frames[parent.maxUserDef.slidepage].swapslides(parent.maxSlide.current)
		//}
	}else{
		CounterInit(parent.maxSession.pages[cpg]);
	}
}

//---------------------------------------------------------------------------
// Function.... CounterInit(cdigit)
// Description: This function initializes and updates the counter
// Parameters.: cdigit - the number to set the counter to
// Revisions..:
//---------------------------------------------------------------------------

function CounterInit(cdigit){
	cdigit += ''
	var d = new Array();
	for (y=0; y<=2; y++){
		d[y]=MM_findObj("d"+y);
	}
		
	if (d[0]!=null && d[1]!=null && d[2]!= null){
		if (cdigit.length  == 3){
			d[0].src = eval("dg"+cdigit.substring(0,1)+ ".src");  
			d[1].src = eval("dg"+cdigit.substring(1,2)+ ".src");  
			d[2].src = eval("dg"+cdigit.substring(2,3)+ ".src");  
		}else if (cdigit.length  == 2){
			d[0].src = dg0.src;  
			d[1].src = eval("dg"+cdigit.substring(0,1)+ ".src");  
			d[2].src = eval("dg"+cdigit.substring(1,2)+ ".src");  
		}else if (cdigit.length  == 1){
			d[0].src = dg0.src;  
			d[1].src = dg0.src; 
			d[2].src = eval("dg"+cdigit.substring(0,1)+ ".src");  
		}else {
			d[0].src = dg0.src;  
			d[1].src = dg0.src; 
			d[2].src = dg0.src; 
		}
	}
}

//---------------------------------------------------------------------------
// Function.... do_but_state()
// Description: This function is used to change the button state and image
// Parameters.: bname - button name
//				bn - button number
//              st  - true, false
// Revisions..:
//---------------------------------------------------------------------------

function do_but_state(bname,bn,st){
	var bs = parent.maxBtnStatus[parseInt(parent.content.maxPage.current)];
	if ((x=MM_findObj(bname+bn))!=null){
		if (st){
			x.src  = x.ssrc;
		}else{
			x.src  = x.fsrc;
		}
		x.disabled = st;
		//alert("DEBUG do_but_state: " + parseInt(parent.content.maxPage.current));
		bs[bn] = st;
	}
}

//---------------------------------------------------------------------------
// Function.... checkMarker()
// Description: This function receives an integer from the buttons above and 
//              resets the current position of the file to that marker. 
//              setVideoLabel  
// Parameters.: iWhichMarker
// Revisions..:
//---------------------------------------------------------------------------

function checkMarker(bname){
	if ((b=MM_findObj(bname))!=null){
		if (!b.disabled){
			parent.seekToMarker();
		}
	}	
}

function movepage(pnum) {
	if(parent.content.maxPage.name  != "slide" || parent.content.maxPage.name  != "flash") {
		parent.maxSession.pages[parent.content.maxPage.current] = pnum;
		var pcp = parent.content.frames[parent.content.maxPage.current];
		if(typeof(pcp) != "undefined") {
			if(pcp.src!=null) pcp.src = pcp.src;
			else pcp.location = pcp.location;
		}
	}
}

//---------------------------------------------------------------------------
// Function.... getpage()
// Description: This function is used to get the next or previous page  
// Parameters.: bname - button name  2 = previous  3 = next
// Revisions..:
//---------------------------------------------------------------------------

function getpage(bname,mode){
	if ((bt=MM_findObj(bname))!=null){
		mp = parent.player.document.MaxPlayer1;
		
		// 9/21/2007
		if(parent.content.maxPage.name=='slide') {
			switchbutton('player0',PauseObj);
		}
		
		
		if (!bt.disabled){
			if (parent.content.maxPage.name  == "slide"){
				parent.content.frames[parent.parent.maxUserDef.slidepage].changeslide(bt.rnum,mode);
				parent.seekToMarker();
			}else if(parent.content.maxPage.name  == "flash"){
				//switch back to slides
				//need to determine which button is the slide button , check button_name var
				
				//loop through button_name to determine slide
				for (i=0; i<parent.parent.button_name.length; i++){
					if( parent.button_name[i] == "slide" ){
						break;
					}
				}

				//switch to slides
				//parent.content.switchpage(i);
				parent.content.changeflash(bt.rnum,mode);
				parent.content.maxflash(parent.parent.maxSlide.current,mode);
				//parent.content.changeflash(bt.rnum,mode);
				//parent.content.changeslide(bt.rnum,mode)
				parent.seekToMarker();
				
			}else{
				if (bt.rnum == 2){	// previous
					parent.maxSession.pages[parent.content.maxPage.current]--;
				}else if (bt.rnum == 3){ // next
					parent.maxSession.pages[parent.content.maxPage.current]++;
				}
				if (parent.content.maxPage.current  == parent.parent.maxUserDef.helppage){
					var pcp=parent.content.frames[parent.parent.maxUserDef.helppage]
					if (pcp.src!=null) {
						pcp.src = pcp.src;
					}else{
						pcp.location = pcp.location;
					}
				}else{
					var pcp=parent.content.frames[parent.content.maxPage.current]
					if(typeof(pcp) == "undefined"){
						//alert( "MaxFlash Page" );
					}else{
						if (pcp.src!=null) {
							//alert("pcp.src = " & pcp.src);
							pcp.src = pcp.src;
						}else{
							//alert("pcp.location = " & pcp.location);
							pcp.location = pcp.location;
						}
					}
				}
			}
		} else {
				//alert( bname );		
		}
	}
}

function getslide(sn){
	parent.content.frames[parent.parent.maxUserDef.slidepage].swapslides(sn);
}

//---------------------------------------------------------------------------
// Function.... resetslides()
// Description: This function is used to reset the slide counter to zero 
//				when the end of stream is fired
// Parameters.: none
// Revisions..:
//---------------------------------------------------------------------------

function resetslides(){
	// if this is the last session then execute this function.
	if (parent.maxSlide.current == parent.maxSlide.last){
		parent.content.frames[parent.parent.maxUserDef.slidepage].changeslide(1,'first')
		set_play(1)
	}
}

//---------------------------------------------------------------------------
// File.......: max_loader_scripts.js
// Created....: July 15, 2003
// Purpose....: this file contains the scripts for the 
//				session, topics, resources, option, support, requirements pages 
// Revisions..:
//---------------------------------------------------------------------------

function init_max_loader_vars(){
	tmess = eval("LoaderTextMess."+parent.maxStreamInfo.lang);
	
	mfntObj = new Object();
	PBdoneObj = new Object();
	modeObj = new Object();
	elDiv = new Object();
}

//---------------------------------------------------------------------------
// Function.... init_max_loader()
// Description: This function initializes the page and sets the progress 
//              bar location  
// Parameters.: none
// Revisions..:
//---------------------------------------------------------------------------

function init_max_loader(){

	mfntObj = MM_findObj("mfnt"); 
	PBdoneObj = MM_findObj("PBdone"); 
	modeObj = MM_findObj("mode"); 
	elDiv =  MM_findObj("statDiv"); 
	
	elDiv = elDiv.style

	bw = (top.document.body.offsetWidth/2)-150;
	bh = (top.document.body.offsetHeight/2)-50;

	elDiv.xpos = bw;
	elDiv.ypos = bh;
	elDiv.left = elDiv.xpos;
	elDiv.top = elDiv.ypos;
}

//---------------------------------------------------------------------------
// Function.... layerWrite(pbtext,pbnum)
// Description: This function write the message in the progress bar and 
//              increments the process bar indicator
// Parameters.: pbtext  => text to display     pbnum   =>  number to inc      
// Revisions..:
//---------------------------------------------------------------------------

function layerWrite(pbtext,mnum,pbnum) {
	if (pbnum > 0){
		lc += pbnum;
	}else{
		lc = pbnum;
	}
	if (lc >= barw){lc = barw-2}
	if (mfntObj!=null){
		if (mnum == 0){
			if (pbtext.length > 0 ){
				//mfntObj.childNodes[0].nodeValue = pbtext;
				document.getElementById('mfnt').innerHTML = pbtext;
			}
		}else if (mnum >= 1){
			mfntObj.childNodes[0].nodeValue = tmess[mnum];
		}

	}
	if (PBdoneObj!=null){
		PBdoneObj.style.width=lc+'px';
	}
}

function setmode(md){
	if (modeObj!=null){
		if (md){
			modeObj.childNodes[0].nodeValue = tmess[16];
		}else{
			modeObj.childNodes[0].nodeValue = tmess[17];
		}
	}
}

function getObjref(divID){
	if( document.getElementById ) {
		return document.getElementById(divID);
	}else{
		return null
	} 
}

//---------------------------------------------------------------------------
// File.......: max_player_scripts.js
// Created....: Aug/15/2003
// Purpose....: This file contains varous scripts for the media player
//              for ie and Netscape ver 7
// Revisions..:   
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------'
// Declair the global variables
//---------------------------------------------------------------------------'

//---------------------------------------------------------------------------
// Function.... checktop_max_player()
// Description: This function checks to see if the home page is loaded   
// Parameters.:
// Revisions..:  
//---------------------------------------------------------------------------

function checktop_max_player() {
	var tlLoaded = parent.PageLoaded.Top;
	if (!tlLoaded) {
		setTimeout("checktop_max_player()", 30);
	}else {
		init_max_player();
	}
}

function init_max_player(){
	if (document.layers && parent.maxPlayer.useSami ){
		if (parent.maxStreamInfo.lang == "f"){
			parent.testtext = "Le dispositif de libelle fermé n'est pas disponible quand en mode local"
		}else{
			parent.testtext = "Closed Captioning feature is not available in this browser when in local mode"
		}
	}
	// update the asx name variable
	if (parent.maxStreamInfo.speed == "h"){
		parent.maxBtnStatus.speed = new Array(true,false);
	}else if (parent.maxStreamInfo.speed == "l") {
		parent.maxBtnStatus.speed = new Array(false,true);
	}
	if (parent.maxStreamInfo.local){
		parent.maxStreamInfo.url = parent.maxPath.root+"streams/"
		parent.maxStreamInfo.asxname = parent.maxPath.slide+parent.maxStreamInfo.lang+parent.maxStreamInfo.speed+parent.pi.version+".wmv";
	}else{
		parent.maxStreamInfo.url = parent.maxPath.home+parent.maxPath.slide+"/"
		parent.maxStreamInfo.asxname = "asx"+parent.maxStreamInfo.speed+parent.pi.version+".asx";
	}
	if (parent.maxPlayer.useSami||parent.maxPlayer.captioning){
		
		if (document.layers){
			if (parent.maxStreamInfo.local){
				MM_showHideLayers('cc','','hide')
				MM_showHideLayers('bcimg','','hide')
				UpdateCaption();
			}			
			movecc()
		}else{
			MM_showHideLayers('cc','','show')
		}
		if (parent.noLayer){
			MM_showHideLayers('bcimg','','hide')
		}
	}else{
		MM_showHideLayers('cc','','hide')
		MM_showHideLayers('bcimg','','hide')
	}
	
	if (parent.pi.type == "ActiveX"){
		if (parent.pi.version == 9){
			document.MaxPlayer1.URL = parent.maxStreamInfo.url+parent.maxStreamInfo.asxname;
			document.MaxPlayer1.settings.volume = parent.maxPlayer.p9Volume;
			if (parent.maxPlayer.useSami){
				document.MaxPlayer1.closedCaption.captioningID = "cc"
			}
		}else{
			document.MaxPlayer1.Filename = parent.maxStreamInfo.url+parent.maxStreamInfo.asxname;
			document.MaxPlayer1.mute = parent.maxPlayer.mute;
			document.MaxPlayer1.volume = parent.maxPlayer.p6Volume;
			document.MaxPlayer1.AutoSize = parent.maxPlayer.stretch;
			if (parent.maxPlayer.useSami){
				document.MaxPlayer1.CaptioningID = "cc"
			}
		}	
	}else if (parent.pi.type == "NetscapePlugin"){
		loader();
		document.MaxPlayer1.SetFileName(parent.maxStreamInfo.url+parent.maxStreamInfo.asxname);
	}
	
	// set the page loaded flag
	parent.PageLoaded.Player=true;
	try{
		//--- remove the status bar when the player is loading ---//
		//parent.loader.document.getElementById("statDiv").style.display = 'none';
	}catch(e){
		;	
	}
	
	if (parent.noLayer){parent.loader.layerWrite("",4,10)}
}

function speedimgOver(spid, state){
	// check to see if the speed is high or low
	if (parent.maxStreamInfo.speed == spid){
		return;
	}else{
		// button is not disabled do roll over
		//document.speedimg.src = "../../images/player/"+state+".gif";
	}
}

//---------------------------------------------------------------------------
// Function.... UpdateCaption(txt)
// Description: this function will update the closed caption text box
// Parameters.: txt => the text to display
// Revisions..:
//---------------------------------------------------------------------------

function UpdateCaption(txt) { 
	if ((x=MM_findObj('cc'))!=null){
		//alert(txt);
		if (document.layers){
			if(x.document&&x.document!=window.document){
				txt = "<span class=\"spfnt\">"+txt+"</span>"
				x.document.open();
				x.document.write(txt);
				x.document.close();
			}
		}else if(document.all) { // IE;
			x.innerText = txt;
		}else{ // Firefox;
			x.textContent = txt;
		}
		
	}
}

//---------------------------------------------------------------------------
// Function.... showcc(shv)
// Description: this function will show or hide the closed caption box
// Parameters.: shv => value of show or hide
// Revisions..:
//---------------------------------------------------------------------------

function showcc(shv) { 
	if (shv == null){
		if ((x=MM_findObj('cc'))!=null){
			if (x.style){x=x.style;shv=x.visibility }
		}	
		shv=(shv=='visible')?'hide':(shv='hidden')?'show':shv; 
	}

	MM_showHideLayers('cc','',shv)
	if (!parent.noLayer){
		MM_showHideLayers('bcimg','',shv)
	}

}

//---------------------------------------------------------------------------
// Function.... movecc()
// Description: this function will move the closed caption box if layers exist
// Parameters.: none
// Revisions..:
//---------------------------------------------------------------------------

function movecc() { 
	if ((x=MM_findObj('cc'))!=null){
		x.xpos = 30;
		x.ypos = 270;
		x.left = x.xpos;
		x.top = x.ypos;
	}
}

//---------------------------------------------------------------------------
// File.......: max_slides.js
// Created....: 
// Purpose....: this file contains several scripts that are used
//              by maxdbc to handle the preload of images                                         
// Revisions..:
//---------------------------------------------------------------------------

function init_max_slide_scripts_vars(){
	bc = 5;		// number of buttons
	ac = parent.parent.maxSession.current
	slideSrc = new Array();
	flashSrc = new Array();
	sn = parent.parent.maxSlide.imgName;
	sx = parent.parent.maxSlide.imgext
	ss = parent.parent.maxSlide.start;
	curslide = ss;
	//var pc = parent.maxPage.current;
	
	pc = parent.parent.maxUserDef.slidepage;
	
	//---------------------------------------------------------------------------
	// preload the slide images
	//---------------------------------------------------------------------------
	if (slideIncludes.preload[ac]) {	// preload slides
		// this will preload the slides it uses the slidecount number
		for (i=ss; i<=(slideIncludes.LabelCount[ac]); i++){
			preload(sn+i,slideIncludes.LabelPath[ac]+sn+i+"."+sx)
		}
	}else{		// do not preload slides
		// this will create an array of the slide image paths
		for (i=ss; i<=(slideIncludes.LabelCount[ac]); i++){
			slideSrc[i] = slideIncludes.LabelPath[ac]+sn+i+"."+sx;
		}
	}

	//---------------------------------------------------------------------------
	// create array with flash slide paths
	//---------------------------------------------------------------------------
	sn = parent.parent.maxFlash.imgName;
	sx = parent.parent.maxFlash.imgext
	ss = parent.parent.maxFlash.start;
	curflash = ss;	

	for (i=ss; i<=(slideIncludes.FlashCount[ac]); i++){
		if(i<10) {
			flnum = "0" + i;
		} else {
			flnum = i;
		}
		flashSrc[i] = slideIncludes.FlashPath[ac]+sn+flnum+"."+sx;
	}
}

//---------------------------------------------------------------------------
// Function.... checkcloaded()
// Description: This function check to see if the content page has finished 
//              loading
// Parameters.:
// Revisions..:  
//---------------------------------------------------------------------------

function checkcloaded() {
	var cLoaded = parent.parent.PageLoaded.Content;
	if (!cLoaded) {
		setTimeout("checkcloaded()", 30);
	}else {
		init_max_slide_scripts();
	}
}

//---------------------------------------------------------------------------
// Function.... init_max_slide_scripts()
// Description: This function initializes the slide page   
// Parameters.:
// Revisions..:  
//---------------------------------------------------------------------------

function init_max_slide_scripts(){
	//parent.parent.loader.layerWrite("",2,10)
	if(slideIncludes.LabelCount[ac]>0) {
		parent.parent.maxSlide.last = slideIncludes.LabelCount[ac];
		parent.parent.maxSlide.preload=slideIncludes.preload[ac];

		if (parent.parent.maxSlide.current > ss){ // this will reload the slide we were at
			curslide = parent.parent.maxSlide.current;
			swapslides(parent.parent.maxSlide.current);
		}else{
			parent.parent.maxSlide.current = curslide;
		}
	}

	if(slideIncludes.FlashCount[ac]>0) {
		parent.parent.maxSlide.last = slideIncludes.FlashCount[ac];		
		if (parent.parent.maxSlide.current > ss){ // this will reload the slide we were at
			//curflash = parent.parent.maxSlide.current;
			swapslides(parent.parent.maxSlide.current);
		}else{
			parent.parent.maxSlide.current = curflash;
		}
	}
	

	initControls_max_slide_scripts();
	parent.parent.PageLoaded.Slide=true;
	if (parent.noLayer){parent.loader.layerWrite("",3,10)}

}

//---------------------------------------------------------------------------
// Function.... initControls_max_slide_scripts()
// Description: This function initializes the slide buttons and counter   
// Parameters.:
// Revisions..:  
//---------------------------------------------------------------------------

function initControls_max_slide_scripts(){
	if (slideIncludes.LabelCount[ac] > 0 ){
		parent.parent.maxBtnStatus[pc][0] = true; 
		parent.parent.maxBtnStatus[pc][1] = true; 
		parent.parent.maxBtnStatus[pc][2] = true; 
		parent.parent.maxBtnStatus[pc][3] = false; 
		parent.parent.maxBtnStatus[pc][4] = false; 
		changeImages(slideContainer, slidePrefix+curslide, slideSrc[curslide]); // 5/31/2007
	}

	if (slideIncludes.FlashCount[ac] > 0)
	{
		parent.parent.maxBtnStatus[pc][0] = true; 
		parent.parent.maxBtnStatus[pc][1] = true; 
		parent.parent.maxBtnStatus[pc][2] = true; 
		parent.parent.maxBtnStatus[pc][3] = false; 
		parent.parent.maxBtnStatus[pc][4] = false; 

		if(curflash<10) {
			curflash2 = "0" + curflash;
		}
		//changeFlash(slideContainer,flashPrefix+curflash2,flashSrc[curflash]);
	}
	
	if (parent.parent.PageLoaded.Control){
		parent.parent.control.set_slide_controls(pc);
	}
}


//---------------------------------------------------------------------------
// Function.... changeImages()
// Description: This function is used to swap the image
// Parameters.: imgname - image to replace
// Revisions..:
//---------------------------------------------------------------------------

function changeImages(io,is,iso) {
	if (parent.parent.maxSlide.preload == true  ){
		iso = eval(is+".src");
	}

	if ((x=MM_findObj(io))!=null){
		if (parent.parent.maxUserDef.fadeSlides) {
			transformSlide(x,iso)
		} else {
			x.src = iso;
		}
	}
}

//---------------------------------------------------------------------------
// Function.... swapslides(snum)
// Description: This function is used to switch the slides that are recieved  
//              the max slide comand 
// Parameters.: snum - slide number
// Revisions..:
//---------------------------------------------------------------------------

function swapslides(snum){

	init_max_slide_scripts_vars();
	if (parent.parent.maxStreamInfo.seek){
		parent.parent.seekToMarker();
		parent.parent.maxStreamInfo.seek = false;
	}else{
		parent.parent.maxSlide.current = snum
		if (snum < parent.parent.maxSlide.last){
			//alert(slidePrefix+snum);
			changeImages(slideContainer, slidePrefix+snum, slideSrc[snum]);
			parent.parent.control.CounterInit(snum);
			if (parent.parent.maxSlide.current > 0){
				parent.parent.control.do_but_state(slideButton,0,false)
				parent.parent.control.do_but_state(slideButton,1,false)
				parent.parent.control.do_but_state(slideButton,2,false)
				parent.parent.control.do_but_state(slideButton,3,false)
				parent.parent.control.do_but_state(slideButton,4,false)
			}
		}else if (snum == parent.parent.maxSlide.last){
			changeImages(slideContainer, slidePrefix+snum, slideSrc[snum]);
			parent.parent.control.CounterInit(snum);
			parent.parent.control.do_but_state(slideButton,3,true);
			parent.parent.control.do_but_state(slideButton,4,true);
		}
	}
}

function maxflash(fnum,mode){

		slideButton = "slide";


	/* 
		need to replicate the functionality of the switchpage() function (aka header nav buttons)
		so that we can replace the current content screen with flash.htm in the HTML folder
	*/
	
	if( fnum < 10 ){
		fnum = "0" + fnum;
	}
	
	//alert( maxPath.home + maxPath.slide + "/images/flash/flash" + fnum + ".swf" );
	
	//bnum is usually used for top nav button number, in this case we are using it for the div page number in max_content_if.htm 
	//loop through button_name to determine slide
	for (bnum=0; bnum<parent.parent.button_name.length; bnum++){
		if( parent.button_name[bnum] == "slide" ){
			break;
		}
	}
	pgf=parent.content.frames[bnum];
	parent.content.maxPage.pnew = "page"+bnum;
	// load the page in iframe id=pg2frame and div=page2

	if (pgf.src!=null) {
		pgf.src = parent.maxPath.home + parent.maxPath.slide + "/images/flash/flash" + fnum + ".swf";
	}else{
		pgf.location.replace(parent.maxPath.home + parent.maxPath.slide + "/images/flash/flash" + fnum + ".swf");
	}
	getIncvals(bnum);
	parent.content.maxPage.pnew = "page"+bnum;
	parent.content.MM_showHideLayers(parent.content.maxPage.pshow,'','hide');
	parent.content.MM_showHideLayers(parent.content.maxPage.pnew,'','show');
	parent.content.maxPage.current = fnum;
	parent.content.maxPage.name = "flash";
	parent.content.maxPage.pshow = parent.content.maxPage.pnew;
	parent.content.maxPage.pnew = null;
	
	
	//disable the next and previous slide buttons, 0 represents a top nav button that would disable the nav buttons
	parent.control.set_slide_controls(bnum);
	parent.parent.control.CounterInit(fnum);

	if (parent.navbar.selectedButton != null){
		if (parent.navbar.selectedButton.rnum != bnum){
			parent.navbar.imgReset();
			parent.navbar.imgSet(fnum);
		}
	}

		if (parseInt(fnum) < parent.parent.maxSlide.last){
			if(parent.parent.maxSlide.current == 1) {
				parent.parent.control.do_but_state(slideButton,0,false);		// 0 = refresh button
				parent.parent.control.do_but_state(slideButton,1,true);		// 1 = first slide button
				parent.parent.control.do_but_state(slideButton,2,true);		// 2 = back button
				parent.parent.control.do_but_state(slideButton,3,false);	// 3 = 	forward button
				parent.parent.control.do_but_state(slideButton,4,false);	// 4 = last slide button
					
			} else if (parent.parent.maxSlide.current > 1){
				parent.parent.control.do_but_state(slideButton,0,false)
				parent.parent.control.do_but_state(slideButton,1,false)
				parent.parent.control.do_but_state(slideButton,2,false)
				parent.parent.control.do_but_state(slideButton,3,false)
				parent.parent.control.do_but_state(slideButton,4,false)
			}
		}else if (parseInt(fnum) == parent.parent.maxSlide.last){
			parent.parent.control.do_but_state(slideButton,0,false);
			parent.parent.control.do_but_state(slideButton,1,false);
			parent.parent.control.do_but_state(slideButton,2,false);
			parent.parent.control.do_but_state(slideButton,3,true);
			parent.parent.control.do_but_state(slideButton,4,true);
		}
}

//---------------------------------------------------------------------------
// Function.... changeslide(mode)
// Description: This function is used to switch the slides and enable or 
//              disable the buttons 
// Parameters.: bn - button number
//              mode - which button was pressed
// Revisions..:
//---------------------------------------------------------------------------

function changeslide(bn,mode){
	if (parent.parent.maxBtnStatus[pc][bn]){
		return;
	}else{
		if (mode == "first"){
			parent.parent.maxSlide.current = parent.parent.maxSlide.start;
			parent.parent.control.do_but_state(slideButton,1,true)
			parent.parent.control.do_but_state(slideButton,2,true)
			parent.parent.control.do_but_state(slideButton,3,false)
			parent.parent.control.do_but_state(slideButton,4,false)
			changeImages(slideContainer, slidePrefix+parent.parent.maxSlide.current, slideSrc[parent.parent.maxSlide.current]);
			parent.parent.control.CounterInit(parent.parent.maxSlide.current);
		}else if (mode == "prev"){
			parent.parent.maxSlide.current--;
			if (parent.parent.maxSlide.current <= parent.parent.maxSlide.start){
				parent.parent.maxSlide.current = parent.parent.maxSlide.start;
				parent.parent.control.do_but_state(slideButton,1,true)
				parent.parent.control.do_but_state(slideButton,2,true)
				parent.parent.control.CounterInit(parent.parent.maxSlide.current);
			}	
			if  (parent.parent.maxSlide.current == parent.parent.maxSlide.last){
				parent.parent.control.do_but_state(slideButton,3,true)
				parent.parent.control.do_but_state(slideButton,4,true)
			}else{ 
				parent.parent.control.do_but_state(slideButton,3,false)
				parent.parent.control.do_but_state(slideButton,4,false)
			}
		}else if (mode == "next"){
			parent.parent.maxSlide.current++
			if (parent.parent.maxSlide.current >= parent.parent.maxSlide.last){
				parent.parent.maxSlide.current = parent.parent.maxSlide.last;
				parent.parent.control.do_but_state(slideButton,1,false)
				parent.parent.control.do_but_state(slideButton,2,false)
				parent.parent.control.do_but_state(slideButton,3,true)
				parent.parent.control.do_but_state(slideButton,4,true)

			}else if (parent.parent.maxSlide.current == (parent.parent.maxSlide.start+1)){
				parent.parent.control.do_but_state(slideButton,0,false)
				parent.parent.control.do_but_state(slideButton,1,false)
				parent.parent.control.do_but_state(slideButton,2,false)
			}
		}else if (mode == "last"){
			parent.parent.maxSlide.current = parent.parent.maxSlide.last;
			parent.parent.control.do_but_state(slideButton,0,false)
			parent.parent.control.do_but_state(slideButton,1,false)
			parent.parent.control.do_but_state(slideButton,2,false)
			parent.parent.control.do_but_state(slideButton,3,true)
			parent.parent.control.do_but_state(slideButton,4,true)
		}
		if (parent.parent.maxSlide.current > 0 ){

			if(slideIncludes.FlashCount[ac]>0) {
				parent.parent.control.CounterInit(parent.parent.maxSlide.current);
			}

			if(slideIncludes.LabelCount[ac]>0) {
				changeImages(slideContainer, slidePrefix+parent.parent.maxSlide.current, slideSrc[parent.parent.maxSlide.current]);
				parent.parent.control.CounterInit(parent.parent.maxSlide.current);
			}
		}
	}
}


function changeflash(bn,mode){
	slideButton = "slide";
		if (mode == "first"){
			parent.parent.maxSlide.current = parent.parent.maxSlide.start;
			parent.control.do_but_state(slideButton,1,true)
			parent.control.do_but_state(slideButton,2,true)
			parent.control.do_but_state(slideButton,3,false)
			parent.control.do_but_state(slideButton,4,false)
			parent.parent.control.CounterInit(parent.parent.maxSlide.current);
		}else if (mode == "prev"){
			parent.parent.maxSlide.current--;
			if (parent.parent.maxSlide.current <= parent.parent.maxSlide.start){
				parent.parent.maxSlide.current = parent.parent.maxSlide.start;
				parent.control.do_but_state(slideButton,1,true)
				parent.control.do_but_state(slideButton,2,true)
				parent.control.CounterInit(parent.parent.maxSlide.current);
			}	
			if  (parent.parent.maxSlide.current == parent.parent.maxSlide.last){
				parent.control.do_but_state(slideButton,3,true)
				parent.control.do_but_state(slideButton,4,true)
			}else{ 
				parent.control.do_but_state(slideButton,3,false)
				parent.control.do_but_state(slideButton,4,false)
			}
		}else if (mode == "next"){
			parent.parent.maxSlide.current++
			if (parent.parent.maxSlide.current >= parent.parent.maxSlide.last){
				parent.parent.maxSlide.current = parent.parent.maxSlide.last;
				parent.control.do_but_state(slideButton,1,false);
				parent.control.do_but_state(slideButton,2,false);
				parent.control.do_but_state(slideButton,3,true);
				parent.control.do_but_state(slideButton,4,true);

			}else if (parent.parent.maxSlide.current == (parent.parent.maxSlide.start+1)){
				parent.control.do_but_state(slideButton,0,false)
				parent.control.do_but_state(slideButton,1,false)
				parent.control.do_but_state(slideButton,2,false)
			}
		}else if (mode == "last"){
			parent.parent.maxSlide.current = parent.parent.maxSlide.last;
			parent.control.do_but_state(slideButton,0,false)
			parent.control.do_but_state(slideButton,1,false)
			parent.control.do_but_state(slideButton,2,false)
			parent.control.do_but_state(slideButton,3,true)
			parent.control.do_but_state(slideButton,4,true)
		}
		if (parent.parent.maxSlide.current > 0 ){
			parent.parent.control.CounterInit(parent.parent.maxSlide.current);
		}
}

//---------------------------------------------------------------------------
// Function.... transformSlide(imgObj,iSrc)
// Description: This function is used to fade the slide image into view 
// Parameters.: imgObj - image container object
//              iSrc - new image source
// Revisions..:  
//---------------------------------------------------------------------------

function transformSlide(imgObj,iSrc){
	var dur = parent.parent.maxUserDef.filterDuration
	if (document.images){
		// SET, APPLY, PLAY FILTER
		if (imgObj.filters){
			imgObj.style.filter = "blendTrans(duration=" + dur +")";
			imgObj.filters.blendTrans.Apply();
			imgObj.src = iSrc;
			imgObj.filters.blendTrans.Play();
		}else{
			imgObj.src = iSrc;
		}
	}
}

//---------------------------------------------------------------------------
// Function.... URL encoding and decoding functions
// Description: Needed for link sharing scripts
//---------------------------------------------------------------------------

var digitArray = new Array('0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f');
function toHex(n){
    var result = ''
    var start = true;
    for (var i=32; i>0;){
        i-=4;
        var digit = (n>>i) & 0xf;
        if (!start || digit != 0){
            start = false;
            result += digitArray[digit];
        }
    }
    return (result==''?'0':result);
}

function pad(str, len, pad){
    var result = str;
    for (var i=str.length; i<len; i++){
        result = pad + result;
    }
    return result;
}

function encodeHex(str){
    var result = "";
    for (var i=0; i<str.length; i++){
        result += "%" + pad(toHex(str.charCodeAt(i)&0xff),2,'0');
    }
    return result;
}

function decodeHex(str){
    str = str.replace(new RegExp("s/[^0-9a-zA-Z]//g"));
    var result = "";
    var nextchar = "";
    for (var i=0; i<str.length; i++){
        nextchar += str.charAt(i);
        if (nextchar.length == 2){
            result += ntos(eval('0x'+nextchar));
            nextchar = "";
        }
    }
    return result;
    
}
function urlDecode(str){
    str=str.replace(new RegExp('\\+','g'),' ');
    return unescape(str);
}
function urlEncode(str){
    str=escape(str);
    str=str.replace(new RegExp('\\+','g'),'%2B');
    return str.replace(new RegExp('%20','g'),'+');
}
function ntos(n){
    n=n.toString(16);
    if (n.length == 1) n="0"+n;
    n="%"+n;
    return unescape(n);
}

