var isLeavingPage = false;
function defineSelection( myParagraph )
{
	var selectedText;
	if( navigator.userAgent.indexOf('Safari') >=0)
	{
		selectedText = getSelection();
	}
	else
	{
		selectedText = document.selection?document.selection.createRange().text:document.getSelection();
	}

	if( !isLeavingPage && selectedText != "" && selectedText.length < 20 && !( /[<>]/.test( selectedText ) ) )
	{
/* ADDED A LINK TO THE END OF THE CURRENT PARAGRAPH WITHOUT KILLING THE SELECTION
		var definitionLink = document.createElement("a");
		definitionLink.className = "Definition";
		definitionLink.href = "#";
		definitionLink.onmousedown = function() { return searchForDefinition( selectedText ); }
		definitionLink.appendChild( document.createTextNode( " <Google \"" + selectedText + "\"> " ) );
		myParagraph.appendChild( definitionLink );
*/
		if( ( new RegExp( selectedText ) ).test( myParagraph.innerHTML ) )
		{
			myParagraph.innerHTML = ( myParagraph.innerHTML ).replace( 
				new RegExp( selectedText, "g" ), 
				"<span class='HighlightedText' onmousedown='return searchForDefinition( this.innerHTML )'>" + selectedText + "</span>" );
		}
	


	}
	return true;
}
function searchForDefinition( myQuery )
{
	isLeavingPage = true;
	document.location = "http://www.google.com/search?hl=en&q=" + encodeURIComponent( myQuery );
	return false;
}

function ActivateParagraphs()
{
	var paragraphs = document.getElementsByTagName("p");
	for( var i = 0; i < paragraphs.length; i++ )
	{
		paragraphs[i].onclick = function() { return defineSelection( this ); };
	}
}

if (window.addEventListener) {
	window.addEventListener( "load", ActivateParagraphs, false );	
}
else if (window.attachEvent) {
	window.attachEvent( "onload", ActivateParagraphs );
}
