AnnoLayer=function(b){this.layer=new OpenLayers.Layer.Boxes(b.name);this.page=1;this.set="default";this.lock="";this.annobox=null;this.boxes=[];this.boxlonlat=0;this.attachAnno=new YAHOO.util.CustomEvent("attachAnno");this.refreshAnnos=new YAHOO.util.CustomEvent("refreshAnnos");this.exitMode=new YAHOO.util.CustomEvent("exitmode");this.stopAnnoListen=new YAHOO.util.CustomEvent("stopannolisten");this.mousePos=b.mouse;this.doc=b.doc};AnnoLayer.prototype={enterAnnoMode:function(){YAHOO.util.Event.addListener(this.layer.div,"click",this.createAnno,this)},exitAnnoMode:function(){this.exitMode.fire();this.stopAnnoListen.fire()},createAnno:function(l,e){YAHOO.util.Event.stopPropagation(l);var m=e.obj;var n=e.page;if(!m.mousePos){var k=m.layer.map.getControlsBy("lastXy","Mouse")}var o=YAHOO.util.Event.getPageX(l);var p=YAHOO.util.Event.getPageY(l);m.boxlonlat=m.layer.getLonLatFromViewPortPx(l.xy);m.annobox=new AnnoLayerBox(m.boxlonlat,m.layer,m.mousePos,n);m.layer.addMarker(m.annobox.box);m.annobox.annoSaved.subscribe(m.saveAnno,m);m.annobox.footnotecancelled.subscribe(function(c,b,a){a.annobox=null},m);m.exitAnnoMode()},saveAnno:function(M,ae,aa){var O=ae[0].box;var ad=ae[0].text;var x=ae[0].setId;this.set=x;var y=aa.doc;var U=ae[0].page;var Q=ae[0].bounds.toArray();var R=Q[0]+","+Q[1]+","+Q[2]+","+Q[3];var Z=ae[0].security;this.lock=true;var X=YAHOO.util.Dom.getElementsBy(function(a){if(a.selected==true){return a}},"option",YAHOO.util.Dom.getElementsByClassName("dropDown")[0]);var Y=X[0].firstChild.nodeValue;var K=aa.layer.map.baseLayer.div;var T=K.getElementsByTagName("div");var H=aa.layer.map.getViewPortPxFromLonLat(new OpenLayers.LonLat(Q[0],Q[1]));var S=T[0].getElementsByTagName("img")[0].src;var af=parseInt(YAHOO.util.Dom.getStyle(O.div,"left"));var ag=parseInt(YAHOO.util.Dom.getStyle(O.div,"top"));for(i=0;i<T.length;i++){var ab=T[i];var L=parseInt(YAHOO.util.Dom.getStyle(ab,"left"));var N=parseInt(YAHOO.util.Dom.getStyle(ab,"top"));var J=parseInt(YAHOO.util.Dom.getStyle(ab,"width"))+L;var P=parseInt(YAHOO.util.Dom.getStyle(ab,"height"))+N;if((af>=L)&&(ag>=N)&&(ag<=P)&&(af<=J)){S=ab.getElementsByTagName("img")[0].src;af=Math.abs(af-L);ag=Math.abs(ag-N);break}}var I=ad.replace("&","AMPER");while(I.indexOf("&")>0){I=I.replace("&","AMPER")}var e="?src="+S+"AMPERsrcx="+af+"AMPERsrcy="+ag+"AMPERsrcw="+parseInt(YAHOO.util.Dom.getStyle(O.div,"width"))+"AMPERsrch="+parseInt(YAHOO.util.Dom.getStyle(O.div,"height"));ae[0].annolayer=aa;var W="./lib/AnnoLayerBox/saveMarker.php?text="+I+"&set="+x+"&coords="+R+"&page="+U+"&security="+Z+"&doc="+y+"&sigvalue="+Y+"&link="+S+"&crpsrc="+e;aa.boxes[aa.boxes.length]=aa.annobox;aa.annobox=null;var V={success:function(c){var g=c.argument[0].obj;var a=c.argument[0].annolayer;var f=c.argument[0].security;var b=c.responseText;g.changeMarker("",{security:f,id:b});a.clearLayer();a.retrieveAnnos(c.argument[0].page,c.argument[0].setId,true)},failure:function(a){alert("")},argument:[ae[0]]};var ac=YAHOO.util.Connect.asyncRequest("GET",W,V)},destroyNote:function(n,o,p){var l=o[0].dbid;var e="./lib/AnnoLayerBox/deleteMarker.php?id="+l;var m={success:function(){},failure:function(){}};var k=YAHOO.util.Connect.asyncRequest("GET",e,m);setTimeout(function(){if(YAHOO.util.Connect.isCallInProgress(k)){YAHOO.util.Connect.abort(k)}},10000)},removeAnno:function(g,e,f){f.layer.div.removeChild(f.annobox.DOM);f.layer.div.removeChild(f.annobox.box.DOM);f.annobox=null},retrieveAnnos:function(m,k,n){this.set=k;this.lock=n;var h="./lib/AnnoLayerBox/loadMarker.php?doc="+this.doc+"&page="+m+"&set="+k;var l={success:function(a){obj=a.argument[0];n=a.argument[1];data=a.responseText.split("\n");obj.clearLayer();for(d in data){marker=data[d].split("%");if(marker.length>1){points=marker[2].split(",");box=new AnnoLayerBox(new OpenLayers.LonLat(points[0],points[1]),obj.layer,null);box.createMarker({left:points[0],bottom:points[1],right:points[2],top:points[3],comment:marker[1],id:marker[0],lock:n});box.footnoteDestroyed.subscribe(obj.destroyNote,obj);obj.boxes.push(box)}}},failure:function(a){alert("Failure in retrieving Annotations")},argument:[this,n]};var j=YAHOO.util.Connect.asyncRequest("GET",h,l)},applyAnnoSet:function(e,g,f){this.clearLayer();this.retrieveAnnos(e,g,f)},clearLayer:function(){for(i=0;i<this.boxes.length;i++){box=this.boxes[i];this.layer.removeMarker(box.box)}this.boxes=[]},terminate:function(){if(this.annobox){this.annobox.removeMarker(null,null,this.annobox);this.annobox=null}}};