From 34352276297d2b04627d19807e3a2be313b4bf10 Mon Sep 17 00:00:00 2001 From: Pacien TRAN-GIRARD Date: Mon, 3 Mar 2014 20:39:17 +0100 Subject: Include new view in website --- website/assets/js/deployJava.js | 1305 --------------------------------------- website/assets/js/script.js | 46 -- 2 files changed, 1351 deletions(-) delete mode 100644 website/assets/js/deployJava.js delete mode 100644 website/assets/js/script.js (limited to 'website/assets/js') diff --git a/website/assets/js/deployJava.js b/website/assets/js/deployJava.js deleted file mode 100644 index 879df1c..0000000 --- a/website/assets/js/deployJava.js +++ /dev/null @@ -1,1305 +0,0 @@ -/* - * Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved. - * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * - Neither the name of Oracle nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS - * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, - * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -/* - * deployJava.js - * - * This file is part of the Deployment Toolkit. It provides functions for web - * pages to detect the presence of a JRE, install the latest JRE, and easily run - * applets or Web Start programs. More Information on usage of the - * Deployment Toolkit can be found in the Deployment Guide at: - * http://docs.oracle.com/javase/6/docs/technotes/guides/jweb/index.html - * - * The "live" copy of this file may be found at : - * http://java.com/js/deployJava.js. - * For web pages provisioned using https, you may want to access the copy at: - * https://java.com/js/deployJava.js. - * - * You are encouraged to link directly to the live copies. - * The above files are stripped of comments and whitespace for performance, - * You can access this file w/o the whitespace and comments removed at: - * http://java.com/js/deployJava.txt. - * - */ - -var deployJava = function() { - /** HTML attribute filter implementation */ - var hattrs = { - core: [ 'id', 'class', 'title', 'style' ], - i18n: [ 'lang', 'dir' ], - events: [ 'onclick', 'ondblclick', 'onmousedown', 'onmouseup', - 'onmouseover', 'onmousemove', 'onmouseout', 'onkeypress', - 'onkeydown', 'onkeyup' ], - applet: [ 'codebase', 'code', 'name', 'archive', 'object', - 'width', 'height', 'alt', 'align', 'hspace', 'vspace' ], - object: [ 'classid', 'codebase', 'codetype', 'data', 'type', - 'archive', 'declare', 'standby', 'height', 'width', 'usemap', - 'name', 'tabindex', 'align', 'border', 'hspace', 'vspace' ] - }; - - var object_valid_attrs = hattrs.object.concat(hattrs.core, hattrs.i18n, - hattrs.events); - var applet_valid_attrs = hattrs.applet.concat(hattrs.core); - - // generic log function, use console.log unless it isn't available - // then revert to alert() - function log(message) { - if ( ! rv.debug ) {return}; - - if (console.log) { - console.log(message); - } else { - alert(message); - } - } - - //checks where given version string matches query - // - //NB: assume format is correct. Can add format check later if needed - // from dtjava.js - function versionCheckEx(query, version) { - if (query == null || query.length == 0) return true; - - var c = query.charAt(query.length - 1); - - //if it is not explicit pattern but does not have update version then need to append * - if (c != '+' && c != '*' && (query.indexOf('_') != -1 && c != '_')) { - query = query + "*"; - c = '*'; - } - - query = query.substring(0, query.length - 1); - //if query ends with ".", "_" then we want to strip it to allow match of "1.6.*" to shorter form such as "1.6" - //TODO: add support for match of "1.7.0*" to "1.7"? - if (query.length > 0) { - var z = query.charAt(query.length - 1); - if (z == '.' || z == '_') { - query = query.substring(0, query.length - 1); - } - } - if (c == '*') { - //it is match if version starts from it - return (version.indexOf(query) == 0); - } else if (c == '+') { - //match if query string is lexicographically smaller - return query <= version; - } - return false; - } - - function getWebStartLaunchIconURL() { - var imageUrl = '//java.com/js/webstart.png'; - try { - // for http/https; use protocol less url; use http for all other protocol - return document.location.protocol.indexOf('http') != -1 ? - imageUrl : 'http:' + imageUrl; - } catch (err) { - return 'http:' + imageUrl; - } - } - - // GetJava page - function constructGetJavaURL(query) { - - var getJavaURL = 'http://java.com/dt-redirect'; - - if (query == null || query.length == 0) return getJavaURL; - if(query.charAt(0) == '&') - { - query = query.substring(1, query.length); - } - return getJavaURL + '?'+ query; - } - - function arHas(ar, attr) { - var len = ar.length; - for (var i = 0; i < len; i++) { - if (ar[i] === attr) return true; - } - return false; - } - - function isValidAppletAttr(attr) { - return arHas(applet_valid_attrs, attr.toLowerCase()); - } - - function isValidObjectAttr(attr) { - return arHas(object_valid_attrs, attr.toLowerCase()); - } - - /** - * returns true if we can enable DT plugin auto-install without chance of - * deadlock on cert mismatch dialog - * - * requestedJREVersion param is optional - if null, it will be - * treated as installing any JRE version - * - * DT plugin for 6uX only knows about JRE installer signed by SUN cert. - * If it encounter Oracle signed JRE installer, it will have chance of - * deadlock when running with IE. This function is to guard against this. - */ - function enableWithoutCertMisMatchWorkaround(requestedJREVersion) { - - // Non-IE browser are okay - if ('MSIE' != deployJava.browserName) return true; - - // if DT plugin is 10.0.0 or above, return true - // This is because they are aware of both SUN and Oracle signature and - // will not show cert mismatch dialog that might cause deadlock - if (deployJava.compareVersionToPattern(deployJava.getPlugin().version, - ["10", "0", "0"], false, true)) { - return true; - } - - // If we got there, DT plugin is 6uX - - if (requestedJREVersion == null) { - // if requestedJREVersion is not defined - it means ANY. - // can not guarantee it is safe to install ANY version because 6uX - // DT does not know about Oracle certificates and may deadlock - return false; - } - - // 6u32 or earlier JRE installer used Sun certificate - // 6u33+ uses Oracle's certificate - // DT in JRE6 does not know about Oracle certificate => can only - // install 6u32 or earlier without risk of deadlock - return !versionCheckEx("1.6.0_33+", requestedJREVersion); - } - - /* HTML attribute filters */ - - var rv = { - - debug: null, - - /* version of deployJava.js */ - version: "20120801", - - firefoxJavaVersion: null, - - myInterval: null, - preInstallJREList: null, - returnPage: null, - brand: null, - locale: null, - installType: null, - - EAInstallEnabled: false, - EarlyAccessURL: null, - - - // mime-type of the DeployToolkit plugin object - oldMimeType: 'application/npruntime-scriptable-plugin;DeploymentToolkit', - mimeType: 'application/java-deployment-toolkit', - - /* location of the Java Web Start launch button graphic is right next to - * deployJava.js at: - * http://java.com/js/webstart.png - * - * Use protocol less url here for http/https support - */ - launchButtonPNG: getWebStartLaunchIconURL(), - - browserName: null, - browserName2: null, - - /** - * Returns an array of currently-installed JRE version strings. - * Version strings are of the form #.#[.#[_#]], with the function returning - * as much version information as it can determine, from just family - * versions ("1.4.2", "1.5") through the full version ("1.5.0_06"). - * - * Detection is done on a best-effort basis. Under some circumstances - * only the highest installed JRE version will be detected, and - * JREs older than 1.4.2 will not always be detected. - */ - getJREs: function() { - var list = new Array(); - if (this.isPluginInstalled()) { - var plugin = this.getPlugin(); - var VMs = plugin.jvms; - for (var i = 0; i < VMs.getLength(); i++) { - list[i] = VMs.get(i).version; - } - } else { - var browser = this.getBrowser(); - - if (browser == 'MSIE') { - if (this.testUsingActiveX('1.7.0')) { - list[0] = '1.7.0'; - } else if (this.testUsingActiveX('1.6.0')) { - list[0] = '1.6.0'; - } else if (this.testUsingActiveX('1.5.0')) { - list[0] = '1.5.0'; - } else if (this.testUsingActiveX('1.4.2')) { - list[0] = '1.4.2'; - } else if (this.testForMSVM()) { - list[0] = '1.1'; - } - } else if (browser == 'Netscape Family') { - this.getJPIVersionUsingMimeType(); - if (this.firefoxJavaVersion != null) { - list[0] = this.firefoxJavaVersion; - } else if (this.testUsingMimeTypes('1.7')) { - list[0] = '1.7.0'; - } else if (this.testUsingMimeTypes('1.6')) { - list[0] = '1.6.0'; - } else if (this.testUsingMimeTypes('1.5')) { - list[0] = '1.5.0'; - } else if (this.testUsingMimeTypes('1.4.2')) { - list[0] = '1.4.2'; - } else if (this.browserName2 == 'Safari') { - if (this.testUsingPluginsArray('1.7.0')) { - list[0] = '1.7.0'; - } else if (this.testUsingPluginsArray('1.6')) { - list[0] = '1.6.0'; - } else if (this.testUsingPluginsArray('1.5')) { - list[0] = '1.5.0'; - } else if (this.testUsingPluginsArray('1.4.2')) { - list[0] = '1.4.2'; - } - } - } - } - - if (this.debug) { - for (var i = 0; i < list.length; ++i) { - log('[getJREs()] We claim to have detected Java SE ' + list[i]); - } - } - - return list; - }, - - /** - * Triggers a JRE installation. The exact effect of triggering an - * installation varies based on platform, browser, and if the - * Deployment Toolkit plugin is installed. - * - * The requestVersion string is of the form #[.#[.#[_#]]][+|*], - * which includes strings such as "1.4", "1.5.0*", and "1.6.0_02+". - * A star (*) means "any version starting within this family" and - * a plus (+) means "any version greater or equal to this". - * "1.5.0*" * matches 1.5.0_06 but not 1.6.0_01, whereas - * "1.5.0+" matches both. - * - * installCallback is an optional argument which holds a reference - * to a javascript callback function for reporting install status. - * - * If the Deployment Toolkit plugin is not present, this will just call - * this.installLatestJRE(). - */ - installJRE: function(requestVersion, installCallback) { - var ret = false; - if (this.isPluginInstalled() && - this.isAutoInstallEnabled(requestVersion)) { - var installSucceeded = false; - if (this.isCallbackSupported()) { - installSucceeded = - this.getPlugin().installJRE(requestVersion, installCallback); - } else { - installSucceeded = this.getPlugin().installJRE(requestVersion); - } - - if (installSucceeded) { - this.refresh(); - if (this.returnPage != null) { - document.location = this.returnPage; - } - } - return installSucceeded; - } else { - return this.installLatestJRE(); - } - }, - - /** - * returns true if jre auto install for the requestedJREVersion is enabled - * for the local system; false otherwise - * - * requestedJREVersion param is optional - if not specified, it will be - * treated as installing any JRE version - * - * DT plugin for 6uX only knows about JRE installer signed by SUN cert. - * If it encounter Oracle signed JRE installer, it will have chance of - * deadlock when running with IE. This function is to guard against this. - */ - isAutoInstallEnabled: function(requestedJREVersion) { - // if no DT plugin, return false - if (!this.isPluginInstalled()) return false; - - if (typeof requestedJREVersion == 'undefined') { - requestedJREVersion = null; - } - - return enableWithoutCertMisMatchWorkaround(requestedJREVersion); - - }, - - /** - * returns true if jre install callback is supported - * callback support is added since dt plugin version 10.2.0 or above - */ - isCallbackSupported: function() { - return this.isPluginInstalled() && - this.compareVersionToPattern(this.getPlugin().version, - ["10", "2", "0"], false, true); - }, - - /** - * Triggers a JRE installation. The exact effect of triggering an - * installation varies based on platform, browser, and if the - * Deployment Toolkit plugin is installed. - * - * In the simplest case, the browser window will be redirected to the - * java.com JRE installation page, and (if possible) a redirect back to - * the current URL upon successful installation. The return redirect is - * not always possible, as the JRE installation may require the browser to - * be restarted. - * - * installCallback is an optional argument which holds a reference - * to a javascript callback function for reporting install status. - * - * In the best case (when the Deployment Toolkit plugin is present), this - * function will immediately cause a progress dialog to be displayed - * as the JRE is downloaded and installed. - */ - installLatestJRE: function(installCallback) { - if (this.isPluginInstalled() && this.isAutoInstallEnabled()) { - var installSucceeded = false; - if (this.isCallbackSupported()) { - installSucceeded = this.getPlugin().installLatestJRE(installCallback); - } else { - installSucceeded = this.getPlugin().installLatestJRE(); - } - if (installSucceeded) { - this.refresh(); - if (this.returnPage != null) { - document.location = this.returnPage; - } - } - return installSucceeded; - } else { - var browser = this.getBrowser(); - var platform = navigator.platform.toLowerCase(); - if ((this.EAInstallEnabled == 'true') && - (platform.indexOf('win') != -1) && - (this.EarlyAccessURL != null)) { - - this.preInstallJREList = this.getJREs(); - if (this.returnPage != null) { - this.myInterval = - setInterval("deployJava.poll()", 3000); - } - - location.href = this.EarlyAccessURL; - - // we have to return false although there may be an install - // in progress now, when complete it may go to return page - return false; - } else { - if (browser == 'MSIE') { - return this.IEInstall(); - } else if ((browser == 'Netscape Family') && - (platform.indexOf('win32') != -1)) { - return this.FFInstall(); - } else { - location.href = constructGetJavaURL( - ((this.returnPage != null) ? - ('&returnPage=' + this.returnPage) : '') + - ((this.locale != null) ? - ('&locale=' + this.locale) : '') + - ((this.brand != null) ? - ('&brand=' + this.brand) : '')); - } - // we have to return false although there may be an install - // in progress now, when complete it may go to return page - return false; - } - } - }, - - - /** - * Ensures that an appropriate JRE is installed and then runs an applet. - * minimumVersion is of the form #[.#[.#[_#]]], and is the minimum - * JRE version necessary to run this applet. minimumVersion is optional, - * defaulting to the value "1.1" (which matches any JRE). - * If an equal or greater JRE is detected, runApplet() will call - * writeAppletTag(attributes, parameters) to output the applet tag, - * otherwise it will call installJRE(minimumVersion + '+'). - * - * After installJRE() is called, the script will attempt to detect that the - * JRE installation has completed and begin running the applet, but there - * are circumstances (such as when the JRE installation requires a browser - * restart) when this cannot be fulfilled. - * - * As with writeAppletTag(), this function should only be called prior to - * the web page being completely rendered. Note that version wildcards - * (star (*) and plus (+)) are not supported, and including them in the - * minimumVersion will result in an error message. - */ - runApplet: function(attributes, parameters, minimumVersion) { - if (minimumVersion == 'undefined' || minimumVersion == null) { - minimumVersion = '1.1'; - } - - var regex = "^(\\d+)(?:\\.(\\d+)(?:\\.(\\d+)(?:_(\\d+))?)?)?$"; - - var matchData = minimumVersion.match(regex); - - if (this.returnPage == null) { - // if there is an install, come back here and run the applet - this.returnPage = document.location; - } - - if (matchData != null) { - var browser = this.getBrowser(); - if (browser != '?') { - if (this.versionCheck(minimumVersion + '+')) { - this.writeAppletTag(attributes, parameters); - } else if (this.installJRE(minimumVersion + '+')) { - // after successful install we need to refresh page to pick - // pick up new plugin - this.refresh(); - location.href = document.location; - this.writeAppletTag(attributes, parameters); - } - } else { - // for unknown or Safari - just try to show applet - this.writeAppletTag(attributes, parameters); - } - } else { - log('[runApplet()] Invalid minimumVersion argument to runApplet():' + - minimumVersion); - } - }, - - - /** - * Outputs an applet tag with the specified attributes and parameters, where - * both attributes and parameters are associative arrays. Each key/value - * pair in attributes becomes an attribute of the applet tag itself, while - * key/value pairs in parameters become tags. No version checking - * or other special behaviors are performed; the tag is simply written to - * the page using document.writeln(). - * - * As document.writeln() is generally only safe to use while the page is - * being rendered, you should never call this function after the page - * has been completed. - */ - writeAppletTag: function(attributes, parameters) { - var startApplet = '<' + 'applet '; - var params = ''; - var endApplet = '<' + '/' + 'applet' + '>'; - var addCodeAttribute = true; - - if (null == parameters || typeof parameters != 'object') { - parameters = new Object(); - } - - for (var attribute in attributes) { - if (! isValidAppletAttr(attribute)) { - parameters[attribute] = attributes[attribute]; - } else { - startApplet += (' ' +attribute+ '="' +attributes[attribute] + '"'); - if (attribute == 'code') { - addCodeAttribute = false; - } - } - } - - var codebaseParam = false; - for (var parameter in parameters) { - if (parameter == 'codebase_lookup') { - codebaseParam = true; - } - // Originally, parameter 'object' was used for serialized - // applets, later, to avoid confusion with object tag in IE - // the 'java_object' was added. Plugin supports both. - if (parameter == 'object' || parameter == 'java_object' || - parameter == 'java_code' ) { - addCodeAttribute = false; - } - params += ''; - } - if (!codebaseParam) { - params += ''; - } - - if (addCodeAttribute) { - startApplet += (' code="dummy"'); - } - startApplet += '>'; - - document.write(startApplet + '\n' + params + '\n' + endApplet); - }, - - - /** - * Returns true if there is a matching JRE version currently installed - * (among those detected by getJREs()). The versionPattern string is - * of the form #[.#[.#[_#]]][+|*], which includes strings such as "1.4", - * "1.5.0*", and "1.6.0_02+". - * A star (*) means "any version within this family" and a plus (+) means - * "any version greater or equal to the specified version". "1.5.0*" - * matches 1.5.0_06 but not 1.6.0_01, whereas "1.5.0+" matches both. - * - * If the versionPattern does not include all four version components - * but does not end with a star or plus, it will be treated as if it - * ended with a star. "1.5" is exactly equivalent to "1.5*", and will - * match any version number beginning with "1.5". - * - * If getJREs() is unable to detect the precise version number, a match - * could be ambiguous. For example if getJREs() detects "1.5", there is - * no way to know whether the JRE matches "1.5.0_06+". versionCheck() - * compares only as much of the version information as could be detected, - * so versionCheck("1.5.0_06+") would return true in in this case. - * - * Invalid versionPattern will result in a JavaScript error alert. - * versionPatterns which are valid but do not match any existing JRE - * release (e.g. "32.65+") will always return false. - */ - versionCheck: function(versionPattern) - { - var index = 0; - var regex = "^(\\d+)(?:\\.(\\d+)(?:\\.(\\d+)(?:_(\\d+))?)?)?(\\*|\\+)?$"; - - var matchData = versionPattern.match(regex); - - if (matchData != null) { - // default is exact version match - // examples: - // local machine has 1.7.0_04 only installed - // exact match request is "1.7.0_05": return false - // family match request is "1.7.0*": return true - // minimum match request is "1.6+": return true - var familyMatch = false; - var minMatch = false; - - var patternArray = new Array(); - - for (var i = 1; i < matchData.length; ++i) { - // browser dependency here. - // Fx sets 'undefined', IE sets '' string for unmatched groups - if ((typeof matchData[i] == 'string') && (matchData[i] != '')) { - patternArray[index] = matchData[i]; - index++; - } - } - - if (patternArray[patternArray.length-1] == '+') { - // + specified in request - doing a minimum match - minMatch = true; - familyMatch = false; - patternArray.length--; - } else if (patternArray[patternArray.length-1] == '*') { - // * specified in request - doing a family match - minMatch = false; - familyMatch = true; - patternArray.length--; - } else if (patternArray.length < 4) { - // versionPattern does not include all four version components - // and does not end with a star or plus, it will be treated as - // if it ended with a star. (family match) - minMatch = false; - familyMatch = true; - } - - var list = this.getJREs(); - for (var i = 0; i < list.length; ++i) { - if (this.compareVersionToPattern(list[i], patternArray, - familyMatch, minMatch)) { - return true; - } - } - - return false; - } else { - var msg = 'Invalid versionPattern passed to versionCheck: ' + - versionPattern; - log('[versionCheck()] ' + msg); - alert(msg); - return false; - } - }, - - - /** - * Returns true if an installation of Java Web Start of the specified - * minimumVersion can be detected. minimumVersion is optional, and - * if not specified, '1.4.2' will be used. - * (Versions earlier than 1.4.2 may not be detected.) - */ - isWebStartInstalled: function(minimumVersion) { - - var browser = this.getBrowser(); - if (browser == '?') { - // we really don't know - better to try to use it than reinstall - return true; - } - - if (minimumVersion == 'undefined' || minimumVersion == null) { - minimumVersion = '1.4.2'; - } - - var retval = false; - var regex = "^(\\d+)(?:\\.(\\d+)(?:\\.(\\d+)(?:_(\\d+))?)?)?$"; - var matchData = minimumVersion.match(regex); - - if (matchData != null) { - retval = this.versionCheck(minimumVersion + '+'); - } else { - log('[isWebStartInstaller()] Invalid minimumVersion argument to isWebStartInstalled(): ' + minimumVersion); - retval = this.versionCheck('1.4.2+'); - } - return retval; - }, - - // obtain JPI version using navigator.mimeTypes array - // if found, set the version to this.firefoxJavaVersion - getJPIVersionUsingMimeType: function() { - // Walk through the full list of mime types. - for (var i = 0; i < navigator.mimeTypes.length; ++i) { - var s = navigator.mimeTypes[i].type; - // The jpi-version is the plug-in version. This is the best - // version to use. - var m = s.match(/^application\/x-java-applet;jpi-version=(.*)$/); - if (m != null) { - this.firefoxJavaVersion = m[1]; - // Opera puts the latest sun JRE last not first - if ('Opera' != this.browserName2) { - break; - } - } - } - }, - - // launch the specified JNLP application using the passed in jnlp file - // the jnlp file does not need to have a codebase - // this requires JRE 7 or above to work - // if machine has no JRE 7 or above, we will try to auto-install and then launch - // (function will return false if JRE auto-install failed) - launchWebStartApplication: function(jnlp) { - var uaString = navigator.userAgent.toLowerCase(); - - this.getJPIVersionUsingMimeType(); - - // make sure we are JRE 7 or above - if (this.isWebStartInstalled('1.7.0') == false) { - - // perform latest JRE auto-install - if ((this.installJRE('1.7.0+') == false) || - ((this.isWebStartInstalled('1.7.0') == false))) { - return false; - } - } - - var jnlpDocbase = null; - - // use document.documentURI for docbase - if (document.documentURI) { - jnlpDocbase = document.documentURI; - } - - // fallback to document.URL if documentURI not available - if (jnlpDocbase == null) { - jnlpDocbase = document.URL; - } - - var browser = this.getBrowser(); - - var launchTag; - - if (browser == 'MSIE') { - - launchTag = '<' + - 'object classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" ' + - 'width="0" height="0">' + - '<' + 'PARAM name="launchjnlp" value="' + jnlp + '"' + '>' + - '<' + 'PARAM name="docbase" value="' + jnlpDocbase + '"' + '>' + - '<' + '/' + 'object' + '>'; - } else if (browser == 'Netscape Family') { - - launchTag = '<' + - 'embed type="application/x-java-applet;jpi-version=' + - this.firefoxJavaVersion + '" ' + - 'width="0" height="0" ' + - 'launchjnlp="' + jnlp + '"' + - 'docbase="' + jnlpDocbase + '"' + - ' />'; - } - - if (document.body == 'undefined' || document.body == null) { - document.write(launchTag); - // go back to original page, otherwise current page becomes blank - document.location = jnlpDocbase; - } else { - var divTag = document.createElement("div"); - divTag.id = "div1"; - divTag.style.position = "relative"; - divTag.style.left = "-10000px"; - divTag.style.margin = "0px auto"; - divTag.className ="dynamicDiv"; - divTag.innerHTML = launchTag; - document.body.appendChild(divTag); - } - }, - - createWebStartLaunchButtonEx: function(jnlp, minimumVersion) { - - if (this.returnPage == null) { - // if there is an install, come back and run the jnlp file - this.returnPage = jnlp; - } - - var url = 'javascript:deployJava.launchWebStartApplication(\'' + jnlp + - '\');'; - - document.write('<' + 'a href="' + url + - '" onMouseOver="window.status=\'\'; ' + - 'return true;"><' + 'img ' + - 'src="' + this.launchButtonPNG + '" ' + - 'border="0" /><' + '/' + 'a' + '>'); - }, - - - /** - * Outputs a launch button for the specified JNLP URL. When clicked, the - * button will ensure that an appropriate JRE is installed and then launch - * the JNLP application. minimumVersion is of the form #[.#[.#[_#]]], and - * is the minimum JRE version necessary to run this JNLP application. - * minimumVersion is optional, and if it is not specified, '1.4.2' - * will be used. - * If an appropriate JRE or Web Start installation is detected, - * the JNLP application will be launched, otherwise installLatestJRE() - * will be called. - * - * After installLatestJRE() is called, the script will attempt to detect - * that the JRE installation has completed and launch the JNLP application, - * but there are circumstances (such as when the JRE installation - * requires a browser restart) when this cannot be fulfilled. - */ - createWebStartLaunchButton: function(jnlp, minimumVersion) { - - if (this.returnPage == null) { - // if there is an install, come back and run the jnlp file - this.returnPage = jnlp; - } - - var url = 'javascript:' + - 'if (!deployJava.isWebStartInstalled("' + - minimumVersion + '")) {' + - 'if (deployJava.installLatestJRE()) {' + - 'if (deployJava.launch("' + jnlp + '")) {}' + - '}' + - '} else {' + - 'if (deployJava.launch("' + jnlp + '")) {}' + - '}'; - - document.write('<' + 'a href="' + url + - '" onMouseOver="window.status=\'\'; ' + - 'return true;"><' + 'img ' + - 'src="' + this.launchButtonPNG + '" ' + - 'border="0" /><' + '/' + 'a' + '>'); - }, - - - /** - * Launch a JNLP application, (using the plugin if available) - */ - launch: function(jnlp) { - /* - * Using the plugin to launch Java Web Start is disabled for the time being - */ - document.location=jnlp; - return true; - }, - - - /* - * returns true if the ActiveX or XPI plugin is installed - */ - isPluginInstalled: function() { - var plugin = this.getPlugin(); - if (plugin && plugin.jvms) { - return true; - } else { - return false; - } - }, - - /* - * returns true if the plugin is installed and AutoUpdate is enabled - */ - isAutoUpdateEnabled: function() { - if (this.isPluginInstalled()) { - return this.getPlugin().isAutoUpdateEnabled(); - } - return false; - }, - - /* - * sets AutoUpdate on if plugin is installed - */ - setAutoUpdateEnabled: function() { - if (this.isPluginInstalled()) { - return this.getPlugin().setAutoUpdateEnabled(); - } - return false; - }, - - /* - * sets the preferred install type : null, online, kernel - */ - setInstallerType: function(type) { - this.installType = type; - if (this.isPluginInstalled()) { - return this.getPlugin().setInstallerType(type); - } - return false; - }, - - /* - * sets additional package list - to be used by kernel installer - */ - setAdditionalPackages: function(packageList) { - if (this.isPluginInstalled()) { - return this.getPlugin().setAdditionalPackages( - packageList); - } - return false; - }, - - /* - * sets preference to install Early Access versions if available - */ - setEarlyAccess: function(enabled) { - this.EAInstallEnabled = enabled; - }, - - /* - * Determines if the next generation plugin (Plugin II) is default - */ - isPlugin2: function() { - if (this.isPluginInstalled()) { - if (this.versionCheck('1.6.0_10+')) { - try { - return this.getPlugin().isPlugin2(); - } catch (err) { - // older plugin w/o isPlugin2() function - - } - } - } - return false; - }, - - //support native DT plugin? - allowPlugin: function() { - this.getBrowser(); - - // Safari and Opera browsers find the plugin but it - // doesn't work, so until we can get it to work - don't use it. - var ret = ('Safari' != this.browserName2 && - 'Opera' != this.browserName2); - - return ret; - }, - - getPlugin: function() { - this.refresh(); - - var ret = null; - if (this.allowPlugin()) { - ret = document.getElementById('deployJavaPlugin'); - } - return ret; - }, - - compareVersionToPattern: function(version, patternArray, - familyMatch, minMatch) { - if (version == undefined || patternArray == undefined) { - return false; - } - var regex = "^(\\d+)(?:\\.(\\d+)(?:\\.(\\d+)(?:_(\\d+))?)?)?$"; - var matchData = version.match(regex); - - if (matchData != null) { - var index = 0; - var result = new Array(); - - for (var i = 1; i < matchData.length; ++i) { - if ((typeof matchData[i] == 'string') && (matchData[i] != '')) - { - result[index] = matchData[i]; - index++; - } - } - - var l = Math.min(result.length, patternArray.length); - - // result contains what is installed in local machine - // patternArray is what is being requested by application - if (minMatch) { - // minimum version match, return true if what we have (installed) - // is greater or equal to what is requested. false otherwise. - for (var i = 0; i < l; ++i) { - if (result[i] < patternArray[i]) { - return false; - } else if (result[i] > patternArray[i]) { - return true; - } - } - return true; - } else { - for (var i = 0; i < l; ++i) { - if (result[i] != patternArray[i]) return false; - } - if (familyMatch) { - // family match - return true as long as what we have - // (installed) matches up to the request pattern - return true; - } else { - // exact match - // result and patternArray needs to have exact same content - return (result.length == patternArray.length); - } - } - } else { - return false; - } - }, - - getBrowser: function() { - - if (this.browserName == null) { - var browser = navigator.userAgent.toLowerCase(); - - log('[getBrowser()] navigator.userAgent.toLowerCase() -> ' + browser); - - - // order is important here. Safari userAgent contains mozilla, - // IE 11 userAgent contains mozilla and netscape, - // and Chrome userAgent contains both mozilla and safari. - if ((browser.indexOf('msie') != -1) && (browser.indexOf('opera') == -1)) { - this.browserName = 'MSIE'; - this.browserName2 = 'MSIE'; - } else if (browser.indexOf('trident') != -1 || browser.indexOf('Trident') != -1) { - this.browserName = 'MSIE'; - this.browserName2 = 'MSIE'; - } else if (browser.indexOf('iphone') != -1) { - // this included both iPhone and iPad - this.browserName = 'Netscape Family'; - this.browserName2 = 'iPhone'; - } else if ((browser.indexOf('firefox') != -1) && (browser.indexOf('opera') == -1)) { - this.browserName = 'Netscape Family'; - this.browserName2 = 'Firefox'; - } else if (browser.indexOf('chrome') != -1) { - this.browserName = 'Netscape Family'; - this.browserName2 = 'Chrome'; - } else if (browser.indexOf('safari') != -1) { - this.browserName = 'Netscape Family'; - this.browserName2 = 'Safari'; - } else if ((browser.indexOf('mozilla') != -1) && (browser.indexOf('opera') == -1)) { - this.browserName = 'Netscape Family'; - this.browserName2 = 'Other'; - } else if (browser.indexOf('opera') != -1) { - this.browserName = 'Netscape Family'; - this.browserName2 = 'Opera'; - } else { - this.browserName = '?'; - this.browserName2 = 'unknown'; - } - - log('[getBrowser()] Detected browser name:'+ this.browserName + - ', ' + this.browserName2); - } - return this.browserName; - }, - - - testUsingActiveX: function(version) { - var objectName = 'JavaWebStart.isInstalled.' + version + '.0'; - - // we need the typeof check here for this to run on FF/Chrome - // the check needs to be in place here - cannot even pass ActiveXObject - // as arg to another function - if (typeof ActiveXObject == 'undefined' || !ActiveXObject) { - log('[testUsingActiveX()] Browser claims to be IE, but no ActiveXObject object?'); - return false; - } - - try { - return (new ActiveXObject(objectName) != null); - } catch (exception) { - return false; - } - }, - - - testForMSVM: function() { - var clsid = '{08B0E5C0-4FCB-11CF-AAA5-00401C608500}'; - - if (typeof oClientCaps != 'undefined') { - var v = oClientCaps.getComponentVersion(clsid, "ComponentID"); - if ((v == '') || (v == '5,0,5000,0')) { - return false; - } else { - return true; - } - } else { - return false; - } - }, - - - testUsingMimeTypes: function(version) { - if (!navigator.mimeTypes) { - log ('[testUsingMimeTypes()] Browser claims to be Netscape family, but no mimeTypes[] array?'); - return false; - } - - for (var i = 0; i < navigator.mimeTypes.length; ++i) { - s = navigator.mimeTypes[i].type; - var m = s.match(/^application\/x-java-applet\x3Bversion=(1\.8|1\.7|1\.6|1\.5|1\.4\.2)$/); - if (m != null) { - if (this.compareVersions(m[1], version)) { - return true; - } - } - } - return false; - }, - - testUsingPluginsArray: function(version) { - if ((!navigator.plugins) || (!navigator.plugins.length)) { - return false; - } - var platform = navigator.platform.toLowerCase(); - - for (var i = 0; i < navigator.plugins.length; ++i) { - s = navigator.plugins[i].description; - if (s.search(/^Java Switchable Plug-in (Cocoa)/) != -1) { - // Safari on MAC - if (this.compareVersions("1.5.0", version)) { - return true; - } - } else if (s.search(/^Java/) != -1) { - if (platform.indexOf('win') != -1) { - // still can't tell - opera, safari on windows - // return true for 1.5.0 and 1.6.0 - if (this.compareVersions("1.5.0", version) || - this.compareVersions("1.6.0", version)) { - return true; - } - } - } - } - // if above dosn't work on Apple or Windows, just allow 1.5.0 - if (this.compareVersions("1.5.0", version)) { - return true; - } - return false; - - - - }, - - IEInstall: function() { - - location.href = constructGetJavaURL( - ((this.returnPage != null) ? - ('&returnPage=' + this.returnPage) : '') + - ((this.locale != null) ? - ('&locale=' + this.locale) : '') + - ((this.brand != null) ? ('&brand=' + this.brand) : '')); - - // should not actually get here - return false; - }, - - done: function (name, result) { - }, - - FFInstall: function() { - - location.href = constructGetJavaURL( - ((this.returnPage != null) ? - ('&returnPage=' + this.returnPage) : '') + - ((this.locale != null) ? - ('&locale=' + this.locale) : '') + - ((this.brand != null) ? ('&brand=' + this.brand) : '') + - ((this.installType != null) ? - ('&type=' + this.installType) : '')); - - // should not actually get here - return false; - }, - - // return true if 'installed' (considered as a JRE version string) is - // greater than or equal to 'required' (again, a JRE version string). - compareVersions: function(installed, required) { - - var a = installed.split('.'); - var b = required.split('.'); - - for (var i = 0; i < a.length; ++i) { - a[i] = Number(a[i]); - } - for (var i = 0; i < b.length; ++i) { - b[i] = Number(b[i]); - } - if (a.length == 2) { - a[2] = 0; - } - - if (a[0] > b[0]) return true; - if (a[0] < b[0]) return false; - - if (a[1] > b[1]) return true; - if (a[1] < b[1]) return false; - - if (a[2] > b[2]) return true; - if (a[2] < b[2]) return false; - - return true; - }, - - enableAlerts: function() { - // reset this so we can show the browser detection - this.browserName = null; - this.debug = true; - }, - - poll: function() { - - this.refresh(); - var postInstallJREList = this.getJREs(); - - if ((this.preInstallJREList.length == 0) && - (postInstallJREList.length != 0)) { - clearInterval(this.myInterval); - if (this.returnPage != null) { - location.href = this.returnPage; - }; - } - - if ((this.preInstallJREList.length != 0) && - (postInstallJREList.length != 0) && - (this.preInstallJREList[0] != postInstallJREList[0])) { - clearInterval(this.myInterval); - if (this.returnPage != null) { - location.href = this.returnPage; - } - } - - }, - - writePluginTag: function() { - var browser = this.getBrowser(); - - if (browser == 'MSIE') { - document.write('<' + - 'object classid="clsid:CAFEEFAC-DEC7-0000-0001-ABCDEFFEDCBA" ' + - 'id="deployJavaPlugin" width="0" height="0">' + - '<' + '/' + 'object' + '>'); - } else if (browser == 'Netscape Family' && this.allowPlugin()) { - this.writeEmbedTag(); - } - }, - - refresh: function() { - navigator.plugins.refresh(false); - - var browser = this.getBrowser(); - if (browser == 'Netscape Family' && this.allowPlugin()) { - var plugin = document.getElementById('deployJavaPlugin'); - // only do this again if no plugin - if (plugin == null) { - this.writeEmbedTag(); - } - } - }, - - writeEmbedTag: function() { - var written = false; - if (navigator.mimeTypes != null) { - for (var i=0; i < navigator.mimeTypes.length; i++) { - if (navigator.mimeTypes[i].type == this.mimeType) { - if (navigator.mimeTypes[i].enabledPlugin) { - document.write('<' + - 'embed id="deployJavaPlugin" type="' + - this.mimeType + '" hidden="true" />'); - written = true; - } - } - } - // if we ddn't find new mimeType, look for old mimeType - if (!written) for (var i=0; i < navigator.mimeTypes.length; i++) { - if (navigator.mimeTypes[i].type == this.oldMimeType) { - if (navigator.mimeTypes[i].enabledPlugin) { - document.write('<' + - 'embed id="deployJavaPlugin" type="' + - this.oldMimeType + '" hidden="true" />'); - } - } - } - } - } - }; // deployJava object - - rv.writePluginTag(); - if (rv.locale == null) { - var loc = null; - - if (loc == null) try { - loc = navigator.userLanguage; - } catch (err) { } - - if (loc == null) try { - loc = navigator.systemLanguage; - } catch (err) { } - - if (loc == null) try { - loc = navigator.language; - } catch (err) { } - - if (loc != null) { - loc.replace("-","_"); - rv.locale = loc; - } - } - - return rv; -}(); diff --git a/website/assets/js/script.js b/website/assets/js/script.js deleted file mode 100644 index f433de0..0000000 --- a/website/assets/js/script.js +++ /dev/null @@ -1,46 +0,0 @@ -// Using deployJava.runApplet to target specific element -// from http://stackoverflow.com/questions/13517790/using-deployjava-runapplet-to-target-specific-element?answertab=active#answer-15139480 -function writeTo(func, node) { - var content = ""; - var oldwrite = document.write; - document.write = function(add) { - content += add; - }; - func(); - document.write = oldwrite; - node.innerHTML += content; -} - -function launchApplet() { - var attributes = { - code : "esieequest.Main", - archive : "/game/esieequest.jar" - }; - var parameters = { - //permissions : "sandbox" - }; - var version = "1.7"; - deployJava.runApplet(attributes, parameters, version); -} - -function launchGame() { - var wrapper = document.getElementById("play"); - if (deployJava.versionCheck("1.7+")) { - writeTo(launchApplet, wrapper); - } else { - wrapper.innerHTML = '

Java ≥7 is required to run this game.
Click here to get the latest Java Runtime Environment.

'; - } -} - -// Run the applet only when the user wants to play -// https://developer.mozilla.org/en-US/docs/Web/API/window.onhashchange -var launched = false; -function locationHashChanged() { - if (location.hash === "#play" && !launched) { - launched = true; - launchGame(); - } -} - -window.onhashchange = locationHashChanged; -locationHashChanged(); -- cgit v1.2.3