﻿//flash replacement script
/* 
setFlashSize(divid, newW, newH)
divid: id of the div containing the flash movie.
newW: new width for flash movie. If set to 0, function is bypassed.
newH: new height for flash movie. If set to 0, function is bypassed.
*/
function setFlashSize(divid, newW, newH){
	if (parseInt(newW) > 0) {
	    document.getElementById(divid).style.width = newW + "px";
	}
	if (parseInt(newH) > 0) {
	    document.getElementById(divid).style.height = newH + "px";		
	}
}

function htmlAmpCharsToFlashHtmlAmpChars(str) {
    str = str.replace("&emsp;","&#8195;");
    str = str.replace("&thinsp;","&#8201;");
    str = str.replace("&ndash;","&#8211;");
    str = str.replace("&mdash;","&#8212;");
    str = str.replace("&mdash;","&#8212;");
    str = str.replace("&lsquo;","&#8216;");
    str = str.replace("&rsquo;","&#8217;");
    str = str.replace("&ldquo;","&#8220;");
    str = str.replace("&frasl;","&#8260;");
    str = str.replace("&euro;","&#8364;");
    str = str.replace("&trade;","&#8482;");
    str = str.replace("&larr;","&#8592;");
    str = str.replace("&rarr;","&#8594;");
    str = str.replace("&larr;","&#8592;");
    str = str.replace("&rarr;","&#8594;");
    str = str.replace("&harr;","&#8596;");
    str = str.replace("&lArr;","&#8656;");
    str = str.replace("&rArr;","&#8658;");
    return str;
}

/*
replaceSWF(replaceElementID,flashPath,flashFontSize,flashFontColor,flashWidth,flashHeight)
flashID: id of the flash wrapper div (used for resizing)
replaceElementID: id of element to have text collected and displayed as Flash
flashPath: path to the Flash "container"
flashFontSize: font size of the rendered text
flashFontColor: font color of the rendered text
flashWidth: width of the flash element
flashHeight: height of the flash element
flashWMode: parameter for the wmode/transparency
--NOTE--
create unique Flash "containers" for each font style needed.
*/
function replaceSWF(flashID,replaceElementID,flashPath,flashFontSize,flashFontColor,flashWidth,flashHeight,flashWMode) {
	var haveFlash = GetSwfVer();
	if(document.getElementById && haveFlash != "-1"){
		//set the Text and the data for FlashVars
		var replaceElementText = encodeURIComponent(document.getElementById(replaceElementID).innerHTML.replace("&amp;#39;","'"));
		//alert(replaceElementText);
		var FlashVars = "vText=" + replaceElementText + "&vSize=" + flashFontSize + "&vColor=" + flashFontColor + "&vWidth=" + flashWidth + "&vHeight=" + flashHeight;
		//alert(FlashVars);
		//write out the replacement flash object
		document.write('<div id="' + flashID + '">');
		document.write('<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="100%" height="100%">');
		document.write('<param name="movie" value="' + flashPath + '" />');
		document.write('<param name="quality" value="high" />');
		document.write('<param name="salign" value="lt" />');
		document.write('<param name="bgcolor" value="#ffffff" />');
		document.write('<param name="menu" value="false" />');
		document.write('<param name="wmode" value="' + flashWMode + '"/>');
		document.write('<param name="FlashVars" value="' + FlashVars + '"/>');       
		document.write('<embed src="' + flashPath + '" quality="high" salign="lt" menu="false" wmode="' + flashWMode + '" FlashVars="' + FlashVars + '" width="100%" height="100%" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /></embed>');
		document.write('</object>');
		document.write('</div>');
		//display the new flash object and hide the element to be replaced
		document.getElementById(replaceElementID).style.display = 'none';
		document.getElementById(flashID).style.display = 'block';
		//resize the wrapper div to resize the flash movie
		setFlashSize(flashID,flashWidth,flashHeight);
	}
}

// Detect Client Browser type
// Copyright(c) 2005-2006 Adobe Macromedia Software, LLC. All rights reserved.
var isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;

// JavaScript helper required to detect Flash Player PlugIn version information
function GetSwfVer(){
	// NS/Opera version >= 3 check for Flash plugin in plugin array
	var flashVer = -1;
	
	if (navigator.plugins != null && navigator.plugins.length > 0) {
		if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
			var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
			var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
			var descArray = flashDescription.split(" ");
			var tempArrayMajor = descArray[2].split(".");			
			var versionMajor = tempArrayMajor[0];
			var versionMinor = tempArrayMajor[1];
			var versionRevision = descArray[3];
			if (versionRevision == "") {
				versionRevision = descArray[4];
			}
			if (versionRevision[0] == "d") {
				versionRevision = versionRevision.substring(1);
			} else if (versionRevision[0] == "r") {
				versionRevision = versionRevision.substring(1);
				if (versionRevision.indexOf("d") > 0) {
					versionRevision = versionRevision.substring(0, versionRevision.indexOf("d"));
				}
			}
			var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;			
		}
	}
	// MSN/WebTV 2.6 supports Flash 4
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
	// WebTV 2.5 supports Flash 3
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
	// older WebTV supports Flash 2
	else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
	else if ( isIE && isWin && !isOpera ) {
		flashVer = ControlVersion();
	}	
	//alert("flashVer="+flashVer);
	return flashVer;
}

function ControlVersion() {
	var version;
	var axo;
	var e;
	// NOTE : new ActiveXObject(strFoo) throws an exception if strFoo isn't in the registry
	try {
		// version will be set for 7.X or greater players
		axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
		version = axo.GetVariable("$version");
	} catch (e) {
	}

	if (!version) {
		try {
			// version will be set for 6.X players only
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
			
			// installed player is some revision of 6.0
			// GetVariable("$version") crashes for versions 6.0.22 through 6.0.29,
			// so we have to be careful. 
			
			// default to the first public version
			version = "WIN 6,0,21,0";

			// throws if AllowScripAccess does not exist (introduced in 6.0r47)		
			axo.AllowScriptAccess = "always";

			// safe to call for 6.0r47 or greater
			version = axo.GetVariable("$version");

		} catch (e) {
		}
	}

	if (!version) {
		try {
			// version will be set for 4.X or 5.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
			version = axo.GetVariable("$version");
		} catch (e) {
		}
	}

	if (!version) {
		try {
			// version will be set for 3.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
			version = "WIN 3,0,18,0";
		} catch (e) {
		}
	}

	if (!version) {
		try {
			// version will be set for 2.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
			version = "WIN 2,0,0,11";
		} catch (e) {
			version = -1;
		}
	}
	
	return version;
}