kaZoomer.js
	
	
Summary
	
		No overview generated for 'kaZoomer.js'
	
	
	
    
        
function kaZoomer(oKaMap)
{
    this.kaMap = oKaMap;
    
    this.domObj = oKaMap.domObj;    
    
    this.nZoomImageHeight = 17;
    
    this.opacity = 50;
    
    this.left = 3;
    this.top = 3;
    this.right = null;
    this.bottom = null;
    
    this.zoomControlObj = null;
    
    this.draw = kaZoomer_draw;
    this.update = kaZoomer_update;
    
    this.kaMap.registerForEvent( KAMAP_MAP_INITIALIZED, this, this.draw );
}
function kaZoomer_setPosition( left, top, right, bottom )
{
    this.left = left;
    this.top = top;
    this.right = right;
    this.bottom = bottom;
    
    if (this.zoomControlObj != null)
    {
        if (this.left != null)
        {
            oZoomControl.style.left = this.left + 'px';
        }
        else if (this.right != null)
        {
            oZoomControl.style.right = this.right + 'px';
        }
        if (this.top != null)
        {
            oZoomControl.style.top = this.top + 'px';
        }
        else if (this.bottom != null)
        {
            oZoomControl.style.bottom = this.bottom + 'px';
        }
    }
}
function kaZoomer_update()
{
    
    var nThumbHeight = dd.elements.zoomTrack.div.elementHeight;
    var nTrackTop = dd.elements.zoomTrack.y;
    
    var oKaMap = dd.elements.zoomTrack.div.kaZoomer.kaMap;
    var oMap = oKaMap.getCurrentMap();
    var nCurrentScale = parseInt(oMap.currentScale) + 1; 
    var nScales = oMap.getScales().length;
    var nTrackHeight = this.nZoomImageHeight * nScales;
    var nPos = (nScales-nCurrentScale)*nThumbHeight;
    dd.elements.zoomThumb.moveTo(dd.elements.zoomThumb.x,nTrackTop + nPos);
}
function kaZoomer_draw()
{
    
    var oMap = this.kaMap.getCurrentMap();
   
    var nScales = oMap.getScales().length;
    var nCurrentScale = oMap.currentScale;
    var nTrackHeight = this.nZoomImageHeight * nScales;
    var nTrackMaxPosition = this.nZoomImageHeight * (nScales - 1);
    var nInitialPosition = dd.Int(this.nZoomImageHeight * 
                                  (nScales - nCurrentScale - 1));
    
    var szThumbImg = 'images/slider_button.png';
    var szTrackTopImg = 'images/slider_tray_top.png';
    var szTrackBottomImg = 'images/slider_tray_bottom.png';
    
 
   
    this.zoomControlObj = document.createElement('div');
    this.zoomControlObj.id = 'zoomControl';
    this.zoomControlObj.style.position = 'absolute';
    if (this.left != null)
    {
       if (this.left == '') {
         this.zoomControlObj.style.left = '';
       } else {
        this.zoomControlObj.style.left = this.left + 'px';
       }
    }
    else if (this.right != null)
    {
        if (this.right == '') {
          this.zoomControlObj.style.right = '';
        } else {
          this.zoomControlObj.style.right = this.right + 'px';
        }
    }
    if (this.top != null)
    {
      if (this.top == '') {
        this.zoomControlObj.style.top = '';
      } else {
        this.zoomControlObj.style.top = this.top + 'px';
      }
    }
    else if (this.bottom != null)
    {
      if (this.bottom == '') {
        this.zoomControlObj.style.bottom = '';
      } else {
        this.zoomControlObj.style.bottom = this.bottom + 'px';
      }
    }
    this.zoomControlObj.style.width = 17 + "px";
    this.zoomControlObj.style.height = (nTrackHeight + 2 * this.nZoomImageHeight + 6) + "px";
    this.zoomControlObj.style.opacity = this.opacity/100;
    this.zoomControlObj.style.mozOpacity = this.opacity/100;
    this.zoomControlObj.style.filter = "Alpha(opacity="+this.opacity+")";    this.zoomControlObj.style.cursor = 'auto';    
    this.zoomControlObj.style.zIndex = 300;
    this.zoomControlObj.onmouseover = kaZoomer_onmouseover;
    this.zoomControlObj.onmouseout = kaZoomer_onmouseout;
    this.zoomControlObj.kaZoomer = this;
    this.kaMap.domObj.appendChild(this.zoomControlObj);
    
    
    var oZoomTrack = document.createElement( 'div' );
    oZoomTrack.id = 'zoomTrack';
    oZoomTrack.kaZoomer = this;
    oZoomTrack.style.position = 'absolute';
    oZoomTrack.style.left = '0px';
    oZoomTrack.style.top = '20px';
    oZoomTrack.style.height = parseInt(nTrackHeight) + 'px';
    oZoomTrack.style.width = '17px';
    oZoomTrack.style.backgroundColor = "#acacac";
    oZoomTrack.style.backgroundImage = "url(images/slider_tray_fill.png)";
    oZoomTrack.elementHeight = this.nZoomImageHeight;
    oZoomTrack.onclick = kaZoomer_zoomTo;
    this.zoomControlObj.appendChild(oZoomTrack);
    
    var oZoomThumb = document.createElement( 'div' );
    oZoomThumb.id = 'zoomThumb';
    oZoomThumb.style.position = 'absolute';
    oZoomThumb.style.height = '17px';
    oZoomThumb.style.width = '17px';
    oZoomThumb.style.backgroundColor = "#888888";
    oZoomThumb.innerHTML = '<img src="' + szThumbImg +'" border="0" width="17" height="17">';
    this.zoomControlObj.appendChild(oZoomThumb);
    var oZoomTrackTop = document.createElement( 'div' );
    oZoomTrackTop.id = 'zoomTrackTop';
    oZoomTrackTop.style.position = 'absolute';
    oZoomTrackTop.style.left = '0px';
    oZoomTrackTop.style.top = '17px';
    oZoomTrackTop.style.width = '17px';
    oZoomTrackTop.style.height = '3px';
    oZoomTrackTop.innerHTML = '<img src="' + szTrackTopImg +'" border="0" width="17" height="3">';
    this.zoomControlObj.appendChild(oZoomTrackTop);
    
    var oZoomTrackBottom = document.createElement( 'div' );
    oZoomTrackBottom.id = 'zoomTrackBottom';
    oZoomTrackBottom.style.position = 'absolute';
    oZoomTrackBottom.style.left = '0px';
    oZoomTrackBottom.style.top = 20 + nTrackHeight + 'px';
    oZoomTrackBottom.style.width = '17px';
    oZoomTrackBottom.style.height = '3px';
    oZoomTrackBottom.innerHTML = '<img src="' + szTrackBottomImg +'" border="0" width="17" height="3">';
    this.zoomControlObj.appendChild(oZoomTrackBottom);
    
    var oZoomIn = document.createElement('div');
    oZoomIn.id = 'zoomIn';
    oZoomIn.style.position = 'absolute';
    oZoomIn.style.top = '0px';
    oZoomIn.style.left = '0px';
    oZoomIn.style.width = '17px';
    oZoomIn.style.height = '17px';
    oZoomIn.kaZoomer = this;
    oZoomIn.onclick = kaZoomer_zoomIn;
    oZoomIn.innerHTML= "<img src='images/slider_button_zoomin.png' border='0' width='17' height='17'>";
    this.zoomControlObj.appendChild(oZoomIn);
    var oZoomOut = document.createElement('div');
    oZoomOut.id = 'zoomOut';
    oZoomOut.style.position = 'absolute';
    oZoomOut.style.top = 23 + nTrackHeight + 'px';
    oZoomOut.style.left = '0px';
    oZoomOut.style.width = '17px';
    oZoomOut.style.height = '17px';
    oZoomOut.kaZoomer = this;
    oZoomOut.onclick = kaZoomer_zoomOut;
    oZoomOut.innerHTML= "<img src='images/slider_button_zoomout.png' border='0' width='17' height='17'>";
    this.zoomControlObj.appendChild(oZoomOut);
    
    ADD_DHTML('zoomThumb'+MAXOFFTOP+0+MAXOFFBOTTOM+nTrackMaxPosition+VERTICAL);
    ADD_DHTML('zoomTrack'+NO_DRAG);
    dd.elements.zoomThumb.moveTo(dd.elements.zoomTrack.x, dd.elements.zoomTrack.y + nInitialPosition);
    dd.elements.zoomThumb.setZ(dd.elements.zoomTrack.z+1);
    dd.elements.zoomTrack.addChild('zoomThumb');
    dd.elements.zoomThumb.defx = dd.elements.zoomTrack.x;
    dd.elements.zoomThumb.defy = dd.elements.zoomTrack.y;
    
    dd.elements.zoomThumb.my_DropFunc = kaZoomer_DropFunc;
    
    this.kaMap.registerForEvent( KAMAP_SCALE_CHANGED, this, this.update );
}
function kaZoomer_DropFunc()
{
    
    var nTrackTop = dd.elements.zoomTrack.y;
    
    var nThumbTop = dd.elements.zoomThumb.y - nTrackTop;
    var nThumbHeight = dd.elements.zoomTrack.div.elementHeight;
    
    var nNearestIndex = Math.round(nThumbTop / nThumbHeight);
    dd.elements.zoomThumb.moveTo(dd.elements.zoomThumb.x,nTrackTop +(nNearestIndex*nThumbHeight));
    
    var oKaMap = dd.elements.zoomTrack.div.kaZoomer.kaMap;
    var oMap = oKaMap.getCurrentMap();
    var nCurrentScale = oMap.getScales()[oMap.aScales.length - nNearestIndex - 1];
    oKaMap.zoomToScale(nCurrentScale);
}
function kaZoomer_zoomTo( e )
{
    e = (e)?e:((event)?event:null);
    var nClickTop = (e.layerY)?e.layerY:e.offsetY;
    
    var oKaZoomer = dd.elements.zoomTrack.div.kaZoomer;
    var oKaMap = oKaZoomer.kaMap;
    var oMap = oKaMap.getCurrentMap();
    var nScales = oMap.getScales().length;
    var nTrackHeight = dd.Int(oKaZoomer.nZoomImageHeight) * nScales;
    
    
    var nNearestIndex = Math.floor(nClickTop / nTrackHeight * nScales);
    var nNewScale = oMap.getScales()[oMap.aScales.length - nNearestIndex - 1];
    oKaMap.zoomToScale(nNewScale);
}
function kaZoomer_onmouseover( e )
{
    this.style.opacity = 1;
    this.style.mozOpacity = 1;
    this.style.filter = "Alpha(opacity=100)";
}
function kaZoomer_onmouseout( e )
{
    this.style.opacity = this.kaZoomer.opacity/100;
    this.style.mozOpacity = this.kaZoomer.opacity/100;
    this.style.filter = "Alpha(opacity="+this.kaZoomer.opacity+")";
}
function kaZoomer_zoomIn()
{
    this.kaZoomer.kaMap.zoomIn();
}
function kaZoomer_zoomOut()
{
    this.kaZoomer.kaMap.zoomOut();
}
function kaZoomer_alert()
{
    alert('here');
}
	
Documentation generated by 
JSDoc on Mon Feb  5 08:25:15 2007