
function attachMessage(marker, msg, title) {
    var infowindow = new google.maps.InfoWindow(
    {
        content: "<div class=\"message-win\" style=\"font-family: Arial,Helvetica,sans-serif; "+
                 "font-size: 15px;"+
                 "width: 260px;"+
                 "height: 70px;"+
                 "\">" +
                 //"<strong>"+title + "</strong>"+
                 msg + "</div>"

    });
    iwins.push(infowindow);
    google.maps.event.addListener(marker, 'click', function() {
        for(var i in iwins)
            iwins[i].close();
        infowindow.open(map,marker);
    });
}

function initialize() {
    var latlng = new google.maps.LatLng(55.7520, 37.6226);
    var myOptions = {
        zoom: 8,
        center: latlng,
        mapTypeId: google.maps.MapTypeId.ROADMAP,
        scrollwheel: false
    };
    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

    var cnt = 0;
    for (var ll in objectsList) {
        if (ll != ',') {
            cnt++;
            var coords = ll.split(',');
            var info = objectsList[ll].split('[sep]');
            var myLatlng = new google.maps.LatLng(coords[0], coords[1]);

            var mks = new google.maps.Marker({
                position: myLatlng,
                map: map,
                title:info[0]
            });
            attachMessage(mks, info[1], info[0]);
        }
    }
    document.getElementById('mapinfo').innerHTML = ", показано на карте: <strong>" + objects_count + "</strong>";
}


function swap_metrocity(item, tab, cityname){
    if(item.value == 1){
        document.getElementById(tab+"hide").style.display = "block";
        document.getElementById(tab+"2hide").style.display = "none";
        document.getElementById(cityname).value = 'Москва';
        $('#town-selection').empty();
    }else{
        document.getElementById(tab+"hide").style.display = "none";
        document.getElementById(tab+"2hide").style.display = "block";
        document.getElementById(cityname).value = '';
        $('#metro-selection').empty();
    }
}


var mnum;
function select_metro(num){
    mnum = num;
    // Загрузка списка выбраных станций из переменной
    $('#metro-selection').empty();


    $("#metro-dialog").dialog({
        width: 765,
        height: 869,
        modal: true,
        draggable: false,
        resizable: false,
        position: ['center',-400],
        title: "Выбор ближайших станций метро"
    });

    var vals = $('#metro_list' + num).attr('value');
    if(vals.toLowerCase() != 'все'){
        vals = vals.split(',');
        for(i = 0; i < vals.length; i++){
            var coords = $('area[title='+vals[i]+']').attr('coords');
            coords = coords.split(',');
            var right = $('area[title='+vals[i]+']').attr('onmouseover').toString();
            right = (right.indexOf('true') >= 0);
            set_metro(parseInt(coords[0]),
                      parseInt(coords[1]),
                      parseInt(coords[2]),
                      parseInt(coords[3]),
                      vals[i],
                      right);
        }

    }

}

var mnum;
function select_town_(num){
    mnum = num;
    // Загрузка списка выбраных станций из переменной
    $('#town-selection').empty();


    $("#town-dialog").dialog({
        width: 809,
        height: 880,
        modal: true,
        draggable: false,
        resizable: false,
        position: ['center',-400],
        title: "Выбор городов"
    });

    var vals = $('#town_list' + num).attr('value');
    if(vals.toLowerCase() != 'все'){
        vals = vals.split(',');
        for(i = 0; i < vals.length; i++){
            var coords = $('area[title='+vals[i]+']').attr('coords');
            coords = coords.split(',');
            var right = $('area[title='+vals[i]+']').attr('onmouseover').toString();
            right = (right.indexOf('true') >= 0);
            set_town(parseInt(coords[0]),
                      parseInt(coords[1]),
                      parseInt(coords[2]),
                      parseInt(coords[3]),
                      vals[i],
                      right);
        }

    }

}


function select_road(tnum){
    // Загрузка списка выбраных станций из переменной
    $('#road-selection').empty();

    $("#road-dialog").dialog({
        width: 800,
        modal: true,
        draggable: false,
        resizable: false,
        position: ['center',-400],
        title: "Выбор ближайших шоссе"
    });

    var vals = $('#road_list').attr('value');
    if(vals.toLowerCase() != 'все'){
        vals = vals.split(',');
        for(i = 0; i < vals.length; i++){
            var coords = $('area[title='+vals[i]+']').attr('coords');
            coords = coords.split(',');
            var right = $('area[title='+vals[i]+']').attr('onmouseover').toString();
            right = (right.indexOf('true') >= 0);
            set_road(parseInt(coords[0]),
                      parseInt(coords[1]),
                      parseInt(coords[2]),
                      parseInt(coords[3]),
                      vals[i],
                      right);
        }

    }

}

function choosepage(num){
    document.getElementById('page-1').className = 'page ' + (num == 1 ? 'visible' : 'hidden');
    document.getElementById('page-2').className = 'page ' + (num == 2 ? 'visible' : 'hidden');
    document.getElementById('page-3').className = 'page ' + (num == 3 ? 'visible' : 'hidden');
    $('.chooser').find('a').removeClass('active');
    $('#pc'+num).addClass('active');

}

function set_metro(x1,y1,x2,y2,value, right){
//    var coords = item.coords.split(',');
//    var x1 = parseInt(coords[0]);
//    var y1 = parseInt(coords[1]);
//    var x2 = parseInt(coords[2]);
//    var y2 = parseInt(coords[3]);
    var align = '';

    if(right)
        align = 'align="right"';

//    var value = item.title;
    if(document.getElementById(''+x1+y1+x2+y2) != null){
        $('#'+x1+y1+x2+y2).remove();
        return;
    }

    //alert('Click on ' + value + ' at ' + x + ','+y + ' offset: '+offset.left + ',' + offset.top);
    $('#metro-selection').append('<a id="'+x1+y1+x2+y2+'" href="javascript:;" style="display: block; position: absolute; top: ' + (y1) +
                                  'px; left: ' + (x1) + 'px; width: '+(x2-x1+1)+'px; height: '+(y2-y1-1)+
                                  'px; padding-top: 1px;" title="'+value+'"'+
                                  'onclick="unset_metro(this);">'+
                                  '<img src="/images/new/mhl.gif" '+align+' /></a>');
    $('#metro-hl').empty();
}

function metro_over(item, right){
    var coords = item.coords.split(',');
    var x1 = parseInt(coords[0]);
    var y1 = parseInt(coords[1]);
    var x2 = parseInt(coords[2]);
    var y2 = parseInt(coords[3]);
    var align = '';
    var r = 'false';

    if(right){
        align = 'align="right"';
        r = 'true';
    }

    var value = item.title;

    var offset = $('#metro-img').offset();

    //alert('Click on ' + value + ' at ' + x + ','+y + ' offset: '+offset.left + ',' + offset.top);
    $('#metro-hl').append('<a href="javascript:;" style="display: block; position: absolute; top: ' + (y1) +
                                  'px; left: ' + (x1) + 'px; width: '+(x2-x1+1)+'px; height: '+(y2-y1-1)+
                                  'px; padding-top: 1px; background: #ef1c00; opacity: 0.3; filter: alpha(opacity=50);" title="'+value+'"'+
                                  ' onmouseout="metro_out();" onclick="set_metro('+x1+','+y1+','+x2+','+y2+',\''+value+'\','+r+');">'+
                                  '<img src="/images/new/mhl.gif" '+align+'/></a>');

}

function unset_metro(item){
    item.parentNode.removeChild(item);
}

function metro_out(){
    $('#metro-hl').empty();
}

function apply_metro(){
    //var itmName = 'metro-list'+mnum;
    var itm = document.getElementById('metro_list' + mnum);
    var list = document.getElementById('metro-selection');
    var val = '';
    itm.value = '';
    var cnt = 0;
    for(i = 0; i < list.childNodes.length; i ++){
        val = list.childNodes[i].title;
        if(val != ''){
            if(itm.value == '')
                itm.value = val;
            else
                itm.value += "," + val;
            cnt++;
        }
    }

    if(itm.value == ''){
        itm.value = 'все';
        $("#metrocount" + mnum).html('');
    }else{
        $("#metrocount" + mnum).html("("+cnt+" выбрано)");
    }

    $("#metro-dialog").dialog('close');
    $('#metro-selection').empty();
    //alert(itm.value);
}





function set_town(x1,y1,x2,y2,value, right){
//    var coords = item.coords.split(',');
//    var x1 = parseInt(coords[0]);
//    var y1 = parseInt(coords[1]);
//    var x2 = parseInt(coords[2]);
//    var y2 = parseInt(coords[3]);
    var align = '';

    if(right)
        align = 'align="right"';

//    var value = item.title;
    if(document.getElementById(''+x1+y1+x2+y2) != null){
        $('#'+x1+y1+x2+y2).remove();
        return;
    }

//    alert('<a id="'+x1+y1+x2+y2+'" href="javascript:;" style="display: block; position: absolute; top: ' + (y1) +
//                                  'px; left: ' + (x1) + 'px; width: '+(x2-x1+1)+'px; height: '+(y2-y1-1)+
//                                  'px; padding-top: 1px;" title="'+value+'"'+
//                                  'onclick="unset_town(this);">'+
//                                  '</a>');
    //alert('Click on ' + value + ' at ' + x + ','+y + ' offset: '+offset.left + ',' + offset.top);
    $('#town-selection').append('<a id="'+x1+y1+x2+y2+'" href="javascript:;" style="display: block; position: absolute; top: ' + (y1) +
                                  'px; left: ' + (x1) + 'px; width: '+(x2-x1+1)+'px; height: '+(y2-y1-1)+
                                  'px; padding-top: 1px; background: #ef1c00; opacity: 0.3; filter: alpha(opacity=50);" title="'+value+'"'+
                                  'onclick="unset_town(this);">'+
                                  '</a>');
    $('#town-hl').empty();
}

function town_over(item, right){
    var coords = item.coords.split(',');
    var x1 = parseInt(coords[0]);
    var y1 = parseInt(coords[1]);
    var x2 = parseInt(coords[2]);
    var y2 = parseInt(coords[3]);
    var align = '';
    var r = 'false';

    if(right){
        align = 'align="right"';
        r = 'true';
    }

    var value = item.title;

    var offset = $('#town-img').offset();

    //alert('Click on ' + value + ' at ' + x + ','+y + ' offset: '+offset.left + ',' + offset.top);
    $('#town-hl').append('<a href="javascript:;" style="display: block; position: absolute; top: ' + (y1) +
                                  'px; left: ' + (x1) + 'px; width: '+(x2-x1+1)+'px; height: '+(y2-y1-1)+
                                  'px; padding-top: 1px; background: #ef1c00; opacity: 0.3; filter: alpha(opacity=50);" title="'+value+'"'+
                                  ' onmouseout="town_out();" onclick="set_town('+x1+','+y1+','+x2+','+y2+',\''+value+'\','+r+');">'+
                                  '</a>');

}

function unset_town(item){
    item.parentNode.removeChild(item);
}

function town_out(){
    $('#town-hl').empty();
}

function apply_town_(){
    //var itmName = 'town-list'+mnum;
    var itm = document.getElementById('town_list' + mnum);
    var list = document.getElementById('town-selection');
    var val = '';
    itm.value = '';
    var cnt = 0;
    for(i = 0; i < list.childNodes.length; i ++){
        val = list.childNodes[i].title;
        if(val != ''){
            if(itm.value == '')
                itm.value = val;
            else
                itm.value += "," + val;
            cnt++;
        }
    }

    if(itm.value == ''){
        itm.value = '';
        $("#towncount" + mnum).html('');
    }else{
        $("#towncount" + mnum).html("("+cnt+" выбрано)");
    }

    $("#town-dialog").dialog('close');
    $('#town-selection').empty();
    //alert(itm.value);
}












function set_road(x1,y1,x2,y2,value, right){
//    var coords = item.coords.split(',');
//    var x1 = parseInt(coords[0]);
//    var y1 = parseInt(coords[1]);
//    var x2 = parseInt(coords[2]);
//    var y2 = parseInt(coords[3]);
    var align = '';

    if(right)
        align = 'align="right"';

//    var value = item.title;
    if(document.getElementById(''+x1+y1+x2+y2) != null){
        $('#'+x1+y1+x2+y2).remove();
        return;
    }

    //alert('Click on ' + value + ' at ' + x + ','+y + ' offset: '+offset.left + ',' + offset.top);
    $('#road-selection').append('<a id="'+x1+y1+x2+y2+'" href="javascript:;" style="display: block; position: absolute; top: ' + (y1) +
                                  'px; left: ' + (x1) + 'px; width: '+(x2-x1+1)+'px; height: '+(y2-y1-1)+
                                  'px; padding-top: 1px;" title="'+value+'"'+
                                  'onclick="unset_road(this);">'+
                                  '<img src="/images/new/ohl.gif" '+align+' /></a>');
    $('#road-hl').empty();
}

function road_over(item, right){
    var coords = item.coords.split(',');
    var x1 = parseInt(coords[0]);
    var y1 = parseInt(coords[1]);
    var x2 = parseInt(coords[2]);
    var y2 = parseInt(coords[3]);
    var align = '';
    var r = 'false';

    if(right){
        align = 'align="right"';
        r = 'true';
    }

    var value = item.title;

    var offset = $('#road-img').offset();

    //alert('Click on ' + value + ' at ' + x + ','+y + ' offset: '+offset.left + ',' + offset.top);
    $('#road-hl').append('<a href="javascript:;" style="display: block; position: absolute; top: ' + (y1) +
                                  'px; left: ' + (x1) + 'px; width: '+(x2-x1+1)+'px; height: '+(y2-y1-1)+
                                  'px; padding-top: 1px; background: #ef1c00; opacity: 0.3; filter: alpha(opacity=50);" title="'+value+'"'+
                                  ' onmouseout="road_out();" onclick="set_road('+x1+','+y1+','+x2+','+y2+',\''+value+'\','+r+');">'+
                                  '<img src="/images/new/ohl.gif" '+align+'/></a>');

}

function unset_road(item){
    item.parentNode.removeChild(item);
}

function road_out(){
    $('#road-hl').empty();
}

function apply_road(){
    //var itmName = 'road-list'+mnum;
    var itm = document.getElementById('road_list');
    var list = document.getElementById('road-selection');
    var val = '';
    var cnt = 0;
    itm.value = '';
    for(i = 0; i < list.childNodes.length; i ++){
        val = list.childNodes[i].title;
        if(val != ''){
            if(itm.value == '')
                itm.value = val;
            else
                itm.value += "," + val;
            cnt++;
        }
    }

    if(itm.value == ''){
        itm.value = 'все';
        $('#roadcount').html('');
    }else{
        $('#roadcount').html("("+cnt+" выбрано)");
    }
    $("#road-dialog").dialog('close');
    $('#road-selection').empty();
    //alert(itm.value);
}





// town map
var sel_region_item= null;

function show_rajon_set_header(title)
{
// меняем шапку
	obj= document.getElementById('cur_rajon_txt');
	if ( typeof(obj.innerText)!='undefined' )
		obj.innerText= title;
	else
		obj.textContent= title;
}

function show_rajon_hide_list(title)
{
    var city_part= city_list_mo[ title ].split(';');
    var oLayer= document.getElementById('cbx_list-'+city_part[0]);
    oLayer.style.display= 'none';
}

function show_rajon(item)
{
// выбранный район
    var value= item.title;
// это новый? если нет, то ничего не делать
	if ( sel_region_item!=null ) {
		if (item.title == sel_region_item.title) return;
	// новый. снимаем старый
		sel_region_item.style.backgroundColor= '';
		show_rajon_hide_list(sel_region_item.title);
	}
// ставим новый
	sel_region_item= item;
	sel_region_item.style.backgroundColor= 'ff9080';
// строим список
	show_rajon_fill_select(value,'');
// меняем шапку
	show_rajon_set_header(value);
}

function crCheckBox(name, value, title) {
	var ie = !!document.releaseCapture;
	var c = document.createElement(ie ? ['<input name="', name, '" />'].join('') : 'input');
	// IE: The NAME attribute cannot be set at run time on elements dynamically created with the createElement method.
	if (!ie) c.name = name;
	c.type = 'checkbox';
	c.value= value;
	var l = document.createElement('label');
	l.appendChild(c);
	l.appendChild(document.createTextNode(' '+title));
	l.appendChild(document.createElement('br'));
	return l;
}

function show_rajon_fill_select(rajon_name, layer_disp)
{
	layer_disp= ( layer_disp=='' )? 'block':'none';
// ищем города в массиве city_list_mo
	var ll= city_list_mo[rajon_name];
    if ( ll != null ) {
        var city_part= ll.split(';');
        var list_num= city_part[0];
        var city_lst= city_part[1].split(',');
        city_lst.sort();
	// если слой не создан, создаём и заполняем
    	var oLayer= document.getElementById('cbx_list-'+list_num);
    	if (oLayer== undefined) {
    	// создаём слой
    		var dLayer0= document.createElement('div');
    		dLayer0.id= 'cbx_list-'+list_num;
    		dLayer0.className= 'cbx_list_layer';
    		dLayer0.style.display= layer_disp;
    		document.getElementById('cbx_list').appendChild(dLayer0);
    		var dLayer= document.createElement('div');
    		dLayer0.appendChild(dLayer);
    	// заполняем списком
			for(i=0; i<city_lst.length; i++) {
				name= city_lst[i];
	        // убираем тип поселения
	            val_name= name.replace(/ (г.|пос.|дер.|с.)/i, '');
	            dLayer.appendChild( crCheckBox('city_sel', val_name, name) );
			}
    	} else {
    		oLayer.style.display= layer_disp;
    	}
    }
}

function show_rajon_fill_all()
{
    for ( var rajon_name in city_list_mo ) {
    	show_rajon_fill_select(rajon_name, 'none');
    }
}

function show_rajon_clear()
{
	sel_region_item.style.backgroundColor= '';
	show_rajon_hide_list(sel_region_item.title);
// обходим все чекбоксы формы и снимаем пометки
	var cbx_lst= document.forms['city_sel'].elements['city_sel'];
	for (i=0; i<cbx_lst.length; i++) {
		cbx_lst[i].checked= false;
	}
// меняем шапку
	show_rajon_set_header('Выберите район...');
}

function select_town(num)
{
    mnum = num;

    $("#town-dialog").dialog({
        width: 809,
        height: 820,
        modal: true,
        draggable: false,
        resizable: false,
        position: ['center',-400],
        title: "Выбор городов на карте"
    });

// восстанавливаем выделение
    var vals = $('#town_list' + num).attr('value');
    if ( vals.toLowerCase()!= 'все' && vals.toLowerCase()!= '' ) {
    // сперва заполняем все слои, чтобы было что выбирать
    	show_rajon_fill_all();
	// теперь ищем и выделяем
    	var sFirst= '';
        var vals_lst = vals.split(',');
    	if ( typeof(vals_lst[0])!= undefined ) {
	        sFirst= vals_lst[0];
       	} else {
	        sFirst= vals;
       	}

	    var cbx_lst= document.forms['city_sel'].elements['city_sel'];
	    for (i=0; i<cbx_lst.length; i++) {
            if ( typeof(vals_lst[0])!= undefined ) {
                for ( var x=0; x< vals_lst.length; x++ ) {
                    if ( cbx_lst[i].value == vals_lst[x] ) {
                        cbx_lst[i].checked= true;
                        break;
                    }
                }
            } else {
                if ( cbx_lst[i].value == vals ) {
					cbx_lst[i].checked= true;
                }
            }
	    }
    }
}

function apply_town()
{
// обходим все чекбоксы формы и собираем массив городов
    var sList= ''; var cnt= 0;
	var cbx_lst= document.forms['city_sel'].elements['city_sel'];
	for (i=0; i<cbx_lst.length; i++) {
		if ( cbx_lst[i].checked== true ) {
			cnt++;
			sList= ((sList=='')? '': sList+',')+ cbx_lst[i].value;
		}
	}
	document.getElementById('town_list1').value= sList;

    if ( sList== '' ) {
        $("#towncount"+mnum).html('');
    }else{
        $("#towncount"+mnum).html("("+cnt+" выбрано)");
    }

    $("#town-dialog").dialog('close');
}


