// parasite.js: detect and warn about infs of IE parasites
// release 1.23, 10-Sep-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('06DFEDAA-6196-11D5-BFC8-00508B4A487D','7FaSSt','P',''),
new Array('00000012-890E-4AAC-AFD9-EFF6954A34DD','AdBreak','A',''),
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('AB4DD0F0-38DA-4F48-AAFE-7DE7323BB6B2','ClickTheButton','AP',''),
new Array('B83FC273-3522-4CC6-92EC-75CC86678DA4','CnsMin','',''),
new Array('268CBA84-25AE-4D38-89FE-E7606A6460E3','CometCursor/Shop','AP',''),
new Array('1678F7E1-C422-11D0-AD7D-00400515CAAA','CometCursor/Plus','AP',''),
new Array('A6475E6B-3C2E-4B1F-82FD-8F1C0B1D8AD0','CommonName/Toolbar','','E'),
new Array('9346A6BB-1ED0-4174-AFB4-13CD4EC0AA40','CommonName/Agent','','E'),
new Array('EB6AFDAB-E16D-430B-A5EE-0408A12289DC','DownloadWare','S',''),
new Array('6ACD11BD-4CA0-4283-A8D8-872B9BA289B6','eAnthology','',''),
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('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('914AFB33-550B-4BD0-B4EF-8DA185504836','IEPlugin','APS',''),
new Array('D6862A22-1DD6-11D3-BB7C-444553540000','InetSpeak/BHO42602','A',''),
new Array('2E12B523-3D4C-4FAC-9B04-0376A8F5E879','InetSpeak/WindowsIE','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','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('FEE7FD53-3356-4D4D-8978-2C4AE3A7E109','SaveNow/Download','AE','PS'),
new Array('23DDAE8C-6A79-4D62-80AA-E95D89CB9811','SearchExplorer','APSE',''),
new Array('0835121F-6472-43BD-8A40-D9221FF1C4CE','SideStep','A','P'),
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('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',''),
new Array('FFFFEEEE-DDDD-CCCC-BBBB-AAAA99998888','','','')  // control
);

// directory containing <parasite major name>.html files with more info

var parasite_URL= 'http://and.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= 250;

function parasite_wscript() {
  var ie= WScript.createObject('InternetExplorer.Application');
  var h= '<script src="file:///'+WScript.scriptFullName+'"></script>Tests abgeschlossen'
  ie.navigate('about:'+h);
  ie.visible= true;
}

function parasite_write() {
  var i, p, w= document.writeln;
  w('<div id="parasite" style="display: none;">');
  for (i= parasite_list.length; i-->0;) {
    p= parasite_list[i];
    document.writeln(
      '<object classid="clsid:'+p[0]+'" '+
      'codebase="javascript:parasite_ok('+i+')"><\/object>'
    );
    p[4]= true;
  }
  w('<\/div>');
  parasite_status= 'wait';
  setTimeout(parasite_check, parasite_DELAY);
}

function parasite_ok(i) {
  parasite_list[i][4]= false;
}

function parasite_check() {
  var i, p, pmv, h, infs= new Array();
  if (parasite_list[parasite_list.length-1][4]) {
    parasite_status= 'noAX';
    return;
  }
  for (i= parasite_list.length-1; i-->0;) {
    p= parasite_list[i];
    if (p[4])
      infs[infs.length]= p;
  }
  if (infs.length==0) {
    parasite_status= 'clean';
    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';
  document.all['parasite'].innerHTML= h;
  document.all['parasite'].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 @*/

