/**
Copyright (C) 2003-2008 AJLSM, Anaphore
Voir le fichier LICENCE
**/
var PivMosaic=Class.create();PivMosaic.prototype={initialize:function(a,b){this.set=b;this.overviewVersion=b.getDefaultVersion();this.originalVersion=b.getOriginalVersion();this.tileWidth=a.width;this.tileHeight=a.height;this.initialized=false},init:function(){if(this.initialized){return}var a=this.originalVersion.getWidth();this.nbHTiles=parseInt(a/this.tileWidth);if(a%this.tileWidth!=0){this.nbHTiles++}var b=this.originalVersion.getHeight();this.nbVTiles=parseInt(b/this.tileHeight);if(b%this.tileHeight!=0){this.nbVTiles++}this.tiles=new Array();for(i=1;i<=this.nbHTiles;i++){this.tiles[i]=new Array();for(j=1;j<=this.nbVTiles;j++){this.tiles[i][j]=new PivMosaicTile(this.set,this.originalVersion.getMimeType(),i,j,(i-1)*this.tileWidth+1,(j-1)*this.tileHeight+1,Math.min(this.tileWidth,(a-(i-1)*this.tileWidth+1)),Math.min(this.tileHeight,(b-(j-1)*this.tileHeight+1)))}}this.initialized=true},drawGrid:function(d,c){this.init();for(i=1;i<=this.nbHTiles;i++){for(j=1;j<=this.nbVTiles;j++){var a=this.tiles[i][j];var b=a.getHTML(c);d.appendChild(b)}}},above:function(a){if(a.j>1){return this.tiles[a.i][a.j-1]}else{return undefined}},left:function(a){if(a.i>1){return this.tiles[a.i-1][a.j]}else{return undefined}},below:function(a){if(a.j<this.nbVTiles){return this.tiles[a.i][a.j+1]}else{return undefined}},right:function(a){if(a.i<this.nbHTiles){return this.tiles[a.i+1][a.j]}else{return undefined}},identify:function(){return"Classe PivMosaic"}};var PivMosaicTile=Class.create();PivMosaicTile.prototype={initialize:function(k,c,e,d,a,g,b,f){this.set=k;this.mimetype=c;this.i=e;this.j=d;this.x=a;this.y=g;this.w=b;this.h=f},getSrc:function(){var a=this.set.getOriginalVersion().info.src;if(a.indexOf("?")>-1){a+="&"}else{a+="?"}return a+"x="+this.x+"&y="+this.y+"&w="+this.w+"&h="+this.h},getName:function(){var a=this.set.getOriginalVersion().info.name;return a},getUrl:function(){return this.set.baseUrl+"/"+this.getSrc()},getHTML:function(b){var c=window.document.createElement("div");c=$(c);c.addClassName("piv-mosaic-grid");c.setStyle({position:"absolute",left:this.x*b+"px",top:this.y*b+"px",width:this.w*b+"px",height:this.h*b+"px"});var a=this.handleClick(this);c.observe("click",a);return c},getVersion:function(){if(this.version){return this.version}var a={src:this.getSrc(),name:this.getName(),width:this.w,height:this.h,label:"Tuile "+i+","+j,role:"tile",tile:this,mimetype:this.mimetype};this.version=new PivImageVersion(this.set.baseUrl,a);return this.version},handleClick:function(a){return function(){_pivViewer.gotoVersion(a.set,a.getVersion())}},identify:function(){return"Classe PivMosaicTile"}};
