SQAPanelContent=function(a){this.DOM=document.createElement("div");YAHOO.util.Dom.generateId(this.DOM,"content");this.DOM.className="panelBody";this.disabled=false;this.clickMode="none";this.curPageNum=a.num;this.lastPage=62;this.imageDir="";this.htmlDir="";this.xmlDir="";this.pages=[];this.copyInfo=null;this.mode="image";this.image=null;this.openAnno=null;this.cropPortions=[];this.annos=[];this.pageText=new PageText();this.pageText.storeTextAnno.subscribe(this.saveTextAnno,this);this.set="default";this.docId=null;this.boxesOff=new YAHOO.util.CustomEvent("boxesOff");this.userOwnsSet=true;this.panelContentReady=new YAHOO.util.CustomEvent("panelContentReady");this.pageChanged=new YAHOO.util.CustomEvent("pageChanged");this.cropBoxIsOpen=new YAHOO.util.CustomEvent("cropBoxIsOpen");this.resetClickMode=new YAHOO.util.CustomEvent("resetClickMode");this.setAlert=new YAHOO.util.CustomEvent("setAlert");this.panelid=a.id;this.cropButton=document.createElement("div");YAHOO.util.Dom.generateId(this.cropButton,"cropImg");this.cropButton.className="cropButton";YAHOO.util.Event.addListener(this.cropButton.id,"click",this.crop,this);this.cropRegionClose=document.createElement("div");YAHOO.util.Dom.generateId(this.cropRegionClose,"regionClose");this.cropRegionClose.className="cropRegionClose";this.cropRegionClose.appendChild(document.createTextNode("Cancel"));YAHOO.util.Event.addListener(this.cropRegionClose.id,"click",function(d,b){YAHOO.util.Event.stopPropagation(d);b.leaveCrop();b.resetClickMode.fire({mode:"none",id:b.panelid});},this);this.cropButton.appendChild(this.cropRegionClose);};SQAPanelContent.prototype.init=function(a){this.docId=a;var b={success:function(e){obj=e.argument.obj;manDom=e.responseXML;doc=manDom.documentElement;obj=e.argument.obj;obj.base=doc.getAttribute("base");obj.imageDir=imgdir+obj.base;obj.xmlDir=xmldir+"XML_"+obj.base;obj.pages=[];var d=doc.getElementsByTagName("page");for(p=0;p<d.length;p++){if(d[p].getElementsByTagName("img").item(0).firstChild){img=d[p].getElementsByTagName("img").item(0).firstChild.nodeValue;}else{curr=p+1;img=obj.docId.replace("manifest.xml","0"+curr+".jpg");}img=img.substring(0,img.lastIndexOf("."));text={v:d.item(p).getElementsByTagName("ver").item(0).getElementsByTagName("xml")[0].firstChild.nodeValue,r:d.item(p).getElementsByTagName("rec").item(0).getElementsByTagName("xml")[0].firstChild.nodeValue};sig=d.item(p).getElementsByTagName("ver").item(0).getAttribute("sig")+d[p].getElementsByTagName("rec")[0].getAttribute("sig");page={img:img,tiles:d.item(p).getElementsByTagName("tiledir").item(0).firstChild.nodeValue,xml:text,sig:sig};obj.pages.push(page);}url=obj.imageDir+"/"+obj.pages[obj.curPageNum].tiles;prefix=obj.pages[obj.curPageNum].img+"-";obj.addImage({baseURI:url,prefix:prefix},obj);obj.DOM.appendChild(obj.pageText.DOM);obj.pageText.fillPage(obj.xmlDir+"/"+obj.pages[obj.curPageNum].xml.v,obj.xmlDir+"/"+obj.pages[obj.curPageNum].xml.r);obj.showPage(obj);obj.panelContentReady.fire(obj.pages);obj.applyAnnos("init",[],obj);},failure:function(d){alert("Error setting up images");},argument:{obj:this}};YAHOO.util.Connect.asyncRequest("GET",a,b);};SQAPanelContent.prototype.stopXMLAjax=function(d,b,a){a.pageText.stopXML();};SQAPanelContent.prototype.initPanoJSOpenLayers=function(b){this.docId=b;var d={success:function(k){var j=k.argument.obj;var f=k.argument.image;var g=k.responseXML;var h=g.documentElement;j.base=h.getAttribute("base");j.imageDir=imgdir+j.base;j.xmlDir=xmldir+"XML_"+j.base;j.pages=[];var e=h.getElementsByTagName("page");for(p=0;p<e.length;p++){if(e.item(p).getElementsByTagName("img").item(0).firstChild){f=e.item(p).getElementsByTagName("img").item(0).firstChild.nodeValue;}else{curr=p+1;f=j.docId.replace("manifest.xml","0"+curr+".jpg");}f=f.substring(0,f.lastIndexOf("."));text={v:e.item(p).getElementsByTagName("ver").item(0).getElementsByTagName("xml")[0].firstChild.nodeValue,r:e.item(p).getElementsByTagName("rec").item(0).getElementsByTagName("xml")[0].firstChild.nodeValue};sig=e.item(p).getElementsByTagName("ver").item(0).getAttribute("sig")+e[p].getElementsByTagName("rec")[0].getAttribute("sig");page={img:f,tiles:e.item(p).getElementsByTagName("tiledir").item(0).firstChild.nodeValue,xml:text,sig:sig};j.pages.push(page);}url=j.imageDir+"/"+j.pages[j.curPageNum].tiles;prefix=j.pages[j.curPageNum].img+"-";j.limg=new PJSOL({base:j.pages[j.curPageNum].tiles,basename:j.pages[j.curPageNum].tiles,prefix:prefix,url:url,loc:j.DOM});j.limg.init();j.DOM.appendChild(j.pageText.DOM);j.pageText.fillPage(j.xmlDir+"/"+j.pages[j.curPageNum].xml.v,j.xmlDir+"/"+j.pages[j.curPageNum].xml.r);j.panelContentReady.fire(j.pages);},failure:function(e){e.argument.obj.setAlert.fire("OpenURL failed");},argument:{obj:this}};var a=YAHOO.util.Connect.asyncRequest("GET",b,d);};SQAPanelContent.prototype.adjustResize=function(e,b,a,d){var f=(a-d);YAHOO.util.Dom.setStyle(e.DOM,"width",b+"px");YAHOO.util.Dom.setStyle(e.DOM,"height",f+"px");e.image.adjustResize(e.image,b,f);if(e.mode=="image"){e.image.reinitializeGraphic(null,e.image);}};SQAPanelContent.prototype.changePage=function(d,b,a){a.curPageNum=b[0];a.showPage(a);if(a.openAnno){a.leaveAnno(null,null,a);}if(a.cropBox){a.leaveCrop();}if(a.mode=="image"){a.applyAnnos("changepage",[],a);}};SQAPanelContent.prototype.addImage=function(b,a){a.image=new LayerImage(b,{id:a.panelid});a.image.passImageZoomed.subscribe(function(g,d,f){f.applyAnnos(g,d,f);},a);a.setContent(a.image.DOM);a.image.unInitImageClick.subscribe(function(g,f,d){d.boxesOff.fire();d.image.uninitImageClick("anno");},this);a.image.saveImageAnnoEvent.subscribe(a.saveImageAnno,a);YAHOO.util.Event.onContentReady(a.image.DOM,a.imageReady,a);a.image.passImageAnnoClicked.subscribe(function(g,f,d){YAHOO.util.Event.stopEvent(g);d.showImgAnno(g,f[0],[d,f[0]]);},a);a.image.anno.subscribe(a.createAnno,a);a.image.passAnnoObj.subscribe(function(g,f,d){d.annos[d.annos.length]=f[0];},a);a.image.passAlert.subscribe(function(g,f,d){d.setAlert.fire(f[0]);},a);};SQAPanelContent.prototype.imageReady=function(b,a){a.image.initializeGraphic(a.image);a.applyAnnos(b,a);};SQAPanelContent.prototype.prepareCrop=function(){if(this.mode=="image"){this.image.initializeImageClick("crop");this.image.crop.unsubscribeAll(this.prepareCrop,this);this.image.crop.subscribe(this.getCropBox,this);}};SQAPanelContent.prototype.leaveCrop=function(){if(this.mode=="image"){if(this.cropBox){this.cropBox.DOM.removeChild(this.cropButton);this.image.cropDone(this.cropBox,this.image);this.cropBox=null;}this.image.uninitImageClick("crop");this.image.crop.unsubscribeAll();}};SQAPanelContent.prototype.delCrop=function(a){id=a.DOM.id;if(this.cropPortions.length==1){this.cropPortions=[];}else{if(this.cropPortions.length>1){for(i in this.cropPortions){if(this.cropPortions[i].DOM.id==id){arr1=this.cropPortions.slice(0,i);arr2=this.cropPortions.slice(i);arr2.shift();this.cropPortions=arr1.concat(arr2);}}}}};SQAPanelContent.prototype.getCropBox=function(d,b,a){if(!obj.cropBox){a.cropBox=b[0];a.cropBox.DOM.appendChild(a.cropButton);}else{a.image.cropDone(b[0],obj.image);}a.resetClickMode.fire({mode:"none",id:a.panelid});a.image.stopClickListeners();a.image.crop.unsubscribeAll();};SQAPanelContent.prototype.crop=function(b,a){if(a.cropBox){a.image.viewerBean.getBoxMasterPos(a.cropBox);a.cropBox.DOM.removeChild(a.cropButton);a.image.crop.unsubscribe(a.getCropBox,a);cb=a.cropBox.origCoords;len=a.image.baseURI.length-6;jpg=a.cropBox.reference;values={path:jpg,srcx:cb[0],srcy:cb[1],srcw:cb[2],srch:cb[3],iZoom:cb[4]};cropPortion=new CropBox(values);document.getElementsByTagName("body")[0].appendChild(cropPortion.DOM);a.cropBoxIsOpen.fire(cropPortion);a.image.cropDone(a.cropBox,a.image);a.cropBox=null;a.leaveCrop();}else{if(!a.cropBox){alert("Click an area on the image before making a crop");}}};SQAPanelContent.prototype.clearContents=function(){contentDiv=this.DOM;kids=contentDiv.childNodes;if(kids){for(i=0;i<kids.length;i++){contentDiv.removeChild(kids[i]);}}};SQAPanelContent.prototype.clearBoxes=function(){for(i=0;i<this.annos.length;i++){var a=this.annos[i];if(a.tempBox){a.tempBox.DOM.parentNode.removeChild(a.tempBox.DOM);}this.image.viewerBean.surface.removeChild(a.DOM);a=null;}this.annos=[];this.image.resetViewerBoxCount();};SQAPanelContent.prototype.setContent=function(a){this.clearContents();this.DOM.appendChild(a);};SQAPanelContent.prototype.nextPage=function(b,a){if(a.curPageNum<(a.lastPage)){a.curPageNum++;a.showPage(a);a.applyAnnos("nextpage",[],a);}else{a.curPage;}};SQAPanelContent.prototype.prevPage=function(b,a){if(a.curPageNum>0){a.curPageNum--;a.showPage(a);a.applyAnnos("prevpage",[],a);}else{a.curPage;}};SQAPanelContent.prototype.showPage=function(a){if(a){a.pageChanged.fire(a.curPageNum);if(a.mode=="text"){vURI=a.xmlDir+"/"+a.pages[a.curPageNum].xml.v;rURI=a.xmlDir+"/"+a.pages[a.curPageNum].xml.r;a.pageText.fillPage(vURI,rURI,a.docId,a.curPageNum,a.set);}else{tileurl=a.imageDir+"/"+a.pages[a.curPageNum].tiles;prefix=a.pages[a.curPageNum].img+"-";if(a.openAnno){a.leaveAnno(null,null,a);}if(a.cropBox){a.leaveCrop();}a.image.changePage(a.image,tileurl,prefix);}}};SQAPanelContent.prototype.applyAnnos=function(g,f,a){if(!(a.docId=="")){if(a.set==""){a.set="default";}var h="?type=image&proj=none&doc="+a.docId+"&page="+(a.curPageNum+1)+"&set="+a.set;var d="./lib/Annotation/retrieveAnno.php"+h;var j={success:function(e){annosOnPage=e.responseText;a=e.argument[0];a.clearBoxes();annoRows=annosOnPage.split("\n");a.userOwnsSet=(annoRows[0]=="True")?true:false;for(i in annoRows){row=annoRows[i];piece=row.split("%");id=piece[0];coords=piece[1];ref=piece[2];text=piece[3];if(coords){c=coords.split(",");ca=[];ca.push(parseFloat(c[0]));ca.push(parseFloat(c[1]));ca.push(parseFloat(c[3]));ca.push(parseFloat(c[2]));a.image.addBox(a.image,id,ref,ca,text);}}},failure:function(e){alert("Notes could not be loaded. This may be due to your connection. SQAPanelContent 346");},argument:[a]};var b=YAHOO.util.Connect.asyncRequest("GET",d,j);}};SQAPanelContent.prototype.callChangeAnnoSet=function(a,b){b.set=a.annoId;b.setName=a.annoName;b.userOwnsSet=a.priv;b.showPage(b);if(b.mode=="image"){b.applyAnnos("callchangeannoset",[],b);}};SQAPanelContent.prototype.toggleMode=function(b,a){if(a.mode=="text"){YAHOO.util.Dom.setStyle(a.image.DOM,"display","none");YAHOO.util.Dom.setStyle(a.pageText.DOM,"display","block");YAHOO.util.Dom.setStyle(a.DOM,"overflow","auto");}else{YAHOO.util.Dom.setStyle(a.image.DOM,"display","block");YAHOO.util.Dom.setStyle(a.pageText.DOM,"display","none");if(a.annoBar){document.getElementsByTagName("body")[0].removeChild(a.pageText.annoBar.DOM);}}a.showPage(a);};SQAPanelContent.prototype.zoomOut=function(b,a){if(a.mode=="image"){a.image.viewerBean.zoom(-1);a.resetViewer(null,a);}};SQAPanelContent.prototype.zoomIn=function(b,a){if(a.mode=="image"){a.image.viewerBean.zoom(1);a.resetViewer(null,a);}};SQAPanelContent.prototype.resetViewer=function(b,a){a.image.resetViewerBean(a.image);a.applyAnnos(null,null,a);};SQAPanelContent.prototype.saveImageAnno=function(g,k,j){anno=k[0].obj;box=k[0].box;var f=anno.textInput.value;if((!(j.docId==""))&&(!(anno.annoId==""))){var m=YAHOO.util.Dom.getElementsBy(function(e){if(e.selected==true){return e;}},"option",YAHOO.util.Dom.getElementsByClassName("dropDown")[0]);var h=m[0].firstChild.nodeValue;j.set=anno.annoId;var b="?type=image&text="+f+"&ref="+j.openAnno.box.reference+"&doc="+j.docId+"&coords="+j.openAnno.box.origCoords.toString()+"&link=null&page="+(j.curPageNum+1)+"&set="+anno.annoId+"&security="+anno.publicMode+"&sigValue="+h;var a="./lib/Annotation/saveAnno.php"+b;var l={success:function(r){arg=r.argument;var n=r.argument.anno;var e=r.argument.panelContent;var q=arg.box;var s=r.responseText;q.changeToMarker(s,r.argument.comment);q.imageAnnoClicked.subscribe(e.showImgAnno,[e,q]);e.leaveAnno(null,null,e);e.applyAnnos("saveimganno",null,e);},failure:function(e){e.panelContent.setAlert.fire("Sorry! Error loading data. Please refresh your browser.");},argument:{box:box,panelContent:j,anno:anno,comment:f}};var d=YAHOO.util.Connect.asyncRequest("GET",a,l);setTimeout(function(){if(YAHOO.util.Connect.isCallInProgress(d)){YAHOO.util.Connect.abort(d);}},5000);}else{j.leaveAnno(j);}};SQAPanelContent.prototype.setUpCrop=function(b,a){if(b.mode=="image"){if(b.cropBox){if(document.getElementById(b.cropButton.id)){b.DOM.removeChild(b.cropButton);}if(document.getElementById(b.cropBox.id)){b.image.cropDone(b.cropBox,b.image);}}b.image.initializeImageClick("crop",a);b.image.crop.subscribe(b.getCropBox,b);}else{b.resetClickMode.fire({mode:"none",id:b.panelid});b.setAlert.fire("You must have the active panel in Image mode before using this feature.");}};SQAPanelContent.prototype.showImgAnno=function(d,b,a){pc=a[0];marker=a[1];marker.editLock=pc.userOwnsSet;if(marker.tempBox==null){marker.tempBox=new InfoPopUp(marker.id,marker.annoText,marker.editLock,"image");pc.image.viewerBean.surface.appendChild(marker.tempBox.DOM);marker.tempBox.deleteFootnote.subscribe(pc.destroyNote,[marker,pc]);marker.tempBox.notifyEdit.subscribe(pc.image.viewerBean.lockMove,pc.image.viewerBean);marker.boxAdjusted.subscribe(marker.tempBox.move,[marker.tempBox,pc]);}marker.tempBox.showWin("",marker.tempBox);YAHOO.util.Dom.setX(marker.tempBox.DOM,YAHOO.util.Dom.getX(marker.DOM)+parseInt(YAHOO.util.Dom.getStyle(marker.DOM,"width"))+10);YAHOO.util.Dom.setY(marker.tempBox.DOM,YAHOO.util.Dom.getY(marker.DOM));marker.tempBox.move("",[marker],[marker.tempBox,pc]);};SQAPanelContent.prototype.destroyNote=function(g,f,a){box=a[0];obj=a[1];infoPopup=f[0];var j=box.DOM.id.substring(2);var d="./lib/Annotation/deleteAnno.php?id="+infoPopup.annoId+"&type=image&set="+obj.set;var h={success:function(e){box=e.argument.box;if(box.DOM.parentNode){box.DOM.parentNode.removeChild(box.tempBox.DOM);box.DOM.parentNode.removeChild(box.DOM);}},failure:function(e){e.obj.setAlert.fire("Sorry! Error connecting to database. Please refresh your browser.");},argument:{obj:obj,box:box}};var b=YAHOO.util.Connect.asyncRequest("GET",d,h);setTimeout(function(){if(YAHOO.util.Connect.isCallInProgress(b)){YAHOO.util.Connect.abort(b);}},5000);};SQAPanelContent.prototype.saveTextAnno=function(m,r,n){panelContent=n;pageText=r[0][0];sel=pageText.annoInfo;anno=r[0][1];var l=anno.textInput.value;var a=sel.startNodeParent;var s=sel.startChildNum;var o=sel.startOffset;var f=sel.endNodeParent;var j=sel.endChildNum;var q=sel.endOffset;var d=panelContent.docId;var k=panelContent.set+"_"+d+"_"+panelContent.curPageNum+"_";var g="?type=text&text="+l+"&doc="+d+"&node1="+a.id+"&startCount="+s+"&node2="+f.id+"&endCount="+j+"&startValue="+o+"&endValue="+q+"&page="+panelContent.curPageNum+"&set="+panelContent.set;var b="./lib/Annotation/saveAnno.php"+g;var t={success:function(e){e.argument.pageText.createTextAnno({id:e.responseText,endNode:e.argument.endNode,offset2:e.argument.offset2,node2:e.argument.node2,pageText:e.argument.pageText});},failure:function(e){alert("Error loading data.");},argument:{node2:f.id,endNode:j,offset2:q,pageText:pageText}};var h=YAHOO.util.Connect.asyncRequest("GET",b,t);};SQAPanelContent.prototype.createAnno=function(d,b,a){if(a.mode=="image"){if(a.openAnno){a.openAnno.destroy("",a.openAnno);}a.openAnno=new Annotation("image",b[0]);b[0].movedEvent.subscribe(a.openAnno.moveWithBox,{pc:a,anno:a.openAnno});b[0].startMove.subscribe(a.openAnno.hideAnno,a.openAnno);a.openAnno.saveAnnoCall.subscribe(a.saveImageAnno,a);a.openAnno.annoClosed.subscribe(a.leaveAnno,a);a.image.handleAnno(a.openAnno,"add");a.image.stopClickListeners();a.resetClickMode.fire({mode:"none",id:a.panelid});}};SQAPanelContent.prototype.setUpAnno=function(b,a){if(b.mode=="image"){if(document.getElementById(b.cropButton.id)){b.DOM.removeChild(b.cropButton);b.image.crop.unsubscribeAll(b.getCropBox,b);if(b.cropBox){b.image.cropDone(b.cropBox,b.image);}}b.image.initializeImageClick("anno",a);}else{b.resetClickMode.fire({mode:"none",id:b.panelid});b.setAlert.fire("You must have the active panel in Image mode before using this feature.");}};SQAPanelContent.prototype.leaveAnno=function(d,b,a){if(a.openAnno){a.openAnno.annoClosed.unsubscribeAll();a.openAnno.saveAnnoCall.unsubscribeAll();a.image.handleAnno(a.openAnno,"remove");if(a.openAnno.box){a.image.cropDone(a.openAnno.box,a.image);}a.openAnno=null;}a.image.uninitImageClick("anno");};