function debug(obj) {
	var i,
		s = '';
	for (i in obj) {
		try {
			s += i + '=' + obj[i] + '\n';
		} catch (e) {}
	}
	return s;
}

function onRegionSelect(name) {
    if (!document.clicked_from_cb) {
        var l = document.list_region_name,
			rm = (document.region_map[document.region_key][name] ? document.region_map[document.region_key][name] : false),
			mt = document.map_type ? document.map_type : 'search';
        if (rm) {
            for (a in rm) {
                if (rm[a]) {
                    if (mt == 'onmain') {
                        $('form#search').append('<input type="hidden" name="' + l + '" value="' + rm[a] + '" id="' + rm[a] + '" />');
                        /*	если выбирается что-то на карте москвы, то на карте области должна быть выбрана москва
                        тоесть, если l - location[], то добавить  direction-> 14239
                        //todo: после прикручивания поиска на главную страницу, добавить обработку "пустых" районов
                        */
                        if (l == 'location[]') {
                            lt = 'direction[]';
                            msk = '14239';
                            $('#' + msk + '[name=' + lt + ']').remove();
                            $('form#search').append('<input type="hidden" name="' + lt + '" value="' + msk + '" id="' + msk + '" />');
                        }
                    } else {
                        var inp = $('#' + rm[a] + '[name=' + l + ']');
                        if (inp.length == 1) {
                            inp.attr('checked', 'checked').focus();
                        } else {
                            if (document.no_objects_here) // выводим сообщение заданное при помощи языковых файлов где то в другом месте
                                alert(document.no_objects_here);
                            return false; // говорим в вызывающую функцию что район не найден
                        }
                    }
                }
            }
            return true; // говорим в вызывающую функцию что район найден и установлен
        } else {
            if (document.no_objects_here) // выводим сообщение заданное при помощи языковых файлов где то в другом месте
                alert(document.no_objects_here);
            return false; // говорим в вызывающую функцию что район не найден
        }
        //document.clicked_from_cb = false;
    }
    
    return false; // по умолчанию говорим что ничего не сделано
}

function onRegionDeselect(name) {
	if (!document.clicked_from_cb) {
		var l = document.list_region_name,
			rm = (document.region_map[document.region_key][name] ? document.region_map[document.region_key][name] : false),
			mt = document.map_type ? document.map_type : 'search';
		if (rm) {
			//alert (rm);
			for (a in rm) {
				if (rm[a]) {
					if (mt == 'onmain') {
						$('#' + rm[a] + '[name=' + l + ']').remove();
					} else {
						$('#' + rm[a] + '[name=' + l + ']').removeAttr('checked');
					}
				}
			}
		}
	}
	//document.clicked_from_cb = false;
}

function selectRegionInFlash(name)
{
	var obj = getMapObject(flash_map_name);
	obj.selectRegion(name);
}

function deselectRegionInFlash(name)
{
	var obj = getMapObject(flash_map_name);
	obj.deselectRegion(name);
}

function cbm_click() {
	document.clicked_from_cb = true;
	var l = document.list_region_name,
		rm = document.region_map[document.region_key],
		OnFlash = document.region_key == 'metro' ? selectMetroInFlash : selectRegionInFlash,
		OffFlash = document.region_key == 'metro' ? deselectMetroInFlash : deselectRegionInFlash,
		wm = {},
		rr = {};
	//alert(debug(rm));
	// развернем массив
	for (a in rm) {
		for (b in rm[a]) {
			wm[rm[a][b]] = a;
		}
	}
	//alert(debug(wm));

	// подготовим массив выбраных
	for (a in rm) {
		rr[a] = false;
	}

	// по чекбоксам определяем, что выбрано
	$("input[name='" + l + "']:checked").each(function() {
		rr[wm[$(this).attr('id')]] = true;
	});
	//alert(debug(rr));

	// пробегаемся по всем и отмечаем, что нужно
	for (a in rr) {
		try {
			if (rr[a]) {
				OnFlash(a);
			} else {
				OffFlash(a);
			}
		} catch (e) {}
	}
	document.clicked_from_cb = false;
}

function selectMetroInFlash(name) {
	var obj = getMapObject(flash_map_name);
	obj.FromAS(name, 1);
}

function deselectMetroInFlash(name) {
	var obj = getMapObject(flash_map_name);
	obj.FromAS(name, 0);
}

function ToAS(name, state) {
	if (!document.clicked_from_cb) {
		var l = document.list_region_name,
			rm = (document.region_map[document.region_key][name] ? document.region_map[document.region_key][name] : false),
			mt = document.map_type ? document.map_type : 'search';
		if (rm) {
			for (a in rm) {
				if (rm[a]) {
					if (state == 1) {
						$('#' + rm[a] + '[name=' + l + ']').attr('checked', 'checked').focus();
					} else {
						$('#' + rm[a] + '[name=' + l + ']').removeAttr('checked');
					}
				}
			}
		}
		//document.clicked_from_cb = false;
	}
}
