/**
 * SWFEngine - Flash + Javascript Browser Integration Tool
 * 
 * Copyright 2008 by Factory Design Labs, All Rights Reserved.
 * <a href="http://www.factorylabs.com/">www.factorylabs.com</a>
 * 
 * @author Grant Davis
 * @version 1.0 :: May 28, 2008
 * @version 1.1 :: June 26, 2008
 * @version 1.2 :: August 25, 2008
 * @version 1.3 :: October 1, 2008
 * @version 1.4 :: December 4, 2008
 */

var pagesTracked=0;function trackPage(pagename)
{pagesTracked++;}
function test(arg1,arg2)
{alert("swfengine.js :: test() \n\t tracked pages: "+pagesTracked+"\n\t\targ1: "+arg1+"\n\t\targ2: "+arg2);}
function SWFEngine(url,id,version,expressInstall,size,varsObj,paramObj,attObj,swfFit)
{this.swfUrl=url;this.elementId=id;this.swfVersion=version;this.dimensions=SWFEngine.checkObject(size);this.flashvarsObj=SWFEngine.checkObject(varsObj);this.parametersObj=SWFEngine.checkObject(paramObj);this.attributeObj=SWFEngine.checkObject(attObj);this.useSwfFit=(swfFit==undefined)?false:swfFit;if(navigator.appName&&navigator.appName.indexOf("Microsoft")!=-1&&navigator.userAgent.indexOf("Windows")!=-1&&navigator.userAgent.indexOf("Windows 3.1")==-1)
{document.write('<script type="text/javascript" event="FSCommand(command,args)" for="'+this.attributeObj.id+'"> \n');document.write('SWFEngine.handleFSCommand(command, args);');document.write('</script>');}
this.createSWF=function(url,id,version,expressInstall)
{if(!swfobject.hasFlashPlayerVersion(version))return;var instanceId=SWFEngine.getRandomSeed();this.flashvarsObj["swfEngineId"]=instanceId;this.flashvarsObj=SWFEngine.addUrlVariables(this.flashvarsObj);SWFEngine.instances[instanceId]=this;swfobject.embedSWF(url,id,this.dimensions.maxWidth,this.dimensions.maxHeight,version,expressInstall,this.flashvarsObj,this.parametersObj,this.attributeObj);if(this.useSwfFit)
{var mw=(this.dimensions.maxWidth=="100%")?null:this.dimensions.maxWidth;var mh=(this.dimensions.maxHeight=="100%")?null:this.dimensions.maxHeight;swffit(this.attributeObj.id,this.dimensions.minWidth,this.dimensions.minHeight,mw,mh,this.dimensions.center);}
if(swfmacmousewheel!=null)swfmacmousewheel.registerObject(this.attributeObj.id);}
this.resizeSWF=function(minWidth,minHeight,maxWidth,maxHeight,center)
{if(this.useSwfFit==false)return;swffit(this.attributeObj.id,minWidth,minHeight,maxWidth,maxHeight,center);}
this.setBookmark=function(title,url)
{if(window.sidebar)window.sidebar.addPanel(title,url,'');else if(window.external)window.external.AddFavorite(url,title);else if(window.opera&&window.print)return true;else prompt('Create a bookmark and use this URL',url);}
this.createSWF(url,id,version,expressInstall);}
SWFEngine.initialized=false;SWFEngine.instances=new Object();SWFEngine.getInstance=function(id)
{return SWFEngine.instances[id];}
SWFEngine.init=function()
{if(SWFEngine.initialized==true)return;SWFEngine.initialized=true;this.includeScript('javascripts/swfobject.js');this.includeScript('javascripts/swfaddress.js');this.includeScript('javascripts/swffit.js');this.includeScript('javascripts/swfmacmousewheel2.js');}
SWFEngine.includeScript=function(path)
{document.write('<script type="text/javascript" src="'+path+'"></script>');}
SWFEngine.checkObject=function(obj)
{if(obj==undefined)return new Object();else return obj;}
SWFEngine.getRandomSeed=function()
{var seed=SWFEngine.generateSeed();while(SWFEngine.getInstance(seed)!=undefined)
{seed=SWFEngine.generateSeed();}
return seed;}
SWFEngine.generateSeed=function()
{return Math.round(Math.random()*100000);}
SWFEngine.addUrlVariables=function(obj)
{var url=document.location.href;var values=url.substring(url.indexOf("?")+1,url.length).split("&");for(var i=0;i<values.length;i++)
{var valuePair=values[i];var varName=valuePair.substring(0,valuePair.indexOf("="));var varValue=valuePair.substring(valuePair.indexOf("=")+1,valuePair.length);obj[varName]=varValue;}
return obj}
SWFEngine.handleFSCommand=function(command)
{eval(command);}
SWFEngine.getInnerSize=function()
{var x,y;if(self.innerHeight)
{x=self.innerWidth;y=self.innerHeight;}
else if(document.documentElement&&document.documentElement.clientHeight)
{x=document.documentElement.clientWidth;y=document.documentElement.clientHeight;}
else if(document.body)
{x=document.body.clientWidth;y=document.body.clientHeight;}
return[x,y];}
SWFEngine.resizeViewableArea=function(w,h)
{var x,y;if(x==undefined)x=window.screenLeft||window.screenX;if(y==undefined)y=window.screenTop||window.screenY;window.moveTo(0,0);window.resizeTo(screen.availWidth,screen.availHeight);var inner=SWFEngine.getInnerSize();var ox=screen.availWidth-inner[0];var oy=screen.availHeight-inner[1];window.resizeTo(w+ox,h+oy);}
SWFEngine.init();