summaryrefslogtreecommitdiff
path: root/BKUOnline/src/main/webapp/js/deployJava_orig.js
diff options
context:
space:
mode:
Diffstat (limited to 'BKUOnline/src/main/webapp/js/deployJava_orig.js')
-rw-r--r--BKUOnline/src/main/webapp/js/deployJava_orig.js725
1 files changed, 725 insertions, 0 deletions
diff --git a/BKUOnline/src/main/webapp/js/deployJava_orig.js b/BKUOnline/src/main/webapp/js/deployJava_orig.js
new file mode 100644
index 00000000..316fa278
--- /dev/null
+++ b/BKUOnline/src/main/webapp/js/deployJava_orig.js
@@ -0,0 +1,725 @@
+/*
+ * Copyright (c) 2008 Sun Microsystems, Inc. All rights reserved.
+ *
+ * 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 Sun Microsystems 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.
+ */
+
+/*
+ * Added by EGIZ:
+ * This file contains workarounds to
+ * [#423] Firefox 3.0.11 bug #498132 causes applet loading failure
+ * (lines 95-99)
+ * [#424] Web Start loading via java plugin (Sun deployment script) fails on WinXP/Vista
+ * (lines 501-506)
+ *
+ * features:
+ * [#425] Disable WebStart Launch Button for MacOS
+ * (lines 492-504)
+ *
+ */
+
+/*
+ * 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. Usage guide may be found at http://<TBD>/.
+ *
+ * The "live" copy of this file may be found at
+ * http://java.com/js/deployJava.js.
+ * You are encouraged to link directly to the live copy of the file.
+ *
+ * @version @(#)deployJava.js XXXXX
+ */
+
+var deployJava={
+ debug:null,
+
+ myInterval:null,
+ preInstallJREList:null,
+ returnPage:null,
+ brand:null,
+ locale:null,
+ installType:null,
+
+ EAInstallEnabled:false,
+ EarlyAccessURL:null,
+
+ // GetJava page
+ getJavaURL:'http://java.sun.com/webapps/getjava/BrowserRedirect?host=java.com',
+
+ // Apple redirect page
+ appleRedirectPage:'http://www.apple.com/support/downloads/',
+ oldMimeType:'application/npruntime-scriptable-plugin;DeploymentToolkit',
+ mimeType:'application/java-deployment-toolkit',
+ launchButtonPNG:'http://java.sun.com/products/jfc/tsc/articles/swing2d/webstart.png',
+
+ getJREs:function(){
+ var list=new Array();
+ if(deployJava.isPluginInstalled()){
+ var plugin=deployJava.getPlugin();
+ var VMs=plugin.jvms;
+ for(var i=0;i<VMs.getLength();i++){
+ list[i]=VMs.get(i).version;
+ }
+ }else{
+ var browser=deployJava.getBrowser();
+
+ if(browser=='MSIE'){
+ if(deployJava.testUsingActiveX('1.8.0')){
+ list[0]='1.8.0';
+ }else if(deployJava.testUsingActiveX('1.7.0')){
+ list[0]='1.7.0';
+ }else if(deployJava.testUsingActiveX('1.6.0')){
+ list[0]='1.6.0';
+ }else if(deployJava.testUsingActiveX('1.5.0')){
+ list[0]='1.5.0';
+ }else if(deployJava.testUsingActiveX('1.4.2')){
+ list[0]='1.4.2';
+ }else if(deployJava.testForMSVM()){
+ list[0]='1.1';
+ }
+ }
+ else if(browser=='Netscape Family'){
+ if(deployJava.testUsingMimeTypes('1.8')){
+ list[0]='1.8.0';
+ }else if(deployJava.testUsingMimeTypes('1.7')){
+ list[0]='1.7.0';
+ }else if(deployJava.testUsingMimeTypes('1.6')){
+ list[0]='1.6.0';
+ }else if(deployJava.testUsingMimeTypes('1.5')){
+ list[0]='1.5.0';
+ }else if(deployJava.testUsingMimeTypes('1.4.2')){
+ list[0]='1.4.2';
+ }
+ }else if(browser=='Safari'){
+ if(deployJava.testUsingPluginsArray('1.8.0')){
+ list[0]='1.8.0';
+ }else if(deployJava.testUsingPluginsArray('1.7.0')){
+ list[0]='1.7.0';
+ }else if(deployJava.testUsingPluginsArray('1.6.0')){
+ list[0]='1.6.0';
+ }else if(deployJava.testUsingPluginsArray('1.5.0')){
+ list[0]='1.5.0';
+ }else if(deployJava.testUsingPluginsArray('1.4.2')){
+ list[0]='1.4.2';
+ }
+ }
+ }
+
+ if(deployJava.debug){
+ for(var i=0;i<list.length;++i){
+ alert('We claim to have detected Java SE '+list[i]);
+ }
+ }
+
+ return list;
+ },
+
+ installJRE:function(requestVersion){
+ var ret=false;
+ if(deployJava.isPluginInstalled()){
+ if(deployJava.getPlugin().installJRE(requestVersion)){
+ deployJava.refresh();
+ if(deployJava.returnPage!=null){
+ document.location=deployJava.returnPage;
+ }
+ return true;
+ }else{
+ return false;
+ }
+ }else{
+ return deployJava.installLatestJRE();
+ }
+ },
+
+ installLatestJRE:function(){
+ if(deployJava.isPluginInstalled()){
+ if(deployJava.getPlugin().installLatestJRE()){
+ deployJava.refresh();
+ if(deployJava.returnPage!=null){
+ document.location=deployJava.returnPage;
+ }
+ return true;
+ }else{
+ return false;
+ }
+ }else{
+ var browser=deployJava.getBrowser();
+ var platform=navigator.platform.toLowerCase();
+ if((deployJava.EAInstallEnabled=='true') &&
+ (platform.indexOf('win')!=-1) &&
+ (deployJava.EarlyAccessURL!=null)) {
+
+ deployJava.preInstallJREList=deployJava.getJREs();
+ if(deployJava.returnPage!=null){
+ deployJava.myInterval=
+ setInterval("deployJava.poll()",3000);
+ }
+
+ location.href=deployJava.EarlyAccessURL;
+ return false;
+ }else{
+ if(browser=='MSIE'){
+ return deployJava.IEInstall();
+ }else if((browser=='Netscape Family')&&
+ (platform.indexOf('win32')!=-1)){
+ return deployJava.FFInstall();
+ }else{
+ location.href=deployJava.getJavaURL+
+ ((deployJava.returnPage!=null)?
+ ('&returnPage='+deployJava.returnPage):'')+
+ ((deployJava.locale!=null)?
+ ('&locale='+deployJava.locale):'')+
+ ((deployJava.brand!=null)?
+ ('&brand='+deployJava.brand):'');
+ }
+ return false;
+ }
+ }
+ },
+
+ 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(deployJava.returnPage==null){
+ deployJava.returnPage=document.location;
+ }
+
+ if(matchData!=null){
+ var browser=deployJava.getBrowser();
+ if((browser!='?')&&(browser!='Safari')){
+ if(deployJava.versionCheck(minimumVersion+'+')){
+ deployJava.writeAppletTag(attributes,parameters);
+ }else if(deployJava.installJRE(minimumVersion+'+')){
+ deployJava.refresh();
+ location.href=document.location;
+ deployJava.writeAppletTag(attributes,parameters);
+ }
+ }else{
+ deployJava.writeAppletTag(attributes,parameters);
+ }
+ }else{
+ if(deployJava.debug){
+ alert('Invalid minimumVersion argument to runApplet():'+
+ minimumVersion);
+ }
+ }
+ },
+
+ writeAppletTag:function(attributes,parameters){
+ var s='<'+'applet ';
+ for(var attribute in attributes){
+ s+=(' '+attribute+'="'+attributes[attribute]+'"');
+ }
+ s+='>';
+ document.write(s);
+
+ if(parameters!='undefined'&&parameters!=null){
+ var codebaseParam=false;
+ for(var parameter in parameters){
+ if(parameter=='codebase_lookup'){
+ codebaseParam=true;
+ }
+ s='<param name="'+parameter+'" value="'+
+ parameters[parameter]+'">';
+ document.write(s);
+ }
+ if(!codebaseParam){
+ document.write('<param name="codebase_lookup" value="false">');
+ }
+ }
+ document.write('<'+'/'+'applet'+'>');
+ },
+
+ versionCheck:function(versionPattern)
+
+ {
+ var index=0;
+ var regex="^(\\d+)(?:\\.(\\d+)(?:\\.(\\d+)(?:_(\\d+))?)?)?(\\*|\\+)?$";
+
+ var matchData=versionPattern.match(regex);
+
+ if(matchData!=null){
+ var familyMatch=true;
+
+ var patternArray=new Array();
+
+ for(var i=1;i<matchData.length;++i){
+ if((typeof matchData[i]=='string')&&(matchData[i]!='')){
+ patternArray[index]=matchData[i];
+ index++;
+ }
+ }
+
+ if(patternArray[patternArray.length-1]=='+'){
+ familyMatch=false;
+ patternArray.length--;
+ }else{
+ if(patternArray[patternArray.length-1]=='*'){
+ patternArray.length--;
+ }
+ }
+
+ var list=deployJava.getJREs();
+ for(var i=0;i<list.length;++i){
+ if(deployJava.compareVersionToPattern(list[i],patternArray,
+ familyMatch)){
+ return true;
+ }
+ }
+
+ return false;
+ }else{
+ alert('Invalid versionPattern passed to versionCheck: '+
+ versionPattern);
+ return false;
+ }
+ },
+
+ isWebStartInstalled:function(minimumVersion){
+
+ var browser=deployJava.getBrowser();
+ if((browser=='?')||(browser=='Safari')){
+ 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=deployJava.versionCheck(minimumVersion+'+');
+ }else{
+ if(deployJava.debug){
+ alert('Invalid minimumVersion argument to isWebStartInstalled(): '+minimumVersion);
+ }
+ retval=deployJava.versionCheck('1.4.2+');
+ }
+ return retval;
+ },
+
+ createWebStartLaunchButton:function(jnlp,minimumVersion){
+
+ if(deployJava.returnPage==null){
+ deployJava.returnPage=jnlp;
+ }
+ var url='javascript:'+'if (!deployJava.isWebStartInstalled(&quot;'+
+ minimumVersion+'&quot;)) {'+'if (deployJava.installLatestJRE()) {'+'if (deployJava.launch(&quot;'+jnlp+'&quot;)) {}'+'}'+'} else {'+'if (deployJava.launch(&quot;'+jnlp+'&quot;)) {}'+'}';document.write('<'+'a href="'+url+'" onMouseOver="window.status=\'\'; '+'return true;"><'+'img '+'src="'+deployJava.launchButtonPNG+'" '+'border="0" /><'+'/'+'a'+'>');
+ },
+
+ launch:function(jnlp){
+ if(deployJava.isPluginInstalled()){
+ return deployJava.getPlugin().launch(jnlp);
+ }else{
+ document.location=jnlp;return true;
+ }
+ },
+
+ isPluginInstalled:function(){
+ var plugin=deployJava.getPlugin();
+ if(plugin&&plugin.jvms){
+ return true;
+ }else{
+ return false;
+ }
+ },
+
+ isAutoUpdateEnabled:function(){
+ if(deployJava.isPluginInstalled()){
+ return deployJava.getPlugin().isAutoUpdateEnabled();
+ }
+ return false;
+ },
+
+ setAutoUpdateEnabled:function(){
+ if(deployJava.isPluginInstalled()){
+ return deployJava.getPlugin().setAutoUpdateEnabled();
+ }
+ return false;
+ },
+
+ setInstallerType:function(type){
+ deployJava.installType=type;
+ if(deployJava.isPluginInstalled()){
+ return deployJava.getPlugin().setInstallerType(type);
+ }
+ return false;
+ },
+
+ setAdditionalPackages:function(packageList){
+ if(deployJava.isPluginInstalled()){
+ return deployJava.getPlugin().setAdditionalPackages(
+ packageList);
+ }
+ return false;
+ },
+
+ setEarlyAccess:function(enabled){
+ deployJava.EAInstallEnabled=enabled;
+ },
+
+ isPlugin2:function(){
+ if(deployJava.isPluginInstalled()){
+ if(deployJava.versionCheck('1.6.0_10+')){
+ try{
+ return deployJava.getPlugin().isPlugin2();
+ }catch(err){
+
+ }
+ }
+ }
+ return false;
+ },
+
+
+ getPlugin:function(){
+ deployJava.refresh();
+ var ret=document.getElementById('deployJavaPlugin');
+ return ret;
+ },
+
+ compareVersionToPattern:function(version,patternArray,familyMatch){
+ 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);
+
+ if(familyMatch){
+ for(var i=0;i<l;++i){
+ if(result[i]!=patternArray[i])return false;
+ }
+
+ return true;
+ }else{
+ 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{
+ return false;
+ }
+ },
+
+
+ getBrowser:function(){
+ var browser=navigator.userAgent.toLowerCase();
+
+ if(deployJava.debug){
+ alert('userAgent -> '+browser);
+ }
+
+ if((navigator.vendor)&&
+ (navigator.vendor.toLowerCase().indexOf('apple')!=-1)&&
+ (browser.indexOf('safari')!=-1)){
+ if(deployJava.debug){
+ alert('We claim to have detected "Safari".');
+ }
+ return'Safari';
+ }else if(browser.indexOf('msie')!=-1){
+ if(deployJava.debug){
+ alert('We claim to have detected "IE".');
+ }
+ return'MSIE';
+ }else if((browser.indexOf('mozilla')!=-1)||
+ (browser.indexOf('firefox')!=-1)){
+ if(deployJava.debug){
+ alert('We claim to have detected a Netscape family browser.');
+ }
+ return'Netscape Family';
+ }else{
+ if(deployJava.debug){
+ alert('We claim to have failed to detect a browser.');
+ }
+ return'?';
+ }
+ },
+
+
+ testUsingActiveX:function(version){
+ var objectName='JavaWebStart.isInstalled.'+version+'.0';
+
+ if(!ActiveXObject){
+ if(deployJava.debug){
+ alert('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){
+ if(deployJava.debug){
+ alert('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(deployJava.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){
+ if(deployJava.compareVersions("1.5.0",version)){
+ return true;
+ }
+ }else if(s.search(/^Java/)!=-1){
+ if(platform.indexOf('win')!=-1){
+ if(deployJava.compareVersions("1.5.0",version)||deployJava.compareVersions("1.6.0",version)){
+ return true;
+ }
+ }
+ }
+ }
+ if(deployJava.compareVersions("1.5.0",version)){
+ return true;
+ }
+ return false;
+ },
+
+ IEInstall:function(){
+
+ location.href=deployJava.getJavaURL+
+ ((deployJava.returnPage!=null)?
+ ('&returnPage='+deployJava.returnPage):'')+
+ ((deployJava.locale!=null)?
+ ('&locale='+deployJava.locale):'')+
+ ((deployJava.brand!=null)?('&brand='+deployJava.brand):'')+
+ ((deployJava.installType!=null)?
+ ('&type='+deployJava.installType):'');
+ return false;
+ },
+
+ done:function(name,result){
+ },
+
+ FFInstall:function(){
+
+ location.href=deployJava.getJavaURL+
+ ((deployJava.returnPage!=null)?
+ ('&returnPage='+deployJava.returnPage):'')+
+ ((deployJava.locale!=null)?
+ ('&locale='+deployJava.locale):'')+
+ ((deployJava.brand!=null)?('&brand='+deployJava.brand):'')+
+ ((deployJava.installType!=null)?
+ ('&type='+deployJava.installType):'');
+ return false;
+ },
+
+ 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(){
+ deployJava.debug=true;
+ },
+
+ poll:function(){
+
+ deployJava.refresh();
+ var postInstallJREList=deployJava.getJREs();
+
+ if((deployJava.preInstallJREList.length==0)&&
+ (postInstallJREList.length!=0)){
+ clearInterval(deployJava.myInterval);
+ if(deployJava.returnPage!=null){
+ location.href=deployJava.returnPage;
+ };
+ }
+
+ if((deployJava.preInstallJREList.length!=0)&&
+ (postInstallJREList.length!=0)&&
+ (deployJava.preInstallJREList[0]!=postInstallJREList[0])){
+ clearInterval(deployJava.myInterval);
+ if(deployJava.returnPage!=null){
+ location.href=deployJava.returnPage;
+ }
+ }
+
+ },
+
+ writePluginTag:function(){
+ var browser=deployJava.getBrowser();
+ if(browser=='MSIE'){
+ document.write('<'+
+ 'object classid="clsid:CAFEEFAC-DEC7-0000-0000-ABCDEFFEDCBA" '+
+ 'id="deployJavaPlugin" width="0" height="0">'+
+ '<'+'/'+'object'+'>');
+ }else if(browser=='Netscape Family'){
+ deployJava.writeEmbedTag();
+ }
+ },
+
+ refresh:function(){
+ navigator.plugins.refresh(false);var browser=deployJava.getBrowser();if(browser=='Netscape Family'){
+ var plugin=document.getElementById('deployJavaPlugin');if(plugin==null){
+ deployJava.writeEmbedTag();
+ }
+ }
+ },
+
+ writeEmbedTag:function(){
+ var written=false;if(navigator.mimeTypes!=null){
+ for(var i=0;i<navigator.mimeTypes.length;i++){
+ if(navigator.mimeTypes[i].type==deployJava.mimeType){
+ if(navigator.mimeTypes[i].enabledPlugin){
+ document.write('<'+'embed id="deployJavaPlugin" type="'+
+ deployJava.mimeType+'" hidden="true" />');written=true;
+ }
+ }
+ }
+ if(!written)for(var i=0;i<navigator.mimeTypes.length;i++){
+ if(navigator.mimeTypes[i].type==deployJava.oldMimeType){
+ if(navigator.mimeTypes[i].enabledPlugin){
+ document.write('<'+'embed id="deployJavaPlugin" type="'+
+ deployJava.oldMimeType+'" hidden="true" />');
+ }
+ }
+ }
+ }
+ },
+
+ do_initialize:function(){
+ deployJava.writePluginTag();
+ if(deployJava.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("-","_")
+ deployJava.locale=loc;
+ }
+ }
+ }
+
+ };
+ deployJava.do_initialize();
+