var locales=[];this.parseIt=function(A){};triggerElementID="reader_main";function processingRoutine(){if(swipeDirection=="left"){imr.curBook.nextPage();}else{if(swipeDirection=="right"){imr.curBook.previousPage();}}}this.waitParsing=false;Effect.BlindLeft=function(A){A=$(A);A.makeClipping();return new Effect.Scale(A,0,Object.extend({scaleContent:false,scaleY:false,scaleMode:"box",scaleContent:false,restoreAfterFinish:true,afterSetup:function(B){B.element.makeClipping().setStyle({height:B.dims[0]+"px"}).show();},afterFinishInternal:function(B){B.element.hide().undoClipping();}},arguments[1]||{}));};Effect.BlindRight=function(B){B=$(B);var A=B.getDimensions();return new Effect.Scale(B,100,Object.extend({scaleContent:false,scaleY:false,scaleFrom:0,scaleMode:{originalHeight:A.height,originalWidth:A.width},restoreAfterFinish:true,afterSetup:function(C){C.element.makeClipping().setStyle({width:"0px"}).show();},afterFinishInternal:function(C){C.element.undoClipping();}},arguments[1]||{}));};Element.getAttributeValue=function(B,A){if(B.attributes[A]){return B.attributes[A].nodeValue;}else{if(B.attributes.getNamedItem(A)){return B.attributes.getNamedItem(A).value;}else{return null;}}};Element.getValue=function(A){if(A.nodeValue){return A.nodeValue;}else{return A.value;}};document.ondragstart=function(A){return false;};var ImrPage=Class.create({initialize:function(B,A){this.page_number=B;this.book=A;this.setZoom(this.book.main.zoom);this.loading=false;this.loaded=false;this.linksDrawn=false;this.keywordsDrawn=false;this.original_width=0;this.original_height=0;this.vector_width=0;this.vector_height=0;this.width=0;this.height=0;},img:function(){return null;},print:function(){var A=new Image();cryptIPage(A,this.book.main.locale,this.book.uid,this.page_number,175);w=window.open();w.document.write("<html><head><title></title></head><body>");w.document.write("<img id='toPrint' height='100%' onload='window.print();window.top.close();' src='"+A.src+"'/>");w.document.write("</body></html>");},display:function(){},afterLoaded:function(){},updateZoom:function(A){},resizeAll:function(){},setZoom:function(A){this.zoom=A;},load:function(A){if(waitParsing==false){this.loading=true;this.setZoom(A);if($(""+this.page_number)){$(""+this.page_number).style.width=parseInt(this.book.width*A/100)+"px";$(""+this.page_number).style.height=parseInt(this.book.height*A/100)+"px";}if(!this.jsonVectors){this.loadVectors();}else{if(this.keywordsDrawn==false&&this.book.keywords){this.selectTextAllKeyword(this.book.keywords);this.keywordsDrawn=true;}}this.display();}else{}},parseVectorsJSON:function(C,E){var D;var F;var A;E.jsonFontspecs=[];E.jsonImages=[];E.jsonVectors=[];E.jsonLinkVectors=[];E.jsCanvas="";D=C.text;for(i=0;i<D.length;i++){var B=[];if(D[i]["char_positions"]){for(k=0;k<D[i]["char_positions"].length;k++){B[k]=parseFloat(D[i]["char_positions"][k])/0.72;}}E.jsonVectors[i]={left:parseInt(D[i]["left"]/0.72),top:parseInt(D[i]["top"]/0.72),width:parseInt(D[i]["width"]/0.72),height:parseInt(D[i]["height"]/0.72),fontsize:parseInt(D[i]["fontsize"])/10/0.72,charPositions:B,text:D[i]["text"]};}A=C.link;for(i=0;i<A.length;i++){E.jsonLinkVectors[i]={left:parseInt(A[i]["left"]/0.72),top:parseInt(A[i]["top"]/0.72),width:parseInt(A[i]["width"]/0.72),height:parseInt(A[i]["height"]/0.72),href:A[i]["href"].replace(/\n/g,"").replace(/#(\d+)$/g,"#$1")};}ajaxComplete();},followLinkEvent:function(A){return function(B){if(A.search(/http:\/\//i)>-1){window.open(A);}else{location.href=A;location.href="#";}};},drawLinks:function(){if(this.book.linksEnabled&&this.jsonLinkVectors){var B=this.book;var C=(B.width-this.width)/2;var A=(B.height-this.height)/2;for(i=0;i<this.jsonLinkVectors.length;i++){var D=document.createElement("div");Element.addClassName(D,"link");D.style.width=parseInt(this.jsonLinkVectors[i].width*B.main.zoomF())+"px";D.style.left=parseInt((C+this.jsonLinkVectors[i].left)*B.main.zoomF())+$(""+this.page_number).offsetLeft+"px";D.style.height=parseInt(this.jsonLinkVectors[i].height*B.main.zoomF())+"px";divT=parseInt(this.jsonLinkVectors[i].top*B.main.zoomF());D.style.top=parseInt((this.page_number-1)*(this.book.diffTop()+parseInt(B.height*B.main.zoomF()))+divT)+"px";Event.observe(D,"click",this.followLinkEvent(this.jsonLinkVectors[i].href));$("links").appendChild(D);}}},loadVectors:function(){var B=this;waitParsing=true;parseIt=function(C){B.parseVectorsJSON(C,B);};var A=document.createElement("script");A.type="text/javascript";A.src=cryptVPage(this.book.main.locale,this.book.uid,this.page_number);A.onload=function(){waitParsing=false;document.body.removeChild(A);};A.onreadystatechange=function(){if(this.readyState=="complete"||this.readyState=="loaded"){waitParsing=false;document.body.removeChild(A);}};document.body.appendChild(A);},selectTextAllKeyword:function(A){var D=new RegExp("[ ]+","g");var C=A.split(D);for(var B=0;B<C.length;B++){this.selectTextKeyword(C[B]);}},selectTextKeyword:function(I){var G=this.book;if(this.jsonVectors){for(i=0;i<this.jsonVectors.length;i++){var E=this.jsonVectors[i];var N=E.text;var D=new RegExp(" +","g");if(E.text){N=E.text.replace(D," ");}var L=N.toLowerCase().indexOf(I.toLowerCase(),0);if(L>-1){var K=(G.width-this.width)/2;var J=(G.height-this.height)/2;if(K<0){K=0;}if(J<0){J=0;}var F=0;var C=0;var M=[];M=E.charPositions;for(j=0;j<L;j++){F=F+M[j];}for(j=L;j<L+I.length;j++){C=C+M[j];}var B=document.createElement("div");Element.extend(B);Element.addClassName(B,"selected");B.style.width=parseInt(C*G.main.zoomF())+"px";B.style.height=parseInt(E.height*G.main.zoomF())+"px";var A=parseInt(E.top*G.main.zoomF());B.style.top=parseInt((this.page_number-1)*(this.book.diffTop()+parseInt(G.height*G.main.zoomF()))+A)+"px";var H=(K+F+E.left)*G.main.zoomF();B.style.left=parseInt(H)+(this.book.diffLeft(this.page_number))+"px";B.style.backgroundColor="#FFFF00";$("selection").appendChild(B);}}}},selectTextBox:function(Q,I,n,H,m){var J=this.book;var D=[];var e;if(this.jsonVectors){var Y=(J.width-this.width)/2;var X=(J.height-this.height)/2;if(Y<0){Y=0;}if(X<0){X=0;}var M=1;for(e=0;e<this.jsonVectors.length;e++){var d=this.jsonVectors[e].left*J.main.zoomF();var T=this.jsonVectors[e].top*J.main.zoomF();var b=d+this.jsonVectors[e].width*J.main.zoomF();var S=T+this.jsonVectors[e].height*J.main.zoomF();if(d<H-J.diffLeft(this.page_number)&&b>I-J.diffLeft(this.page_number)&&T<m&&S>n){D[M]=this.jsonVectors[e];M=M+1;}}var c;for(c=1;c<D.length;c++){el=D[c];var f=document.createElement("div");var a=[];var Z=new RegExp(" ","g");if(el.text){a=el.text.split(Z);}var R=el.text;var h=new RegExp(" +","g");if(el.text){R=el.text.replace(h," ");}var K=parseInt(el.fontsize*J.main.zoomF()/1.5)+"px";Element.extend(f);Element.addClassName(f,"selected");var O=parseInt(el.width*J.main.zoomF());f.style.width=O+"px";var W=parseInt(el.height*J.main.zoomF());f.style.height=W+"px";var P=parseInt(el.top*J.main.zoomF());f.style.top=parseInt((this.page_number-1)*(this.book.diffTop()+parseInt(J.height*J.main.zoomF()))+P)+"px";var V=(Y+el.left)*J.main.zoomF();f.style.left=parseInt(V)+(this.book.diffLeft(this.page_number))+"px";f.style.fontSize=parseInt(el.fontsize*J.main.zoomF())+"px";f.style.backgroundColor=Q;$("selection").appendChild(f);zx1=I-J.diffLeft(this.page_number);zx2=H-J.diffLeft(this.page_number);zy1=n;zy2=m;var C=document.createElement("div");Element.addClassName(C,"selected_hidden");f.appendChild(C);if((V>zx1&&V+O<zx2&&P>zy1&&P+W<zy2)||zy2>P+(W*2)){f.style.fontSize=K;C.innerHTML=R;}else{var N=V;var g=0;var U=0;var E=[];var l=0;var B=[];B=el.charPositions;for(k=0;k<R.length;k++){if(B[k]){var L=document.createElement("span");if(R[k]==" "){L.innerHTML="&nbsp;";}else{L.innerHTML=R[k];}E[k]=L;C.appendChild(L);l=l+(B[k]*J.main.zoomF());}else{}}for(k=0;k<R.length;k++){if(B[k]){var A=B[k]*J.main.zoomF();if((N<zx2&&N+A>zx1)||(P+W<zy2&&N+A>zx1)||(P>zy1&&N<zx2)){g=g+A;f.style.width=parseInt(g)+"px";if(U==0){U=N;}f.style.left=parseInt(U+this.book.diffLeft(this.page_number))+"px";}else{C.removeChild(E[k]);}N=N+A;}else{}f.style.fontSize=K;}}}var G=null;var F=null;if(window.getSelection){G=window.getSelection();F=document.createRange();F.selectNodeContents($("selection"));G.removeAllRanges();G.addRange(F);}else{G=document.selection;F=document.body.createControlRange();F.add($("selection"));F.select();}this.book.main.copyClipboard();}},selectText:function(){var B=this.jsonCoords.x1;var D=this.jsonCoords.y1;var A=this.jsonCoords.x2;var C=this.jsonCoords.y2;this.selectTextBox("#AAD5FF",B,D,A,C);}});var ImrPageImage=Class.create(ImrPage,{resizeAll:function(){var A=this.img();if(A.complete){tmp_w=parseInt(A.width/(this.zoom/100));tmp_h=parseInt(A.height/(this.zoom/100));if(tmp_w>0&&this.original_width==0){this.original_width=tmp_w;this.original_height=tmp_h;}if(this.original_width>0){A.width=parseInt(this.original_width*this.book.main.zoomF());A.height=parseInt(this.original_height*this.book.main.zoomF());A.change=true;}}},img:function(){return $("img_"+this.page_number);}});var ImrPageBitmapImage=Class.create(ImrPageImage,{zooms:[50,75,100,125,150,175],setZoom:function(A){this.zoom=A;},afterLoaded:function(){this.img().removeAttribute("width");this.img().removeAttribute("height");},updateZoom:function(A){this.loaded=false;this.loading=false;},display:function(){var A=this.img();cryptIPage(A,this.book.main.locale,this.book.uid,this.page_number,this.zoom);A.onload=function(){A.change=false;};}});var ImrPageBitmapImageScaled=Class.create(ImrPageImage,{zooms:[50,75,100,125,150,175],calculateBitmapZoom:function(C){var A=0;var B=this.zooms;for(i=0;i<B.length;i++){if(C>A){A=B[i];}}return A;},setZoom:function(A){this.bitmap_zoom=this.calculateBitmapZoom(A);this.zoom=A;},afterLoaded:function(){},updateZoom:function(A){this.loaded=false;this.loading=false;},display:function(){var A=this.img();A.width=parseInt(this.book.width*this.zoom/100);A.height=parseInt(this.book.height*this.zoom/100);cryptIPage(A,this.book.main.locale,this.book.uid,this.page_number,this.bitmap_zoom);A.onload=function(){A.change=false;};}});var ImrPageVectorImage=Class.create(ImrPageImage,{display:function(){var A=this.img();url=cryptIPageS(this.book.main.locale,this.book.uid,this.page_number,this.zoom);if(false){if(!$("obj_"+this.page_number)){var B=document.createElement("object");B.setAttribute("id","obj_"+this.page_number);B.type="image/svg+xml";B.width=0;B.height=0;B.data=url;$(""+this.page_number).insert({top:B});}}main=this;A.style.backgroundColor="white";A.width=parseInt(main.book.width*this.zoom/100);A.height=parseInt(main.book.height*this.zoom/100);A.src=url;A.onload=function(){A.change=false;};}});if(false){var ImrPageExperimentalText=Class.create(ImrPage,{parseVectors:function(A){return function(G){var J=G.responseXML;var E;var C;var L;A.jsonFontspecs=[];A.jsonImages=[];A.jsonVectors=[];A.jsonLinkVectors=[];A.jsCanvas="";if(A.book.main.experimental==true){if(J.getElementsByTagName("canvas_script").length>0){A.jsCanvas=J.getElementsByTagName("canvas_script")[0].firstChild.nodeValue;}images=J.getElementsByTagName("image");for(i=0;i<images.length;i++){A.jsonImages[i]={left:parseInt(parseInt(Element.getAttributeValue(images[i],"left"))/0.72),top:parseInt(parseInt(Element.getAttributeValue(images[i],"top"))/0.72),width:parseInt(parseInt(Element.getAttributeValue(images[i],"width"))/0.72),height:parseInt(parseInt(Element.getAttributeValue(images[i],"height"))/0.72),src:Element.getAttributeValue(images[i],"src")};}fonts=J.getElementsByTagName("fontspec");for(i=0;i<fonts.length;i++){A.jsonFontspecs[i]={id:parseInt(Element.getAttributeValue(fonts[i],"id")),size:parseInt(Element.getAttributeValue(fonts[i],"size"))/10/0.72,family:Element.getAttributeValue(fonts[i],"family"),color:Element.getAttributeValue(fonts[i],"color")};}}E=J.getElementsByTagName("text");for(i=0;i<E.length;i++){var F="";for(ti=0;ti<E[i].childNodes.length;ti++){var M=E[i].childNodes[ti];if(Element.getValue(M)){F=F+Element.getValue(M);}else{var I=M.childNodes[0];if(Element.getValue(I)){F=F+Element.getValue(I);}}}var K=0;var H=0;var D=0;if(Element.getAttributeValue(E[i],"word_space")){K=parseFloat(Element.getAttributeValue(E[i],"word_space"))/0.72;}if(Element.getAttributeValue(E[i],"char_space")){H=parseFloat(Element.getAttributeValue(E[i],"char_space"))/0.72;}if(Element.getAttributeValue(E[i],"font")){D=parseInt(Element.getAttributeValue(E[i],"font"));}A.jsonVectors[i]={left:parseInt(parseInt(Element.getAttributeValue(E[i],"left"))/0.72),top:parseInt(parseInt(Element.getAttributeValue(E[i],"top"))/0.72),width:parseInt(parseInt(Element.getAttributeValue(E[i],"width"))/0.72),height:parseInt(parseInt(Element.getAttributeValue(E[i],"height"))/0.72),fontsize:parseInt(Element.getAttributeValue(E[i],"fontsize"))/10/0.72,rotation:parseInt(Element.getAttributeValue(E[i],"rotation")),wordSpace:K,charSpace:H,font:D,text:F.replace(/\n/g,"")};}L=J.getElementsByTagName("link");for(i=0;i<L.length;i++){var B="";for(ti=0;ti<L[i].childNodes.length;ti++){var M=L[i].childNodes[ti];if(Element.getValue(M)){B=Element.getValue(M);}}A.jsonLinkVectors[i]={left:parseInt(parseInt(Element.getAttributeValue(L[i],"left"))/0.72),top:parseInt(parseInt(Element.getAttributeValue(L[i],"top"))/0.72),width:parseInt(parseInt(Element.getAttributeValue(L[i],"width"))/0.72),height:parseInt(parseInt(Element.getAttributeValue(L[i],"height"))/0.72),href:B.replace(/\n/g,"").replace(/#(\d+)$/g,"#$1")};}if(A.book.main.experimental==true){A.drawText();}ajaxComplete();};},loadTextOnly:function(A){this.loading=true;this.zoom=A;if(!this.jsonVectors){this.loadVectorsTextOnly();}else{this.drawText();}},loadVectorsTextOnly:function(){new Ajax.Request("/"+this.book.main.locale+"/reader/vectors_exp?id="+this.book.uid+"&page_number="+this.page_number,{contentType:"text/xml",onComplete:this.parseVectors(this),onLoading:ajaxLoading()});},fontOfTextVector:function(A){return this.jsonFontspecs[A.font];},drawImages:function(){var C=this.book;if(this.jsonVectors){for(i=0;i<this.jsonImages.length;i++){var G=this.jsonImages[i];var A=parseInt(G.width*C.main.zoomF());var E=parseInt(G.height*C.main.zoomF());var F=new RegExp("/tmp/reader","g");var D=new RegExp("\\.","g");var B=new Image();B.src=G.src.replace(F,"http://localhost:3001/files/serve_reader_embd_img").replace(D,"_"+A+"x"+E+".");B.width=A;B.height=E;B.setAttribute("id","img_"+this.page_number+"_"+(i+1));B.style.visibility="hidden";$("sub_"+this.page_number).appendChild(B);}}},textAlignLast:function(B,A){width=Math.round(A);el=document.createElement("div");el.innerHTML=B.innerHTML;el.style.wordSpacing="0px";el.style.letterSpacing="0px";el.style.fontSize=B.style.fontSize;el.style.fontFamily=B.style.fontFamily;$("reader_main").appendChild(el);var G=0;curW=el.getWidth();iniH=el.getHeight();el.style.width=width+"px";curH=el.getHeight();var E=0;var C=0;var D=1;var F=0;if(curW==width){}if(curW<width&&curH==iniH){while(curW<width&&F<50){E+=D;el.style.wordSpacing=E+"px";curH=el.getHeight();curW=el.getWidth();if(curW>=width&&curH==iniH){break;}F+=1;}}F=0;if(curW>width||curH>iniH){while((curW>width||curH>iniH)&&F<50){E-=D;el.style.wordSpacing=E+"px";curH=el.getHeight();curW=el.getWidth();if(curW<=width&&curH==iniH){break;}F+=1;}}B.style.wordSpacing=el.style.wordSpacing;B.style.letterSpacing=el.style.letterSpacing;el.remove();},hackJustify:function(B,H,C,I,K,F){width=Math.round(H);el=document.createElement("div");el.innerHTML=C;el.style.wordSpacing=K+"px";el.style.letterSpacing=F+"px";el.style.fontSize=B.style.fontSize;el.style.fontFamily=B.style.fontFamily;$("reader_main").appendChild(el);var G=0;curW=el.getWidth();iniH=el.getHeight();el.style.width=width+"px";curH=el.getHeight();var A=K;var E=F;var J=1;var D=0;if(curH==iniH&&curW<width){while(curH==iniH&&curW<width&&D<100){A+=J;el.style.wordSpacing=A+"px";curH=el.getHeight();curW=el.getWidth();if(curH>iniH&&curW>width){A-=J;el.style.wordSpacing=A+"px";curH=el.getHeight();curW=el.getWidth();break;}D+=1;}}if(curH>iniH){while(curH>iniH&&D<100){A-=J;el.style.wordSpacing=A+"px";curH=el.getHeight();curW=el.getWidth();if(curH==iniH){break;}D+=1;}}if(Math.abs(A)>I/2){el.style.wordSpacing=Math.round(A/2)+"px";curH=el.getHeight();curW=el.getWidth();A=0;while(curH>iniH&&D<100){E-=J;el.style.letterSpacing=E+"px";curH=el.getHeight();curW=el.getWidth();if(curH==iniH){break;}D+=1;}B.style.letterSpacing=el.style.letterSpacing;B.style.wordSpacing=el.style.wordSpacing;}else{B.style.wordSpacing=el.style.wordSpacing;}el.remove();},drawText:function(){var curBook=this.book;if($("sub_"+this.page_number)){$("sub_"+this.page_number).remove();}subdiv=document.createElement("div");subdiv.setAttribute("id","sub_"+this.page_number);Element.extend(subdiv);$("book").appendChild(subdiv);this.drawImages();if(this.jsonVectors){if(this.jsCanvas!=""){var canvas=document.createElement("canvas");canvas.setAttribute("id","canvas_"+this.page_number);canvas.width=curBook.width*curBook.main.zoomF();canvas.height=curBook.height*curBook.main.zoomF();subdiv.appendChild(canvas);canvas.style.position="absolute";canvas.style.top=Math.round(parseInt((this.page_number-1)*(this.book.diffTop()+parseInt(curBook.height*curBook.main.zoomF()))))+"px";canvas.style.left=Math.round(this.book.diffLeft(this.page_number))+"px";var ratio=curBook.main.zoomF()/0.72;eval(this.jsCanvas);canvas.style.zIndex=0;}for(i=0;i<this.jsonVectors.length;i++){var el=this.jsonVectors[i];var fnt=this.fontOfTextVector(el);var div=document.createElement("div");Element.extend(div);Element.addClassName(div,"text");var divW=el.width*curBook.main.zoomF();var divH=el.height*curBook.main.zoomF();var divT=el.top*curBook.main.zoomF();div.style.top=Math.round(parseInt((this.page_number-1)*(this.book.diffTop()+parseInt(curBook.height*curBook.main.zoomF()))+divT))+"px";var divL=el.left*curBook.main.zoomF();div.style.left=Math.round(divL+this.book.diffLeft(this.page_number))+"px";var fontsize=Math.round(el.fontsize*curBook.main.zoomF()*10)/10;if(el.rotation>0){div.setStyle({"-webkit-transform-origin":"bottom left","-webkit-transform":"rotate("+el.rotation+"deg)"});}div.style.fontSize=Math.round(fontsize)+"px";if(fnt){var reg=new RegExp("[^\\+]*\\+","g");var family=fnt.family.replace(reg,"");div.style.fontFamily='"'+family+'"';div.style.color=fnt.color;}div.style.zIndex=100;var hck="";for(k=0;k<el.text.length;k++){hck=hck+"&nbsp;";}regt=new RegExp(" ","g");var text=el.text;reg=new RegExp(" ","g");var tmp=text.split(reg);div.innerHTML=text;var wsp=el.wordSpace*curBook.main.zoomF();var lsp=el.charSpace*curBook.main.zoomF();var lflt=Math.round(lsp)-lsp;if(lflt!=0){wsp=wsp+(text.length*lflt)/tmp.length;}wsp=Math.round(wsp);lsp=Math.round(lsp);div.style.wordSpacing=wsp+"px";div.style.letterSpacing=lsp+"px";div.style.zIndex=2;$("sub_"+this.page_number).appendChild(div);if(el.rotation>0){div.style.textAlign="left";}else{div.style.height=Math.round(divH)+"px";div.style.lineHeight=Math.round(divH)+"px";div.style.width=Math.round(divW)+"px";}}}this.loaded=true;this.loading=false;}});}var ImrNotes=Class.create({initialize:function(A){this.book=A;this.pagesNotesJson=[];this.jsonNotesCount=[];this.loadNotes();this.lastPage=1;},setPageNotesCount:function(A,B){$("page_"+A+"_note_count").innerHTML="<b>"+B+"</b>";},loadNotes:function(){new Ajax.Request("/"+this.book.main.locale+"/reader/notes_count_json?id="+this.book.uid,{onLoading:ajaxLoading(),onComplete:this.parseNotes(this)});},reloadNotes:function(){new Ajax.Request("/"+this.book.main.locale+"/reader/notes_count_json?id="+this.book.uid,{onComplete:this.reparseNotes(this)});},reparseNotes:function(A){return function(B){A.jsonNotesCount=B.responseText.evalJSON();for(i=1;i<A.book.page_count+1;i++){$("page_"+i+"_note_count").innerHTML="0";}A.redrawNotes();};},parseNotes:function(A){return function(B){A.jsonNotesCount=B.responseText.evalJSON();A.drawNotes();ajaxComplete();};},redrawNotes:function(){this.drawNotes();},updateNotes:function(){this.loadNotes();},drawNotes:function(){$("notes").innerHTML="";for(j=0;j<this.jsonNotesCount.length;j++){var A=this.jsonNotesCount[j].page_number;var B=document.createElement("div");B.setAttribute("id","page_notes_"+A);Element.addClassName(B,"page_notes");B.innerHTML='<div class="note_add" onclick="new Ajax.Request(\'/fr/reader/new_note?id='+this.book.uid+"&page_number="+A+'\', {asynchronous:true, evalScripts:true}); return false;" href="#"></div> 				<a class="permalink" title="'+locales.Permalink+'" href="http://livre.immateriel.fr/'+this.book.main.curJsonBook.isbn+"/"+A+'" target="_blank">&nbsp;&nbsp;&nbsp;&nbsp;</a> 				<span id="page_'+A+'" style="font-weight:bold"><a onclick="imr.curBook.jumpToPage('+A+');" href="#">Page '+A+'</a></span> 				(<span id="page_'+A+'_note_count">0</span>) 				<span id="note_more_img_'+A+'" class="note_more" onclick="imr.curBook.notes.togglePageNotes('+A+',false);">&nbsp;&nbsp;&nbsp;&nbsp;</span> 				<div id="page_'+A+'_edit"></div><div id="page_'+A+'_notes" style="display:none;"></div>';$("notes").appendChild(B);this.setPageNotesCount(this.jsonNotesCount[j].page_number,this.jsonNotesCount[j].page_notes_count);}this.drawCurrentPageNotes(this.book.curPage.page_number);},drawCurrentPageNotes:function(B){if(this.book.main.curJsonBook){this.showAllPageNotes();if($("current_page_notes")){Element.remove($("current_page_notes"));}var D=document.createElement("div");D.setAttribute("id","current_page_notes");Element.addClassName(D,"current_page_notes");D.innerHTML='<div class="note_add" title="'+locales["Add note"]+'" onclick="new Ajax.Request(\'/fr/reader/new_note?id='+this.book.uid+"&page_number="+B+'\', {asynchronous:true, evalScripts:true}); return false;" href="#"></div> 		<span><a class="permalink" title="'+locales.Permalink+'" href="http://livre.immateriel.fr/'+this.book.main.curJsonBook.isbn+"/"+B+'" target="_blank">&nbsp;&nbsp;&nbsp;&nbsp;</a> 		<span id="page_'+B+'" style="font-weight:bold">'+locales["Current page"]+'</span> 		(<span id="page_'+B+'_note_count">0</span>)</span> 		<span id="note_more_img_'+B+'" class="note_more" onclick="imr.curBook.notes.togglePageNotes('+B+',false);">&nbsp;&nbsp;&nbsp;&nbsp;</span> 		<div id="page_'+B+'_edit"></div><div id="page_'+B+'_notes" style="display:none;"></div>';$("notes").insert({top:D});var A=0;for(j=0;j<this.jsonNotesCount.length;j++){if(this.jsonNotesCount[j].page_number==B){A=this.jsonNotesCount[j].page_notes_count;$("page_"+B+"_note_count").innerHTML="<b>"+A+"</b>";}}var C=new Object();C.page=B;Object.extend(D,C);this.hideCurrentPageNotes(B);if(A>0){this.togglePageNotes(B,true);}this.lastPage=B;}},parsePageNotes:function(A,B){return function(C){B.pagesNotesJson[A-1]=C.responseText.evalJSON();B.setPageNotesCount(A,B.pagesNotesJson[A-1].length);B.drawPageNotes(A);};},showAllPageNotes:function(){for(i=0;i<this.book.page_count;i++){if($("page_notes_"+i)){Element.show("page_notes_"+i);}}},hideCurrentPageNotes:function(A){if($("page_notes_"+A)){Element.hide("page_notes_"+A);}},visualTogglePageNotes:function(A){Effect.toggle("page_"+A+"_notes","blind",{duration:0.5,afterFinish:function(){}});toggleClass($("note_more_img_"+A+""),"note_more","note_less");},togglePageNotes:function(A,B){if($("page_"+A+"_notes").visible()==true){this.visualTogglePageNotes(A);}else{this.book.notes.loadPageNotes(A,B);}},onLoadPageNotesComplete:function(A,B){return function(){if(!B||$("current_page_notes").page==A){Effect.toggle("page_"+A+"_notes","blind",{duration:0.5,afterFinish:function(){}});toggleClass($("note_more_img_"+A+""),"note_more","note_less");}};},loadPageNotes:function(A,B){new Ajax.Updater("page_"+A+"_notes","/"+this.book.main.locale+"/reader/page_notes?id="+this.book.uid+"&page_number="+A,{onComplete:this.onLoadPageNotesComplete(A,B)});},drawPageNotes:function(C){var A=this.pagesNotesJson[C-1];for(i=0;i<A.length;i++){var B=A[i];div=document.createElement("div");Element.addClassName(div,"note");div.setAttribute("style","background-color:"+B.color);div.innerHTML=B.firstname+" "+B.lastname+"<br/>"+B.content;$("page_"+C+"_notes").appendChild(div);}}});var ImrLifo=Class.create({initialize:function(B,C,A){this.timeout=30;this.curTimeout=0;this.stack=[];this.max=A;this.period=C;this.book=B;this.pe=new PeriodicalExecuter(this.exec(this),this.period);},stop:function(){this.pe.stop();},push:function(A){if(this.curTimeout<0){this.curTimeout=0;this.pe=new PeriodicalExecuter(this.exec(this),this.period);}this.stack.push(A);},upper:function(C){var D=C[1];var B=false;for(i=0;i<this.stack.length;i++){if(this.stack[i]&&this.stack[i][1]==D){var A=this.stack[i];this.stack.push(A);B=true;return ;}}if(B==false){this.push(C);}},exists:function(A){for(i=0;i<this.stack.length;i++){if(this.stack[i][1]==A[1]){return true;}}return false;},exec:function(A){return function(){var F=A.stack.length;if(F>A.max){A.stack.splice(0,F-A.max);F=A.stack.length;}var I=(F-1);if(A.book.main&&A.book.main.experimental==true){for(i=1;i<A.book.page_count+1;i++){if(i<A.book.curPage.page_number-2||i>A.book.curPage.page_number+2){if($("sub_"+i)){A.book.getPage(i).loaded=false;$("canvas_"+i).remove();$("sub_"+i).remove();}}}}if(F>0){var E=A.stack[I];var B=E[0];var H=B();var D=A.book.main.zoom;var C=H.img();if(C.complete==true&&C.src!=""&&C.change==false&&H.loading==true&&waitParsing==false){H.width=parseInt(C.width/H.book.main.zoomF());H.height=parseInt(C.height/H.book.main.zoomF());if(H.linksDrawn==false){H.drawLinks();H.linksDrawn=true;}if(H.keywordsDrawn==false&&H.book.keywords){H.selectTextAllKeyword(H.book.keywords);H.keywordsDrawn=true;}H.loaded=true;var G=A.stack.pop();H.afterLoaded();}if(A.stack[F-1]&&H.loading==false&&H.loaded==false){if(A.book.main.experimental==false){H.load(D);}else{H.loadTextOnly(D);}}A.curTimeout=0;}else{A.curTimeout=A.curTimeout+1;}if(A.curTimeout>A.timeout){A.curTimeout=-1;A.pe.stop();}};}});var ImrBook=Class.create({initialize:function(C,E,B,D,A){this.uid=C;this.page_count=E;this.width=B;this.height=D;this.pages=new Array(this.page_count);this.main=A;this.codex=false;this.lifo=new ImrLifo(this,1,10);this.linksEnabled=true;this.selectionEnabled=true;this.notesEnabled=true;this.keywords=null;if(this.main&&this.main.new_navigation==true){this.navigation=new ImrNavigation($("page_track"),$("page_handle"),$("book_new_next"),$("book_new_previous"));}else{this.navigation=null;}},initPages:function(){var C=1;var A=this.page_count+1;for(i=C;i<A;i++){var D=document.createElement("div");Element.addClassName(D,"book_page");D.setAttribute("id",""+i);D.style.width=parseInt(this.width*this.main.zoomF())+"px";D.style.height=parseInt(this.height*this.main.zoomF())+"px";var B=document.createElement("img");B.setAttribute("id","img_"+i);B.change=false;this.applyPageStyle(D,B);D.appendChild(B);$("book").appendChild(D);}},reInitNavigation:function(){if(this.main.new_navigation==true){if(this.curPage){this.navigation.reInit(this.page_count,this.curPage.page_number,this.jumpToPageFun(this));}else{this.navigation.reInit(this.page_count,1,this.jumpToPageFun(this));}}},setCurPage:function(A){this.curPage=this.pages[A-1];if(this.main.new_navigation==true){this.navigation.setPage(this.curPage.page_number);}if(this.main.use_config==true){this.config.setValue("last_page",this.curPage.page_number);this.config.setValue("last_page_count",this.page_count);}if($("curPageNumber")){$("curPageNumber").value=A;}},getPage:function(A){return this.pages[A-1];},loadFontFace:function(){var A,B;for(A=0;(B=document.getElementsByTagName("link")[A]);A++){if(B.getAttribute("title")&&B.getAttribute("title").toLowerCase()=="font face"){B.setAttribute("href","");B.setAttribute("href","/reader/fonts_style/"+this.uid+".css");}}},setNotes:function(){if($("notes")){if(this.notesEnabled==true){this.notes=new ImrNotes(this);}else{$("notes").innerHTML="<em>"+locales["Notes are disabled"]+"</em>";}}},setTOC:function(){var A="";if(this.main.preview){A="&preview=true";}new Ajax.Updater("toc","/"+this.main.locale+"/reader/toc?id="+this.uid+A,{onComplete:this.initTOC(this),onLoading:ajaxLoading()});},initTOC:function(A){return function(B){this.toc=new ImrToc(A.main);this.toc.applyTree("toc_tree");ajaxComplete();};},wholeHeight:function(){return parseInt(((this.page_count*(parseInt(this.height*this.main.zoomF())+this.diffTop()))));},diffLeft:function(A){if($(""+A)){return $(""+A).offsetLeft;}return 0;},diffTop:function(){return 6;},selectText:function(B,D,A,C){$("selection").innerHTML="";if(this.selectionEnabled){pageS=parseInt(((D)/(parseInt(this.height*this.main.zoomF())+this.diffTop())));pageE=parseInt(((C)/(parseInt(this.height*this.main.zoomF())+this.diffTop())));ty1=D-parseInt(((pageS*(parseInt(this.height*this.main.zoomF())+this.diffTop()))));ty2=C-parseInt(((pageS*(parseInt(this.height*this.main.zoomF())+this.diffTop()))));if(this.pages[pageS]){this.pages[pageS].jsonCoords={x1:B,y1:ty1,x2:A,y2:ty2};if((BrowserDetect.browser=="Explorer")){if(pageS){}}this.pages[pageS].selectText();}if(this.pages[pageE]){if(pageS!=pageE){ty1=D-parseInt(((pageE*(parseInt(this.height*this.main.zoomF())+this.diffTop()))));ty2=C-parseInt(((pageE*(parseInt(this.height*this.main.zoomF())+this.diffTop()))));this.pages[pageE].jsonCoords={x1:B,y1:ty1,x2:A,y2:ty2};this.pages[pageE].selectText();}}}},loadPage:function(C){if(this.inPagesRange(C)){if(!this.pages[C-1]){if(this.main.svg==true){this.pages[C-1]=new ImrPageVectorImage(C,this);}else{this.pages[C-1]=new ImrPageBitmapImage(C,this);}var D=this.getPage(C);var A=this;var B=this.main.zoom;this.lifo.push([function(){return A.getPage(C);},C,B]);}else{if(this.pages[C-1].loaded==false){var A=this;var D=this.pages[C-1];var B=this.main.zoom;this.lifo.push([function(){return A.getPage(C);},C,B]);}}if(this.pages[C-1].zoom!=this.main.zoom){var D=this.getPage(C);var B=this.main.zoom;var A=this;D.linksDrawn=false;D.keywordsDrawn=false;D.updateZoom(B);this.lifo.push([function(){return A.getPage(C);},C,B]);}Object.extend($(""+this.pages[C-1].page_number),this.pages[C-1]);}},loadToPage:function(A){if(A-1>1){this.loadPage(A-2);}if(A+2<this.page_count){this.loadPage(A+2);}if(A>1){this.loadPage(A-1);}if(A+1<this.page_count){this.loadPage(A+1);}this.loadPage(A);this.curPage=this.pages[A-1];if($("curPageNumber")){$("curPageNumber").value=A;}Object.extend($("book"),this);if($("page_notes_"+A)){}if(this.main.preview==false){}},resizeAll:function(){for(p=1;p<this.page_count+1;p++){if($(""+p)){$(""+p).style.width=parseInt(this.width*this.main.zoomF())+"px";$(""+p).style.height=parseInt(this.height*this.main.zoomF())+"px";var A=this.getPage(p);if(A){if($("sub_"+p)){$("sub_"+p).remove();}A.resizeAll();}this.applyPageStyle($(""+p),$("img_"+p));}}if(this.curPage){this.jumpToPage(this.curPage.page_number);}},calculateTop:function(){var A=parseInt(this.height*this.main.zoomF());var C=$("reader_main").getHeight();var B=parseInt((C-A)/2);if(B<0){B=0;}return B;},calculateLeft:function(){if(this.bookType=="codex"){var A=parseInt(this.width*2*this.main.zoomF());}else{var A=parseInt(this.width*this.main.zoomF());}var B=$("reader_main").getWidth();var C=parseInt((B-A)/2);if(C<0){C=0;}return C;},inPagesRange:function(A){if(A>0&&A<this.page_count+1){return true;}else{return false;}},userSetPage:function(A){p=parseInt(A);if(this.inPagesRange(p)){this.jumpToPage(p);}},reInit:function(){},applyPageStyle:function(B,A){},nextPage:function(){},previousPage:function(){},jumpToPage:function(A){},jumpToPageFun:function(A){return function(B){A.jumpToPage(B);};},updatedScrollPosition:function(){},getScrollPosition:function(){}});var ImrBookCodex=Class.create(ImrBook,{reInit:function(){for(p=1;p<this.page_count+1;p++){$(""+p).style.position="absolute";$(""+p).style.top=this.calculateTop()+"px";$(""+p).style.left=(this.calculateLeft()+parseInt(this.width*this.main.zoomF()))+"px";$(""+p).style.zIndex=0;$(""+p).hide();}},applyPageStyle:function(B,A){B.style.position="absolute";B.style.top=this.calculateTop()+"px";B.style.left=(this.calculateLeft()+parseInt(this.width*this.main.zoomF()))+"px";B.style.zIndex=0;},jumpToPage:function(A){if(A%2==0){A=A+1;}for(i=1;i<this.page_count+1;i++){$(""+i).hide();$(""+i).style.zIndex=0;}if(this.inPagesRange(A-2)){$(""+(A-2)).style.left=(this.calculateLeft()+parseInt(this.width*this.main.zoomF()))+"px";this.loadPage(A-2);}if(this.inPagesRange(A-3)){$(""+(A-3)).style.left=this.calculateLeft()+"px";this.loadPage(A-3);}if(this.inPagesRange(A+1)){this.loadPage(A+1);}if(this.inPagesRange(A-1)){$(""+(A-1)).style.left=this.calculateLeft()+"px";$(""+(A-1)).show();this.loadPage(A-1);}if(this.inPagesRange(A)){$(""+A).style.left=(this.calculateLeft()+parseInt(this.width*this.main.zoomF()))+"px";$(""+A).show();this.loadPage(A);}this.setCurPage(A);if(this.notes){this.notes.drawCurrentPageNotes(A);}},nextPage:function(){var C=this.curPage.page_number;this.loadPage(C+4);this.loadPage(C+3);this.loadPage(C+2);this.loadPage(C+1);this.loadPage(C);if($(""+(C-2))){$(""+(C-2)).style.zIndex=0;$(""+(C-2)).hide();}if($(""+(C-1))){$(""+(C-1)).style.zIndex=0;}$(""+(C)).style.zIndex=1;$(""+(C+1)).style.zIndex=2;$(""+(C+1)).show();$(""+(C+2)).style.zIndex=0;$(""+(C+2)).show();$(""+(C+1)).style.overflow="hidden";var A=$(""+(C+1)).getWidth();var B=$(""+(C+1)).getHeight();$(""+C).hide();$(""+(C+1)).style.left=this.calculateLeft()+"px";$(""+(C+1)).style.top=this.calculateTop()+"px";this.setCurPage(C+2);if(this.notes){this.notes.drawCurrentPageNotes(C+2);}},previousPage:function(){var A=this.curPage.page_number;this.loadPage(A-5);this.loadPage(A-4);this.loadPage(A-3);this.loadPage(A-2);$(""+(A)).style.zIndex=0;$(""+(A+1)).style.zIndex=0;$(""+(A+2)).style.zIndex=0;$(""+(A-1)).style.zIndex=0;if(this.inPagesRange(A-4)){$(""+(A-4)).style.left=(this.calculateLeft()+parseInt(this.width*this.main.zoomF()))+"px";}if(this.inPagesRange(A-5)){$(""+(A-5)).style.left=this.calculateLeft()+"px";}if(this.inPagesRange(A-3)){$(""+(A-3)).style.zIndex=3;$(""+(A-3)).hide();}$(""+(A+1)).hide();$(""+(A+2)).hide();$(""+(A-2)).style.zIndex=4;$(""+(A-2)).show();$(""+(A-2)).style.overflow="hidden";$(""+(A-2)).style.left=this.calculateLeft()+"px";$("img_"+(A-2)).align="right";if(this.inPagesRange(A-3)){$(""+(A-3)).show();}else{$(""+(A-1)).style.left=this.calculateLeft()+parseInt(this.width*this.main.zoomF())+"px";$(""+(A-1)).style.top=this.calculateTop()+"px";$(""+(A-1)).show();}$(""+(A-2)).show();$(""+(A-2)).style.left=this.calculateLeft()+parseInt(this.width*this.main.zoomF())+"px";$(""+(A-2)).style.top=this.calculateTop()+"px";this.setCurPage(A-2);if(this.notes){this.notes.drawCurrentPageNotes(A-2);}}});var ImrBookOne=Class.create(ImrBook,{reInit:function(){for(p=1;p<this.page_count+1;p++){$(""+p).style.position="absolute";$(""+p).style.top=this.calculateTop()+"px";$(""+p).style.left=(this.calculateLeft())+"px";$(""+p).style.zIndex=0;$(""+p).hide();}},applyPageStyle:function(B,A){B.style.position="absolute";B.style.top=this.calculateTop()+"px";B.style.left=(this.calculateLeft())+"px";B.style.zIndex=0;},jumpToPage:function(A){for(i=1;i<this.page_count+1;i++){$(""+i).hide();$(""+i).style.zIndex=0;}if(this.inPagesRange(A)){$(""+A).style.left=(this.calculateLeft())+"px";$(""+A).show();this.loadPage(A);}this.setCurPage(A);if(this.notes){this.notes.drawCurrentPageNotes(A);}},nextPage:function(){var A=this.curPage.page_number+1;if(this.inPagesRange(A)){this.jumpToPage(A);}},previousPage:function(){var A=this.curPage.page_number-1;if(this.inPagesRange(A)){this.jumpToPage(A);}}});var ImrBookScroll=Class.create(ImrBook,{reInit:function(){for(p=1;p<this.page_count+1;p++){$(""+p).style.position="";$(""+p).style.top="";$(""+p).style.left="";$(""+p).style.zIndex="";$(""+p).show();}},nextPage:function(){var A=this.curPage.page_number+1;if(this.inPagesRange(A)){this.jumpToPage(A);}},previousPage:function(){var A=this.curPage.page_number-1;if(this.inPagesRange(A)){this.jumpToPage(A);}},jumpToPage:function(B){var A=$(""+B).offsetTop;$("reader_main").scrollTop=A;if(this.main.embed_full==true){window.scrollTo(0,A+$("reader_main").offsetTop);}},updatedScrollPosition:function(){curHeight=this.getScrollPosition()[1];calc_page_f=(curHeight)/(this.diffTop()+this.height*this.main.zoomF());calc_page=(Math.round(calc_page_f)+1);if(calc_page>this.page_count){calc_page=this.page_count;}if(this.curPage){if(calc_page!=this.curPage.page_number){this.loadToPage(calc_page);if(this.notes){this.notes.drawCurrentPageNotes(calc_page);}}}},getScrollPosition:function(){var A=$("book").parentNode.scrollTop;var B=$("book").parentNode.scrollLeft;if(this.main.embed_full==true){var A=window.pageYOffset-$("reader_main").offsetTop;}return Array(B,A);}});var ImrMain=Class.create({initialize:function(){this.locale="en";this.embed=false;this.embed_w=0;this.embed_h=0;this.embed_full=false;this.zoom=100;this.resizeAll();if(BrowserDetect.OS=="iPad"){window.onorientationchange=this.rotationChangeEvent(this);Event.observe($("reader_main"),"touchstart",touchStart);Event.observe($("reader_main"),"touchmove",touchMove);Event.observe($("reader_main"),"touchend",touchEnd);Event.observe($("reader_main"),"touchcancel",touchCancel);}else{window.onresize=this.resizeAllEvent(this);}this.jsonBooks=[];this.addZoomCursors();if(this.zoom3){this.zoom3.className="zoom_selected_cursor";}this.curBook=null;this.clipboard="";this.experimental=false;this.preview=false;this.svg=false;this.use_config=false;this.new_navigation=false;},setPreview:function(A){this.preview=false;},getBookFromJson:function(A){for(i=0;i<this.jsonBooks.length;i++){if(A==this.jsonBooks[i].id){return this.jsonBooks[i];}}return null;},drawJsonBook:function(){if(this.curJsonBook){$("book_title").innerHTML='<a class="permalink" title="'+locales.Permalink+'" href="http://livre.immateriel.fr/'+this.curJsonBook.isbn+'" target="_blank">&nbsp;&nbsp;&nbsp;&nbsp;</a>'+this.curJsonBook.title;this.drawBookTooltip();document.title=this.curJsonBook.title+" - immatériel.fr";}},drawBookTooltip:function(){var B=this.curJsonBook;if($("book_current_more")){Element.remove($("book_current_more"));}var A=document.createElement("div");A.setAttribute("id","book_current_more");A.innerHTML="<b>"+B.title+"</b><br/>"+B.author_name+"<br/>"+B.published_at;Element.addClassName(A,"tooltip");$("menu").appendChild(A);var C=new Tooltip("book_title","book_current_more");},setLocale:function(A){this.locale=A;},sortJsonBooks:function(A){switch(A){case"date":this.jsonBooks.sort(function(C,B){if(B.published_at<C.published_at){return -1;}if(B.published_at>C.published_at){return 1;}return 0;});break;case"title":this.jsonBooks.sort(function(C,B){if(C.title<B.title){return -1;}if(C.title>B.title){return 1;}return 0;});break;case"author":this.jsonBooks.sort(function(C,B){if(C.author_name<B.author_name){return -1;}if(C.author_name>B.author_name){return 1;}return 0;});break;default:break;}this.drawJsonBooks();},onClickBookEvent:function(A){main=this;return function(D){var B=parseInt((parseInt(A.r_width)/10/2.54*72)/72*100);var C=parseInt((parseInt(A.r_height)/10/2.54*72)/72*100);main.setBook(A.id,parseInt(A.r_page_count),B,C);main.curBook.loadToPage(1);main.curBook.jumpToPage(1);main.curBook.setTOC();main.curBook.setNotes();return false;};},drawJsonBooks:function(){$("books").innerHTML="";if(this.booksKeyword){var D=document.createElement("div");D.innerHTML="<strong><em>Pour le mot-clé "+this.booksKeyword+" : </em></strong>";$("books").appendChild(D);}if(this.booksQuery&&this.booksQuery!=""){var D=document.createElement("div");D.innerHTML="<strong><em>Pour la recherche "+this.booksQuery+" : </em></strong>";$("books").appendChild(D);}for(i=0;i<this.jsonBooks.length;i++){var B=this.jsonBooks[i];var D=document.createElement("div");D.setAttribute("id","book_"+B.id+"_link");Element.addClassName(D,"book_entry");var A=parseInt((parseInt(B.r_width)/10/2.54*72)/72*100);var C=parseInt((parseInt(B.r_height)/10/2.54*72)/72*100);D.innerHTML='<a href="#" onclick=\'imr.setBook('+B.id+","+B.r_page_count+","+A+","+C+");imr.curBook.loadToPage(1);imr.curBook.jumpToPage(1);imr.curBook.setTOC();imr.curBook.setNotes();return false;' >"+B.title+"</a><br/>"+B.author_name+" - "+B.published_at;$("books").appendChild(D);}},parseJsonBooks:function(A){return function(B){A.jsonBooks=B.responseText.evalJSON();ajaxComplete();A.sortJsonBooks("date");A.drawJsonBooks();A.curJsonBook=A.getBookFromJson(A.curBook.uid);A.drawJsonBook();};},addBooks:function(){ajaxLoading();new Ajax.Request("/en/reader/books_json",{onComplete:this.parseJsonBooks(this)});},addReducedBooks:function(B,A){ajaxLoading();this.booksQuery=B;this.booksKeyword=A;new Ajax.Request("/en/reader/books_json?q="+B+"&keyword="+encodeURI(A),{onComplete:this.parseJsonBooks(this)});},toggleImg:function(A,C,B){if(A.src.include(C)){A.src=B;}else{if(A.src.include(B)){A.src=C;}}},clearLinks:function(){$("links").innerHTML="";},clearSelection:function(){$("selection").innerHTML="";},clearBook:function(){$("book").innerHTML="";},zooms:[50,75,100,125,150,175],calculateFixedZoom:function(){var A=0;var B=this.zooms;for(i=0;i<B.length;i++){if(this.zoom>A){A=B[i];}}return A;},increaseZoom:function(){cntZoom=(this.calculateFixedZoom()-50)/25;if(cntZoom+1<this.zooms.length){this.setZoom(this.zooms[cntZoom+1]);}},decreaseZoom:function(){cntZoom=(this.calculateFixedZoom()-50)/25;if(cntZoom-1>=0){this.setZoom(this.zooms[cntZoom-1]);}},zoomF:function(){return this.zoom/100;},bestZoomW:function(){var A=this.curBook.width;var B=$("reader_main").getWidth();var D=0;for(i=0;i<this.zooms.length;i++){var C=parseInt(A*(this.zooms[i]/100));if(C<B){D=i;}}this.zoom=this.zooms[D];this.setZoomCursorEvent(this,this.zooms[D]);this.deselectZoomCursors();if($("zoom"+(D+1))){$("zoom"+(D+1)).firstChild.className="zoom_selected_cursor";}},bestZoomH:function(){var D=this.curBook.height;var E=$("reader_main").getHeight();var A=this.curBook.width;var C=$("reader_main").getWidth();var G=0;for(i=0;i<this.zooms.length;i++){var B=parseInt(D*(this.zooms[i]/100));if(this.curBook.bookType=="codex"){var F=parseInt(A*2*(this.zooms[i]/100));}else{var F=parseInt(A*(this.zooms[i]/100));}if(B<E&&F<C){G=i;}}this.zoom=this.zooms[G];this.setZoomCursorEvent(this,this.zooms[G]);this.deselectZoomCursors();if($("zoom"+(G+1))){$("zoom"+(G+1)).firstChild.className="zoom_selected_cursor";}},setZoom:function(B){this.clearLinks();this.clearSelection();this.zoom=B;this.curBook.resizeAll();if((BrowserDetect.browser=="Opera")&&this.curBook.bookType=="scroll"){$("book").style.height=this.curBook.wholeHeight()+"px";}if(this.curBook.curPage){var A=this.curBook.curPage.page_number;this.curBook.loadToPage(A);this.curBook.jumpToPage(A);}},onClickCodex:function(A){return function(C){var B=parseInt(A.width*A.main.zoom/100+this.calculateLeft());if(C.clientX>B){A.nextPage();}else{A.previousPage();}};},toBookCodex:function(){if($("book_codex")){$("book_codex").className="active_menu";}if($("book_one")){$("book_one").className="";}if($("book_scroll")){$("book_scroll").className="";}var A=new ImrBookCodex();curPageN=this.curBook.curPage.page_number;this.curBook.bookType="codex";this.curBook.reInit=A.reInit;this.curBook.nextPage=A.nextPage;this.curBook.previousPage=A.previousPage;this.curBook.jumpToPage=A.jumpToPage;this.curBook.updatedScrollPosition=A.updatedScrollPosition;this.curBook.getScrollPosition=A.getScrollPosition;this.curBook.applyPageStyle=A.applyPageStyle;this.curBook.selectionEnabled=false;this.curBook.linksEnabled=false;this.bestZoomH();this.setZoom(this.zoom);this.curBook.reInit();this.clearLinks();this.clearSelection();this.curBook.jumpToPage(curPageN);this.curBook.notesEnabled=false;this.curBook.setNotes();if(this.use_config==true){this.curBook.config.setValue("read_mode",this.curBook.bookType);}Event.stopObserving($("book"),"click");Event.observe($("book"),"click",this.onClickCodex(this.curBook));if($("selectionArea")){$("selectionArea").style.zIndex=-10;}},toBookOne:function(){if($("book_one")){$("book_one").className="active_menu";}if($("book_codex")){$("book_codex").className="";}if($("book_scroll")){$("book_scroll").className="";}var A=new ImrBookOne();curPageN=this.curBook.curPage.page_number;this.curBook.bookType="one_page";this.curBook.reInit=A.reInit;this.curBook.nextPage=A.nextPage;this.curBook.previousPage=A.previousPage;this.curBook.jumpToPage=A.jumpToPage;this.curBook.updatedScrollPosition=A.updatedScrollPosition;this.curBook.getScrollPosition=A.getScrollPosition;this.curBook.applyPageStyle=A.applyPageStyle;this.curBook.selectionEnabled=false;this.curBook.linksEnabled=false;this.bestZoomH();this.setZoom(this.zoom);this.curBook.reInit();this.clearLinks();this.clearSelection();this.curBook.jumpToPage(curPageN);this.curBook.notesEnabled=false;this.curBook.setNotes();if(this.use_config==true){this.curBook.config.setValue("read_mode",this.curBook.bookType);}Event.stopObserving($("book"),"click");Event.observe($("book"),"click",this.onClickCodex(this.curBook));if($("selectionArea")){$("selectionArea").style.zIndex=-10;}},toBookScroll:function(){if($("book_scroll")){$("book_scroll").className="active_menu";}if($("book_one")){$("book_one").className="";}if($("book_codex")){$("book_codex").className="";}var A=new ImrBookScroll();curPageN=this.curBook.curPage.page_number;this.curBook.bookType="scroll";this.curBook.reInit=A.reInit;this.curBook.nextPage=A.nextPage;this.curBook.previousPage=A.previousPage;this.curBook.jumpToPage=A.jumpToPage;this.curBook.updatedScrollPosition=A.updatedScrollPosition;this.curBook.getScrollPosition=A.getScrollPosition;this.curBook.applyPageStyle=A.applyPageStyle;this.curBook.selectionEnabled=true;this.curBook.linksEnabled=true;this.bestZoomW();this.setZoom(this.zoom);this.curBook.reInit();this.clearLinks();this.clearSelection();this.curBook.jumpToPage(curPageN);this.curBook.notesEnabled=true;this.curBook.setNotes();if(this.new_navigation==true){this.curBook.navigation.hide();}if(this.use_config==true){this.curBook.config.setValue("read_mode",this.curBook.bookType);}Event.stopObserving($("book"),"click");if($("selectionArea")){$("selectionArea").style.zIndex=10;}},setBook:function(C,F,B,E){$("book").innerHTML="";var G=0;var D=1;var A=F+1;if(this.curBook){G=this.curBook.page_count;}if(this.curBook){this.curBook.lifo.stop();}this.curBook=new ImrBookScroll(C,F,B,E,this);this.curBook.bookType="scroll";this.bestZoomW();Object.extend($("book"),this.curBook);if($("curBookPageCount")){$("curBookPageCount").innerHTML=this.curBook.page_count;}this.clearBook();this.clearLinks();this.clearSelection();this.curBook.initPages();this.curJsonBook=this.getBookFromJson(C);this.drawJsonBook();if((BrowserDetect.browser=="Opera")&&this.curBook.bookType=="scroll"){$("book").style.height=this.curBook.wholeHeight()+"px";}if($("info")){new Ajax.Request("/"+this.locale+"/reader/about?id="+this.curBook.uid,{});}if(this.preview==false){}},applySavedConfig:function(){if(this.use_config==true){var D=this.curBook.config.getValue("last_page_count");var C=this.curBook.config.getValue("last_page");var B=1;if(D>0){var A=this.curBook.page_count/D;B=Math.floor(C*A);}if(B==0){B=1;}switch(this.curBook.config.getValue("read_mode")){case"scroll":this.toBookScroll();break;case"one_page":this.toBookOne();break;case"codex":this.toBookCodex();break;default:}}},jumpToLast:function(A){return function(B){p=B.responseText.evalJSON();A.curBook.jumpToPage(parseInt(p.page_number));};},autoResize:function(){if(this.curBook){if(this.curBook.bookType=="codex"||this.curBook.bookType=="one_page"){this.bestZoomH();this.setZoom(this.zoom);}else{this.bestZoomW();this.setZoom(this.zoom);}}},showMenu:function(){if($("menu")&&!$("menu").visible()){this.toggleMenu();}},toggleMenu:function(){$("menu").toggle();toggleClass($("toggle_menu"),"menu_more","menu_less");this.resizeAll();this.autoResize();},rotationChange:function(){switch(window.orientation){case 0:this.toBookOne();break;case -90:this.toBookCodex();break;case 90:this.toBookCodex();break;case 180:this.toBookOne();break;}},rotationChangeEvent:function(A){return function(){A.rotationChange();A.resizeAll();};},resizeAllEvent:function(A){return function(){if(BrowserDetect.OS=="iPad"){}else{A.resizeAll();}};},resizeAll:function(){if($("menu")){var B=350;if($("menu").visible()==false){B=0;}}else{var B=0;}if(this.embed==true){if(this.embed_w){var C=this.embed_w;}else{var C=$("reader_main").parentNode.getWidth();}if(this.embed_h){var A=this.embed_h;}else{var A=Position.GetWindowSize().height-$("reader_main").offsetTop;}}else{var C=Position.GetWindowSize().width-40;var A=Position.GetWindowSize().height-40;}if(this.embed_full==true){A=null;}$("reader_main").style.width=C-B+"px";if(A!=null){$("reader_main").style.height=(A-36)+"px";}else{$("reader_main").style.height="auto";}$("book").style.width=C-B-16+"px";if(A!=null){$("book").style.height=(A-100)+"px";}else{$("book").style.height="auto";}if($("menu")){$("menu").style.height=(A-100)+"px";}if($("toc")){}if($("books_tab")){$("books_tab").style.height=(A-90)+"px";}if($("info_tab")){$("info_tab").style.height=(A-90)+"px";}if($("search")){$("search").style.height=(A-90)+"px";}if($("notes_tab")){$("notes_tab").style.height=(A-90)+"px";}if(this.curBook){this.autoResize();this.curBook.resizeAll();this.curBook.reInitNavigation();}},relaunchSearch:function(){new Ajax.Request("/"+this.locale+"/reader/search?book_id="+this.curBook.uid+"&q="+$("q").value,{});},setZoomCursorEvent:function(B,A){return function(C){B.deselectZoomCursors();this.className="zoom_selected_cursor";B.setZoom(A);};},selectCursor:function(A){},deselectZoomCursors:function(){if(this.zoom1){this.zoom1.className="zoom_cursor";}if(this.zoom2){this.zoom2.className="zoom_cursor";}if(this.zoom3){this.zoom3.className="zoom_cursor";}if(this.zoom4){this.zoom4.className="zoom_cursor";}if(this.zoom5){this.zoom5.className="zoom_cursor";}if(this.zoom6){this.zoom6.className="zoom_cursor";}},addZoomCursors:function(){if($("zoom1")){this.zoom1=this.addZoomCursor($("zoom1"),9,7,this.zooms[0]);}if($("zoom2")){this.zoom2=this.addZoomCursor($("zoom2"),9,11,this.zooms[1]);}if($("zoom3")){this.zoom3=this.addZoomCursor($("zoom3"),9,15,this.zooms[2]);}if($("zoom4")){this.zoom4=this.addZoomCursor($("zoom4"),9,19,this.zooms[3]);}if($("zoom5")){this.zoom5=this.addZoomCursor($("zoom5"),9,23,this.zooms[4]);}if($("zoom6")){this.zoom6=this.addZoomCursor($("zoom6"),9,27,this.zooms[5]);}},addZoomCursor:function(E,A,B,C){var D=document.createElement("div");Element.addClassName(D,"zoom_cursor");D.style.width=A+"px";D.style.height=B+"px";D.innerHTML="";Event.observe(D,"click",this.setZoomCursorEvent(this,C));E.appendChild(D);return D;},showNoteSelection:function(){},copyClipboard:function(){this.clipboard=getTextSelection();},beforeSavingNote:function(A,B){var C=this.curBook.getPage(B);Form.getInputs(A,null,"note[quote]")[0].value=this.clipboard;if(C.jsonCoords){Form.getInputs(A,null,"note[x1]")[0].value=C.jsonCoords.x1/this.curBook.main.zoomF();Form.getInputs(A,null,"note[y1]")[0].value=C.jsonCoords.y1/this.curBook.main.zoomF();Form.getInputs(A,null,"note[x2]")[0].value=C.jsonCoords.x2/this.curBook.main.zoomF();Form.getInputs(A,null,"note[y2]")[0].value=C.jsonCoords.y2/this.curBook.main.zoomF();}}});var ajaxCount=0;function ajaxLoading(){ajaxCount=ajaxCount+1;if($("ajax")){$("ajax").show();}}function ajaxComplete(){if(ajaxCount>0){ajaxCount=ajaxCount-1;}if(ajaxCount==0){if($("ajax")){$("ajax").hide();}}}function unselectColors(){if(Prototype.Browser.IE){$("color1").setAttribute("className","colorbox");$("color2").setAttribute("className","colorbox");$("color3").setAttribute("className","colorbox");$("color4").setAttribute("className","colorbox");$("color5").setAttribute("className","colorbox");}else{$("color1").setAttribute("class","colorbox");$("color2").setAttribute("class","colorbox");$("color3").setAttribute("class","colorbox");$("color4").setAttribute("class","colorbox");$("color5").setAttribute("class","colorbox");}}function getTextSelection(){var A="";if(window.getSelection){A=window.getSelection();}else{if(document.getSelection){A=document.getSelection();}else{if(document.selection){A=document.selection.createRange().text;}else{return ;}}}if(A){return A.toString();}else{return"";}}function selectColor(B,A){unselectColors();if(Prototype.Browser.IE){B.setAttribute("className","colorbox_selected");}else{B.setAttribute("class","colorbox_selected");}$("note_color").value=A;}function switchColor(A){switch(A){case"#FF0000":selectColor($("color1"),"#FF0000");break;case"#00FF00":selectColor($("color2"),"#00FF00");break;case"#0000FF":selectColor($("color3"),"#0000FF");break;case"#FF00FF":selectColor($("color4"),"#FF00FF");break;case"#00FFFF":selectColor($("color5"),"#00FFFF");break;}}function catchSelection(A){}
