﻿var GizmoBadgeJSVersion = "2.0.12";
var GizmoBadgeDomain = "badge.anthill.jp";
var GizmoBadgeCoreHostingURL = "";
var GizmoBadgeObj;
var badgeUniqueIDForVista;
var GizmoBadgeCallbackFunc;

function renderBadge(swf, flashVer, swffr, w, h, bgc, pjid, solid, selfid, parentid, pmid, wmode)
{
	if (flashVer == "8")
	{
		flashVer = "8.0.24";
	}
	var versionArr = flashVer.split(".");
	versionArr[0] = parseInt(versionArr[0]);
	versionArr[1] = parseInt(versionArr[1]);
	versionArr[2] = parseInt(versionArr[2]);
	var hasRightVersion = DetectFlashVer(versionArr[0], versionArr[1], versionArr[2]);
	
	if (hasRightVersion)
	{
		renderBadgeExe(swf, swffr, w, h, bgc, pjid, solid, selfid, parentid, pmid, wmode);
	}
	else
	{
		var alternateContent = 'このコンテンツには最新の Adobe Flash Player が必要です。 '
		+ '<a href="http://www.macromedia.com/go/getflash/" target="_blank">Flash Player を入手する</a>';
		
		document.write(alternateContent);
	}
}

function renderBadge2(flashVer, bgColor, projectID, solutionID, selfID, parentID, personalMediaID, wmode, contentParam)
{
	var versionArr = flashVer.split(".");
	versionArr[0] = parseInt(versionArr[0]);
	versionArr[1] = parseInt(versionArr[1]);
	versionArr[2] = parseInt(versionArr[2]);
	var hasRightVersion = DetectFlashVer(versionArr[0], versionArr[1], versionArr[2]);
	
	if (hasRightVersion)
	{
		renderBadgeExe2(bgColor, projectID, solutionID, selfID, parentID, personalMediaID, wmode, contentParam, true);
	}
	else
	{
		var alternateContent = 'このコンテンツには最新の Adobe Flash Player が必要です。 '
		+ '<a href="http://www.macromedia.com/go/getflash/" target="_blank">Flash Player を入手する</a>';
		
		document.write(alternateContent);
	}
}

function _GizmoBadge_getEmbedTagRB2(flashVer, bgColor, projectID, solutionID, selfID, parentID, personalMediaID, wmode, contentParam)
{
	var versionArr = flashVer.split(".");
	versionArr[0] = parseInt(versionArr[0]);
	versionArr[1] = parseInt(versionArr[1]);
	versionArr[2] = parseInt(versionArr[2]);
	var hasRightVersion = DetectFlashVer(versionArr[0], versionArr[1], versionArr[2]);
	
	if (hasRightVersion)
	{
		return renderBadgeExe2(bgColor, projectID, solutionID, selfID, parentID, personalMediaID, wmode, contentParam, false);
	}
	else
	{
		var alternateContent = 'このコンテンツには最新の Adobe Flash Player が必要です。 '
		+ '<a href="http://www.macromedia.com/go/getflash/" target="_blank">Flash Player を入手する</a>';
		
		return alternateContent;
	}
}

function _GizmoBadge_getRandomString(num)
{
	var str = "";
	for (var i = 0; i < num; i++)
	{
		str += _GizmoBadge_getRandomChar();
	}
	return str;
}

function _GizmoBadge_getRandomChar()
{
	var code = Math.floor(Math.random() * 62);
	var codeStr;
	
	if (code <= 9)
	{
		codeStr = String(code);
	}
	else if (code <= 35)
	{
		codeStr = String.fromCharCode(code + 55);
	}
	else
	{
		codeStr = String.fromCharCode(code + 61);
	}
	return codeStr;
}

function renderBadgeExe2(bgColor, projectID, solutionID, selfID, parentID, personalMediaID, wmode, contentParam, exeDocumentWrite)
{
	var badgeCoreURL  = "http://content." + GizmoBadgeDomain + "/common/badgecore2.swf";
	var infoServerURL = "http://info." + GizmoBadgeDomain + "/Info/";

	if (GizmoBadgeDomain == "_dev")
	{
	   badgeCoreURL  = "data/badgecore2.swf";
	   infoServerURL = "info.xml";
	}
	else if (GizmoBadgeDomain == "_fix")
	{
		badgeCoreURL  = GizmoBadgeCoreHostingURL;
		infoServerURL = "info.xml"; 
	}

	if (personalMediaID == "4")
	{
		badgeCoreURL += "?cache=" + _GizmoBadge_getRandomString(12);
	}

	var hasObjectTag = true;
	var hasEmbedTag = true;
	var isSafari = ((navigator.userAgent).indexOf("Safari") != -1);
	var isIE  = (navigator.appName.indexOf("Microsoft") != -1)? true : false;
	
	if (isIE)
	{
		var hasRightVersion = DetectFlashVer(9, 0, 115);
		if (hasRightVersion)
		{
			hasObjectTag = true;
			hasEmbedTag = false;
		}
		else
		{
			hasObjectTag = false;
			hasEmbedTag = true;
		}
	}
	else
	{
		hasObjectTag = false;
		hasEmbedTag = true;
	}
	
	if (wmode == undefined)
	{
		wmode = 'Opaque';
	}
	var count = _GizmoBadge_getBadgeCount();
	var badgeUniqueID = selfID + "_" + count;
	var width = 1;
	var height = 1;
	if (selfID == "preview")
	{
		badgeUniqueID = "GizmoBadgePreview";
		width = 300;
		height = 244;
	}
	
	_GizmoBadge_setBadgeObject(badgeUniqueID, null, null, personalMediaID, null);
	
	var vars = new Object();
	vars['projectID'] = projectID;
	vars['solutionID'] = solutionID;
	vars['selfID'] = selfID;
	vars['parentID'] = parentID;
	vars['personalMediaID'] = personalMediaID;
	vars['contentParam'] = contentParam;
	vars['containerVer'] = GizmoBadgeJSVersion;
	vars['infoServerURL'] = infoServerURL;
	vars['location'] = location.href;
	vars['htmlID'] = badgeUniqueID;
	vars['isEI'] = "true";
	vars['useBadgeJS'] = "true";
	if (GizmoBadgeCoreHostingURL)
	{
		vars['isBadgeHosting'] = "true";
	}
	var flashVars = object2FlashVars(vars);
	
	return _GizmoBadge_documentWrite(badgeUniqueID, badgeCoreURL, width, height, bgColor, wmode, "noscale", "lt", flashVars, false, hasObjectTag, hasEmbedTag, exeDocumentWrite);
}

function _GizmoBadge_setDIVCentering(id)
{
	var elementDIV = document.getElementById(id + "_div");
	elementDIV.align = "center";
}

function _GizmoBadge_setContentSize(id, width, height, barHeight)
{
	_GizmoBadge_setBadgeObject(id, width, height, null, barHeight);
	_GizmoBadge_setEmbedSize(id, width, height + barHeight);
	_GizmoBadge_setPMProc(id, GizmoBadgeObj[id]["pmid"]);
	
	if (GizmoBadgeObj[id]["pmid"] == "2" || GizmoBadgeObj[id]["pmid"] == "19")
	{
		_GizmoBadge_setDIVCentering(id);
	}
	else if (GizmoBadgeObj[id]["pmid"] == "4")
	{
		if (_GizmoBadge_vistaSetGadgetSize != undefined)
		{
			_GizmoBadge_vistaSetGadgetSize(GizmoBadgeObj[badgeUniqueID]["w"], GizmoBadgeObj[badgeUniqueID]["h"]);
		}
	}
}

function _GizmoBadge_setEmbedSize(id, modW, modH)
{
	var isSafari = ((navigator.userAgent).indexOf("Safari") != -1);
	var isIE  = (navigator.appName.indexOf("Microsoft") != -1)? true : false;
	
	if (isIE)
	{
		var objectTagElement = document.getElementById(id);
		objectTagElement.style.width = modW;
		objectTagElement.style.height = modH;
		objectTagElement.width = modW;
		objectTagElement.height = modH;
	}
	else
	{
		var embedTagElement = document.getElementById(id + "_embed");
		embedTagElement.style.width = modW;
		embedTagElement.style.height = modH;
		embedTagElement.width = modW;
		embedTagElement.height = modH;
	}
}

function renderBadgeExe(swf, swffr, w, h, bgc, pjid, solid, selfid, parentid, pmid, wmode)
{
	var badgeCoreURL  = "http://content." + GizmoBadgeDomain + "/common/badgecore.swf";
	var infoServerURL = "http://info." + GizmoBadgeDomain + "/Info/";
	
	if (GizmoBadgeDomain == "_dev")
	{
	   badgeCoreURL  = "badgecore.swf";
	   infoServerURL = "info.xml";
	}
	
	var barHeight = 22;
	 
	if (pmid == "4")
	{
		badgeCoreURL += "?cache=" + _GizmoBadge_getRandomString(12);
	}
   
	var hasObjectTag = true;
	var hasEmbedTag = true;
	var isSafari = ((navigator.userAgent).indexOf("Safari") != -1);
	var isIE  = (navigator.appName.indexOf("Microsoft") != -1)? true : false;
	
	if (isIE)
	{
		hasObjectTag = true;
		hasEmbedTag = false;
	}
	else
	{
		hasObjectTag = false;
		hasEmbedTag = true;
	}
	
	var count = _GizmoBadge_getBadgeCount();
	
	var badgeUniqueID = selfid + "_" + count;
	if (selfid == "preview")
	{
		badgeUniqueID = "GizmoBadgePreview";
	}
	_GizmoBadge_setBadgeObject(badgeUniqueID, w, h, pmid, barHeight);
	
	var vars = new Object();
	vars['flashVars_swf'] = swf;
	vars['flashVars_width'] = w;
	vars['flashVars_height'] = h;
	vars['flashVars_pjid'] = pjid;
	vars['flashVars_solid'] = solid;
	vars['flashVars_selfid'] = selfid;
	vars['flashVars_parentid'] = parentid;
	vars['flashVars_pmid'] = pmid;
	vars['flashVars_jsVer'] = GizmoBadgeJSVersion;
	vars['flashVars_defInfoSvr'] = infoServerURL;
	vars['flashVars_location'] = location.href;
	vars['flashVars_chuteHeight'] = barHeight;
	vars['flashVars_swfid'] = badgeUniqueID;
	
	var realHeight = parseInt(h) + parseInt(barHeight);
	if (wmode == undefined)
	{
		wmode = 'Opaque';
	}
	var fv = object2FlashVars(vars);

	var isCenter = false;
	if (pmid == "2" || pmid == "19")
	{
		isCenter = true;
	}
	
	_GizmoBadge_documentWrite(badgeUniqueID, badgeCoreURL, w, realHeight, bgc, wmode, "showall", "lt", fv, isCenter, hasObjectTag, hasEmbedTag, true);
	_GizmoBadge_setMouseEvent(badgeUniqueID);
	_GizmoBadge_setPMProc(badgeUniqueID, pmid);
}

function _GizmoBadge_setPMProc(badgeUniqueID, pmid)
{
	if (pmid == "2" || pmid == "5" || pmid == "6" || pmid == "18"  || pmid == "19")
	{
		_GizmoBadge_changeSize(badgeUniqueID);
		if (pmid == "18")
		{
			if (gadgets && gadgets.window)
			{
				gadgets.window.adjustHeight();
			}
		}
	}
	if (pmid == "4")
	{
		System.Gadget.onDock = vistaGadgetChangeDockState;
		System.Gadget.onUndock = vistaGadgetChangeDockState;
		badgeUniqueIDForVista = badgeUniqueID;
		var objectTagElement = document.getElementById(badgeUniqueIDForVista);
		_GizmoBadge_addEventListener(objectTagElement, 'resize', _GizmoBadge_onResizeForVista);
		vistaGadgetChangeDockState();
	}
	if (GizmoBadgeObj[badgeUniqueID]["pmid"] == "2" || GizmoBadgeObj[badgeUniqueID]["pmid"] == "19")
	{
		_GizmoBadge_addEventListener(window, 'resize', _GizmoBadge_onResize);
	}
}

function object2FlashVars(object)
{
	var ret = "";
	if (object)
	{
		for (i in object)
		{
			ret += i + "=" + encodeURIComponent(object[i]) + "&";
		}
	}
	return ret;
}

function _GizmoBadge_getBadgeCount()
{
	if(!document['GizmoBadgeCounter'])
	{
		document['GizmoBadgeCounter'] = 1;
	}
	else
	{
		document.GizmoBadgeCounter++;
	}
	return document.GizmoBadgeCounter;
}

function _GizmoBadge_setBadgeObject(badgeUniqueID, w, h, pmid, barHeight)
{	
	if (GizmoBadgeObj == undefined)
	{
		GizmoBadgeObj = new Object();
	}
	
	if (GizmoBadgeObj[badgeUniqueID] == undefined)
	{
		GizmoBadgeObj[badgeUniqueID] = new Object();
	}
	
	if (w != null)
		GizmoBadgeObj[badgeUniqueID]["w"] = Number(w);
	
	if (h != null)
		GizmoBadgeObj[badgeUniqueID]["h"] = Number(h);
	
	if (pmid != null)
		GizmoBadgeObj[badgeUniqueID]["pmid"] = pmid;
	
	if (barHeight != null)
		GizmoBadgeObj[badgeUniqueID]["barHeight"] = barHeight;
}

function _GizmoBadge_documentWrite(htmlID, swfURL, w, h, bgc, wmode, scale, salign, fv, isCenter, hasObjectTag, hasEmbedTag, exeDocumentWrite)
{
	if (exeDocumentWrite == undefined)
	{
		exeDocumentWrite = true;
	}

	var alignStr = "";
	if (isCenter)
	{
		alignStr = 'align="center"';
	}
	var htmlStr = "";
	htmlStr += '<div id="' + htmlID + '_div" ' + alignStr + '>';
	if (hasObjectTag)
	{
		htmlStr += '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" allowScriptAccess="always" width="' + w + '" height="' + h + '" id="' + htmlID + '" align="middle">';
		htmlStr += '<param name="allowScriptAccess" value="always" />';
		htmlStr += '<param name="movie" value="' + swfURL + '" />';
		htmlStr += '<param name="menu" value="false" />';
		htmlStr += '<param name="quality" value="high" />';
		htmlStr += '<param name="scale" value="' + scale + '" />';
		htmlStr += '<param name="salign" value="' + salign + '" />';
		htmlStr += '<param name="wmode" value="' + wmode + '" />';
		htmlStr += '<param name="bgcolor" value="' + bgc + '" />';
		htmlStr += '<param name="flashVars" value="' + fv + '" />';
	}
	if (hasEmbedTag)
	{
		htmlStr += '<embed allowScriptAccess="always" id="' + htmlID + '_embed" src="' + swfURL + '" menu="false" quality="high" scale="' + scale + '" salign="' + salign + '" bgcolor="' + bgc + '" wmode="' + wmode + '" width="' + w + '" height="' + h + '" name="' + htmlID + '" align="middle" allowScriptAccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashVars="' + fv + '" />';
	}
	if (hasObjectTag)
	{
		htmlStr += '</object>';
	}

	htmlStr += '</div>';

	if (exeDocumentWrite)
	{
		document.write(htmlStr);
	}
	return htmlStr;
}

function vistaGadgetChangeDockState()
{
	var w = GizmoBadgeObj[badgeUniqueIDForVista]["w"];
	var h = GizmoBadgeObj[badgeUniqueIDForVista]["h"] + GizmoBadgeObj[badgeUniqueIDForVista]["barHeight"];
	var scale;
	
	if (System.Gadget.docked)
	{
		if (w > 135)
		{
			scale = 135 / GizmoBadgeObj[badgeUniqueIDForVista]["w"];
			w = 135;
			h = Math.round((GizmoBadgeObj[badgeUniqueIDForVista]["h"] * scale) + (GizmoBadgeObj[badgeUniqueIDForVista]["barHeight"] * scale));
		}
		else
		{
			scale = 1;
		}
	}
	else
	{
		scale = 1;
	}

	var objectTagElement = document.getElementById(badgeUniqueIDForVista);
	objectTagElement.style.width = w;
	objectTagElement.style.height = h;
	objectTagElement.width = w;
	objectTagElement.height = h;

	var bodyStyle = document.body.style;
	bodyStyle.width = w;
	bodyStyle.height = h;

	_GizmoBadge_setResizeSWF(badgeUniqueIDForVista, scale);
}

function _GizmoBadge_onResizeForVista(e)
{
	var w = e.srcElement.width;
	var h = e.srcElement.height;
	var scale;
	
	if (System.Gadget.docked)
	{
		scale = w / GizmoBadgeObj[badgeUniqueIDForVista]["w"];
	}
	else
	{
		scale = 1;
	}
	_GizmoBadge_setResizeSWF(badgeUniqueIDForVista, scale);
}

function _GizmoBadge_changeSize(id)
{
	var isSafari = ((navigator.userAgent).indexOf("Safari") != -1);
	var isIE  = (navigator.appName.indexOf("Microsoft") != -1)? true : false;
	var divElement = document.getElementById(id + "_div");
	var modW;
	var modH;
	var scale;
	
	if (isIE)
	{
		var objectTagElement = document.getElementById(id);
		objectTagElement.style.width = 0;
		objectTagElement.style.height = 0;
	}

	var display = divElement.style.display;
	if (display != 'none' && display != null)
	{
		modW = divElement.offsetWidth;
	}
	else
	{
		var els = divElement.style;
		var originalVisibility = els.visibility;
		var originalPosition = els.position;
		var originalDisplay = els.display;
		els.visibility = 'hidden';
		els.position = 'absolute';
		els.display = 'block';

		modW = divElement.clientWidth;

		els.display = originalDisplay;
		els.position = originalPosition;
		els.visibility = originalVisibility;
	}

	if (modW > GizmoBadgeObj[id]["w"] || modW == 0)
	{
		modW = GizmoBadgeObj[id]["w"];
		modH = GizmoBadgeObj[id]["h"] + GizmoBadgeObj[id]["barHeight"];
		scale = 1;
	}
	else
	{
		scale = modW / GizmoBadgeObj[id]["w"];
		modH = Math.round(GizmoBadgeObj[id]["h"] + GizmoBadgeObj[id]["barHeight"]) * scale;
	}
	
	if (isIE)
	{
		objectTagElement.style.width = modW;
		objectTagElement.style.height = modH;
		objectTagElement.width = modW;
		objectTagElement.height = modH;
	}
	else
	{
		var embedTagElement = document.getElementById(id + "_embed");
		embedTagElement.style.width = modW;
		embedTagElement.style.height = modH;
		embedTagElement.width = modW;
		embedTagElement.height = modH;
	}
	
	if (GizmoBadgeObj[id]["pmid"] == "2")
	{
		_IG_AdjustIFrameHeight();
	}
	
	_GizmoBadge_setResizeSWF(id, scale);
}

function _GizmoBadge_setMouseEvent(htmlID)
{
	var isIE  = (navigator.appName.indexOf("Microsoft") != -1)? true : false;
	
	if (!isIE)
	{
		htmlID += "_embed";
	}
	
	var target = document.getElementById(htmlID);
	
	_GizmoBadge_addEventListener(target, 'mouseover', _GizmoBadge_onMouseOver);
	_GizmoBadge_addEventListener(target, 'mouseout', _GizmoBadge_onMouseOut);
}

function _GizmoBadge_setPreview(url, name, provider, link)
{
	var movie = getMovieName("GizmoBadgePreview");
	if (movie.eiSetPreview != undefined)
	{
		movie.eiSetPreview(url, name, provider, link);
	}
}

function _GizmoBadge_setPreviewHandler(id, frameRate, actionScriptVersion, result)
{
	GizmoBadgeCallbackFunc.call(null, frameRate, actionScriptVersion, result);
}

function _GizmoBadge_setCallback(callbackFunction)
{
	GizmoBadgeCallbackFunc = callbackFunction;
}

function _GizmoBadge_setResizeSWF(id, scale)
{
	var movie = getMovieName(id);
	if (movie.eiSetStageSize != undefined)
	{
		movie.eiSetStageSize(scale);
	}
}

function _GizmoBadge_onMouseOver(e)
{
	var elementId = getElementByIdFromEventObj(e);
	var movie = getMovieName(elementId);
	if (movie.eiSetMouseOver != undefined)
	{
		movie.eiSetMouseOver();
	}
}

function _GizmoBadge_onMouseOut(e)
{
	var elementId = getElementByIdFromEventObj(e);
	var movie = getMovieName(elementId);
	if (movie.eiSetMouseOut != undefined)
	{
		movie.eiSetMouseOut();
	}
}

function _GizmoBadge_onResize(e)
{
	for (var tmp in GizmoBadgeObj)
	{
		_GizmoBadge_changeSize(tmp);
	}
}

function _GizmoBadge_addEventListener(eventTarget, eventType, eventListener)
{
	if(eventTarget.addEventListener)
		eventTarget.addEventListener(eventType, eventListener, false);
	else if(eventTarget.attachEvent)
		eventTarget.attachEvent("on"+eventType, eventListener);
}

function getElementByIdFromEventObj(e)
{
	if (navigator.appName.indexOf("Microsoft") != -1)
	{
		return e.srcElement.id;
	}
	else
	{
		return e.currentTarget.id;
	}
}

function getMovieName(movieName)
{
	if (window[movieName])
	{
		return window[movieName];
	}
	else if (document[movieName])
	{
		return document[movieName];
	}
	else
	{
		return null;
	}
}

//v1.7
// Flash Player Version Detection
// Detect Client Browser type
// Copyright 2005-2007 Adobe Systems Incorporated.  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;

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;
}

// 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();
	}	
	return flashVer;
}

// When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)
{
	versionStr = GetSwfVer();
	if (versionStr == -1 ) {
		return false;
	} else if (versionStr != 0) {
		if(isIE && isWin && !isOpera) {
			// Given "WIN 2,0,0,11"
			tempArray         = versionStr.split(" "); 	// ["WIN", "2,0,0,11"]
			tempString        = tempArray[1];			// "2,0,0,11"
			versionArray      = tempString.split(",");	// ['2', '0', '0', '11']
		} else {
			versionArray      = versionStr.split(".");
		}
		var versionMajor      = versionArray[0];
		var versionMinor      = versionArray[1];
		var versionRevision   = versionArray[2];

        	// is the major.revision >= requested major.revision AND the minor version >= requested minor
		if (versionMajor > parseFloat(reqMajorVer)) {
			return true;
		} else if (versionMajor == parseFloat(reqMajorVer)) {
			if (versionMinor > parseFloat(reqMinorVer))
				return true;
			else if (versionMinor == parseFloat(reqMinorVer)) {
				if (versionRevision >= parseFloat(reqRevision))
					return true;
			}
		}
		return false;
	}
}

function AC_AddExtension(src, ext)
{
  if (src.indexOf('?') != -1)
    return src.replace(/\?/, ext+'?'); 
  else
    return src + ext;
}

function AC_Generateobj(objAttrs, params, embedAttrs) 
{ 
  var str = '';
  if (isIE && isWin && !isOpera)
  {
    str += '<object ';
    for (var i in objAttrs)
    {
      str += i + '="' + objAttrs[i] + '" ';
    }
    str += '>';
    for (var i in params)
    {
      str += '<param name="' + i + '" value="' + params[i] + '" /> ';
    }
    str += '</object>';
  }
  else
  {
    str += '<embed ';
    for (var i in embedAttrs)
    {
      str += i + '="' + embedAttrs[i] + '" ';
    }
    str += '> </embed>';
  }

  document.write(str);
}

function AC_FL_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
     , "application/x-shockwave-flash"
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_SW_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000"
     , null
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
  var ret = new Object();
  ret.embedAttrs = new Object();
  ret.params = new Object();
  ret.objAttrs = new Object();
  for (var i=0; i < args.length; i=i+2){
    var currArg = args[i].toLowerCase();    

    switch (currArg){	
      case "classid":
        break;
      case "pluginspage":
        ret.embedAttrs[args[i]] = args[i+1];
        break;
      case "src":
      case "movie":	
        args[i+1] = AC_AddExtension(args[i+1], ext);
        ret.embedAttrs["src"] = args[i+1];
        ret.params[srcParamName] = args[i+1];
        break;
      case "onafterupdate":
      case "onbeforeupdate":
      case "onblur":
      case "oncellchange":
      case "onclick":
      case "ondblclick":
      case "ondrag":
      case "ondragend":
      case "ondragenter":
      case "ondragleave":
      case "ondragover":
      case "ondrop":
      case "onfinish":
      case "onfocus":
      case "onhelp":
      case "onmousedown":
      case "onmouseup":
      case "onmouseover":
      case "onmousemove":
      case "onmouseout":
      case "onkeypress":
      case "onkeydown":
      case "onkeyup":
      case "onload":
      case "onlosecapture":
      case "onpropertychange":
      case "onreadystatechange":
      case "onrowsdelete":
      case "onrowenter":
      case "onrowexit":
      case "onrowsinserted":
      case "onstart":
      case "onscroll":
      case "onbeforeeditfocus":
      case "onactivate":
      case "onbeforedeactivate":
      case "ondeactivate":
      case "type":
      case "codebase":
      case "id":
        ret.objAttrs[args[i]] = args[i+1];
        break;
      case "width":
      case "height":
      case "align":
      case "vspace": 
      case "hspace":
      case "class":
      case "title":
      case "accesskey":
      case "name":
      case "tabindex":
        ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
        break;
      default:
        ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
    }
  }
  ret.objAttrs["classid"] = classid;
  if (mimeType) ret.embedAttrs["type"] = mimeType;
  return ret;
}
