var emptyText = '<div style="cursor:hand;cursor:pointer;vertical-align:middle;font-size:11px; font-style:italic;">метро не выбрано</div>';
var divStyle = 'style="vertical-align:middle;font-size:11px; padding:0; margin:0;"';
var inputStyle = 'style="padding:0; margin:0;width:9px; height:9px;vertical-align:middle"';
var labelStyle = 'style="font-size:11px;"';

function updateSel()
{
	if (IE)
	{
		var dv = document.getElementById("selectedStations");
		var s = dv.innerHTML
		dv.innerHTML = s;
	}
}

var k = 0;
var i = 0;
var count = 0;
var lines = [];
var stByLine = [];

var centerStation 		= [3, 7, 8, 18, 19, 52, 60, 62, 64, 70, 75, 88, 98, 110, 113, 120, 131, 132, 137, 140, 143, 144, 151, 152, 154, 170, 173, 174]
var centerStationExt 	= [0, 1, 2, 4, 9, 12, 13, 14, 15, 27, 31, 34, 36, 39, 40, 41, 43, 44, 50, 51, 54, 55, 58, 59, 61, 66, 67, 68, 69, 72, 73, 77, 78, 82, 83, 90, 93, 99, 100, 101, 109, 111, 112, 115, 116, 118, 122, 123, 125, 128, 129, 130, 133, 134, 136, 139, 142, 145, 150, 153, 159, 167, 168, 175, 176, 177, 180]



function loadLine(line)
{
	var d = document.getElementById("lineStations");
	s = '';
	for (var i = 0; i < Sts.length; i++){
        s += '<div style="margin-top: -3px; margin-bottom: -3px;">';
        s += '<input id = "st_' + Sts[i].id + '" onclick = "if (checked) addToSel(' + i + '); else removeSel(' + i + ')" type = checkbox style = "width: 10px; vertical-align: middle; margin-right: 5px;" ' + (Sts[i].checked ? "checked" : "") + ' value = ' + Sts[i].id + '>';
        s += '<label for = st_' + Sts[i].id + '>' + Sts[i].name + '</label>'; 
        s += '</div>';
	}
	d.innerHTML = s;
}

function mSel(v)
{
	if (Sts[v].checked) {
		Sts[v]['locked'] = 0;
		removeSel(v);
		document.getElementById('imm'+v).src='/img/obana4.gif';
	}
	else {
		addToSel(v);
		incLock(v);
	}
}

function loadStByLine() {
	// for (i = 0; i < Sts.length; i++)
		// if(stByLine[Sts[i]['lineid']] == undefined)
			// stByLine[Sts[i]['lineid']] = [i];
		// else
			// stByLine[Sts[i]['lineid']][stByLine[Sts[i]['lineid']].length] = i;
	// stByLine[11][stByLine[11].length] = 150; 
	// stByLine[6][stByLine[6].length] = 51; 	
	// stByLine[7][stByLine[7].length] = 66; 	
	// stByLine[10][stByLine[10].length] = 52; 
	
	// stByLine[8] = [58, 15, 89, 110, 117, 55, 67, 174, 72, 141, 98, 41, 92, 99, 51, 12, 78, 43, 128];	
	
	// stByLine[21] = [161, 170, 114, 133, 59, 55];
	// stByLine[22] = [120, 29, 30, 132, 9, 39, 15];
	// stByLine[231] = [79, 33, 137, 63, 80, 66, 129, 100, 51];
	// stByLine[232] = [177, 102, 46, 101, 127, 179, 13, 67];
	// stByLine[24] = [106, 165, 11, 166, 68, 138, 36, 77, 51, 66];
	// stByLine[26] = [76, 10, 125, 21, 27, 4, 121, 117];
	// stByLine[27] = [107, 140, 154, 178, 93, 111, 14, 158, 58, 12];
	// stByLine[28] = [86, 85, 103, 176, 0, 108, 72];
	// stByLine[29] = [5, 17, 96, 28, 104, 149, 40, 124, 89, 78];
	// stByLine[20] = [73, 110, 43];
	
	// stByLine[31] = [180, 116, 164, 34, 135, 167, 99];
	// stByLine[32] = [1, 54, 50, 48, 168, 95, 42, 57, 98];
	// stByLine[36] = [90, 182, 146, 56, 16, 47, 91, 118, 2, 69, 175, 92];
	// stByLine[37] = [115, 31, 144, 65, 123, 38, 45, 141];
	// stByLine[39] = [152, 81, 82, 83, 126, 171, 181, 113, 159, 6, 22, 41, 128];
	// stByLine[30] = [74, 23, 71, 32, 105, 53, 44, 61, 122, 174];
	
	
stByLine[8] = [58, 15, 90, 111, 118, 55, 67, 175, 72, 142, 99, 41, 93, 100, 51, 12, 78, 43, 129];
stByLine[20] = [73, 111, 43];
stByLine[21] = [162, 171, 115, 134, 59, 55];
stByLine[22] = [121, 29, 30, 133, 9, 39, 15];
stByLine[24] = [107, 166, 11, 167, 68, 139, 36, 77, 51, 66];
stByLine[26] = [76, 10, 126, 21, 27, 4, 122, 118];
stByLine[27] = [108, 141, 155, 179, 94, 112, 14, 159, 58, 12];
stByLine[28] = [87, 86, 104, 177, 0, 109, 72];
stByLine[29] = [5, 17, 97, 28, 105, 150, 40, 125, 90, 78];
stByLine[30] = [74, 23, 71, 32, 106, 53, 44, 61, 123, 175];
stByLine[31] = [181, 117, 165, 34, 136, 168, 100];
stByLine[32] = [1, 54, 50, 48, 169, 96, 42, 57, 99];
stByLine[36] = [91, 183, 147, 56, 16, 47, 92, 119, 2, 69, 176, 93];
stByLine[37] = [116, 31, 145, 65, 124, 38, 45, 142];
stByLine[39] = [153, 82, 83, 84, 127, 172, 182, 114, 160, 6, 22, 41, 129];
stByLine[231] = [79, 33, 138, 63, 80, 66, 130, 101, 51, 81];
stByLine[232] = [178, 103, 46, 102, 128, 180, 13, 67];
}

function stToHtmlFirstPart(a){
	var html = '';
	for (i = 0; i < a.length; i++) {
			html = '';
			html += '<div '+divStyle+'>';
			html += '<input id="clear" '+inputStyle+' style="cursor:hand;cursor:pointer" onclick = "removeAll(); return false" type = checkbox>';
			html += '<label for = clear '+labelStyle+'><i>&nbsp;Очистить список</i></label>';
			html += '</div>';
	}
	return html;
}

function stToHtmlSecondPart(a){
	var html = '';
	for (i = 0; i < a.length; i++) {
		var ds = document.getElementById('sel' + a[i]);	
		if(ds == null || ds == undefined){
			var im='';
			if (Sts[a[i]].lineid>0)
				im = '<img src="/img/subway'+Sts[a[i]].lineid+'.gif" style="cursor:hand;cursor:pointer" onclick="javascript:DopCheck('+a[i]+')">';
			else    
				im = '<img src="/img/spacer.gif">';			
			html += '<div id = "sel' + a[i] + '" '+divStyle+'>';
			html += '<input id = "stS_' + a[i] + '" '+inputStyle+' style="cursor:hand;cursor:pointer" onclick="removeSel('+a[i]+'); return false" type="checkbox" checked name="m" value="'+Sts[a[i]].id+'">&nbsp;';
			html += '<label for = stS_' + a[i] + ' '+labelStyle+' style="cursor:hand;cursor:pointer" >'+im+'&nbsp;' + Sts[a[i]].name + '</label>'; 
			html += '</div>';
		}
	}
	return html;
}

function lSel(v) {
	if(lines[v] == 1)
		lines[v] = 0;
	else
		lines[v] = 1;

	for (i = 0; i < stByLine[v].length; i++) {
		addToSel(stByLine[v][i]);
		if(lines[v] != 1){
			decLock(stByLine[v][i]);
			if(showLock(stByLine[v][i]) == 0) removeSel(stByLine[v][i]);
		}
		else 
			incLock(stByLine[v][i]);
	}
}

function incLock(i){
	if(Sts[i]['locked'] == undefined)
		return Sts[i]['locked'] = 1;
	else
		return (Sts[i]['locked'] = Sts[i]['locked'] + 1);
}

function decLock(i){
	if(Sts[i]['locked'] == undefined || Sts[i]['locked'] <= 0)
		return Sts[i]['locked'] = 0;		
	else
		return (Sts[i]['locked'] = Sts[i]['locked'] - 1);
}

function showLock(i){
	return Sts[i]['locked'];
}

function lSelCenter(isExt) {
	var key, stList, d, s;
		
	if(isExt == undefined) {
		key = 'center';
		stList = centerStation;
	} else {
		key = 'extCenter';
		stList = centerStationExt;
	}	
	
	d = document.getElementById('selectedStations');
	if(lines[key] == 1)
		lines[key] = 0;	
	else {
		lines[key] = 1;	
		if (count == 0)
			d.innerHTML = stToHtmlFirstPart(stList);
		d.innerHTML += stToHtmlSecondPart(stList);
	}

	for (i = 0; i < stList.length; i++) {
		var v = stList[i];				
		var ds = document.getElementById('sel' + v);	
		var st = document.getElementById('st_' + Sts[v].id);
		if (st)	
			st.checked = true;
		Sts[v].checked = true;
		var t_sel = document.getElementById('imm'+v);
		if (t_sel != null) 
			t_sel.src='/img/obana5.gif';
		count++;
			
		if(lines[key] != 1){
			decLock(v);
			if(showLock(v) == 0){
				if(ds != undefined && ds != null)
					d.removeChild(ds);
				if (st) 
					st.checked = false;
				if (--count == 0) 
					document.getElementById('selectedStations').innerHTML = emptyText;
				Sts[v].checked = false;
				t_sel.src='/img/obana4.gif';
				//updateSel();
			}
		}
		else
			incLock(v);
	}
}

function DopCheck(val)
{
	if (!(Sts[val].checked))
		addToSel(val); 
	else 
		removeSel(val);
}

function loadAll()
{
	document.body.style.cursor = "wait";
	var d = document.getElementById("lineStations");
    //alert(d);
	d.innerHTML = '';
	var s = '';
    var im = '';	
	for (var i = 0; i < Sts.length; i++)
	{
        if (Sts[i].lineid>0)
            im = '<img src="/img/subway'+Sts[i].lineid+'.gif" style="cursor:hand;cursor:pointer" onclick="javascript:DopCheck('+i+')">';
        else    
            im = '<img src="/img/spacer.gif">';
		
        s += '<div '+divStyle+'>';
		s += '<input id = "st_' + Sts[i].id + '" style="cursor:hand;cursor:pointer" onclick = "if (checked) addToSel(' + i + '); else removeSel(' + i + 
            ')" type="checkbox" '+inputStyle+' ' + 
            (Sts[i].checked ? "checked" : "") + ' value="' + Sts[i].id + '">&nbsp;';
        //s += Sts[i].name
		s += '<label for = st_' + Sts[i].id + ' '+labelStyle+' style="cursor:hand;cursor:pointer" >'+im+'&nbsp;' + Sts[i].name + '</label>';
		s += '</div>';
	}
	d.innerHTML = s;
	document.body.style.cursor = "default";
	//document.getElementById('text').value = s;
}

function InitloadAll()
{
	loadAll();	

	var s='';
	var offs=0;
	for (var i = 0; i < Sts.length; i++)
	{
		s = s + '<div id="s'+Sts[i].id+'" style="position:absolute; left:'+Sts[i].x+'; top:'+Sts[i].y+
			';"><img id="imm'+i+'" alt="'+Sts[i].name+'" src="/img/obana4.gif" onclick="JavaScript:mSel('+i+');" style="cursor:hand;cursor:pointer"></div>';
	}
	//document.getElementById('map1').innerHTML = document.getElementById('map1').innerHTML + s;
	for (var i = 0; i < SelSts.length; i++)
	{
		for (var j = 0; j < Sts.length; j++)
		{
			if (SelSts[i]==Sts[j].id) {
				addToSel(j);
			}
		}
	}
	
    if (count == 0) 
        document.getElementById('selectedStations').innerHTML = emptyText;
}

var IE = document.all != null;

function addToSel(v)
{
	var d = document.getElementById('selectedStations');
	if (count == 0)
	{
		s = '<div '+divStyle+'>';
		s += '<input id="clear" '+inputStyle+' style="cursor:hand;cursor:pointer" onclick = "removeAll(); return false" type = checkbox>';
		s += '<label for = clear '+labelStyle+'><i>&nbsp;Очистить список</i></label>';
		s += '</div>';

		d.innerHTML = s;
	}

	var ds = document.getElementById('sel' + v);
    var im='';
	if (ds == null)
	{
        if (Sts[v].lineid>0)
            //im = '<img src="/img/subway'+Sts[v].lineid+'.gif">';
			im = '<img src="/img/subway'+Sts[v].lineid+'.gif" style="cursor:hand;cursor:pointer" onclick="javascript:DopCheck('+v+')">';
        else    
            im = '<img src="/img/spacer.gif">';
            
		s  = '<div id = "sel' + v + '" '+divStyle+'>';
		s += '<input id = "stS_' + v + '" '+inputStyle+' style="cursor:hand;cursor:pointer" onclick="removeSel('+v+'); return false" type="checkbox" checked name="m" value="'+Sts[v].id+'">&nbsp;';
		s += '<label for = stS_' + v + ' '+labelStyle+' style="cursor:hand;cursor:pointer" >'+im+'&nbsp;' + Sts[v].name + '</label>'; 
		s += "</div>";
		d.innerHTML += s;
	}
	else
	{
		ds.style.display = '';
		//document.getElementById("stS_" + Sts[v].id).checked = true;
	}
	
	var st = document.getElementById('st_' + Sts[v].id);
	if (st)
		st.checked = true;
	
	Sts[v].checked = true;
	var t_sel = document.getElementById('imm'+v);
	if (t_sel != null)
		t_sel.src='/img/obana5.gif';
		
	count++;
}

function addToSelAll(v)
{
	for (var i = 0; i < Sts.length; i++)
	{
		if (!Sts[i].checked && (Sts[i].line == v))
		{
			var c = document.getElementById("st_" + Sts[i].id);

			if (!c.checked)
			{
				c.checked = true;
				addToSel(i);
			}
		}
	}
}

function removeSelAll(v)
{
	for (var i = 0; i < Sts.length; i++)
	{
		if (Sts[i].checked && (Sts[i].line == v))
		{
			var c = document.getElementById("st_" + Sts[i].id);
			if (c.checked)
			{
				c.checked = false;
				removeSel(i);
			}
		}
	}
}

function removeSel(v)
{
	var d = document.getElementById("sel" + v);
	var d2 = document.getElementById('selectedStations');
	d2.removeChild(d);
	//d.style.display = 'none';
	var st = document.getElementById("st_" + Sts[v].id);
	if (st) 
        st.checked = false;
	//document.getElementById("stS_" + v).checked = false;
	if (--count == 0) 
        document.getElementById('selectedStations').innerHTML = emptyText;

	Sts[v].checked = false;
	document.getElementById('imm'+v).src='/img/obana4.gif';
	updateSel();
}

function removeAll()
{
	for (i = 0; i < Sts.length; i++)
		if (Sts[i].checked)
		{
			var st = document.getElementById("st_" + Sts[i].id);
			if (st) 
                st.checked = false;
			Sts[i].checked = false;
			document.getElementById('imm'+i).src='/img/obana4.gif';
		}

	count = 0;
	document.getElementById('selectedStations').innerHTML = emptyText;
}

loadStByLine();

