я бы по другому сделал
[CODE]<?
$arRegions=Array(
"mos"=>"Москва",
"spb"=>"Санкт-Петербург",
);
$strCurPage=$APPLICATION->GetCurPageParam();
$arCurPage=explode("/",$strCurPage);
?>
<select id="selectRegion">
<?foreach($arRegions as $keyRegion=>$strRegion):
if(array_key_exists($arCurPage[1],$arRegions))
{
$arLink=$arCurPage;
$arLink[1]=$keyRegion;
$strLink=implode("/",$arLink);
} else {
$strLink="/".$keyRegion.$arCurPage;
}
?>
<option value="<?=$strLink?>"><?=$strRegion?></option>
<?endforeach?>
</select>[/CODE]
и в шаблоне меню аналогично добавлял бы спереди в линки $arCurPage[1], если array_key_exists.
а, ну и на событие change у #selectRegion надо повесить js переход по линку. Или все на <ul><li><a> сделать, а не на select, это уж вопросы оформления.
Это вариант, конечно, если вы готовы поддерживать физически 30 папок с подпапками на каждый регион. Если нет, то этот вариант не годится.