// parasite.js release 3: detect unsolicited commercial software from IE
// by And Clover <and@doxdesk.com>, see http://www.doxdesk.com/parasite/
// requires parasite-data.js file in the same directory

var parasite_status= 'NoIE';

/*@cc_on @if (@_win32 && @_jscript_version>=5.5)

function parasite_write() {
  parasite_status= 'wait';
  var scripts= document.getElementsByTagName('script');
  var src= scripts[scripts.length-1].src;
  var ix= src.lastIndexOf('.');
  if (ix==-1) ix= src.length;
  document.write(
    '<div id="parasite" style="display: none;"><script src="'+
    src.substring(0, ix)+'-data'+src.substring(ix)+
    '" type="text/jscript" defer="defer"></script></div>'
  );
}

function parasite_begin() {
  for (var ix= parasite_progids.length; ix-->0;) try {
    var progid= parasite_progids[ix];
    new ActiveXObject(progid[0]);
    parasite_warn(progid);
  } catch(e) {}

  var h= '';
  for (var ix= parasite_classids.length; ix-->0;)
    h+= '<object classid="clsid:'+parasite_classids[ix][0]+'"'+
    ' codebase="view-source:about:blank" onerror="parasite_event('+ix+', 0)"'+
    ' onreadystatechange="if (this.readyState==4) parasite_event('+ix+', 1)"'+
    '></object>';
  document.createElement('div').innerHTML= h;
  if (parasite_status=='wait') parasite_status= 'clean';
}

function parasite_event(ix, ok) {
  var classid= parasite_classids[ix];
  if (ok && classid[0]!=null) parasite_warn(classid);
  classid[0]= null;
}

function parasite_warn(info) {
  var t= parasite_text;
  var div= document.getElementById('parasite');
  if (parasite_status!='dirty') {
    parasite_status= 'dirty';
    var h2= document.createElement('h2');
    h2.appendChild(document.createTextNode(t.warn));
    div.appendChild(h2);
    div.style.display= 'block';
  }

  var h= t.infest1+info[1]+t.infest2;
  if (info[2]!='' || info[3]!='') h+= t.prob1;
  if (info[2]!='') h+= t.can+parasite_probs(info[2]);
  if (info[2]!='' && info[3]!='') h+= ','+t.and;
  if (info[3]!='') h+= t.may+parasite_probs(info[3]);
  h+= t.infest3;

  var p= document.createElement('p');
  p.appendChild(document.createTextNode(h));
  var a= document.createElement('a');
  var n= info[1];
  var ix= n.indexOf('/');
  if (ix!=-1) n= n.substring(0, ix);
  a.href= parasite_url+n+'.html';
  a.appendChild(document.createTextNode(t.info));
  p.appendChild(a);
  div.appendChild(p);
}

function parasite_probs(s) {
  var i, r= '';
  for (i= 0; i<s.length; i++) {
    r= r+parasite_text[s.charAt(i)];
    if (i==s.length-2) r= r+parasite_text.and;
    if (i<s.length-2)  r= r+', ';
  }
  return r;
}

if (typeof(WScript)!='undefined')
  WScript.echo('parasite.js can only be run from a web page <script> tag.');
else
  parasite_write();
@end @*/
