diff options
Diffstat (limited to 'BKUOnline/src/main/webapp/js')
-rw-r--r-- | BKUOnline/src/main/webapp/js/deployJava_orig.js | 725 |
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'&¶meters!=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("'+ + 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="'+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(); + |