function doKeyDown(evt)
{
  if (evt.keyCode == 27 && evt.shiftKey)
    doIt(evt);
}

function doContextMenu(evt)
{
  if (!evt.ctrlKey && !evt.altKey)
    return;

  doIt(evt);
}

function doIt(evt)
{
  if (evt.preventDefault)
  {
    evt.stopPropagation();
    evt.preventDefault();
  }
  else
  {
    evt.cancelBubble = true;
    evt.returnValue = false;
  }
  
  var el = evt.srcElement || evt.target;

  if (evt.altKey)
  {
    debugger;
    return;
  }

  var s = "";
  while (el.nodeType==1)
  {
    s = s.replace(/<>/g, "<>.");

    var s2 = "<>" + el.nodeName;
    if (el.id)
      s2 += " #" + el.id;

    if (el.htmlFor)
      s2 += " for=" + el.htmlFor;

    if (el.className)
      s2 += " .\"" + el.className + "\"";
    s2 += "\n";
    s = s2 + s;

    el = el.parentNode;
  }
  s = s.replace(/<>/g, "");
  if (!confirm(s))
    return;

  el = evt.srcElement || evt.target;

  while ((el.nodeType==1) && confirm((el.outerHTML?el.outerHTML:("<" + el.nodeName + (el.id?" id=\"" + el.id + "\"":"") + (el.className?" class=\"" + el.className + "\"":"")  + " ...>" + el.innerHTML + "</" + el.nodeName + ">"))))
    el = el.parentNode;
}

if (window.addEventListener)
  document.documentElement.addEventListener((window.opera?"click":"contextmenu"), doContextMenu, false);
else
  document.documentElement.attachEvent("oncontextmenu", doContextMenu);

if (window.addEventListener)
  document.documentElement.addEventListener("keydown", doKeyDown, false);
else
  document.documentElement.attachEvent("onkeydown", doKeyDown);
