var StaticObject = function()
{
//privat
	var statics;
	var navigateEdit;
	var navigateButton;
	var map;
	var dropDown;
	var nameEdit;
	var saveButton;
	var deleteButton;

	var InitializeDropDown = function(statics)
	{
		dropDown.empty();
		dropDown.append("<option />");
		for (var i = 0; i < statics.length; i++)
			dropDown.append("<option value=" + statics[i].id + ">" + statics[i].name + "</option>");
	}

	var Navigate = function()
	{
		map.NavigateToLocation(navigateEdit.val());
	}

	var ShowObject = function()
	{
		map.ShowStaticObjectAtCenter(dropDown.val());
	}

	var EditName = function()
	{
		nameEdit[0].select()
	}

	var Save = function()
	{
		var region = map.GetEditRegion();
		if (region == null)
		{
			alert("Please draw a shape for the object on map");
			return;
		}

		var name = nameEdit.val();
		if ((name == "") || (name == "Input the name of object here"))
		{
			alert("Enter name of object");
			return;
		}

		var id = "new";
		for (var i = 0; i < statics.length; i++)
			if (name == statics[i].name)
				if (confirm("Are you sure that you want to rewrite existing object named: \"" + name + "\"?"))
					id = statics[i].id;
				else
					return;

		jQuery.ajax(
			{
				type: "POST",
				url: "index.php",
				data: "AJAX=1&do=map&type=" + (id == "new" ? "add" : "update") + "&id=" + id + "&name=" + name + "&region=" + region,
				dataType: "json",
				success: function(response, status)
				{
					if (response.status == "OK")
					{
						statics = response.statics;
						map.SetStaticObjectCoordinates(statics);
						map.RegionToObject(response.id);
						InitializeDropDown(statics);
						alert("Operation successful");
					}
					else
						alert("Error");
				}
			});
	}

	var Delete = function()
	{
		var id = dropDown.val();
		if (id != "")
		{
			jQuery.ajax(
			{
				type: "POST",
				url: "index.php",
				data: "AJAX=1&do=map&type=delete&id=" + id,
				dataType: "json",
				success: function(response, status)
				{
					if (response.status == "OK")
					{
						statics = response.statics;
						map.SetStaticObjectCoordinates(statics);
						map.RemoveStaticObject(id);
						InitializeDropDown(statics);
						alert("Operation successful");
					}
					else
						alert("Error");
				}
			});
		}
		else
			alert("Please select del object");
	}

//public
return {
	Initialize: function()
	{
		navigateEdit = "#navigateEdit";
		navigateButton = "#navigateButton";
		map = "staticMap";
		dropDown = "#dropDown";
		nameEdit = "#nameEdit";
		saveButton = "#saveButton";
		deleteButton = "#deleteButton";

		jQuery("#mainTable").css({width: "800px", padding: "0 0"});
		map = new Maps(map, 
		   {
			   staticObjectCoordinates: statics,
			   editable: true
		   });

		navigateEdit = jQuery(navigateEdit);
		navigateButton = jQuery(navigateButton);
		dropDown = jQuery(dropDown);
		nameEdit = jQuery(nameEdit);
		saveButton = jQuery(saveButton);
		deleteButton = jQuery(deleteButton);
		navigateButton.click(Navigate);
		dropDown.change(ShowObject);
		nameEdit.focus(EditName);
		saveButton.click(Save);
		deleteButton.click(Delete);

		InitializeDropDown(statics);
	},

	SetStatics: function(value)
	{
		statics = value;
	}
};
}();