<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ar">
	<id>http://www.copticpedia.org/index.php?action=history&amp;feed=atom&amp;title=%D9%85%D9%8A%D8%AF%D9%8A%D8%A7%D9%88%D9%8A%D9%83%D9%8A%3AGadget-dictionaryLookupHover.js</id>
	<title>ميدياويكي:Gadget-dictionaryLookupHover.js - تاريخ المراجعة</title>
	<link rel="self" type="application/atom+xml" href="http://www.copticpedia.org/index.php?action=history&amp;feed=atom&amp;title=%D9%85%D9%8A%D8%AF%D9%8A%D8%A7%D9%88%D9%8A%D9%83%D9%8A%3AGadget-dictionaryLookupHover.js"/>
	<link rel="alternate" type="text/html" href="http://www.copticpedia.org/index.php?title=%D9%85%D9%8A%D8%AF%D9%8A%D8%A7%D9%88%D9%8A%D9%83%D9%8A:Gadget-dictionaryLookupHover.js&amp;action=history"/>
	<updated>2026-06-26T00:14:13Z</updated>
	<subtitle>تاريخ التعديل لهذه الصفحة في الويكي</subtitle>
	<generator>MediaWiki 1.41.1</generator>
	<entry>
		<id>http://www.copticpedia.org/index.php?title=%D9%85%D9%8A%D8%AF%D9%8A%D8%A7%D9%88%D9%8A%D9%83%D9%8A:Gadget-dictionaryLookupHover.js&amp;diff=8336&amp;oldid=prev</id>
		<title>Gerges: مراجعة واحدة</title>
		<link rel="alternate" type="text/html" href="http://www.copticpedia.org/index.php?title=%D9%85%D9%8A%D8%AF%D9%8A%D8%A7%D9%88%D9%8A%D9%83%D9%8A:Gadget-dictionaryLookupHover.js&amp;diff=8336&amp;oldid=prev"/>
		<updated>2021-03-18T23:52:03Z</updated>

		<summary type="html">&lt;p&gt;مراجعة واحدة&lt;/p&gt;
&lt;p&gt;&lt;b&gt;صفحة جديدة&lt;/b&gt;&lt;/p&gt;&lt;div&gt;/* mw.loader.load('//en.wikinews.org/w/index.php?title=MediaWiki:Gadget-dictionaryLookupHover.js&amp;amp;action=raw&amp;amp;ctype=text/javascript'); */&lt;br /&gt;
&lt;br /&gt;
if (!window.disableWiktLookup) {&lt;br /&gt;
//set wiktLookup.useNewWindow to true to force new window.&lt;br /&gt;
if (!window.wiktLookup) var wiktLookup = {};&lt;br /&gt;
wiktLookup.key = wiktLookup.key ? wiktLookup.key : 'l';&lt;br /&gt;
&lt;br /&gt;
wiktLookup.validLangs = {ar: &amp;quot;ar&amp;quot;, en: &amp;quot;en&amp;quot;, fr: &amp;quot;fr&amp;quot;, nl: &amp;quot;nl&amp;quot;, es: 'es', it: 'it', ja: 'ja', pt: 'pt', ru: 'ru'};&lt;br /&gt;
wiktLookup.wiktDomain = 'ar'; //default&lt;br /&gt;
wiktLookup.stripAfterDash = /-.*$/;&lt;br /&gt;
if (wiktLookup.validLangs[wgUserLanguage]) {&lt;br /&gt;
  wiktLookup.wiktDomain = wiktLookup.validLangs[wgUserLanguage];&lt;br /&gt;
} else if (wiktLookup.validLangs[wgUserLanguage.replace(wiktLookup.stripAfterDash)]) {&lt;br /&gt;
  wiktLookup.wiktDomain = wiktLookup.validLangs[wgUserLanguage.replace(wiktLookup.stripAfterDash)];&lt;br /&gt;
} else if (wiktLookup.validLangs[mw.config.get('wgContentLanguage')]) {&lt;br /&gt;
  wiktLookup.wiktDomain = wiktLookup.validLangs[mw.config.get('wgContentLanguage')];&lt;br /&gt;
} else if (wiktLookup.validLangs[mw.config.get('wgContentLanguage').replace(wiktLookup.stripAfterDash)]) {&lt;br /&gt;
  wiktLookup.wiktDomain = wiktLookup.validLangs[mw.config.get('wgContentLanguage').replace(wiktLookup.stripAfterDash)];&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
if (!wiktLookup.preferLang) wiktLookup.preferLang = (window.wgContentLanguage ? mw.config.get('wgContentLanguage') : wiktLookup.wiktDomain );&lt;br /&gt;
&lt;br /&gt;
if (wiktLookup.disableByDefault === undefined) wiktLookup.disableByDefault = false;&lt;br /&gt;
&lt;br /&gt;
wiktLookup.getOptions = function () {&lt;br /&gt;
 var opt = '';&lt;br /&gt;
 if (wiktLookup.count)&lt;br /&gt;
  opt += '&amp;amp;count=' + wiktLookup.count;&lt;br /&gt;
 if (wiktLookup.showWord)&lt;br /&gt;
  opt += '&amp;amp;showWord=' + wiktLookup.showWord;&lt;br /&gt;
 if (wiktLookup.audio)&lt;br /&gt;
  opt += '&amp;amp;audio=' + wiktLookup.audio;&lt;br /&gt;
 if (wiktLookup.noRedir)&lt;br /&gt;
  opt += '&amp;amp;rd=500';&lt;br /&gt;
 if (wiktLookup.exit)&lt;br /&gt;
  opt += '&amp;amp;exit=true';&lt;br /&gt;
&lt;br /&gt;
 return opt;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
wiktLookup.rangeToWord = function (selection) {&lt;br /&gt;
//includes apostraphes&lt;br /&gt;
//fixme: if at begin of container.&lt;br /&gt;
  var finalText = selection.toString();&lt;br /&gt;
  try {&lt;br /&gt;
    var expandWord = /['\-]/; //list of chars that are not actual word boundries.&lt;br /&gt;
    var range = selection.getRangeAt(0);&lt;br /&gt;
    var rangeBefore = range.cloneRange();&lt;br /&gt;
    if (rangeBefore.startOffset !== 0 ) {&lt;br /&gt;
      rangeBefore.setStart(rangeBefore.startContainer, rangeBefore.startOffset - 1);&lt;br /&gt;
      var textNode = rangeBefore.cloneContents().firstChild;&lt;br /&gt;
      if (textNode.nodeType === 3 &amp;amp;&amp;amp; expandWord.test(textNode.data.charAt(0))) {&lt;br /&gt;
        for (var i = 0; i &amp;lt; 30 /*to stop run-away*/; i++) {&lt;br /&gt;
          rangeBefore.setStart(rangeBefore.startContainer, rangeBefore.startOffset - 1);&lt;br /&gt;
          textNode = rangeBefore.cloneContents().firstChild;&lt;br /&gt;
          if ((textNode.nodeType !== 3) || (textNode.nodeType === 3 &amp;amp;&amp;amp; textNode.data.match(/^\s/))) {&lt;br /&gt;
            rangeBefore.setStart(rangeBefore.startContainer, rangeBefore.startOffset + 1);&lt;br /&gt;
            finalText = rangeBefore.toString();&lt;br /&gt;
            rangeBefore.detach();&lt;br /&gt;
            range.detach();&lt;br /&gt;
            return finalText;&lt;br /&gt;
          }&lt;br /&gt;
          else if (rangeBefore.startOffset === 0) { //at the end of the range. this might add periods, which are stripped later.&lt;br /&gt;
            finalText = rangeBefore.toString();&lt;br /&gt;
            rangeBefore.detach();&lt;br /&gt;
            range.detach();&lt;br /&gt;
            return finalText;&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    rangeBefore.detach(); //done with it.&lt;br /&gt;
    var rangeAfter = range.cloneRange();&lt;br /&gt;
    rangeAfter.setEnd(rangeAfter.endContainer, rangeAfter.endOffset + 1);&lt;br /&gt;
    var textNode = rangeAfter.cloneContents().firstChild; //double var...&lt;br /&gt;
    if (textNode.nodeType === 3 &amp;amp;&amp;amp; expandWord.test(textNode.data.charAt(textNode.data.length - 1))) {&lt;br /&gt;
      for (var i = 0; i &amp;lt; 30 /*to stop run-away*/; i++) {&lt;br /&gt;
        rangeAfter.setEnd(rangeAfter.endContainer, rangeAfter.endOffset + 1);&lt;br /&gt;
        textNode = rangeAfter.cloneContents().firstChild;&lt;br /&gt;
        if ((textNode.nodeType !== 3) || (textNode.nodeType === 3 &amp;amp;&amp;amp; textNode.data.match(/\s$/))) {&lt;br /&gt;
          rangeAfter.setEnd(rangeAfter.endContainer, rangeAfter.endOffset - 1);&lt;br /&gt;
          finalText = rangeAfter.toString();&lt;br /&gt;
          rangeAfter.detach();&lt;br /&gt;
          range.detach();&lt;br /&gt;
          return finalText;&lt;br /&gt;
        } else if (rangeAfter.endOffset - rangeAfter.endContainer.data.length === 0) { // this assumes this is a text node... this might add periods, which are stripped later.&lt;br /&gt;
          finalText = rangeAfter.toString();&lt;br /&gt;
          rangeAfter.detach();&lt;br /&gt;
          range.detach();&lt;br /&gt;
          return finalText;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    rangeAfter.detach(); //no match, and done with this range.&lt;br /&gt;
  } catch (e) {&lt;br /&gt;
    if (window.range) {range.detach();}&lt;br /&gt;
    return finalText;&lt;br /&gt;
  }&lt;br /&gt;
  return finalText;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
wiktLookup.findWord = function (e) {&lt;br /&gt;
  if (!e) {e = window.event;}&lt;br /&gt;
  if (e.shiftKey &amp;amp;&amp;amp; e.type === 'dblclick' &amp;amp;&amp;amp; !wiktLookup.reverseShift) {&lt;br /&gt;
    return true; //don't do anything if shift is pressed down. for compat with other things.&lt;br /&gt;
  }&lt;br /&gt;
  if (!e.shiftKey &amp;amp;&amp;amp; e.type === 'dblclick' &amp;amp;&amp;amp; wiktLookup.reverseShift) {&lt;br /&gt;
    return true; //if reverse shift is on, require shift key for double click.&lt;br /&gt;
  }&lt;br /&gt;
  var clientX, clientY, coordsAbs, langOverride;&lt;br /&gt;
  if (e.clientX) {//this implies has Y as well&lt;br /&gt;
   clientX = e.clientX;&lt;br /&gt;
   clientY = e.clientY;&lt;br /&gt;
  }&lt;br /&gt;
  // stolen from http://www.codetoad.com/javascript_get_selected_text.asp&lt;br /&gt;
  var text;&lt;br /&gt;
  if (window.getSelection) {&lt;br /&gt;
    text = wiktLookup.rangeToWord(window.getSelection());&lt;br /&gt;
    if (!clientX) {&lt;br /&gt;
     try {&lt;br /&gt;
       //mostly for from keyboard requests&lt;br /&gt;
       var parent = window.getSelection().anchorNode.parentNode;&lt;br /&gt;
       clientX = parent.offsetLeft + 7*window.getSelection().anchorOffset; //this is very rough&lt;br /&gt;
       clientY = parent.offsetTop + parent.offsetHeight; //at bottom of elm &lt;br /&gt;
       coordsAbs = true;&lt;br /&gt;
       parent = parent.offsetParent;&lt;br /&gt;
       while ( parent ) {&lt;br /&gt;
         clientX += parent.offsetLeft;&lt;br /&gt;
         clientY += parent.offsetTop;&lt;br /&gt;
         parent = parent.offsetParent;&lt;br /&gt;
       }&lt;br /&gt;
     } catch (e) {}&lt;br /&gt;
    }&lt;br /&gt;
    try { //figure out what language the current node is.&lt;br /&gt;
          //and determine if we're in an enabled section&lt;br /&gt;
          // aka &amp;lt;span class=&amp;quot;wiktLookup-enable&amp;quot;&amp;gt;blah&amp;lt;/span&amp;gt;&lt;br /&gt;
          //wiktLookup.disableByDefault&lt;br /&gt;
      var enabled = !wiktLookup.disableByDefault;&lt;br /&gt;
      var foundAnEnableSection = false;&lt;br /&gt;
      var foundLangSection = false;&lt;br /&gt;
      var cur = window.getSelection().anchorNode.parentNode;&lt;br /&gt;
      for (var i = 0; i &amp;lt; 9; i++) {&lt;br /&gt;
        if (!foundAnEnableSection &amp;amp;&amp;amp; cur.className.indexOf('wiktLookup-disable') !== -1) {&lt;br /&gt;
          return; //die&lt;br /&gt;
        }&lt;br /&gt;
        if (!foundAnEnableSection &amp;amp;&amp;amp; cur.className.indexOf('wiktLookup-enable') !== -1) {&lt;br /&gt;
          enabled = true;&lt;br /&gt;
          foundAnEnableSection = true;&lt;br /&gt;
          if (foundLangSection) break;&lt;br /&gt;
        }&lt;br /&gt;
        if (!foundLangSection &amp;amp;&amp;amp; cur.lang) {&lt;br /&gt;
          langOverride = cur.lang.replace(wiktLookup.stripAfterDash);&lt;br /&gt;
          if (foundAnEnableSection) break;&lt;br /&gt;
        } else {&lt;br /&gt;
          if (cur.parentNode) {cur = cur.parentNode;}&lt;br /&gt;
          else {break;}&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
      if (!enabled) {&lt;br /&gt;
        return; //die&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    catch (e) { &lt;br /&gt;
      /*ignore error*/&lt;br /&gt;
      if (!enabled) {&lt;br /&gt;
        return; //die&lt;br /&gt;
      } &lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  else if (document.getSelection) {&lt;br /&gt;
    text = wiktLookup.rangeToWord(document.getSelection());&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  if (!clientX) {&lt;br /&gt;
   clientX = 400;&lt;br /&gt;
   clientY = 200;&lt;br /&gt;
   //good as numbers as any...&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  if (text &amp;amp;&amp;amp; text.length &amp;lt; 32) {&lt;br /&gt;
  //If we have the text. we be done.&lt;br /&gt;
    return wiktLookup.lookupWord(text, clientX, clientY, coordsAbs, langOverride);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // seems to work somewhat on moz. Hopefully moz will be picked up above. So this shouldn't be neccesary.&lt;br /&gt;
  if (e.rangeParent &amp;amp;&amp;amp; e.rangeParent.nodeType === document.TEXT_NODE) {&lt;br /&gt;
    //mozilla part&lt;br /&gt;
    var rangeOffset = e.rangeOffset;&lt;br /&gt;
    var my_rangestr = e.rangeParent.data; //the event is dynamic!&lt;br /&gt;
&lt;br /&gt;
    // which word the rangeOffset is in&lt;br /&gt;
    var wordlist1 = my_rangestr.substring(0, rangeOffset).split(/\s+/);&lt;br /&gt;
    var wordlist2 = my_rangestr.substring(rangeOffset, my_rangestr.length).split(/\s+/);&lt;br /&gt;
&lt;br /&gt;
    if (my_rangestr.length &amp;gt; 0) {&lt;br /&gt;
      wiktLookup.lookupWord(wordlist1[wordlist1.length - 1]+wordlist2[0], clientX, clientY, coordsAbs, langOverride);&lt;br /&gt;
    }&lt;br /&gt;
    e.preventDefault(); &lt;br /&gt;
    e.stopPropagation();&lt;br /&gt;
  }&lt;br /&gt;
  //IE specific stuff. Try this as a last resort.&lt;br /&gt;
  else {&lt;br /&gt;
    try {&lt;br /&gt;
      if (document.readyState !== &amp;quot;complete&amp;quot;) return false;&lt;br /&gt;
      //IE&lt;br /&gt;
      var my_range = document.selection.createRange();&lt;br /&gt;
      my_range.collapse();&lt;br /&gt;
      my_range.expand(&amp;quot;word&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
      wiktLookup.lookupWord(my_range.text, clientX, clientY, coordsAbs, langOverride);;&lt;br /&gt;
 &lt;br /&gt;
      e.returnValue = false;&lt;br /&gt;
      return false;&lt;br /&gt;
    } catch (err) { /*ignore*/&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
wiktLookup.getScrollX = function () {&lt;br /&gt;
  //standard&lt;br /&gt;
  if (window.pageXOffset !== undefined) { return window.pageXOffset; }&lt;br /&gt;
  //IE 6 in standards mode&lt;br /&gt;
  if (document.documentElement &amp;amp;&amp;amp; document.documentElement.scrollLeft !== undefined) { return document.documentElement.scrollLeft; }&lt;br /&gt;
  //other IE&lt;br /&gt;
  if (document.body &amp;amp;&amp;amp; document.body.scrollLeft !== undefined) { return document.body.scrollLeft; }&lt;br /&gt;
  return 0; //default&lt;br /&gt;
}&lt;br /&gt;
wiktLookup.getScrollY  = function() {&lt;br /&gt;
  //standard&lt;br /&gt;
  if (window.pageYOffset !== undefined) { return window.pageYOffset; }&lt;br /&gt;
  //IE 6 in standards mode&lt;br /&gt;
  if (document.documentElement &amp;amp;&amp;amp; document.documentElement.scrollTop !== undefined) { return document.documentElement.scrollTop; }&lt;br /&gt;
  //other IE&lt;br /&gt;
  if (document.body &amp;amp;&amp;amp; document.body.scrollTop !== undefined) { return document.body.scrollTop; }&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
wiktLookup.getInnerWidth = function() {&lt;br /&gt;
  //standard&lt;br /&gt;
  if (window.innerWidth !== undefined) { return window.innerWidth; }&lt;br /&gt;
  //IE 6 in standards mode&lt;br /&gt;
  if (document.documentElement &amp;amp;&amp;amp; document.documentElement.clientWidth !== undefined) { return document.documentElement.clientWidth; }&lt;br /&gt;
  //other IE&lt;br /&gt;
  if (document.body &amp;amp;&amp;amp; document.body.clientWidth !== undefined) { return document.body.clientWidth; }&lt;br /&gt;
  return 0;&lt;br /&gt;
} &lt;br /&gt;
wiktLookup.lookupWord = function(word, x, y, absCoords,langOveride) {&lt;br /&gt;
  if (!word.match(/(?:^[\wa-zA-Zа-яА-Яà-žÀ-ŽΑ-ῥԱ-ևぁ-ヶ促-杁ㄱ-하ⁿßſ]|[\wa-zA-Zа-яА-Яà-žÀ-ŽΑ-ῥԱ-ևぁ-ヶ促-杁ㄱ-하ⁿßſ]\s?$)/)) {&lt;br /&gt;
    //this regex doesn't work if word starts or ends with accents.&lt;br /&gt;
    //is this regex even needed?&lt;br /&gt;
    var word2 = word.match(/\b(?:[\S]|(?!\.\s)\.)*\b/); //strip quotation marks&lt;br /&gt;
  }&lt;br /&gt;
  var s = word2 ? word2[0] : word //if regex failed, fall back to word&lt;br /&gt;
  if (!s) {return false;} // test if null or empty.&lt;br /&gt;
    s = encodeURIComponent(s);&lt;br /&gt;
&lt;br /&gt;
    if (!wiktLookup.supported()) {&lt;br /&gt;
      //This includes IE, which doesn't recognize the mime type mediawiki uses.&lt;br /&gt;
      // in future this could put the window where user clicked.&lt;br /&gt;
      var newwin = window.open('http://' + wiktLookup.wiktDomain + '.wiktionary.org/wiki/' + s + '?uselang=' + wiktLookup.preferLang,'temp','height=450,width=800,location,menubar,toolbar,status,resizable,scrollbars');&lt;br /&gt;
      if (newwin) {&lt;br /&gt;
        newwin.focus();&lt;br /&gt;
      }&lt;br /&gt;
      return true;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    var frame = document.getElementById('dict-popup-frame');&lt;br /&gt;
    frame.src = 'about:blank'; //don't display old results.&lt;br /&gt;
    frame.style.display = 'block';&lt;br /&gt;
    frame.src = 'http://' + wiktLookup.wiktDomain + '.wiktionary.org/w/api.php?action=parse&amp;amp;redirects&amp;amp;prop=text&amp;amp;format=xml&amp;amp;xslt=MediaWiki:extractFirst.xsl&amp;amp;page=' + s + '&amp;amp;lang=' + (langOveride ? langOveride : wiktLookup.preferLang) + wiktLookup.getOptions();&lt;br /&gt;
    var left, top;&lt;br /&gt;
    if (!absCoords) {&lt;br /&gt;
      var left = x + wiktLookup.getScrollX();&lt;br /&gt;
      if (left + (wiktLookup.width ? wiktLookup.width  : 420) &amp;gt; wiktLookup.getInnerWidth() &amp;amp;&amp;amp; left - (wiktLookup.width ? wiktLookup.width  : 420) &amp;gt; 0) {&lt;br /&gt;
        left -=  (wiktLookup.width ? wiktLookup.width  : 420);&lt;br /&gt;
      }&lt;br /&gt;
      top = (y + wiktLookup.getScrollY() + 10);&lt;br /&gt;
    }&lt;br /&gt;
    else {&lt;br /&gt;
      top = y + 10;&lt;br /&gt;
      left = (x + (wiktLookup.width ? wiktLookup.width  : 420) &amp;gt; wiktLookup.getInnerWidth() ? wiktLookup.getInnerWidth() -  (wiktLookup.width ? wiktLookup.width  : 420) : x );&lt;br /&gt;
    }&lt;br /&gt;
    frame.style.top = top +'px';&lt;br /&gt;
    frame.style.left= left +'px';&lt;br /&gt;
    document.getElementById('dict-popup-container').style.display = 'block';&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
wiktLookup.setup = function () {&lt;br /&gt;
  if (document.addEventListener) {&lt;br /&gt;
    document.addEventListener(&amp;quot;dblclick&amp;quot;, wiktLookup.findWord, true); //capture&lt;br /&gt;
  } else if (document.attachEvent) {&lt;br /&gt;
    document.attachEvent(&amp;quot;ondblclick&amp;quot;, wiktLookup.findWord);&lt;br /&gt;
  }&lt;br /&gt;
  else {&lt;br /&gt;
    document.ondblclick = wiktLookup.findWord;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
window.addEventListener('keypress', function(event) { &lt;br /&gt;
  if (!event) event = window.event;&lt;br /&gt;
  if (!(event.ctrlKey &amp;amp;&amp;amp; event.shiftKey)) return true;&lt;br /&gt;
  var key = (event.charCode ? event.charCode : event.keyCode);&lt;br /&gt;
&lt;br /&gt;
  if (key &amp;amp;&amp;amp; (String.fromCharCode(key) === wiktLookup.key || String.fromCharCode(key) === wiktLookup.key.toUpperCase())) {&lt;br /&gt;
    wiktLookup.findWord(event);&lt;br /&gt;
 &lt;br /&gt;
    if (event.preventDefault) event.preventDefault(); &lt;br /&gt;
    return false;&lt;br /&gt;
  }&lt;br /&gt;
  return true;&lt;br /&gt;
});&lt;br /&gt;
}&lt;br /&gt;
wiktLookup.supported = function () {&lt;br /&gt;
 if (navigator &amp;amp;&amp;amp; navigator.userAgent &amp;amp;&amp;amp; navigator.userAgent.indexOf('Gecko') !== -1 &amp;amp;&amp;amp; navigator.productSub  &amp;amp;&amp;amp; navigator.productSub &amp;lt;= 20090823 &amp;amp;&amp;amp; navigator.productSub &amp;gt; 2000000) {&lt;br /&gt;
  //old moz has broken support for html entities.&lt;br /&gt;
  //FIXME: figure out exact date when gecko was fixed.&lt;br /&gt;
  return false;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 if (wiktLookup.useNewWindow) return false;&lt;br /&gt;
 if (window.XSLTProcessor || document.selectNodes ) return true; //note: second part for IE&lt;br /&gt;
 &lt;br /&gt;
 return false;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
$(wiktLookup.setup);&lt;br /&gt;
&lt;br /&gt;
$(function () {&lt;br /&gt;
  if (!wiktLookup.definitionBegin) wiktLookup.definitionBegin = 'Definition (';&lt;br /&gt;
  if (!wiktLookup.definitionEnd) wiktLookup.definitionEnd = '):';&lt;br /&gt;
  if (!wiktLookup.hideText) wiktLookup.hideText = 'hide';&lt;br /&gt;
&lt;br /&gt;
  var div = document.createElement('div');&lt;br /&gt;
  div.id = 'dict-popup-container';&lt;br /&gt;
  var frame = document.createElement('iframe');&lt;br /&gt;
  frame.style.border = 'none';&lt;br /&gt;
  if (wiktLookup.mode !== 'bottom') frame.style.position = 'absolute';&lt;br /&gt;
  frame.style.display = 'none';&lt;br /&gt;
  frame.style.zIndex = '102';&lt;br /&gt;
  if (wiktLookup.mode === 'bottom') {&lt;br /&gt;
    frame.style.width = '98%';&lt;br /&gt;
  }&lt;br /&gt;
  else {&lt;br /&gt;
    frame.style.width = (wiktLookup.width ? wiktLookup.width + 'px' : '420px'); //default 300 if unset&lt;br /&gt;
  }&lt;br /&gt;
  frame.style.height = (wiktLookup.height ? wiktLookup.height + 'px' : '180px'); //default 150 if unset.&lt;br /&gt;
  frame.id = 'dict-popup-frame';&lt;br /&gt;
  frame.src = 'about:blank';&lt;br /&gt;
&lt;br /&gt;
  if (wiktLookup.mode === 'bottom') {&lt;br /&gt;
    div.style.padding = '0.3em';&lt;br /&gt;
    div.style.display = 'none';&lt;br /&gt;
    div.style.position = 'fixed';&lt;br /&gt;
    div.style.margin = '0';&lt;br /&gt;
    div.style.bottom = '0';&lt;br /&gt;
    div.style.zIndex = '50';&lt;br /&gt;
    div.style.background = 'url(//upload.wikimedia.org/wikipedia/commons/thumb/e/ec/Wiktionary-logo.svg/840px-Wiktionary-logo.svg.png) white no-repeat 30%';&lt;br /&gt;
    div.style.borderTop = 'solid thin black';&lt;br /&gt;
    div.style.width = '100%';&lt;br /&gt;
&lt;br /&gt;
    div.appendChild(document.createTextNode(wiktLookup.definitionBegin));&lt;br /&gt;
    var link = document.createElement('a');&lt;br /&gt;
    link.href = '#';&lt;br /&gt;
    link.onclick = wiktLookup.hide;&lt;br /&gt;
    link.appendChild(document.createTextNode(wiktLookup.hideText));&lt;br /&gt;
    div.appendChild(link);&lt;br /&gt;
    div.appendChild(document.createTextNode(wiktLookup.definitionEnd));&lt;br /&gt;
  }&lt;br /&gt;
  div.appendChild(frame);&lt;br /&gt;
  document.body.appendChild(div);&lt;br /&gt;
&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
wiktLookup.hide = function() {&lt;br /&gt;
  try {&lt;br /&gt;
    var frame = document.getElementById('dict-popup-frame');&lt;br /&gt;
    if (frame.src !== 'javascript:%22%20%22') frame.src = 'javascript:%22%20%22'; //transparent&lt;br /&gt;
    //not using about:blank due to bug with font re-sizing on firefox.&lt;br /&gt;
    frame.style.display = 'none';&lt;br /&gt;
    document.getElementById('dict-popup-container').style.display = 'none';&lt;br /&gt;
  } catch(e) {/*ignore*/ }&lt;br /&gt;
}&lt;br /&gt;
window.addEventListener('click', wiktLookup.hide);&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Gerges</name></author>
	</entry>
</feed>