function AtMap (placeholder)
{
	this.morozMarker_ = null;
	this.map_ = new YMaps.Map(document.getElementById(placeholder));
    var zoom = new YMaps.Zoom();
    var typeControl = new YMaps.TypeControl();
    //Добавление элемента управления на карту
    this.map_.addControl(zoom);
    this.map_.addControl(typeControl);
    
    this.map_.setCenter(new YMaps.GeoPoint(37.64, 55.76), 10);
}

AtMap.prototype.ConvertToXml = function (responce)
{
	var xmlResult;
    if (typeof responce == 'string')
    {
        // если это IE то создаем ActiveX объект и приобразуем строковую переменную в XML
        data = new ActiveXObject('Microsoft.XMLDOM');
        data.async = false;
        data.loadXML(xmlResult);
    }
    else
    {
    	xmlResult = responce;
    }
    
    return xmlResult;
};

AtMap.prototype.CenterOnDedMoroz = function ()
{
	var this_ = this;
	$.get (
		'WhereIsDedMoroz.php',     
		{},                          
		function (responce)
		{	        
			var xmlCoordinats = $("point", this_.ConvertToXml (responce))[0];
			var latitude = $("lat", xmlCoordinats).text ();
			var longitude = $("lng", xmlCoordinats).text ();
			var point = new YMaps.GeoPoint(longitude, latitude);
			this_.map_.setCenter(point, 10);					
		},'xml');
};

AtMap.prototype.UpdateOverlays = function ()
{
	var this_ = this;
	
	var OnError = function(event, request, settings)
	{
		//Just try to reconnect
		window.setTimeout (function () {this_.UpdateOverlays ();}, 300000);
	};
	
	$.ajax ({
		type: "GET",
		url: 'WhereIsDedMoroz.php',
		dataType: "xml",
		error: OnError,
		success: function (responce)
		{	        
			var morozXmlCoordinats = $("point", this_.ConvertToXml (responce))[0];
			var morozLatitude = $("lat", morozXmlCoordinats).text ();
			var morozLongitude = $("lng", morozXmlCoordinats).text ();
			
			var morozPoint = new YMaps.GeoPoint(morozLongitude, morozLatitude);
			
			var s = new YMaps.Style();
			s.iconStyle = new YMaps.IconStyle();
			s.iconStyle.offset = new YMaps.Point(-22, -46);
			s.iconStyle.href = "http://dedmoroz.autotracker.ru/images/Ded.png";
			s.iconStyle.size = new YMaps.Point(82, 46);

			var morozMarker = new YMaps.Placemark(morozPoint, {style: s, hasBalloon: false});
			this_.map_.addOverlay(morozMarker);

			$.ajax ({
				type: "GET",
				dataType: "xml",
				url: 'WhatHasDedMorozBeenUpTo.php',
				error: OnError,
				success: function (responce)
				{
					this_.map_.removeAllOverlays ();
					this_.map_.addOverlay(morozMarker);
					$("point", this_.ConvertToXml (responce)).each(function()
					{
						var xmlCoordinats = $(this);
						var eventTime = $("date", xmlCoordinats).text ();
						var latitude = $("lat", xmlCoordinats).text ();
						var longitude = $("lng", xmlCoordinats).text ();
						var imagePath = $("icon", xmlCoordinats).text ();
						
						var point = new YMaps.GeoPoint(longitude, latitude);
						
						var s = new YMaps.Style();
						s.iconStyle = new YMaps.IconStyle();
						s.iconStyle.href = 'http://dedmoroz.autotracker.ru' + imagePath;
			
						var placeMarker = new YMaps.Placemark(point, {style: s, hasBalloon: false});
						this_.map_.addOverlay(placeMarker);
					});
					
					//var ml = new YMaps.YMapsML("http://dedmoroz1.autotracker.ru/ShowMeGraphicObjects.php");
					//this_.map_.addOverlay(ml);
					//YMaps.Events.observe(ml, ml.Events.Fault, function (ml, error) {
		            //    alert('Ошибка: ' + error);
		            //});
					
					window.setTimeout (function () {this_.UpdateOverlays ();}, 300000);
				}});
		}});
	
};

function CreateMap (placeholder)
{
	var map = new AtMap (placeholder);
	map.UpdateOverlays ();
	map.CenterOnDedMoroz ();
}
