function GetNextAddress(str)
{
	position = str.indexOf(',');

	if (position > 0)
	{
		return str.substr(position + 1, str.length);
	}
	else
	{
		return false;
	}
}

function initApp(address)
{
	// проверяем совместим ли браузер с картой
	if (GBrowserIsCompatible())
	{
		// создание объекта геокодера
		cg = new GClientGeocoder();

		// где address все та же строка исходных данных, а callbaсk функция, принимающая один параметр.
		cg.getLocations(address, CGCallback);
	}
	else
	{
		//alert('Простите, но ваш браузер не совместим с Google Maps');
		document.getElementById('map').style.display = 'none';
		document.getElementById('map2').style.display = 'none';
		document.getElementById('map3').style.display = 'none';
	}

	function CGCallback(responce)
	{
		if (responce.Status.code != 200)
		{
			address = GetNextAddress(address);

			//alert(address);

			if (address)
			{
				// Повторно запрашиваем
				cg.getLocations(address, CGCallback);
				return;
			}
			else
			{
				//alert(responce.Status.code);
				document.getElementById('map').style.display = 'none';
				document.getElementById('map2').style.display = 'none';
				document.getElementById('map3').style.display = 'none';
				return;
			}
		}
		
		
		var lat = responce.Placemark[0].Point.coordinates[1];
		var lng = responce.Placemark[0].Point.coordinates[0];
		//document.getElementById('lat-id').value = lat;
		//document.getElementById('lng-id').value = lng;

		var icon = new GIcon();
		icon.image      = '/images/googlemap/arrow.png';
		icon.shadow     = '';

		// Размер маркера
		icon.iconSize   = new GSize(32, 32);

		// Тень
		icon.shadowSize = new GSize(0, 0);
		icon.iconAnchor = new GPoint(16, 22);

		var opts = {
		"icon": icon,
		"draggable": true
		}

		// Точность определения расположения
		// 0 Точка не найдена
		// 1 С точностью до страны
		// 2 С точностью до административной единицы (штат, провинция, префектура)
		// 3 С точностью до области
		// 4 С точностью до населенного пункта
		// 5 С точностью до почтового кода
		// 6 С точносью до улицы
		// 7 С точностью до перекрестка
		// 8 С точностью до адреса
		Accuracy = responce.Placemark[0].AddressDetails.Accuracy;
		//alert(Accuracy);

		// Типы карт
		// G_NORMAL_MAP
		// G_SATELLITE_MAP
		// G_HYBRID_MAP

		// КАРТА 1 - гибридная с общим положением отеля

		// создаем объект карты
		var map = new GMap2(document.getElementById('map'));

		// Добавляем на карту элементы управления:
		// сокращенный вариант без ползунка.
		map.addControl(new GSmallMapControl());

		// переключение типа карты (топографическая/спутник/гибрид)
		map.addControl(new GMapTypeControl());

		// Удаляем тип карты "Спутник", оставляем карта и гибридная
		map.removeMapType(G_SATELLITE_MAP);

		// Тип карты - гибридная
		map.setMapType(G_HYBRID_MAP);

		// устанавливаем центр карты и начальный масштаб.
		// Масштаб зависит от полученной точности расположения
		map.setCenter(new GLatLng(lat, lng), 5);
		
		// добавим на карту маркер
		marker = new GMarker(new GLatLng(lat, lng), opts);
		map.addOverlay(marker);

		// КАРТА 2 - схематичная с положением отеля на карте

		// создаем объект карты
		var map2 = new GMap2(document.getElementById('map2'));

		// Accuracy
		/*
		1 - 5
		2 - 6
		3 - 7
		4 - 8
		5 - 9
		6 - 10
		7 - 11
		8 - 12
		*/
		// Добавляем на карту элементы управления:
		// сокращенный вариант без ползунка.
		map2.addControl(new GSmallMapControl());

		// переключение типа карты (топографическая/спутник/гибрид)
		map2.addControl(new GMapTypeControl());

		// Удаляем тип карты "Спутник", оставляем карта и гибридная
		map2.removeMapType(G_SATELLITE_MAP);

		// Тип карты - обычная
		map2.setMapType(G_NORMAL_MAP);

		// устанавливаем центр карты и начальный масштаб.
		// Масштаб зависит от полученной точности расположения
		//map.setCenter(new GLatLng(lat, lng), 5);
		
		// устанавливаем центр карты и начальный масштаб.
		// Масштаб зависит от полученной точности расположения
		map2.setCenter(new GLatLng(lat, lng), Accuracy + 3);
		
		marker2 = new GMarker(new GLatLng(lat, lng), opts);
		map2.addOverlay(marker2);
		
		// Есть точная информация, выедим третью карту
		if (Accuracy > 5)
		{
			// Включаем 3-ю карту
			document.getElementById('map3').style.display = '';
			
			// создаем объект карты
			var map3 = new GMap2(document.getElementById('map3'));

			// Добавляем на карту элементы управления:
			// сокращенный вариант без ползунка.
			map3.addControl(new GSmallMapControl());

			// переключение типа карты (топографическая/спутник/гибрид)
			map3.addControl(new GMapTypeControl());

			// Удаляем тип карты "Спутник", оставляем карта и гибридная
			map3.removeMapType(G_SATELLITE_MAP);

			// устанавливаем центр карты и начальный масштаб.
			// Масштаб зависит от полученной точности расположения
			map3.setCenter(new GLatLng(lat, lng), Accuracy + 10);
			
			// Тип карты - обычная
			map3.setMapType(G_HYBRID_MAP);

			marker3 = new GMarker(new GLatLng(lat, lng), opts);
			map3.addOverlay(marker3);
		}
		

	}

}
