var specialcase = ((navigator.userAgent.indexOf('Mac') != -1) || document.all);
var flag = 0;
var x,y,x1,y1,copyAttempt;

var msg = 'This image is protected by copyright.\nWe request you not to copy it.';

function setImageProtection()
{
	if (!(document.getElementById || document.all || document.layers)) return;

  if (specialcase && document.layers)
	{
		document.captureEvents(Event.MOUSEMOVE);
		document.onmousemove = special;
	}

  for (i=0;i<document.images.length;i++)
  {
    document.images[i].onmousedown = checkIt;
    //document.images[i].onmouseup = function() {return false};

    if (specialcase)
    {
      //I had to disable the following line since I was intermittently 
      //getting the alert copyright message on image maps
      //document.images[i].onmousemove = special;
      document.images[i].onclick = clearIt;
    }
  }
}

function checkIt(e)
{
  if (window.Event)
	{
		x = e.screenX;
		y = e.screenY;
		theButt = (e.which == 3);
  }
  else
	{
		x = window.event.clientX;
		y = window.event.clientY;
		theButt = (window.event.button == 2);
	}

  if (theButt)
	{
    copyAttempt = 1;
    flag = 0;
    alert(msg);
    return false; // NN4 only
  }
  
  if (specialcase) flag = 1;
    return false;
}

function special(e)
{
	theObj = '';

  if (window.Event)
	{
		x1 = e.screenX;
		y1 = e.screenY;
		if (e.target.parentNode) theObj = e.target.parentNode.tagName;
	}
  else
	{
		x1 = window.event.clientX;
		y1 = window.event.clientY;
		theObj = window.event.srcElement.parentElement.tagName;
	}
  var isLink = (theObj == 'A');
  
  if (flag && (!isLink || ((Math.abs(x-x1) > 10) || (Math.abs(y-y1) > 10))))
    if (flag && (!isLink || ((Math.abs(x-x1) > 10) || (Math.abs(y-y1) > 10))))
    {
        copyAttempt = 1;
		    flag = 0;
		    alert('link: ' + msg);
		    return false;
	    }
}

function clearIt()
{
  flag = 0;
  
  if (copyAttempt)
	{
    copyAttempt = 0;
    return false;
	}
}

window.onload=setImageProtection;
