﻿var THConfig={CaseSensitive:"on",Charset:"UTF-8",Copyrights:'<div class="thesaurusheader"><strong>Beschreibung</strong></div></div>',CtrlURL:"db_c.php",divName:'InstantMessage',MemoryCache:'on',parseElements:[]};var Timer=null;var Cache=[];var AcceptMessage=true;var SubstitutionTable=new Array();if(document.implementation&&document.implementation.createDocument)var isMozilla=true;else var isMozilla=false;document.write('<div id="'+THConfig.divName+'" onmouseover="clearTimer()" onmouseout="setTimer();" class="instant_message">&nbsp;</div>');function hideMessage(){var MessageObj=document.getElementById(THConfig.divName);MessageObj.style.visibility="hidden";}
function clearTimer(){if(Timer){clearTimeout(Timer);Timer=null;}}
function setTimer(){Timer=window.setTimeout('hideMessage()',250);}
window.size=function()
{var w=0;var h=0;if(!window.innerWidth)
{if(!(document.documentElement.clientWidth==0)){w=document.documentElement.clientWidth;h=document.documentElement.clientHeight;}
else{if(document.body.clientWidth){w=document.body.clientWidth;h=document.body.clientHeight;}else{w=window.document.body.offsetWidth;h=window.document.body.offsetHeight;}}}
else{w=window.innerWidth;h=window.innerHeight;}
return{width:w,height:h};}
function adjustMessage(evt){var left;var top;clearTimer();MessageObj=document.getElementById(THConfig.divName);if(isMozilla)event=evt;wsize=window.size();var rightedge=wsize.width-event.clientX;var bottomedge=wsize.height-event.clientY;if(document.documentElement&&document.documentElement.scrollTop)
scrollTop=document.documentElement.scrollTop;else
scrollTop=document.body.scrollTop;if(document.documentElement&&document.documentElement.scrollLeft)
scrollLeft=document.documentElement.scrollLeft;else
scrollLeft=document.body.scrollLeft;if(rightedge<MessageObj.offsetWidth)
left=scrollLeft+event.clientX-MessageObj.offsetWidth;else
left=scrollLeft+event.clientX;if(bottomedge<MessageObj.offsetHeight)
top=scrollTop+event.clientY-MessageObj.offsetHeight;else
top=scrollTop+event.clientY;MessageObj.style.top=(top)+"px";MessageObj.style.left=(left)+"px";MessageObj.innerHTML=THConfig.Copyrights+'<div class="body">Loading...</div>';MessageObj.style.visibility="visible";}
function deliveryMessage(text){MessageObj.innerHTML=THConfig.Copyrights+'<div onclick="return calcClick();" class="body">'+text+'</div>';}
function showMessage(json){var respondStructure=eval('('+json+')');deliveryMessage(respondStructure.content);if(THConfig.MemoryCache=="on")Cache[respondStructure.term]=respondStructure.content;return false;}
var handleSuccess=function(o){if(o.responseText!==undefined){showMessage(o.responseText);}};var handleFailure=function(o){if(o.responseText!==undefined){showMessage("Connection Error");}};var callback={success:handleSuccess,failure:handleFailure,argument:['foo','bar']};function getDefinition(term,evt){adjustMessage(evt);if(Cache[term]!=undefined){return deliveryMessage(Cache[term]);}
var request=YAHOO.util.Connect.asyncRequest('POST',THConfig.CtrlURL,callback,'call=getDataAndFitlering&term='+encodeURIComponent(encodeSpecials(term))+'&charset='+THConfig.Charset+'&casesensitive='+THConfig.CaseSensitive);}
function stripSlashes(content){re=/\\\"/gi;content=content.replace(re,'"');re=/\\\'/gi;content=content.replace(re,"'");return content;}
function encodeSpecials(word){var codes=new Array("�","�","�","�","�","�","�","�","�","�","�","�","�","�","�","�");var decodes=new Array("%a%","%o%","%u%","%ss%","%e-%","%-e%","%-e-%","%a-%","%-a%","%-a-%","%-o%","%o-%","%-o-%","%i-%","%-i%","%-i-%");for(var i=0;i<codes.length;i++){word=word.split(codes[i]).join(decodes[i]);}
return word;}
var phandleSuccess=function(o){if(o.responseText!==undefined){var respondStructure=eval('('+o.responseText+')');SubstitutionTable=respondStructure.termlist;if(THConfig.parseElements.length>0){for(var Inx in THConfig.parseElements){var noscripts=document.getElementById(THConfig.parseElements[Inx]).getElementsByTagName('noscript');for(var ns=0;ns<noscripts.length;ns++){noscripts[ns].parentNode.removeChild(noscripts[ns]);}
parseChildNodes(document.getElementById(THConfig.parseElements[Inx]));re=/\{th\}(.*?)\{\/th\}/gi;text_str=document.getElementById(THConfig.parseElements[Inx]).innerHTML+'';document.getElementById(THConfig.parseElements[Inx]).innerHTML=text_str.replace(re,"<a class=\"thesaurus\" onmouseover=\"getDefinition('$1', event);\" onmouseout=\"setTimer();\">$1</a>");}}else{BodyObj=document.getElementsByTagName("BODY");parseChildNodes(BodyObj[0]);re=/\{th\}(.*?)\{\/th\}/gi;text_str=BodyObj[0].innerHTML+'';BodyObj[0].innerHTML=text_str.replace(re,"<a class=\"thesaurus\" onmouseover=\"getDefinition('$1', event);\" onmouseout=\"setTimer();\">$1</a>");}}};var phandleFailure=function(o){alert("Das Script hat keine Verbindung zum Server, was leider zwingend notwendig ist. Bitte schauen, ob folgende Kontrolldatei vorhnanden ist, und ob sie richtig eingebunden wurde: "+THConfig.CtrlURL);};var pcallback={success:phandleSuccess,failure:phandleFailure,argument:['foo','bar']};function parseContent(){var request=YAHOO.util.Connect.asyncRequest('POST',THConfig.CtrlURL,pcallback,'charset='+THConfig.Charset+'&casesensitive='+THConfig.CaseSensitive+'&call=getDataAndParsing');}
function calcClick(){if(THConfig.MemoryCache!="on")return true;for(var term in Cache){}
var request=YAHOO.util.Connect.asyncRequest('POST',THConfig.CtrlURL,pcallback,'call=calcClick&casesensitive='+THConfig.CaseSensitive+'&term='+term);return true;}
function parseText(obj){var text_str=obj.nodeValue+'';if(text_str.length<2||text_str=="null")return false;for(var i=0;i<SubstitutionTable.length;i++){re=new RegExp(SubstitutionTable[i],(THConfig.CaseSensitive=="on"?"g":"gi"));if(re.test(text_str)){obj.nodeValue=applyTerm(SubstitutionTable[i],text_str);text_str=obj.nodeValue;}}}
function applyTerm(term,text_str){if(term+''==text_str+'')return"{th}"+text_str+"{/th}";re=new RegExp("^("+term+")([ \r\n\.!;:,%\"'])",(THConfig.CaseSensitive=="on"?"g":"gi"));text_str=text_str.replace(re,"{th}$1{/th}$2");re=new RegExp("([ \r\n\.!;:,%\"'])("+term+")$",(THConfig.CaseSensitive=="on"?"g":"gi"));text_str=text_str.replace(re,"$1{th}$2{/th}");re=new RegExp("([ \r\n\.!;:,%\"'])("+term+")([ \r\n\.!;:,%\"'])",(THConfig.CaseSensitive=="on"?"g":"gi"));text_str=text_str.replace(re,"$1{th}$2{/th}$3");return text_str;}
function parseChildNodes(obj){for(var i=0;i<obj.childNodes.length;i++){if(obj.childNodes[i].childNodes.length>0&&obj.childNodes[i].nodeName!="SCRIPT"&&obj.childNodes[i].nodeName!="A"&&obj.childNodes[i].nodeName!="H1"&&obj.childNodes[i].nodeName!="H2"&&obj.childNodes[i].nodeName!="H3")
parseChildNodes(obj.childNodes[i]);else parseText(obj.childNodes[i]);}}
