diff --git a/experiments/o3.html b/experiments/o3.html deleted file mode 100644 index b944fae0..00000000 --- a/experiments/o3.html +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/experiments/o3.js b/experiments/o3.js deleted file mode 100644 index b9f90b56..00000000 --- a/experiments/o3.js +++ /dev/null @@ -1,318 +0,0 @@ -/* - * See the NOTICE file distributed with this work for additional - * information regarding copyright ownership. - * - * This is free software; you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This software is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this software; if not, write to the Free - * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA - * 02110-1301 USA, or see the FSF site: http://www.fsf.org. - * - */ - -// #ifdef __WITH_O3 -/** - * Helper class that aids in creating and controlling Ajax O3 instances - * - * @author Mike de Boer - * @version %I%, %G% - * @since 2.1 - * @namespace o3 - * @private - */ - - -(function(global) { -var sId = "Ajax.org", - sDefProduct = "O3Stem", - bAvailable = null, - iVersion = null, - embedded = false, - oO3Count = 0; - bEmbed = false, - sPlatform = null, - oInstMap = {}; - -function detect(o) { - var version; - var name = o && o.fullname ? o.fullname : "Ajax.org O3"; - - if (window.external && window.external.o3) { - version = window.external.o3.versionInfo.match(/v([\d]+\.[\d]+)/)[1]; - embedded = true; - } - - if (!version && navigator.plugins) { - if (navigator.plugins[name]) - version = navigator.plugins[name].description.match(/v([\d]+\.[\d]+)/)[1]; - - if (!version) { - for (var i = 0, l1 = navigator.plugins.length; i < l1; ++i) { - var plugin = navigator.plugins[i]; - for (var j = 0, l2 = plugin.length; j < l2; j++) { - if (plugin[j].type.toLowerCase() == "application/" + name.toLowerCase()) - version = "0.9"; - break; - } - if (version) - break; - } - } - } - - if (!version && navigator.mimeTypes) { - // try sniffing the mimeTypes - for (var i = 0, l = navigator.mimeTypes.length; i < l; ++i) { - if (navigator.mimeTypes[i].type.toLowerCase() == "application/" + name.toLowerCase()) - version = "0.9"; - break; - } - } - - if (!version) { - try { - var axo = new ActiveXObject(name); - version = axo.versionInfo.match(/v([\d]+\.[\d]+)/)[1]; - } - catch (e) {} - } - - if (version) { - iVersion = parseFloat(version); - bAvailable = true; - } - else { - iVersion = 0; - bAvailable = false; - } -} - -function sniff() { - var sAgent = navigator.userAgent.toLowerCase(); - var is_opera = sAgent.indexOf("opera") !== -1; - var is_konqueror = sAgent.indexOf("konqueror") != -1; - var is_safari = !is_opera && ((navigator.vendor - && navigator.vendor.match(/Apple/) ? true : false) - || sAgent.indexOf("safari") != -1 || is_konqueror); - var is_ie = (document.all && !is_opera && !is_safari); - bEmbed = !(is_ie && !is_opera); - - // OS sniffing: - - // windows... - if (sAgent.indexOf("win") != -1 || sAgent.indexOf("16bit") != -1) { - sPlatform = "win"; - if (sAgent.indexOf("win16") != -1 - || sAgent.indexOf("16bit") != -1 - || sAgent.indexOf("windows 3.1") != -1 - || sAgent.indexOf("windows 16-bit") != -1) - sPlatform += "16"; - else if (sAgent.indexOf("win32") != -1 - || sAgent.indexOf("32bit") != -1) - sPlatform += "32"; - else if (sAgent.indexOf("win32") != -1 - || sAgent.indexOf("32bit") != -1) - sPlatform += "64"; - } - // mac... - if (sAgent.indexOf("mac") != -1) { - sPlatform = "mac"; - if (sAgent.indexOf("ppc") != -1 || sAgent.indexOf("powerpc") != -1) - sPlatform += "ppc"; - else if (sAgent.indexOf("os x") != -1) - sPlatform += "osx"; - } - // linux... - if (sAgent.indexOf("inux") != -1) { - sPlatform = "linux"; - if (sAgent.indexOf("i686") > -1 || sAgent.indexOf("i386") > -1) - sPlatform += "32"; - else if (sAgent.indexOf("86_64")) - sPlatform += "64"; - else if (sAgent.indexOf("arm")) - sPlatform += "arm"; - } -} - -function installerUrl(o) { - return "http://www.ajax.org/o3/installer" - + (sPlatform ? "/platform/" + sPlatform : "") - + (o.guid ? "/guid/" + encodeURIComponent(o.guid) : ""); -} - -function escapeHtml(s) { - var c, ret = ""; - - if (s == null) return null; - - for (var i = 0, j = s.length; i < j; i++) { - c = s.charCodeAt(i); - if (((c > 96) && (c < 123)) || (( c > 64) && (c < 91)) - || ((c > 43) && (c < 58) && (c != 47)) || (c == 95)) - ret = ret + String.fromCharCode(c); - else - ret = ret + "&#" + c + ";"; - } - return ret; -} - -function createHtml(options) { - var out = []; - if (typeof options.width == "undefined") - options.width = 0; - if (typeof options.height == "undefined") - options.height = 0; - - out.push(bEmbed - ? ''); - if (options.params) { - var i, n, v; - for (i in options.params) { - if (!options.params[i]) continue; - n = escapeHtml(i); - v = escapeHtml(options.params[i]); - out.push(bEmbed - ? n + '="' + v + '" ' - : ' '); - } - } - out.push(bEmbed ? '> ' : ''); - - return out.join(""); -} - -function register(o, options) { - // do some funky registering stuff... - var key = (options.guid ? options.guid : "ajax.o3") - + (options.name ? "." + options.name : ""); - - if (!oInstMap[key]) - oInstMap[key] = []; - oInstMap[key].push(o); -} - -function get(guid) { - for (var i in oInstMap) { - if (i.indexOf(guid) > -1) - return oInstMap[i][0]; - } - - return null; -} - -function destroy(o) { - if (typeof o == "string") //guid provided - o = get(o); - if (!o) return; - // destroy references and domNode of this/ each plugin instance... - var i, j, k, inst; - for (i in oInstMap) { - inst = oInstMap[i]; - if (!inst.length) continue; - for (j = inst.length -1; j >= 0; j--) { - // if we're searching for 'o', check for a match first - if (o && inst[j] != o) continue; - for (k in o) { - if (typeof o[k] == "function") - o[k] = null; - } - inst[j].parentNode.removeChild(inst[j]); - inst.splice(j, 1); - } - } - - if (!o) - oInstMap = {}; -} - -// global API: -global.o3 = { - isAvailable: function(o) { - if (bAvailable === null) - detect(o); - - return bAvailable && ((o && o.version) ? iVersion === o.version : true); - }, - - getVersion: function() { - if (iVersion === null) - detect(); - - return iVersion; - }, - - create: function(guid, options) { - if (!options && typeof guid == "object") { - options = guid; - options.guid = false; - } - else { - options = options || {}; - options.guid = guid || false; - } - if (!options["fullname"]) { - options.fullname = (options.product || sDefProduct) - + (options.guid ? "-" + options.guid : "") - } - - // mini-browser sniffing: - sniff(); - - if (!this.isAvailable(options)) { - var sUrl = installerUrl(options); - return typeof options["oninstallprompt"] == "function" - ? options.oninstallprompt(sUrl) - : window.open(sUrl, "_blank"); - } - - if (typeof options["params"] == "undefined") - options.params = {}; - if (typeof options.params["type"] == "undefined") - options.params.type = "application/" + (options.fullname || "o3-XXXXXXXX"); - - options.id = sId + (options.name ? options.name : ""); - - var oO3; - if (!embedded) { - (options["parent"] || document.body).appendChild( - document.createElement("div")).innerHTML = createHtml(options); - - oO3 = document.getElementById(options.id); - } else { - oO3 = window.external.o3; - } - - if (oO3) { - register(oO3, options); - if (typeof options["onready"] == "function") - options.onready(oO3); - - return oO3; - } - - - return false; - }, - - destroy: destroy, - - get: get -}; - -})(this); - -// #endif \ No newline at end of file