/*
 * Modify these variables to change the location of the PEX
 * Be sure to update any references in the generic.xml as well
 */
var pexBaseURL = "/consumerfiles/assets/pex/pex/";
var genericConfigurationURL = "/consumerfiles/assets/pex/pex/generic.xml";
var defaultPexId = "";

/*
 * PEX Runner, © 2009 by INDG
 */
var NULL=null
function createPackage(aPackage){var thePackageParts=aPackage.split(".");if(window[thePackageParts[0]]==undefined)window[thePackageParts[0]]=new Object();var thePackageObject=window[thePackageParts[0]];for(var i=1;i<thePackageParts.length;i++){if(thePackageObject[thePackageParts[i]]==undefined)thePackageObject[thePackageParts[i]]=new Object();thePackageObject=thePackageObject[thePackageParts[i]]}}
function bootClass(aClassName,aParameters){if(aParameters==null)aParameters=[];var theConstruction="new "+aClassName+"(";for(var i=0;i<aParameters.length;i++){if(i>0)theConstruction+=", ";theConstruction+="aParameters["+i+"]"};theConstruction+=");";var theInstance=eval(theConstruction);return theInstance};String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"")};Array.prototype.contains=function(obj){for(var i=0;i<this.length;i++)if(this[i]==obj)return true;return false}
function detectUnityWebPlayerActiveX(aRequiredVersion){var requiredVersion=aRequiredVersion.split("f").join(".").split("."),res=false;try{var tControl=new ActiveXObject("UnityWebPlayer.UnityWebPlayer.1");if(tControl)if(tControl.GetPluginVersion()=="2.5.0f5"){var ua=navigator.userAgent,re=new RegExp("Windows NT ([0-9]+)\."),matches=re.exec(ua),major=matches[1];if(major<6){res=true}else if((requiredVersion[0]>2)||((requiredVersion[0]==2)&&(requiredVersion[1]>5))||((requiredVersion[0]==2)&&(requiredVersion[1]==5)&&(requiredVersion[2]>0))||((requiredVersion[0]==2)&&(requiredVersion[1]==5)&&(requiredVersion[2]==0)&&(requiredVersion[3]>5))){res=false}else res=true}else res=true}catch(e){};return res}
function detectUnityWebPlayer(aRequiredVersion){var tInstalled=false;if(navigator.appVersion.indexOf("MSIE")!=-1&&navigator.appVersion.toLowerCase().indexOf("win")!=-1){tInstalled=detectUnityWebPlayerActiveX(aRequiredVersion)}else if(navigator.mimeTypes&&navigator.mimeTypes["application/vnd.unity"])if(navigator.mimeTypes["application/vnd.unity"].enabledPlugin&&navigator.plugins&&navigator.plugins["Unity Player"])tInstalled=true;return tInstalled};createPackage("indg.exf.system");PropertyConvertor=indg.exf.system.PropertyConvertor=function(){this.NUMBER=0;this.STRING=1;this.BOOLEAN=3;this.ARRAY=4;this.SIZE=5;this.DELIMITER=",";this.convert=function(aXMLNode,aPropertyName,aType,aDefault){var theAttributeNode=aXMLNode.attributes.getNamedItem(aPropertyName);if(theAttributeNode==null)return aDefault;var theAttributeText=theAttributeNode.nodeValue;if(theAttributeText==null)return aDefault;switch(aType){case PropertyConvertor.NUMBER:return Number(theAttributeText);break;case PropertyConvertor.BOOLEAN:return(theAttributeText.toLowerCase()=="true")?true:false;break;case PropertyConvertor.SIZE:if(theAttributeText.indexOf("%")==-1){return Number(theAttributeText)}else return theAttributeText;break;case PropertyConvertor.STRING:return theAttributeText;break;case PropertyConvertor.ARRAY:return theAttributeText.split(PropertyConvertor.DELIMITER);break};return null}};indg.exf.system.PropertyConvertor=new indg.exf.system.PropertyConvertor();PropertyConvertor=indg.exf.system.PropertyConvertor;createPackage("indg.exf.structure");PEXConfiguration=indg.exf.structure.PEXConfiguration=function(aProductId){this.mProductId="";this.mIsInGlobalConfig=false;this.playerURL="";this.baseURL="";this.assetBaseURL="";this.rootURL="";this.defaultConfigURL="config.xml";this.loadingHTML="";this.playerSize=new Object();this.configuration=new Array();this.usedViews=new Array();this.hasFlashPlugin=false;this.hasUnityPlugin=false;this.hasViewRequiringUnity=false;this.locale="en_US";this.pluginFlashRequiredVersion="9.0.124";this.pluginUnityRequiredVersion="2.5.0.5";this.pluginFlashSupportedViews=new Array();this.pluginUnitySupportedViews=new Array();this.pluginHtmlSupportedViews=new Array();this.getConfiguration=function(){return this.configuration};this.getLocale=function(){return this.locale};this.initWithFile=function(aFileName){var theFileName=this.getFileName(aFileName),theRequest=loadXMLDoc(theFileName,true);this.initWithRequest(theRequest)};this.initWithXML=function(aXML){for(var i=0;i<aXML.childNodes.length;i++){var theNode=aXML.childNodes[i];switch(theNode.nodeName){case"runner":var addProductDir=PropertyConvertor.convert(theNode,"addProductDir",PropertyConvertor.BOOLEAN,true);this.assetBaseURL=this.getFileName(PropertyConvertor.convert(theNode,"assetBaseURL",PropertyConvertor.STRING,""));if(this.assetBaseURL.substr(this.assetBaseURL.length-1)!="/")this.assetBaseURL+="/";if(addProductDir)this.assetBaseURL+=this.mProductId;if(this.assetBaseURL.substr(this.assetBaseURL.length-1)!="/")this.assetBaseURL+="/";if(!addProductDir)this.defaultConfigURL=this.mProductId+".xml";this.initRunnerSettingsWithXML(theNode);break;case"player":this.initPlayerSettingsWithXML(theNode);break;case"external":this.initExternalWithXML(theNode);break;case"optional":this.initExternalWithXML(theNode,true);break;default:break}}};this.detectRequirements=function(){this.hasFlashPlugin=swfobject.hasFlashPlayerVersion(this.pluginFlashRequiredVersion);this.hasUnityPlugin=detectUnityWebPlayer(this.pluginUnityRequiredVersion);this.hasViewRequiringUnity=false;for(var i=0;i<this.usedViews.length;i++){var theView=this.usedViews[i];if(this.pluginUnitySupportedViews.contains(theView)&&!this.pluginFlashSupportedViews.contains(theView))this.hasViewRequiringUnity=true}};this.initWithRequest=function(aRequest){this.configuration.push(aRequest.responseText);this.initLoadingWithText(aRequest.responseText);var theXML=aRequest.responseXML;this.initWithXML(theXML.childNodes[((theXML.childNodes[0].baseName=="xml")?1:0)])};this.initLoadingWithText=function(aText){var hasLoadingHTML=false;if(aText.indexOf("<loadingHTML>")!=-1){var theLoadingHTML=aText.substr(aText.indexOf("<loadingHTML>")+13);theLoadingHTML=theLoadingHTML.substr(0,theLoadingHTML.indexOf("</loadingHTML>"));this.loadingHTML=theLoadingHTML}};this.initRunnerSettingsWithXML=function(aXML){for(var i=0;i<aXML.childNodes.length;i++){var theNode=aXML.childNodes[i];switch(theNode.nodeName){case"loadingHTML":break;case"player":this.playerURL=this.getFileName(PropertyConvertor.convert(theNode,"source",PropertyConvertor.STRING,""));this.playerSize.width=PropertyConvertor.convert(theNode,"width",PropertyConvertor.SIZE,"100%");this.playerSize.height=PropertyConvertor.convert(theNode,"height",PropertyConvertor.SIZE,"100%");break;case"defaultConfig":this.defaultConfigURL=PropertyConvertor.convert(theNode,"source",PropertyConvertor.STRING,"config.xml");break;case"plugins":this.initPluginSettingsWithXML(theNode);break;default:break}}};this.initPluginSettingsWithXML=function(aXML){for(var i=0;i<aXML.childNodes.length;i++){var theNode=aXML.childNodes[i];switch(theNode.nodeName){case"flash":this.pluginFlashRequiredVersion=PropertyConvertor.convert(theNode,"requires",PropertyConvertor.STRING,this.pluginFlashRequiredVersion);this.pluginFlashSupportedViews=PropertyConvertor.convert(theNode,"supports",PropertyConvertor.ARRAY,[]);break;case"unity":this.pluginUnityRequiredVersion=PropertyConvertor.convert(theNode,"requires",PropertyConvertor.STRING,this.pluginUnityRequiredVersion);this.pluginUnitySupportedViews=PropertyConvertor.convert(theNode,"supports",PropertyConvertor.ARRAY,[]);break;case"html":this.pluginHtmlSupportedViews=PropertyConvertor.convert(theNode,"supports",PropertyConvertor.ARRAY,[]);break;default:break}}};this.initPlayerSettingsWithXML=function(aXML){for(var i=0;i<aXML.childNodes.length;i++){var theNode=aXML.childNodes[i];switch(theNode.nodeName){case"views":this.indexViewTypes(theNode);break;case"external":this.initExternalWithXML(theNode);break;case"optional":this.initExternalWithXML(theNode,true);break;default:break}}};this.initExternalWithXML=function(aXML,aOptional){var theURL=PropertyConvertor.convert(aXML,"source",PropertyConvertor.STRING,"");if(theURL!=""){var theFileName=this.getFileName(theURL),theRequest=loadXMLDoc(theFileName,true,null,aOptional);if(theRequest!=null)this.configuration.push(theRequest.responseText)}};this.getFileName=function(aFileName){if(aFileName.indexOf("%locale%")!=-1)aFileName=aFileName.split("%locale%").join(this.locale);if(aFileName.indexOf("://")!=-1)return aFileName;if(aFileName.substr(0,1)=="/")return this.rootURL+aFileName;if(this.mIsInGlobalConfig){return this.baseURL+aFileName}else return this.assetBaseURL+aFileName};this.indexViewTypes=function(aXML){for(var i=0;i<aXML.childNodes.length;i++){var theNode=aXML.childNodes[i],shouldIndex=true;switch(theNode.nodeName){case"transitionDefault":case"bulletDefaults":shouldIndex=false;break;default:if(theNode.nodeName.substr(0,1)=="#")shouldIndex=false;break};for(var j=0;j<this.usedViews.length;j++)if(this.usedViews[j]==theNode.nodeName)shouldIndex=false;if(shouldIndex)this.usedViews.push(theNode.nodeName)}};{this.mIsInGlobalConfig=true;this.mProductId=aProductId;this.baseURL=rootURL+pexBaseURL;this.assetBaseURL=rootURL+pexBaseURL;this.isLocal=isLocal;this.rootURL=rootURL;this.initWithFile(genericConfigurationURL);this.mIsInGlobalConfig=false}};createPackage("indg.exf");PEX=indg.exf.PEX=function(aProduct,aConfigURL,aLocale){this.mPEXConfiguration=NULL;this.mFlashHandler=NULL;this.mProductId=NULL;this.showPlugins=function(){var theLoading=document.getElementById("_pex_"+this.mProductId+"_loading_");theLoading.style.top="-3000px";theLoading.innerHTML="";theLoading.style.display="none"};this.setSize=function(aWidth,aHeight){var theWrapper=document.getElementById("_pex_"+this.mProductId+"_wrapper_");if(aWidth!=0)theWrapper.style.width=this.getSize(aWidth);if(aHeight!=0)theWrapper.style.height=this.getSize(aHeight)};this.embedUnityViewer=function(){return"__pex_unity__"};this.getSize=function(aSize){aSize=aSize.toString();return aSize+((aSize.substr(aSize.length-1)=="%")?"":"px")};this.embedFlashPlayer=function(){var unityConnectorId="",useUnity=false;if(this.mPEXConfiguration.hasViewRequiringUnity&&this.mPEXConfiguration.hasUnityPlugin){unityConnectorId=this.embedUnityViewer();if(unityConnectorId==""){alert("Something is wrong with your Unity installation")}else useUnity=true};var theFlashVars={useUnity:useUnity,product:this.mProductId,pexRunnerId:"PEX_"+this.mProductId,baseURL:this.mPEXConfiguration.assetBaseURL,isLocal:this.mPEXConfiguration.isLocal,rootURL:this.mPEXConfiguration.rootURL,recommendUnity:(this.mPEXConfiguration.hasViewRequiringUnity&&!this.mPEXConfiguration.hasUnityPlugin)},theParameters={allowFullscreen:true,fullscreen:true,wmode:"opaque"},theLocation=document.location.href;if(theLocation.split("?")[1]=="debug=true")theParameters.wmode="window";this.writeContainer();swfobject.embedSWF(this.mPEXConfiguration.playerURL,"_pex_"+this.mProductId+"_flash_","100%","100%",this.mPEXConfiguration.pluginFlashRequiredVersion,null,theFlashVars,theParameters,{});swfobject.createCSS("#_pex_"+this.mProductId+"_flash_","outline:none")};this.writeContainer=function(){if(this.mPEXConfiguration.viewType==this.mPEXConfiguration.VIEW_INLINE)document.write("<div id=\"_pex_"+this.mProductId+"_wrapper_\" class=\"pexContainer\" style=\"position: relative; top: 0px; left: 0px; width: "+this.getSize(this.mPEXConfiguration.playerSize.width)+"; height: "+this.getSize(this.mPEXConfiguration.playerSize.height)+";\"><div id=\"_pex_"+this.mProductId+"_loading_\" style=\"position:absolute; top: 0px; left: 0px; width: "+this.getSize(this.mPEXConfiguration.playerSize.width)+"; height: "+this.getSize(this.mPEXConfiguration.playerSize.height)+"; \">"+this.mPEXConfiguration.loadingHTML+"</div><div id=\"_pex_"+this.mProductId+"_flash_\"></div></div>")};this.embedHTMLFallback=function(){var theHTML=loadXMLDoc(document.location.href),theTestString="<noscript pex=\""+this.mProductId+"\">";if(theHTML.indexOf(theTestString)!=-1){var theNoScript=theHTML.substr(theHTML.indexOf(theTestString)+theTestString.length);if(theNoScript.indexOf("</noscript>")!=-1)theNoScript=theNoScript.substr(0,theNoScript.indexOf("</noscript>"));document.write(theNoScript)}};{if(aLocale==null){var userLang=(navigator.language)?navigator.language:navigator.userLanguage;userLang=userLang.split("-").join("_");var userCodes=userLang.split("_");userCodes[1]=userCodes[(userCodes.length>1)?1:0].toUpperCase();userLang=userCodes.join("_");aLocale=userLang};this.mProductId=aProduct;if((aProduct==null)||(aProduct==""))this.mProductId=defaultPexId;eval("PEX_"+this.mProductId+" = this;");this.mPEXConfiguration=new PEXConfiguration(this.mProductId);this.mPEXConfiguration.locale=aLocale;if(aConfigURL==null)aConfigURL=this.mPEXConfiguration.defaultConfigURL;this.mPEXConfiguration.initWithFile(aConfigURL);this.mPEXConfiguration.detectRequirements();if(this.mPEXConfiguration.hasFlashPlugin){this.embedFlashPlayer()}else this.embedHTMLFallback()}};try{trackPage("")}catch(e){trackPage=function(aPage){}};if(pexBaseURL.substr(pexBaseURL.length-1)!="/")pexBaseURL+="/";var rootURL="",isLocal=false;if(document.location.href.indexOf("file://")!=-1){var thePaths=document.location.href.split("?")[0].split("#")[0].split("\\").join("/").split("/");thePaths.pop();rootURL=thePaths.join("/");rootURL=rootURL.split("file://localhost/").join("file://");isLocal=true}
function getXMLHttpRequestObject(){var req=false;if(window.XMLHttpRequest&&!(window.ActiveXObject)){try{req=new XMLHttpRequest()}catch(e){req=false}}else if(window.ActiveXObject)try{req=new ActiveXObject("Msxml2.XMLHTTP")}catch(e){try{req=new ActiveXObject("Microsoft.XMLHTTP")}catch(e){req=false}};return req}
function loadXMLDoc(aURL,aAsRequest,aProps,aOptional){var theXmlRequest=getXMLHttpRequestObject();if(aAsRequest==null)aAsRequest=false;if(aOptional==null)aOptional=false;if(aProps==null)aProps=new Object();if(isLocal&&(aURL.indexOf("://")==-1)){if(aURL.substr(0,1)!="/")aURL="/"+aURL;aURL=rootURL+aURL};var theRequestMethod=((aProps==null)||(aProps.method==null))?"GET":aProps.method,theSendString=((aProps==null)||(aProps.send==null))?"":aProps.send;if(theXmlRequest){theXmlRequest.open(theRequestMethod,aURL,false);if(theRequestMethod=="POST"){theXmlRequest.setRequestHeader("Content-type","application/x-www-form-urlencoded");theXmlRequest.setRequestHeader("Content-length",theSendString.length)};theXmlRequest.send(theSendString);if(theXmlRequest.readyState==4)if((theXmlRequest.status==200)||(theXmlRequest.status==0)){var theRequestObject={responseXML:theXmlRequest.responseXML,responseText:theXmlRequest.responseText};if(((theRequestObject.responseXML==null)||(theRequestObject.responseXML.childNodes.length==0))&&(theRequestObject.responseText!="")){var theXMLDocument;if(window.DOMParser){var theDOMParser=new DOMParser();theXMLDocument=theDOMParser.parseFromString(theXmlRequest.responseText,"text/xml")}else{theXMLDocument=new ActiveXObject("Microsoft.XMLDOM");theXMLDocument.async="false";theXMLDocument.loadXML(theXmlRequest.responseText)};theRequestObject.responseXML=theXMLDocument};return(aAsRequest)?theRequestObject:theRequestObject.responseText}else{if(!aOptional)alert("There was a problem loading file \""+aURL+"\":\n"+theXmlRequest.statusText);return null}};return null};var hasXmlRequest=getXMLHttpRequestObject();if(hasXmlRequest)hasXmlRequest=true
function patchSWFObject(){var UNDEF="undefined",SHOCKWAVE_FLASH_AX="ShockwaveFlash.ShockwaveFlash.7",win=window;if(typeof window.ActiveXObject!="undefined")try{var a=new ActiveXObject(SHOCKWAVE_FLASH_AX);if(a){d=a.GetVariable("$version");if(d){d=d.split(" ")[1].split(",");swfobject.ua.pv=[parseInt(d[0],10),parseInt(d[1],10),parseInt(d[2],10)]}}}catch(e){};if(swfobject.ua.ie)swfobject.ua.mac=true}
function placePEX(aProductId,aConfigURL,aLocale){patchSWFObject();if(hasXmlRequest){bootClass("indg.exf.PEX",[aProductId,aConfigURL,aLocale])}else document.write("Your webbrowser does not have the required functionality to display this application.")}
