/**
 * Copyright (c) 2006 Adobe Macromedia Software LLC and its licensors.
 * All rights reserved.
 */  
function flashPlugin(schema, width, height, align, script, movie, menu, quality, scale, bgcolor, flashvars, version, base, id, scroll, wmode, swlive)
{	
    var classid = "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000";
    var codebase = schema + "://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=" + version;
    document.write(
        "<OBJECT" 
        + (id ? attribute("ID", id) : "")
        + attribute("CLASSID", classid)
        + attribute("CODEBASE", codebase)
        + attribute("WIDTH", width)
        + attribute("HEIGHT", height)
        + attribute("ALIGN", align)
        + (scroll ? attribute("SCROLL", scroll) : "")
        + ">"
        + param("MOVIE", movie)
        + (flashvars ? param("FLASHVARS", flashvars) : "")
        + param("QUALITY", quality)
        + param("SCALE", scale)
        + (base ? param("BASE", base) : "")
        + (menu ? param("MENU", menu) : "")
        + (wmode ? param("WMODE", wmode) : "")
        + (bgcolor ? param("BGCOLOR", bgcolor) : "")
        + (script ? param("ALLOWSCRIPTACCESS", script) : "")     
        + "<EMBED"
        + attribute("SRC", movie)
        + (id ? attribute("NAME", id) : "")
        + (flashvars ? attribute("FLASHVARS", flashvars) : "")
        + attribute("QUALITY", quality)
        + attribute("SCALE", scale)
        + attribute("WIDTH", width)
        + attribute("HEIGHT", height)
        + attribute("ALIGN", align)
        + attribute("TYPE", "application/x-shockwave-flash")
        + attribute("PLUGINSPAGE", schema + "://www.macromedia.com/go/getflashplayer")
        + (base ? attribute("BASE", base) : "")
        + (menu ? attribute("MENU", menu) : "")
        + (wmode ? attribute("WMODE", wmode) : "")
        + (bgcolor ? attribute("BGCOLOR", bgcolor) : "")
        + (swlive ? attribute("SWLIVECONNECT", swlive) : "")
        + (script ? attribute("ALLOWSCRIPTACCESS", script) : "")    
	  + ">"    
        + "</EMBED>"
        + "</OBJECT>"
    );

}

function attribute(name, value)
{
    return " " + name + '="' + value + '"';
}

function param(name, value)
{
    return "<PARAM " + attribute("NAME", name) + attribute("VALUE", value) + ">";
}

/*
  This function calls the flashPlugin function passing it a list of the most common settings for some of the required parameters. 
  Use this function if you want to use default values but want to specify the version of flash
*/
function loadswfwithversion(schema, width, height, movie, flashvars, version) {
  flashPlugin(schema, width, height, "middle", "sameDomain", movie, "false", "best", "noscale", "#ffffff", flashvars, version);
}

/*
  This is the default loadswf function to use, it will suffice for most of the cases where a flash object is displayed on a page.
*/
function loadswf(schema, width, height, movie, flashvars) {
  loadswfwithversion(schema, width, height, movie, flashvars, "9,0,0,0");
}

/*
 We should probably just have a JavaScript object to encapsulate all these different parameters :(
 */
function loadswfWithId(schema, width, height, movie, flashvars, id) {
  flashPlugin(schema, width, height, "middle", "sameDomain", movie, "false", "best", "noscale", "#ffffff", flashvars, "9,0,0,0", "", id); 
}

function addResizeEventListener(fnCallback) {
  // Add event listeners for resize and load event.  
  if (typeof window.addEventListener != 'undefined')
  {
	window.addEventListener("load", fnCallback, false);
	window.addEventListener("resize", fnCallback, false);
  }
  else if (typeof document.addEventListener != 'undefined')
  {
	document.addEventListener("load", fnCallback, false);
	document.addEventListener("resize", fnCallback, false);
  }
  else if (typeof window.attachEvent != 'undefined')
  {
	window.attachEvent("onload", fnCallback);
	window.attachEvent("onresize", fnCallback);
  }
}
