1. Nachrichten
  2. Forum
    1. Unerledigte Themen
    2. Forenregeln
  3. Spenden
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. camp-firefox.de
  2. TremorChrist

Beiträge von TremorChrist

  • Grafik/.mm wird trotz flash player nicht angezeigt

    • TremorChrist
    • 30. Mai 2010 um 14:22

    Hi,

    aus unerklärlichen Gründen funktioniert die mindmap seit ca. März auch über ff einwandfrei :D

    Greetz
    Uli

  • Grafik/.mm wird trotz flash player nicht angezeigt

    • TremorChrist
    • 28. Dezember 2009 um 09:18

    Hat jemand n Tipp, in welchem Forum ich noch Hilfe bekommen könnte?
    Cheers
    U

  • Grafik/.mm wird trotz flash player nicht angezeigt

    • TremorChrist
    • 3. Dezember 2009 um 16:03

    Der Verständlichkeit halber:
    Nach der Anleitung wäre die swfobject.js nicht einzeifügen. Ohne diese kommt aber die Fehlermeldung: "This content requires the Adobe Flash Player."
    Mit ihr siehts eben so aus wie jetzt.
    cya u

  • Grafik/.mm wird trotz flash player nicht angezeigt

    • TremorChrist
    • 27. November 2009 um 20:52

    Habe die Extensions wie angeleitet installiert:
    flashobject.js
    freemindbrowser.jar
    visorFreemind.swf

    Allerdings kommt dann auf der Seite noch ne Fehlermeldung: "This content requires the Adobe Flash Player." Erst wenn ich die hinzufüge ist diese Fehlermeldung weg und zumindest im IE die .mm zu sehen - im ff nicht. Dieser Schritt ist nicht in der Anleitung beschrieben.
    swfobjects.js

    Außerdem: der Download über den Link zur Anleitung beinhaltet noch:
    appletwindow.php
    appletwindowFunction.php
    flashwindow.php
    flashwindowFunction.php
    Habe diese Dateien ins Verzeichnis wiki/extensions bzw. wiki/extensions/freemind reinkopiert - ändert nichts am Problem (sind wieder draußen).

    Also: bis auf die swfobject ists genau der Stand der Anleitung!

  • Grafik/.mm wird trotz flash player nicht angezeigt

    • TremorChrist
    • 24. November 2009 um 21:00

    Ja, zunächst nach dieser Anleitung.
    Wegen der Probleme habe ich dann allerdings noch verschiedene Ratschläge aus Foren befolgt - und z.T. wieder rückgängig gemacht. Bin mir nicht 100% sicher ob der StatusQuo dieser Anleitung besteht. Könnte allerdings auch nach dieser Anleitung nochmal installieren - wenn das eine bessere Ausgangsbasis wäre!

    Gruß
    Uli

  • Grafik/.mm wird trotz flash player nicht angezeigt

    • TremorChrist
    • 19. November 2009 um 16:27
    Zitat von boardraider

    Ist ein Problem mit der Library, diese benötigst du eigentlich auch nicht.

    Wie/Wo entferne ich denn die Library bzw. schalte sie aus?

  • Grafik/.mm wird trotz flash player nicht angezeigt

    • TremorChrist
    • 16. November 2009 um 19:45

    Wie ist das denn zu verstehen: Wie hast du denn den alten Code eingebunden?

    Mit welchem FTP Server? (File Zilla)
    Oder: Welche Dateien dafür mit hochgeladen wurden? (flashwindowfunction.php; flashobject.js; freemindbrowser.jar; swfobject.js; visorFreemind.swf)
    Oder welchen Befehl ich auf der wiki-bearbeiten eingegeben habe? <mm>[[Pv.mm]]</mm>

    Oder wie muss ich auf die Frage Antworten?

    Danke!!!!!!

  • Grafik/.mm wird trotz flash player nicht angezeigt

    • TremorChrist
    • 30. Oktober 2009 um 19:20

    Dann versuche ich nochmal zu antworten:

    Habe 1. die .mm-Datei hochgeladen, und dann 2. den Befehl zum einbinden der Mindmap-Datei auf der Wikiseite eingegeben: <mm>[[Pv.mm]]</mm>.

    Mit FileZilla habe ich u.a. den code flashobject.js in /http://ww.herrtriebel.de/wiki/extensions/freemind hochgeladen

    Code
    /*
     * FlashObject embed
     * by Geoff Stearns (geoff@deconcept.com, http://www.deconcept.com/)
     *
     * v1.1.1 - 05-17-2005
     *
     * writes the embed code for a flash movie, includes plugin detection
     *
     * Usage:
     *
     *	myFlash = new FlashObject("path/to/swf.swf", "swfid", "width", "height", flashversion, "backgroundcolor");
     *	myFlash.write("objId");
     *
     * for best practices, see:
     *  http://blog.deconcept.com/2005/03/31/proper-flash-embedding-flashobject-best-practices/
     *
     */
    
    
    var FlashObject = function(swf, id, w, h, ver, c) {
    	this.swf = swf;
    	this.id = id;
    	this.width = w;
    	this.height = h;
    	this.version = ver;
    	this.align = "middle";
    
    
    	this.params = new Object();
    	this.variables = new Object();
    
    
    	this.redirect = "";
    	this.sq = document.location.search.split("?")[1] || "";
    	this.bypassTxt = "<p>Already have Macromedia Flash Player? <a href='?detectflash=false&"+ this.sq +"'>Click here if you have Flash Player "+ this.version +" installed</a>.</p>";
    
    	if (c) this.color = this.addParam('bgcolor', c);
    	this.addParam('quality', 'high'); // default to high
    	this.doDetect = getQueryParamValue('detectflash');
    }
    
    
    var FOP = FlashObject.prototype;
    
    
    FOP.addParam = function(name, value) { this.params[name] = value; }
    
    
    FOP.getParams = function() { return this.params; }
    
    
    FOP.getParam = function(name) { return this.params[name]; }
    
    
    FOP.addVariable = function(name, value) { this.variables[name] = value; }
    
    
    FOP.getVariable = function(name) { return this.variables[name]; }
    
    
    FOP.getVariables = function() { return this.variables; }
    
    
    FOP.getParamTags = function() {
        var paramTags = "";
        for (var param in this.getParams()) {
            paramTags += '<param name="' + param + '" value="' + this.getParam(param) + '" />';
        }
        return (paramTags == "") ? false:paramTags;
    }
    
    
    FOP.getHTML = function() {
        var flashHTML = "";
        if (navigator.plugins && navigator.mimeTypes.length) { // netscape plugin architecture
            flashHTML += '<embed type="application/x-shockwave-flash" src="' + this.swf + '" width="' + this.width + '" height="' + this.height + '" id="' + this.id + '" align="' + this.align + '"';
            for (var param in this.getParams()) {
                flashHTML += ' ' + param + '="' + this.getParam(param) + '"';
            }
            if (this.getVariablePairs()) {
                flashHTML += ' flashVars="' + this.getVariablePairs() + '"';
            }
            flashHTML += '></embed>';
        } else { // PC IE
            flashHTML += '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="' + this.width + '" height="' + this.height + '" name="' + this.id + '" align="' + this.align + '">';
            flashHTML += '<param name="movie" value="' + this.swf + '" />';
            if (this.getParamTags()) {
                flashHTML += this.getParamTags();
            }
            if (this.getVariablePairs() != null) {
                flashHTML += '<param name="flashVars" value="' + this.getVariablePairs() + '" />';
            }
            flashHTML += '</object>';
        }
        return flashHTML;	
    }
    
    
    FOP.getVariablePairs = function() {
        var variablePairs = new Array();
        for (var name in this.getVariables()) { 
        	variablePairs.push(name + "=" + escape(this.getVariable(name))); 
        }
        return (variablePairs.length > 0) ? variablePairs.join("&"):false;
    }
    
    
    FOP.write = function(elementId) {
    	if(detectFlash(this.version) || this.doDetect=='false') {
    		if (elementId) {
    			document.getElementById(elementId).innerHTML = this.getHTML();
    		} else {
    			document.write(this.getHTML());
    		}
    	} else {
    		if (this.redirect != "") {
    			document.location.replace(this.redirect);
    		} else if (this.altTxt) {
    			if (elementId) {
    				document.getElementById(elementId).innerHTML = this.altTxt +""+ this.bypassTxt;
    			} else {
    				document.write(this.altTxt +""+ this.bypassTxt);
    			}
    		}
    	}		
    }
    
    
    /* ---- detection functions ---- */
    function getFlashVersion() {
    	var flashversion = 0;
    	if (navigator.plugins && navigator.mimeTypes.length) {
    		var x = navigator.plugins["Shockwave Flash"];
    		if(x && x.description) {
    			var y = x.description;
       			flashversion = y.charAt(y.indexOf('.')-1);
    			var aux= y.charAt(y.indexOf('.')-2);
    			if("0123456789".indexOf(aux)!=-1) flashversion=aux+flashversion;
    		}
    	} else {
    		result = false;
    	    for(var i = 15; i >= 3 && result != true; i--){
       			execScript('on error resume next: result = IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.'+i+'"))','VBScript');
       			flashversion = i;
       		}
    	}
    	return flashversion;
    }
    
    
    function detectFlash(ver) {	return (getFlashVersion() >= ver) ? true:false; }
    
    
    // get value of query string param
    function getQueryParamValue(param) {
    	var q = document.location.search || document.location.href.split("#")[1];
    	if (q) {
    		var detectIndex = q.indexOf(param +"=");
    		var endIndex = (q.indexOf("&", detectIndex) > -1) ? q.indexOf("&", detectIndex) : q.length;
    		if (q.length > 1 && detectIndex > -1) {
    			return q.substring(q.indexOf("=", detectIndex)+1, endIndex);
    		} else {
    			return "";
    		}
    	}
    }
    
    
    /* add Array.push if needed */
    if(Array.prototype.push == null){
    	Array.prototype.push = function(item) { this[this.length] = item; return this.length; }
    }
    Alles anzeigen

    Ebenso die swfobject.

    Eine von beiden Anworten müsste die Frage doch beantwortet haben?!
    U

  • Grafik/.mm wird trotz flash player nicht angezeigt

    • TremorChrist
    • 23. Oktober 2009 um 18:47

    Hallo,
    nach wie vor stehe ich vor meinem Ausgangsproblem: FF zeigt eine Mindmap (.mm) nicht an - andere Browser haben damit keine Probleme.

    Als Lösungsmöglichkeiten bisher genannt:
    (a) die (unnötige) Library;
    (b) codes zu ändern.

    Beides schaffe ich nicht umzusetzen - mir ist egal welcher Weg, aber ich würde liebend gern die .mm auf FF sehen!

    Zu (a): Wie lösche ich die Library? Das heißt wo finde ich die? (Habe schon sicher ne STUNDE erfolglos gesucht!)

    Zu (b): Zwei codes wurden empfohlen:
    Code 1, dieser muss einen ähnlichen ersetzen. Ich denke dass habe ich schon richtig gemacht - ob´s stimmt weiß ich net, da ja noch da die Seite ja noch nicht zu sehen war, und Code 2 (wahrscheinlich) falsch eingefügt ist. Also hier Code 1:

    Code
    try {
                        if(typeof t.GetVariable != UNDEF) {
                       var d = t.GetVariable("$version");
                       if (d) {
                          d = d.split(" ")[1].split(",");
                          ua.pv = [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)];
                       }
                    }
                    else if (counter < 10) {
                        console.log(t.GetVariable);
                       counter++;
                       setTimeout(arguments.callee, 10);
                       return;
                    }
                    } catch(e) {}
    Alles anzeigen

    Code 2 habe ich über "bearbeiten" in meine Wiki-Seite eingefügt (verschiedene Varianten ausprobiert), genauso wie Output-Text oder sonstige Befehle - der Code wird aber als normaler Text angezeigt.

    Code
    <script type="text/javascript" src="swfobject.js"></script>
        <p><script type="text/javascript">
        window.setTimeout(x, 1);
        function x() {
        var flashvars = {};
           flashvars.initLoadFile="Pv.mm";
           flashvars.startCollapsedToLevel="5"
        var params = {};
        params.menu = "false";
        params.bgcolor = "#FFFFFF";     
        params.scale = "exactfit";
        params.quality = "best";
        params.allowfullscreen = "false";
        params.salign = "tl";
        params.scale = "noscale";
        var attributes = {};   
        attributes.align="center";
        swfobject.embedSWF("visorFreemind.swf", "flashcontent1", "100%", "450", "9.0.0","expressInstall.swf", flashvars, params, attributes);
        }
        </script>
    Alles anzeigen

    @bordraider: Damit habe ich deine Frage verzögert beantwortet:

    Zitat

    Wie hast du denn den alten Code eingebunden?

    Ich hoffe die Lösung ist ganz nah. Bitte schreibt mir ganz genau, wo was gemacht werden muss, das wäre mir eine riesen Hilfe (habe alles in allem schon weit über 50, wenn nicht 100 Stunden an dem Problem gekämpft - und da will ich nun nicht erfolglos aufhören).

    Danke und Grüße
    Uli

  • Grafik/.mm wird trotz flash player nicht angezeigt

    • TremorChrist
    • 30. September 2009 um 19:04

    (1.1) Habe die Stelle gefunden und den ersten code an der Stelle ersetzt, die ebenfalls "t.GetVariable != UNDEF..."

    Code
    /*!	SWFObject v2.2 <http://code.google.com/p/swfobject/> 
    	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",
    		ON_READY_STATE_CHANGE = "onreadystatechange",
    
    		win = window,
    		doc = document,
    		nav = navigator,
    
    		plugin = false,
    		domLoadFnArr = [main],
    		regObjArr = [],
    		objIdArr = [],
    		listenersArr = [],
    		storedAltContent,
    		storedAltContentId,
    		storedCallbackFn,
    		storedCallbackObj,
    		isDomLoaded = false,
    		isExpressInstallActive = false,
    		dynamicStylesheet,
    		dynamicStylesheetMedia,
    		autoHideShow = true,
    
    	/* Centralized function for browser feature detection
    		- User agent string detection is only used when no good alternative is possible
    		- Is executed directly for optimal performance
    	*/	
    	ua = function() {
    		var w3cdom = typeof doc.getElementById != UNDEF && typeof doc.getElementsByTagName != UNDEF && typeof doc.createElement != UNDEF,
    			u = nav.userAgent.toLowerCase(),
    			p = nav.platform.toLowerCase(),
    			windows = p ? /win/.test(p) : /win/.test(u),
    			mac = p ? /mac/.test(p) : /mac/.test(u),
    			webkit = /webkit/.test(u) ? parseFloat(u.replace(/^.*webkit\/(\d+(\.\d+)?).*$/, "$1")) : false, // returns either the webkit version or false if not webkit
    			ie = !+"\v1", // feature detection based on Andrea Giammarchi's solution: http://webreflection.blogspot.com/2009/01/32-bytes-to-know-if-your-browser-is-ie.html
    			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 && !(typeof nav.mimeTypes != UNDEF && nav.mimeTypes[FLASH_MIME_TYPE] && !nav.mimeTypes[FLASH_MIME_TYPE].enabledPlugin)) { // navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin indicates whether plug-ins are enabled or disabled in Safari 3+
    				plugin = true;
    				ie = false; // cascaded feature detection for Internet Explorer
    				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] = /[a-zA-Z]/.test(d) ? parseInt(d.replace(/^.*[a-zA-Z]+(.*)$/, "$1"), 10) : 0;
    			}
    		}
    		else if (typeof win.ActiveXObject != UNDEF) {
    			try {
    				var a = new ActiveXObject(SHOCKWAVE_FLASH_AX);
    				if (a) { // a will return null when ActiveX is disabled
    					d = a.GetVariable("$version");
    					if (d) {
    						ie = true; // cascaded feature detection for Internet Explorer
    						d = d.split(" ")[1].split(",");
    						playerVersion = [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)];
    					}
    				}
    			}
    			catch(e) {}
    		}
    		return { w3:w3cdom, pv:playerVersion, wk:webkit, ie:ie, win:windows, mac:mac };
    	}(),
    
    	/* Cross-browser onDomLoad
    		- Will fire an event as soon as the DOM of a web page is loaded
    		- Internet Explorer workaround based on Diego Perini's solution: http://javascript.nwbox.com/IEContentLoaded/
    		- Regular onload serves as fallback
    	*/ 
    	onDomLoad = function() {
    		if (!ua.w3) { return; }
    		if ((typeof doc.readyState != UNDEF && doc.readyState == "complete") || (typeof doc.readyState == UNDEF && (doc.getElementsByTagName("body")[0] || doc.body))) { // function is fired after onload, e.g. when script is inserted dynamically 
    			callDomLoadFunctions();
    		}
    		if (!isDomLoaded) {
    			if (typeof doc.addEventListener != UNDEF) {
    				doc.addEventListener("DOMContentLoaded", callDomLoadFunctions, false);
    			}		
    			if (ua.ie && ua.win) {
    				doc.attachEvent(ON_READY_STATE_CHANGE, function() {
    					if (doc.readyState == "complete") {
    						doc.detachEvent(ON_READY_STATE_CHANGE, arguments.callee);
    						callDomLoadFunctions();
    					}
    				});
    				if (win == top) { // if not inside an iframe
    					(function(){
    						if (isDomLoaded) { return; }
    						try {
    							doc.documentElement.doScroll("left");
    						}
    						catch(e) {
    							setTimeout(arguments.callee, 0);
    							return;
    						}
    						callDomLoadFunctions();
    					})();
    				}
    			}
    			if (ua.wk) {
    				(function(){
    					if (isDomLoaded) { return; }
    					if (!/loaded|complete/.test(doc.readyState)) {
    						setTimeout(arguments.callee, 0);
    						return;
    					}
    					callDomLoadFunctions();
    				})();
    			}
    			addLoadEvent(callDomLoadFunctions);
    		}
    	}();
    
    	function callDomLoadFunctions() {
    		if (isDomLoaded) { return; }
    		try { // test if we can really add/remove elements to/from the DOM; we don't want to fire it too early
    			var t = doc.getElementsByTagName("body")[0].appendChild(createElement("span"));
    			t.parentNode.removeChild(t);
    		}
    		catch (e) { return; }
    		isDomLoaded = true;
    		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+
    		}
    	}
    
    	/* 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) {
    			addListener(win, "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() { 
    		if (plugin) {
    			testPlayerVersion();
    		}
    		else {
    			matchVersions();
    		}
    	}
    
    	/* Detect the Flash Player version for non-Internet Explorer browsers
    		- Detecting the plug-in version via the object element is more precise than using the plugins collection item's description:
    		  a. Both release and build numbers can be detected
    		  b. Avoid wrong descriptions by corrupt installers provided by Adobe
    		  c. Avoid wrong descriptions by multiple Flash Player entries in the plugin Array, caused by incorrect browser imports
    		- Disadvantage of this method is that it depends on the availability of the DOM, while the plugins collection is immediately available
    	*/
    	function testPlayerVersion() {
    		var b = doc.getElementsByTagName("body")[0];
    		var o = createElement(OBJECT);
    		o.setAttribute("type", FLASH_MIME_TYPE);
    		var t = b.appendChild(o);
    		if (t) {
    			var counter = 0;
    			(function(){
    	          if(typeof t.GetVariable != UNDEF) {
                   var d = t.GetVariable("$version");
                   if (d) {
                      d = d.split(" ")[1].split(",");
                      ua.pv = [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)];
                   }
                }
                else if (counter < 10) {
                    console.log(t.GetVariable);
                   counter++;
                   setTimeout(arguments.callee, 10);
                   return;
                }
                } catch(e) {}
    
    
    }();
    		}
    		else {
    			matchVersions();
    		}
    	}
    
    	/* 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++) { // 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);
    								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 alternative content instead of SWF
    							displayAltContent(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 alternative 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;
    						}
    						cb(cbObj);
    					}
    				}
    			}
    		}
    	}
    
    	function getObjectById(objectIdStr) {
    		var r = null;
    		var o = getElementById(objectIdStr);
    		if (o && o.nodeName == "OBJECT") {
    			if (typeof o.SetVariable != UNDEF) {
    				r = o;
    			}
    			else {
    				var n = o.getElementsByTagName(OBJECT)[0];
    				if (n) {
    					r = n;
    				}
    			}
    		}
    		return r;
    	}
    
    	/* Requirements for Adobe Express Install
    		- only one instance can be active at a time
    		- fp 6.0.65 or higher
    		- Win/Mac OS only
    		- no Webkit engines older than version 312
    	*/
    	function canExpressInstall() {
    		return !isExpressInstallActive && hasPlayerVersion("6.0.65") && (ua.win || ua.mac) && !(ua.wk && ua.wk < 312);
    	}
    
    	/* Show the Adobe Express Install dialog
    		- Reference: http://www.adobe.com/cfusion/knowledgebase/index.cfm?id=6a253b75
    	*/
    	function showExpressInstall(att, par, replaceElemIdStr, callbackFn) {
    		isExpressInstallActive = true;
    		storedCallbackFn = callbackFn || null;
    		storedCallbackObj = {success:false, id:replaceElemIdStr};
    		var obj = getElementById(replaceElemIdStr);
    		if (obj) {
    			if (obj.nodeName == "OBJECT") { // static publishing
    				storedAltContent = abstractAltContent(obj);
    				storedAltContentId = null;
    			}
    			else { // dynamic publishing
    				storedAltContent = obj;
    				storedAltContentId = replaceElemIdStr;
    			}
    			att.id = EXPRESS_INSTALL_ID;
    			if (typeof att.width == UNDEF || (!/%$/.test(att.width) && parseInt(att.width, 10) < 310)) { att.width = "310"; }
    			if (typeof att.height == UNDEF || (!/%$/.test(att.height) && parseInt(att.height, 10) < 137)) { att.height = "137"; }
    			doc.title = doc.title.slice(0, 47) + " - Flash Player Installation";
    			var pt = ua.ie && ua.win ? "ActiveX" : "PlugIn",
    				fv = "MMredirectURL=" + win.location.toString().replace(/&/g,"%26") + "&MMplayerType=" + pt + "&MMdoctitle=" + doc.title;
    			if (typeof par.flashvars != UNDEF) {
    				par.flashvars += "&" + fv;
    			}
    			else {
    				par.flashvars = fv;
    			}
    			// IE only: when a SWF is loading (AND: not available in cache) wait for the readyState of the object element to become 4 before removing it,
    			// because 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");
    				replaceElemIdStr += "SWFObjectNew";
    				newObj.setAttribute("id", replaceElemIdStr);
    				obj.parentNode.insertBefore(newObj, obj); // insert placeholder div that will be replaced by the object element that loads expressinstall.swf
    				obj.style.display = "none";
    				(function(){
    					if (obj.readyState == 4) {
    						obj.parentNode.removeChild(obj);
    					}
    					else {
    						setTimeout(arguments.callee, 10);
    					}
    				})();
    			}
    			createSWF(att, par, replaceElemIdStr);
    		}
    	}
    
    	/* Functions to abstract and display alternative content
    	*/
    	function displayAltContent(obj) {
    		if (ua.ie && ua.win && obj.readyState != 4) {
    			// IE only: when a SWF is loading (AND: not available in cache) wait for the readyState of the object element to become 4 before removing it,
    			// because 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";
    			(function(){
    				if (obj.readyState == 4) {
    					obj.parentNode.removeChild(obj);
    				}
    				else {
    					setTimeout(arguments.callee, 10);
    				}
    			})();
    		}
    		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 == "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 (ua.wk && ua.wk < 312) { return r; }
    		if (el) {
    			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) { // Internet Explorer + the HTML object element + 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
    						if (i.toLowerCase() == "data") {
    							parObj.movie = attObj[i];
    						}
    						else if (i.toLowerCase() == "styleclass") { // 'class' is an ECMA4 reserved keyword
    							att += ' class="' + attObj[i] + '"';
    						}
    						else if (i.toLowerCase() != "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>';
    				objIdArr[objIdArr.length] = attObj.id; // stored to fix object 'leaks' on unload (dynamic publishing only)
    				r = getElementById(attObj.id);	
    			}
    			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.toLowerCase() != "classid") { // filter out IE specific attribute
    							o.setAttribute(m, attObj[m]);
    						}
    					}
    				}
    				for (var n in parObj) {
    					if (parObj[n] != Object.prototype[n] && n.toLowerCase() != "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);
    	}
    
    	/* Cross-browser SWF removal
    		- Especially needed to safely and completely remove a SWF in Internet Explorer
    	*/
    	function removeSWF(id) {
    		var obj = getElementById(id);
    		if (obj && obj.nodeName == "OBJECT") {
    			if (ua.ie && ua.win) {
    				obj.style.display = "none";
    				(function(){
    					if (obj.readyState == 4) {
    						removeObjectInIE(id);
    					}
    					else {
    						setTimeout(arguments.callee, 10);
    					}
    				})();
    			}
    			else {
    				obj.parentNode.removeChild(obj);
    			}
    		}
    	}
    
    	function removeObjectInIE(id) {
    		var obj = getElementById(id);
    		if (obj) {
    			for (var i in obj) {
    				if (typeof obj[i] == "function") {
    					obj[i] = null;
    				}
    			}
    			obj.parentNode.removeChild(obj);
    		}
    	}
    
    	/* Functions to optimize JavaScript compression
    	*/
    	function getElementById(id) {
    		var el = null;
    		try {
    			el = doc.getElementById(id);
    		}
    		catch (e) {}
    		return el;
    	}
    
    	function createElement(el) {
    		return doc.createElement(el);
    	}
    
    	/* Updated attachEvent function for Internet Explorer
    		- Stores attachEvent information in an Array, so on unload the detachEvent functions can be called to avoid memory leaks
    	*/	
    	function addListener(target, eventType, fn) {
    		target.attachEvent(eventType, fn);
    		listenersArr[listenersArr.length] = [target, eventType, fn];
    	}
    
    	/* Flash Player and SWF content version matching
    	*/
    	function hasPlayerVersion(rv) {
    		var pv = ua.pv, v = rv.split(".");
    		v[0] = parseInt(v[0], 10);
    		v[1] = parseInt(v[1], 10) || 0; // supports short notation, e.g. "9" instead of "9.0.0"
    		v[2] = parseInt(v[2], 10) || 0;
    		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, media, newStyle) {
    		if (ua.ie && ua.mac) { return; }
    		var h = doc.getElementsByTagName("head")[0];
    		if (!h) { return; } // to also support badly authored HTML pages that lack a head element
    		var m = (media && typeof media == "string") ? media : "screen";
    		if (newStyle) {
    			dynamicStylesheet = null;
    			dynamicStylesheetMedia = null;
    		}
    		if (!dynamicStylesheet || dynamicStylesheetMedia != m) { 
    			// create dynamic stylesheet + get a global reference to it
    			var s = createElement("style");
    			s.setAttribute("type", "text/css");
    			s.setAttribute("media", m);
    			dynamicStylesheet = h.appendChild(s);
    			if (ua.ie && ua.win && typeof doc.styleSheets != UNDEF && doc.styleSheets.length > 0) {
    				dynamicStylesheet = doc.styleSheets[doc.styleSheets.length - 1];
    			}
    			dynamicStylesheetMedia = m;
    		}
    		// add style rule
    		if (ua.ie && ua.win) {
    			if (dynamicStylesheet && typeof dynamicStylesheet.addRule == OBJECT) {
    				dynamicStylesheet.addRule(sel, decl);
    			}
    		}
    		else {
    			if (dynamicStylesheet && typeof doc.createTextNode != UNDEF) {
    				dynamicStylesheet.appendChild(doc.createTextNode(sel + " {" + decl + "}"));
    			}
    		}
    	}
    
    	function setVisibility(id, isVisible) {
    		if (!autoHideShow) { return; }
    		var v = isVisible ? "visible" : "hidden";
    		if (isDomLoaded && getElementById(id)) {
    			getElementById(id).style.visibility = v;
    		}
    		else {
    			createCSS("#" + id, "visibility:" + v);
    		}
    	}
    
    
    	/* Filter to avoid XSS attacks
    	*/
    	function urlEncodeIfNecessary(s) {
    		var regex = /[\\\"<>\.;]/;
    		var hasBadChars = regex.exec(s) != null;
    		return hasBadChars && typeof encodeURIComponent != UNDEF ? encodeURIComponent(s) : s;
    	}
    
    	/* Release memory to avoid memory leaks caused by closures, fix hanging audio/video threads and force open sockets/NetConnections to disconnect (Internet Explorer only)
    	*/
    	var cleanup = function() {
    		if (ua.ie && ua.win) {
    			window.attachEvent("onunload", function() {
    				// remove listeners to avoid memory leaks
    				var ll = listenersArr.length;
    				for (var i = 0; i < ll; i++) {
    					listenersArr[i][0].detachEvent(listenersArr[i][1], listenersArr[i][2]);
    				}
    				// cleanup dynamically embedded objects to fix audio/video threads and force open sockets and NetConnections to disconnect
    				var il = objIdArr.length;
    				for (var j = 0; j < il; j++) {
    					removeSWF(objIdArr[j]);
    				}
    				// cleanup library's main closures to avoid memory leaks
    				for (var k in ua) {
    					ua[k] = null;
    				}
    				ua = null;
    				for (var l in swfobject) {
    					swfobject[l] = null;
    				}
    				swfobject = null;
    			});
    		}
    	}();
    
    	return {
    		/* Public API
    			- Reference: http://code.google.com/p/swfobject/wiki/documentation
    		*/ 
    		registerObject: function(objectIdStr, swfVersionStr, xiSwfUrlStr, callbackFn) {
    			if (ua.w3 && objectIdStr && swfVersionStr) {
    				var regObj = {};
    				regObj.id = objectIdStr;
    				regObj.swfVersion = swfVersionStr;
    				regObj.expressInstall = xiSwfUrlStr;
    				regObj.callbackFn = callbackFn;
    				regObjArr[regObjArr.length] = regObj;
    				setVisibility(objectIdStr, false);
    			}
    			else if (callbackFn) {
    				callbackFn({success:false, id:objectIdStr});
    			}
    		},
    
    		getObjectById: function(objectIdStr) {
    			if (ua.w3) {
    				return getObjectById(objectIdStr);
    			}
    		},
    
    		embedSWF: function(swfUrlStr, replaceElemIdStr, widthStr, heightStr, swfVersionStr, xiSwfUrlStr, flashvarsObj, parObj, attObj, callbackFn) {
    			var callbackObj = {success:false, id:replaceElemIdStr};
    			if (ua.w3 && !(ua.wk && ua.wk < 312) && swfUrlStr && replaceElemIdStr && widthStr && heightStr && swfVersionStr) {
    				setVisibility(replaceElemIdStr, false);
    				addDomLoadEvent(function() {
    					widthStr += ""; // auto-convert to string
    					heightStr += "";
    					var att = {};
    					if (attObj && typeof attObj === OBJECT) {
    						for (var i in attObj) { // copy object to avoid the use of references, because web authors often reuse attObj for multiple SWFs
    							att[i] = attObj[i];
    						}
    					}
    					att.data = swfUrlStr;
    					att.width = widthStr;
    					att.height = heightStr;
    					var par = {}; 
    					if (parObj && typeof parObj === OBJECT) {
    						for (var j in parObj) { // copy object to avoid the use of references, because web authors often reuse parObj for multiple SWFs
    							par[j] = parObj[j];
    						}
    					}
    					if (flashvarsObj && typeof flashvarsObj === OBJECT) {
    						for (var k in flashvarsObj) { // copy object to avoid the use of references, because web authors often reuse flashvarsObj for multiple SWFs
    							if (typeof par.flashvars != UNDEF) {
    								par.flashvars += "&" + k + "=" + flashvarsObj[k];
    							}
    							else {
    								par.flashvars = k + "=" + flashvarsObj[k];
    							}
    						}
    					}
    					if (hasPlayerVersion(swfVersionStr)) { // create SWF
    						var obj = createSWF(att, par, replaceElemIdStr);
    						if (att.id == replaceElemIdStr) {
    							setVisibility(replaceElemIdStr, true);
    						}
    						callbackObj.success = true;
    						callbackObj.ref = obj;
    					}
    					else if (xiSwfUrlStr && canExpressInstall()) { // show Adobe Express Install
    						att.data = xiSwfUrlStr;
    						showExpressInstall(att, par, replaceElemIdStr, callbackFn);
    						return;
    					}
    					else { // show alternative content
    						setVisibility(replaceElemIdStr, true);
    					}
    					if (callbackFn) { callbackFn(callbackObj); }
    				});
    			}
    			else if (callbackFn) { callbackFn(callbackObj);	}
    		},
    
    		switchOffAutoHideShow: function() {
    			autoHideShow = false;
    		},
    
    		ua: ua,
    
    		getFlashPlayerVersion: function() {
    			return { major:ua.pv[0], minor:ua.pv[1], release:ua.pv[2] };
    		},
    
    		hasFlashPlayerVersion: hasPlayerVersion,
    
    		createSWF: function(attObj, parObj, replaceElemIdStr) {
    			if (ua.w3) {
    				return createSWF(attObj, parObj, replaceElemIdStr);
    			}
    			else {
    				return undefined;
    			}
    		},
    
    		showExpressInstall: function(att, par, replaceElemIdStr, callbackFn) {
    			if (ua.w3 && canExpressInstall()) {
    				showExpressInstall(att, par, replaceElemIdStr, callbackFn);
    			}
    		},
    
    		removeSWF: function(objElemIdStr) {
    			if (ua.w3) {
    				removeSWF(objElemIdStr);
    			}
    		},
    
    		createCSS: function(selStr, declStr, mediaStr, newStyleBoolean) {
    			if (ua.w3) {
    				createCSS(selStr, declStr, mediaStr, newStyleBoolean);
    			}
    		},
    
    		addDomLoadEvent: addDomLoadEvent,
    
    		addLoadEvent: addLoadEvent,
    
    		getQueryParamValue: function(param) {
    			var q = doc.location.search || doc.location.hash;
    			if (q) {
    				if (/\?/.test(q)) { q = q.split("?")[1]; } // strip question mark
    				if (param == null) {
    					return urlEncodeIfNecessary(q);
    				}
    				var pairs = q.split("&");
    				for (var i = 0; i < pairs.length; i++) {
    					if (pairs[i].substring(0, pairs[i].indexOf("=")) == param) {
    						return urlEncodeIfNecessary(pairs[i].substring((pairs[i].indexOf("=") + 1)));
    					}
    				}
    			}
    			return "";
    		},
    
    		// For internal usage only
    		expressInstallCallback: function() {
    			if (isExpressInstallActive) {
    				var obj = getElementById(EXPRESS_INSTALL_ID);
    				if (obj && storedAltContent) {
    					obj.parentNode.replaceChild(storedAltContent, obj);
    					if (storedAltContentId) {
    						setVisibility(storedAltContentId, true);
    						if (ua.ie && ua.win) { storedAltContent.style.display = "block"; }
    					}
    					if (storedCallbackFn) { storedCallbackFn(storedCallbackObj); }
    				}
    				isExpressInstallActive = false;
    			} 
    		}
    	};
    try {
                    if(typeof t.GetVariable != UNDEF) {
                   var d = t.GetVariable("$version");
                   if (d) {
                      d = d.split(" ")[1].split(",");
                      ua.pv = [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)];
                   }
                }
                else if (counter < 10) {
                    console.log(t.GetVariable);
                   counter++;
                   setTimeout(arguments.callee, 10);
                   return;
                }
                } catch(e) {}
    
    
    }();
    Alles anzeigen

    (1.2) Zu dem zweiten Code - den habe ich eingefügt, auf die Seite http://herrtriebel.de/wiki/index.php…-Stands-Analyse :

    Code
    <mm>[[Pv.mm|flash]]</mm>
    
    
    <script type="text/javascript" src="swfobject.js"></script>
    <p><script type="text/javascript">
    window.setTimeout(x, 1);
    function x() {
    var flashvars = {};
    flashvars.initLoadFile="Pv.mm";
    flashvars.startCollapsedToLevel="5"
    var params = {};
    params.menu = "false";
    params.bgcolor = "#FFFFFF";     
    params.scale = "exactfit";
    params.quality = "best";
    params.allowfullscreen = "false";
    params.salign = "tl";
    params.scale = "noscale";
    var attributes = {};   
    attributes.align="center";
    swfobject.embedSWF("visorFreemind.swf", "flashcontent1", "100%", "450", "9.0.0","expressInstall.swf", flashvars, params, attributes);
    }
    </script>
    Alles anzeigen

    (2) Wie gesagt: Wenns auch an der Libraries liegen kann - ich will euch möglichst wenig Arbeit machen (ich selbst finds interessant;) - dann lösch ich die einfach. Nur wo ist die?!

    Leider hat das nix gebracht. :-???

    bye U

  • Grafik/.mm wird trotz flash player nicht angezeigt

    • TremorChrist
    • 29. September 2009 um 20:35

    1)
    Mir erschließt sich nicht, welcher Teil ersetzt werden muss!

    Hier ist der Code - der letzte Abschnitt (ab try...) muss für irgendeinen davor eingesetzt werden - nur für welchen???

    Code
    /*!	SWFObject v2.2 <http://code.google.com/p/swfobject/> 
    	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",
    		ON_READY_STATE_CHANGE = "onreadystatechange",
    
    		win = window,
    		doc = document,
    		nav = navigator,
    
    		plugin = false,
    		domLoadFnArr = [main],
    		regObjArr = [],
    		objIdArr = [],
    		listenersArr = [],
    		storedAltContent,
    		storedAltContentId,
    		storedCallbackFn,
    		storedCallbackObj,
    		isDomLoaded = false,
    		isExpressInstallActive = false,
    		dynamicStylesheet,
    		dynamicStylesheetMedia,
    		autoHideShow = true,
    
    	/* Centralized function for browser feature detection
    		- User agent string detection is only used when no good alternative is possible
    		- Is executed directly for optimal performance
    	*/	
    	ua = function() {
    		var w3cdom = typeof doc.getElementById != UNDEF && typeof doc.getElementsByTagName != UNDEF && typeof doc.createElement != UNDEF,
    			u = nav.userAgent.toLowerCase(),
    			p = nav.platform.toLowerCase(),
    			windows = p ? /win/.test(p) : /win/.test(u),
    			mac = p ? /mac/.test(p) : /mac/.test(u),
    			webkit = /webkit/.test(u) ? parseFloat(u.replace(/^.*webkit\/(\d+(\.\d+)?).*$/, "$1")) : false, // returns either the webkit version or false if not webkit
    			ie = !+"\v1", // feature detection based on Andrea Giammarchi's solution: http://webreflection.blogspot.com/2009/01/32-bytes-to-know-if-your-browser-is-ie.html
    			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 && !(typeof nav.mimeTypes != UNDEF && nav.mimeTypes[FLASH_MIME_TYPE] && !nav.mimeTypes[FLASH_MIME_TYPE].enabledPlugin)) { // navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin indicates whether plug-ins are enabled or disabled in Safari 3+
    				plugin = true;
    				ie = false; // cascaded feature detection for Internet Explorer
    				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] = /[a-zA-Z]/.test(d) ? parseInt(d.replace(/^.*[a-zA-Z]+(.*)$/, "$1"), 10) : 0;
    			}
    		}
    		else if (typeof win.ActiveXObject != UNDEF) {
    			try {
    				var a = new ActiveXObject(SHOCKWAVE_FLASH_AX);
    				if (a) { // a will return null when ActiveX is disabled
    					d = a.GetVariable("$version");
    					if (d) {
    						ie = true; // cascaded feature detection for Internet Explorer
    						d = d.split(" ")[1].split(",");
    						playerVersion = [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)];
    					}
    				}
    			}
    			catch(e) {}
    		}
    		return { w3:w3cdom, pv:playerVersion, wk:webkit, ie:ie, win:windows, mac:mac };
    	}(),
    
    	/* Cross-browser onDomLoad
    		- Will fire an event as soon as the DOM of a web page is loaded
    		- Internet Explorer workaround based on Diego Perini's solution: http://javascript.nwbox.com/IEContentLoaded/
    		- Regular onload serves as fallback
    	*/ 
    	onDomLoad = function() {
    		if (!ua.w3) { return; }
    		if ((typeof doc.readyState != UNDEF && doc.readyState == "complete") || (typeof doc.readyState == UNDEF && (doc.getElementsByTagName("body")[0] || doc.body))) { // function is fired after onload, e.g. when script is inserted dynamically 
    			callDomLoadFunctions();
    		}
    		if (!isDomLoaded) {
    			if (typeof doc.addEventListener != UNDEF) {
    				doc.addEventListener("DOMContentLoaded", callDomLoadFunctions, false);
    			}		
    			if (ua.ie && ua.win) {
    				doc.attachEvent(ON_READY_STATE_CHANGE, function() {
    					if (doc.readyState == "complete") {
    						doc.detachEvent(ON_READY_STATE_CHANGE, arguments.callee);
    						callDomLoadFunctions();
    					}
    				});
    				if (win == top) { // if not inside an iframe
    					(function(){
    						if (isDomLoaded) { return; }
    						try {
    							doc.documentElement.doScroll("left");
    						}
    						catch(e) {
    							setTimeout(arguments.callee, 0);
    							return;
    						}
    						callDomLoadFunctions();
    					})();
    				}
    			}
    			if (ua.wk) {
    				(function(){
    					if (isDomLoaded) { return; }
    					if (!/loaded|complete/.test(doc.readyState)) {
    						setTimeout(arguments.callee, 0);
    						return;
    					}
    					callDomLoadFunctions();
    				})();
    			}
    			addLoadEvent(callDomLoadFunctions);
    		}
    	}();
    
    	function callDomLoadFunctions() {
    		if (isDomLoaded) { return; }
    		try { // test if we can really add/remove elements to/from the DOM; we don't want to fire it too early
    			var t = doc.getElementsByTagName("body")[0].appendChild(createElement("span"));
    			t.parentNode.removeChild(t);
    		}
    		catch (e) { return; }
    		isDomLoaded = true;
    		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+
    		}
    	}
    
    	/* 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) {
    			addListener(win, "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() { 
    		if (plugin) {
    			testPlayerVersion();
    		}
    		else {
    			matchVersions();
    		}
    	}
    
    	/* Detect the Flash Player version for non-Internet Explorer browsers
    		- Detecting the plug-in version via the object element is more precise than using the plugins collection item's description:
    		  a. Both release and build numbers can be detected
    		  b. Avoid wrong descriptions by corrupt installers provided by Adobe
    		  c. Avoid wrong descriptions by multiple Flash Player entries in the plugin Array, caused by incorrect browser imports
    		- Disadvantage of this method is that it depends on the availability of the DOM, while the plugins collection is immediately available
    	*/
    	function testPlayerVersion() {
    		var b = doc.getElementsByTagName("body")[0];
    		var o = createElement(OBJECT);
    		o.setAttribute("type", FLASH_MIME_TYPE);
    		var t = b.appendChild(o);
    		if (t) {
    			var counter = 0;
    			(function(){
    				if (typeof t.GetVariable != UNDEF) {
    					var d = t.GetVariable("$version");
    					if (d) {
    						d = d.split(" ")[1].split(",");
    						ua.pv = [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)];
    					}
    				}
    				else if (counter < 10) {
    					counter++;
    					setTimeout(arguments.callee, 10);
    					return;
    				}
    				b.removeChild(o);
    				t = null;
    				matchVersions();
    			})();
    		}
    		else {
    			matchVersions();
    		}
    	}
    
    	/* 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++) { // 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);
    								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 alternative content instead of SWF
    							displayAltContent(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 alternative 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;
    						}
    						cb(cbObj);
    					}
    				}
    			}
    		}
    	}
    
    	function getObjectById(objectIdStr) {
    		var r = null;
    		var o = getElementById(objectIdStr);
    		if (o && o.nodeName == "OBJECT") {
    			if (typeof o.SetVariable != UNDEF) {
    				r = o;
    			}
    			else {
    				var n = o.getElementsByTagName(OBJECT)[0];
    				if (n) {
    					r = n;
    				}
    			}
    		}
    		return r;
    	}
    
    	/* Requirements for Adobe Express Install
    		- only one instance can be active at a time
    		- fp 6.0.65 or higher
    		- Win/Mac OS only
    		- no Webkit engines older than version 312
    	*/
    	function canExpressInstall() {
    		return !isExpressInstallActive && hasPlayerVersion("6.0.65") && (ua.win || ua.mac) && !(ua.wk && ua.wk < 312);
    	}
    
    	/* Show the Adobe Express Install dialog
    		- Reference: http://www.adobe.com/cfusion/knowledgebase/index.cfm?id=6a253b75
    	*/
    	function showExpressInstall(att, par, replaceElemIdStr, callbackFn) {
    		isExpressInstallActive = true;
    		storedCallbackFn = callbackFn || null;
    		storedCallbackObj = {success:false, id:replaceElemIdStr};
    		var obj = getElementById(replaceElemIdStr);
    		if (obj) {
    			if (obj.nodeName == "OBJECT") { // static publishing
    				storedAltContent = abstractAltContent(obj);
    				storedAltContentId = null;
    			}
    			else { // dynamic publishing
    				storedAltContent = obj;
    				storedAltContentId = replaceElemIdStr;
    			}
    			att.id = EXPRESS_INSTALL_ID;
    			if (typeof att.width == UNDEF || (!/%$/.test(att.width) && parseInt(att.width, 10) < 310)) { att.width = "310"; }
    			if (typeof att.height == UNDEF || (!/%$/.test(att.height) && parseInt(att.height, 10) < 137)) { att.height = "137"; }
    			doc.title = doc.title.slice(0, 47) + " - Flash Player Installation";
    			var pt = ua.ie && ua.win ? "ActiveX" : "PlugIn",
    				fv = "MMredirectURL=" + win.location.toString().replace(/&/g,"%26") + "&MMplayerType=" + pt + "&MMdoctitle=" + doc.title;
    			if (typeof par.flashvars != UNDEF) {
    				par.flashvars += "&" + fv;
    			}
    			else {
    				par.flashvars = fv;
    			}
    			// IE only: when a SWF is loading (AND: not available in cache) wait for the readyState of the object element to become 4 before removing it,
    			// because 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");
    				replaceElemIdStr += "SWFObjectNew";
    				newObj.setAttribute("id", replaceElemIdStr);
    				obj.parentNode.insertBefore(newObj, obj); // insert placeholder div that will be replaced by the object element that loads expressinstall.swf
    				obj.style.display = "none";
    				(function(){
    					if (obj.readyState == 4) {
    						obj.parentNode.removeChild(obj);
    					}
    					else {
    						setTimeout(arguments.callee, 10);
    					}
    				})();
    			}
    			createSWF(att, par, replaceElemIdStr);
    		}
    	}
    
    	/* Functions to abstract and display alternative content
    	*/
    	function displayAltContent(obj) {
    		if (ua.ie && ua.win && obj.readyState != 4) {
    			// IE only: when a SWF is loading (AND: not available in cache) wait for the readyState of the object element to become 4 before removing it,
    			// because 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";
    			(function(){
    				if (obj.readyState == 4) {
    					obj.parentNode.removeChild(obj);
    				}
    				else {
    					setTimeout(arguments.callee, 10);
    				}
    			})();
    		}
    		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 == "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 (ua.wk && ua.wk < 312) { return r; }
    		if (el) {
    			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) { // Internet Explorer + the HTML object element + 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
    						if (i.toLowerCase() == "data") {
    							parObj.movie = attObj[i];
    						}
    						else if (i.toLowerCase() == "styleclass") { // 'class' is an ECMA4 reserved keyword
    							att += ' class="' + attObj[i] + '"';
    						}
    						else if (i.toLowerCase() != "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>';
    				objIdArr[objIdArr.length] = attObj.id; // stored to fix object 'leaks' on unload (dynamic publishing only)
    				r = getElementById(attObj.id);	
    			}
    			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.toLowerCase() != "classid") { // filter out IE specific attribute
    							o.setAttribute(m, attObj[m]);
    						}
    					}
    				}
    				for (var n in parObj) {
    					if (parObj[n] != Object.prototype[n] && n.toLowerCase() != "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);
    	}
    
    	/* Cross-browser SWF removal
    		- Especially needed to safely and completely remove a SWF in Internet Explorer
    	*/
    	function removeSWF(id) {
    		var obj = getElementById(id);
    		if (obj && obj.nodeName == "OBJECT") {
    			if (ua.ie && ua.win) {
    				obj.style.display = "none";
    				(function(){
    					if (obj.readyState == 4) {
    						removeObjectInIE(id);
    					}
    					else {
    						setTimeout(arguments.callee, 10);
    					}
    				})();
    			}
    			else {
    				obj.parentNode.removeChild(obj);
    			}
    		}
    	}
    
    	function removeObjectInIE(id) {
    		var obj = getElementById(id);
    		if (obj) {
    			for (var i in obj) {
    				if (typeof obj[i] == "function") {
    					obj[i] = null;
    				}
    			}
    			obj.parentNode.removeChild(obj);
    		}
    	}
    
    	/* Functions to optimize JavaScript compression
    	*/
    	function getElementById(id) {
    		var el = null;
    		try {
    			el = doc.getElementById(id);
    		}
    		catch (e) {}
    		return el;
    	}
    
    	function createElement(el) {
    		return doc.createElement(el);
    	}
    
    	/* Updated attachEvent function for Internet Explorer
    		- Stores attachEvent information in an Array, so on unload the detachEvent functions can be called to avoid memory leaks
    	*/	
    	function addListener(target, eventType, fn) {
    		target.attachEvent(eventType, fn);
    		listenersArr[listenersArr.length] = [target, eventType, fn];
    	}
    
    	/* Flash Player and SWF content version matching
    	*/
    	function hasPlayerVersion(rv) {
    		var pv = ua.pv, v = rv.split(".");
    		v[0] = parseInt(v[0], 10);
    		v[1] = parseInt(v[1], 10) || 0; // supports short notation, e.g. "9" instead of "9.0.0"
    		v[2] = parseInt(v[2], 10) || 0;
    		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, media, newStyle) {
    		if (ua.ie && ua.mac) { return; }
    		var h = doc.getElementsByTagName("head")[0];
    		if (!h) { return; } // to also support badly authored HTML pages that lack a head element
    		var m = (media && typeof media == "string") ? media : "screen";
    		if (newStyle) {
    			dynamicStylesheet = null;
    			dynamicStylesheetMedia = null;
    		}
    		if (!dynamicStylesheet || dynamicStylesheetMedia != m) { 
    			// create dynamic stylesheet + get a global reference to it
    			var s = createElement("style");
    			s.setAttribute("type", "text/css");
    			s.setAttribute("media", m);
    			dynamicStylesheet = h.appendChild(s);
    			if (ua.ie && ua.win && typeof doc.styleSheets != UNDEF && doc.styleSheets.length > 0) {
    				dynamicStylesheet = doc.styleSheets[doc.styleSheets.length - 1];
    			}
    			dynamicStylesheetMedia = m;
    		}
    		// add style rule
    		if (ua.ie && ua.win) {
    			if (dynamicStylesheet && typeof dynamicStylesheet.addRule == OBJECT) {
    				dynamicStylesheet.addRule(sel, decl);
    			}
    		}
    		else {
    			if (dynamicStylesheet && typeof doc.createTextNode != UNDEF) {
    				dynamicStylesheet.appendChild(doc.createTextNode(sel + " {" + decl + "}"));
    			}
    		}
    	}
    
    	function setVisibility(id, isVisible) {
    		if (!autoHideShow) { return; }
    		var v = isVisible ? "visible" : "hidden";
    		if (isDomLoaded && getElementById(id)) {
    			getElementById(id).style.visibility = v;
    		}
    		else {
    			createCSS("#" + id, "visibility:" + v);
    		}
    	}
    
    
    	/* Filter to avoid XSS attacks
    	*/
    	function urlEncodeIfNecessary(s) {
    		var regex = /[\\\"<>\.;]/;
    		var hasBadChars = regex.exec(s) != null;
    		return hasBadChars && typeof encodeURIComponent != UNDEF ? encodeURIComponent(s) : s;
    	}
    
    	/* Release memory to avoid memory leaks caused by closures, fix hanging audio/video threads and force open sockets/NetConnections to disconnect (Internet Explorer only)
    	*/
    	var cleanup = function() {
    		if (ua.ie && ua.win) {
    			window.attachEvent("onunload", function() {
    				// remove listeners to avoid memory leaks
    				var ll = listenersArr.length;
    				for (var i = 0; i < ll; i++) {
    					listenersArr[i][0].detachEvent(listenersArr[i][1], listenersArr[i][2]);
    				}
    				// cleanup dynamically embedded objects to fix audio/video threads and force open sockets and NetConnections to disconnect
    				var il = objIdArr.length;
    				for (var j = 0; j < il; j++) {
    					removeSWF(objIdArr[j]);
    				}
    				// cleanup library's main closures to avoid memory leaks
    				for (var k in ua) {
    					ua[k] = null;
    				}
    				ua = null;
    				for (var l in swfobject) {
    					swfobject[l] = null;
    				}
    				swfobject = null;
    			});
    		}
    	}();
    
    	return {
    		/* Public API
    			- Reference: http://code.google.com/p/swfobject/wiki/documentation
    		*/ 
    		registerObject: function(objectIdStr, swfVersionStr, xiSwfUrlStr, callbackFn) {
    			if (ua.w3 && objectIdStr && swfVersionStr) {
    				var regObj = {};
    				regObj.id = objectIdStr;
    				regObj.swfVersion = swfVersionStr;
    				regObj.expressInstall = xiSwfUrlStr;
    				regObj.callbackFn = callbackFn;
    				regObjArr[regObjArr.length] = regObj;
    				setVisibility(objectIdStr, false);
    			}
    			else if (callbackFn) {
    				callbackFn({success:false, id:objectIdStr});
    			}
    		},
    
    		getObjectById: function(objectIdStr) {
    			if (ua.w3) {
    				return getObjectById(objectIdStr);
    			}
    		},
    
    		embedSWF: function(swfUrlStr, replaceElemIdStr, widthStr, heightStr, swfVersionStr, xiSwfUrlStr, flashvarsObj, parObj, attObj, callbackFn) {
    			var callbackObj = {success:false, id:replaceElemIdStr};
    			if (ua.w3 && !(ua.wk && ua.wk < 312) && swfUrlStr && replaceElemIdStr && widthStr && heightStr && swfVersionStr) {
    				setVisibility(replaceElemIdStr, false);
    				addDomLoadEvent(function() {
    					widthStr += ""; // auto-convert to string
    					heightStr += "";
    					var att = {};
    					if (attObj && typeof attObj === OBJECT) {
    						for (var i in attObj) { // copy object to avoid the use of references, because web authors often reuse attObj for multiple SWFs
    							att[i] = attObj[i];
    						}
    					}
    					att.data = swfUrlStr;
    					att.width = widthStr;
    					att.height = heightStr;
    					var par = {}; 
    					if (parObj && typeof parObj === OBJECT) {
    						for (var j in parObj) { // copy object to avoid the use of references, because web authors often reuse parObj for multiple SWFs
    							par[j] = parObj[j];
    						}
    					}
    					if (flashvarsObj && typeof flashvarsObj === OBJECT) {
    						for (var k in flashvarsObj) { // copy object to avoid the use of references, because web authors often reuse flashvarsObj for multiple SWFs
    							if (typeof par.flashvars != UNDEF) {
    								par.flashvars += "&" + k + "=" + flashvarsObj[k];
    							}
    							else {
    								par.flashvars = k + "=" + flashvarsObj[k];
    							}
    						}
    					}
    					if (hasPlayerVersion(swfVersionStr)) { // create SWF
    						var obj = createSWF(att, par, replaceElemIdStr);
    						if (att.id == replaceElemIdStr) {
    							setVisibility(replaceElemIdStr, true);
    						}
    						callbackObj.success = true;
    						callbackObj.ref = obj;
    					}
    					else if (xiSwfUrlStr && canExpressInstall()) { // show Adobe Express Install
    						att.data = xiSwfUrlStr;
    						showExpressInstall(att, par, replaceElemIdStr, callbackFn);
    						return;
    					}
    					else { // show alternative content
    						setVisibility(replaceElemIdStr, true);
    					}
    					if (callbackFn) { callbackFn(callbackObj); }
    				});
    			}
    			else if (callbackFn) { callbackFn(callbackObj);	}
    		},
    
    		switchOffAutoHideShow: function() {
    			autoHideShow = false;
    		},
    
    		ua: ua,
    
    		getFlashPlayerVersion: function() {
    			return { major:ua.pv[0], minor:ua.pv[1], release:ua.pv[2] };
    		},
    
    		hasFlashPlayerVersion: hasPlayerVersion,
    
    		createSWF: function(attObj, parObj, replaceElemIdStr) {
    			if (ua.w3) {
    				return createSWF(attObj, parObj, replaceElemIdStr);
    			}
    			else {
    				return undefined;
    			}
    		},
    
    		showExpressInstall: function(att, par, replaceElemIdStr, callbackFn) {
    			if (ua.w3 && canExpressInstall()) {
    				showExpressInstall(att, par, replaceElemIdStr, callbackFn);
    			}
    		},
    
    		removeSWF: function(objElemIdStr) {
    			if (ua.w3) {
    				removeSWF(objElemIdStr);
    			}
    		},
    
    		createCSS: function(selStr, declStr, mediaStr, newStyleBoolean) {
    			if (ua.w3) {
    				createCSS(selStr, declStr, mediaStr, newStyleBoolean);
    			}
    		},
    
    		addDomLoadEvent: addDomLoadEvent,
    
    		addLoadEvent: addLoadEvent,
    
    		getQueryParamValue: function(param) {
    			var q = doc.location.search || doc.location.hash;
    			if (q) {
    				if (/\?/.test(q)) { q = q.split("?")[1]; } // strip question mark
    				if (param == null) {
    					return urlEncodeIfNecessary(q);
    				}
    				var pairs = q.split("&");
    				for (var i = 0; i < pairs.length; i++) {
    					if (pairs[i].substring(0, pairs[i].indexOf("=")) == param) {
    						return urlEncodeIfNecessary(pairs[i].substring((pairs[i].indexOf("=") + 1)));
    					}
    				}
    			}
    			return "";
    		},
    
    		// For internal usage only
    		expressInstallCallback: function() {
    			if (isExpressInstallActive) {
    				var obj = getElementById(EXPRESS_INSTALL_ID);
    				if (obj && storedAltContent) {
    					obj.parentNode.replaceChild(storedAltContent, obj);
    					if (storedAltContentId) {
    						setVisibility(storedAltContentId, true);
    						if (ua.ie && ua.win) { storedAltContent.style.display = "block"; }
    					}
    					if (storedCallbackFn) { storedCallbackFn(storedCallbackObj); }
    				}
    				isExpressInstallActive = false;
    			} 
    		}
    	};
    try {
                    if(typeof t.GetVariable != UNDEF) {
                   var d = t.GetVariable("$version");
                   if (d) {
                      d = d.split(" ")[1].split(",");
                      ua.pv = [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)];
                   }
                }
                else if (counter < 10) {
                    console.log(t.GetVariable);
                   counter++;
                   setTimeout(arguments.callee, 10);
                   return;
                }
                } catch(e) {}
    
    
    }();
    Alles anzeigen

    2)

    Zitat

    Ist ein Problem mit der Library, diese benötigst du eigentlich auch nicht.

    Wenn ich wüsste, wo sich die Library befindet, dann lösche ich Sie auch gerne! (Geht vielleicht schneller.)

    VG U

  • Grafik/.mm wird trotz flash player nicht angezeigt

    • TremorChrist
    • 29. September 2009 um 16:10

    Sorry wenn ich mich so doof anstelle! :-???

    Du hast mir doch 2 Codes geschickt - und später geschrieben:

    Zitat

    Der erste Code beantwortet deine Frage.
    Der zweite betrifft die Einbindung direkt auf der Wiki-Seite.

    Wenn ich ersten deiner beiden Codes in meine swfobject einfüge (copy&paste) oder den gesamten swfobject - code damit ersetze, bekomme ich wieder die Aufforderung mein Adobeflashplayer zu installieren. Ebenso wenn ich das mit beide deiner Codes mache.

    Aber ich soll ja auch den zweiten code einbinden "direkt auf der Wiki-Seite" - das funktioniert leider auch nicht. Siehe:
    http://herrtriebel.de/wiki/index.php…-Stands-Analyse

    Vielleicht stehe ich auf dem Schlauch; im Grunde ist das Problem, dass ich nicht weiß, wo genau ich die beiden codes einfügen /mit was ersetzen muss.

    Danke für die Geduld!

  • Grafik/.mm wird trotz flash player nicht angezeigt

    • TremorChrist
    • 25. September 2009 um 19:07

    Hallo,
    und Danke - war wegen der Arbeit die Woche weg...

    Den alten Code der SWFObject.js habe ich nur um den von dir vorgeschlagenen code erweitert: ich habe die .js geöffnet und darunter eingefügt und wieder gespeichert hochgeladen. Das mach ich mit filezilla. (Wenn ich den alten code mit deinem überschreibe, dann wird wieder angezeigt, dass ich den adobe Flash Player installieren muss.)

    Wo binde ich wie den 2. Code ein - wie direkt ins wiki?

    Danke
    Uli

  • Grafik/.mm wird trotz flash player nicht angezeigt

    • TremorChrist
    • 16. September 2009 um 22:37

    ok - die swf ist geändert, siehe ganz unten im code:

    Code
    /*!	SWFObject v2.2 <http://code.google.com/p/swfobject/> 
    	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",
    		ON_READY_STATE_CHANGE = "onreadystatechange",
    
    		win = window,
    		doc = document,
    		nav = navigator,
    
    		plugin = false,
    		domLoadFnArr = [main],
    		regObjArr = [],
    		objIdArr = [],
    		listenersArr = [],
    		storedAltContent,
    		storedAltContentId,
    		storedCallbackFn,
    		storedCallbackObj,
    		isDomLoaded = false,
    		isExpressInstallActive = false,
    		dynamicStylesheet,
    		dynamicStylesheetMedia,
    		autoHideShow = true,
    
    	/* Centralized function for browser feature detection
    		- User agent string detection is only used when no good alternative is possible
    		- Is executed directly for optimal performance
    	*/	
    	ua = function() {
    		var w3cdom = typeof doc.getElementById != UNDEF && typeof doc.getElementsByTagName != UNDEF && typeof doc.createElement != UNDEF,
    			u = nav.userAgent.toLowerCase(),
    			p = nav.platform.toLowerCase(),
    			windows = p ? /win/.test(p) : /win/.test(u),
    			mac = p ? /mac/.test(p) : /mac/.test(u),
    			webkit = /webkit/.test(u) ? parseFloat(u.replace(/^.*webkit\/(\d+(\.\d+)?).*$/, "$1")) : false, // returns either the webkit version or false if not webkit
    			ie = !+"\v1", // feature detection based on Andrea Giammarchi's solution: http://webreflection.blogspot.com/2009/01/32-bytes-to-know-if-your-browser-is-ie.html
    			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 && !(typeof nav.mimeTypes != UNDEF && nav.mimeTypes[FLASH_MIME_TYPE] && !nav.mimeTypes[FLASH_MIME_TYPE].enabledPlugin)) { // navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin indicates whether plug-ins are enabled or disabled in Safari 3+
    				plugin = true;
    				ie = false; // cascaded feature detection for Internet Explorer
    				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] = /[a-zA-Z]/.test(d) ? parseInt(d.replace(/^.*[a-zA-Z]+(.*)$/, "$1"), 10) : 0;
    			}
    		}
    		else if (typeof win.ActiveXObject != UNDEF) {
    			try {
    				var a = new ActiveXObject(SHOCKWAVE_FLASH_AX);
    				if (a) { // a will return null when ActiveX is disabled
    					d = a.GetVariable("$version");
    					if (d) {
    						ie = true; // cascaded feature detection for Internet Explorer
    						d = d.split(" ")[1].split(",");
    						playerVersion = [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)];
    					}
    				}
    			}
    			catch(e) {}
    		}
    		return { w3:w3cdom, pv:playerVersion, wk:webkit, ie:ie, win:windows, mac:mac };
    	}(),
    
    	/* Cross-browser onDomLoad
    		- Will fire an event as soon as the DOM of a web page is loaded
    		- Internet Explorer workaround based on Diego Perini's solution: http://javascript.nwbox.com/IEContentLoaded/
    		- Regular onload serves as fallback
    	*/ 
    	onDomLoad = function() {
    		if (!ua.w3) { return; }
    		if ((typeof doc.readyState != UNDEF && doc.readyState == "complete") || (typeof doc.readyState == UNDEF && (doc.getElementsByTagName("body")[0] || doc.body))) { // function is fired after onload, e.g. when script is inserted dynamically 
    			callDomLoadFunctions();
    		}
    		if (!isDomLoaded) {
    			if (typeof doc.addEventListener != UNDEF) {
    				doc.addEventListener("DOMContentLoaded", callDomLoadFunctions, false);
    			}		
    			if (ua.ie && ua.win) {
    				doc.attachEvent(ON_READY_STATE_CHANGE, function() {
    					if (doc.readyState == "complete") {
    						doc.detachEvent(ON_READY_STATE_CHANGE, arguments.callee);
    						callDomLoadFunctions();
    					}
    				});
    				if (win == top) { // if not inside an iframe
    					(function(){
    						if (isDomLoaded) { return; }
    						try {
    							doc.documentElement.doScroll("left");
    						}
    						catch(e) {
    							setTimeout(arguments.callee, 0);
    							return;
    						}
    						callDomLoadFunctions();
    					})();
    				}
    			}
    			if (ua.wk) {
    				(function(){
    					if (isDomLoaded) { return; }
    					if (!/loaded|complete/.test(doc.readyState)) {
    						setTimeout(arguments.callee, 0);
    						return;
    					}
    					callDomLoadFunctions();
    				})();
    			}
    			addLoadEvent(callDomLoadFunctions);
    		}
    	}();
    
    	function callDomLoadFunctions() {
    		if (isDomLoaded) { return; }
    		try { // test if we can really add/remove elements to/from the DOM; we don't want to fire it too early
    			var t = doc.getElementsByTagName("body")[0].appendChild(createElement("span"));
    			t.parentNode.removeChild(t);
    		}
    		catch (e) { return; }
    		isDomLoaded = true;
    		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+
    		}
    	}
    
    	/* 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) {
    			addListener(win, "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() { 
    		if (plugin) {
    			testPlayerVersion();
    		}
    		else {
    			matchVersions();
    		}
    	}
    
    	/* Detect the Flash Player version for non-Internet Explorer browsers
    		- Detecting the plug-in version via the object element is more precise than using the plugins collection item's description:
    		  a. Both release and build numbers can be detected
    		  b. Avoid wrong descriptions by corrupt installers provided by Adobe
    		  c. Avoid wrong descriptions by multiple Flash Player entries in the plugin Array, caused by incorrect browser imports
    		- Disadvantage of this method is that it depends on the availability of the DOM, while the plugins collection is immediately available
    	*/
    	function testPlayerVersion() {
    		var b = doc.getElementsByTagName("body")[0];
    		var o = createElement(OBJECT);
    		o.setAttribute("type", FLASH_MIME_TYPE);
    		var t = b.appendChild(o);
    		if (t) {
    			var counter = 0;
    			(function(){
    				if (typeof t.GetVariable != UNDEF) {
    					var d = t.GetVariable("$version");
    					if (d) {
    						d = d.split(" ")[1].split(",");
    						ua.pv = [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)];
    					}
    				}
    				else if (counter < 10) {
    					counter++;
    					setTimeout(arguments.callee, 10);
    					return;
    				}
    				b.removeChild(o);
    				t = null;
    				matchVersions();
    			})();
    		}
    		else {
    			matchVersions();
    		}
    	}
    
    	/* 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++) { // 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);
    								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 alternative content instead of SWF
    							displayAltContent(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 alternative 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;
    						}
    						cb(cbObj);
    					}
    				}
    			}
    		}
    	}
    
    	function getObjectById(objectIdStr) {
    		var r = null;
    		var o = getElementById(objectIdStr);
    		if (o && o.nodeName == "OBJECT") {
    			if (typeof o.SetVariable != UNDEF) {
    				r = o;
    			}
    			else {
    				var n = o.getElementsByTagName(OBJECT)[0];
    				if (n) {
    					r = n;
    				}
    			}
    		}
    		return r;
    	}
    
    	/* Requirements for Adobe Express Install
    		- only one instance can be active at a time
    		- fp 6.0.65 or higher
    		- Win/Mac OS only
    		- no Webkit engines older than version 312
    	*/
    	function canExpressInstall() {
    		return !isExpressInstallActive && hasPlayerVersion("6.0.65") && (ua.win || ua.mac) && !(ua.wk && ua.wk < 312);
    	}
    
    	/* Show the Adobe Express Install dialog
    		- Reference: http://www.adobe.com/cfusion/knowledgebase/index.cfm?id=6a253b75
    	*/
    	function showExpressInstall(att, par, replaceElemIdStr, callbackFn) {
    		isExpressInstallActive = true;
    		storedCallbackFn = callbackFn || null;
    		storedCallbackObj = {success:false, id:replaceElemIdStr};
    		var obj = getElementById(replaceElemIdStr);
    		if (obj) {
    			if (obj.nodeName == "OBJECT") { // static publishing
    				storedAltContent = abstractAltContent(obj);
    				storedAltContentId = null;
    			}
    			else { // dynamic publishing
    				storedAltContent = obj;
    				storedAltContentId = replaceElemIdStr;
    			}
    			att.id = EXPRESS_INSTALL_ID;
    			if (typeof att.width == UNDEF || (!/%$/.test(att.width) && parseInt(att.width, 10) < 310)) { att.width = "310"; }
    			if (typeof att.height == UNDEF || (!/%$/.test(att.height) && parseInt(att.height, 10) < 137)) { att.height = "137"; }
    			doc.title = doc.title.slice(0, 47) + " - Flash Player Installation";
    			var pt = ua.ie && ua.win ? "ActiveX" : "PlugIn",
    				fv = "MMredirectURL=" + win.location.toString().replace(/&/g,"%26") + "&MMplayerType=" + pt + "&MMdoctitle=" + doc.title;
    			if (typeof par.flashvars != UNDEF) {
    				par.flashvars += "&" + fv;
    			}
    			else {
    				par.flashvars = fv;
    			}
    			// IE only: when a SWF is loading (AND: not available in cache) wait for the readyState of the object element to become 4 before removing it,
    			// because 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");
    				replaceElemIdStr += "SWFObjectNew";
    				newObj.setAttribute("id", replaceElemIdStr);
    				obj.parentNode.insertBefore(newObj, obj); // insert placeholder div that will be replaced by the object element that loads expressinstall.swf
    				obj.style.display = "none";
    				(function(){
    					if (obj.readyState == 4) {
    						obj.parentNode.removeChild(obj);
    					}
    					else {
    						setTimeout(arguments.callee, 10);
    					}
    				})();
    			}
    			createSWF(att, par, replaceElemIdStr);
    		}
    	}
    
    	/* Functions to abstract and display alternative content
    	*/
    	function displayAltContent(obj) {
    		if (ua.ie && ua.win && obj.readyState != 4) {
    			// IE only: when a SWF is loading (AND: not available in cache) wait for the readyState of the object element to become 4 before removing it,
    			// because 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";
    			(function(){
    				if (obj.readyState == 4) {
    					obj.parentNode.removeChild(obj);
    				}
    				else {
    					setTimeout(arguments.callee, 10);
    				}
    			})();
    		}
    		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 == "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 (ua.wk && ua.wk < 312) { return r; }
    		if (el) {
    			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) { // Internet Explorer + the HTML object element + 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
    						if (i.toLowerCase() == "data") {
    							parObj.movie = attObj[i];
    						}
    						else if (i.toLowerCase() == "styleclass") { // 'class' is an ECMA4 reserved keyword
    							att += ' class="' + attObj[i] + '"';
    						}
    						else if (i.toLowerCase() != "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>';
    				objIdArr[objIdArr.length] = attObj.id; // stored to fix object 'leaks' on unload (dynamic publishing only)
    				r = getElementById(attObj.id);	
    			}
    			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.toLowerCase() != "classid") { // filter out IE specific attribute
    							o.setAttribute(m, attObj[m]);
    						}
    					}
    				}
    				for (var n in parObj) {
    					if (parObj[n] != Object.prototype[n] && n.toLowerCase() != "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);
    	}
    
    	/* Cross-browser SWF removal
    		- Especially needed to safely and completely remove a SWF in Internet Explorer
    	*/
    	function removeSWF(id) {
    		var obj = getElementById(id);
    		if (obj && obj.nodeName == "OBJECT") {
    			if (ua.ie && ua.win) {
    				obj.style.display = "none";
    				(function(){
    					if (obj.readyState == 4) {
    						removeObjectInIE(id);
    					}
    					else {
    						setTimeout(arguments.callee, 10);
    					}
    				})();
    			}
    			else {
    				obj.parentNode.removeChild(obj);
    			}
    		}
    	}
    
    	function removeObjectInIE(id) {
    		var obj = getElementById(id);
    		if (obj) {
    			for (var i in obj) {
    				if (typeof obj[i] == "function") {
    					obj[i] = null;
    				}
    			}
    			obj.parentNode.removeChild(obj);
    		}
    	}
    
    	/* Functions to optimize JavaScript compression
    	*/
    	function getElementById(id) {
    		var el = null;
    		try {
    			el = doc.getElementById(id);
    		}
    		catch (e) {}
    		return el;
    	}
    
    	function createElement(el) {
    		return doc.createElement(el);
    	}
    
    	/* Updated attachEvent function for Internet Explorer
    		- Stores attachEvent information in an Array, so on unload the detachEvent functions can be called to avoid memory leaks
    	*/	
    	function addListener(target, eventType, fn) {
    		target.attachEvent(eventType, fn);
    		listenersArr[listenersArr.length] = [target, eventType, fn];
    	}
    
    	/* Flash Player and SWF content version matching
    	*/
    	function hasPlayerVersion(rv) {
    		var pv = ua.pv, v = rv.split(".");
    		v[0] = parseInt(v[0], 10);
    		v[1] = parseInt(v[1], 10) || 0; // supports short notation, e.g. "9" instead of "9.0.0"
    		v[2] = parseInt(v[2], 10) || 0;
    		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, media, newStyle) {
    		if (ua.ie && ua.mac) { return; }
    		var h = doc.getElementsByTagName("head")[0];
    		if (!h) { return; } // to also support badly authored HTML pages that lack a head element
    		var m = (media && typeof media == "string") ? media : "screen";
    		if (newStyle) {
    			dynamicStylesheet = null;
    			dynamicStylesheetMedia = null;
    		}
    		if (!dynamicStylesheet || dynamicStylesheetMedia != m) { 
    			// create dynamic stylesheet + get a global reference to it
    			var s = createElement("style");
    			s.setAttribute("type", "text/css");
    			s.setAttribute("media", m);
    			dynamicStylesheet = h.appendChild(s);
    			if (ua.ie && ua.win && typeof doc.styleSheets != UNDEF && doc.styleSheets.length > 0) {
    				dynamicStylesheet = doc.styleSheets[doc.styleSheets.length - 1];
    			}
    			dynamicStylesheetMedia = m;
    		}
    		// add style rule
    		if (ua.ie && ua.win) {
    			if (dynamicStylesheet && typeof dynamicStylesheet.addRule == OBJECT) {
    				dynamicStylesheet.addRule(sel, decl);
    			}
    		}
    		else {
    			if (dynamicStylesheet && typeof doc.createTextNode != UNDEF) {
    				dynamicStylesheet.appendChild(doc.createTextNode(sel + " {" + decl + "}"));
    			}
    		}
    	}
    
    	function setVisibility(id, isVisible) {
    		if (!autoHideShow) { return; }
    		var v = isVisible ? "visible" : "hidden";
    		if (isDomLoaded && getElementById(id)) {
    			getElementById(id).style.visibility = v;
    		}
    		else {
    			createCSS("#" + id, "visibility:" + v);
    		}
    	}
    
    
    	/* Filter to avoid XSS attacks
    	*/
    	function urlEncodeIfNecessary(s) {
    		var regex = /[\\\"<>\.;]/;
    		var hasBadChars = regex.exec(s) != null;
    		return hasBadChars && typeof encodeURIComponent != UNDEF ? encodeURIComponent(s) : s;
    	}
    
    	/* Release memory to avoid memory leaks caused by closures, fix hanging audio/video threads and force open sockets/NetConnections to disconnect (Internet Explorer only)
    	*/
    	var cleanup = function() {
    		if (ua.ie && ua.win) {
    			window.attachEvent("onunload", function() {
    				// remove listeners to avoid memory leaks
    				var ll = listenersArr.length;
    				for (var i = 0; i < ll; i++) {
    					listenersArr[i][0].detachEvent(listenersArr[i][1], listenersArr[i][2]);
    				}
    				// cleanup dynamically embedded objects to fix audio/video threads and force open sockets and NetConnections to disconnect
    				var il = objIdArr.length;
    				for (var j = 0; j < il; j++) {
    					removeSWF(objIdArr[j]);
    				}
    				// cleanup library's main closures to avoid memory leaks
    				for (var k in ua) {
    					ua[k] = null;
    				}
    				ua = null;
    				for (var l in swfobject) {
    					swfobject[l] = null;
    				}
    				swfobject = null;
    			});
    		}
    	}();
    
    	return {
    		/* Public API
    			- Reference: http://code.google.com/p/swfobject/wiki/documentation
    		*/ 
    		registerObject: function(objectIdStr, swfVersionStr, xiSwfUrlStr, callbackFn) {
    			if (ua.w3 && objectIdStr && swfVersionStr) {
    				var regObj = {};
    				regObj.id = objectIdStr;
    				regObj.swfVersion = swfVersionStr;
    				regObj.expressInstall = xiSwfUrlStr;
    				regObj.callbackFn = callbackFn;
    				regObjArr[regObjArr.length] = regObj;
    				setVisibility(objectIdStr, false);
    			}
    			else if (callbackFn) {
    				callbackFn({success:false, id:objectIdStr});
    			}
    		},
    
    		getObjectById: function(objectIdStr) {
    			if (ua.w3) {
    				return getObjectById(objectIdStr);
    			}
    		},
    
    		embedSWF: function(swfUrlStr, replaceElemIdStr, widthStr, heightStr, swfVersionStr, xiSwfUrlStr, flashvarsObj, parObj, attObj, callbackFn) {
    			var callbackObj = {success:false, id:replaceElemIdStr};
    			if (ua.w3 && !(ua.wk && ua.wk < 312) && swfUrlStr && replaceElemIdStr && widthStr && heightStr && swfVersionStr) {
    				setVisibility(replaceElemIdStr, false);
    				addDomLoadEvent(function() {
    					widthStr += ""; // auto-convert to string
    					heightStr += "";
    					var att = {};
    					if (attObj && typeof attObj === OBJECT) {
    						for (var i in attObj) { // copy object to avoid the use of references, because web authors often reuse attObj for multiple SWFs
    							att[i] = attObj[i];
    						}
    					}
    					att.data = swfUrlStr;
    					att.width = widthStr;
    					att.height = heightStr;
    					var par = {}; 
    					if (parObj && typeof parObj === OBJECT) {
    						for (var j in parObj) { // copy object to avoid the use of references, because web authors often reuse parObj for multiple SWFs
    							par[j] = parObj[j];
    						}
    					}
    					if (flashvarsObj && typeof flashvarsObj === OBJECT) {
    						for (var k in flashvarsObj) { // copy object to avoid the use of references, because web authors often reuse flashvarsObj for multiple SWFs
    							if (typeof par.flashvars != UNDEF) {
    								par.flashvars += "&" + k + "=" + flashvarsObj[k];
    							}
    							else {
    								par.flashvars = k + "=" + flashvarsObj[k];
    							}
    						}
    					}
    					if (hasPlayerVersion(swfVersionStr)) { // create SWF
    						var obj = createSWF(att, par, replaceElemIdStr);
    						if (att.id == replaceElemIdStr) {
    							setVisibility(replaceElemIdStr, true);
    						}
    						callbackObj.success = true;
    						callbackObj.ref = obj;
    					}
    					else if (xiSwfUrlStr && canExpressInstall()) { // show Adobe Express Install
    						att.data = xiSwfUrlStr;
    						showExpressInstall(att, par, replaceElemIdStr, callbackFn);
    						return;
    					}
    					else { // show alternative content
    						setVisibility(replaceElemIdStr, true);
    					}
    					if (callbackFn) { callbackFn(callbackObj); }
    				});
    			}
    			else if (callbackFn) { callbackFn(callbackObj);	}
    		},
    
    		switchOffAutoHideShow: function() {
    			autoHideShow = false;
    		},
    
    		ua: ua,
    
    		getFlashPlayerVersion: function() {
    			return { major:ua.pv[0], minor:ua.pv[1], release:ua.pv[2] };
    		},
    
    		hasFlashPlayerVersion: hasPlayerVersion,
    
    		createSWF: function(attObj, parObj, replaceElemIdStr) {
    			if (ua.w3) {
    				return createSWF(attObj, parObj, replaceElemIdStr);
    			}
    			else {
    				return undefined;
    			}
    		},
    
    		showExpressInstall: function(att, par, replaceElemIdStr, callbackFn) {
    			if (ua.w3 && canExpressInstall()) {
    				showExpressInstall(att, par, replaceElemIdStr, callbackFn);
    			}
    		},
    
    		removeSWF: function(objElemIdStr) {
    			if (ua.w3) {
    				removeSWF(objElemIdStr);
    			}
    		},
    
    		createCSS: function(selStr, declStr, mediaStr, newStyleBoolean) {
    			if (ua.w3) {
    				createCSS(selStr, declStr, mediaStr, newStyleBoolean);
    			}
    		},
    
    		addDomLoadEvent: addDomLoadEvent,
    
    		addLoadEvent: addLoadEvent,
    
    		getQueryParamValue: function(param) {
    			var q = doc.location.search || doc.location.hash;
    			if (q) {
    				if (/\?/.test(q)) { q = q.split("?")[1]; } // strip question mark
    				if (param == null) {
    					return urlEncodeIfNecessary(q);
    				}
    				var pairs = q.split("&");
    				for (var i = 0; i < pairs.length; i++) {
    					if (pairs[i].substring(0, pairs[i].indexOf("=")) == param) {
    						return urlEncodeIfNecessary(pairs[i].substring((pairs[i].indexOf("=") + 1)));
    					}
    				}
    			}
    			return "";
    		},
    
    		// For internal usage only
    		expressInstallCallback: function() {
    			if (isExpressInstallActive) {
    				var obj = getElementById(EXPRESS_INSTALL_ID);
    				if (obj && storedAltContent) {
    					obj.parentNode.replaceChild(storedAltContent, obj);
    					if (storedAltContentId) {
    						setVisibility(storedAltContentId, true);
    						if (ua.ie && ua.win) { storedAltContent.style.display = "block"; }
    					}
    					if (storedCallbackFn) { storedCallbackFn(storedCallbackObj); }
    				}
    				isExpressInstallActive = false;
    			} 
    		}
    	};
    try {
                    if(typeof t.GetVariable != UNDEF) {
                   var d = t.GetVariable("$version");
                   if (d) {
                      d = d.split(" ")[1].split(",");
                      ua.pv = [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)];
                   }
                }
                else if (counter < 10) {
                    console.log(t.GetVariable);
                   counter++;
                   setTimeout(arguments.callee, 10);
                   return;
                }
                } catch(e) {}
    
    
    }();
    Alles anzeigen

    Zum 2. Code - wo muss der ins wiki eingebunden werden? (Direkt über Seite bearbeiten hat es nicht geklappt; als php hats auch nix geändert.) Muss der in eine Datei (über FTP)?

    Danke!

  • Grafik/.mm wird trotz flash player nicht angezeigt

    • TremorChrist
    • 15. September 2009 um 17:39

    Oh, das hört sich gut an. Leider weiß ich nicht, was du meinst:
    (a) soll ich den libraris-Ordner entfernen (/http://www.herrtriebel.de/phpMyAdmin-xxxx/libraries/) entfernen? Hat allerdings nix gebracht und ist wieder drauf.
    (b) oder eine library-file? So eine habe ich nicht gefunden?! Bzw. letztere ändern.

  • Grafik/.mm wird trotz flash player nicht angezeigt

    • TremorChrist
    • 13. September 2009 um 19:28

    die swfobject ist glaub ich die aktuellste ihrer Art, dürfte vom Juni diesen Jahres sein http://code.google.com/p/swfobject/

    weiß denn jemand, wie ich swfobject.js geändert werden muss, damit dat funzt?

  • Grafik/.mm wird trotz flash player nicht angezeigt

    • TremorChrist
    • 13. September 2009 um 16:41

    Hallo,

    danke für eure Antworten.

    pcinfarkt: Ja, sowas meine ich.
    Was du da reingestellt hast, das sollte eben auch mit dem FF sichtbar sein - ist es aber nicht.

    @BÖRSENFEGER: Ich bin sozusagen der Betreiber der Webseite (MediaWiki installiert, etc.). Welcher Code müsste denn geändert werden.

    Z.B.: In verschiedenen php-files finde ich gar nichts mit java; nur in einer extension: die flashwindowfunction.php:
    if($mm_title != ""){
    $output='<p style="text-align:center"><a href="'.$parameters['initLoadFile'].'">'.$mm_title.'</a></p>';
    }
    $output.='<script type="text/javascript" src="'.$path.'swfobject.js"></script>'.'
    <script type="text/javascript">// <![CDATA[
    ';

    Sowas?
    Oder eine andere Spezielle Datei (etwa in die LocalSettings.php)?

    Bin gespannt,
    uli

  • Grafik/.mm wird trotz flash player nicht angezeigt

    • TremorChrist
    • 12. September 2009 um 13:34

    So, ich habe jetzt über Extras>Einstellungen Java-Scripts aktiviert - leider funktionierts damit auch nicht.
    Was könnte ich denn noch versuchen?

    Grüße
    Uli

  • Grafik/.mm wird trotz flash player nicht angezeigt

    • TremorChrist
    • 11. September 2009 um 21:52

    Hi! Kenn mich nicht aus; und entsprechende google-Beiträge habe ich leider nicht kapiert...
    Die herrtriebel.de Seite ist neu (neuer wiki, neue .mm-extension etc) - ob da was veraltet sein könnte?
    Habe mein Java akualisiert.

    Wie bekomm ich denn ob diese Weiche zu alt/falsch ist? Und wie ändere ich das?
    Uli

  • Grafik/.mm wird trotz flash player nicht angezeigt

    • TremorChrist
    • 11. September 2009 um 20:16

    Hallo,

    mein FF 3.5.3 zeigt auf der Homepage
    http://herrtriebel.de/wiki/index.php…-Stands-Analyse die Mindmap nicht an - allerdings der Internet Explorer.
    Interessanterweise wird auf http://freemind.sourceforge.net/wiki/index.php/Map/BGE die .mm angezeigt.

    Ich habe den adobe flash player version 10.0.32.18 installiert - er wird in meiner software auch angezeigt. Leider wird im FF über Extras>AddOns das nicht angezeigt. Also:

    Woran könnte es liegen, dass die .mm nicht angezeigt wird? Bzw. warum wird denn der flash player in den add ons nicht angezeigt?

    Danke im Voraus?
    Grüße
    Uli

Unterstütze uns!

Jährlich (2025)

104,5 %

104,5% (679,10 von 650 EUR)

Jetzt spenden
  1. Kontakt
  2. Datenschutz
  3. Impressum
Community-Software: WoltLab Suite™
Mastodon