var mapArea = new Array;
var mapSelected = new Array;
var sOption = new Array;
var mapTarget = '';

// Показываем карту
function showMap( target ){
	// Обнуляем массив выбранных станций
	mapSelected = new Array;
	// Получаем массив ареа для определения координат
	mapArea = document.getElementById('metroMap').getElementsByTagName('area');

	// Считываем уже выбраные станции, и выводим их на экран	
	sOption = document.getElementById( target ).getElementsByTagName('option');
	for (a in sOption) 
	{
		if((sOption[a].selected)&&(a!=0))
		{
			for( i in mapArea )
			{
				if( mapArea[i].title == sOption[a].innerHTML )
				{
					map(parseInt(i));
				}
			}
		}
	}
	// Показываем блок с картой
	document.getElementById("mapBox").style.visibility = "visible";
	mapTarget = target;
	// Выравниваем карту по высоте на экране
	var mapdiv=document.getElementById("map_cover");
	
	var myWidth = 0, myHeight = 0;
  if( typeof( window.innerWidth ) == 'number' ) {
    //Non-IE
    myWidth = window.innerWidth;
    myHeight = window.innerHeight;
  } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
    //IE 6+ in 'standards compliant mode'
    myWidth = document.documentElement.clientWidth;
    myHeight = document.documentElement.clientHeight;
  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
    //IE 4 compatible
    myWidth = document.body.clientWidth;
    myHeight = document.body.clientHeight;
  }
	
	var scrolls=getScrollXY();
	
	var mypos_x=Math.round((myWidth - mapdiv.clientWidth)/2+scrolls[0]);
	var mypos_y=Math.round((myHeight - mapdiv.clientHeight)/2+scrolls[1]);
	
	var uagt=navigator.userAgent.toLowerCase();
	
	mapdiv.style.top=mypos_y+'px';
	mapdiv.style.left=mypos_x+'px';
}

function getScrollXY() {
  var scrOfX = 0, scrOfY = 0;
  if( typeof( window.pageYOffset ) == 'number' ) {
    //Netscape compliant
    scrOfY = window.pageYOffset;
    scrOfX = window.pageXOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    //DOM compliant
    scrOfY = document.body.scrollTop;
    scrOfX = document.body.scrollLeft;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    //IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;
    scrOfX = document.documentElement.scrollLeft;
  }
  return [ scrOfX, scrOfY ];
}

function hideMap(){
	document.getElementById('map_map').innerHTML = '';
	if(arguments[0]) showMap();
	else document.getElementById("mapBox").style.visibility = "hidden";
}

function addMapResults(){
	for(a in sOption) sOption[a].selected = false;
	doc = document.getElementById( mapTarget );
	nl=0;
	for(a in mapSelected)
	{
		if(mapSelected[a]!=null)
		{
			for( i=0; i<doc.options.length; i++ )
			{
				option = doc.options[i]
				if( option.text == mapArea[mapSelected[a]-1].title )
				{
					doc.options[i].selected = true;
				}
			}
		}
	}
	hideMap();
}

function map(){
	tmp = true;
	for(a in mapSelected) if(mapSelected[a]==(arguments[0]+1)) tmp = false;
	if(tmp){
		// Создаем точку на карте
		img = document.createElement('img');
		img.id = 'map_img_'+arguments[0];
		img.setAttribute('onclick', 'mapDelete('+arguments[0]+')');
		img.style.position = 'absolute';
		pos = mapArea[arguments[0]].coords.split(',');
		img.style.left = (pos[0]-6)+'px';
		img.style.top = (pos[1]-6)+'px';
		img.src = '/images/node3.gif';
		document.getElementById('map_map').appendChild(img);
		// Записываем выбранный елмент в массив
		mapSelected.push(arguments[0]+1);
	}
}

function mapDelete(){
	// Удаляем точку на карте
	if(document.getElementById('map_img_'+arguments[0])){
		el = document.getElementById('map_img_'+arguments[0]);
		el.parentNode.removeChild(el);
	}
	// Обнуляем выбранный елмент из массива
	for(a in mapSelected) if(mapSelected[a]==(arguments[0]+1)) mapSelected[a]=null;
}

function group_map(){
	img = document.createElement('img');
	img.id = 'map_img_'+arguments[0];
	img.setAttribute('onclick', 'group_map_delete('+arguments[0]+',['+arguments[1]+'])');
	img.style.position = 'absolute';
	pos = mapArea[arguments[0]].coords.split(',');
	img.style.left = pos[0]+'px';
	img.style.top = pos[1]+'px';
	img.src = '/images/node4.gif';
	document.getElementById('map_map').appendChild(img);	
	for(a in arguments[1]) map(arguments[1][a]);
}

function group_map_delete(){
	// Удаляем точку на карте	
	el = document.getElementById('map_img_'+arguments[0]);
	el.parentNode.removeChild(el);
	for(a in arguments[1]) mapDelete(arguments[1][a]);
}
