function userOnStart()
{
  window.w3c = { valid: 0, invalid: 0, unknown: 0};
}

function userOnAfterPage()
{
  var xmlhttp = new XMLHttpRequest();
  var serviceUrlPrefix = 'http://validator.w3.org/check?uri=';
  var serviceUrlSuffix = ';output=xml'
  var docUrl = gSpider.mDocument.location.href;

  var serviceUrl = serviceUrlPrefix + encodeURI(docUrl) + serviceUrlSuffix;

  xmlhttp.open('GET', serviceUrl, false);
  xmlhttp.send(null);

  var msg = 'W3C HTML Validator: ' + gSpider.mCurrentUrl.mUrl + ' ';

  var responseXML = xmlhttp.responseXML;

  if (!responseXML)
  {
    msg += 'could not be validated due to an unknown error.';
    window.w3c.unknown++;
  }
  else if (responseXML.getElementsByTagName('msg').length > 0)
  {
    msg += 'is INVALID';
    window.w3c.invalid++;
  }
  else
  {
    msg += 'is VALID';
    window.w3c.valid++;
  }
  cdump(msg);
  gPageCompleted = true;
}

function userOnStop()
{
  cdump('\n\n**** SUMMARY ****\n\n');

  cdump('Valid Pages = ' + window.w3c.valid + 
       ', Invalid Pages = ' + window.w3c.invalid + 
       ', Unknown Pages = ' + window.w3c.unknown);

  cdump('\n\n*****************\n\n');
}

