// ===============================================================
// CBkort version 2.x, copyright Carl Bro GIS&IT, 2006
// ===============================================================
// $Archive: /Products/CBKort2/development/2.5/standard/wwwroot/WEB-INF/config/modules/standard/arrowpanner/js/arrowpanner.js $ 
// $Date: 5-02-09 10:44 $
// $Revision: 1 $ 
// $Author: Kpo $
// =============================================================== 

    
function arrowpanner_zoom(zoomdir)
{
    showWaitingBox();
    document.mapserv.zoomdir.value = zoomdir;
    document.mapserv.submit();
}

function arrowpanner_move(direction){
    var extentArr = cbKort.extentArr;
    x1 = parseInt(extentArr[0]);
    y1 = parseInt(extentArr[1]);
    x2 = parseInt(extentArr[2]);
    y2 = parseInt(extentArr[3]);
    //dx = 2*(x2 - x1)/3;
    //dy = 2*(y2 - y1)/3;
    dx = (x2 - x1)/2;
    dy = (y2 - y1)/2;
    switch (direction){
        case "nw":
            arrowpanner_doMove(-dx, dy);
            break;
        case "n":
            arrowpanner_doMove(0, dy);
            break;
        case "ne":
            arrowpanner_doMove(dx, dy);
            break;
        case "w":
            arrowpanner_doMove(-dx, 0);
            break;
        case "e":
            arrowpanner_doMove(dx, 0);
            break;
        case "se":
            arrowpanner_doMove(dx, -dy);
            break;
        case "s":
            arrowpanner_doMove(0, -dy);
            break;
        case "sw":
            arrowpanner_doMove(-dx, -dy);
            break;
        default: alert("[text:arrowpanner.move.error]: " + direction);
    }
}

function arrowpanner_doMove(dx, dy){
    var extentArr = cbKort.extentArr;
    x1 = parseInt(extentArr[0]) + dx;
    y1 = parseInt(extentArr[1]) + dy;
    x2 = parseInt(extentArr[2]) + dx;
    y2 = parseInt(extentArr[3]) + dy;
    var newExtent = x1 + " " + y1 + " " + x2 + " " + y2;
    showWaitingBox();
    document.mapserv.imgext.value = newExtent;
    document.mapserv.zoomdir.value = 0;
    document.mapserv.submit();
}

function arrowpanner_placeMyArrowPannerbox()
{
    var pannerBox = getElement("arrowpanner_ArrowPannerbox");
    var pannerBoxClone = getElement("arrowpanner_ArrowPannerbox").cloneNode(true);
    pannerBox.parentNode.removeChild(pannerBox);
    var pannerZoomBox = getElement("arrowpanner_ArrowPannerZoombox");
    var pannerZoomBoxClone = getElement("arrowpanner_ArrowPannerZoombox").cloneNode(true);
    pannerZoomBox.parentNode.removeChild(pannerZoomBox);
    var theMap = getElement("themap");
    var theMapContainer = getElement("mapcontainer");
    theMapContainer.parentNode.appendChild(pannerBoxClone);
    theMapContainer.parentNode.appendChild(pannerZoomBoxClone);
    var theMapWidth = getWidth(theMap);
    var theMapLeft = getX(theMap);
    var theMapTop = getY(theMap);

    pannerBoxClone.style.left = (theMapLeft + theMapWidth - 53) + "px";
    pannerBoxClone.style.top = (theMapTop + 7) + "px";
    //pannerBoxClone.style.height = "45px";
    pannerZoomBoxClone.style.left = (theMapLeft + theMapWidth - 53) + "px";
    pannerZoomBoxClone.style.top = (theMapTop + 62) + "px";
    //pannerBoxZoomClone.style.height = "45px";

    showElement(pannerBoxClone);
    showElement(pannerZoomBoxClone);
    
    cbKort.registerResizeHandler(arrowpanner_mapResizeHandler);
}

function arrowpanner_mapResizeHandler(mapWidthCorr,mapHeightCorr)
{
    var pannerBox = getElement("arrowpanner_ArrowPannerbox");
    pannerBox.style.left = pixelAdd(pannerBox.style.left,mapWidthCorr);
    var pannerZoomBox = getElement("arrowpanner_ArrowPannerZoombox");
    pannerZoomBox.style.left = pixelAdd(pannerZoomBox.style.left,mapWidthCorr);
}

function arrowpanner_show()
{
    showBlock(getElement('arrowpanner_ArrowPannerbox'));
    showBlock(getElement('arrowpanner_ArrowPannerZoombox'));
}
function arrowpanner_hide()
{
    hideBlock(getElement('arrowpanner_ArrowPannerbox'));
    hideBlock(getElement('arrowpanner_ArrowPannerZoombox'));
}
    