/*=====================================================
 MISC
 =====================================================*/
//Graphic setup twist
//Zoom controls 
var zoombarInWidth = 19;
var zoombarOutWidth = 19;
var zoombarInHeight = 19;
var zoombarOutHeight = 19;
var zoombarBackWidth = 19;
var zoombarBackHeight = 117;
var zoombarHandlerWidth = 19;
var zoombarHandlerHeight = 9;
var zoombarInSrc = "zoombarPlus.png";
var zoombarBackSrc = "zoombarBack.png";
var zoombarOutSrc = "zoombarMin.png";
var zoombarHandlerSrc = "zoomHandle.gif";

//FAddZoomControl
FoliaMap.prototype.FAddZoomControl = function() {

	this.fZoomSliderDragFlag = false;
	zoombarBackHeight = this.zLevels.length * 13;

	var zoombarDiv = document.createElement("div");
	zoombarDiv.setAttribute("id", this.name + "divZoombar");
	this.mapholder.appendChild(zoombarDiv);

	var zoombarIn = document.createElement("img");
	zoombarIn.setAttribute("id", this.name + "zoombarIn");
	zoombarIn.style.width = zoombarInWidth + "px";
	zoombarIn.style.height = zoombarInHeight + "px";
	zoombarIn.src = gfxFolderZoom + zoombarInSrc;
	zoombarIn.alt = f_zoomPlus;
	zoombarIn.title = f_zoomPlus;	
	zoombarDiv.appendChild(zoombarIn);
	this.addEventHandler(zoombarIn, "click", this.ZoomIn.bind(this))

	var zoombarBackGr = document.createElement("div");
	zoombarBackGr.setAttribute("id", this.name + "zoombarBack");
	zoombarBackGr.style.width = zoombarBackWidth + "px";
	zoombarBackGr.style.height = zoombarBackHeight + "px";
	zoombarBackGr.style.backgroundImage = "url('" + gfxFolderZoom + zoombarBackSrc + "')";
	
	zoombarDiv.appendChild(zoombarBackGr);
	this.addEventHandler(zoombarBackGr, "mousemove", this.SliderMouseMove.bind(this));

	var zoombarOut = document.createElement("img");
	zoombarOut.setAttribute("id", this.name + "zoombarOut");
	zoombarOut.style.width = zoombarOutWidth + "px";
	zoombarOut.style.height = zoombarOutHeight + "px";
	zoombarOut.src = gfxFolderZoom + zoombarOutSrc;
	zoombarOut.alt = f_zoomMinus;
	zoombarOut.title = f_zoomMinus;
	zoombarDiv.appendChild(zoombarOut);
	this.addEventHandler(zoombarOut, "click", this.ZoomOut.bind(this))

	var zoombarSlide = document.createElement("img");
	zoombarSlide.setAttribute("id", this.name + "zoombarHandler");
	zoombarSlide.style.position = "absolute";
	//zoombarSlide.style.marginLeft = "2px";
	zoombarSlide.style.width = zoombarHandlerWidth + "px";
	zoombarSlide.style.height = zoombarHandlerHeight + "px";
	zoombarSlide.style.zIndex = 1;
	zoombarSlide.src = gfxFolderZoom + zoombarHandlerSrc;
	zoombarSlide.alt = "zoom";
	zoombarBackGr.appendChild(zoombarSlide);

	var zoombarEvent = document.createElement("div");
	zoombarEvent.setAttribute("id", this.name + "zoombarEvent");
	zoombarEvent.style.position = "absolute";
	zoombarEvent.style.width = zoombarBackWidth + "px";
	zoombarEvent.style.height = zoombarBackHeight + "px";
	zoombarEvent.style.top = "19px";
	zoombarEvent.style.zIndex = 2;
	zoombarEvent.style.backgroundImage = "url('" + this.gfxPath + "1x1_transparent.gif')";
	zoombarBackGr.appendChild(zoombarEvent);
	this.addEventHandler(zoombarEvent, "mousedown", this.SliderMouseDown.bind(this));
	this.addEventHandler(zoombarEvent, "mouseup", this.SliderMouseUp.bind(this));
	this.addEventHandler(zoombarEvent, "mouseout", this.SliderMouseOut.bind(this));

	this.setZoomSlider(this.zLevel);
	//enableDisableMapStyleButtons(this.zLevel);
}

FoliaMap.prototype.ZoomOut = function() {
    
        var zoombarHandler = document.getElementById(this.name + "zoombarHandler");
        var zoombarBackGround = document.getElementById(this.name + "zoombarBack");
        var y = this.getElementPosition(zoombarHandler).y;
        var yBack = this.getElementPosition(zoombarBackGround).y;
        
        if (this.zLevel + 1 < this.zLevels.length ) this.zOut();
            
    }//zoomOut
    
FoliaMap.prototype.ZoomIn = function() {
    
        var zoombarHandler = document.getElementById(this.name + "zoombarHandler");
        var zoombarBackGround = document.getElementById(this.name + "zoombarBack");        
        var y = this.getElementPosition(zoombarHandler).y;
        var yBack = this.getElementPosition(zoombarBackGround).y;        
        
        if (this.zLevel - 1 >= 0) this.zIn();
            
    } //zoomOut
            
FoliaMap.prototype.setZoomSlider = function(zoomLevel) {
        try {
            var zoombarHandler = document.getElementById(this.name + "zoombarHandler");
            zoombarHandler.style.top = ( 14 + 7 + zoomLevel * 13 ) + "px";
        } catch(event) {
            //void
        }
    } //setZoomSlider
        
FoliaMap.prototype.SliderMouseDown = function() {
        this.fZoomSliderDragFlag = true;
    } //SliderMouseDown
    
FoliaMap.prototype.SliderMouseUp = function(e) {
        if(this.fZoomSliderDragFlag) {
            var zoomSlider = document.getElementById(this.name + "zoombarHandler");
            var pos = this.getMousePos(this.name + "zoombarEvent",e);
            var newZLevel = pos.y - 8;
                newZLevel = Math.round(newZLevel / 13);
            if(newZLevel > (this.zLevels.length -1 ) ) newZLevel = this.zLevels.length -1;
            if ( newZLevel < 0 ) newZLevel = 0;
            this.zoom(newZLevel);
            this.fZoomSliderDragFlag = false;
        }
    } //SliderMouseUp

FoliaMap.prototype.SliderMouseMove = function (e) {
        var zoomSlider = document.getElementById(this.name + "zoombarHandler");
        var pos = this.getMousePos(this.name + "zoombarEvent",e);
        
        if (this.fZoomSliderDragFlag && pos.y > 0 && pos.y <= (7 + this.zLevels.length * 13) )
        {
            zoomSlider.style.top = pos.y + 14 + "px";
        }
    } //SliderMouseMove
    
FoliaMap.prototype.SliderMouseOut = function(e) {
        this.SliderMouseUp(e);
        //this.fZoomSliderDragFlag = false;
    } //SliderMouseOut



 /**
   * Add dragbox on locatormap
 **/
 
FoliaMap.prototype.addLocatorDragBox = function() {

        this.locatorDragBox = Object();
        this.locatorDragBox.UTM = new Object();
        this.locatorDragBox.UTM.ix = this.parentmap.bbox.current.ix;
        this.locatorDragBox.UTM.iy = this.parentmap.bbox.current.iy;
        this.locatorDragBox.UTM.ex = this.parentmap.bbox.current.ex;
        this.locatorDragBox.UTM.ey = this.parentmap.bbox.current.ey;

        //debug(xmin + ', ' + ymin + ', ' + xmax + ', ' + ymax);

        var px_xmin = Math.round(( ( this.locatorDragBox.UTM.ix - this.bbox.ix ) / this.bbox.rel ));
        var px_ymin = ( this.displaySize * this.tileSize ) - Math.round(( ( this.locatorDragBox.UTM.iy - this.bbox.iy ) / this.bbox.rel ));
        var px_xmax = Math.round(( ( this.locatorDragBox.UTM.ex - this.bbox.ix ) / this.bbox.rel ));
        var px_ymax = ( this.displaySize * this.tileSize ) - Math.round(( ( this.locatorDragBox.UTM.ey - this.bbox.iy ) / this.bbox.rel ));

        this.locatorDragBox.box = document.createElement("div");
        this.locatorDragBox.box.setAttribute("id",this.name + "searchBox");
        this.locatorDragBox.box.style.position = "absolute";       
        this.locatorDragBox.box.style.top = (px_ymax + parseInt(this.mapbox.style.top)) + "px";
        this.locatorDragBox.box.style.left = (px_xmin + parseInt(this.mapbox.style.left)) + "px";
        this.locatorDragBox.box.style.height = px_ymin - px_ymax + "px";
        this.locatorDragBox.box.style.width = px_xmax - px_xmin + "px";
             
        this.locatorDragBox.box.style.border = "#9B0024 1px solid";
        this.locatorDragBox.box.style.opasity = 0.5;
        this.locatorDragBox.box.style.filter =  "alpha(opacity=50)";
        this.locatorDragBox.box.style.MozOpacity = 0.5;
        this.locatorDragBox.box.style.backgroundColor = "#FFFFFF";
        this.locatorDragBox.box.style.zIndex = 9;
        //this.addEventHandler(this.locatorDragBox.box,"mouseover",this.disallowPan.bind(this));
        //this.addEventHandler(this.locatorDragBox.box,"mouseout",this.allowPan.bind(this));
        //this.addEventHandler(this.locatorDragBox.box,"mousedown",this.searchBoxSetHandle.bind(this));
        //this.addEventHandler(this.locatorDragBox.box,"mousemove",this.searchBoxMove.bind(this));
        //this.addEventHandler(this.locatorDragBox.box,"mouseup",this.searchBoxMoveStopped.bind(this));
         
        //newbox.style.moz-opacity


        //NOTE
        this.searchboxLayer = document.createElement("div");
        this.searchboxLayer.style.position = "absolute";
        this.searchboxLayer.style.top = "0px";
        this.searchboxLayer.style.left = "0px";
        this.searchboxLayer.style.width = "900px";
        this.searchboxLayer.style.height = "900px";
        //this.addEventHandler(this.searchboxLayer,"mousemove",this.searchBoxScale.bind(this));
        //this.addEventHandler(this.searchboxLayer,"mouseup",this.searchBoxUnsetHandle.bind(this));
        //this.actionLayer.appendChild(this.searchboxLayer);

        //this.searchboxLayer.appendChild(this.locatorDragBox.box);
        this.navbox.appendChild(this.locatorDragBox.box);

    }//addLocatorDragBox


//Add infoarea
FoliaMap.prototype.FAddInfoArea = function(textInput) {
	var infoAreaDiv = document.createElement("div");
	infoAreaDiv.setAttribute("id", this.name + "divInfoArea");
  infoAreaDiv.innerHTML = textInput;
  this.mapholder.appendChild(infoAreaDiv);
}

//Remove infoarea
FoliaMap.prototype.FRemoveInfoArea = function() {
	try {
		this.mapholder.removeChild(document.getElementById(this.name + "divInfoArea"));
	}catch(ex){}
}
    
FoliaMap.prototype.Test = function() {
	this.unsetMoveActive();
}
    



   
