function MapsSystemTrack(advMaps) 
{
	var obj = new Object();

	obj.MovingTrack = false;
	obj.TrackX = 0; 
	obj.TrackY = 0; 
	obj.TrackTmpX = 0;
	obj.TrackTmpY = 0;
	obj.MouseOldX = 0;
	obj.MouseOldY = 0;

	//---------------------------------------------
	obj.TrackDown = function() 
	//---------------------------------------------
	{
		obj.MouseOldX = advMaps.MouseX; 
		obj.MouseOldY = advMaps.MouseY;	
		obj.MovingTrack = true;
	}

	//==============
	
	//---------------------------------------------
	obj.ScrollTrackX = function(s) // Ustaw Scrolla na odpowiednim miejscu
	//---------------------------------------------
	{
		obj.TrackX = parseInt(Math.sqrt(((s-advMaps.MapsScaleMin)*(advMaps.IdDivScrollLength*advMaps.IdDivScrollLength))/(advMaps.MapsScaleMax-advMaps.MapsScaleMin)));
		advMaps.xLeft('', advMaps.IdDivScrollBarTrack, obj.TrackX);
	}

	//---------------------------------------------
	obj.ScrollTrackY = function(s) // Ustaw Scrolla na odpowiednim miejscu
	//---------------------------------------------
	{
		obj.TrackY = parseInt(Math.sqrt(((s-advMaps.MapsScaleMin)*(advMaps.IdDivScrollLength*advMaps.IdDivScrollLength))/(advMaps.MapsScaleMax-advMaps.MapsScaleMin)));
		advMaps.xTop('', advMaps.IdDivScrollBarTrack, obj.TrackY);
	}

	//==============

	//---------------------------------------------
	obj.TrackMoveX = function() 
	//---------------------------------------------
	{
		if(obj.MovingTrack)
		{
			obj.TrackTmpX = parseInt(obj.TrackX + (advMaps.MouseX-obj.MouseOldX));
			if(obj.TrackTmpX < 0 ) obj.TrackTmpX = 0; else if(obj.TrackTmpX > advMaps.IdDivScrollLength) obj.TrackTmpX = advMaps.IdDivScrollLength;
			advMaps.xLeft('', advMaps.IdDivScrollBarTrack, obj.TrackTmpX);
			
			var s = parseInt((advMaps.MapsScaleMax-advMaps.MapsScaleMin)*obj.TrackTmpX*obj.TrackTmpX/(advMaps.IdDivScrollLength*advMaps.IdDivScrollLength)+advMaps.MapsScaleMin);
			s = advMaps.MapsScaleRound*Math.round(s/advMaps.MapsScaleRound);
			advMaps.ObjFormScale.value = s;
			advMaps.ObjFormScale.focus();
		}
	}

	//---------------------------------------------
	obj.TrackMoveY = function() 
	//---------------------------------------------
	{
		if(obj.MovingTrack)
		{
			obj.TrackTmpY = parseInt(obj.TrackY + (advMaps.MouseY-obj.MouseOldY));
			if(obj.TrackTmpY < 0 ) obj.TrackTmpY = 0; else if(obj.TrackTmpY > advMaps.IdDivScrollLength) obj.TrackTmpY = advMaps.IdDivScrollLength;
			advMaps.xTop('', advMaps.IdDivScrollBarTrack, obj.TrackTmpY);
			
			var s = parseInt((advMaps.MapsScaleMax-advMaps.MapsScaleMin)*obj.TrackTmpY*obj.TrackTmpY/(advMaps.IdDivScrollLength*advMaps.IdDivScrollLength)+advMaps.MapsScaleMin);
			s = advMaps.MapsScaleRound*Math.round(s/advMaps.MapsScaleRound);
			advMaps.ObjFormScale.value = s;
		}
	}

	//==============

	//---------------------------------------------
	obj.TrackMoveUpX = function() 
	//---------------------------------------------
	{
		if(obj.MovingTrack)
		{
			obj.MovingTrack = false;
			obj.MouseOldX = advMaps.MouseX;
			obj.MouseOldY = advMaps.MouseY;
			obj.TrackX = obj.TrackTmpX;
			var s = parseInt((advMaps.MapsScaleMax-advMaps.MapsScaleMin)*obj.TrackTmpX*obj.TrackTmpX/(advMaps.IdDivScrollLength*advMaps.IdDivScrollLength)+advMaps.MapsScaleMin);
			s = advMaps.MapsScaleRound*Math.round(s/advMaps.MapsScaleRound)
			advMaps.MapsScaleChange(s);
		}
	}


	//---------------------------------------------
	obj.TrackMoveUpY = function() 
	//---------------------------------------------
	{
		if(obj.MovingTrack)
		{
			obj.MovingTrack = false;
			obj.MouseOldX = advMaps.MouseX;
			obj.MouseOldY = advMaps.MouseY;
			obj.TrackY = obj.TrackTmpY;
			var s = parseInt((advMaps.MapsScaleMax-advMaps.MapsScaleMin)*obj.TrackTmpY*obj.TrackTmpY/(advMaps.IdDivScrollLength*advMaps.IdDivScrollLength)+advMaps.MapsScaleMin);
			s = advMaps.MapsScaleRound*Math.round(s/advMaps.MapsScaleRound)
			advMaps.MapsScaleChange(s);
		}
	}

	return obj;
}