// JavaScript Document

var mycustcontr = [];
var slider = null;

function AddCustomControls(){	
	for(var i = 1; i < 5; i++){
		mycustcontr[i] = new Control(i);	
		map.addControl(mycustcontr[i]);
					
	}
}

function AddSmallControl(){
	RemoveAllControl();
	mycustcontr[8] = new GSmallMapControl(); 
	map.addControl(mycustcontr[8]);
}

function AddLargeControl(){
	RemoveAllControl();
	mycustcontr[9] = new GLargeMapControl(); 
	map.addControl(mycustcontr[9]);
}

function RemoveCustomControls(){
		for(var i = 1; i < 5; i++)
			map.removeControl(mycustcontr[i]);	
}

function setZoom(val){
	map.setZoom(val);
}

function RemoveAllControl(){
		for(var i = 5; i < 10; i++)
			map.removeControl(mycustcontr[i]);	
}

function AddSlideControl(){
	RemoveAllControl();
	mycustcontr[5] = new SlideControl();	
	map.addControl(mycustcontr[5]);
	slider = new Slider("slider", "vertical", 21);
	slider.onChange = setZoom;
	slider.setStart(map.getZoom());
	slider.show();
	
	for(var i = 6; i < 8; i++){
		mycustcontr[i] = new ZoomControl(i);	
		map.addControl(mycustcontr[i]);
	}	
}

function Control(position) {
    	this.position = position;
	}
	
    Control.prototype = new GControl();

    Control.prototype.initialize = function(map) {
		function aa (obj){
			return function() {        		
				switch(obj.position){
					case 1:
						map.panDirection(1,0);
						break;
					case 2:
						map.panDirection(-1,0);
						break;
					case 3:
						map.panDirection(0,1);
						break;
					case 4:
						map.panDirection(0,-1);							
				}
	  		}
		}
      var container = document.createElement("div");

      var Div = document.createElement("div");
      container.appendChild(Div);
      Div.className = "alphachannel-"+this.position;
      var img = document.createElement("img");
	  img.src = "images/arrow-"+this.position+"-empty.gif";
	  Div.appendChild(img);
	  GEvent.addDomListener(Div, "click", aa(this) );

      map.getContainer().appendChild(container);
      return container;
    }

    Control.prototype.getDefaultPosition = function() {
      switch (this.position){
	  	case 1:
			return new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(7, globalmap.height/2));
		case 2: 
			return new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(7, globalmap.height/2));	
		case 3:
			return new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(globalmap.width/2, 7));	
		case 4:
			return new GControlPosition(G_ANCHOR_BOTTOM_RIGHT, new GSize(globalmap.width/2, 7));	
	  }
	  
    }
    
    
    function SlideControl() {    	
	}
	
    SlideControl.prototype = new GControl();

    SlideControl.prototype.initialize = function(map) {
		
      var container = document.createElement("div");

      var Div = document.createElement("div");
      Div.setAttribute('id','slider');
	  Div.className= "slider";
	  container.appendChild(Div);
      
	   map.getContainer().appendChild(container);
	  
      return container;
    }

    SlideControl.prototype.getDefaultPosition = function() {
      return new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(7, 7));
		
    }
    
    
	function ZoomControl(pos) {
		this.pos = pos;
	}
	
    ZoomControl.prototype = new GControl();

    ZoomControl.prototype.initialize = function(map) {
		function bb (obj){
			return function() {
				switch(obj.pos){
					case 6:
						map.zoomOut();		
						break;
					case 7:
						map.zoomIn();
				}
				slider.setStart(map.getZoom());
			}
		}	
		
      var container = document.createElement("div");

      var Div = document.createElement("div");
      
	  container.appendChild(Div);
	  Div.className = "zoom-" + this.pos;
	  Div.style.padding="0px";
	  Div.style.left="0px";
	  Div.style.top="0px";
	  
	  GEvent.addDomListener(Div, "click", bb(this) );
	   map.getContainer().appendChild(container);
	  
      return container;
    }

    ZoomControl.prototype.getDefaultPosition = function() {
      switch (this.pos){
	  	case 6:
	  		return new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(21, 9));
		case 7:
			return new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(21, 111));
	  }
    }
	