var icon=document.createElement('span');icon.className="footnote-indicator";var inlineWindowCount=0;function add_event(obj,evType,fn,useCapture){if(obj.addEventListener){obj.addEventListener(evType,fn,useCapture);return true;}else if(obj.attachEvent){var r=obj.attachEvent("on"+evType,fn);return r;}else{return false;}}
function get_xmlhttp(){var xmlhttp=false;/*@cc_on @*/
/*@if (@_jscript_version >= 5)
	// JScript gives us Conditional compilation, we can cope with old IE versions.
	// and security blocked creation of the objects.
	 try {
	  xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	 } catch (e) {
	  try {
	   xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	  } catch (E) {
	   xmlhttp = false;
	  }
	 }
	@end @*/
if(!xmlhttp&&typeof XMLHttpRequest!='undefined'){xmlhttp=new XMLHttpRequest();}
return xmlhttp;}
function xml_to_DOM(xml){var ret=false;if(document.implementation.createDocument){var parser=new DOMParser();ret=parser.parseFromString(xml,"text/xml");}else if(window.ActiveXObject){ret=new ActiveXObject("Microsoft.XMLDOM");ret.async="false";ret.loadXML(xml);}
return ret;}
function rewriteLinks(){var links,currentLink;links=document.getElementsByTagName('a');for(var i=0;i<links.length;i++){currentLink=links[i];if(currentLink.className=='footnoted'&&currentLink.getAttribute('inlineviewappended')!='true'&&currentLink.getAttribute('inlineviewlink')!='true'&&currentLink.className!='image'){appendInlineButton(currentLink);}}}
function appendInlineButton(link){var container=document.createElement('span');container.style.whiteSpace='nowrap';link.style.whiteSpace='normal';var linkTitle=(link.title?'title="'+link.title+'" ':'');container.innerHTML='<a '+linkTitle+'href="'+link.href+'" inlineviewlink="true" style="text-decoration: none; margin-left: 0.3em;"></a>';var newLink=container.firstChild;add_event(newLink,'click',inlineViewClickHandler,true);add_event(link,'click',inlineViewClickHandler,true);newLink.appendChild(icon.cloneNode(false));link.parentNode.insertBefore(container,link);container.insertBefore(link,newLink);link.setAttribute('inlineviewappended','true');return true;}
function inlineViewClickHandler(anEvent){console.log("Hello!");var event=(anEvent?anEvent:window.event);var target;if(event.currentTarget){target=event.currentTarget;}else if(event.target){target=event.target;}else if(event.srcElement){target=event.srcElement;}
var href,link;while(target&&target.tagName.toLowerCase()!=='a'&&target.tagName.toLowerCase()!=='img'){target=target.parentNode;}
if(target.tagName.toLowerCase()=='a'){href=target.href;link=target;}else if(target.tagName.toLowerCase()=='img'){href=target.parentNode.href;link=target.parentNode;}else{return false;}
inlineWindow=newInlineWindow(event,href,link);if(event.preventDefault){event.preventDefault();}else{event.returnValue=false;}
return true;}
function newInlineWindow(event,href,link){closeInlineWindows();var browserWidth;if(document.width){browserWidth=window.innerWidth;}else if(document.body.clientWidth){browserWidth=document.body.clientWidth;}else{browserWidth=640;}
var windowWidth=Math.round(browserWidth*0.45);var windowHeight=Math.round(window.innerHeight*0.45);var windowPadding=14;var windowTextPadding=5;var windowFontSize=10;var windowBorderSize=1;var windowButtonHeight=11;var windowButtonTextSize=12;var windowID=inlineWindowCount++;var windowFullID='inlineWindow-'+windowID;var noteTitle=(link.title?link.title:'textual note');if(noteTitle.indexOf(':')>-1){noteTitle=noteTitle.substring(0,noteTitle.indexOf(':'));}
var pageBoundPadding=10;var xpos,ypos;var elementTop=getElementOffset(link,'Top');var elementLeft=getElementOffset(link,'Left');var elementHeight=link.offsetHeight;if(elementLeft-(windowWidth/3)<pageBoundPadding){xpos=pageBoundPadding;}
else if(elementLeft+(windowWidth*2/3)>document.width-pageBoundPadding){xpos=document.width-pageBoundPadding-windowWidth;}
else{xpos=elementLeft-(windowWidth/3);}
ypos=elementTop+elementHeight+3;var container=document.createElement('div');container.id=windowFullID;var cssBoxWidth=Math.round((windowWidth-(windowPadding+windowBorderSize)*2)/browserWidth*100);var cssBoxHeight=windowHeight-(windowPadding+windowBorderSize*2);container.innerHTML='<div id="outerWindowCont-'+windowID+'" '+'class="float-a-note" style="'+'top: '+(ypos+9)+'px; left: '+xpos+'px; '+'margin: 0;'+'padding: '+Math.round((windowPadding-windowButtonHeight)/2)+'px '+windowPadding+'px '+windowPadding+'px; '+'max-height: '+cssBoxHeight+'px; '+'width: '+cssBoxWidth+'%; '+'border: '+windowBorderSize+'px solid #eee; '+'font-size: '+windowFontSize+'pt; '+'">'+'<div class="note-label" style="'+'float: left; '+'margin: 0 3px '+Math.round((windowPadding-windowButtonHeight)/2)+'px; '+'padding: 0 3px; '+'height: '+windowButtonHeight+'px; '+'font-size: '+windowButtonTextSize+'px; '+'line-height: '+windowButtonTextSize+'px; '+'">'+noteTitle+'</a></div>'+'<div class="note-label" style="'+'float: right; '+'margin: 0 3px '+Math.round((windowPadding-windowButtonHeight)/2)+'px; '+'padding: 0 3px; '+'height: '+windowButtonHeight+'px; '+'font-size: '+windowButtonTextSize+'px; '+'line-height: '+windowButtonTextSize+'px; '+'"><a href="#" onClick="closeInlineWindow('+windowID+'); return false;" style="text-decoration: none; border: none">close</a></div>'+'<div class="note-label" style="'+'float: right; '+'margin: 0 3px '+Math.round((windowPadding-windowButtonHeight)/2)+'px; '+'padding: 0 3px; '+'height: '+windowButtonHeight+'px; '+'font-size: '+windowButtonTextSize+'px; '+'line-height: '+windowButtonTextSize+'px; '+'"><a href="'+href+'" style="text-decoration: none; border: none;" onClick="closeInlineWindow('+windowID+'); return true;">expand</a></div>'+'<div id="innerWindowCont-'+windowID+'" class="footnote" style="'+'max-height: '+(cssBoxHeight-(windowPadding*2))+'px; '+'padding: '+windowTextPadding+'px; '+'">loading<span style="text-decoration: blink">...</span></div>'+'</div>'+'<div id="outerWindowTip-'+windowID+'" style="position: absolute;'+'left: '+(elementLeft-8)+'px;'+'top: '+ypos+'px;'+'height: 10px;'+'width: 17px;'+'background: transparent '+tipDownUrl+' 0px 0px no-repeat;'+'z-index: 10000;'+'"></div>';document.body.insertBefore(container,document.body.firstChild);populateInnerWindow(href,link,windowID);if(typeof(jQuery)!='undefined'){jQuery('#'+windowFullID).css('display','none');jQuery('#'+windowFullID).fadeIn('slow');}}
function arrangeWindowVertically(link,windowID){var outerWindowContentBox=document.getElementById('outerWindowCont-'+windowID);var outerWindowTipBox=document.getElementById('outerWindowTip-'+windowID);var pageBoundPadding=10;var ypos;var elementTop=getElementOffset(link,'Top');var elementBottom=getElementOffset(link,'Bottom');var boxBottom=elementTop+outerWindowContentBox.offsetHeight+pageBoundPadding;var windowBottom=window.pageYOffset+window.innerHeight;if(boxBottom>windowBottom){ypos=elementTop-outerWindowContentBox.offsetHeight-9;outerWindowContentBox.style.top=ypos+'px';outerWindowTipBox.style.top=(elementTop-10)+'px';outerWindowTipBox.style.backgroundImage=tipUpUrl;}}
function populateInnerWindow(href,link,windowID){var innerWindowContentBox=document.getElementById('innerWindowCont-'+windowID);var footnoteId='';lp=link.pathname;dlp=document.location.pathname;if(lp.substr(0,1)!='/'){lp='/'+lp;}
if(dlp.substr(0,1)!='/'){dlp='/'+dlp;}
if(link.hash&&lp==dlp){footnoteId=href.substring(href.indexOf('#')+1,href.length);var content=document.getElementById(footnoteId);if(content){innerWindowContentBox.innerHTML=content.innerHTML;}
arrangeWindowVertically(link,windowID);}else{fetchContent(href,link,windowID);}}
function fetchContent(href,link,windowID){var error=false;var xmlhttp=get_xmlhttp();if(xmlhttp){xmlhttp.open('GET',href,true);xmlhttp.onreadystatechange=function(){var innerWindowContentBox=document.getElementById('innerWindowCont-'+windowID);if(xmlhttp.readyState==4){if(xmlhttp.status==200){var xmlDoc=xml_to_DOM(xmlhttp.responseText);if(xmlDoc){var contentHTML=false;if(xmlDoc.getElementById){contentHTML=xmlDoc.getElementById('footnote').innerHTML;}else{var nodes=xmlDoc.selectNodes('//div[@id="footnote"]');if(nodes.length>0){contentHTML=nodes[0].xml;}}
if(innerWindowContentBox){if(contentHTML){innerWindowContentBox.innerHTML=contentHTML;}else{error=true;innerWindowContentBox.innerHTML='<p><strong>Error:</strong> Could not find note content.</p>';}}
arrangeWindowVertically(link,windowID);}else{error=true;innerWindowContentBox.innerHTML='<p><strong>Error:</strong> Could not create parser to look up note.</p>';}}}
if(error){window.location.href=href;}}
xmlhttp.send('');}}
function closeInlineWindows(){for(var i=0;i<inlineWindowCount;i++){closeInlineWindow(i);if(document.getElementById('inlineWindow-'+i)){close;}}}
function closeInlineWindow(windowID){var inlineWindow=document.getElementById('inlineWindow-'+windowID);if(inlineWindow){if(typeof(jQuery)!='undefined'){jQuery('#outerWindowTip-'+windowID).fadeOut('fast',function(){jQuery('#outerWindowCont-'+windowID).fadeOut('slow',function(){inlineWindow.parentNode.removeChild(inlineWindow);});});}else{inlineWindow.style.display='none';inlineWindow.parentNode.removeChild(inlineWindow);}}}
function getElementOffset(element,whichCoord){var count=0
while(element!=null){count+=element['offset'+whichCoord];element=element.offsetParent;}
return count;}
if(typeof(jQuery)!='undefined'){jQuery(document).ready(rewriteLinks);}else{add_event(window,'load',rewriteLinks,true);}
