
//The following code defines the flash source file and embeds the  flash according to desired parameters

 

function embedFlash(swf , w, h, wmode,context,bgcolorcode,flashVarsStr){

	source=context+swf;

	if (AC_FL_RunContent == 0) {

			alert("This page requires AC_RunActiveContent.js.");

		} else {

			AC_FL_RunContent(

				'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0',

				'width', w,

				'height', h,

				'src', source,

				'base', context,

				'quality', 'high',

				'pluginspage', 'http://www.macromedia.com/go/getflashplayer',

				'align', 'middle',

				'play', 'true',

				'loop', 'false',

				'scale', 'false',

				'flashvars',flashVarsStr,

				'wmode', wmode,

				'devicefont', 'false',

				'id', swf,

				'bgcolor', bgcolorcode,

				'name', swf,

				'menu', 'false',

				'allowFullScreen', 'true',

				'allowScriptAccess','sameDomain',

				'movie', source,

				'salign', 'tl'

				); //end AC code

		}

	}

	

 

 

 

//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;

}

 

// Cross-browser, cross-platform, self-resizing 

// web page background images. JavaScript code

// copyright 2006, Boutell.Com, Inc. 

//

// See http://www.boutell.com/newfaq/ for more information.

//

// Permission granted to use, republish, sell and otherwise

// benefit from this code as you see fit, provided you keep 

// this notice intact. You may remove comments below this line.

//

// END OF NOTICE

//

// INSTRUCTIONS: this WON'T WORK unless you do the following in the

// document that includes it.

//

// 1. Specify the right doctype at the top of your page:

//

//    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"

//      "http://www.w3.org/TR/html4/strict.dtd">

//

// 2. In the <head> element of your page, bring in this code:

//

//    <script src="resizing_background.js">

//    </script>

//

// 3. Set the right event handlers in your body element

//    (you may call other functions too, use semicolons to separate):

//

//    <body onLoad="rbInit()" onResize="rbResize()">

//

// 4. Call rbOpen() immediately after your <body> element:

//

// <script>

// // For a centered image that scales up but keeps its proportions

// // (be sure to also set a background-color style on body):

// rbOpen(true);

// // For an image that fills the entire window, distorting if necessary: 

// rbOpen(false);

// </script>

//

// 5. If you have any absolutely positioned divs, put them

//    BEFORE rbOpen(), and make VERY SURE you set z-index explicitly

//    to 1 or higher for them, or the background will appear over

//    them. Hint: use a style sheet to make that less painful.

// 

// 6. Call rbTail() with the URL of YOUR background image,

//    just before your </body> element (relative URLs are fine):

//

//    <script>

//      rbTail("background.jpg");

//    </script>

//

// And that's all it takes! 

//

// WARNINGS: 

//

// 1. Internet Explorer versions prior to 7 will scroll jumpily.

//   IE 7 beta 2 scrolls smoothly, just like Firefox, Safari, and Opera.

//

// 2. There's a very small "fudge factor" in use for Opera, because

//   Opera doesn't support my Firefox trick to get the real size

//   of the usable client area OR the Internet Explorer clientWidth

//   method (Opera returns offsetWidth for clientWidth - that's

//   not right, Opera). So I assume a 16 pixel scrollbar vertically

//   and no scrollbar horizontally. Makes a very small difference.

//

// 3. Users with JavaScript disabled won't see a background.

//   Set a reasonable background color in your <body> element

//   as a fallback measure.

 

function rbIsIE()

{

	if (navigator.appName == 'Microsoft Internet Explorer') {

		return true;

	}

	return false;

}

 

function rbIsOpera()

{

	if (navigator.appName == 'Opera') {

		return true;

	}

	return false;

}

 

function rbSupportsFixed()

{

	if (navigator.appName == 'Microsoft Internet Explorer') {

		var agent = navigator.userAgent;

		var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");

		var version;

		if (re.exec(agent) != null) {

			version = parseFloat(RegExp.$1);

		}

		if (version < 7.0) {

			return false;

		}

	}

	return true;

}

 

var rbCenter = false;

 

function rbInit()

{

	if (rbSupportsFixed()) {

		div = document.getElementById('rbBackgroundDiv');

		div.style.position = 'fixed';

	}	

	// I'd use onScroll, but that 

	// doesn't exist in standards mode

	setTimeout("rbReposition()", 50);

	rbResize();

}

 

var rbLastScrollTop = null;

var rbSimulateTop = 0;

 

function rbResize()

{

	// We're in "standards mode," so we must use

	// document.documentElement, not document.body, in IE.

	var width;

	var height;

	var x, y, w, h;

	if (rbIsIE()) {

		// All modern versions of IE, including 7, give the

		// usable page dimensions here.

		width = parseInt(document.documentElement.clientWidth); 	

		height = parseInt(document.documentElement.clientHeight); 	

	} else if (rbIsOpera()) {

		// This is slightly off: the width and height will include

		// scrollbar space we can't really use. Compensate by

		// subtracting 16 pixels of scrollbar space from the width

		// (standard in Opera). Firefox has an equivalent but

		// more serious problem because such a mistake in Firefox

		// will break mouse clicks on the scrollbar in 

		// Mac Firefox (yes, really!). Fortunately, in Firefox,

		// we can use a third method that gives accurate results

		// (see below).

		width = parseInt(window.innerWidth) - 16;

		// If there is a horizontal scrollbar this will be

		// 16 pixels off in Opera. I can live with that.

		// You don't design layouts with

		// horizontal scrollbars, do you? (Shudder)

		height = parseInt(window.innerHeight);

	} else {

		// Other non-IE browsers give the usable page dimensions here.

		// We grab the info by discovering the visible dimensions 

		// of a hidden 100% x 100% div. Opera doesn't like this

		// method any more than IE does. Fun!

		testsize = document.getElementById('rbTestSizeDiv');

		width = testsize.scrollWidth;

		height = testsize.scrollHeight;

	}

	div = document.getElementById('rbBackgroundDiv');

	img = document.getElementById('rbBackground');

	if (rbCenter) {

		if (img.width == 0) {

			// We don't know the width yet, the image

			// hasn't loaded. Set a timer to try again.

			alert("Don't know width yet");

			setTimeout("rbResize()", 1000);

			return;

		}

		w = width;

		h = width * (img.height / img.width);

		x = 0;

		y = (height - h) / 2;	

		if (y < 0) {

			h = height;

			w = height * (img.width / img.height);

			y = 0;

			x = (width - w) / 2;

		}

	} else {

		x = 0;

		y = 0;

		w = width;

		h = height;

	}

	// HTML 4.0 Strict makes the px suffix mandatory

	// We have floating point numbers, trim them and add px

	div.style.left = parseInt(x) + "px";

	if (rbSupportsFixed()) {

	  div.style.top = parseInt(y) + "px";

        } else {

          rbSimulateTop = parseInt(y);

        }

	img.style.width = parseInt(w) + "px";

	img.style.height = parseInt(h) + "px";

	div.style.visibility = 'visible';

	rbLastScrollTop = null;

	rbReposition();

}

 

function rbReposition()

{

	if (rbSupportsFixed()) {

		return;

	}

	// Make sure we do this again

	setTimeout("rbReposition()", 50);

	// Standards mode, must use documentElement

	body = document.documentElement;

	var scrollTop = body.scrollTop;

	// No scroll since last check

	if (scrollTop == rbLastScrollTop) {

		return;

	}

	rbLastScrollTop = scrollTop;

	div = document.getElementById('rbBackgroundDiv');

	var rbBodyDiv = document.getElementById('rbBodyDiv');

	var pos = 0;

	// Don't make the user scroll just to see the background itself

	var max = rbBodyDiv.offsetHeight - rbBodyDiv.clientHeight;

	if (max < 0) {

		max = 0;

	}

	if (scrollTop <= max)

	{

		pos = scrollTop;

	} else {

		pos = max;

	}

	if (pos < 0) {

		pos = 0;

	}

	div.style.top = pos + rbSimulateTop;

}

 

function rbOpen(center)

{

	rbCenter = center;

	document.write("<div id='rbBodyDiv' style='position: relative; z-index: 2'>\n");

}

 

function rbClose(image)

{

	document.write("</div>\n");

	str = "<div " +

		"id='rbBackgroundDiv' " +

		"style='position: absolute; " +

		"  visibility: hidden; " +

		"  top: 0px; " +

		"  left: 0px; " +

		"  z-index: 0'>" +

		"  <img src='" + image + "' id='rbBackground'>" +

		"</div>\n";

	document.write(str);

	document.write("<div " +

		"id='rbTestSizeDiv' " +

		"style='width: 100%; " +

		"  height: 100%; " +

		"  position: fixed; " +

		"  left: 0; " +

		"  top: 0; " +

		"  visibility: hidden; " +

		"  z-index: -1'></div>\n");

}
