/**
 * Javascript for embedding Flash objects
 * @version 2.1
 * @author pmander (modified by msaxton)
 */

var Q = "\"";

/**
 * A Object representing a Flash Object
 * @param data	The flash source file
 * @param width The width of the flash object
 * @param height	The height of the flash object
 * @param bgcolor	The hex code of the background color of the flash object
 * @param altImage	An alternative image to use if Flash is not installed
 *      ...well not exactly.  since we want fancier stuff to happen than just an image, this param indicates which replacement code block to use.
 * @param altName	A user friendly name for the Flash object
 */
function FlashObject(data, width, height, bgcolor, altImage, altName)
{
	//fields
	this.data = data;
	this.width = width;
	this.height = height;
	this.bgcolor = bgcolor;
	this.altImage = altImage;	
	this.altName = altName;
	this.params = new Array();
	this.minVersion = 0;
	this.link = "";
	this.link_nonFlash = "";
	
	//methods
	this.addParam = FlashObject_addParam;
	this.setLink = FlashObject_setLink;
	this.setMinVersion = FlashObject_setMinVersion;
	this.print = FlashObject_print;
}
/**
 * Adds a <param> tag to the flash object
 * @param name	the paramater's name
 * @parma value	the parameter's value
 */
function FlashObject_addParam(name, value)
{
	this.params.push(new Param(name, value));
}

/**
 * Adds a link by appending the query string '?link=url to the data field of this FlashObject
 * @param the url of the link
 */
function FlashObject_setLink(url)
{
	this.link = "?clickTAG=" + url;
	this.link_nonFlash = url;
}
/**
 * Sets the minimum version of Flash required to play the Flash Object
 * @param minVersion	an integer
 */
function FlashObject_setMinVersion(minVersion)
{
	this.minVersion = minVersion;
}
/**
 * Prints the FlashObject within the specified element 
 * @param flashContainerID	the ID of the element to print the flash within
 */
function FlashObject_print(flashContainerID)
{
	var flashContainer = document.getElementById(flashContainerID);
	
	var data = this.data;
	var width = this.width;
	var height = this.height;
	var bgcolor = this.bgcolor;
	var altImage =  this.altImage;
	var altName = this.altImage;
	
	var flashVersion = getFlashVersion();
	var link = this.link;
	var link_nonFlash = this.link_nonFlash;
	
	var markup = "";
	
	if(isFlashInstalled() && flashVersion >= flashObject.minVersion)
	{
		if(bgcolor == "")
		{
			bgcolor = "#ffffff";
		}
		
		//get params
		var params = flashObject.params;
		var paramsString = "";
		
		for(var i = 0;  i < params.length; i++)
		{
			var paramName = params[i].name;
			var paramValue = params[i].value;
			paramsString += "<param name=" + Q + paramName + Q + " value=" + Q + paramValue + Q + " />";
		}
		
		//get markup
		markup = "<object type=\"application/x-shockwave-flash\" "
					+ "data=" +  Q + data + link + Q
					+ "width=" + Q + width + Q
					+ "height=" + Q + height + Q + ">"
					+ "<param name=\"movie\" value=" + Q + data + link + Q + "/>"
					+ "<param name=\"quality\" value=\"high\" />"
					+ "<param name=\"bgcolor\" value=" + Q + bgcolor + Q + " />"	
					+ paramsString
					+ "<embed src=" + Q + data + link + Q
						+ "type=\"application/x-shockwave-flash\" "
						+ "width=" + Q + width + Q
						+ "height=" + Q + height + Q
						+ "quality=\"high\" "
						+ "bgcolor=" + Q + bgcolor + Q + " >"
					+ "</embed>"
				  + "</object>";
		
		flashContainer.style.background = "none";
		flashContainer.style.height = height + "px";
		flashContainer.style.width = width + "px";  
	}
	else if(altImage != "")
	{
		
		if( altImage == "whatDidHeSay" ) {
		
			markup = "<table id=\"Table_01\" width=\"601\" height=\"175\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"> 	<tr> 		<td colspan=\"9\"> 			<img src=\"/images/altFlash/whatDidHeSay/CMCbanner_1c_600px_01.gif\" width=\"600\" height=\"93\" alt=\"\"></td> 		<td> 			<img src=\"/images/altFlash/whatDidHeSay/spacer.gif\" width=\"1\" height=\"93\" alt=\"\"></td> 	</tr> 	<tr> 		<td colspan=\"7\" rowspan=\"2\"> 			<img src=\"/images/altFlash/whatDidHeSay/CMCbanner_1c_600px_02.gif\" width=\"487\" height=\"53\" alt=\"\"></td> 		<td> 			<a href=\"http://www.adobe.com/go/getflashplayer/\" target=\"_blank\" 				onmouseover=\"changeImages('Get_Flash', '/images/altFlash/whatDidHeSay/Get_Flash-over.gif'); return true;\" 				onmouseout=\"changeImages('Get_Flash', '/images/altFlash/whatDidHeSay/Get_Flash.gif'); return true;\" 				onmousedown=\"changeImages('Get_Flash', '/images/altFlash/whatDidHeSay/Get_Flash-over.gif'); return true;\" 				onmouseup=\"changeImages('Get_Flash', '/images/altFlash/whatDidHeSay/Get_Flash-over.gif'); return true;\"> 				<img name=\"Get_Flash\" src=\"/images/altFlash/whatDidHeSay/Get_Flash.gif\" width=\"47\" height=\"8\" border=\"0\" alt=\"\"></a></td> 		<td rowspan=\"4\"> 			<img src=\"/images/altFlash/whatDidHeSay/CMCbanner_1c_600px_04.gif\" width=\"66\" height=\"82\" alt=\"\"></td> 		<td> 			<img src=\"/images/altFlash/whatDidHeSay/spacer.gif\" width=\"1\" height=\"8\" alt=\"\"></td> 	</tr> 	<tr> 		<td rowspan=\"3\"> 			<img src=\"/images/altFlash/whatDidHeSay/CMCbanner_1c_600px_05.gif\" width=\"47\" height=\"74\" alt=\"\"></td> 		<td> 			<img src=\"/images/altFlash/whatDidHeSay/spacer.gif\" width=\"1\" height=\"45\" alt=\"\"></td> 	</tr> 	<tr> 		<td rowspan=\"2\"> 			<img src=\"/images/altFlash/whatDidHeSay/CMCbanner_1c_600px_06.gif\" width=\"30\" height=\"29\" alt=\"\"></td> 		<td> 			<a href=\"http://www.cmcmarkets.ca/cmcreg.pl?&amp;rm=show_courses\" target=\"_blank\" 				onmouseover=\"changeImages('check_fx', '/images/altFlash/whatDidHeSay/check_fx-over.gif'); return true;\" 				onmouseout=\"changeImages('check_fx', '/images/altFlash/whatDidHeSay/check_fx.gif'); return true;\" 				onmousedown=\"changeImages('check_fx', '/images/altFlash/whatDidHeSay/check_fx-over.gif'); return true;\" 				onmouseup=\"changeImages('check_fx', '/images/altFlash/whatDidHeSay/check_fx-over.gif'); return true;\"> 				<img name=\"check_fx\" src=\"/images/altFlash/whatDidHeSay/check_fx.gif\" width=\"16\" height=\"15\" border=\"0\" alt=\"\"></a></td> 		<td rowspan=\"2\"> 			<img src=\"/images/altFlash/whatDidHeSay/CMCbanner_1c_600px_08.gif\" width=\"170\" height=\"29\" alt=\"\"></td> 		<td> 			<a href=\"http://www.cmcmarkets.ca/cmcreg.pl?&amp;rm=show_seminars\" target=\"_blank\" 				onmouseover=\"changeImages('check_free', '/images/altFlash/whatDidHeSay/check_free-over.gif'); return true;\" 				onmouseout=\"changeImages('check_free', '/images/altFlash/whatDidHeSay/check_free.gif'); return true;\" 				onmousedown=\"changeImages('check_free', '/images/altFlash/whatDidHeSay/check_free-over.gif'); return true;\" 				onmouseup=\"changeImages('check_free', '/images/altFlash/whatDidHeSay/check_free-over.gif'); return true;\"> 				<img name=\"check_free\" src=\"/images/altFlash/whatDidHeSay/check_free.gif\" width=\"16\" height=\"15\" border=\"0\" alt=\"\"></a></td> 		<td rowspan=\"2\"> 			<img src=\"/images/altFlash/whatDidHeSay/CMCbanner_1c_600px_10.gif\" width=\"191\" height=\"29\" alt=\"\"></td> 		<td> 			<a href=\"http://www.cmcmarkets.ca/open_a_free_demo_account.html\" target=\"_blank\" 				onmouseover=\"changeImages('check_demo', '/images/altFlash/whatDidHeSay/check_demo-over.gif'); return true;\" 				onmouseout=\"changeImages('check_demo', '/images/altFlash/whatDidHeSay/check_demo.gif'); return true;\" 				onmousedown=\"changeImages('check_demo', '/images/altFlash/whatDidHeSay/check_demo-over.gif'); return true;\" 				onmouseup=\"changeImages('check_demo', '/images/altFlash/whatDidHeSay/check_demo-over.gif'); return true;\"> 				<img name=\"check_demo\" src=\"/images/altFlash/whatDidHeSay/check_demo.gif\" width=\"16\" height=\"15\" border=\"0\" alt=\"\"></a></td> 		<td rowspan=\"2\"> 			<img src=\"/images/altFlash/whatDidHeSay/CMCbanner_1c_600px_12.gif\" width=\"48\" height=\"29\" alt=\"\"></td> 		<td> 			<img src=\"/images/altFlash/whatDidHeSay/spacer.gif\" width=\"1\" height=\"15\" alt=\"\"></td> 	</tr> 	<tr> 		<td> 			<img src=\"/images/altFlash/whatDidHeSay/CMCbanner_1c_600px_13.gif\" width=\"16\" height=\"14\" alt=\"\"></td> 		<td> 			<img src=\"/images/altFlash/whatDidHeSay/CMCbanner_1c_600px_14.gif\" width=\"16\" height=\"14\" alt=\"\"></td> 		<td> 			<img src=\"/images/altFlash/whatDidHeSay/CMCbanner_1c_600px_15.gif\" width=\"16\" height=\"14\" alt=\"\"></td> 		<td> 			<img src=\"/images/altFlash/whatDidHeSay/spacer.gif\" width=\"1\" height=\"14\" alt=\"\"></td> 	</tr> </table>";
			
		} else if( altImage == "fillYourHead" ) { 
			markup = "<a href=\"" + link_nonFlash + "\"><img src=\"/images/altFlash/fillYourHead.jpg\" border=\"0\" /></a>";
		
		} else if( altImage == "todaysPrices" ) {
			markup = "<img src=\"/images/1x1.gif\" width=\"1\" height=\"1\" border=\"0\" />";
		
		} else {
		
			markup = "<img src=" + Q + altImage + Q	
						+ "width=" + Q + width + Q
						+ "height=" + Q + height + Q
						+ "alt=" + Q + altName + Q
						+ "style=\"border-width: 0\" />";
						
		}
					
		flashContainer.style.background = "none";
	}
	else
	{
		if(altName == "")
			altName = "This feature";		
		
		var url = "http://www.macromedia.com/software/flashplayer/";
		
		//modify this text for different languages
		if(flashVersion >= flashObject.minVersion)
		{
		
			markup =	"<p><strong>" + altName + " cannot be displayed.</strong></p>" 
					  +	"<p>To benefit from this feature the Macromedia Flash Player plugin must be installed.</p>"
					  + "<p><a target=\"_blank\" href=" + Q + url + Q + ">Download Macromedia Flash Player plugin.</a></p>";
		}
		else
		{
			markup =	"<p><strong>" + altName + " cannot be displayed.</strong></p>" 
					  +	"<p>To benefit from this feature a newer version of the Macromedia Flash Player plugin must be installed.</p>"
					  + "<p><a target=\"_blank\" href=" + Q + url + Q + ">Download latest version of Macromedia Flash Player plugin.</a></p>";
		}

		flashContainer.style.overflow = "auto";
	}
	
	flashContainer.innerHTML = markup;	
}

/** 
 * An object representing a parameter
 */
function Param(name, value)
{
	this.name = name;
	this.value = value;
}

/**
 * Determines if flash is installed 
 */
function isFlashInstalled()
{
 	var flashInstalled = false;

	if(navigator.mimeTypes['application/x-shockwave-flash'] && navigator.mimeTypes['application/x-shockwave-flash'].enabledPlugin)
	{
		flashInstalled = true;
	}
	else if(navigator.plugins["Shockwave Flash"])
	{
		flashInstalled = true;
	}
	else if(navigator.appName.indexOf("Internet Explorer"))
	{
		try
		{
			var test = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
			flashInstalled = true;
		}
		catch(e) { }
	}		

	return flashInstalled;
}

/**
 * Gets the current flash version 
 * @return Returns the latest version of flash if the version could not be detected or if flash is not installed
 */
function getFlashVersion()
{
	var MAX_FLASH_VERSION = 10;
	var version = MAX_FLASH_VERSION;
	
	if(navigator.plugins["Shockwave Flash"])
	{
		var description = navigator.plugins["Shockwave Flash"].description;
		version = parseInt(description.charAt(description.indexOf('.')-1));
		
	}
	else if(navigator.appName.indexOf("Internet Explorer"))
	{
		for(var i=MAX_FLASH_VERSION; i > 0; i--)
		{
			try
			{
				var flash = new ActiveXObject("ShockwaveFlash.ShockwaveFlash." + i);
				version = parseInt(i);
				break;
			}
			catch(e) { }
		}
	}

	return version;
}


/**** NEW NON-FLASH FUNCTIONS FROM StoryStream ******/


function newImage(arg) {
	if (document.images) {
		rslt = new Image();
		rslt.src = arg;
		return rslt;
	}
}

function changeImages() {
	if (document.images && (preloadFlag == true)) {
		for (var i=0; i<changeImages.arguments.length; i+=2) {
			document[changeImages.arguments[i]].src = changeImages.arguments[i+1];
		}
	}
}

var preloadFlag = false;
function preloadImages() {
	if (document.images) {
		Get_Flash_over = newImage("images/Get_Flash-over.gif");
		check_fx_over = newImage("images/check_fx-over.gif");
		check_free_over = newImage("images/check_free-over.gif");
		check_demo_over = newImage("images/check_demo-over.gif");
		preloadFlag = true;
	}
}



