var WM_startTagFix = ''); document.writeln('\'This will scan for plugins for all versions of Internet Explorer that have a VBscript engine version 2 or greater.'); document.writeln('\'This includes all versions of IE4 and beyond and some versions of IE 3.'); document.writeln('Dim WM_detect_through_vb'); document.writeln('WM_detect_through_vb = 0'); document.writeln('If ScriptEngineMajorVersion >= 2 then'); document.writeln(' WM_detect_through_vb = 1'); document.writeln('End If'); document.writeln('Function WM_activeXDetect(activeXname)'); document.writeln(' on error resume next'); document.writeln(' If ScriptEngineMajorVersion >= 2 then'); document.writeln(' WM_activeXDetect = False'); document.writeln(' WM_activeXDetect = IsObject(CreateObject(activeXname))'); document.writeln(' If (err) then'); document.writeln(' WM_activeXDetect = False'); document.writeln(' End If'); document.writeln(' Else'); document.writeln(' WM_activeXDetect = False'); document.writeln(' End If'); document.writeln('End Function'); document.writeln(WM_startTagFix+'script>'); } function WM_pluginDetect(plugindescription, pluginxtension, pluginmime, activeXname){ //This script block will test all user agents that have a real plug-in array //(i.e. Netscape) and set the variables, otherwise it directs the routine // to WM_activeXDetect to detect the activeX control. // First define some variables var i,plugin_undetectable=0,detected=0, daPlugin=new Object(); // Then we check to see if it's an MSIE browser that you can actually // check for the plugin in question. if (msie_windows && WM_detect_through_vb){ plugin_undetectable = 0; } else { plugin_undetectable = 1; } // If it has a real plugins or mimetypes array, we look there for the plugin first if(navigator.plugins) { numPlugins = navigator.plugins.length; if (numPlugins > 1) { if (navigator.mimeTypes && navigator.mimeTypes[pluginmime] && navigator.mimeTypes[pluginmime].enabledPlugin && (navigator.mimeTypes[pluginmime].suffixes.indexOf(pluginxtension) != -1)) { // seems like we have it, let's just make sure and check the version (if specified) if ((navigator.appName == 'Netscape') && (navigator.appVersion.indexOf('4.0') != -1)) { // stupid, stupid Netscape can't handle the references to navigator.plugins by number, sooo... for(i in navigator.plugins) { if ((navigator.plugins[i].description.indexOf(plugindescription) != -1) || (i.indexOf(plugindescription) != -1)) { // some versions of quicktime have no description. feh! detected=1; break; } } } else { for (i = 0; i < numPlugins; i++) { daPlugin = navigator.plugins[i]; if ((daPlugin.description.indexOf(plugindescription) != -1) || (daPlugin.name.indexOf(plugindescription) != -1)) { detected=1; break; } } } // Mac weirdness if (navigator.mimeTypes[pluginmime] == null) { detected = 0; } } return detected; } else if((msie_windows == 1) && !plugin_undetectable){ return WM_activeXDetect(activeXname); } else { return 0; } } else { return 0; } } // this next function just makes it easy to detect the common plugins function WM_easyDetect(whichPlugin) { // this function just makes it easy to do basic plug-in detection without // knowing all the mimetypes and activeX names and such var isItThere = 0; if( (whichPlugin == 'flash') || (whichPlugin == 'Flash') ) { isItThere = WM_pluginDetect('Flash', 'swf', 'application/x-shockwave-flash', 'ShockwaveFlash.ShockwaveFlash'); } else if( (whichPlugin == 'director') || (whichPlugin == 'Director') ) { isItThere = WM_pluginDetect('Shockwave', 'dcr', 'application/x-director', 'SWCtl.SWCtl.1'); } else if( (whichPlugin == 'quicktime') || (whichPlugin == 'Quicktime') || (whichPlugin == 'QuickTime') ) { isItThere = WM_pluginDetect('QuickTime', 'mov', 'video/quicktime', ''); } else if( (whichPlugin == 'realaudio') || (whichPlugin == 'Realaudio') || (whichPlugin == 'RealAudio') ) { isItThere = (WM_pluginDetect('RealPlayer', 'rpm', 'audio/x-pn-realaudio-plugin', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)')) || (WM_pluginDetect('RealPlayer', 'rpm', 'audio/x-pn-realaudio-plugin','rmocx.RealPlayer G2 Control')) || (WM_pluginDetect('RealPlayer', 'rpm', 'audio/x-pn-realaudio-plugin','RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)')) || (WM_pluginDetect('RealPlayer', 'rpm', 'audio/x-pn-realaudio-plugin','RealVideo.RealVideo(tm) ActiveX Control (32-bit)')) } else { alert('You need to tell me which plug-in to look for, like so:\n\n' + ' WM_easyDetect(\'flash\')\n\n' + ' WM_easyDetect(\'director\')\n\n' + ' WM_easyDetect(\'quicktime\')\n\n' + ' WM_easyDetect(\'realaudio\')'); } return isItThere; } function openWindow(documentName) { window.open(documentName, "topkapi", "width=370,height=350,center,toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0,copyhistory=0"); } function detectBrowser() { var agt=navigator.userAgent.toLowerCase(); // *** BROWSER VERSION *** // Note: On IE5, these return 4, so use is_ie5up to detect IE5. var is_major = parseInt(navigator.appVersion); var is_minor = parseFloat(navigator.appVersion); // Note: Opera and WebTV spoof Navigator. We do strict client detection. // If you want to allow spoofing, take out the tests for opera and webtv. var is_nav = ((agt.indexOf('mozilla')!=-1) && (agt.indexOf('spoofer')==-1) && (agt.indexOf('compatible') == -1) && (agt.indexOf('opera')==-1) && (agt.indexOf('webtv')==-1) && (agt.indexOf('hotjava')==-1)); var is_nav2 = (is_nav && (is_major == 2)); var is_nav3 = (is_nav && (is_major == 3)); var is_nav4 = (is_nav && (is_major == 4)); var is_nav4up = (is_nav && (is_major >= 4)); var is_navonly = (is_nav && ((agt.indexOf(";nav") != -1) || (agt.indexOf("; nav") != -1)) ); var is_nav6 = (is_nav && (is_major == 5)); var is_nav6up = (is_nav && (is_major >= 5)); var is_gecko = (agt.indexOf('gecko') != -1); var is_ie = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1)); var is_ie3 = (is_ie && (is_major < 4)); var is_ie4 = (is_ie && (is_major == 4) && (agt.indexOf("msie 4")!=-1) ); var is_ie4up = (is_ie && (is_major >= 4)); var is_ie5 = (is_ie && (is_major == 4) && (agt.indexOf("msie 5.0")!=-1) ); var is_ie5_5 = (is_ie && (is_major == 4) && (agt.indexOf("msie 5.5") !=-1)); var is_ie5up = (is_ie && !is_ie3 && !is_ie4); var is_ie5_5up =(is_ie && !is_ie3 && !is_ie4 && !is_ie5); var is_ie6 = (is_ie && (is_major == 4) && (agt.indexOf("msie 6.")!=-1) ); var is_ie6up = (is_ie && !is_ie3 && !is_ie4 && !is_ie5 && !is_ie5_5); if (is_ie5_5up==true) { if(!WM_pluginDetect('', 'cpc','','cpcviewax.cpcviewaxctrl.1')) openWindow("http://www.recht.makrolog.de/bgblplus/navigation.nsf/web/iequestion.html"); } } // Retrieve the value of a specific CPC parameter function paramGet(plist, name) { /* We iterate over each parameter in the string. On each iteration, @Var(i) is the index of the next @Bold(param)=@Italic(value) entry in the string. */ var i=0; while(i= 0) { thisVal = thisName.substring(sep+1, thisName.length); thisName = thisName.substring(0, sep); } /* If this is the desired name, return its value. */ if(thisName.toUpperCase() == name.toUpperCase()) { return thisVal; } /* Move to the next entry. */ i = end+1; } return null; } function cpcDim(desc) { this.length = 2; if(desc == null) { this.width = this.height = 0; } else { var sep = desc.indexOf(","); this.width = desc.substring(0, sep); this.height = desc.substring(sep+1); } } function cpcEvent(ev) { var sep = ev.indexOf(":", 0); if(sep<0) { sep = ev.length; } this.length = 2; this.type = ev.substring(0, sep); this.params = ev.substring(sep+1, ev.length); } function cpcRev(desc) { this.length = 3; if(desc == null) { this.major = this.minor = this.respin = 0; } else { var sep = desc.indexOf(","); this.major = desc.substring(0,sep); desc = desc.substring(sep+1); sep = desc.indexOf(","); this.minor = desc.substring(0,sep); this.respin = desc.substring(sep+1); } } function cpcEvent(ev) { var sep = ev.indexOf(":", 0); if(sep<0) { sep = ev.length; } this.length = 2; this.type = ev.substring(0, sep); this.params = ev.substring(sep+1, ev.length); }