Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139
/************************************************************************************************************
(C) www.dhtmlgoodies.com, October 2005

This is a script from www.dhtmlgoodies.com. You will find this and a lot of other scripts at our website.	

Terms of use:
You are free to use this script as long as the copyright message is kept intact. However, you may not
redistribute, sell or repost it without our permission.

Thank you!

www.dhtmlgoodies.com
Alf Magne Kalleland

************************************************************************************************************/


var contextMenuObj;
var MSIE = navigator.userAgent.indexOf('MSIE')?true:false;
var navigatorVersion = navigator.appVersion.replace(/.*?MSIE (\d\.\d).*/g,'$1')/1;	
var activeContextMenuItem = false;
var contextMenuSource = false;	// Reference to element calling the context menu


document.documentElement.onclick = autoHideContextMenu;
function autoHideContextMenu(e)
{
  if(!contextMenuObj)return;
  if(document.all)e = event;
  if (e.target) source = e.target;
  else if (e.srcElement) source = e.srcElement;
  if (source.nodeType == 3) // defeat Safari bug
    source = source.parentNode;

  var tag1 = source;
  var tag2 = source;
  var tag3 = source;
  if(tag1.parentNode)tag2 = tag1.parentNode;
  if(tag1.parentNode.parentNode)tag3 = tag1.parentNode.parentNode;
  
  if(tag1.tagName!='contextMenu' && tag2.tagName!='contextMenu' && tag3.tagName!='contextMenu')contextMenuObj.style.display='none';	
	
}

function highlightContextMenuItem()
{
  this.className='contextMenuHighlighted';
}

function deHighlightContextMenuItem()
{
  this.className='';
}

function showContextMenu(e)
{
  contextMenuSource = this;
  if(activeContextMenuItem)activeContextMenuItem.className='';
  if(document.all)e = event;
  var xPos = e.clientX;
  if(xPos + contextMenuObj.offsetWidth > (document.documentElement.offsetWidth-20)){
    xPos = xPos + (document.documentElement.offsetWidth - (xPos + contextMenuObj.offsetWidth)) - 20;	
  }
	
  var yPos = e.clientY;
  if(yPos + contextMenuObj.offsetHeight > (document.documentElement.offsetHeight-20)){
    yPos = yPos + (document.documentElement.offsetHeight - (yPos + contextMenuObj.offsetHeight)) - 20;	
  }		
  contextMenuObj.style.left = xPos + 'px';
  contextMenuObj.style.top = yPos + 'px';
  contextMenuObj.style.display='block';
  return false;	
}

function hideContextMenu(e)
{
  if(document.all) e = event;
  if(e.button==0 && !MSIE){
    
  }else{
    contextMenuObj.style.display='none';
  }
}

function initContextMenu()
{
  contextMenuObj = document.getElementById('contextMenu');
  contextMenuObj.style.display = 'block';
  var menuItems = contextMenuObj.getElementsByTagName('LI');
  for(var no=0;no<menuItems.length;no++){
    menuItems[no].onmouseover = highlightContextMenuItem;
    menuItems[no].onmouseout = deHighlightContextMenuItem;
    
    var aTag = menuItems[no].getElementsByTagName('A')[0];
    
    var img = menuItems[no].getElementsByTagName('IMG')[0];
    if(img){
      var div = document.createElement('DIV');
      div.className = 'imageBox';
      div.appendChild(img);
      
      if(MSIE && navigatorVersion<6){
	aTag.style.paddingLeft = '0px';
      }
			
      var divTxt = document.createElement('DIV');	
      divTxt.className='itemTxt';
      divTxt.innerHTML = aTag.innerHTML;
			
      aTag.innerHTML = '';
      aTag.appendChild(div);
      aTag.appendChild(divTxt);
      if(MSIE && navigatorVersion<6){
	div.style.position = 'absolute';
	div.style.left = '2px';
	divTxt.style.paddingLeft = '15px';
      }
			
      if(!document.all){
	var clearDiv = document.createElement('DIV');
	clearDiv.style.clear = 'both';
	aTag.appendChild(clearDiv);		
      }
    }else{
      if(MSIE && navigatorVersion<6){
	aTag.style.paddingLeft = '15px';
	aTag.style.width = (aTag.offsetWidth - 30) + 'px';
      }else{
	aTag.style.paddingLeft = '30px';
	aTag.style.width = (aTag.offsetWidth - 60) + 'px';
      }
    }
  }
  contextMenuObj.style.display = 'none';		

}