/* 
	glossarypopups.min.js (min = compressed)
	===============================================================
	Commerce Commission
	Glossary Popups - Grab defined words' definitions from the database, 
	and show in a positioned popup on hover.	
	
	Created 02.12.2009. Based on code created 29.05.2007.
	Last Updated: See SVN	
	
	Please make any changes to the uncompressed version: standardista-common.max.js	
	Then recompress at: http://www.refresh-sf.com/yui ('minify only')

	To sort, search for '@'		
	Debugging is via the Firebug console: console.debug
  ===============================================================
*/

var termsDefined=false;var definitions=0;function styleAsDefinitionLink(d){if(!(window["def_"+d].el.className)){window["def_"+d].el.className="glossaryterm"}}function unstyleAsDefinitionLink(d){window["def_"+d].el.className+="-nodefinition"}function getTermsToDefine(glossaryPageUrlSnippet){var content=document.getElementById("content");var content_links=content.getElementsByTagName("a");var c,d;d=0;for(c=0;c<content_links.length;c++){dt=content_links[c];if(dt.href){dtHref=dt.href;if(dtHref.indexOf(glossaryPageUrlSnippet)!=-1){window["def_"+d]=new Object();window["def_"+d].defined=false;window["def_"+d].el=dt;styleAsDefinitionLink(d);window["def_"+d].el.oldHref=dtHref;var strStart=(dtHref.indexOf("#")+1);var strEnd=dtHref.length;window["def_"+d].anchorName=dtHref.substring(strStart,strEnd);d++}}}definitions=d}function generatePopUps(){for(var d=0;d<definitions;d++){window["def_"+d].leading=document.createElement("SPAN");window["def_"+d].leading.className="access";window["def_"+d].leadingText=document.createTextNode(" (");window["def_"+d].closing=document.createElement("SPAN");window["def_"+d].closing.className="access";window["def_"+d].closingText=document.createTextNode(")");window["def_"+d].popupWrap=document.createElement("SPAN");window["def_"+d].popupWrap.className="glossarydefinition";window["def_"+d].popupHeader=document.createElement("SPAN");window["def_"+d].popupHeader.className="header";window["def_"+d].popupBody=document.createElement("SPAN");window["def_"+d].popupBody.className="body";window["def_"+d].popupBodyWrapper=document.createElement("SPAN");window["def_"+d].popupBodyWrapper.className="wrapper";window["def_"+d].popupBodyLiner=document.createElement("SPAN");window["def_"+d].popupBodyLiner.className="liner";window["def_"+d].popupBodyHeader=document.createElement("strong");window["def_"+d].popupHeaderText=document.createTextNode(window["def_"+d].el.innerHTML);window["def_"+d].popupBodyHeader.appendChild(window["def_"+d].popupHeaderText);window["def_"+d].popupBodyJoiner=document.createElement("span");window["def_"+d].popupBodyJoiner.className="access";window["def_"+d].popupBodyJoinerText=document.createTextNode(": ");window["def_"+d].popupFooter=document.createElement("SPAN");window["def_"+d].popupFooter.className="footer";window["def_"+d].leading.appendChild(window["def_"+d].leadingText);window["def_"+d].closing.appendChild(window["def_"+d].closingText);window["def_"+d].popupBody.appendChild(window["def_"+d].leading);window["def_"+d].popupBodyJoiner.appendChild(window["def_"+d].popupBodyJoinerText);window["def_"+d].popupBodyLiner.appendChild(window["def_"+d].popupBodyHeader);window["def_"+d].popupBodyLiner.appendChild(window["def_"+d].popupBodyJoiner);window["def_"+d].popupBodyWrapper.appendChild(window["def_"+d].popupBodyLiner);window["def_"+d].popupBody.appendChild(window["def_"+d].popupBodyWrapper);window["def_"+d].popupWrap.appendChild(window["def_"+d].popupHeader);window["def_"+d].popupWrap.appendChild(window["def_"+d].popupBody);window["def_"+d].popupWrap.appendChild(window["def_"+d].popupFooter);window["def_"+d].popupBody.appendChild(window["def_"+d].closing);window["def_"+d].el.appendChild(window["def_"+d].popupWrap)}}function redrawFix(e){var _this=ctGetEventTarget(e);_this.style.display="none";var fix=_this.offsetHeight;_this.style.display="inline-block"}function addLinkEvents(){for(var d=0;d<definitions;d++){if(window["def_"+d].defined===true){addEvent(window["def_"+d].el,"mouseover",emulateLinkInteraction,false);addEvent(window["def_"+d].el,"mouseout",emulateLinkInteraction,false);if(whichbrowser.isOpera){addEvent(window["def_"+d].el,"mouseover",redrawFix,false);addEvent(window["def_"+d].el,"mouseout",redrawFix,false)}}else{unstyleAsDefinitionLink(d)}window["def_"+d].el.removeAttribute("href")}}function constructAjaxQueryString(){var queryString="";for(var d=0;d<definitions;d++){if(d!==0){queryString+="|"}queryString+=(d+"="+window["def_"+d].anchorName)}return queryString}function deconstructAjaxResponseString(responseString){responses=responseString.split("|");responses_length=(responses.length-1);for(var r=0;r<responses_length;r++){responsePart=responses[r].split("=");if((responsePart.length==2)&&(responsePart[1]!="undefined")){window["def_"+r].popupText=document.createTextNode(responsePart[1]);window["def_"+r].popupBodyLiner.appendChild(window["def_"+r].popupText);window["def_"+r].defined=true}}addLinkEvents()}function findPos(obj){var curleft=0;var curtop=0;if(obj.offsetParent){curleft=obj.offsetLeft;curtop=obj.offsetTop;while(obj=obj.offsetParent){curleft+=obj.offsetLeft;curtop+=obj.offsetTop}}return[curleft,curtop]}function getDimension(el,dimension){if(dimension=="width"){return el.offsetWidth}else{if(dimension=="height"){return el.offsetHeight}}}function setGlossaryDefinitionOffset(linkEl){var glossarydefinitionEl=linkEl.getElementsByTagName("span")[0];var glossarydefinitionHeaderEl=glossarydefinitionEl.getElementsByTagName("span")[0];var glossarydefinitionBodyEl=glossarydefinitionEl.getElementsByTagName("span")[1];var glossarydefinitionFooterEl=glossarydefinitionEl.getElementsByTagName("span")[2];var glossarydefinitionOffsetLeft=0;var glossarydefinitionOffsetTop=0;var content=document.getElementById("content");var contentStart=findPos(content)[0];var contentWidth=getDimension(content,"width");var contentEnd=contentStart+contentWidth;var linkHeight=getDimension(linkEl,"height");var popupWidth=getDimension(glossarydefinitionBodyEl,"width");var popupHeight1=getDimension(glossarydefinitionBodyEl,"height");var popupHeight2=getDimension(glossarydefinitionHeaderEl,"height");var popupHeight3=getDimension(glossarydefinitionFooterEl,"height");var popupFlickerFix=3;glossarydefinitionOffsetTop=(linkHeight+popupHeight1+popupHeight2+popupHeight3+popupFlickerFix);var contentLeftoversAfterPopup=(contentWidth-popupWidth);var lhMinPos=contentStart;var lhMaxPos=(contentEnd-contentLeftoversAfterPopup);var rhMaxPos=contentEnd;var linkPosLeft=findPos(linkEl)[0];if((linkPosLeft>=lhMinPos)&&(linkPosLeft<lhMaxPos)){glossarydefinitionOffsetLeft=7}else{if((linkPosLeft+popupWidth)>=rhMaxPos){glossarydefinitionOffsetLeft=(linkPosLeft+popupWidth)-rhMaxPos}}glossarydefinitionEl.style.top=("-"+glossarydefinitionOffsetTop+"px");glossarydefinitionEl.style.left=("-"+glossarydefinitionOffsetLeft+"px")}function enhanceGlossaryLinks(){if(typeof(glossary_url_match)=="undefined"){return}var glossaryPageUrlSnippet=glossary_url_match;var serverSideScript=glossary_data_source;var jargon_buster_state=get_jargon_buster_state();if(jargon_buster_state=="on"){getTermsToDefine(glossaryPageUrlSnippet);if(definitions>0){generatePopUps();sendRequestGet("glossary_definition",constructAjaxQueryString(),serverSideScript)}}};

