/*!	SWFObject v2.0 <http:
Copyright(c)2007 Geoff Stearns,Michael Williams,and Bobby van der Sluis
This software is released under the MIT License <http:*/
var swfobject=function(){var UNDEF="undefined",OBJECT="object",SHOCKWAVE_FLASH="Shockwave Flash",SHOCKWAVE_FLASH_AX="ShockwaveFlash.ShockwaveFlash",FLASH_MIME_TYPE="application/x-shockwave-flash",EXPRESS_INSTALL_ID="SWFObjectExprInst",win=window,doc=document,nav=navigator,domLoadFnArr=[],regObjArr=[],timer=null,storedAltContent=null,storedAltContentId=null,isDomLoaded=false,isExpressInstallActive=false;/*Centralized function for browser feature detection- Proprietary feature detection(conditional compiling)is used to detect Internet Explorer's features- User agent string detection is only used when no alternative is possible- Is executed directly for optimal performance*/
var ua=function(){var w3cdom=typeof doc.getElementById !=UNDEF && typeof doc.getElementsByTagName !=UNDEF && typeof doc.createElement !=UNDEF && typeof doc.appendChild !=UNDEF && typeof doc.replaceChild !=UNDEF && typeof doc.removeChild !=UNDEF && typeof doc.cloneNode !=UNDEF,playerVersion=[0,0,0],d=null;if(typeof nav.plugins !=UNDEF && typeof nav.plugins[SHOCKWAVE_FLASH]==OBJECT){d=nav.plugins[SHOCKWAVE_FLASH].description;if(d){d=d.replace(/^.*\s+(\S+\s+\S+$)/,"$1");playerVersion[0]=parseInt(d.replace(/^(.*)\..*$/,"$1"),10);playerVersion[1]=parseInt(d.replace(/^.*\.(.*)\s.*$/,"$1"),10);playerVersion[2]=/r/.test(d)? parseInt(d.replace(/^.*r(.*)$/,"$1"),10): 0;}}
else if(typeof win.ActiveXObject !=UNDEF){var a=null,fp6Crash=false;try{a=new ActiveXObject(SHOCKWAVE_FLASH_AX+".7");}
catch(e){try{a=new ActiveXObject(SHOCKWAVE_FLASH_AX+".6");playerVersion=[6,0,21];a.AllowScriptAccess="always";}
catch(e){if(playerVersion[0]==6){fp6Crash=true;}}
if(!fp6Crash){try{a=new ActiveXObject(SHOCKWAVE_FLASH_AX);}
catch(e){}}}
if(!fp6Crash && a){// a will return null when ActiveX is disabled
try{d=a.GetVariable("$version");// Will crash fp6.0.21/23/29
if(d){d=d.split(" ")[1].split(",");playerVersion=[parseInt(d[0],10),parseInt(d[1],10),parseInt(d[2],10)];}}
catch(e){}}}
var u=nav.userAgent.toLowerCase(),p=nav.platform.toLowerCase(),webkit=/webkit/.test(u)? parseFloat(u.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")): false,// returns either the webkit version or false if not webkit
ie=false,windows=p ? /win/.test(p): /win/.test(u),mac=p ? /mac/.test(p): /mac/.test(u);/*@cc_on
ie=true;@if(@_win32)
windows=true;@elif(@_mac)
mac=true;@end
@*/
return{w3cdom:w3cdom,pv:playerVersion,webkit:webkit,ie:ie,win:windows,mac:mac};}();/*Cross-browser onDomLoad- Based on Dean Edwards' solution: http://dean.edwards.name/weblog/2006/06/again/- Will fire an event as soon as the DOM of a page is loaded(supported by Gecko based browsers- like Firefox-,IE,Opera9+,Safari)*/
var onDomLoad=function(){if(!ua.w3cdom){return;}
addDomLoadEvent(main);if(ua.ie && ua.win){try{doc.write("<scr"+"ipt id=__ie_ondomload defer=true src=//:></scr"+"ipt>");// String is split into pieces to avoid Norton AV to add code that can cause errors
var s=getElementById("__ie_ondomload");if(s){s.onreadystatechange=function(){if(this.readyState=="complete"){this.parentNode.removeChild(this);callDomLoadFunctions();}};}}
catch(e){}}
if(ua.webkit && typeof doc.readyState !=UNDEF){timer=setInterval(function(){if(/loaded|complete/.test(doc.readyState)){callDomLoadFunctions();}},10);}
if(typeof doc.addEventListener !=UNDEF){doc.addEventListener("DOMContentLoaded",callDomLoadFunctions,null);}
addLoadEvent(callDomLoadFunctions);}();function callDomLoadFunctions(){if(isDomLoaded){return;}
if(ua.ie && ua.win){// Test if we can really add elements to the DOM;we don't want to fire it too early
var s=createElement("span");try{var t=doc.getElementsByTagName("body")[0].appendChild(s);t.parentNode.removeChild(t);}
catch(e){return;}}
isDomLoaded=true;if(timer){clearInterval(timer);timer=null;}
var dl=domLoadFnArr.length;for(var i=0;i < dl;i++){domLoadFnArr[i]();}}
function addDomLoadEvent(fn){if(isDomLoaded){fn();}
else{domLoadFnArr[domLoadFnArr.length]=fn;}}
/*Cross-browser onload- Based on James Edwards' solution: http://brothercake.com/site/resources/scripts/onload/- Will fire an event as soon as a web page including all of its assets are loaded*/
function addLoadEvent(fn){if(typeof win.addEventListener !=UNDEF){win.addEventListener("load",fn,false);}
else if(typeof doc.addEventListener !=UNDEF){doc.addEventListener("load",fn,false);}
else if(typeof win.attachEvent !=UNDEF){win.attachEvent("onload",fn);}
else if(typeof win.onload=="function"){var fnOld=win.onload;win.onload=function(){fnOld();fn();};}
else{win.onload=fn;}}
/*Main function- Will preferably execute onDomLoad,otherwise onload(as a fallback)*/
function main(){// Static publishing only
var rl=regObjArr.length;for(var i=0;i < rl;i++){// For each registered object element
var id=regObjArr[i].id;if(ua.pv[0] > 0){var obj=getElementById(id);if(obj){regObjArr[i].width=obj.getAttribute("width")? obj.getAttribute("width"): "0";regObjArr[i].height=obj.getAttribute("height")? obj.getAttribute("height"): "0";if(hasPlayerVersion(regObjArr[i].swfVersion)){// Flash plug-in version >=Flash content version: Houston,we have a match!
if(ua.webkit && ua.webkit < 312){// Older webkit engines ignore the object element's nested param elements
fixParams(obj);}
setVisibility(id,true);}
else if(regObjArr[i].expressInstall && !isExpressInstallActive && hasPlayerVersion("6.0.65")&&(ua.win ||ua.mac)){// Show the Adobe Express Install dialog if set by the web page author and if supported(fp6.0.65+on Win/Mac OS only)
showExpressInstall(regObjArr[i]);}
else{displayAltContent(obj);}}}
else{setVisibility(id,true);}}}
/*Fix nested param elements,which are ignored by older webkit engines- This includes Safari up to and including version 1.2.2 on Mac OS 10.3- Fall back to the proprietary embed element*/
function fixParams(obj){var nestedObj=obj.getElementsByTagName(OBJECT)[0];if(nestedObj){var e=createElement("embed"),a=nestedObj.attributes;if(a){var al=a.length;for(var i=0;i < al;i++){if(a[i].nodeName.toLowerCase()=="data"){e.setAttribute("src",a[i].nodeValue);}
else{e.setAttribute(a[i].nodeName,a[i].nodeValue);}}}
var c=nestedObj.childNodes;if(c){var cl=c.length;for(var j=0;j < cl;j++){if(c[j].nodeType==1 && c[j].nodeName.toLowerCase()=="param"){e.setAttribute(c[j].getAttribute("name"),c[j].getAttribute("value"));}}}
obj.parentNode.replaceChild(e,obj);}}
/*Fix hanging audio/video threads and force open sockets and NetConnections to disconnect- Occurs when unloading a web page in IE using fp8+and innerHTML/outerHTML- Dynamic publishing only*/
function fixObjectLeaks(id){if(ua.ie && ua.win && hasPlayerVersion("8.0.0")){win.attachEvent("onunload",function(){var obj=getElementById(id);if(obj){for(var i in obj){if(typeof obj[i]=="function"){obj[i]=function(){};}}
obj.parentNode.removeChild(obj);}});}}
/*Show the Adobe Express Install dialog- Reference: http:*/
function showExpressInstall(regObj){isExpressInstallActive=true;var obj=getElementById(regObj.id);if(obj){if(regObj.altContentId){var ac=getElementById(regObj.altContentId);if(ac){storedAltContent=ac;storedAltContentId=regObj.altContentId;}}
else{storedAltContent=abstractAltContent(obj);}
if(!(/%$/.test(regObj.width))&& parseInt(regObj.width,10)< 310){regObj.width="310";}
if(!(/%$/.test(regObj.height))&& parseInt(regObj.height,10)< 137){regObj.height="137";}
doc.title=doc.title.slice(0,47)+" - Flash Player Installation";var pt=ua.ie && ua.win ? "ActiveX" : "PlugIn",dt=doc.title,fv="MMredirectURL="+win.location+"&MMplayerType="+pt+"&MMdoctitle="+dt,replaceId=regObj.id;if(ua.ie && ua.win && obj.readyState !=4){var newObj=createElement("div");replaceId+="SWFObjectNew";newObj.setAttribute("id",replaceId);obj.parentNode.insertBefore(newObj,obj);// Insert placeholder div that will be replaced by the object element that loads expressinstall.swf
obj.style.display="none";win.attachEvent("onload",function(){obj.parentNode.removeChild(obj);});}
createSWF({data:regObj.expressInstall,id:EXPRESS_INSTALL_ID,width:regObj.width,height:regObj.height},{flashvars:fv},replaceId);}}
/*Functions to abstract and display alternative content*/
function displayAltContent(obj){if(ua.ie && ua.win && obj.readyState !=4){var el=createElement("div");obj.parentNode.insertBefore(el,obj);// Insert placeholder div that will be replaced by the alternative content
el.parentNode.replaceChild(abstractAltContent(obj),el);obj.style.display="none";win.attachEvent("onload",function(){obj.parentNode.removeChild(obj);});}
else{obj.parentNode.replaceChild(abstractAltContent(obj),obj);}}
function abstractAltContent(obj){var ac=createElement("div");if(ua.win && ua.ie){ac.innerHTML=obj.innerHTML;}
else{var nestedObj=obj.getElementsByTagName(OBJECT)[0];if(nestedObj){var c=nestedObj.childNodes;if(c){var cl=c.length;for(var i=0;i < cl;i++){if(!(c[i].nodeType==1 && c[i].nodeName.toLowerCase()=="param")&& !(c[i].nodeType==8)){ac.appendChild(c[i].cloneNode(true));}}}}}
return ac;}
/*Cross-browser dynamic SWF creation*/
function createSWF(attObj,parObj,id){var r,el=getElementById(id);if(typeof attObj.id==UNDEF){// if no 'id' is defined for the object element,it will inherit the 'id' from the alternative content
attObj.id=id;}
if(ua.ie && ua.win){// IE,the object element and W3C DOM methods do not combine: fall back to outerHTML
var att="";for(var i in attObj){if(attObj[i] !=Object.prototype[i]){// Filter out prototype additions from other potential libraries,like Object.prototype.toJSONString=function(){}
if(i=="data"){parObj.movie=attObj[i];}
else if(i.toLowerCase()=="styleclass"){// 'class' is an ECMA4 reserved keyword
att+=' class="' + attObj[i] + '"';}
else if(i !="classid"){att+=' '+i+'="' + attObj[i] + '"';}}}
var par="";for(var j in parObj){if(parObj[j] !=Object.prototype[j]){// Filter out prototype additions from other potential libraries
par+='<param name="' + j + '" value="' + parObj[j] + '" />';}}
el.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+att+'>'+par+'</object>';fixObjectLeaks(attObj.id);// This bug affects dynamic publishing only
r=getElementById(attObj.id);}
else if(ua.webkit && ua.webkit < 312){// Older webkit engines ignore the object element's nested param elements: fall back to the proprietary embed element
var e=createElement("embed");e.setAttribute("type",FLASH_MIME_TYPE);for(var k in attObj){if(attObj[k] !=Object.prototype[k]){// Filter out prototype additions from other potential libraries
if(k=="data"){e.setAttribute("src",attObj[k]);}
else if(k.toLowerCase()=="styleclass"){// 'class' is an ECMA4 reserved keyword
e.setAttribute("class",attObj[k]);}
else if(k !="classid"){// Filter out IE specific attribute
e.setAttribute(k,attObj[k]);}}}
for(var l in parObj){if(parObj[l] !=Object.prototype[l]){// Filter out prototype additions from other potential libraries
if(l !="movie"){// Filter out IE specific param element
e.setAttribute(l,parObj[l]);}}}
el.parentNode.replaceChild(e,el);r=e;}
else{var o=createElement(OBJECT);o.setAttribute("type",FLASH_MIME_TYPE);for(var m in attObj){if(attObj[m] !=Object.prototype[m]){// Filter out prototype additions from other potential libraries
if(m.toLowerCase()=="styleclass"){// 'class' is an ECMA4 reserved keyword
o.setAttribute("class",attObj[m]);}
else if(m !="classid"){// Filter out IE specific attribute
o.setAttribute(m,attObj[m]);}}}
for(var n in parObj){if(parObj[n] !=Object.prototype[n] && n !="movie"){// Filter out prototype additions from other potential libraries and IE specific param element
createObjParam(o,n,parObj[n]);}}
el.parentNode.replaceChild(o,el);r=o;}
return r;}
function createObjParam(el,pName,pValue){var p=createElement("param");p.setAttribute("name",pName);p.setAttribute("value",pValue);el.appendChild(p);}
function getElementById(id){return doc.getElementById(id);}
function createElement(el){return doc.createElement(el);}
function hasPlayerVersion(rv){var pv=ua.pv,v=rv.split(".");v[0]=parseInt(v[0],10);v[1]=parseInt(v[1],10);v[2]=parseInt(v[2],10);return(pv[0] > v[0] ||(pv[0]==v[0] && pv[1] > v[1])||(pv[0]==v[0] && pv[1]==v[1] && pv[2] >=v[2]))? true : false;}
/*Cross-browser dynamic CSS creation- Based on Bobby van der Sluis' solution: http://www.bobbyvandersluis.com/articles/dynamicCSS.php*/
function createCSS(sel,decl){if(ua.ie && ua.mac){return;}
var h=doc.getElementsByTagName("head")[0],s=createElement("style");s.setAttribute("type","text/css");s.setAttribute("media","screen");if(!(ua.ie && ua.win)&& typeof doc.createTextNode !=UNDEF){s.appendChild(doc.createTextNode(sel+" {"+decl+"}"));}
h.appendChild(s);if(ua.ie && ua.win && typeof doc.styleSheets !=UNDEF && doc.styleSheets.length > 0){var ls=doc.styleSheets[doc.styleSheets.length- 1];if(typeof ls.addRule==OBJECT){ls.addRule(sel,decl);}}}
function setVisibility(id,isVisible){var v=isVisible ? "visible" : "hidden";if(isDomLoaded){getElementById(id).style.visibility=v;}
else{createCSS("#"+id,"visibility:"+v);}}
function getTargetVersion(obj){if(!obj)
return 0;var c=obj.childNodes;var cl=c.length;for(var i=0;i < cl;i++){if(c[i].nodeType==1 && c[i].nodeName.toLowerCase()=="object"){c=c[i].childNodes;cl=c.length;i=0;}
if(c[i].nodeType==1 && c[i].nodeName.toLowerCase()=="param" && c[i].getAttribute("name")=="swfversion"){return c[i].getAttribute("value");}}
return 0;}
function getExpressInstall(obj){if(!obj)
return "";var c=obj.childNodes;var cl=c.length;for(var i=0;i < cl;i++){if(c[i].nodeType==1 && c[i].nodeName.toLowerCase()=="object"){c=c[i].childNodes;cl=c.length;i=0;}
if(c[i].nodeType==1 && c[i].nodeName.toLowerCase()=="param" && c[i].getAttribute("name")=="expressinstall"){return c[i].getAttribute("value");}}
return "";}
return{/*Public API- Reference: http:*/
registerObject: function(objectIdStr,swfVersionStr,xiSwfUrlStr){if(!ua.w3cdom ||!objectIdStr){return;}
var obj=document.getElementById(objectIdStr);var xi=getExpressInstall(obj);var regObj={};regObj.id=objectIdStr;regObj.swfVersion=swfVersionStr ? swfVersionStr : getTargetVersion(obj);regObj.expressInstall=xiSwfUrlStr ? xiSwfUrlStr :((xi !="")? xi : false);regObjArr[regObjArr.length]=regObj;setVisibility(objectIdStr,false);},getObjectById: function(objectIdStr){var r=null;if(ua.w3cdom && isDomLoaded){var o=getElementById(objectIdStr);if(o){var n=o.getElementsByTagName(OBJECT)[0];if(!n ||(n && typeof o.SetVariable !=UNDEF)){r=o;}
else if(typeof n.SetVariable !=UNDEF){r=n;}}}
return r;},embedSWF: function(swfUrlStr,replaceElemIdStr,widthStr,heightStr,swfVersionStr,xiSwfUrlStr,flashvarsObj,parObj,attObj){if(!ua.w3cdom ||!swfUrlStr ||!replaceElemIdStr ||!widthStr ||!heightStr ||!swfVersionStr){return;}
widthStr+="";heightStr+="";if(hasPlayerVersion(swfVersionStr)){setVisibility(replaceElemIdStr,false);var att=(typeof attObj==OBJECT)? attObj :{};att.data=swfUrlStr;att.width=widthStr;att.height=heightStr;var par=(typeof parObj==OBJECT)? parObj :{};if(typeof flashvarsObj==OBJECT){for(var i in flashvarsObj){if(flashvarsObj[i] !=Object.prototype[i]){// Filter out prototype additions from other potential libraries
if(typeof par.flashvars !=UNDEF){par.flashvars+="&"+i+"="+flashvarsObj[i];}
else{par.flashvars=i+"="+flashvarsObj[i];}}}}
addDomLoadEvent(function(){createSWF(att,par,replaceElemIdStr);if(att.id==replaceElemIdStr){setVisibility(replaceElemIdStr,true);}});}
else if(xiSwfUrlStr && !isExpressInstallActive && hasPlayerVersion("6.0.65")&&(ua.win ||ua.mac)){setVisibility(replaceElemIdStr,false);addDomLoadEvent(function(){var regObj={};regObj.id=regObj.altContentId=replaceElemIdStr;regObj.width=widthStr;regObj.height=heightStr;regObj.expressInstall=xiSwfUrlStr;showExpressInstall(regObj);});}},getFlashPlayerVersion: function(){return{major:ua.pv[0],minor:ua.pv[1],release:ua.pv[2]};},hasFlashPlayerVersion:hasPlayerVersion,createSWF: function(attObj,parObj,replaceElemIdStr){if(ua.w3cdom && isDomLoaded){return createSWF(attObj,parObj,replaceElemIdStr);}
else{return undefined;}},createCSS: function(sel,decl){if(ua.w3cdom){createCSS(sel,decl);}},addDomLoadEvent:addDomLoadEvent,addLoadEvent:addLoadEvent,getQueryParamValue: function(param){var q=doc.location.search ||doc.location.hash;if(param==null){return q;}
if(q){var pairs=q.substring(1).split("&");for(var i=0;i < pairs.length;i++){if(pairs[i].substring(0,pairs[i].indexOf("="))==param){return pairs[i].substring((pairs[i].indexOf("=")+1));}}}
return "";},expressInstallCallback: function(){if(isExpressInstallActive && storedAltContent){var obj=getElementById(EXPRESS_INSTALL_ID);if(obj){obj.parentNode.replaceChild(storedAltContent,obj);if(storedAltContentId){setVisibility(storedAltContentId,true);if(ua.ie && ua.win){storedAltContent.style.display="block";}}
storedAltContent=null;storedAltContentId=null;isExpressInstallActive=false;}}}};}();
