﻿var fnServerPath="../",fnServerFotonotesScript="fotonotes.php",fnServer=fnServerPath+fnServerFotonotesScript,fnXMLHTTP=null;if(window.ActiveXObject)try{fnXMLHTTP=new ActiveXObject("Microsoft.XMLHTTP")}catch(a){}else if(window.XMLHttpRequest)fnXMLHTTP=new XMLHttpRequest;if(!window.FN_ADD)var FN_ADD="allow";if(!window.FN_MODIFY)var FN_MODIFY="allow";if(!window.FN_DELETE)var FN_DELETE="allow";var FN_CREDITS="Fotonotes DHTML Viewer\n\n(c) 2004-2005 Angus Turnbull, http://www.twinhelix.com\n\nProvided under license to Fotonotes LLC",FN_DISALLOWED="Sorry, that action is not permitted.\n\nPlease login under a different account.",FN_POST_UNSUPPORTED="Sorry, your browser does not support editing notes.",FN_DELETE_CONFIRM="Are you sure you want to delete this note?",FN_SAVE_WAIT="Loading Fotonotes...",FN_SAVE_FAIL="An error occurred, and your changes could not be saved.",FN_SAVE_FAIL_JPEG_NOT_WRITABLE="JPEG file is not writable. Please check file permissions on server.",FN_SAVE_SUCCESS="Changes saved!",fnDebugMode=false,fnHideTimer=null,fnActiveNote=null,fnActionVerb="",fnActionTrigger=null,fnEditingData=null,fnAnnotateAll=false,fnMinImgWidth=200,fnMinImgHeight=150,imageFileSrc="src",aeOL=[];function addEvent(a,g,f,h){var e="addEventListener",c="on"+g,b="",d="";if(a[e]&&!h)return a[e](g,f,false);a._c|=0;if(a[c]){b="_f"+a._c++;a[b]=a[c]}d="_f"+a._c++;a[d]=f;a[c]=function(e){e=e||window.event;var c=true;if(b)c=a[b](e)!=false&&c;c=a[d](e)!=false&&c;return c};aeOL[aeOL.length]={o:a,h:c}}addEvent(window,"unload",function(){for(var i=0;i<aeOL.length;i++)with(aeOL[i]){o[h]=null;for(var c=0;o["_f"+c];c++)o["_f"+c]=null}});function cancelEvent(a,b){a.returnValue=false;if(a.preventDefault)a.preventDefault();if(b){a.cancelBubble=true;if(a.stopPropagation)a.stopPropagation()}}addLoadEvent(findImage);function addLoadEvent(a){var b=window.onload;if(typeof window.onload!="function")window.onload=a;else window.onload=function(){b();a()}}function findImage(){for(i=0;i<document.images.length;i++){if(fnDebugMode)alert("img "+document.images[i].className);if(document.images[i].className=="fn-image"||fnAnnotateAll&&document.images[i].width>=fnMinImgWidth&&document.images[i].height>=fnMinImgHeight){var a=document.images[i];if(fnDebugMode)alert("imgObj.src: "+a.src);if(imageFileSrc=="id")var d=a.id;else var d=a.src;if(fnDebugMode)alert("revised imageFile: \n\n"+d);if(a.parentNode.tagName=="A"){var b=a.parentNode,c=document.createElement("div");a.parentNode.parentNode.replaceChild(c,a.parentNode);c.appendChild(a);newLinkNode=document.createElement("div");newLinkNode.className="fn-view-image-link";b.innerHTML="View image";var f=unescape(b.pathname),e=f.split("blank");if(window.ActiveXObject)b.href=e[1];else b.href=e[0];newLinkNode.appendChild(b);c.appendChild(newLinkNode)}createFNImage(a,d)}}}function createFNImage(b,a){getFNDiv(b,a)}function getFNDiv(b,d){if(fnDebugMode)alert("Final imageFile: \n\n"+d);if(!d)return alert(FN_SAVE_FAIL);var c="image="+escape(d)+"&action="+"display"+"&width="+b.width+"&height="+b.height+"&alt="+b.alt+"&style=";if(fnDebugMode)alert("TARGET SERVER URL: \n\n"+fnServer);if(fnDebugMode)alert("SENDING TO tlnServer:\n\n"+c);var a=null;if(window.ActiveXObject)try{a=new ActiveXObject("Microsoft.XMLHTTP")}catch(f){}else if(window.XMLHttpRequest)a=new XMLHttpRequest;a.open("POST",fnServer,true);a.setRequestHeader("Content-type","application/x-www-form-urlencoded; charset=utf-8");a.setRequestHeader("Content-length",c.length);var e=document.cookie.split(";");a.onreadystatechange=function(){if(a.readyState==4)fnGetClientComplete(true,b,a.responseText)};a.send(c)}function fnGetClientComplete(c,a,b){fnModalDialog(FN_SAVE_WAIT);setTimeout('fnModalDialog("")',500);if(fnDebugMode)alert("RECEIVED FROM FNSERVER:\n\n"+b);re=/displayHTML##([\w\W\n\r]*)##/;matches=re.exec(b);fnDiv=matches[1];fnDivElement=document.createElement("div");fnDivElement.innerHTML=fnDiv;a.parentNode.insertBefore(fnDivElement,a);a.parentNode.removeChild(a)}function DragResize(d,b){var c={myName:d,enabled:true,handles:["tl","tm","tr","ml","mr","bl","bm","br"],isElement:null,isHandle:null,element:null,dragging:null,minWidth:10,minHeight:10,minLeft:0,maxRight:9999,minTop:0,maxBottom:9999,zIndex:1,mouseX:0,mouseY:0,lastMouseX:0,lastMouseY:0,mOffX:0,mOffY:0,elmX:0,elmY:0,elmW:0,elmH:0,allowBlur:true,ondragfocus:null,ondragstart:null,ondragmove:null,ondragend:null,ondragblur:null};for(var a in c)this[a]=typeof b[a]=="undefined"?c[a]:b[a]}DragResize.prototype.apply=function(a){var b=this;addEvent(a,"mousedown",function(a){b.mouseDown(a)});addEvent(a,"mousemove",function(a){b.mouseMove(a)});addEvent(a,"mouseup",function(a){b.mouseUp(a)})};DragResize.prototype.handleSet=function(elm,show){with(this){if(!elm._handle_tr)for(var h=0;h<handles.length;h++){var hDiv=document.createElement("div");hDiv.className=myName+" "+myName+"-"+handles[h];elm["_handle_"+handles[h]]=elm.appendChild(hDiv)}for(var h=0;h<handles.length;h++)elm["_handle_"+handles[h]].style.visibility=show?"inherit":"hidden"}};DragResize.prototype.select=function(newElement){with(this){if(!document.getElementById||!enabled)return;if(newElement&&newElement!=element&&enabled){element=newElement;element.style.zIndex=++zIndex;handleSet(element,true);elmX=parseInt(element.style.left);elmY=parseInt(element.style.top);elmW=element.offsetWidth;elmH=element.offsetHeight;if(ondragfocus)this.ondragfocus()}}};DragResize.prototype.deselect=function(keepHandles){with(this){if(!document.getElementById||!enabled)return;if(!keepHandles){if(ondragblur)this.ondragblur();handleSet(element,false);element=null}dragging=null;mOffX=0;mOffY=0}};DragResize.prototype.mouseDown=function(e){with(this){if(!document.getElementById||!enabled)return true;var elm=e.target||e.srcElement,newElement=null,newHandle=null,hRE=new RegExp(myName+"-([trmbl]{2})","");while(elm){if(elm.className){if(!newHandle&&(hRE.test(elm.className)||isHandle(elm)))newHandle=elm;if(isElement(elm)){newElement=elm;break}}elm=elm.parentNode}if(element&&element!=newElement&&allowBlur)deselect(false);if(newElement&&(!element||newElement==element)){cancelEvent(e);select(newElement,newHandle);dragging=newHandle;if(dragging&&ondragstart)this.ondragstart()}}};DragResize.prototype.mouseMove=function(e){with(this){if(!document.getElementById||!enabled)return true;mouseX=e.pageX||e.clientX+document.documentElement.scrollLeft;mouseY=e.pageY||e.clientY+document.documentElement.scrollTop;var diffX=mouseX-lastMouseX+mOffX,diffY=mouseY-lastMouseY+mOffY;mOffX=mOffY=0;lastMouseX=mouseX;lastMouseY=mouseY;if(!dragging)return true;var hClass=dragging&&dragging.className&&dragging.className.match(new RegExp(myName+"-([tmblr]{2})"))?RegExp.$1:"",rs=0,dY=diffY,dX=diffX;if(hClass.indexOf("t")>=0){rs=1;if(elmH-dY<minHeight)mOffY=dY-(diffY=elmH-minHeight);else if(elmY+dY<minTop)mOffY=dY-(diffY=minTop-elmY);elmY+=diffY;elmH-=diffY}if(hClass.indexOf("b")>=0){rs=1;if(elmH+dY<minHeight)mOffY=dY-(diffY=minHeight-elmH);else if(elmY+elmH+dY>maxBottom)mOffY=dY-(diffY=maxBottom-elmY-elmH);elmH+=diffY}if(hClass.indexOf("l")>=0){rs=1;if(elmW-dX<minWidth)mOffX=dX-(diffX=elmW-minWidth);else if(elmX+dX<minLeft)mOffX=dX-(diffX=minLeft-elmX);elmX+=diffX;elmW-=diffX}if(hClass.indexOf("r")>=0){rs=1;if(elmW+dX<minWidth)mOffX=dX-(diffX=minWidth-elmW);else if(elmX+elmW+dX>maxRight)mOffX=dX-(diffX=maxRight-elmX-elmW);elmW+=diffX}if(dragging&&!rs){if(elmX+dX<minLeft)mOffX=dX-(diffX=minLeft-elmX);else if(elmX+elmW+dX>maxRight)mOffX=dX-(diffX=maxRight-elmX-elmW);if(elmY+dY<minTop)mOffY=dY-(diffY=minTop-elmY);else if(elmY+elmH+dY>maxBottom)mOffY=dY-(diffY=maxBottom-elmY-elmH);elmX+=diffX;elmY+=diffY}with(element.style){left=elmX+"px";width=elmW+"px";top=elmY+"px";height=elmH+"px"}if(window.opera&&document.documentElement){var oDF=document.getElementById("op-drag-fix");if(!oDF){var oDF=document.createElement("input");oDF.id="op-drag-fix";oDF.style.display="none";document.body.appendChild(oDF)}oDF.focus()}if(ondragmove)this.ondragmove();cancelEvent(e)}};DragResize.prototype.mouseUp=function(e){with(this){if(!document.getElementById||!enabled)return;if(ondragend)this.ondragend();deselect(true)}};var _f_idcount=1;function fnElementFade(elm,show){var speed=show?20:10;elm._f_count|=0;elm._f_timer|=null;clearTimeout(elm._f_timer);if(show&&!elm._f_count)elm.style.visibility="inherit";elm._f_count=Math.max(0,Math.min(100,elm._f_count+speed*(show?1:-1)));var f=elm.filters,done=elm._f_count==100;if(f){if(!done&&elm.style.filter.indexOf("alpha")==-1)elm.style.filter+=" alpha(opacity="+elm._f_count+")";else if(f.length&&f.alpha)with(f.alpha)if(done)enabled=false;else{opacity=elm._f_count;enabled=true}}else elm.style.opacity=elm.style.MozOpacity=elm._f_count/100.1;if(!show&&!elm._f_count)elm.style.visibility="hidden";if(elm._f_count%100)elm._f_timer=setTimeout(function(){fnElementFade(elm,show)},50)}function fnClassSet(b,a){b.className=b.className.replace(a?/-inactive/:/-active/,a?"-active":"-inactive")}function fnGetContainer(b){var a=b;while(a){if(/fn-container/.test(a.className))break;a=a.parentNode}return a}function fnGetControlBar(b){var c=null;for(var a=0;a<b.childNodes.length;a++)if(/fn-controlbar/.test(b.childNodes.item(a).className)){c=b.childNodes.item(a);break}return c}function fnContainerSet(c,d){var b=fnGetControlBar(c);for(var a=0;a<b.childNodes.length;a++)if(/fn-controlbar-toggle/.test(b.childNodes.item(a).className)){fnClassSet(b.childNodes.item(a),!d);break}fnClassSet(c,d)}function fnAction(b,a){if(fnActionVerb!=b){if(fnActionTrigger&&fnActionVerb)fnClassSet(fnActionTrigger,false);fnActionVerb=b;fnActionTrigger=a;if(a)fnClassSet(a,true)}else{fnActionVerb="";if(a)fnClassSet(a,false)}}function fnMouseOverOutHandler(c,d){var a=c.target||c.srcElement;if(a.nodeType!=1)a=a.parentNode;while(a&&!((a.className||"").indexOf("fn-container")>-1)){if(a&&(a.className||"").indexOf("fn-area")>-1&&!fnActionVerb){var e=a,b=e.firstChild;while(b&&b.nodeType!=1)b=b.nextSibling;if(!b)return;clearTimeout(fnHideTimer);if(d){if(fnActiveNote&&b!=fnActiveNote)fnElementFade(fnActiveNote,false);fnElementFade(b,true);if(fnActiveNote)fnActiveNote.parentNode.style.zIndex=1;b.parentNode.style.zIndex=2;fnActiveNote=b}else fnHideTimer=setTimeout("if (fnActiveNote) { fnElementFade(fnActiveNote, false); fnActiveNote = null }",200)}a=a.parentNode}}function fnClickHandler(f){var a=f.target||f.srcElement;if(a.nodeType!=1)a=a.parentNode;while(a&&!((a.className||"").indexOf("fn-container")>-1)){if(/fn-editbar-ok/.test(a.className))return fnEditButtonHandler(true);if(/fn-editbar-cancel/.test(a.className))return fnEditButtonHandler(false);if(fnEditingData)return;if(/fn-area/.test(a.className)){var e=a;if(fnActionVerb=="del")fnDelNote(e);if(fnActionVerb=="edit"){var b=e.firstChild;while(b&&b.nodeType!=1)b=b.nextSibling;if(b)fnEditNote(b)}return}if(/fn-controlbar-logo/.test(a.className)){var d=/fn-controlbar-active/.test(a.parentNode.className);fnClassSet(a.parentNode,!d);return}if(/fn-controlbar-credits/.test(a.className)){alert(FN_CREDITS);return}if(/fn-controlbar-del/.test(a.className)){if(!fnXMLHTTP)return alert(FN_POST_UNSUPPORTED);if(FN_DELETE=="deny")return alert(FN_DISALLOWED);return fnAction("del",a)}if(/fn-controlbar-edit/.test(a.className)){if(!fnXMLHTTP)return alert(FN_POST_UNSUPPORTED);if(FN_MODIFY=="deny")return alert(FN_DISALLOWED);return fnAction("edit",a)}if(/fn-controlbar-add/.test(a.className)){if(!fnXMLHTTP)return alert(FN_POST_UNSUPPORTED);if(FN_ADD=="deny")return alert(FN_DISALLOWED);return fnAddNote(a)}if(/fn-controlbar-toggle/.test(a.className)){var c=fnGetContainer(a);if(c){var d=/fn-container-active/.test(c.className);fnContainerSet(c,!d)}}a=a.parentNode}}function fnEditUISet(show){if(!fnEditingData)return;with(fnEditingData){if(show)dragresize.select(area,area);else dragresize.deselect();area.className=show?"fn-area-editing":"fn-area";fnElementFade(form,show);fnClassSet(form,show);fnContainerSet(container,!show);fnClassSet(fnGetControlBar(container),!show)}}function fnAddNote(j){var d=fnGetContainer(j);if(!d)return;fnAction("add",j);var a=document.createElement("div");a.className="fn-area";a.style.left=d.offsetWidth/2-25+"px";a.style.top=d.offsetHeight/2-25+"px";a.style.width="50px";a.style.height="50px";a.id="fn-area-new";var c=document.createElement("div");c.className="fn-note";a.appendChild(c);var i=document.createElement("span");i.className="fn-note-title";c.appendChild(i);var f=document.createElement("span");f.className="fn-note-content";c.appendChild(f);var g=document.createElement("span");g.className="fn-note-author";c.appendChild(g);var h=document.createElement("span");h.className="fn-note-userid";c.appendChild(h);var e=document.createElement("span");e.className="fn-note-id";e.title="";a.appendChild(e);var b=document.createElement("div");b.className="fn-area-innerborder-right";a.appendChild(b);var b=document.createElement("div");b.className="fn-area-innerborder-left";a.appendChild(b);var b=document.createElement("div");b.className="fn-area-innerborder-top";a.appendChild(b);var b=document.createElement("div");b.className="fn-area-innerborder-bottom";a.appendChild(b);d.appendChild(a);fnEditingData={area:a,note:c};fnEditNote()}function fnEditNote(f){var a=null;if(f){a=f.parentNode;fnEditingData={area:a,note:f}}else{a=fnEditingData.area;f=fnEditingData.note}var h=fnGetContainer(a);if(!h)return;var c=h.getElementsByTagName("form");if(!c)return;c=c.item(0);var j="",i="",g="",n="",m=a.getElementsByTagName("span");for(var l=0;l<m.length;l++){var b=m.item(l);if(b.className=="fn-note-id")n=b.getAttribute("title");if(b.className=="fn-note-title")j=b.innerHTML;if(b.className=="fn-note-author")i=b.innerHTML;if(b.className=="fn-note-content")g=b.innerHTML}fnEditingData.container=h;fnEditingData.form=c;fnEditingData.noteID=n;fnEditingData.oldTitle=j;fnEditingData.oldAuthor=i;fnEditingData.oldContent=g;fnEditingData.oldLeft=parseInt(a.style.left);fnEditingData.oldTop=parseInt(a.style.top);fnEditingData.oldWidth=a.offsetWidth;fnEditingData.oldHeight=a.offsetHeight;fnEditingData.newTitle=fnEditingData.newAuthor=fnEditingData.newContent="";fnEditingData.newLeft=fnEditingData.newTop=0;fnEditingData.newWidth=fnEditingData.newHeight=0;var e=c.getElementsByTagName("input");for(var d=0;d<e.length;d++){if(/title/.test(e[d].className))e[d].value=j;if(/author/.test(e[d].className))e[d].value=i}var k=c.getElementsByTagName("textarea");if(k&&/content/.test(k.item(0).className))k.item(0).value=g;fnEditUISet(true)}function fnEscapeHTML(a){return a.replace("&","&amp;").replace("<","&lt;").replace(">","&gt;")}function fnEditButtonHandler(ok){if(!fnEditingData)return;with(fnEditingData)if(ok){newTitle=newAuthor=newUserid=newEntryid=newContent=newBorderColor="";var inputs=form.getElementsByTagName("input");for(var i=0;i<inputs.length;i++){if(/title/.test(inputs[i].className))newTitle=inputs[i].value;if(/author/.test(inputs[i].className))newAuthor=inputs[i].value;if(/userid/.test(inputs[i].className))newUserid=inputs[i].value;if(/entry_id/.test(inputs[i].className))newEntryid=inputs[i].value;if(/border_color/.test(inputs[i].className))newBorderColor=inputs[i].value}var textarea=form.getElementsByTagName("textarea");if(textarea&&/content/.test(textarea.item(0).className))newContent=textarea.item(0).value;newLeft=parseInt(area.style.left);newTop=parseInt(area.style.top);newWidth=area.offsetWidth;newHeight=area.offsetHeight;if(fnDebugMode)alert("Begin server save operation newBorderColor: "+newBorderColor);var sFact=1;for(var n=0;n<container.childNodes.length;n++)if(/fn-scalefactor/.test(container.childNodes.item(n).className))sFact=parseFloat(container.childNodes.item(n).getAttribute("title"));fnPostXML('<?xml version="1.0" encoding="UTF-8"?><feed><entry>'+(fnActionVerb=="edit"?"<id>"+noteID+"</id>":"")+"<fn:selection><fn:boundingBox>"+parseInt(newLeft/sFact)+","+parseInt(newTop/sFact)+","+parseInt((newLeft+newWidth)/sFact)+","+parseInt((newTop+newHeight)/sFact)+"</fn:boundingBox></fn:selection>"+"<title>"+fnEscapeHTML(newTitle)+"</title>"+"<author><name>"+fnEscapeHTML(newAuthor)+"</name><userid>"+fnEscapeHTML(newUserid)+"</userid></author>"+"<content>"+fnEscapeHTML(newContent)+"</content>"+"<entry_id>"+fnEscapeHTML(newEntryid)+"</entry_id>"+"</entry></feed>")}else{if(fnActionVerb=="add")area.parentNode.removeChild(area);else{area.style.left=oldLeft+"px";area.style.top=oldTop+"px";area.style.width=oldWidth+"px";area.style.height=oldHeight+"px"}fnEditUISet(false);fnAction("",null);fnEditingData=null}}function fnDelNote(d){var a="",c=d.getElementsByTagName("span");for(var b=0;b<c.length;b++)if(c.item(b).className=="fn-note-id")a=c.item(b).getAttribute("title");if(!a)alert(FN_SAVE_FAIL);if(a&&confirm(FN_DELETE_CONFIRM)){fnEditingData={area:d,note:null,container:fnGetContainer(d)};fnPostXML('<?xml version="1.0" encoding="UTF-8"?><feed><entry><id>'+a+"</id>"+"</entry></feed>")}else fnAction("",null)}function fnModalDialog(b){var a=document.getElementById("fn-modaldialog");if(!a){a=document.createElement("div");a.setAttribute("id","fn-modaldialog");document.body.appendChild(a)}a.innerHTML="<span>"+b+"</span>";a.style.visibility=b?"visible":"hidden"}function fnPostXML(g){var f=fnEditingData.container.getElementsByTagName("img").item(0),d=f.getAttribute("src");if(!d)return alert(FN_SAVE_FAIL);var c="",a=false;switch(fnActionVerb){case "add":if(FN_ADD=="prompt")a=true;break;case "edit":if(FN_MODIFY=="prompt")a=true;break;case "del":if(FN_DELETE=="prompt")a=true}if(a)c=prompt("Please enter your password","");var e={add:"add",edit:"modify",del:"delete"},b="image="+escape(d)+"&action="+e[fnActionVerb]+(c?"&password="+escape(c):"")+"&xml="+escape(g);if(fnDebugMode)alert("SENDING TO FNSERVER:\n\n"+b);fnXMLHTTP.open("POST",fnServer,true);fnXMLHTTP.setRequestHeader("Content-type","application/x-www-form-urlencoded; charset=utf-8");fnXMLHTTP.setRequestHeader("Content-length",b.length);var h=document.cookie.split(";");fnXMLHTTP.onreadystatechange=function(){if(fnXMLHTTP.readyState==4)fnEditComplete(true)};fnModalDialog(FN_SAVE_WAIT);fnXMLHTTP.send(b)}function fnEditComplete(ok){if(fnDebugMode)alert("RECEIVED FROM FNSERVER:\n\n"+fnXMLHTTP.responseText);if(!ok||!fnXMLHTTP.responseText.match("success=ok")){fnModalDialog("");if(fnXMLHTTP.responseText.match("success=501"))alert(FN_SAVE_FAIL_JPEG_NOT_WRITABLE);else alert(FN_SAVE_FAIL);if(fnActionVerb=="del"){fnEditingData=null;fnAction("",null)}}else with(fnEditingData){if(fnActionVerb=="add"||fnActionVerb=="edit"){for(var n=0;n<note.childNodes.length;n++){var field=note.childNodes.item(n);if(field.className=="fn-note-title")field.innerHTML=newTitle;if(field.className=="fn-note-author")field.innerHTML=newAuthor;if(field.className=="fn-note-content")field.innerHTML=newContent}fnEditUISet(false)}else area.parentNode.removeChild(area);fnModalDialog(FN_SAVE_SUCCESS);setTimeout('fnModalDialog("")',500);fnAction("",null);fnEditingData=null}}if(document.getElementById){var dragresize=new DragResize("dragresize",{allowBlur:false});dragresize.isElement=function(b){if(!/(add|edit)/.test(fnActionVerb))return false;if(/fn-area-editing/.test(b.className)){var a=fnGetContainer(b);this.maxRight=a.offsetWidth-2;this.maxBottom=a.offsetHeight-2;return true}};dragresize.isHandle=function(a){if(!/(add|edit)/.test(fnActionVerb))return false;if(/fn-area-editing/.test(a.className))return true};dragresize.ondragfocus=function(){this.element.style.cursor="move"};dragresize.ondragblur=function(){this.element.style.cursor="default"};dragresize.apply(document);addEvent(document,"mouseover",new Function("e","fnMouseOverOutHandler(e, 1)"));addEvent(document,"mouseout",new Function("e","fnMouseOverOutHandler(e, 0)"));if(document.createElement&&document.documentElement)addEvent(document,"click",fnClickHandler)}