/*
// 2007-09-14
// Copyright (c) Art. Lebedev | http://www.artlebedev.ru/
// Author - Vladimir Tokmakov
*/

Metro = {
	hoCity: []

	, Object: function( oParams ){
		this.aoBranch = [];
		this.create( oParams );
		return this;
	}

	, Branch: function( oBranch, oParent, oTop ){
		this.create( oBranch, oParent, oTop );
		return this;
	}

	, Station: function( oStation, oParent, oTop ){
		this.create( oStation, oParent, oTop );
		return this;
	}

};

Metro.Object.prototype.create = function( oParams ){
	var oThis = this;
	oThis.oParams = oParams;

	//oThis.oDrag = new Overflow.Drag.Object( oParams.eMetro );

	Common.Dom.setStyle( oParams.eMetro, 'float: left; position: relative; left: 50%; margin-left: -' + Metro.hoCity[oParams.sCity_ID].iWidth / 2 + 'px;' );
	oThis.eDamp = document.createElement( 'ins' );
	oParams.eMetro.appendChild( oThis.eDamp );
	Common.Dom.setStyle( oThis.eDamp, 'position: absolute; z-index: 1; left: 0; top: 45px; width: ' + Metro.hoCity[oParams.sCity_ID].iWidth + 'px; height: ' + ( Metro.hoCity[oParams.sCity_ID].iHeight - 45 ) + 'px; background: #ffffff; opacity: 0.5;' );
	oThis.eDamp.style.filter = 'progid:DXImageTransform.Microsoft.Alpha(opacity=50)';

	try{
		oParams.eMap = document.createElement( '<map name="map_metro_' + oParams.sCity_ID + '"></map>' );
	}catch(e){
		oParams.eMap = document.createElement( 'map' );
		oParams.eMap.name = 'map_metro_' + oParams.sCity_ID;
	}

	oThis.oSelected_branches = new Map.Selected( oParams.eSelected_branches, oParams.sSelected_branches_input_name );
	oThis.oSelected_stations = new Map.Selected( oParams.eSelected_stations, oParams.sSelected_stations_input_name );

	for( var i = 0 ; i < Metro.hoCity[oParams.sCity_ID].aoBranch.length ; i++ ){
		new Metro.Branch( Metro.hoCity[oParams.sCity_ID].aoBranch[i], oThis );
	}
	oThis.toggle();

	oParams.eMetro.appendChild( oParams.eMap );

	try{
		oThis.eImage = document.createElement( '<img src="' + oParams.sTransparent_URL + '" usemap="#' + oParams.eMap.name + '" />' );
	}catch(e){
		oThis.eImage = document.createElement( 'img' );
		oThis.eImage.src = oParams.sTransparent_URL;
		oThis.eImage.setAttribute( 'usemap', '#' + oParams.eMap.name );
	}
	oParams.eMetro.appendChild( oThis.eImage );
	Common.Dom.setStyle( oThis.eImage, 'position: absolute; z-index: 3; left: 0; top: 0; width: ' + Metro.hoCity[oParams.sCity_ID].iWidth + 'px; height: ' + Metro.hoCity[oParams.sCity_ID].iHeight + 'px;' );
	if( oThis.oDrag && oThis.oDrag.can() ){
		oThis.eImage.style.cursor = 'move';
	}
}

Metro.Object.prototype.toggle = function(){
	this.eDamp.style.display = this.oSelected_branches.iCount || this.oSelected_stations.iCount ? 'block' : 'none';
	if( this.oSelected_branches.iCount + this.oSelected_stations.iCount == 0 ){
		Common.Class.add( this.oParams.eSelected_branches.parentNode.parentNode, 'empty' );
	}else{
		Common.Class.remove( this.oParams.eSelected_branches.parentNode.parentNode, 'empty' );
	}
}

Metro.Branch.prototype.create = function( oBranch, oParent, oTop ){
	var oThis = this;
	oThis.oData = oBranch;
	oThis.oParent = oParent;
	oThis.oTop = oTop ? oTop : oParent;

	oThis.bSelected = false;

	var oCoords = Map.get_coords( oBranch.sCoords );
	if( oCoords ){
		oThis.eArea = document.createElement( 'area' );
		oThis.eArea.setAttribute( 'shape', 'poly' );
		oThis.eArea.setAttribute( 'href', '#' );
		oThis.eArea.setAttribute( 'coords', oBranch.sCoords );
		oThis.eArea.title = oBranch.sName;
		oThis.oTop.oParams.eMap.appendChild( oThis.eArea );
		Common.Event.add( oThis.eArea, 'mouseover', function(){ oThis.oTop.eImage.style.cursor = 'hand'; });
		Common.Event.add( oThis.eArea, 'mouseout', function(){ oThis.oTop.eImage.style.cursor = oThis.oTop.oDrag && oThis.oTop.oDrag.can() ? 'move' : 'default'; });

		oCoords.iWidth++;
		oCoords.iHeight++;
		oThis.eBranch = Map.append_area( oThis.oTop.oParams.eMetro, oThis.oData.sName, oCoords, 2, oThis.oTop.oParams.sParts_URL, oThis.oData.sBackground_position );
		oThis.eBranch.style.display = 'none';

		Common.Event.add( oThis.eArea, 'click', function( oEvent ){
			oThis.pre_toggle();
			Common.Event.cancel( oEvent );
		} );
	}

	oCoords = Map.get_coords( oBranch.sCoords_label );
	if( oCoords ){
		oThis.eLabel = Map.append_area( oThis.oTop.oParams.eMetro, oThis.oData.sName, oCoords, 4, oThis.oTop.oParams.sTransparent_URL, '-' + oCoords.iLeft + 'px -' + oCoords.iTop + 'px' );

		Common.Event.add( oThis.eLabel, 'click', function( oEvent ){
			oThis.pre_toggle();
			Common.Event.cancel( oEvent );
		} );
	}

	oThis.aoStation = [];
	oThis.iSelected = 0;
	oThis.iCount = 999;
	for( var i = 0, iCount = 0 ; i < oBranch.aoStation.length ; i++ ){
		oThis.aoStation[oThis.aoStation.length] = new Metro.Station( oBranch.aoStation[i], oThis, oThis.oTop );
		iCount++;
	}
	oThis.iCount = iCount;

	if( oThis.oTop.oParams.asSelected_branches.indexOf( oThis.oData.sID ) >= 0 ){
		oThis.pre_toggle();
	}
}

Metro.Branch.prototype.pre_toggle = function(){
	this.bSelected = !this.bSelected;
	this.iSelected = this.bSelected ? this.iCount : 0;
	this.toggle();
	for( var i = 0 ; i < this.aoStation.length ; i++ ){
		this.aoStation[i].toggle( this.bSelected );
	}
}

Metro.Branch.prototype.toggle = function(){
	this.bSelected = this.iSelected == this.iCount;
	if( this.bSelected ){
		this.eBranch.style.display = 'block';
		this.eLabel.style.backgroundImage = 'url(' + this.oTop.oParams.sParts_URL + ')';
		for( var i = 0 ; i < this.aoStation.length ; i++ ){
			this.oTop.oSelected_stations.remove( this.aoStation[i] );
		}
		this.oTop.oSelected_branches.append( this );
	}else{
		this.eBranch.style.display = 'none';
		this.eLabel.style.backgroundImage = 'url(' + this.oTop.oParams.sTransparent_URL + ')';
		if( this.iSelected ){
			for( var i = 0 ; i < this.aoStation.length ; i++ ){
				if( this.aoStation[i].bSelected ){
					this.oTop.oSelected_stations.append( this.aoStation[i] );
				}
			}
		}
		this.oTop.oSelected_branches.remove( this );
	}
}

Metro.Station.prototype.create = function( oStation, oParent, oTop ){
	var oThis = this;
	oThis.oData = oStation;
	oThis.oParent = oParent;
	oThis.oTop = oTop ? oTop : oParent;

	oThis.bSelected = false;

	var oCoords = Map.get_coords( oStation.sCoords );
	if( oCoords ){
		oThis.ePoint = Map.append_area( oThis.oTop.oParams.eMetro, oThis.oData.sName, oCoords, 4, oThis.oTop.oParams.sTransparent_URL, '-' + oCoords.iLeft + 'px -' + oCoords.iTop + 'px' );

		Common.Event.add( oThis.ePoint, 'click', function(){
			oThis.pre_toggle();
		} );
	}

	oCoords = Map.get_coords( oStation.sCoords_label );
	if( oCoords ){
		oThis.eLabel = Map.append_area( oThis.oTop.oParams.eMetro, oThis.oData.sName, oCoords, 4, oThis.oTop.oParams.sTransparent_URL, '-' + oCoords.iLeft + 'px -' + oCoords.iTop + 'px' );

		Common.Event.add( oThis.eLabel, 'click', function(){
			oThis.pre_toggle();
		} );
	}
	if( oThis.oTop.oParams.asSelected_stations.indexOf( oThis.oData.sID ) >= 0 ){
		oThis.pre_toggle();
	}
}

Metro.Station.prototype.pre_toggle = function(){
	this.toggle();
}

Metro.Station.prototype.toggle = function( bSelected ){
	if( bSelected || bSelected === false ){
		this.bSelected = bSelected;
	}else{
		this.bSelected = !this.bSelected;
		this.oParent.iSelected = this.bSelected ? this.oParent.iSelected + 1 : this.oParent.iSelected - 1;
		if( this.bSelected ){
			this.oTop.oSelected_stations.append( this );
		}else{
			this.oTop.oSelected_stations.remove( this );
		}
		this.oParent.toggle();
	}
	this.ePoint.style.backgroundImage = 'url(' + ( this.bSelected ? this.oTop.oParams.sParts_URL : this.oTop.oParams.sTransparent_URL ) + ')';
	this.eLabel.style.backgroundImage = this.ePoint.style.backgroundImage;
	this.oTop.toggle();
}


Metro.hoCity['msk'] = {
iWidth: 610
, iHeight: 840
, aoBranch: [
{ sID: '21', sName: 'Бутовская линия', sCoords: '202,671,239,708,294,708,297,711,297,723,289,723,288,716,235,716,197,678,201,675,202,671', sCoords_label: '57,829,114,838', sColor: '#b2dae7', sBackground_position: '-610px -551px', aoStation: [
	  { sID: '923', sName: 'Новоясеневская (Бутовская) *', sCoords: '190,666,199,675', sCoords_label: '115,665,187,673' }
	, { sID: '191', sName: 'Улица Старокачаловская', sCoords: '289,708,298,717', sCoords_label: '301,709,409,717' }
	, { sID: '192', sName: 'Улица Скобелевская', sCoords: '289,724,298,733', sCoords_label: '300,725,386,733' }
	, { sID: '193', sName: 'Бульвар Адмирала Ушакова', sCoords: '289,734,298,743', sCoords_label: '300,735,394,743' }
	, { sID: '194', sName: 'Улица Горчакова', sCoords: '289,744,298,753', sCoords_label: '300,745,374,753' }
	, { sID: '195', sName: 'Бунинская Аллея', sCoords: '289,754,298,763', sCoords_label: '300,755,373,762' }
] }
, { sID: '11', sName: 'Каховская линия', sCoords: '385,517,387,522,387,527,321,593,312,593,311,591,385,517', sCoords_label: '444,803,503,812', sColor: '#29b1a6', sBackground_position: '-885px -549px', aoStation: [
	  { sID: '25', sName: 'Каширская (Каховская)', sCoords: '389,512,398,521', sCoords_label: '401,513,448,520' }
	, { sID: '27', sName: 'Варшавская', sCoords: '364,536,373,545', sCoords_label: '311,537,363,544' }
	, { sID: '26', sName: 'Каховская', sCoords: '301,593,310,602', sCoords_label: '313,594,360,601' }
] }
, { sID: '10', sName: 'Люблинская линия', sCoords: '264,88,272,88,272,106,323,157,323,217,304,236,304,254,346,296,369,297,400,328,429,329,463,363,463,531,414,580,414,660,409,665,409,667,401,667,401,661,406,656,406,577,455,527,455,367,424,336,396,336,364,304,342,304,296,258,296,233,315,214,315,161,264,110,264,88', sCoords_label: '444,792,509,801', sColor: '#8cce3a', sBackground_position: '-1444px -279px', aoStation: [
	  { sID: '921', sName: 'Юбилейная *', sCoords: '264,59,273,68', sCoords_label: '216,58,263,67' }
	, { sID: '920', sName: 'Селигерская *', sCoords: '264,69,273,78', sCoords_label: '210,70,263,77' }
	, { sID: '919', sName: 'Лихоборы *', sCoords: '264,79,273,88', sCoords_label: '220,80,263,87' }
	, { sID: '918', sName: 'Петровско-Разумовская (Люблинская) *', sCoords: '289,129,298,138', sCoords_label: '299,130,355,143' }
	, { sID: '917', sName: 'Останкино *', sCoords: '315,178,324,187', sCoords_label: '325,179,370,186' }
	, { sID: '916', sName: 'Марьина Роща *', sCoords: '315,188,324,197', sCoords_label: '325,189,386,197' }
	, { sID: '915', sName: 'Достоевская *', sCoords: '315,210,324,219', sCoords_label: '326,211,381,218' }
	, { sID: '914', sName: 'Трубная', sCoords: '296,242,305,251', sCoords_label: '307,243,342,250' }
	, { sID: '913', sName: 'Сретенский бульвар *', sCoords: '362,296,371,305', sCoords_label: '374,297,458,304' }
	, { sID: '151', sName: 'Чкаловская', sCoords: '422,328,431,337', sCoords_label: '434,329,485,336' }
	, { sID: '152', sName: 'Римская', sCoords: '455,373,464,382', sCoords_label: '467,374,504,381' }
	, { sID: '153', sName: 'Крестьянская застава', sCoords: '455,438,464,447', sCoords_label: '467,439,561,446' }
	, { sID: '161', sName: 'Дубровка', sCoords: '406,574,415,583', sCoords_label: '416,575,458,583' }
	, { sID: '154', sName: 'Кожуховская', sCoords: '406,584,415,593', sCoords_label: '416,585,474,592' }
	, { sID: '155', sName: 'Печатники', sCoords: '406,594,415,603', sCoords_label: '416,595,460,602' }
	, { sID: '156', sName: 'Волжская', sCoords: '406,604,415,613', sCoords_label: '416,605,457,612' }
	, { sID: '157', sName: 'Люблино', sCoords: '406,614,415,623', sCoords_label: '416,615,453,622' }
	, { sID: '158', sName: 'Братиславская', sCoords: '406,624,415,633', sCoords_label: '416,625,481,632' }
	, { sID: '159', sName: 'Марьино', sCoords: '406,634,415,643', sCoords_label: '416,635,453,642' }
	, { sID: '904', sName: 'Борисово *', sCoords: '406,644,415,653', sCoords_label: '416,645,457,652' }
	, { sID: '905', sName: 'Шипиловская *', sCoords: '406,654,415,663', sCoords_label: '416,655,473,662' }
	, { sID: '922', sName: 'Зябликово *', sCoords: '401,670,410,679', sCoords_label: '413,671,458,678' }
] }
, { sID: '9', sName: 'Серпуховско-Тимирязевская линия', sCoords: '315,98,323,98,323,109,272,160,272,214,292,234,292,257,242,308,242,415,297,471,297,693,289,693,289,474,234,419,234,305,284,254,284,237,264,216,264,156,315,105,315,98', sCoords_label: '291,814,426,823', sColor: '#a2a5b4', sBackground_position: '-1646px -409px', aoStation: [
	  { sID: '129', sName: 'Алтуфьево', sCoords: '315,59,324,68', sCoords_label: '325,60,370,67' }
	, { sID: '130', sName: 'Бибирево', sCoords: '315,69,324,78', sCoords_label: '325,70,365,77' }
	, { sID: '131', sName: 'Отрадное', sCoords: '315,79,324,88', sCoords_label: '325,80,365,88' }
	, { sID: '132', sName: 'Владыкино', sCoords: '315,89,324,98', sCoords_label: '325,90,373,98' }
	, { sID: '133', sName: 'Петровско-Разумовская (Серпуховско-Тимирязевская)', sCoords: '289,129,298,138', sCoords_label: '299,130,355,143' }
	, { sID: '134', sName: 'Тимирязевская', sCoords: '264,168,273,177', sCoords_label: '198,169,263,176' }
	, { sID: '135', sName: 'Дмитровская', sCoords: '264,178,273,187', sCoords_label: '205,179,263,187' }
	, { sID: '136', sName: 'Савеловская', sCoords: '264,189,273,198', sCoords_label: '208,189,263,196' }
	, { sID: '137', sName: 'Менделеевская', sCoords: '264,211,273,220', sCoords_label: '197,212,261,220' }
	, { sID: '138', sName: 'Цветной бульвар', sCoords: '284,242,293,251', sCoords_label: '246,243,281,256' }
	, { sID: '139', sName: 'Чеховская', sCoords: '234,302,243,311', sCoords_label: '246,303,292,310' }
	, { sID: '140', sName: 'Боровицкая', sCoords: '240,418,249,427', sCoords_label: '252,419,304,427' }
	, { sID: '141', sName: 'Полянка', sCoords: '289,468,298,477', sCoords_label: '299,469,335,476' }
	, { sID: '142', sName: 'Серпуховская', sCoords: '289,498,298,507', sCoords_label: '301,499,362,506' }
	, { sID: '143', sName: 'Тульская', sCoords: '289,547,298,556', sCoords_label: '249,548,288,555' }
	, { sID: '144', sName: 'Нагатинская', sCoords: '289,557,298,566', sCoords_label: '234,558,288,565' }
	, { sID: '145', sName: 'Нагорная', sCoords: '289,567,298,576', sCoords_label: '248,568,288,575' }
	, { sID: '146', sName: 'Нахимовский проспект', sCoords: '289,577,298,586', sCoords_label: '212,578,288,585' }
	, { sID: '147', sName: 'Севастопольская', sCoords: '289,593,298,602', sCoords_label: '213,594,286,601' }
	, { sID: '148', sName: 'Чертановская', sCoords: '289,624,298,633', sCoords_label: '230,625,288,632' }
	, { sID: '149', sName: 'Южная', sCoords: '289,634,298,643', sCoords_label: '259,635,288,642' }
	, { sID: '150', sName: 'Пражская', sCoords: '289,644,298,653', sCoords_label: '246,645,288,652' }
	, { sID: '162', sName: 'Улица Академика Янгеля', sCoords: '289,654,298,663', sCoords_label: '234,655,288,662' }
	, { sID: '163', sName: 'Аннино', sCoords: '289,664,298,673', sCoords_label: '257,665,288,672' }
	, { sID: '164', sName: 'Бульвар Дмитрия Донского', sCoords: '289,696,298,705', sCoords_label: '300,691,354,705' }
] }
, { sID: '8', sName: 'Калининская линия', sCoords: '506,312,507,316,512,318,424,406,343,406,343,398,417,398,422,396,506,312', sCoords_label: '291,803,359,812', sColor: '#ffdd03', sBackground_position: '-713px -551px', aoStation: [
	  { sID: '912', sName: 'Новокосино *', sCoords: '508,268,517,277', sCoords_label: '518,269,569,276' }
	, { sID: '79', sName: 'Новогиреево', sCoords: '508,278,517,287', sCoords_label: '518,279,571,286' }
	, { sID: '80', sName: 'Перово', sCoords: '508,288,517,297', sCoords_label: '518,289,548,296' }
	, { sID: '81', sName: 'Шоссе Энтузиастов', sCoords: '508,298,517,307', sCoords_label: '518,299,598,306' }
	, { sID: '82', sName: 'Авиамоторная', sCoords: '508,308,517,317', sCoords_label: '518,309,579,316' }
	, { sID: '83', sName: 'Площадь Ильича', sCoords: '455,361,464,370', sCoords_label: '467,362,538,369' }
	, { sID: '84', sName: 'Марксистская', sCoords: '417,396,426,405', sCoords_label: '429,397,490,404' }
	, { sID: '85', sName: 'Третьяковская (Калининская)', sCoords: '321,398,330,407', sCoords_label: '318,388,381,395' }
] }
, { sID: '7', sName: 'Таганско-Краснопресненская линия', sCoords: '175,217,183,217,183,257,228,302,313,302,497,486,497,623,489,623,489,490,309,310,224,310,175,261,175,217', sCoords_label: '291,792,429,801', sColor: '#92007b', sBackground_position: '-1524px -0px', aoStation: [
	  { sID: '128', sName: 'Планерная', sCoords: '175,138,184,147', sCoords_label: '130,139,174,146' }
	, { sID: '127', sName: 'Сходненская', sCoords: '175,148,184,157', sCoords_label: '117,149,174,157' }
	, { sID: '126', sName: 'Тушинская', sCoords: '175,158,184,167', sCoords_label: '128,159,174,166' }
	, { sID: '125', sName: 'Щукинская', sCoords: '175,168,184,177', sCoords_label: '126,169,174,177' }
	, { sID: '124', sName: 'Октябрьское поле', sCoords: '175,178,184,187', sCoords_label: '99,179,174,186' }
	, { sID: '123', sName: 'Полежаевская', sCoords: '175,188,184,197', sCoords_label: '114,189,174,196' }
	, { sID: '122', sName: 'Беговая', sCoords: '175,198,184,207', sCoords_label: '141,199,174,206' }
	, { sID: '121', sName: 'Улица 1905 года', sCoords: '175,208,184,217', sCoords_label: '107,209,174,217' }
	, { sID: '120', sName: 'Баррикадная', sCoords: '178,259,187,268', sCoords_label: '118,259,175,267' }
	, { sID: '119', sName: 'Пушкинская', sCoords: '222,302,231,311', sCoords_label: '167,303,219,310' }
	, { sID: '118', sName: 'Кузнецкий мост', sCoords: '316,311,325,320', sCoords_label: '246,312,314,320' }
	, { sID: '117', sName: 'Китай-город (Таганско-Краснопресненская)', sCoords: '353,348,362,357', sCoords_label: '365,349,418,357' }
	, { sID: '116', sName: 'Таганская (радиальная)', sCoords: '413,408,422,417', sCoords_label: '425,410,469,417' }
	, { sID: '115', sName: 'Пролетарская', sCoords: '455,450,464,459', sCoords_label: '467,451,526,458' }
	, { sID: '114', sName: 'Волгоградский проспект', sCoords: '489,624,498,633', sCoords_label: '499,625,582,633' }
	, { sID: '113', sName: 'Текстильщики', sCoords: '489,634,498,643', sCoords_label: '499,635,560,643' }
	, { sID: '112', sName: 'Кузьминки', sCoords: '489,644,498,653', sCoords_label: '499,645,545,652' }
	, { sID: '111', sName: 'Рязанский проспект', sCoords: '489,654,498,663', sCoords_label: '499,655,586,662' }
	, { sID: '110', sName: 'Выхино', sCoords: '489,664,498,673', sCoords_label: '499,665,532,672' }
	, { sID: '911', sName: 'Пронская', sCoords: '489,674,498,683', sCoords_label: '499,675,540,682' }
] }
, { sID: '6', sName: 'Калужско-<wbr></wbr>Рижская линия', sCoords: '389,129,397,129,397,202,360,239,360,373,198,535,198,563,190,563,190,531,352,369,352,236,389,198,389,129', sCoords_label: '178,814,272,823', sColor: '#ff7f00', sBackground_position: '-1234px -279px', aoStation: [
	  { sID: '86', sName: 'Медведково', sCoords: '389,59,398,68', sCoords_label: '399,60,451,68' }
	, { sID: '87', sName: 'Бабушкинская', sCoords: '389,69,398,78', sCoords_label: '399,70,460,77' }
	, { sID: '88', sName: 'Свиблово', sCoords: '389,79,398,88', sCoords_label: '399,80,440,87' }
	, { sID: '89', sName: 'Ботанический сад', sCoords: '389,89,398,98', sCoords_label: '399,90,475,98' }
	, { sID: '90', sName: 'ВДНХ', sCoords: '389,99,398,108', sCoords_label: '399,100,421,108' }
	, { sID: '91', sName: 'Алексеевская', sCoords: '389,109,398,118', sCoords_label: '399,110,456,117' }
	, { sID: '92', sName: 'Рижская', sCoords: '389,120,398,129', sCoords_label: '399,121,436,128' }
	, { sID: '93', sName: 'Проспект Мира (радиальная)', sCoords: '352,232,361,241', sCoords_label: '364,234,426,241' }
	, { sID: '94', sName: 'Сухаревская', sCoords: '352,264,361,273', sCoords_label: '295,265,350,272' }
	, { sID: '95', sName: 'Тургеневская', sCoords: '352,302,361,311', sCoords_label: '364,307,421,314' }
	, { sID: '96', sName: 'Китай-город (Калужско-Рижская)', sCoords: '353,348,362,357', sCoords_label: '365,349,418,357' }
	, { sID: '97', sName: 'Третьяковская (Калужско-Рижская)', sCoords: '321,398,330,407', sCoords_label: '318,388,381,395' }
	, { sID: '98', sName: 'Октябрьская (радиальная)', sCoords: '240,478,249,487', sCoords_label: '182,479,237,486' }
	, { sID: '99', sName: 'Шаболовская', sCoords: '190,564,199,573', sCoords_label: '132,565,189,572' }
	, { sID: '100', sName: 'Ленинский проспект', sCoords: '190,574,199,583', sCoords_label: '127,575,189,582' }
	, { sID: '101', sName: 'Академическая', sCoords: '190,584,199,593', sCoords_label: '123,585,189,593' }
	, { sID: '102', sName: 'Профсоюзная', sCoords: '190,594,199,603', sCoords_label: '130,595,188,602' }
	, { sID: '103', sName: 'Новые Черемушки', sCoords: '190,604,199,613', sCoords_label: '117,605,189,612' }
	, { sID: '104', sName: 'Калужская', sCoords: '190,614,199,623', sCoords_label: '142,615,189,622' }
	, { sID: '105', sName: 'Беляево', sCoords: '190,624,199,633', sCoords_label: '155,625,189,632' }
	, { sID: '106', sName: 'Коньково', sCoords: '190,634,199,643', sCoords_label: '148,635,189,642' }
	, { sID: '107', sName: 'Теплый Стан', sCoords: '190,644,199,653', sCoords_label: '138,645,189,652' }
	, { sID: '108', sName: 'Ясенево', sCoords: '190,654,199,663', sCoords_label: '155,655,189,662' }
	, { sID: '109', sName: 'Новоясеневская (Калужско-Рижская)', sCoords: '190,666,199,675', sCoords_label: '115,665,187,673' }
] }
, { sID: '5', sName: 'Кольцевая линия', sCoords: '283,219,306,219,333,224,351,230,352,232,365,238,382,250,401,269,414,288,427,317,426,318,429,326,432,346,431,377,426,399,420,415,401,445,382,464,365,476,347,485,333,490,306,495,297,495,297,488,319,486,340,480,359,471,379,457,394,442,405,427,415,408,420,394,425,368,425,346,420,320,415,306,405,287,394,272,379,257,359,243,345,236,324,229,318,230,313,227,305,226,275,227,269,231,264,229,248,234,233,241,231,245,224,246,209,257,187,281,171,311,164,338,163,368,166,387,171,403,183,427,194,442,209,457,224,468,243,478,257,483,275,487,289,488,289,495,264,492,241,485,224,476,196,455,178,431,168,412,161,392,157,368,158,337,163,315,175,288,185,274,187,268,190,267,207,250,224,238,242,229,256,224,283,219', sCoords_label: '178,803,236,812', sColor: '#800302', sBackground_position: '-1234px -0px', aoStation: [
	  { sID: '67', sName: 'Белорусская (кольцевая)', sCoords: '224,238,233,247', sCoords_label: '166,239,221,246' }
	, { sID: '68', sName: 'Новослободская', sCoords: '264,223,273,232', sCoords_label: '189,224,261,232' }
	, { sID: '910', sName: 'Площадь Суворова *', sCoords: '315,222,324,231', sCoords_label: '327,223,408,230' }
	, { sID: '69', sName: 'Проспект Мира (кольцевая)', sCoords: '352,233,361,242', sCoords_label: '364,235,426,241' }	
	, { sID: '70', sName: 'Комсомольская (кольцевая)', sCoords: '385,258,394,267', sCoords_label: '397,259,465,266' }
	, { sID: '71', sName: 'Курская (кольцевая)', sCoords: '420,316,429,325', sCoords_label: '432,317,468,324' }	
	, { sID: '72', sName: 'Таганская (кольцевая)', sCoords: '413,408,422,417', sCoords_label: '425,410,469,417' }	
	, { sID: '73', sName: 'Павелецкая (кольцевая)', sCoords: '383,450,392,459', sCoords_label: '395,451,445,459' }
	, { sID: '74', sName: 'Добрынинская', sCoords: '289,486,298,495', sCoords_label: '300,487,363,495' }	
	, { sID: '75', sName: 'Октябрьская (кольцевая)', sCoords: '240,478,249,487', sCoords_label: '182,479,237,486' }			
	, { sID: '76', sName: 'Парк культуры (кольцевая)', sCoords: '195,448,204,457', sCoords_label: '131,449,192,456' }
	, { sID: '77', sName: 'Киевская (кольцевая)', sCoords: '157,376,166,385', sCoords_label: '154,367,194,374' }
	, { sID: '78', sName: 'Краснопресненская', sCoords: '186,267,195,276', sCoords_label: '99,270,183,277' }
] }
, { sID: '4', sName: 'Филевская линия', sCoords: '16,245,24,245,24,263,136,375,148,374,130,356,142,356,162,376,194,376,198,378,230,411,229,415,227,416,223,415,192,384,160,384,155,380,129,380,16,267,16,245', sCoords_label: '178,792,236,801', sColor: '#069cd3', sBackground_position: '-1109px -716px', aoStation: [
	  { sID: '66', sName: 'Крылатское', sCoords: '16,227,25,236', sCoords_label: '26,228,76,235' }
	, { sID: '65', sName: 'Молодежная', sCoords: '16,237,25,245', sCoords_label: '26,238,79,246' }
	, { sID: '64', sName: 'Кунцевская (Филевская)', sCoords: '16,261,25,270', sCoords_label: '28,262,79,270' }
	, { sID: '63', sName: 'Пионерская', sCoords: '31,276,40,285', sCoords_label: '40,277,90,284' }
	, { sID: '62', sName: 'Филевский парк', sCoords: '41,286,50,295', sCoords_label: '50,287,118,294' }
	, { sID: '61', sName: 'Багратионовская', sCoords: '51,296,60,305', sCoords_label: '60,297,134,304' }
	, { sID: '60', sName: 'Фили', sCoords: '61,306,70,315', sCoords_label: '70,307,92,314' }
	, { sID: '59', sName: 'Кутузовская', sCoords: '71,316,80,325', sCoords_label: '81,317,136,324' }
	, { sID: '58', sName: 'Студенческая', sCoords: '81,326,90,335', sCoords_label: '91,327,149,335' }
	, { sID: '57', sName: 'Киевская (Филевская)', sCoords: '157,376,166,385', sCoords_label: '154,367,194,374' }
	, { sID: '43', sName: 'Смоленская (Филевская)', sCoords: '191,377,200,386', sCoords_label: '201,378,252,384' }
	, { sID: '44', sName: 'Арбатская (Филевская)', sCoords: '206,392,215,401', sCoords_label: '216,393,267,399' }
	, { sID: '54', sName: 'Александровский сад', sCoords: '222,408,231,417', sCoords_label: '126,409,220,417' }
	, { sID: '188', sName: 'Деловой центр', sCoords: '127,347,136,356', sCoords_label: '137,348,198,355' }
	, { sID: '908', sName: 'Международная', sCoords: '127,337,136,346', sCoords_label: '137,338,206,345' }
] }
, { sID: '3', sName: 'Арбатско-<wbr></wbr>Покровская линия', sCoords: '506,232,507,236,512,238,369,381,312,381,267,426,201,426,159,384,108,384,16,292,16,245,24,245,24,288,111,375,162,375,205,418,263,418,308,373,365,373,506,232', sCoords_label: '57,814,163,823', sColor: '#072889', sBackground_position: '-610px -648px', aoStation: [
	  { sID: '53', sName: 'Щелковская', sCoords: '508,168,517,177', sCoords_label: '518,169,570,177' }
	, { sID: '52', sName: 'Первомайская', sCoords: '508,178,517,187', sCoords_label: '518,179,579,186' }
	, { sID: '51', sName: 'Измайловская', sCoords: '508,188,517,197', sCoords_label: '518,189,580,196' }
	, { sID: '50', sName: 'Партизанская', sCoords: '508,198,517,207', sCoords_label: '518,199,578,206' }
	, { sID: '49', sName: 'Семеновская', sCoords: '508,208,517,217', sCoords_label: '518,209,573,216' }
	, { sID: '48', sName: 'Электрозаводская', sCoords: '508,218,517,227', sCoords_label: '518,219,598,227' }
	, { sID: '47', sName: 'Бауманская', sCoords: '508,228,517,237', sCoords_label: '518,229,570,236' }
	, { sID: '46', sName: 'Курская (радиальная)', sCoords: '420,316,429,325', sCoords_label: '432,317,468,324' }
	, { sID: '45', sName: 'Площадь Революции', sCoords: '306,373,315,382', sCoords_label: '318,374,406,381' }
	, { sID: '44', sName: 'Арбатская (Арбатско-Покровская)', sCoords: '228,418,237,427', sCoords_label: '180,419,225,426' }
	, { sID: '43', sName: 'Смоленская (Арбатско-Покровская)', sCoords: '172,391,181,400', sCoords_label: '121,392,171,399' }
	, { sID: '42', sName: 'Киевская (Арбатско-Покровская)', sCoords: '157,376,166,385', sCoords_label: '154,367,194,374' }
	, { sID: '165', sName: 'Парк Победы', sCoords: '104,375,113,384', sCoords_label: '49,376,103,384' }
	, { sID: '906', sName: 'Славянский бульвар *', sCoords: '62,332,71,341', sCoords_label: '11,326,62,340' }
	, { sID: '907', sName: 'Кунцевская (Арбатско-Покровская) *', sCoords: '16,261,25,270', sCoords_label: '28,262,79,270' }
	, { sID: '903', sName: 'Строгино *', sCoords: '16,217,25,226', sCoords_label: '26,218,65,225' }
	, { sID: '909', sName: 'Мякининская *', sCoords: '16,207,25,216', sCoords_label: '26,208,83,215' }
	, { sID: '902', sName: 'Волоколамская *', sCoords: '16,197,25,206', sCoords_label: '26,198,93,205' }
	, { sID: '901', sName: 'Митино *', sCoords: '16,187,25,196', sCoords_label: '26,188,57,195' }
] }
, { sID: '2', sName: 'Замоскворецкая линия', sCoords: '190,118,198,118,198,206,236,244,236,297,397,458,397,685,389,685,389,462,228,301,228,248,190,210,190,118', sCoords_label: '57,803,141,812', sColor: '#0a6f20', sBackground_position: '-1024px -0px', aoStation: [
	  { sID: '41', sName: 'Речной вокзал', sCoords: '190,59,199,68', sCoords_label: '127,60,189,67' }
	, { sID: '40', sName: 'Водный стадион', sCoords: '190,69,199,78', sCoords_label: '119,70,189,78' }
	, { sID: '39', sName: 'Войковская', sCoords: '190,79,199,88', sCoords_label: '138,80,189,87' }
	, { sID: '38', sName: 'Сокол', sCoords: '190,89,199,98', sCoords_label: '163,90,189,97' }
	, { sID: '37', sName: 'Аэропорт', sCoords: '190,99,199,108', sCoords_label: '149,100,188,107' }
	, { sID: '36', sName: 'Динамо', sCoords: '190,109,199,118', sCoords_label: '156,110,189,118' }
	, { sID: '35', sName: 'Белорусская (радиальная)', sCoords: '224,238,233,247', sCoords_label: '166,239,221,246' }
	, { sID: '34', sName: 'Маяковская', sCoords: '228,264,237,273', sCoords_label: '238,265,290,272' }
	, { sID: '33', sName: 'Тверская', sCoords: '228,292,237,301', sCoords_label: '239,291,278,298' }
	, { sID: '32', sName: 'Театральная', sCoords: '297,364,306,373', sCoords_label: '308,364,361,371' }
	, { sID: '31', sName: 'Новокузнецкая', sCoords: '332,398,341,407', sCoords_label: '344,394,410,402' }
	, { sID: '30', sName: 'Павелецкая (радиальная)', sCoords: '383,450,392,459', sCoords_label: '395,451,445,459' }
	, { sID: '29', sName: 'Автозаводская', sCoords: '389,490,398,499', sCoords_label: '399,491,465,499' }
	, { sID: '28', sName: 'Коломенская', sCoords: '389,500,398,509', sCoords_label: '399,501,455,508' }
	, { sID: '25', sName: 'Каширская (Замоскворецкая)', sCoords: '389,512,398,521', sCoords_label: '401,513,448,520' }  
	, { sID: '24', sName: 'Кантемировская', sCoords: '389,624,398,633', sCoords_label: '318,625,388,632' }
	, { sID: '23', sName: 'Царицыно', sCoords: '389,634,398,643', sCoords_label: '344,635,388,643' }
	, { sID: '22', sName: 'Орехово', sCoords: '389,644,398,653', sCoords_label: '352,645,388,652' }
	, { sID: '21', sName: 'Домодедовская', sCoords: '389,654,398,663', sCoords_label: '322,655,388,663' }
	, { sID: '20', sName: 'Красногвардейская', sCoords: '389,670,398,679', sCoords_label: '302,671,386,679' }
	, { sID: '900', sName: 'Братеево', sCoords: '389,687,398,696', sCoords_label: '399,688,437,695' }
] }
, { sID: '1', sName: 'Сокольническая линия', sCoords: '489,108,497,108,497,160,94,563,94,658,86,658,86,559,489,156,489,108', sCoords_label: '57,792,139,801', sColor: '#cd0505', sBackground_position: '-610px -0px', aoStation: [
	  { sID: '1', sName: 'Улица Подбельского', sCoords: '489,59,498,68', sCoords_label: '499,60,586,68' }
	, { sID: '2', sName: 'Черкизовская', sCoords: '489,69,498,78', sCoords_label: '499,70,559,77' }
	, { sID: '3', sName: 'Преображенская площадь', sCoords: '489,79,498,88', sCoords_label: '499,80,583,87' }
	, { sID: '4', sName: 'Сокольники', sCoords: '489,89,498,98', sCoords_label: '499,90,550,97' }
	, { sID: '5', sName: 'Красносельская', sCoords: '489,99,498,108', sCoords_label: '499,100,569,107' }
	, { sID: '6', sName: 'Комсомольская (радиальная)', sCoords: '385,258,394,267', sCoords_label: '397,259,465,266' }
	, { sID: '7', sName: 'Красные ворота', sCoords: '371,272,380,281', sCoords_label: '381,273,448,280' }
	, { sID: '8', sName: 'Чистые пруды', sCoords: '352,290,361,299', sCoords_label: '363,287,420,294' }
	, { sID: '9', sName: 'Лубянка', sCoords: '324,319,333,328', sCoords_label: '285,322,321,329' }
	, { sID: '10', sName: 'Охотный Ряд', sCoords: '288,355,297,364', sCoords_label: '300,355,353,362' }
	, { sID: '11', sName: 'Библиотека имени В.И. Ленина', sCoords: '234,408,243,417', sCoords_label: '246,409,339,416' }
	, { sID: '12', sName: 'Кропоткинская', sCoords: '208,435,217,444', sCoords_label: '218,436,283,443' }
	, { sID: '13', sName: 'Парк культуры (радиальная)', sCoords: '195,448,204,457', sCoords_label: '131,449,192,456' }
	, { sID: '14', sName: 'Фрунзенская', sCoords: '86,604,95,613', sCoords_label: '29,605,86,612' }
	, { sID: '15', sName: 'Спортивная', sCoords: '86,614,95,623', sCoords_label: '35,615,85,622' }
	, { sID: '16', sName: 'Воробьёвы горы', sCoords: '86,624,95,633', sCoords_label: '16,625,85,632' }
	, { sID: '17', sName: 'Университет', sCoords: '86,634,95,643', sCoords_label: '33,635,85,642' }
	, { sID: '18', sName: 'Проспект Вернадского', sCoords: '86,644,95,653', sCoords_label: '13,645,85,653' }
	, { sID: '19', sName: 'Юго-Западная', sCoords: '86,659,95,668', sCoords_label: '24,660,84,668' }
] }
]
}
