﻿function expandRangeToWord (range) {
  var startOfWord  = /^(\s|\|\|\(|\[|\{|\.|\,|\:|\"|\'|，|、|／)\S+$/;
  var endOfWord = /^\S+(\s|\?|\!|\)|\(|\]|\}|\.|\,|\:|\"|\'|\/|\;|\~|，|、|／|،)$/;
  var whitespace = /^\s+$/;
  // if offset is inside whitespace
if(range.startOffset>0){
  range.setStart(range.startContainer, range.startOffset - 1);}
  while (whitespace.test(range.toString())) {
    range.setEnd(range.endContainer, range.endOffset + 1);
    range.setStart(range.startContainer, range.startOffset + 1);
  }
  while (!startOfWord.test(range.toString()) && range.startOffset>0) {
    range.setStart(range.startContainer, range.startOffset - 1);
  }
if(range.startOffset>0 || startOfWord.test(range.toString()))
  {range.setStart(range.startContainer, range.startOffset + 1);}
  while (!endOfWord.test(range.toString()) && range.endOffset>=0) {
    try{range.setEnd(range.endContainer, range.endOffset + 1);}catch(e){var ovrend = 1;break;}
  }
if(ovrend != 1) {range.setEnd(range.endContainer, range.endOffset - 1);}
  return range.toString();
}

var noact = 0;
function ctrlDown(k)
{if (k.ctrlKey){if(noact==1){noact=0;}else{noact=1;}}}

function dr4sdgryt(evt,strDic) 
{
if(!strDic){strDic="";}
var arte, arte2;
if (document.selection && document.selection.createRange && noact === 0)	
 {
var f4fddr = document.selection;
var vxbtj6c = f4fddr.createRange();
vxbtj6c.expand("word");
var v4ht5f	= vxbtj6c.text;

var sdfhb	= vxbtj6c.duplicate();
var elrchy	= sdfhb.parentElement();
arte	= elrchy.tagName;
arte2	= elrchy.className;
var vhti = vxbtj6c.htmlText.indexOf('</TD>');
 }
else if (evt.rangeParent && document.createRange && noact === 0)
 {
arte  = evt.rangeParent.parentNode.tagName;
arte2 = evt.rangeParent.parentNode.className;
var range = document.createRange();
range.setStart(evt.rangeParent, evt.rangeOffset);
range.setEnd(evt.rangeParent, evt.rangeOffset);
var word;
if (arte2=="POS"|arte2=="POS2") {word="s";}
else	{expandRangeToWord(range); word = range.toString();}
range.detach();

v4ht5f = word;
vhti = word.indexOf('</TD>');
 }
else {return null;}

if (/^(?:A)$/.test(arte)) {return null;}

var bdft5 = "";
if (/^(?:b|i|Fr.*|Head)$/.test(arte2))
	{ bdft5 = "/"+strDic+"/" + v4ht5f;
	} else if (/^(?:POS|POS2|ps|gr)$/.test(arte2)){
		if  (strDic == "enfr" | strDic == "fren") 	{bdft5 = "/fr/French-Abbreviations.aspx";}
		if  (strDic == "enit" | strDic == "iten") 	{bdft5 = "/it/Abbreviations-Italian.aspx";}
		if  (strDic == "ende" | strDic == "deen") 	{bdft5 = "/de/abbreviations.aspx";}
		if  (strDic == "enru" | strDic == "ruen") 	{bdft5 = "/ru/russian-abbreviations.aspx";}
		if (/^(?:enpl|plen|enro|roen|encz|czen|engr|gren|entr|tren|enja|jaen|enzh|zhen|enko|koen|enar|aren)$/.test(strDic)){bdft5 = "/english/abbreviationsWRD.aspx?dict="+strDic;}
	} else if (/^(?:ph)$/.test(arte2)){
		if  (strDic == "enfr" | strDic == "fren") 	{bdft5 = "/fr/French-Pronunciation.aspx";}
		if  (strDic == "enes" | strDic == "esen") 	{bdft5 = "/es/pronunciacion-inglesa.aspx";}
		if  (strDic == "enit" | strDic == "iten") 	{bdft5 = "/it/Pronuncia-Inglese.aspx";}
		if  (strDic == "ende" | strDic == "deen") 	{bdft5 = "/de/German-pronunciation.aspx";}
		if  (strDic == "enru" | strDic == "ruen") 	{bdft5 = "/ru/russian-pronunciation.aspx";}
	} else if (arte2.substr(0,2) == "To" || /^(?:Ox|ende|deen|enru|ruen)$/.test(strDic)) {
 bdft5 = "/"+strDic.substring(2,4)+strDic.substring(0,2)+"/" + v4ht5f;
	} else {
 bdft5 = "";
	}
var dkr34 = escape(v4ht5f);
var dkef  = dkr34.indexOf('0A');

if ((dkef == -1) && (vhti == -1) && (v4ht5f !== '') && (bdft5!=='')) {location = bdft5;}
}

function dr4sdgryt3(evt,strDic){dr4sdgryt(evt,strDic);}


function keyDown(k)
{
var keycode = document.all ? event.keyCode : k.which; 
if (noact === 0 && document.getElementById('si').value.length === 0)
 {
if ((""+keycode)=="33"){document.getElementById('si').blur();}
if ((""+keycode)=="34"){document.getElementById('si').blur();}
if ((""+keycode)=="35"){document.getElementById('si').blur();}
if ((""+keycode)=="36"){document.getElementById('si').blur();}
if ((""+keycode)=="38"){document.getElementById('si').blur();}
if ((""+keycode)=="40"){document.getElementById('si').blur();} 
 }
}


function DHTMLSound(surl) {
if (
(navigator.userAgent.indexOf('iPhone') != -1) || 
(navigator.userAgent.indexOf('iPod') != -1) || 
(navigator.userAgent.indexOf('Linux') != -1))
{ window.location = surl;
} else {
document.getElementById("dummyspan").innerHTML="<embed src='"+surl+"' hidden=true autostart=true loop=false type='audio/mpeg'>";
}}

// Take content in a div with id="defer-xyz" and move it to a div with id="xyz"
function relocateDeferredContent() {
    var replacements=[];
        replacements.push([document.getElementById('defer-adleaderboard'), document.getElementById('adleaderboard')]);
        replacements.push([document.getElementById('defer-adright'), document.getElementById('adright')]);
    for(i=0;i<replacements.length;i++){
        replacements[i][0].parentNode.removeChild(replacements[i][0]);
        replacements[i][1].parentNode.replaceChild(replacements[i][0], replacements[i][1]);
        replacements[i][0].style.display = "block";
    }
    return true;
}

function getScrollY() {
  var scrOfY = 0;
  if( typeof( window.pageYOffset ) == 'number' ) {
    scrOfY = window.pageYOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    scrOfY = document.body.scrollTop;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    scrOfY = document.documentElement.scrollTop;
  }
  return scrOfY;
}

function init()
{
if (getScrollY() === 0){document.getElementById('si').focus();}
relocateDeferredContent();
//document.onKeyDown = ctrlDown(event);
}
window.onload = init;
