/* modified version of original answers_embed1.js
 * points to nytimes.com Reference/Answers.com search
 * answers_embed1.js -- enables alt-click inside document and call Answers.com query
 * Disclaimer: This is a beta version.
 * Copyright (c) Answers Corporation 1999-2006. All rights reserved.
 */

//var answersURL="http://query.nytimes.com/search/query?srchst=ref&query=";

var answersURL='http://ozreport.com/search.php'
	+'?domains=OzReport.com'
	+'&sitesearch=OzReport.com'
	+'&client=pub-2925268477293988'
	+'&forid=1'
	+'&ie=ISO-8859-1'
	+'&oe=ISO-8859-1'
	+'&hl=en'
	+'&sa.x=22'
	+'&sa.y=7'
	+'&sa=Search'
	+'&q=';

var openBlockedPopupsInline=false;
var trigger;
var triggerModKey;

if (typeof trigger=="undefined")
	trigger="click"; // or dblclick

if (typeof triggerModKey=="undefined")
	triggerModKey="altKey";

var moz=false;
var isOpera=navigator.userAgent.toLowerCase().indexOf("opera")!=-1;

if (document.all==null && document.getElementById!=null && document.layers==null)
{
	moz=true;
	document.addEventListener(trigger,function (e) { window.event=e;},true); // using capture
}


if (document.addEventListener)
	document.addEventListener(trigger,ActivateAnswers,true);
else if (document.all)
{
	if (trigger=="dblclick")
		document.ondblclick=ActivateAnswers;
	else if (trigger=="click")
	{
		document.onclick=ActivateAnswers;
		document.onselectstart=noSelect;
	}
}




function ActivateAnswers()
{
	if (typeof triggerModKey!="undefined" && triggerModKey=="altKey")
		triggerModCond=event.altKey;
	else
		triggerModCond=true;

	if (!moz && window.event && triggerModCond && document && document.body)
	{
		var wordsRange=4;
		var rng;
		rng=document.selection.createRange();
		rng.collapse();
		rng.expand("word");

		if (rng.text.length==0 || document.selection.type=="None")
		{
			if (event && event.srcElement && event.srcElement.isTextEdit)
				rng=event.srcElement.createTextRange();
			else
			{
				var el=event.srcElement.parentTextEdit;
				rng=el.createTextRange();
			}

			rng.moveToPoint(event.clientX,event.clientY);
		}

		originalRng=rng.duplicate();
		rng.expand("word");
		var str="";
		var iStartWord=-1;
		var bFirstWord,bLastWord;
		var afterWordsCount=0;
		var beforeWordsCount=0;

		// move back
		while (!bFirstWord && rng.text && beforeWordsCount<=wordsRange)
		{
			if (-1!=rng.text.search(/\S/))
			{
				str=rng.text+str;

				if (rng.text.search(/\s/)>-1 || iStartWord==-1)
				{
					beforeWordsCount++;
					iStartWord++;
				}
			}

			if (rng.move("word",-1))
				rng.expand("word");
			else
				bFirstWord=true;
		}

		// move forward
		rng=originalRng;

		if (rng.move("word",1))
			rng.expand("word");
		else
			bLastWord=true;

		while (!bLastWord && rng.text && afterWordsCount<wordsRange)
		{
			if (-1!=rng.text.search(/\S/))
			{
				str+=rng.text;
				afterWordsCount++;
			}

			if (rng.move("word",1))
				rng.expand("word");
			else
				bLastWord=true;
		}

		if (str.length>0 && iStartWord>=0)
			LaunchWBQuery(str,iStartWord,null);

		event.returnValue=false;
		return false;
	}
	else if (triggerModCond && event.rangeParent && event.rangeParent.nodeType==document.TEXT_NODE)
	{
		var rangeOffset=event.rangeOffset;
		var range=document.createRange();
		range.selectNode(event.rangeParent);
		var rngstr=range.toString();
		range.detach();

		// remove leading white space
		var nonWS=rngstr.search(/\S/);
		rngstr=rngstr.substr(nonWS).replace(/(\r|\n)/," ");
		rangeOffset-=nonWS;

		// which word is the focus word - i.e. which word the rangeOffset is in
		var startstr=rngstr.substring(0,rangeOffset);
		var endstr=rngstr.substring(rangeOffset,rngstr.length);
		var wordlist=startstr.split(/\s+/);
		var wordlist2=endstr.split(/\s+/);

		if (wordlist.length>4)
			wordlist=wordlist.slice(wordlist.length-4);

		if (wordlist2.length>5)
			wordlist2=wordlist2.slice(0,4);

		rngstr=wordlist.join(" ")+wordlist2.join(" ");
		var iStartWord=wordlist.length-1;

		if (rngstr.length>0 && iStartWord>=0)
			LaunchWBQuery(rngstr,iStartWord,null);

		event.preventDefault();
		event.stopPropagation();
	}
}



function LaunchWBQuery(s,fw,myobj)
{
	if (typeof fw=="undefined")
		fw='';

	if (typeof answersURL=="undefined" || answersURL=="")
	{
		if (location.host=="lac")
			answersURL="http://lac/";
		else
			answersURL="http://query.nytimes.com/search/query?srchst=ref&query=";
	}

	if (typeof s=="undefined" || s==null)
	{
		if (typeof myobj!="undefined" && myobj!=null && typeof myobj.s!="undefined")
			s=myobj.s.value;
		else
			s="";
	}

	if (s!="")
	{
		if (typeof ANSW!="undefined" && typeof (ANSW.b5)!="undefined")
		{
			if (document.documentElement && document.documentElement.scrollTop)
				theTop=document.documentElement.scrollTop;
			else if (document.body)
				theTop=document.body.scrollTop;

			if (document.documentElement && document.documentElement.scrollLeft)
				theX=document.documentElement.scrollLeft;
			else if (document.body)
				theX=document.body.scrollLeft;

			y=theTop+event.clientY;
			x=theX=event.clientX;

			if (typeof (ANSW.nafid)!="undefined")
				ANSW.b5.FireQuery(s,y,x,fw,ANSW.nafid);
			else
				ANSW.b5.FireQuery(s,y,x,fw);
		}
		else
		{
			var s_esc="";

			for (var i=0; i<s.length; ++i)
			{
				var c=s.charCodeAt(i);

				if (c==8216||c==8217)
					s_esc+="'"
				else
				if (c==8220||c==8221)
					s_esc+='"'
				else
				if (c==8211||c==8212)
					s_esc+='-'
				else
					s_esc+=s.charAt(i);
			}

			var sep=answersURL.indexOf("?")<0 ? "?" : "&";
			var newurl=answersURL+s_esc+sep+"fw="+fw;
			var newwin=window.open(newurl,'GuruWnd','height=450,width=800,location,menubar,toolbar,status,resizable,scrollbars');

			if (newwin)
				newwin.focus();
			else
				if (openBlockedPopupsInline)
					location.href=newurl;
		}
	}
	else
		return false;
}



function noSelect()
{
	if (event && event.ctrlKey && event.altKey)
		return false;
}

