var divName = 'dictionary'; var Timer = null; var dataStore = new Object(); var dictionaryArray = []; //here we load all the terms from the lexique from the database var intellitext_path = '/jscripts/intellitext/' if(document.implementation && document.implementation.createDocument) var isMozilla=true; else var isMozilla=false; document.write('
 
'); function URLEncode (clearString) { var output = ''; var x = 0; clearString = clearString.toString(); var regex = /(^[a-zA-Z0-9_.]*)/; while (x < clearString.length) { var match = regex.exec(clearString.substr(x)); if (match != null && match.length > 1 && match[1] != '') { output += match[1]; x += match[1].length; } else { if (clearString[x] == ' ') output += '+'; else { var charCode = clearString.charCodeAt(x); var hexVal = charCode.toString(16); output += '%' + ( hexVal.length < 2 ? '0' : '' ) + hexVal.toUpperCase(); } x++; } } return output; } function hideMessage(){ var MessageObj=$(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; //IE if(!window.innerWidth) { //strict mode if(!(document.documentElement.clientWidth == 0)) { w = document.documentElement.clientWidth; h = document.documentElement.clientHeight; } //quirks mode else { if(document.body.clientWidth) { w = document.body.clientWidth; h = document.body.clientHeight; } else { w = window.document.body.offsetWidth; h = window.document.body.offsetHeight; } } } //w3c else { w = window.innerWidth; h = window.innerHeight; } return {width:w,height:h}; } function adjustMessage(evt) { var left; var top; clearTimer(); MessageObj = $(divName); if (isMozilla) event=evt; wsize = window.size(); var rightedge = wsize.width-event.clientX; var bottomedge = wsize.height-event.clientY; // Compliance with HTML 4/XHTML if(document.documentElement && document.documentElement.scrollTop) scrollTop = document.documentElement.scrollTop; else scrollTop = document.body.scrollTop; // Compliance with HTML 4/XHTML 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 = '
Voir la définition ...
'; MessageObj.style.visibility = "visible"; } /* GET THE DEFINITION USING AJAX - STORE THE RESULT SO WE DONT NEEED TO RETRIEVE IT ALL THE TIME */ function getDefinition(term,evt){ adjustMessage(evt); //check if it exists in the dataStore if(dataStore[encodeURIComponent(term)]) { MessageObj.innerHTML = '
'+term+'
'+dataStore[encodeURIComponent(term)]+'
'; } else { var url = intellitext_path + 'lexique.php?word=' + URLEncode(term); //var url = intellitext_path + 'lexique.php; new Ajax.Request(url, {method: 'post', onComplete:function(text){ //store the term and its definition in an array dataStore[encodeURIComponent(term)] = text.responseText; MessageObj.innerHTML = '
'+term+'
'+text.responseText+'
'; } } ); } } /* ALL THIS TO MAKE THE CONTEXTUAL TEXT */ function parseContent(){ parseChildNodes($('content')); re = /\{th\}(.*?)\{\/th\}/gi; text_str = $('content').innerHTML + ''; $('content').innerHTML = text_str.replace(re, "$1"); } function addslashes( str ) { return (str+'').replace(/([\\"'])/g, "\\$1").replace(/\0/g, "\\0"); } function parseText(obj) { var text_str = obj.nodeValue + ''; if(text_str.length<2 || text_str=="null") return false; for(var i=0;i0 && 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]) ; } }