function rcCtl(name){return document.getElementById("RouteControl_"+name);}

var EndDS = 27;

function CheckRouteControl(){
CheckFindControl("RouteControl_Start",1);
CheckFindControl("RouteControl_End",0);
if(rcCtl("EndAmbiguousSelect") && !rcCtl("StartAmbiguousSelect"))rcCtl("EndAmbiguousSelect").focus();
if(rcCtl("EndARegionSelect")){
SelFromBk("EndARegionSelect","EndBkARegion");
SelFromBk("EndPRegionSelect","EndBkPRegion");
}}

function SelFromBk(Sel,Bk){
var oSel=rcCtl(Sel);
var oBk=rcCtl(Bk);
if(oBk.value!="") SelByValue(oSel,oBk,oBk.value)
}

function onStartARegionChange(){
rcCtl("StartBkARegion").value = rcCtl("StartARegionSelect").value;
SetAddrFields("RouteControl_Start");
SyncEndFields();
}

function onEndARegionChange(){
rcCtl("EndBkARegion").value = rcCtl("EndARegionSelect").value;
SetAddrFields("RouteControl_End");
}

function onStartPRegionChange(){
rcCtl("StartBkPRegion").value = rcCtl("StartPRegionSelect").value;
SyncEndFields();
}

function onEndPRegionChange(){
rcCtl("EndBkPRegion").value = rcCtl("EndPRegionSelect").value;
}

function onStartPTabClick(){if(!rcCtl("StartPlaceRadio").checked) onStartPlaceRadioClick();}
function onEndPTabClick(){if(!rcCtl("EndPlaceRadio").checked) onEndPlaceRadioClick();}
function onStartATabClick(){rcCtl("StartShowPaste").checked=0;onStartAddressRadioClick();}
function onEndATabClick(){rcCtl("EndShowPaste").checked=0;onEndAddressRadioClick();}

function onStartAddressRadioClick(){SetControls("RouteControl_Start",true);rcCtl("StartStreetText").focus();SyncEndFields();}
function onEndAddressRadioClick(){SetControls("RouteControl_End",true);rcCtl("EndStreetText").focus();}
function onStartPlaceRadioClick(){SetControls("RouteControl_Start",false);rcCtl("StartPlaceText").focus();SyncEndFields();}
function onEndPlaceRadioClick(){SetControls("RouteControl_End",false);rcCtl("EndPlaceText").focus();}
          
function SyncEndFields(){
if(!rcCtl("EndStreetText")) return;

var Addr=rcCtl("StartAddressRadio").checked;
var ar=rcCtl("StartARegionSelect").value;
var pr=rcCtl("StartPRegionSelect").value;
var ds = aDS[Addr?ar:pr];
var NewDS=false;

if(ds!=EndDS){
ReloadRegions("EndARegionSelect","EndBkARegion",1,ds);
ReloadRegions("EndPRegionSelect","EndBkPRegion",0,ds);
EndDS = ds;
NewDS=true;
}

if( NewDS
||("" == rcCtl("EndStreetText").value
&& "" == rcCtl("EndCityText").value
&& "" == rcCtl("EndStateText").value
&& "" == rcCtl("EndZipText").value ))
{
SelByValue(rcCtl("EndARegionSelect"),rcCtl("EndBkARegion"),ar);
SelByValue(rcCtl("EndPRegionSelect"),rcCtl("EndBkPRegion"),pr);
SetAddrFields("RouteControl_End");
}
}

function SelByValue(oSel,oBk,r){
for(var j=0; j<oSel.length; ++j)
if(oSel.options[j].value==r){oSel.selectedIndex=j;oBk.value=oSel.value;break;}
}

var aSort=[5,22,0,1,23,2,3,9,12,16,4,24,6,7,17,8,18,11,19,10,20,15,21,13,14];

function ReloadRegions(Sel,Bk,Addr,dsMask){
var oSel=rcCtl(Sel);
var oBk=rcCtl(Bk);
var vsel=oSel.value;
oSel.options.length=0;
var k=0;	
for(var j=0;j<aSort.length;++j)
{
var i=aSort[j];
if(aDS[i]&dsMask && aAddr[i]==Addr)
{
var oOption=document.createElement("OPTION");
oOption.value=i;
oOption.text=aRegions[i];
oSel.options[k]=oOption;
if(i==vsel) oSel.selectedIndex = k;
k++;
}}
oBk.value = oSel.value;
}

function GetRoute(){
if(rcCtl("StartARegionSelect")) rcCtl("StartBkARegion").value = rcCtl("StartARegionSelect").value;
if(rcCtl("StartPRegionSelect")) rcCtl("StartBkPRegion").value = rcCtl("StartPRegionSelect").value;
if(rcCtl("EndARegionSelect")) rcCtl("EndBkARegion").value = rcCtl("EndARegionSelect").value;
if(rcCtl("EndPRegionSelect")) rcCtl("EndBkPRegion").value = rcCtl("EndPRegionSelect").value;

if(!rcCtl("StartAmbiguousSelect") && !rcCtl("EndAmbiguousSelect"))
{
SaveToCookie("RouteControl_Start");
SubmitIt();
}
else
{
if(	( rcCtl("StartAmbiguousSelect") && (-1 == rcCtl("StartAmbiguousSelect").selectedIndex) )
||  ( rcCtl("EndAmbiguousSelect")   && (-1 == rcCtl("EndAmbiguousSelect").selectedIndex) ) )
	SubmitIt();
else AmbiguousClick();
}
}

