2015-04-01 08:48:24 +00:00
/*! SWFObject v2.0 <http:/ / code . google . com / p / swfobject / >
Copyright ( c ) 2007 Geoff Stearns , Michael Williams , and Bobby van der Sluis
This software is released under the MIT License < http : //www.opensource.org/licenses/mit-license.php>
* /
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 ;
/ * C e n t r a l i z e d f u n c t i o n f o r b r o w s e r f e a t u r e d e t e c t i o n
- 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" ; // Introduced in fp6.0.47
}
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 ) ;
/ * @ c c _ o n
ie = true ;
@ if ( @ _win32 )
windows = true ;
@ elif ( @ _mac )
mac = true ;
@ end
@ * /
return { w3cdom : w3cdom , pv : playerVersion , webkit : webkit , ie : ie , win : windows , mac : mac } ;
} ( ) ;
/ * C r o s s - b r o w s e r o n D o m L o a d
- 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 { // Avoid a possible Operation Aborted error
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 { // Avoid a possible Operation Aborted error
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 ; // Array.push() is only available in IE5.5+
}
}
/ * C r o s s - b r o w s e r o n l o a d
- 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 ;
}
}
/ * M a i n f u n c t i o n
- 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 { // Flash plug-in and Flash content version mismatch: display alternative content instead of Flash content
displayAltContent ( obj ) ;
}
}
}
else { // If no fp is installed, we let the object element do its job (show alternative content)
setVisibility ( id , true ) ;
}
}
}
/ * F i x n e s t e d p a r a m e l e m e n t s , w h i c h a r e i g n o r e d b y o l d e r w e b k i t e n g i n e s
- 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 ) ;
}
}
/ * F i x h a n g i n g a u d i o / v i d e o t h r e a d s a n d f o r c e o p e n s o c k e t s a n d N e t C o n n e c t i o n s t o d i s c o n n e c t
- 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 ) ;
}
} ) ;
}
}
/ * S h o w t h e A d o b e E x p r e s s I n s t a l l d i a l o g
- Reference : http : //www.adobe.com/cfusion/knowledgebase/index.cfm?id=6a253b75
* /
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 ;
// For IE when a SWF is loading (AND: not available in cache) wait for the onload event to fire to remove the original object element
// In IE you cannot properly cancel a loading SWF file without breaking browser load references, also obj.onreadystatechange doesn't work
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 ) ;
}
}
/ * F u n c t i o n s t o a b s t r a c t a n d d i s p l a y a l t e r n a t i v e c o n t e n t
* /
function displayAltContent ( obj ) {
if ( ua . ie && ua . win && obj . readyState != 4 ) {
// For IE when a SWF is loading (AND: not available in cache) wait for the onload event to fire to remove the original object element
// In IE you cannot properly cancel a loading SWF file without breaking browser load references, also obj.onreadystatechange doesn't work
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 ;
}
/ * C r o s s - b r o w s e r d y n a m i c S W F c r e a t i o n
* /
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 { // Well-behaving browsers
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 ;
}
/ * C r o s s - b r o w s e r d y n a m i c C S S c r e a t i o n
- 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 {
/ * P u b l i c A P I
- Reference : http : //code.google.com/p/swfobject/wiki/SWFObject_2_0_documentation
* /
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 += "" ; // Auto-convert to string to make it idiot proof
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 "" ;
} ,
// For internal usage only
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 ;
}
}
}
} ;
} ( ) ;