function _dictInit(){
var agt = navigator.userAgent.toLowerCase();
_dict_is_ie = (agt.indexOf("msie")!=-1 && document.all);
var h = '
';
h += '';
h += '';
h += ' | ';
h += ' |
';
try{
var el = document.createElement('div');
el.id='_dict_layer';
el.style.position='absolute';
el.style.display='none';
el.style.zIndex=9000;
el.style.backgroundColor='#FFF';
el.style.filter='Alpha(Opacity=96)';
document.body.appendChild(el);
_dictSet(el, h);
el = document.createElement('div');
el.id='_dict_status';
el.style.position='absolute';
el.style.backgroundColor='#e7f7f7';
el.style.padding='2px';
el.style.filter='Alpha(Opacity=96)';
el.style.fontSize='14px';
el.style.left = '3px';
el.style.top = '3px';
el.style.zIndex=9000;
el.style.border = '1px solid #7E98D6';
document.body.appendChild(el);
_dictSet(el, _dictStatus());
}catch(x){
alert("dict can not support this page.");
alert(x);
_dict_layer = true;
return;
}
_dictClose();
if (_dict_is_ie) {
document.attachEvent("onmousemove", _dictMove);
document.attachEvent("ondblclick", _dictQuery);
document.attachEvent("onmouseup", _dictQuery);
document.attachEvent("onselectstart", _dictSelect);
document.attachEvent("onmousedown", _dictCheck);
window.attachEvent("onload", _dictUpdateStatus);
}else {
document.addEventListener("mousemove", _dictMove, true);
document.addEventListener("dblclick", _dictQuery, true);
document.addEventListener("mouseup", _dictQuery, true);
document.addEventListener("selectstart", _dictSelect, true);
document.addEventListener("mousedown", _dictCheck, true);
window.addEventListener("load", _dictUpdateStatus, true);
}
//var img = new Image();
//img.src = _dict_host+"img/loading.gif";
_dict_layer = document.getElementById('_dict_layer');
_dict_status = document.getElementById('_dict_status');
_dict_iframe = document.getElementById('_dictFrame');
}
function _dictSet(el, htmlCode) {
var ua = navigator.userAgent.toLowerCase();
if (ua.indexOf('msie') >= 0 && ua.indexOf('opera') < 0) {
el.innerHTML = 'for IE
' + htmlCode;
el.removeChild(el.firstChild);
}
else {
var el_next = el.nextSibling;
var el_parent = el.parentNode;
el_parent.removeChild(el);
el.innerHTML = htmlCode;
if (el_next) {
el_parent.insertBefore(el, el_next)
} else {
el_parent.appendChild(el);
}
}
}
function _dictGetSel()
{
if (window.getSelection) return window.getSelection();
else if (document.getSelection) return document.getSelection();
else if (document.selection) return document.selection.createRange().text;
else return '';
}
function _dictGetPos(event){
if (_dict_is_ie) {
_dict_x = window.event.clientX + document.documentElement.scrollLeft
+ document.body.scrollLeft;
_dict_y = window.event.clientY + document.documentElement.scrollTop
+ document.body.scrollTop;
}else {
_dict_x = event.clientX + window.scrollX;
_dict_y = event.clientY + window.scrollY;
}
}
function _dictSelect(e){
if (_dict_moving == 2)
return false;
else
return true;
}
function _dictCheck(e) {
_dictGetPos(e);
var cx = 0;
var cy = 0;
var obj = _dict_layer;
if (obj.offsetParent){
while (obj.offsetParent){
cx += obj.offsetLeft;
cy += obj.offsetTop;
obj = obj.offsetParent;
}
}else if (obj.x){
cx += obj.x;
cy += obj.y;
}
if(_dict_moving>0){
if(_dict_onmove == 1){
_dict_moving = 2;
_dict_startx = _dict_x;
_dict_starty = _dict_y;
}else if(_dict_x < cx || _dict_x > (cx + 240) || _dict_y < cy || (!_dict_onlayer && _dict_y > (cy + 100) ) ){
_dictClose();
}else{
_dict_moving = 1;
}
}
}
function _dictQuery(e) {
if(_dict_moving == 1){
if (_dict_is_ie) {
window.event.cancelBubble = true;
window.event.returnValue = false;
}else{
e.preventDefault();
}
return false;
}
if(_dict_moving == 2) {
_dict_cx = _dict_x;
_dict_cy = _dict_y;
_dict_moving = 1;
return false;
}
_dictGetPos(e);
if (!_dict_enable) return true;
var word = _dictGetSel();
if(_dict_is_ie) word=word.replace(/^\s*|\s*$/g,"");
word=""+word;
if(word == "" || word.length > 16 || _dict_old_word == word) return true;
_dictShow(word);
}
function _dictDisplay(){
var dx=262;
var dy=264;
_dict_y += 8;
_dict_x += 16;
if(_dict_is_ie){
if (document.documentElement.offsetHeight && document.body.scrollTop+document.documentElement.scrollTop+document.documentElement.offsetHeight - _dict_y < dy){
_dict_y = document.body.scrollTop+document.documentElement.scrollTop + document.documentElement.offsetHeight - dy;
_dict_x += 14;
}
if (document.documentElement.offsetWidth && document.body.scrollLeft+document.documentElement.scrollLeft+document.documentElement.offsetWidth - _dict_x < dx){
_dict_x = document.body.scrollLeft+document.documentElement.scrollLeft + document.documentElement.offsetWidth - dx;
}
}else{
dx-=1;
dy+=11;
if (self.innerHeight && document.body.scrollTop+document.documentElement.scrollTop + self.innerHeight - _dict_y < dy) {
_dict_y = document.body.scrollTop+document.documentElement.scrollTop + self.innerHeight - dy;
_dict_x += 14;
}
if (self.innerWidth && document.body.scrollLeft+document.documentElement.scrollLeft + self.innerWidth - _dict_x < dx) {
_dict_x = document.body.scrollLeft+document.documentElement.scrollLeft + self.innerWidth - dx;
}
}
_dict_cx = _dict_x;
_dict_cy = _dict_y;
_dict_startx = _dict_x;
_dict_starty = _dict_y;
_dict_layer.style.left = _dict_cx+'px';
_dict_layer.style.top = _dict_cy+'px';
_dict_layer.style.display="";
_dict_moving = 1;
}
function _dictShow(word){
_dictDisplay();
try{
_dict_iframe.src='about:blank';
var iframeWin = window.frames['_dictFrame'];
iframeWin.document.open();
iframeWin.document.write('Define '+word+' :
');
iframeWin.document.close();
}catch(x){
}
setTimeout(function(){_dict_iframe.src=_dict_host+'mini.php?q='+word;},200);
_dict_old_word = word;
}
function _dictMove(e){
if(_dict_moving==2) {
_dictGetPos(e);
_dict_x = _dict_x-_dict_startx+_dict_cx;
_dict_y = _dict_y-_dict_starty+_dict_cy;
if (document.documentElement.scrollWidth - _dict_x < 262) {
_dict_x = document.documentElement.scrollWidth - 262;
}
_dict_layer.style.left = _dict_x+'px';
_dict_layer.style.top = _dict_y+'px';
}
}
function _dictClose() {
try
{
_dict_moving = 0;
_dict_onmove = 0;
_dict_onlayer = 0;
_dict_layer.style.display="none";
setTimeout(function(){_dict_old_word = "";},500);
}
catch (x)
{
}
}
function _dictRemove() {
try
{
_dict_moving = 0;
_dict_onmove = 0;
_dict_onlayer = 0;
_dict_enable = false;
_dict_layer.style.display="none";
_dict_status.style.display="none";
}
catch (x)
{
}
}
function _dictEnable(){
if (_dict_enable){
_dict_enable = false;
}else{
_dict_enable = true;
}
_dictUpdateStatus();
}
function _dictUpdateStatus(){
_dictSet(_dict_status, _dictStatus());
}
function _dictStatus(){
var h='';
if (_dict_enable){
h += '[划词翻译已开启]';
}else{
h += '[划词翻译已禁用]';
}
h +='
';
return h;
}
//main entry
var word;
if (confirm("Select OK to add selected contents into Will Power, Cancel to abort"))
{
word = _dictGetSel();
word=""+word;
}
else
{
word = "Operation Canceled";
}
alert(word);