//
var tmp;

// Build context menu
var cMenu = new Menu();

var openItem, openNewWinItem;

cMenu.add( openItem = new MenuItem( "Open" ) ); openItem.mnemonic = "o";
cMenu.add( openNewWinItem = new MenuItem( "Open in New Window" ) ); openNewWinItem.mnemonic = "n"; openNewWinItem.target = "_blank";	// open in new window

var backItem, forwardItem, refreshItem, seoitem, devitem, webmailitem, sourceitem;

cMenu.add( backItem = new MenuItem( "Back", function () { window.history.go(-1); }, "/image/menu/back.png" ) ); backItem.mnemonic = "b";
cMenu.add( forwardItem = new MenuItem( "Forward", function () { window.history.go(1); }, "/image/menu/forward.png" ) ); forwardItem.mnemonic = "o";
cMenu.add( refreshItem = new MenuItem( "Refresh", function () { document.location.reload(); }, "/image/menu/refresh.png" ) ); refreshItem.mnemonic = "r";
cMenu.add( new MenuSeparator() );
cMenu.add( seoitem = new MenuItem( "SEO Login", function () { window.open('http://extranet.numovision.net/','_parent'); }, "/image/menu/login.gif" ) ); seoitem.mnemonic = "s";
cMenu.add( devitem = new MenuItem( "Dev Login", function () { window.open('http://v1.position-builder.net/extranet/index.asp','_parent'); }, "" ) ); devitem.mnemonic = "d";
cMenu.add( webmailitem = new MenuItem( "Web Mail", function () { window.open('http://www.numogroup.net/content/content_webmail.numo','_parent'); }, "/image/menu/desk.gif" ) ); webmailitem.mnemonic = "m";
//cMenu.add( oshitem = new MenuItem( "OSH Helpdesk", function () { window.open('/helpdesk/index.htm','main'); }, "/image/menu/help.gif" ) );
cMenu.add( new MenuSeparator() );
//cMenu.add( infoitem = new MenuItem( "More info form", function () { window.open('/content/temp.asp','main'); }, "/image/menu/info.gif" ) );
cMenu.add( contactitem = new MenuItem( "Contact Numo", function () { window.open('/content/content_contact_us.numo','_parent'); }, "/image/menu/pblogo.gif" ) );
//cMenu.add( new MenuSeparator() );
//cMenu.add( helpitem = new MenuItem( "Help", function () { window.showHelp('/content/contenthelp.asp','','popup'); }, "/image/menu/help.gif" ) );
cMenu.add( new MenuSeparator() );
cMenu.add( sourceitem = new MenuItem( "View Source", function () { document.location = "view-source:" + document.location; }, "/image/menu/notepad.png" ) ); sourceitem.mnemonic = "v";

// edit menu
var eMenu = new Menu()

var undoItem, cutItem, copyItem, pasteItem, deleteItem, selectAllItem;

// undo is broken in IE
// eMenu.add( undoItem = new MenuItem( "Undo", function () { document.execCommand( "Undo" ); }, "/image/menu//undo.small.png" ) );
// undoItem.mnemonic = "u";
// 
// 
// eMenu.add( new MenuSeparator() );

eMenu.add( cutItem = new MenuItem( "Cut", function () { document.execCommand( "Cut" ); }, "/image/menu//cut.small.png" ) ); cutItem.mnemonic = "t";
eMenu.add( copyItem = new MenuItem( "Copy", function () { document.execCommand( "Copy" ); }, "/image/menu//copy.small.png" ) ); copyItem.mnemonic = "c";
eMenu.add( pasteItem = new MenuItem( "Paste", function () { document.execCommand( "Paste" ); }, "/image/menu//paste.small.png" ) ); pasteItem.mnemonic = "p";
eMenu.add( deleteItem = new MenuItem( "Delete", function () { document.execCommand( "Delete" ); }, "/image/menu//delete.small.png" ) ); deleteItem.mnemonic = "d";
eMenu.add( new MenuSeparator() );
eMenu.add( selectAllItem = new MenuItem( "Select All", function () { document.execCommand( "SelectAll" ); } ) ); selectAllItem.mnemonic = "a";

var oldOpenState = null;	// used to only change when needed
var lastKeyCode = 0;

function rememberKeyCode() 
{
	lastKeyCode = window.event.keyCode;
}
function showContextMenu()
{
	if (!event.ctrlKey)
	{
		var el = window.event.srcElement;
		// check for edit
		var showEditMenu = el != null &&
			(el.tagName == "INPUT" || el.tagName == "TEXTAREA");
		// check for anchor	
		while ( el != null && el.tagName != "A" )
			el = el.parentNode;
		var showOpenItems = el != null && el.tagName == "A";
		if ( showOpenItems != oldOpenState ) 
		{
			openItem.visible		= showOpenItems;
			openNewWinItem.visible	= showOpenItems;
			backItem.visible		= !showOpenItems;
			forwardItem.visible		= !showOpenItems;
			refreshItem.visible		= !showOpenItems;
			oldOpenState = showOpenItems;
		}
		
		if ( showOpenItems ) 
		{
			openItem.action = openNewWinItem.action = el.href;
		}
		
		// find left and top
		var left, top;
		if ( showEditMenu )
			el = window.event.srcElement;
		else if ( !showOpenItems )
			el = document.documentElement;
		if ( lastKeyCode == 93 ) // context menu key
		{	
			left = posLib.getScreenLeft( el );
			top = posLib.getScreenTop( el );
		}
		else 
		{
			left = window.event.screenX;
			top = window.event.screenY;
		}
		if ( showEditMenu ) 
		{	
			// undo is broken in IE
			// undoItem.disabled =		!document.queryCommandEnabled( "Undo" );
			cutItem.disabled =			!document.queryCommandEnabled( "Cut" );
			copyItem.disabled =			!document.queryCommandEnabled( "Copy" );
			pasteItem.disabled =		!document.queryCommandEnabled( "Paste" );
			deleteItem.disabled =		!document.queryCommandEnabled( "Delete" );
			selectAllItem.disabled =	!document.queryCommandEnabled( "SelectAll" );
		
			eMenu.invalidate();
			eMenu.show( left, top );
		}
		else 
		{
			cMenu.invalidate();
			cMenu.show( left, top );
		}
		event.returnValue = false;
		lastKeyCode = 0
	}
};

document.attachEvent( "oncontextmenu", showContextMenu );
document.attachEvent( "onkeyup", rememberKeyCode );