1/** 2 * @license 3 * Point v%%build:version%% 4 * Copyright (c) %%build:year%% Widgit Software 5 */ 6var Point=function(){var UNDEF="undefined";var cssClasses={allSpans:"point_sym_span",span:"point_sym_hover_span",highlightSpan:"point_sym_hover_span_hl",noSymbolSpan:"point_sym_hover_span_nosymbol",noSymbolHighlightSpan:"point_sym_hover_span_nosymbol_hl",restoreNoSymbol:"point_sym_hover_span_nosymbol_restore",disabledSpan:"point_sym_hover_span_disabled",disabledNoSymbolSpan:"point_sym_hover_span_nosymbol_disabled",variableContent:"point_variable_content",select:"point_select",input:"point_input",image:"point_img"};var pointEnabledCookieName="point_enabled";var nonLetterPattern="[^A-Za-zªµºÃ-ÃÃ-öø-ËË-ËË -ˤˬˮͰ-ʹͶͷͺ-ͽÎÎ-ÎÎÎ-ΡΣ-ϵϷ-ÒÒ-Ô¥Ô±-ÕÕÕ¡-Ö×-תװ-ײء-Ùٮٯٱ-ÛÛÛ¥Û¦Û®Û¯Ûº-Û¼Û¿ÜÜ-ܯÝ-Þ¥Þ±ß-ߪߴߵߺà -à à à ¤à ¨à¤-हऽà¥à¥-ॡॱॲॹ-ॿঠ-à¦à¦à¦à¦-নপ-রলশ-হঽà§à§à§à§-ৡৰৱਠ-à¨à¨à¨à¨-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹà©-à©à©à©²-ੴઠ-àªàª-àªàª-નપ-રલળવ-હઽà«à« ૡଠ-à¬à¬à¬à¬-ନପ-ରଲଳଵ-ହଽààà-à¡à±à®à® -à®à®-à®à®-à®à®à®à®à®à®à®£à®¤à®¨-பம-ஹà¯à° -à°à°-à°à°-నప-ళవ-హఽà±à±à± ౡಠ-à²à²-à²à²-ನಪ-ಳವ-ಹಽà³à³ ೡഠ-à´à´-à´à´-നപ-ഹഽൠൡൺ-ൿච-à¶à¶-නඳ-රලà·-à·à¸-ะาำà¹-à¹àºàºàºàºàºàºàºàº-àºàº-àºàº¡-ຣລວສຫàº-ະາຳຽà»-à»à»à»à»à¼à½-à½à½-ཬà¾-à¾á-áªá¿á-áá-áá¡á¥á¦á®-á°áµ-ááá -á á-áºá¼á-áá-áá-ááá-áá -áá-áá-á°á²-áµá¸-á¾áá-á á-áá-áá-áá-áá-áá -á´á-á¬á¯-á¿á-áá -áªá-áá-áá -á±á-áá -á¬á®-á°á-á³ááá -á¡·á¢-ᢨᢪᢰ-ᣵá¤-á¤á¥-á¥á¥°-ᥴá¦-ᦫá§-á§á¨-á¨á¨ -á©áª§á¬ -ᬳá -áá®-ᮠᮮᮯá°-á°£á±-á±á±-ᱽᳩ-ᳬᳮ-á³±á´-á¶¿á¸-á¼á¼-á¼á¼ -á½ á½-á½á½-á½á½á½á½á½-á½½á¾-á¾´á¾¶-ᾼιá¿-á¿á¿-á¿á¿-á¿á¿-á¿á¿ -Ῥῲ-á¿´á¿¶-ῼâ±â¿â-ââââ-âââ-ââ¤â¦â¨âª-ââ¯-â¹â¼-â¿â -â â âââ°-Ⱞⰰ-â±â± -ⳤⳫ-â³®â´-ⴥⴰ-ⵥⵯâ¶-â¶â¶ -ⶦⶨ-ⶮⶰ-ⶶⶸ-â¶¾â·-â·â·-â·â·-â·â·-â·â¸¯ã ãã±-ãµã»ã¼ã-ãã-ãã¡-ãºã¼-ã¿ã -ãã±-ãã -ã·ã°-ã¿ã-ä¶µä¸-é¿ê-êê-ê½ê-êê-êêªê«ê-êê¢-ê®ê¿-êê -ê¥ê-êê¢-êêêê»-ê ê -ê ê -ê ê -ê ¢ê¡-ꡳê¢-ꢳꣲ-ꣷꣻê¤-ꤥꤰ-ê¥ê¥ -ꥼê¦-ꦲê§ê¨-ꨨê©-ê©ê©-ê©ê© -ꩶꩺêª-ꪯꪱꪵꪶꪹ-ꪽê«ê«ê«-ê«ê¯-ꯢê°-í£í°-íí-í»ï¤-ï¨ï¨°-ï©ï©°-ï«ï¬-ï¬ï¬-ï¬ï¬ï¬-ﬨשׁ-זּטּ-לּמּïïïïï-ï®±ï¯-ï´½ïµ-ï¶ï¶-ï·ï·°-ﷻﹰ-ï¹´ï¹¶-ﻼA-Zï½-ï½ï½¦-ï¾¾ï¿-ï¿ï¿-ï¿ï¿-ï¿ï¿-ï¿]";var startPunctuationRegex=new RegExp("^"+nonLetterPattern+"+","g");var endPunctuationRegex=new RegExp(nonLetterPattern+"+$","g");var whitespacePattern="\t\v\f  áá â-ââ¯âã\n-\r \u2028\u2029";var wordRegex=new RegExp("^[^"+whitespacePattern+"]+");var spaceRegex=new RegExp("^["+whitespacePattern+"]+");var magicWord="430e708030f62870df3298cc884f2362";var convertXmlEntities=function(){var regex=/&#(\d+);/g;function convertEntityNum(s,numStr){return String.fromCharCode(parseInt(numStr,10))}return function(str){if(str!==null){return str.replace(regex,convertEntityNum)}}}();var parseXml;if(window.DOMParser){parseXml=function(xmlStr){return(new window.DOMParser).parseFromString(xmlStr,"text/xml")}}else if(typeof window.ActiveXObject!=UNDEF&&new window.ActiveXObject("Microsoft.XMLDOM")){parseXml=function(xmlStr){var xmlDoc=new window.ActiveXObject("Microsoft.XMLDOM");xmlDoc.async="false";xmlDoc.loadXML(xmlStr);return xmlDoc}}else{parseXml=function(){return null}}function getSkinTone(){var skinTone=""+Point.skinTone;return/^[0-5]$/.test(skinTone)?skinTone:"1"}function getResponseFormat(){return Point.responseFormat.toLowerCase()=="json"?"json":"xml"}function abortCurrentRequest(){if(Point.currentRequest){Point.currentRequest.abort();Point.currentRequest=null}}
6function Request(httpClient,word){this.httpClient=httpClient;this.word=word}Request.prototype={completed:false,abort:function(){this.httpClient.abort(this);this.aborted=true}};function createXhrClient(){function createCORSRequest(method,url){var xhr=new XMLHttpRequest;if("withCredentials"in xhr){xhr.open(method,url,true);xhr.withCredentials=true;xhr.setRequestHeader("Content-Type","application/json")}else{xhr=null}return xhr}function openXhr(method,url){return createCORSRequest(method,url)}function QueryParams(){this.params={}}QueryParams.prototype={add:function(name,value){this.params[name]=value},toJSON:function(){return this.params}};return{sendRequest:function(successCallback,failCallback){var lang=Point.requestedWordLang,word=Point.requestedWord,context=Point.requestedContext;var request=new Request(this,word);var baseUrl=Point.serverUrl;var client=this;var getParams=new QueryParams;getParams.add("language",lang);getParams.add("word",word);getParams.add("format",getResponseFormat());getParams.add("symbol_image_format","png");getParams.add("skin_tone",getSkinTone());getParams.add("vary_group_skin_tones",Point.varyGroupSkinTones?"1":"0");if(Point.httpsImageUrls){getParams.add("https",1)}if(Point.testMode){getParams.add("test",1)}var postParams=new QueryParams;if(context){postParams.add("word_char_index",context.wordCharIndex);postParams.add("context",context.text);postParams.add("symbolise_idioms",Point.symboliseIdioms?"1":"");postParams.add("symbolise_context",Point.symboliseContext?"1":"");postParams.add("allow_recursive_altlists",Point.symboliseIdioms?"1":"")}postParams.add("account",Point.accountName);postParams.add("max_symbols",Point.maxSymbols);postParams.add("size",Point.symbolSize);postParams.add("use_reduced_vocabulary","1");var requestData={symbol:{...getParams.toJSON(),...postParams.toJSON()}};var method=Point.useGetRequestForServerProxy?"GET":"POST";var xhr=openXhr(method,baseUrl);request.xhr=xhr;function handleRequestComplete(){request.xhr=xhr=null;request.completed=true}xhr.onload=function(){if(xhr.status===200||xhr.status===304){successCallback(xhr.responseText)}handleRequestComplete()};xhr.onerror=function(e){client.supported=false;if(failCallback){failCallback(xhr)}handleRequestComplete()};if(method==="GET"){xhr.open(method,baseUrl+"?"+new URLSearchParams(requestData.symbol).toString(),true);xhr.send()}else{xhr.send(JSON.stringify(requestData))}return request},init:function(){if(!this.initialized){var xhr=createCORSRequest("POST",Point.serverUrl);this.supported=!!xhr;this.initialized=true}},abort:function(request){if(!request.completed){request.xhr.onreadystatechange=function(){};request.xhr.abort()}}}}var xhrClient=createXhrClient();var addEventListenerSupported=typeof document.addEventListener!=UNDEF&&typeof document.removeEventListener!=UNDEF;var addEvent;if(addEventListenerSupported){addEvent=function(obj,eventType,listener){obj.addEventListener(eventType,listener,false)}}else if(typeof document.attachEvent!=UNDEF&&typeof document.detachEvent!=UNDEF){addEvent=function(obj,eventType,listener){obj.attachEvent("on"+eventType,listener)}}else{return}(function(){var docReady=false;function pageLoadHandler(){if(!docReady){docReady=true;window.setTimeout(function(){Point.enablePoint(!!Point.enableImmediately)},1)}}if(addEventListenerSupported){document.addEventListener("DOMContentLoaded",pageLoadHandler,false)}addEvent(window,"load",pageLoadHandler)})();var isEditable=function(){var testEl=document.createElement("div");if(typeof testEl.isContentEditable!=UNDEF){return function(el){return el.isContentEditable}}else if(typeof testEl.contentEditable!=UNDEF){return function(el){if(!el){return false}var ce=el.contentEditable;return/^(true)?$/.test(ce)?true:ce=="false"?false:isEditable(el.parentNode)}}else{return function(){return false}}}();var pointSpanInheritStyles=["backgroundColor","color","fontFamily","cursor","direction","fontStyle","fontVariant","fontWeight","letterSpacing","lineHeight","opacity","textDecoration","textTransform","whiteSpace","wordSpacing","wordWrap"];var getEffectiveStyle;if(typeof window.getComputedStyle!=UNDEF){getEffectiveStyle=function(el){return Point.getDocument(el).defaultView.getComputedStyle(el,null)}}else if(typeof document.createElement("div").currentStyle!=UNDEF){getEffectiveStyle=function(el){return el.currentStyle}}else{getEffectiveStyle=function(){return{}}}function inheritParentStyles(el,cssPropertyNames){var parentStyle=getEffectiveStyle(el.parentNode);var cssPropertyName;for(var i=0,len=cssPropertyNames.length;i<len;i++){cssPropertyName=cssPropertyNames[i];el.style[cssPropertyName]=parentStyle[cssPropertyName]}}var hasClass,addClass,removeClass;function classNameContainsClass(fullClassName,className){return!!fullClassName&&new RegExp("(?:^|\\s)"+className+"(?:\\
6s|$)").test(fullClassName)}hasClass=function(el,className){if(el.nodeType!==1){return false}if(typeof el.classList=="object"){return el.nodeType==1&&el.classList.contains(className)}else{var classNameSupported=typeof el.className=="string";var elClass=classNameSupported?el.className:el.getAttribute("class");return classNameContainsClass(elClass,className)}};addClass=function(el,className){if(el.nodeType!==1){return}if(typeof el.classList=="object"){el.classList.add(className)}else{var classNameSupported=typeof el.className=="string";var elClass=classNameSupported?el.className:el.getAttribute("class");if(elClass){if(!classNameContainsClass(elClass,className)){elClass+=" "+className}}else{elClass=className}if(classNameSupported){el.className=elClass}else{el.setAttribute("class",elClass)}}};removeClass=function(){function replacer(matched,whiteSpaceBefore,whiteSpaceAfter){return whiteSpaceBefore&&whiteSpaceAfter?" ":""}return function(el,className){if(el.nodeType!==1){return}if(typeof el.classList=="object"){el.classList.remove(className)}else{var classNameSupported=typeof el.className=="string";var elClass=classNameSupported?el.className:el.getAttribute("class");if(!elClass){return}elClass=elClass.replace(new RegExp("(^|\\s)"+className+"(\\s|$)"),replacer);if(classNameSupported){el.className=elClass}else{el.setAttribute("class",elClass)}}}}();function replaceClass(el,newCssClass,oldCssClass){removeClass(el,oldCssClass);addClass(el,newCssClass)}var addStyleRule=function(selector,rule,styleSheet){var el,heads;if(!styleSheet){heads=document.getElementsByTagName("head");if(heads[0]){el=document.createElement("style");if(el){el.setAttribute("type","text/css");el.setAttribute("media","screen");heads[0].appendChild(el);if(document.styleSheets&&document.styleSheets.length){styleSheet=document.styleSheets[document.styleSheets.length-1]}el=null}}}if(styleSheet){if(styleSheet.addRule){styleSheet.addRule(selector,rule)}else{if(typeof styleSheet.cssText=="string"){styleSheet.cssText=selector+" {"+rule+"}"}else{if(styleSheet.insertRule){styleSheet.insertRule(selector+" {"+rule+"}",styleSheet.cssRules.length)}}}}return styleSheet};function isDescendantOf(descendant,ancestor){var node=descendant;while(node){if(node===ancestor){return true}node=node.parentNode}return false}function getBlockContainer(el){var node=el;while(node){if(node.nodeName=="BODY"||getEffectiveStyle(node).display=="block"){return node}node=node.parentNode}return null}var currentWordSpans=[];function preloadImage(src){(new Image).src=src}function Cache(){this.store={}}Cache.prototype={createContextKey:function(context){return context?context.wordCharIndex+":"+context.text:"[none]"},set:function(lang,word,context,data){if(!this.store[lang]){this.store[lang]={}}var contextKey=this.createContextKey(context);if(!this.store[lang][contextKey]){this.store[lang][contextKey]={}}this.store[lang][contextKey][word]=new CacheItem(data)},get:function(lang,word,context){var cacheItem,contextKey=this.createContextKey(context);if(this.store[lang]&&this.store[lang][contextKey]&&this.store[lang][contextKey][word]){cacheItem=this.store[lang][contextKey][word];if(cacheItem instanceof CacheItem&&new Date<cacheItem.expires){return cacheItem.data}}return null},clear:function(){this.store={}}};function CacheItem(data){this.data=data;this.expires=new Date(+new Date+Point.cacheExpiry)}return{version:"%%build:version%%",lastEventTarget:null,timeoutId:null,pointActive:false,spanified:false,xhrClient:xhrClient,currentRequest:null,requestedWord:"",requestPending:false,responseFormat:"xml",useServerProxy:true,useCookie:true,maxSymbols:4,symbolSize:80,tooltipTargetX:0,tooltipTargetY:0,tooltipDiv:null,tooltipVisible:false,cacheTooltips:true,cacheExpiry:864e5,cache:new Cache,hoveringOverWord:false,waitIconDiv:null,accessKey:"P",testHash:"#pointtest",testMode:false,testTimeout:1e4,blacklistedWords:["a","the","an","if","then","but","because","therefore","Corina","of","so","than","though","would","works","wouldn't"],blackl
6istedClasses:["display_cml","display_cml_divs"],defaultLanguage:"English_UK",languageCssClasses:{point_czech:"Czech",point_danish:"Danish",point_dutch:"Dutch",point_english_uk:"English_UK",point_english_us:"English_US",point_english_au:"English_AU",point_english_nz:"English_NZ",point_english_ca:"English_CA",point_finnish:"Finnish",point_french:"French",point_french_ca:"French_CA",point_greek:"Greek",point_hungarian:"Hungarian",point_italian:"Italian",point_latvian:"Latvian",point_norwegian:"Norwegian",point_polish:"Polish",point_portuguese:"Portuguese",point_spanish:"Spanish",point_romanian:"Romanian",point_swedish:"Swedish",point_turkish:"Turkish"},showImageDownloadTimes:false,symboliseContext:true,maxContextWordsToSymbolise:40,spanifyOnLoad:true,despanifyWhenDisabled:false,enablePointCalled:false,startHoverCalled:false,cssClasses:cssClasses,displayTooltipCallback:null,useOldSymboliser:false,varyGroupSkinTones:true,log:function(message,ex){if(window.console&&window.console.log){if(ex){window.console.log(message,ex)}else{window.console.log(message)}}},getDocument:function(node){if(node.nodeType==9){return node}else if(typeof node.ownerDocument!=UNDEF){return node.ownerDocument}else if(typeof node.document!=UNDEF){return node.document}else if(node.parentNode){return Point.getDocument(node.parentNode)}},getBody:function(doc){return doc.body||doc.getElementsByTagName("body")[0]},getDocumentScroll:function(win,doc){if(typeof win.pageYOffset==="number"){return[win.pageXOffset,win.pageYOffset]}else if(typeof doc.compatMode==="string"&&doc.compatMode.indexOf("CSS")>=0&&doc.documentElement&&typeof doc.documentElement.scrollTop=="number"){return[doc.documentElement.scrollLeft,doc.documentElement.scrollTop]}else if(doc.body&&typeof doc.body.scrollTop=="number"){return[doc.body.scrollLeft,doc.body.scrollTop]}return[0,0]},getObjectPosition:function(el){var box=el.getBoundingClientRect();return{left:box.left+pageXOffset,top:box.top+pageYOffset,width:box.right-box.left,height:box.bottom-box.top}},getFrameForDocument:function(searchDocument){var documents=Point.findAllDocuments(),tags;for(var iDoc=0;iDoc<documents.length;iDoc++){tags=["frame","iframe"];for(var iTag=0;iTag<tags.length;iTag++){var frames=documents[iDoc].getElementsByTagName(tags[iTag]);for(var i=0;i<frames.length;i++){var frame=frames[i];var frameDoc=Point.getFrameDocument(frame);if(searchDocument==frameDoc){return frame}}}}return null},array_contains:function(arr,val){for(var i=0,len=arr.length;i<len;++i){if(arr[i]===val){return true}}return false},hasClass:hasClass,addClass:addClass,removeClass:removeClass,replaceClass:replaceClass,createCookie:function(name,value,days){var expires="";if(days){var date=new Date;date.setTime(date.getTime()+days*24*60*60*1e3);expires="; expires="+date.toGMTString()}document.cookie=name+"="+value+expires+"; path=/"},readCookie:function(name){var nameEQ=name+"=";var ca=document.cookie.split(";");for(var i=0,len=ca.length;i<len;i++){var c=ca[i];while(c.charAt(0)==" "){c=c.substring(1,c.length)}if(c.indexOf(nameEQ)===0){return c.substring(nameEQ.length,c.length)}}return null},eraseCookie:function(name){Point.createCookie(name,"",-1)},addNode:function(parent,node,next){try{if(next===null){parent.appendChild(node)}else{parent.insertBefore(node,next)}}catch(ex){Point.log("Error in addNode: "+ex.message)}},stripPunctuation:function(word){return word.replace(startPunctuationRegex,"").replace(endPunctuationRegex,"")},wrapInSpan:function(node,extraCssClass,blacklisted){var newSpan=node.ownerDocument.createElement("span");if(blacklisted){newSpan.className=cssClasses.allSpans+" "+cssClasses.noSymbolSpan}else{newSpan.className=cssClasses.allSpans+" "+cssClasses.span}if(extraCssClass){newSpan.className+=" "+extraCssClass}addEvent(newSpan,"mouseover",Point.mouseOverWord);addEvent(newSpan,"click",Point.mouseOverWord);addEvent(newSpan,"mouseout",Point.mouseOutWord);Point.addNode(node.parentNode,newSpan,node);node.parentNode.removeChild(node);newSpan.appendChild(node);if(Point.spansInheritParentStyles){inheritParentStyles(newSpan,pointSpanInheritStyles)}return newSpan},isNodeBlacklisted:function(node){return node.nodeType===1&&Point.array_contains(Point.blacklistedElements,node.tagName.toLowerCase())},isWordBlacklisted:function(word){var normalizedWord=Point.stripPunctuation(word.toLowerCase());for(var i=0,len=Point.blacklistedWords.length;i<len;++i){if(Point.blacklistedWords[i].toLowerCase()===normalizedWord){return true}}return false},spanify:function(node){if(node!==null&&!Point.hasClass(node,cssClasse
6s.allSpans)&&!Point.cssClassBlacklistMatcher.matches(node)){var isBlacklistedElement=Point.isNodeBlacklisted(node);var c=node.childNodes;for(var i=0;i<c.length;i++){var child=c[i];var nextNode=null;if(i<c.length-1){nextNode=c[i+1]}if(child.nodeType==3){if(isBlacklistedElement){continue}child.parentNode.removeChild(child);--i;var str=child.data;while(str.length>0){var wordmatch=str.match(wordRegex);if(wordmatch!==null){var word=wordmatch[0];var newText=Point.getDocument(node).createTextNode(word);Point.addNode(node,newText,nextNode);Point.wrapInSpan(newText,null,Point.isWordBlacklisted(word));++i;str=str.slice(word.length)}var spacematch=str.match(spaceRegex);if(spacematch!==null){var spacetext=spacematch[0];var space=Point.getDocument(node).createTextNode(spacetext);Point.addNode(node,space,nextNode);++i;str=str.slice(space.length)}}}else if(child.nodeType==1){if(isEditable(child)){continue}var ignoreChild=Point.isNodeBlacklisted(child);switch(child.nodeName.toLowerCase()){case"select":if(!ignoreChild){Point.wrapInSpan(child,cssClasses.select)}break;case"input":if(!ignoreChild){var span=Point.wrapInSpan(child,cssClasses.input);if(child.type==="text"){Point.addClass(span,cssClasses.variableContent)}}break;case"img":if(!ignoreChild){if(child.alt){Point.wrapInSpan(child,cssClasses.image)}}break;case"frame":case"iframe":if(!ignoreChild){addEvent(child,"load",function(frame){return function(){window.setTimeout(function(){Point.spanifyFrame(frame)},100)}}(child));Point.spanifyFrame(child)}break;default:Point.spanify(child);break}}else{Point.spanify(child)}}}},spanifyFrames:function(){},despanifyChildNodes:function(node){var child=node.firstChild,nextChild;while(child){nextChild=child.nextSibling;Point.despanify(child);child=nextChild}},despanify:function(node){if(arguments.length==0){node=document}if(node){var previousSibling=node.previousSibling;switch(node.nodeType){case 1:if(Point.hasClass(node,cssClasses.allSpans)){var child=node.firstChild;if(child.nodeType==3&&previousSibling&&previousSibling.nodeType==3){previousSibling.data+=child.data}else{node.parentNode.insertBefore(child,node)}node.parentNode.removeChild(node)}else{switch(node.nodeName.toLowerCase()){case"input":Point.removeClass(node,cssClasses.variableContent);break;case"frame":case"iframe":Point.despanifyFrame(node);break;default:Point.despanifyChildNodes(node);break}}break;case 3:if(previousSibling&&previousSibling.nodeType==3){previousSibling.data+=node.data;node.parentNode.removeChild(node)}break;default:Point.despanifyChildNodes(node);break}}},despanifyFrame:function(frame){try{var doc=Point.getFrameDocument(frame);var bodies=doc.getElementsByTagName("body");if(bodies[0]){Point.despanify(bodies[0])}var framesets=doc.getElementsByTagName("frameset");if(framesets[0]){Point.despanify(framesets[0])}}catch(ex){}},getFrameDocument:function(frame){return frame.contentDocument||frame.contentWindow.document},spanifyFrame:function(frame){try{var doc=Point.getFrameDocument(frame);if(doc.designMode!="on"){var bodies=doc.getElementsByTagName("body");if(bodies[0]){Point.spanify(bodies[0])}var framesets=doc.getElementsByTagName("frameset");if(framesets[0]){Point.spanify(framesets[0])}var heads=doc.getElementsByTagName("head");if(heads[0]){var links=Point.findPointCssLinks();for(var i=0;i<links.length;i++){var elem=doc.createElement("link");elem.setAttribute("rel","stylesheet");elem.setAttribute("media","screen");elem.setAttribute("href",links[i]);heads[0].appendChild(elem)}}}}catch(ex){}},setSpanClasses:function(node){if(node!==null){var c=node.childNodes;for(var i=0;i<c.length;i++){var child=c[i];var nextNode=null;if(i<c.length-1){nextNode=c[i+1]}if(child.nodeType==1){if(Point.pointActive){if(Point.hasClass(child,cssClasses.disabledSpan)){Point.replaceClass(child,cssClasses.span,cssClasses.disabledSpan)}if(Point.hasClass(child,cssClasses.disabledNoSymbolSpan)){Point.replaceClass(child,cssClasses.noSymbolSpan,cssClasses.disabledNoSymbolSpan)}}else{if(Point.hasClass(child,cssClasses.span)){Point.replaceClass(child,cssClasses.disabledSpan,cssClasses.span)}
6if(Point.hasClass(child,cssClasses.noSymbolSpan)){Point.replaceClass(child,cssClasses.disabledNoSymbolSpan,cssClasses.noSymbolSpan)}}}Point.setSpanClasses(child)}}},enablePointForNode:function(node){Point.spanify(node)},createCssClassMatcher:function(cssClasses){if(!cssClasses){return{matches:function(){return false}}}var tagNameByClass={};if(typeof cssClasses=="string"){cssClasses=[cssClasses]}for(var i=0,len=cssClasses.length,cssClass,pos;i<len;++i){cssClass=cssClasses[i];pos=cssClass.indexOf(".");if(pos>-1){cssClasses[i]=cssClass.slice(pos+1);tagNameByClass[cssClasses[i]]=cssClass.slice(0,pos).toLowerCase()}}return{matches:function(el){if(el&&el.nodeType==1){var tagName=el.tagName.toLowerCase();for(var i=0,len=cssClasses.length;i<len;++i){cssClass=cssClasses[i];if(Point.hasClass(el,cssClass)&&(!tagNameByClass[cssClass]||tagNameByClass[cssClass]==tagName)){return true}}}return false}}},createCssClassMatchers:function(){Point.cssClassWhitelistMatcher=Point.createCssClassMatcher(Point.pointEnabledDivClass);Point.cssClassBlacklistMatcher=Point.createCssClassMatcher(Point.blacklistedClasses)},findElements:function(node){if(node!==null){var processChildren=true;if(node.nodeType==1&&Point.cssClassWhitelistMatcher.matches(node)){Point.enablePointForNode(node);processChildren=false}if(processChildren){var child=node.firstChild;while(child){Point.findElements(child);child=child.nextSibling}}}},nodeText:function(node){var str="",select,childNodes,i,len;if(node!==null){if(Point.hasClass(node,cssClasses.select)){select=node.firstChild;str=select.options[select.selectedIndex].text}else if(Point.hasClass(node,cssClasses.input)){str=node.firstChild.value}else if(Point.hasClass(node,cssClasses.image)){str=node.firstChild.alt}else{childNodes=node.childNodes;for(i=0,len=childNodes.length;i<len;++i){if(childNodes[i].nodeType==3){str+=childNodes[i].data}}}}return str},getPointSpansInElement:function(el){var allSpansNodeList=el.getElementsByTagName("span"),pointSpansNodeList=[];for(var i=0,len=allSpansNodeList.length;i<len;++i){if(Point.hasClass(allSpansNodeList[i],cssClasses.allSpans)){pointSpansNodeList.push(allSpansNodeList[i])}}return pointSpansNodeList},getContext:function(span){var block=getBlockContainer(span);var pointSpans=Point.getPointSpansInElement(block);var contextSpans=[],contextWords=[];var spanContextCharIndex,wordCount=pointSpans.length,spanLength,spanIndex;for(var i=0;i<wordCount;++i){contextSpans.push(pointSpans[i]);if(span==pointSpans[i]){spanIndex=i}}if(wordCount>Point.maxContextWordsToSymbolise){var halfTheWordsCount=Math.floor(Point.maxContextWordsToSymbolise/2);if(spanIndex<halfTheWordsCount){contextSpans=contextSpans.slice(0,Point.maxContextWordsToSymbolise)}else if(wordCount-spanIndex<halfTheWordsCount){contextSpans=contextSpans.slice(-Point.maxContextWordsToSymbolise)}else{var startIndex=spanIndex-halfTheWordsCount;contextSpans=contextSpans.slice(startIndex,startIndex+Point.maxContextWordsToSymbolise)}}for(var j=0,len=contextSpans.length,currentSpanWord;j<len;++j){currentSpanWord=Point.nodeText(contextSpans[j]);if(contextSpans[j]==span){spanContextCharIndex=contextWords.length?contextWords.join(" ").length+1:0;spanLength=currentSpanWord.length;spanIndex=j}contextWords[j]=currentSpanWord}return{wordCharIndex:spanContextCharIndex,wordLength:spanLength,text:contextWords.join(" "),spans:contextSpans,mainSpan:span,mainSpanIndex:spanIndex}},processTipData:function(data){var tooltipData=getResponseFormat()=="xml"?Point.parseXmlTooltipData(data):Point.parseJsonTooltipData(data);Point.loadTooltip(tooltipData,Point.lastElementTarget)},respanify:function(){if(Point.enablePointCalled){if(Point.findContentById){var ids=typeof Point.pointEnabledDivId=="string"?[Point.pointEnabledDivId]:Point.pointEnabledDivId;for(var i=0,len=ids.length;i<len;++i){Point.spanify(document.getElementById(ids[i]))}}if(Point.findContentByClass||!Point.findContentById&&typeof Point.findContentByClass==UNDEF){Point.findElements(document)}Point.spanified=true}},startHover:function(){Point.addWaitIcon();window.setTimeout(function(){Point.respanify();Point.createTooltip()},1);Point.startHoverCalled=true},disableSpansForWord:function(node,word){if(node!==null){var c=node.childNodes;for(var i=0;i<c.length;i++){var child=c[i];
6if(child.nodeType==1&&(Point.hasClass(child,cssClasses.span)||Point.hasClass(child,cssClasses.highlightSpan))&&!Point.hasClass(child,cssClasses.variableContent)&&Point.stripPunctuation(Point.nodeText(child))==word){if(Point.hasClass(child,cssClasses.highlightSpan)){Point.replaceClass(child,cssClasses.noSymbolHighlightSpan,cssClasses.highlightSpan)}else{Point.replaceClass(child,cssClasses.noSymbolSpan,cssClasses.span)}}Point.disableSpansForWord(child,word)}}},tooltipImagesLoaded:function(){var images=Point.tooltipDiv.getElementsByTagName("img"),i=images.length;while(i--){if(!images[i].complete){return false}}return true},createTooltip:function(){var div=document.createElement("div");div.id="point_Point.tooltipDiv";div.className="point_sym_tooltip";div.style.visibility="hidden";Point.getBody(document).appendChild(div);Point.tooltipDiv=div;var imageLoadTimer=null;var checkLoaded=function(){if(Point.tooltipImagesLoaded()){window.clearInterval(imageLoadTimer);if(Point.tooltipDiv.getElementsByTagName("img").length){Point.displayTooltip()}else{Point.waitIconDiv.style.display="none";Point.disableAllSpansForWord(Point.stripPunctuation(Point.requestedWord))}}};Point.displayTooltipWhenImagesLoaded=function(){if(imageLoadTimer){window.clearInterval(imageLoadTimer)}imageLoadTimer=window.setInterval(checkLoaded,50)};Point.stopWaitingForTooltipImages=function(){window.clearInterval(imageLoadTimer);imageLoadTimer=null}},disableAllSpansForWord:function(word){var documents=Point.findAllDocuments();for(var i=0,len=documents.length;i<len;++i){Point.disableSpansForWord(documents[i],word)}},parseXmlTooltipData:function(xml){var i,len,j,jLen,imageEls,images;var xmlDoc=parseXml(xml);var cmapsEl=xmlDoc.documentElement;var cmapEls=Array.from(cmapsEl.childNodes).filter(node=>node.nodeType===Node.ELEMENT_NODE);var cmaps=[];for(i=0,len=cmapEls.length;i<len;++i){imageEls=cmapEls[i].getElementsByTagName("image");images=[];for(j=0,jLen=imageEls.length;j<jLen;++j){images.push({src:imageEls[j].firstChild.data,fallbackSrc:imageEls[j].getAttribute("fallbacksrc")})}cmaps.push(images)}const noSymbolElements=xmlDoc.getElementsByTagName("noSymbolHighlightSpan");if(noSymbolElements.length){Point.addClass(currentWordSpans,cssClasses.noSymbolSpan)}return{text:cmapsEl.getAttribute("text"),precedingCharCount:cmapsEl.getAttribute("precedingCharCount"),followingCharCount:cmapsEl.getAttribute("followingCharCount"),cmaps:cmaps}},parseJsonTooltipData:function(json){const data=JSON.parse(json);const allCmaps=data.cmaps||[];const cmaps=allCmaps.map(group=>group.map(item=>({src:item.src||"",fallbackSrc:item.fallbackSrc||""})));if(data.noSymbolHighlightSpan){Point.addClass(currentWordSpans,cssClasses.noSymbolSpan)}return{text:data.text||"",precedingCharCount:data.precedingCharCount,followingCharCount:data.followingCharCount,cmaps:cmaps}},loadTooltip:function(tooltipData,span){var text=tooltipData.text;var i,len,j,jLen,p,images;Point.tooltipDiv.innerHTML="";function createImage(src,fallbackSrc){var image=document.createElement("img");var start=+new Date;var usedFallback=false;image.onload=function(){this.onerror=null;this.onload=null;var loadTime=+new Date-start;if(Point.showImageDownloadTimes&&this.parentNode){this.parentNode.insertBefore(document.createTextNode("("+loadTime+"ms)"),this.nextSibling)}};image.onerror=function(e){if(!usedFallback&&fallbackSrc){usedFallback=true;this.src=fallbackSrc}else{this.onerror=null;this.onload=null;this.nextSibling.parentNode.removeChild(this.nextSibling);this.nextSibling.parentNode.removeChild(this.nextSibling);this.parentNode.removeChild(this)}};image.alt="";image.className="point_symbol";image.src=fallbackSrc;return image}if(tooltipData.cmaps.length>0){for(i=0,len=tooltipData.cmaps.length;i<len;++i){p=document.createElement("p");p.className="point_cmap";images=tooltipData.cmaps[i];for(j=0,jLen=images.length;j<jLen;++j){p.appendChild(createImage(images[j].src,images[j].fallbackSrc))}p.appendChild(document.createElement("br"));p.appendChild(document.createTextNode(text));Point.tooltipDiv.appendChild(p)}var precedingCharCount=tooltipData.precedingCharCount;var followingCharCount=tooltipData.followingCharCount;if(precedingCharCount||followingCharCount){var context=Point.requestedContext;var charCount=0,currentSpan=context.mainSpan,currentSpanText,currentSpanIndex;var finalSpan=currentSpan;if(precedingCharCount){currentSpanIndex=context.mainSpanIndex-1;while(context.spans[currentSpanIndex]&&charCount<precedingCharCount){currentSpan=context.spans[currentSpanIndex];currentSpanText=Point.nodeText(currentSpan);currentWordSpans.push(currentSpan);Point.highlightSpan(currentSpan,true);charCount+=currentSpanText.length+1;currentSpanIndex--}}if(followingCharCount){var charCount=0;currentSpanIndex=context.mainSpanIndex+1;while(context.spans[currentSpanIndex]&&charCount<followingCharCount){currentSpan=context.spans[currentSpanIndex];currentSpanText=Point.nodeText(currentSpan);const currentSpanTextNoPunctuation=currentSpanText.replace(/[.,\/#!$%\^&\*;:{}=\-_`~()]/g,"").trim();const totalCharsWithSpace=charCount+currentSpanTextNoPunctuation.length+1;if(totalCharsWithSpace>followingCharCount){break}currentWordSpans.push(currentSpan);Point.highlightSpan(currentSpan,true);finalSpan=currentSpan;charCount=totalCharsWithSpace;currentSpanIndex++}}span=finalSpan}var spanPos=Point.getElementPosition(span);Point.tooltipTargetX=spanPos.x+10;Point.tooltipTargetY=spanPos.y+4;var waitStyle=Point.waitIconDiv.style;waitStyle.left=Point.tooltipTargetX+"px";waitStyle.top=Point.tooltipTargetY+"px";waitStyle.display="block";Point.displayTooltipWhenImagesLoaded()}else{Point.disableAllSpansForWord(Point.stripPunctuation(Point.requestedWord))}},displayTooltip:function(){if(!Point.hoveringOverWord){if(Point.displayTooltipCallback){Point.displayTooltipCallback(Point.tooltipDiv.innerHTML)}return}var windowwidth=0,windowheight=0;var docEl=document.documentElement,body=Point.getBody(document);if(typeof window.innerWidth=="number"){windowwidth=window.innerWidth;windowheight=window.innerHeight}else if(docEl&&(docEl.clientWidth||docEl.clientHeight)){windowwidth=docEl.clientWidth;windowheight=docEl.clientHeight}else if(body&&(body.clientWidth||body.clientHeight)){windowwidth=body.clientWidth;windowheight=body.clientHeight}Point.waitIconDiv.style.display="none";var divbase=Point.tooltipTargetY+Point.tooltipDiv.clientHeight;var divright=Point.tooltipTargetX+Point.tooltipDiv.clientWidth;var vistop=docEl.scrollTop+body.scrollTop;var visleft=docEl.scrollLeft+body.scrollLeft;var visbase=vistop+windowheight;var visright=visleft+windowwidth;var baseoverlap=divbase-visbase;var rightoverlap=divright-visright;if(baseoverlap>0){var newtop=Point.tooltipTargetY-baseoverlap-20;if(newtop<vistop){newtop=vistop+5}Point.tooltipTargetY=newtop}if(rightoverlap>0){var pos=Point.getObjectPosition(Point.lastElementTarget);var newleft=Point.tooltipTargetX-Point.tooltipDiv.offsetWidth-pos["width"]-20;if(newleft>=visleft){Point.tooltipTargetX=newleft}}var style=Point.tooltipDiv.style;style.left=Point.tooltipTargetX+"px";style.top=Point.tooltipTargetY+"px";style.visibility="visible";Point.tooltipVisible=true;if(Point.displayTooltipCallback){Point.displayTooltipCallback(Point.tooltipDiv.innerHTML)}},hideTooltip:function(){Point.tooltipVisible=false;var style=Point.tooltipDiv.style;style.visibility="hidden";style.left="0";style.top="-1000px";Point.stopWaitingForTooltipImages()},findAllDocuments:function(win,docs){if(!docs){docs=[]}if(!win){win=window}try{docs.push(win.document);for(var i=0;i<win.frames.length;i++){Point.findAllDocuments(win.frames[i],docs)}}catch(ex){}return docs},addWaitIcon:function(){Point.waitIconDiv=document.createElement("div");Point.waitIconDiv.id="point_waiticon";Point.waitIconDiv.className="point_waiticon";Point.waitIconDiv.style.display="none";if(Point.waitIconImage){Point.waitIconDiv.style.backgroundImage="url("+Point.waitIconImage+")"}Point.getBody(document).appendChild(Point.waitIconDiv)},setPointState:function(enabled){if(enabled){if(!Point.startHoverCalled){Point.startHover()}else if(!Point.spanified){Point.respanify()}Point.pointActive=enabled;Point.setSpanClasses(document)}else if(Point.spanified&&Point.despanifyWhenDisabled){Point.despanify(document);Point.spanified=false;Point.pointActive=false}else{Point.pointActive=false;Point.setSpanClasses(document)}},preloadImages:function(){preloadImage(Point.waitIconImage);preloadImage(Point.disabledPointImage);preloadImage(Point.enabledPointImage)},runTests:function(callback){var xhrReq,resultLines=[],success=true;Point.testMode=true;Point.requestedWordLang=Point.defaultLanguage;Point.requestedWord=magicWord;var finish=function(){Point.testMode=false;resultLines.push("",success?"Point is configured correctly.":"Point is not configured correctly. Please fix the problems above.");callback(success,resultLines)};var testXhr=function(testCallback){var serverUrl=Point.serverUrl;var xhrName="XHR CORS request at "+serverUrl;
6if(!xhrClient.supported){resultLines.push(xhrName+" cannot be tested: CORS is not supported in this browser.");testCallback();return}var timer=window.setTimeout(function(){xhrReq.abort();resultLines.push(xhrName+" FAILED: Timed out.");testCallback()},Point.testTimeout);xhrReq=xhrClient.sendRequest(function(responseText){window.clearTimeout(timer);testCallback()})};testXhr(finish)},enablePoint:function(startImmediately){if(!Point.enablePointCalled){Point.preloadImages();Point.createCssClassMatchers();xhrClient.init();var gotWorkingClient=xhrClient.supported;if(window.location.hash==Point.testHash){Point.runTests(function(success,resultLines){alert(resultLines.join("\n"))})}if(gotWorkingClient){var start=startImmediately;if(typeof startImmediately==UNDEF){start=true}if(Point.useCookie){var pointEnabled=Point.readCookie(pointEnabledCookieName);if(pointEnabled==="true"){start=true}else if(pointEnabled==="false"){start=false}}if(start||Point.spanifyOnLoad){Point.setPointState(start)}Point.initPointImage()}else{Point.notSupported=true}Point.enablePointCalled=true}},initPointImage:function(){var image=document.getElementById("point_togglebutton");if(image){var a=image.parentNode;if(a.nodeType!=1||a.tagName.toLowerCase()!="a"){a=document.createElement("a");image.parentNode.insertBefore(a,image);a.appendChild(image)}image.style.borderWidth="0";if(!a.accessKey){a.accessKey=Point.accessKey}a.href="javascript:void Point.togglePoint();";if("onactivate"in a){a.onclick=function(){return false};a.onactivate=function(){Point.togglePoint();a.blur()}}image.onclick=null;image.title="Click to enable or disable Widgit Point, or use access key '"+a.accessKey+"'";a.title=image.title;image.src=Point.pointActive?Point.enabledPointImage:Point.disabledPointImage}},updatePointImage:function(){var image=document.getElementById("point_togglebutton");if(image){image.src=Point.pointActive?Point.enabledPointImage:Point.disabledPointImage}},togglePoint:function(){Point.setPointState(!Point.pointActive);Point.updatePointImage();Point.createCookie(pointEnabledCookieName,Point.pointActive?"true":"false",90)},getAncestorWithCssClass:function(node,cssClass){for(var n=node;n!==null;n=n.parentNode){if(n.nodeType===1&&Point.hasClass(n,cssClass)){return n}}return null},sendCurrentSpanRequest:function(){abortCurrentRequest();var cached=Point.cacheTooltips?Point.cache.get(Point.requestedWordLang,Point.requestedWord,Point.requestedContext):null;if(cached===null){var successCallback=function(xmlStr){Point.processTipData(xmlStr);if(Point.cacheTooltips){Point.cache.set(Point.requestedWordLang,Point.requestedWord,Point.requestedContext,xmlStr)}};Point.currentRequest=xhrClient.sendRequest(successCallback,function(){Point.log("XHR CORS request failed.")});Point.requestPending=true}else{Point.processTipData(cached)}},activateSpan:function(span){var word;if(Point.hasClass(span,cssClasses.span)||Point.hasClass(span,cssClasses.highlightSpan)){if(Point.hasClass(span,cssClasses.select)){var select=span.firstChild;word=select.options[select.selectedIndex].text}else if(Point.hasClass(span,cssClasses.input)){var input=span.firstChild;word=input.value}else{word=Point.nodeText(span)}var context=null;if(Point.symboliseContext){context=Point.getContext(span)}Point.requestedWord=word;Point.requestedWordLang=Point.getLang(span);Point.requestedContext=context;Point.sendCurrentSpanRequest()}},deactivateSpan:function(){for(var i=0,len=currentWordSpans.length;i<len;++i){Point.unhighlightSpan(currentWordSpans[i])}currentWordSpans.length=0;Point.cancelHover();Point.hoveringOverWord=false},doHover:function(){if(Point.pointActive){var span=Point.getAncestorWithCssClass(Point.lastEventTarget,cssClasses.allSpans);Point.activateSpan(span)}},getLang:function(el){var langForCssClass,classNames,node=el,i;while(node){if(node.className){classNames=node.className.split(" ");i=classNames.length;while(i--){langForCssClass=Point.languageCssClasses[classNames[i]];if(langForCssClass){return langForCssClass}}}node=node.parentNode}return Point.defaultLanguage},getEventTarget:function(evt){return evt.target||evt.srcElement},highlightSpan:function(span,highlightIfNoSymbol){if(Point.hasClass(span,cssClasse
6s.span)){Point.replaceClass(span,cssClasses.highlightSpan,cssClasses.span)}else if(Point.hasClass(span,cssClasses.noSymbolSpan)){var newCssClass=highlightIfNoSymbol?cssClasses.highlightSpan:cssClasses.noSymbolHighlightSpan;Point.replaceClass(span,newCssClass,cssClasses.noSymbolSpan);if(highlightIfNoSymbol){Point.addClass(span,cssClasses.restoreNoSymbol)}}},unhighlightSpan:function(span){if(Point.hasClass(span,cssClasses.highlightSpan)){var newCssClass=Point.hasClass(span,cssClasses.restoreNoSymbol)?cssClasses.noSymbolSpan:cssClasses.span;Point.replaceClass(span,newCssClass,cssClasses.highlightSpan)}else if(Point.hasClass(span,cssClasses.noSymbolHighlightSpan)){Point.replaceClass(span,cssClasses.noSymbolSpan,cssClasses.noSymbolHighlightSpan)}},getElementPosition:function(el){var posx=0,posy=0;var pos=Point.getObjectPosition(el);posx=pos.left+pos.width;posy=pos.top;var childDocument=Point.getDocument(el);while(childDocument!=document){var frame=Point.getFrameForDocument(childDocument);if(frame){var framePos=Point.getObjectPosition(frame);posx+=framePos.left;posy+=framePos.top;var wnd=Point.getFrameForDocument(childDocument).contentWindow;var scroll=Point.getDocumentScroll(wnd,childDocument);posx-=scroll[0];posy-=scroll[1];childDocument=Point.getDocument(frame)}else{break}}return{x:posx,y:posy}},mouseOverWord:function(e){Point.hoveringOverWord=true;var target=Point.getEventTarget(e);var span=Point.getAncestorWithCssClass(target,cssClasses.allSpans);if(!Point.array_contains(currentWordSpans,span)){currentWordSpans=[span];Point.highlightSpan(span);if(Point.pointActive&&!Point.tooltipVisible){Point.lastEventTarget=target;Point.lastElementTarget=span;Point.cancelHover();Point.timeoutId=window.setTimeout(Point.doHover,Point.hoverTimeout)}}},mouseOutWord:function(e){var target=Point.getEventTarget(e);var span=Point.getAncestorWithCssClass(target,cssClasses.allSpans);var toElement=e.relatedTarget||e.toElement;if(!isDescendantOf(toElement,span)){Point.deactivateSpan()}},cancelHover:function(){Point.hideTooltip();Point.waitIconDiv.style.display="none";if(Point.timeoutId){window.clearTimeout(Point.timeoutId);Point.timeoutId=null}abortCurrentRequest();Point.requestPending=false},findPointCssLinks:function(){var links=document.getElementsByTagName("link");var hrefs=[];for(var i=0;i<links.length;i++){if(links[i].rel.toLowerCase()=="stylesheet"&&links[i].href.toLowerCase().indexOf("point")!=-1&&(!links[i].media||links[i].media==""||links[i].media.toLowerCase()=="screen")){hrefs.push(links[i].href)}}return hrefs}}}();
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.