// parasite.js: detect and warn about IE parasites
// release 1.30, 26-Nov-2002
// written by Andrew Clover <and@doxdesk.com>, use freely

// parasite_list: currently known parasites. Entries are in the form
// {classid, name/variant, can, may}. 'can' contains a string of known
// problems with the parasite and 'may' suspected or minor ones.

var parasite_list= new Array(
new Array('FFEEDDCC-BBAA-9988-7766-554433221100','(control)','',''),
new Array('F414C260-6AC0-11CF-B6D1-00AA00BBBB58','(control)','',''),

new Array('06DFEDAA-6196-11D5-BFC8-00508B4A487D','7FaSSt','P',''),
new Array('A4A435CF-3583-11D4-91BD-0048546A1450','ACXInstall','S',''),
new Array('00000012-890E-4AAC-AFD9-EFF6954A34DD','AdBreak','APS',''),
new Array('00000000-D9E3-4BC6-A0BD-3D0CA4BE5271','AdBreak/FHFMM','APS',''),
new Array('765E6B09-6832-4738-BDBE-25F226BA2AB0','AdultLinks/QcBar','',''),
new Array('5C015AA7-3392-4044-90CC-8E95019CFFF1','AdultLinks/LinkZZ','',''),
new Array('910E7499-6311-4843-8EB0-0100A7955A1F','Aornum','A','S'),
new Array('657B9354-BB3B-4500-A9B0-109B4FA64815','ASpam/Amcis','S', ''),
new Array('499DB658-1909-420B-931A-4A8CAEFD232F','ASpam/Drvman','S', ''),
new Array('CE31A1F7-3D90-4874-8FBE-A5D97F8BC8F1','BargainBuddy/Apuc','AS','P'),
new Array('72F81209-6C73-4DE7-A3DC-408A8BD472FB','BargainBuddy/Versn','AS','P'),
new Array('51958169-D5E3-11D1-AA42-0000E842E40A','BDE','S','A'),
new Array('868B015F-3515-44DB-B0AD-182CD058985E','BrowserToolbar','ASPE',''),
new Array('3E8A1971-45A5-45EE-828B-8C78431C0BD4','Bulla','A',''),
new Array('F20AE630-6DE2-43CA-A988-7CD40C36EF0B','CashToolbar','AS',''),
new Array('AB4DD0F0-38DA-4F48-AAFE-7DE7323BB6B2','ClickTheButton','AP',''),
new Array('B83FC273-3522-4CC6-92EC-75CC86678DA4','CnsMin','','E'),
new Array('268CBA84-25AE-4D38-89FE-E7606A6460E3','CometCursor/Shop','AP',''),
new Array('1678F7E1-C422-11D0-AD7D-00400515CAAA','CometCursor/Plus','AP',''),
new Array('AD7FAFB0-16D6-40C3-AF27-585D6E6453FD','Comload','S',''),
new Array('A6475E6B-3C2E-4B1F-82FD-8F1C0B1D8AD0','CommonName/Toolbar','','E'),
new Array('9346A6BB-1ED0-4174-AFB4-13CD4EC0AA40','CommonName','A','PE'),
new Array('3750BFA3-1392-4AF3-AF86-9D2D4776E5A4','Cytron','A',''),
new Array('CEB29DA4-7AFA-4F24-B3CD-17351D590DF0','DialerOffline','',''),
new Array('8869786C-8E72-45DC-911D-AB3416AC1DF1','DownloadReceiver','A',''),
new Array('EB6AFDAB-E16D-430B-A5EE-0408A12289DC','DownloadWare','S',''),
new Array('CCE83E45-30B2-4BAE-B1F5-25D128D27A43','ezCyberSearch','A',''),
new Array('139D88E5-C372-469D-B4C5-1FE00852AB9B','FavoriteMan','AS',''),
new Array('665ACD90-4541-4836-9FE4-062386BB8F05','FlashTrack','AP','E'),
new Array('99B0B113-6F25-49C9-8ECF-2FDDD3EDFF6A','FreeScratchAndWin','APS',''),
new Array('5843A29E-1246-11D4-BA8C-0050DA707ACD','Gratisware','AP','S'),
new Array('B195B3B3-8A05-11D3-97A4-0004ACA6948E','HotBar','APS',''),
new Array('8A05273A-2EA5-42DE-AA75-59EA7D9D50D7','HuntBar','PS',''),
new Array('1D2DCA0D-B30F-40AD-9690-087105F214EC','IEAccess','S',''),
new Array('914AFB33-550B-4BD0-B4EF-8DA185504836','IEPlugin','APS',''),
new Array('730F2451-A3FE-4A72-938C-FC8A74F15978','IGetNet','','E'),
new Array('D6862A22-1DD6-11D3-BB7C-444553540000','InetSpeak/BHO42602','A',''),
new Array('2E12B523-3D4C-4FAC-9B04-0376A8F5E879','InetSpeak/WindowsIE','A',''),
new Array('C389F2CF-26ED-11D5-A212-004005F6FEB6','InetSpeak/eBoom','A',''),
new Array('D44B5436-B3E4-4595-B0E9-106690E70A58','lop/Toolbar','','A'),
new Array('B2C03E2E-2219-4FF9-810A-540ACA63F8D9','MarketScore','P',''),
new Array('C7ADE150-743D-11D4-8141-00E029626F6A','NetPal','APS',''),
new Array('D5C778F1-CF13-4E70-ADF0-45A953E7CB8B','NetworkEssentials/NE','AP',''),
new Array('85A702BA-EA8F-4B83-AA07-07A5186ACD7E','NetworkEssentials/ME','AP',''),
new Array('DD770A75-CE18-11D5-98D8-00E018981B9E','NewDotNet/A','S','E'),
new Array('4A2AACF3-ADF6-11D5-98A9-00E018981B9E','NewDotNet/B','S','E'),
new Array('A0BD4FF5-D828-11D3-9EB5-00600837E6EE','NowBox','A',''),
new Array('0CEF79D8-D373-11D3-A7D3-00062962BF17','Onflow','A','S'),
new Array('02C20140-76F8-4763-83D5-B660107B7A90','OnlineDialer/MaConnect','','S'),
new Array('AB1E62EB-3DE3-428F-A417-64AB3C9B6CF0','OnlineDialer/eConnect','','S'),
new Array('A47693D1-7E2A-4DE3-9907-310C5D310B5F','PerMedia/A','APS',''),
new Array('7011471D-3F74-498E-88E1-C0491200312D','PerMedia/B','APS',''),
new Array('8CDC6A46-08AB-435B-A3FA-7CC00E74EC9F','PerMedia/C','APS',''),
new Array('F0AA2376-F073-4E57-86E8-0238F99087C7','RapidBlaster','AS',''),
new Array('FEE7FD53-3356-4D4D-8978-2C4AE3A7E109','SaveNow/Download','AE','PS'),
new Array('1E1B2879-88FF-11D2-8D96-D7ACAC95951F','SearchAndBrowse','',''),
new Array('23DDAE8C-6A79-4D62-80AA-E95D89CB9811','SearchExplorer','APSE',''),
new Array('6C413541-29A1-4FFE-894C-9D68313C9F73','SearchitBar','S',''),
new Array('0835121F-6472-43BD-8A40-D9221FF1C4CE','SideStep','A','P'),
new Array('E3F7205F-2AE0-4BF0-816B-2D24A5F20EC7','StripPlayer','S',''),
new Array('69550BE2-9A78-11D2-BA91-00600827878D','TinyBar','','E'),
new Array('69555BE2-9A78-11D2-BA91-00600827878D','TinyBar','','E'),
new Array('3D7247E8-5DB8-11D4-8A72-0050DA2EE1BE','TopText','A','P'),
new Array('00000000-5EB9-11D5-9D45-009027C14662','Transponder','APS',''),
new Array('0000026A-8230-4DD4-BE4F-6889D1E74167','Transponder/TPS108','APS',''),
new Array('53CBEE82-D747-11D3-9ED0-005004189684','UCmore','P',''),
new Array('11BF0E2B-4229-4ADC-9C11-1C6968731018','VLoading','S',''),
new Array('C900B400-CDFE-11D3-976A-00E02913A9E0','webHancer','P','S'),
new Array('B5E60A66-0C51-4894-8DF8-CBDF4E478D58','Wazam','',''),
new Array('40AC4D2D-491D-11D4-AAF2-0008C75DCD2B','WurldMedia/bpboh','P','E'),
new Array('D14641FA-445B-448E-9994-209F7AF15641','WurldMedia','P','SE'),
new Array('57E69D5A-6539-4D7D-9637-775DE8A385B4','Xupiter','ASE','')
);

// directory containing <parasite major name>.html files with more info

var parasite_URL= 'http://www.doxdesk.com/parasite/';

// text generated by the script, change for different languages etc.

var parasite_WARN= 'Warning!';
var parasite_INFEST1= 'Your browser appears to have the "';
var parasite_INFEST2= '" parasite installed';
var parasite_PROB1= '. This software ';
var parasite_CAN= 'can ';
var parasite_MAY= 'may ';
var parasite_AND= ' and ';
var parasite_INFESTPS='. It might have been installed without your knowledge. ';
var parasite_INFO= 'Information and removal instructions.';

var parasite_PROB= new Array();
parasite_PROB['A']= 'present you with unwanted advertising';
parasite_PROB['P']= 'invade your on-line privacy';
parasite_PROB['S']= 'compromise your computer\'s security';
parasite_PROB['E']= 'cause errors and stability problems';

// END of user-serviceable parts

var parasite_status= 'NoIE';
var parasite_DELAY= 500;

function parasite_wscript() {
  var ie= WScript.createObject('InternetExplorer.Application');
  var h= '<script src="file:///'+WScript.scriptFullName+'"></script>'
  ie.navigate('about:'+h);
  ie.visible= true;
}

function parasite_write() {
  var i, p, h= '';
  var cb=(document.implementation)?'view-source:about:blank':'javascript:';
  h= '<div id="parasite" style="display: none;">\n';
  for (i= parasite_list.length; i-->0;) {
    p= parasite_list[i];
    h+= '  <object id="parasite_o'+i+'" classid="clsid:'+p[0]+'" ';
    h+= 'codebase="'+cb+'">&nbsp;<\/object>\n';
    p[4]= true;
  }
  h+= '<\/div>\n';
  document.write(h);
  parasite_status= 'wait';
  setTimeout(parasite_check, parasite_DELAY);
}

function parasite_check() {
  var i, p, pmv, h, el, infs= new Array();
  if (document.all['parasite_o0']) {
    setTimeout(parasite_check, parasite_DELAY);
    return;
  }
  for (i= parasite_list.length; i-->2;) {
    el= document.all['parasite_o'+i];
    if (el && el.readyState!=0)
      infs[infs.length]= parasite_list[i];
  }
  el= document.all['parasite'];
  if (infs.length==0) {
    parasite_status= (document.all['parasite_o1']) ? 'clean' : 'NoAX';
    el.innerHTML= '';
    return;
  }
  h= '<h2>'+parasite_WARN+'<\/h2>';
  for (i= infs.length; i-->0;) {
    p= infs[i];
    pmv= p[1];
    if (pmv.indexOf('/')!=-1)
      pmv= pmv.substring(0, pmv.indexOf('/'));
    h= h+'<p>'+parasite_INFEST1+p[1]+parasite_INFEST2;
    if (p[2]!='' || p[3]!='')
      h= h+parasite_PROB1;
    if (p[2]!='')
      h= h+parasite_CAN+parasite_probs(p[2]);
    if (p[2]!='' && p[3]!='')
      h= h+','+parasite_AND;
    if (p[3]!='')
      h= h+parasite_MAY+parasite_probs(p[3]);
    h= h+parasite_INFESTPS;
    h= h+'<a href="'+parasite_URL+pmv+'.html">'+parasite_INFO+'<\/a><\/p>';
  }
  parasite_status= 'dirty';
  el.innerHTML= h;
  el.style.display= 'block';
}

function parasite_probs(s) {
  var i, r= '';
  for (i= 0; i<s.length; i++) {
    r= r+parasite_PROB[s.charAt(i)];
    if (i==s.length-2) r= r+parasite_AND;
    if (i<s.length-2)  r= r+', ';
  }
  return r;
}

/*@cc_on
@if (@_jscript_version>4)
  try { parasite_write(); }
  catch (e) { parasite_wscript(); }
@end @*/
