// Навигационное меню управления масштабом

function TashirZoomControl() {	
}

TashirZoomControl.prototype = new GControl();

TashirZoomControl.prototype.initialize = function(map) {
	
	var container = document.createElement("div");
	
	// zoom IN
	var zoomInDiv = document.createElement("div");
	this.setButtonStyle_(zoomInDiv);
	
	var plusImage = document.createElement("img");
	plusImage.setAttribute("src", arrIcons['plusIcon']);
	plusImage.setAttribute("width", 16);
	plusImage.setAttribute("height", 16);
	plusImage.setAttribute("alt", "Масштаб +");
	
	zoomInDiv.appendChild(plusImage);
	container.appendChild(zoomInDiv);
	GEvent.addDomListener(zoomInDiv, "click", function() {
		map.zoomIn();
	});
	
	// zoom Out
	var zoomOutDiv = document.createElement("div");
	this.setButtonStyle_(zoomOutDiv);
	
	var minusImage = document.createElement("img");
	minusImage.setAttribute("src", arrIcons['minusIcon']);
	minusImage.setAttribute("width", 16);
	minusImage.setAttribute("height", 16);
	minusImage.setAttribute("alt", "Масштаб -");
	
	zoomOutDiv.appendChild(minusImage);
	container.appendChild(zoomOutDiv);
	GEvent.addDomListener(zoomOutDiv, "click", function() {
		map.zoomOut();
	});
	
	
	map.getContainer().appendChild(container);
	
	return container;
}

TashirZoomControl.prototype.getDefaultPosition = function()
{
	return new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(16, 70));
}

TashirZoomControl.prototype.setButtonStyle_ = function(button) {
	button.style.padding = "1px";
	button.style.cursor = "pointer";
}












// Навигационное меню управления положением карты

function TashirPanControl() {	
}

TashirPanControl.prototype = new GControl();

TashirPanControl.prototype.initialize = function(map) {
	
	var container = document.createElement("div");
	
	// up
	var upImage = document.createElement("img");
	container.appendChild(upImage);
	this.setButtonStyleUp(upImage);
	upImage.setAttribute("src", arrIcons['upIcon']);
	upImage.setAttribute("width", 16);
	upImage.setAttribute("height", 16);
	upImage.setAttribute("alt", "Передвинуть вверх");
	
	GEvent.addDomListener(upImage, "click", function() {
		map.panDirection(0, 1);
	});
	
	
	// left
	var leftImage = document.createElement("img");
	container.appendChild(leftImage);
	this.setButtonStyleLeft(leftImage);
	leftImage.setAttribute("src", arrIcons['leftIcon']);
	leftImage.setAttribute("width", 16);
	leftImage.setAttribute("height", 16);
	leftImage.setAttribute("alt", "Передвинуть влево");
	
	GEvent.addDomListener(leftImage, "click", function() {
		map.panDirection(1, 0);
	});
	
	// right
	var rightImage = document.createElement("img");
	container.appendChild(rightImage);
	this.setButtonStyleRight(rightImage);
	rightImage.setAttribute("src", arrIcons['rightIcon']);
	rightImage.setAttribute("width", 16);
	rightImage.setAttribute("height", 16);
	rightImage.setAttribute("alt", "Передвинуть вправо");
	
	GEvent.addDomListener(rightImage, "click", function() {
		map.panDirection(-1, 0);
	});
	
	
	
	// down
	var downImage = document.createElement("img");
	container.appendChild(downImage);
	this.setButtonStyleDown(downImage);
	downImage.setAttribute("src", arrIcons['downIcon']);
	downImage.setAttribute("width", 16);
	downImage.setAttribute("height", 16);
	downImage.setAttribute("alt", "Передвинуть вниз");
	
	GEvent.addDomListener(downImage, "click", function() {
		map.panDirection(0, -1);
	});
	
	map.getContainer().appendChild(container);
	
	return container;
}

TashirPanControl.prototype.getDefaultPosition = function()
{
	return new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(7, 7));
}

TashirPanControl.prototype.setButtonStyle_ = function(button) {
	button.style.padding = "1px";
	button.style.cursor = "pointer";
}

TashirPanControl.prototype.setButtonStyleUp = function(button) {
	button.style.padding = "1px";
	button.style.cursor = "pointer";
	button.style.position = "absolute";
	button.style.left = "9px";
	button.style.top = "0px";
}

TashirPanControl.prototype.setButtonStyleLeft = function(button) {
	button.style.padding = "1px";
	button.style.cursor = "pointer";
	button.style.position = "absolute";
	button.style.left = "0px";
	button.style.top = "18px";
}

TashirPanControl.prototype.setButtonStyleRight = function(button) {
	button.style.padding = "1px";
	button.style.cursor = "pointer";
	button.style.position = "absolute";
	button.style.left = "18px";
	button.style.top = "18px";
}

TashirPanControl.prototype.setButtonStyleDown = function(button) {
	button.style.padding = "1px";
	button.style.cursor = "pointer";
	button.style.position = "absolute";
	button.style.left = "9px";
	button.style.top = "36px";
}










// Навигационное меню управления типами карты

function TashirTypeControl() {	
}

TashirTypeControl.prototype = new GControl();

TashirTypeControl.prototype.initialize = function(map) {

	mapTypeContainer = document.createElement("div");
	
	makeMapTypeContainer(null);
	
	map.getContainer().appendChild(mapTypeContainer);
	
	return mapTypeContainer;
}

TashirTypeControl.prototype.getDefaultPosition = function()
{
	return new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(7, 7));
}

TashirTypeControl.prototype.setButtonStyle_ = function(button) {
	button.style.cursor = "pointer";
}

function makeMapTypeContainer(currentMapType)
{
	
	// map
	var mapImage = document.createElement("img");
	//this.setButtonStyle_(mapImage);
	mapImage.setAttribute("src", arrIcons['kartaIcon']);
	mapImage.setAttribute("width", 71);
	mapImage.setAttribute("height", 19);
	mapImage.setAttribute("alt", "Показать карту с названиями улиц");
	mapImage.setAttribute("title", "Показать карту с названиями улиц");
	mapImage.style.cursor = "pointer";
	
	// map_a
	var activeMapImage = document.createElement("img");
	//this.setButtonStyle_(activeMapImage);
	activeMapImage.setAttribute("src", arrIcons['activeKartaIcon']);
	activeMapImage.setAttribute("width", 71);
	activeMapImage.setAttribute("height", 19);
	activeMapImage.setAttribute("alt", "Показать карту с названиями улиц");
	activeMapImage.setAttribute("title", "Показать карту с названиями улиц");
	activeMapImage.style.cursor = "pointer";
	
	// satellite
	var satelliteImage = document.createElement("img");
	//this.setButtonStyle_(satelliteImage);
	satelliteImage.setAttribute("src", arrIcons['sputnikIcon']);
	satelliteImage.setAttribute("width", 71);
	satelliteImage.setAttribute("height", 19);
	satelliteImage.setAttribute("alt", "Показать спутниковые изображения");
	satelliteImage.setAttribute("title", "Показать спутниковые изображения");
	satelliteImage.style.cursor = "pointer";

	// satellite_a
	var activeSatelliteImage = document.createElement("img");
	//this.setButtonStyle_(activeSatelliteImage);
	activeSatelliteImage.setAttribute("src", arrIcons['activeSputnikIcon']);
	activeSatelliteImage.setAttribute("width", 71);
	activeSatelliteImage.setAttribute("height", 19);
	activeSatelliteImage.setAttribute("alt", "Показать спутниковые изображения");
	activeSatelliteImage.setAttribute("title", "Показать спутниковые изображения");
	activeSatelliteImage.style.cursor = "pointer";

	// physical
	var physicalImage = document.createElement("img");
	//this.setButtonStyle_(physicalImage);
	physicalImage.setAttribute("src", arrIcons['landIcon']);
	physicalImage.setAttribute("width", 71);
	physicalImage.setAttribute("height", 19);
	physicalImage.setAttribute("alt", "Показать карту улицы с ландшафтом");
	physicalImage.setAttribute("title", "Показать карту улицы с ландшафтом");
	physicalImage.style.cursor = "pointer";
	
	// physical_a
	var activePhysicalImage = document.createElement("img");
	//this.setButtonStyle_(activePhysicalImage);
	activePhysicalImage.setAttribute("src", arrIcons['activeLandIcon']);
	activePhysicalImage.setAttribute("width", 71);
	activePhysicalImage.setAttribute("height", 19);
	activePhysicalImage.setAttribute("alt", "Показать карту улицы с ландшафтом");
	activePhysicalImage.setAttribute("title", "Показать карту улицы с ландшафтом");
	activePhysicalImage.style.cursor = "pointer";
	
	divHybridMap = document.createElement("div");
	divHybridMap.style.width = "125px";
	divHybridMap.style.height = "15px";
	divHybridMap.style.position = "relative";
	divHybridMap.style.left = "72px";
	divHybridMap.style.color = "#FFFFFF";
	divHybridMap.style.backgroundColor = "#6A75A5";
	divHybridMap.style.font = "11px Tahoma";
	divHybridMap.style.border = "1px solid #FFFFFF ";
	divHybridMap.style.padding = "1px";
	divHybridMap.style.cursor = "pointer";
	
	var checkboxElement = document.createElement("input");
	checkboxElement.setAttribute("type", "checkbox");
	checkboxElement.style.cursor = "pointer";
	divHybridMap.appendChild(checkboxElement);
		
	var text = document.createTextNode(' Названия объектов');
	divHybridMap.appendChild(text);
	
	
	if (currentMapType == "G_NORMAL_MAP") {
		mapTypeContainer.appendChild(activeMapImage);
	} else {
		mapTypeContainer.appendChild(mapImage);
	}
    
	if ( (currentMapType == "G_SATELLITE_MAP") || (currentMapType == "G_HYBRID_MAP") ) {
		mapTypeContainer.appendChild(activeSatelliteImage);
	} else {
		mapTypeContainer.appendChild(satelliteImage);
	}
	
	if (currentMapType == "G_PHYSICAL_MAP") {
		mapTypeContainer.appendChild(activePhysicalImage);
	} else {
		mapTypeContainer.appendChild(physicalImage);
	}

	if ( (currentMapType == "G_SATELLITE_MAP") || (currentMapType == "G_HYBRID_MAP") ) {
		mapTypeContainer.appendChild(divHybridMap);
	    if (namesObjectChecked == true) {
		    checkboxElement.setAttribute("checked", "checked");
	   }
		
	
	}
		
	// переход к режиму "карта"
    GEvent.addDomListener(mapImage, "click", function() {
	    map.setMapType(G_NORMAL_MAP);
	    
	    var children = mapTypeContainer.childNodes;
	    for (var i=children.length-1; i>=0; i--) {
	    	mapTypeContainer.removeChild(children[i]);
	    }
    
        mapTypeContainer.appendChild(activeMapImage);
	    mapTypeContainer.appendChild(satelliteImage);
	    mapTypeContainer.appendChild(physicalImage);
	    
    });
    
    
    // переход к режиму "спутник"
    GEvent.addDomListener(satelliteImage, "click", function() {
	    
	    
	    var children = mapTypeContainer.childNodes;
	    for (var i=children.length-1; i>=0; i--) {
	    	mapTypeContainer.removeChild(children[i]);
	    }
	    
	    mapTypeContainer.appendChild(mapImage);
	    mapTypeContainer.appendChild(activeSatelliteImage);
	    mapTypeContainer.appendChild(physicalImage);
	    mapTypeContainer.appendChild(divHybridMap);
		
		if (namesObjectChecked == true) {
			checkboxElement.setAttribute("checked", "checked");
			map.setMapType(G_HYBRID_MAP);
			
		} else {
			map.setMapType(G_SATELLITE_MAP);
		}
		
	});
	    
	// переход к режиму "ландшафт"   
	GEvent.addDomListener(physicalImage, "click", function() {
		map.setMapType(G_PHYSICAL_MAP);
		
	    var children = mapTypeContainer.childNodes;
	    for (var i=children.length-1; i>=0; i--) {
	    	mapTypeContainer.removeChild(children[i]);
	    }
    
        mapTypeContainer.appendChild(mapImage);
	    mapTypeContainer.appendChild(satelliteImage);
	    mapTypeContainer.appendChild(activePhysicalImage);
	    
	});
	
	// переключение режимов "спутник" и "спутник с названиями объектов"
	GEvent.addDomListener(checkboxElement, "click", function() {
		if (namesObjectChecked == true) {
			namesObjectChecked = false;
			map.setMapType(G_SATELLITE_MAP);
		} else {
			namesObjectChecked = true;
			map.setMapType(G_HYBRID_MAP);
		}
	    
	});
	
	GEvent.addDomListener(mapImage, "mouseover", function() {
		divHybridMap.style.display = "none";
		
	});
	
	GEvent.addDomListener(activeSatelliteImage, "mouseover", function() {
		divHybridMap.style.display = "";
	    
	});
	
	GEvent.addDomListener(physicalImage, "mouseover", function() {
		divHybridMap.style.display = "none";
	    
	});
	
	GEvent.addDomListener(divHybridMap, "mouseout", function() {
		divHybridMap.style.display = "none"
	    
	});
	
	GEvent.addDomListener(checkboxElement, "mouseover", function() {
		divHybridMap.style.display = "";
	    
	});

	
}
