function matchVersions() {
        var rl = regObjArr.length;
        if (rl > 0) {
            for (var i = 0; i < rl; i++) {
                // for each registered object element
                var id = regObjArr[i].id;
                var cb = regObjArr[i].callbackFn;
                var cbObj = { success: false, id: id };
                if (ua.pv[0] > 0) {
                    var obj = getElementById(id);
                    if (obj) {
                        if (hasPlayerVersion(regObjArr[i].swfVersion) && !(ua.wk && ua.wk < 312)) {
                            // Flash Player version >= published SWF version: Houston, we have a match!
                            setVisibility(id, true);
                            if (cb) {
                                cbObj.success = true;
                                cbObj.ref = getObjectById(id);
                                cbObj.id = id;
                                cb(cbObj);
                            }
                        } else if (regObjArr[i].expressInstall && canExpressInstall()) {
                            // show the Adobe Express Install dialog if set by the web page author and if supported
                            var att = {};
                            att.data = regObjArr[i].expressInstall;
                            att.width = obj.getAttribute("width") || "0";
                            att.height = obj.getAttribute("height") || "0";
                            if (obj.getAttribute("class")) {
                                att.styleclass = obj.getAttribute("class");
                            }
                            if (obj.getAttribute("align")) {
                                att.align = obj.getAttribute("align");
                            }
                            // parse HTML object param element's name-value pairs
                            var par = {};
                            var p = obj.getElementsByTagName("param");
                            var pl = p.length;
                            for (var j = 0; j < pl; j++) {
                                if (p[j].getAttribute("name").toLowerCase() !== "movie") {
                                    par[p[j].getAttribute("name")] = p[j].getAttribute("value");
                                }
                            }
                            showExpressInstall(att, par, id, cb);
                        } else {
                            // Flash Player and SWF version mismatch or an older Webkit engine that ignores the HTML object element's nested param elements: display fallback content instead of SWF
                            displayFbContent(obj);
                            if (cb) {
                                cb(cbObj);
                            }
                        }
                    }
                } else {
                    // if no Flash Player is installed or the fp version cannot be detected we let the HTML object element do its job (either show a SWF or fallback content)
                    setVisibility(id, true);
                    if (cb) {
                        var o = getObjectById(id); // test whether there is an HTML object element or not
                        if (o && typeof o.SetVariable !== UNDEF) {
                            cbObj.success = true;
                            cbObj.ref = o;
                            cbObj.id = o.id;
                        }
                        cb(cbObj);
                    }
                }
            }
        }
    }
/* Perform Flash Player and SWF version matching; static publishing only
    */
Perform Flash Player and SWF version matching; static publishing only
Perform Flash Player and SWF version matching ; static publishing only
function matchVersions() {
        var rl = regObjArr.length;
        if (rl > 0) {
            for (var i = 0; i < rl; i++) {
                var id = regObjArr[i].id;
                var cb = regObjArr[i].callbackFn;
                var cbObj = { success: false, id: id };
                if (ua.pv[0] > 0) {
                    var obj = getElementById(id);
                    if (obj) {
                        if (hasPlayerVersion(regObjArr[i].swfVersion) && !(ua.wk && ua.wk < 312)) {
                            setVisibility(id, true);
                            if (cb) {
                                cbObj.success = true;
                                cbObj.ref = getObjectById(id);
                                cbObj.id = id;
                                cb(cbObj);
                            }
                        } else if (regObjArr[i].expressInstall && canExpressInstall()) {
                            var att = {};
                            att.data = regObjArr[i].expressInstall;
                            att.width = obj.getAttribute("width") || "0";
                            att.height = obj.getAttribute("height") || "0";
                            if (obj.getAttribute("class")) {
                                att.styleclass = obj.getAttribute("class");
                            }
                            if (obj.getAttribute("align")) {
                                att.align = obj.getAttribute("align");
                            }
                            var par = {};
                            var p = obj.getElementsByTagName("param");
                            var pl = p.length;
                            for (var j = 0; j < pl; j++) {
                                if (p[j].getAttribute("name").toLowerCase() !== "movie") {
                                    par[p[j].getAttribute("name")] = p[j].getAttribute("value");
                                }
                            }
                            showExpressInstall(att, par, id, cb);
                        } else {
                            displayFbContent(obj);
                            if (cb) {
                                cb(cbObj);
                            }
                        }
                    }
                } else {
                    setVisibility(id, true);
                    if (cb) {
                        var o = getObjectById(id); 
                        if (o && typeof o.SetVariable !== UNDEF) {
                            cbObj.success = true;
                            cbObj.ref = o;
                            cbObj.id = o.id;
                        }
                        cb(cbObj);
                    }
                }
            }
        }
    }
function matchVersions ( ) { var rl = regObjArr . length ; if ( rl > 0 ) { for ( var i = 0 ; i < rl ; i ++ ) { var id = regObjArr [ i ] . id ; var cb = regObjArr [ i ] . callbackFn ; var cbObj = { success : false , id : id } ; if ( ua . pv [ 0 ] > 0 ) { var obj = getElementById ( id ) ; if ( obj ) { if ( hasPlayerVersion ( regObjArr [ i ] . swfVersion ) && ! ( ua . wk && ua . wk < 312 ) ) { setVisibility ( id , true ) ; if ( cb ) { cbObj . success = true ; cbObj . ref = getObjectById ( id ) ; cbObj . id = id ; cb ( cbObj ) ; } } else if ( regObjArr [ i ] . expressInstall && canExpressInstall ( ) ) { var att = { } ; att . data = regObjArr [ i ] . expressInstall ; att . width = obj . getAttribute ( "width" ) || "0" ; att . height = obj . getAttribute ( "height" ) || "0" ; if ( obj . getAttribute ( "class" ) ) { att . styleclass = obj . getAttribute ( "class" ) ; } if ( obj . getAttribute ( "align" ) ) { att . align = obj . getAttribute ( "align" ) ; } var par = { } ; var p = obj . getElementsByTagName ( "param" ) ; var pl = p . length ; for ( var j = 0 ; j < pl ; j ++ ) { if ( p [ j ] . getAttribute ( "name" ) . toLowerCase ( ) !== "movie" ) { par [ p [ j ] . getAttribute ( "name" ) ] = p [ j ] . getAttribute ( "value" ) ; } } showExpressInstall ( att , par , id , cb ) ; } else { displayFbContent ( obj ) ; if ( cb ) { cb ( cbObj ) ; } } } } else { setVisibility ( id , true ) ; if ( cb ) { var o = getObjectById ( id ) ; if ( o && typeof o . SetVariable !== UNDEF ) { cbObj . success = true ; cbObj . ref = o ; cbObj . id = o . id ; } cb ( cbObj ) ; } } } } }
Perform Flash Player and SWF version matching; static publishing only
Perform Flash Player and SWF version matching ; static publishing only
// for each registered object element // Flash Player version >= published SWF version: Houston, we have a match! // show the Adobe Express Install dialog if set by the web page author and if supported // parse HTML object param element's name-value pairs // Flash Player and SWF version mismatch or an older Webkit engine that ignores the HTML object element's nested param elements: display fallback content instead of SWF // if no Flash Player is installed or the fp version cannot be detected we let the HTML object element do its job (either show a SWF or fallback content) // test whether there is an HTML object element or not