CatClientDetail = function(wmsurl){
	this.wmsurl  = wmsurl;

  //pujceno z hs_dmap.js
  this.adjustRect = function(mapsize, mapext, buffer){ 
  	var epsg=4326;
	  if(buffer) var bFactor = buffer/100+1.0; else bFactor=1; 
	  var x = (parseFloat(mapext[2]) + parseFloat(mapext[0]))/2;
	  var y = (parseFloat(mapext[3]) + parseFloat(mapext[1]))/2;
	  if((Math.abs(y)<90)&&(epsg==4326)) var xyRatio = Math.cos(y/180*Math.PI); else xyRatio = 1; // pouze pro WGS84
	  var cellsize = Math.max(Math.abs((mapext[2]-mapext[0])/(mapsize[0]-1))*xyRatio, Math.abs((mapext[3]-mapext[1])/(mapsize[1]-1)))/2*bFactor;
	  var rozsah = new Array(4);
	  rozsah[0] = x - mapsize[0]*cellsize/xyRatio;
	  rozsah[1] = y - mapsize[1]*cellsize;
	  rozsah[2] = parseFloat(x) + mapsize[0]*cellsize/xyRatio;
	  rozsah[3] = parseFloat(y) + mapsize[1]*cellsize;
	  return [rozsah[0],rozsah[1],rozsah[2],rozsah[3]];
	}
  

   // co se děje po zobrazení detailu - zobrazení extentu - je třeba asi dát jinam
   this.detailLoaded = function(){
      var west = document.getElementById('westBoundLongitude');
      if(west && this.wmsurl){
		west=west.innerHTML;
        var south = document.getElementById('southBoundLatitude').innerHTML;
        var east = document.getElementById('eastBoundLongitude').innerHTML;
        var north = document.getElementById('northBoundLatitude').innerHTML;     
        this.drawBbox('extMap', [250, 180], [west,south,east,north], 5);
      }  
   }

  // zobrazení extentu v pravém panelu
  this.drawBbox = function(id, mapsize, mapext, buffer){
		if(!mapext[0]) return false;
    var ext = this.adjustRect(mapsize,mapext,buffer);
    var wmsURL = this.wmsurl+"&REQUEST=GetMap&BBOX="+ext[0]+","+ext[1]+","+ext[2]+","+ext[3]+"&WIDTH="+mapsize[0]+"&HEIGHT="+mapsize[1];
    var d = document.getElementById(id);
    if(!d) return false;
    d.innerHTML="<img src='"+wmsURL+"' width='"+mapsize[0]+"' height='"+mapsize[1]+"'></div>";
    var jg = new jsGraphics(id);
    jg.setColor("#F00000");
    jg.setStroke(3);
  
    var x1 = Math.round((mapext[0]-ext[0])/(ext[2]-ext[0])*mapsize[0])-1;
    var y1 = Math.round((ext[3]-mapext[3])/(ext[3]-ext[1])*mapsize[1])-1;
    var x2 = Math.round((mapext[2]-ext[0])/(ext[2]-ext[0])*mapsize[0])-1;
    var y2 = Math.round((ext[3]-mapext[1])/(ext[3]-ext[1])*mapsize[1])-1;
    jg.drawRect(x1, y1, x2-x1, y2-y1);   
    jg.paint();
  }

   // zobrazení detailu v pravé tabulce
   this.showDetail = function(params){
   	var url = params.url+'?serviceName='+params.serviceName+'&lang='+HS.getLang()+'&template=iso2html.xsl';
    if(params.id) url += '&id='+params.id;
    else url = '&query='+params.q;    
    if(params.proxy) url = params.proxy+escape(url);
    this.expand();
    this.body.load({url:url, scope:this, callback: this.detailLoaded});
   }

   // --- detail zaznamu - pravý panel ---
    this.detailPanel = new Ext.Panel({
        region:'east',
        id:'detail',
        title: HS.i18n('Detail'),
        collapsed: true, 
        collapsible: true,
        collapseMode: 'mini',
        split:true, width: '50%',
        minSize: 175, maxSize: 600,
        layout:'fit', margins:'0 5 0 0',
        loadMask: true,
        autoScroll: true
    });
  CatClientDetail.superclass.constructor.call(this, this.detailPanel);
}

Ext.extend(CatClientDetail, Ext.Panel, {});

