/*
adapted and rewritten by Hamid Reza Mohammadi for ganjoor.net,
original developers and idea makers => http://graphics8.nytimes.com/js/common/screen/altClickToSearch.js
*/
var ANSW_Trigger_trigger="dblclick";
var ANSW_Trigger_triggerModKey=""; 

if (typeof ANSW_Trigger_trigger == "undefined")
        ANSW_Trigger_trigger = "click"; // or dblclick
if (typeof ANSW_Trigger_triggerModKey == "undefined")
        ANSW_Trigger_triggerModKey = "altKey";


var moz=false;
//var isOperaOrWebkit = (navigator.userAgent.toLowerCase().indexOf("opera") != -1)||(navigator.userAgent.toLowerCase().indexOf("webkit") != -1);
if (document.all == null && document.getElementById != null && document.layers == null) {
        moz = true;
        document.addEventListener(ANSW_Trigger_trigger, function (e) { window.event = e;}, true); // using capture
}

function LNQuery() {
if (typeof ANSW_Trigger_triggerModKey != "undefined" && ANSW_Trigger_triggerModKey == "altKey")
        ANSW_Trigger_triggerModCond = event.altKey;
else
        ANSW_Trigger_triggerModCond = true;
if (!moz && window.event && ANSW_Trigger_triggerModCond && document && document.body) {
	if (document.readyState != "complete" || event.srcElement.getAttribute('noAnswerTip') || ANSW_Trigger_trigger=="dblclick" && ANSW_Trigger_triggerModKey == "" && event.srcElement.tagName == "A") return false; //exit function for IE browsers
        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;
        }


		var words = str.split(' ');
		SelectedText = words[iStartWord];
		SelectedText = SelectedText.replace(/(\r|\n)/, " ");
        QueryOnLoghatNameh(SelectedText);
        event.returnValue = false;
        return false;
}
else
{
var SelectedText = document.getSelection();
	SelectedText = SelectedText.replace(/(\r|\n)/, " ");
        if (SelectedText.length > 0) {
                QueryOnLoghatNameh(SelectedText);
        }
        event.preventDefault(); event.stopPropagation();	
}
}
function QueryOnLoghatNameh(s) {
	var qURL = "http://www.loghatnaameh.com/dehkhodasearchresult-fa.html?searchtype=0&word="+s;
    var newwin = window.open(qURL,'GuruWnd','height=450,width=800,location,menubar,toolbar,status,resizable,scrollbars');
    if (newwin)     newwin.focus();	
}

function noSelect() {
        if (event && event.ctrlKey && event.altKey)     return false;
}

if (document.addEventListener)
        document.addEventListener(ANSW_Trigger_trigger, LNQuery, true);
else if (document.all) {
        if (ANSW_Trigger_trigger == "dblclick")
                document.ondblclick = LNQuery;
        else if (ANSW_Trigger_trigger == "click"){
                document.onclick = LNQuery;
                document.onselectstart = noSelect;
        }
}
