// Obsługa ... wyszukiwania w trybie A.

var gd_form; // formularz (jedyny), na którym są kontrolki wyboru lokalizacji do wyszukiwania
             // w trybie gmina/dzielnica

var gd_InsideInit;
var gd_doNotDisable;
var gd_ForArchive;
var gd_muStr;
var gd_noDynUpdate;

// Tu można podstawić funkcję do odpalenia w razie zablokowania/odblokowania kontrolek.
var gd_OnDisabledChange;

// Do wywołania przy starcie strony.
// locationIDs - string; pooddzielane przecinkami
function LocationsGDInit(formName, locationIDs, doNotDisable, forArchive, muStr, noDynUpdate)
{
  gd_doNotDisable = doNotDisable;
  gd_ForArchive = forArchive;
  gd_muStr = muStr;
  gd_noDynUpdate = noDynUpdate;
  gd_form = document.forms[formName];
  locationIDs = RepairCommaList(locationIDs);
  gd_InsideInit = true;
  LocationsGDRefreshLocationControls(locationIDs);
  // UWAGA: gminy/dzielnice nie są jeszcze tutaj wstawione, bo to się dzieje asynchronicznie
  // przez iframe.
  // Patrz: gd_FillGDControl()
}

var gd_locationIDs; // służy do okrężnego przekazania listy lokalizacji do funkcji gd_FillGDControl()

// locationIDs - string; pooddzielane przecinkami
function LocationsGDRefreshLocationControls(locationIDs)
{
  var provinces = CommaStringListToObject(locationIDs, 6);
  var powiats = CommaStringListToObject(locationIDs, 9);
  var pc = gd_form.elements['s_PropertyTypeID'].value.substr(0, 1);
  var lt = gd_form.elements['s_TypeOfListing'].value;
  LocationSelectFill(gd_form.elements['gd_province'], l_provincesDsc, lt, pc, 'PL-', provinces);
  LocationSelectFill(gd_form.elements['gd_powiat'], l_powiatsDsc, lt, pc,
                     gd_form.elements['gd_province'].value, powiats);
  gd_locationIDs = locationIDs;
  if(gd_noDynUpdate){
    gd_FillGDControl(l_gdDsc);
  }else{
    open(GetVirtDir() +'locations/gd_dynupdate_' + gd_muStr + '_' + gd_form.elements['gd_province'].value + 
       (gd_ForArchive ? 'Archive' : '') + '.htm', 'gd_workarea');
  }
}

function gd_provinceOnChange(cntrl)
{
  LocationsGDRefreshLocationControls(cntrl.value);
}

function gd_powiatOnChange(cntrl)
{
  LocationsGDRefreshLocationControls(cntrl.value);
}

// Wywoływana z iframe (asynchronicznie)
// Lokalizacje do pokazania powinny być w gd_locationIDs.
function gd_FillGDControl(gdDsc)
{
  var pc = gd_form.elements['s_PropertyTypeID'].value.substr(0, 1);
  var lt = gd_form.elements['s_TypeOfListing'].value;
  var powiatID = gd_form.elements['gd_powiat'].value;
  LocationSelectFill(gd_form.elements['s_LocationID'], (powiatID.length == 9 ? gdDsc : ''), lt, pc,
                     powiatID, gd_locationIDs);
  if(gd_InsideInit && gd_locationIDs != '' && !gd_doNotDisable &&
     SelectedOptionsAsCommaString(gd_form.elements['s_LocationID'])!= SortCommaList(gd_locationIDs)){
    // nie można wyświetlić wszystkich lokalizacji
    gd_DisableLocations(gd_locationIDs);
  }else{
    //gd_EnableLocations();
  }
  gd_InsideInit = false;
}

// Uniemożliwia wybór lokalizacji i daje odpowiednią informację kierującą do lokalizacji zaawansowanych.
// Ustawia kontrolki tak, że lokalizacje locationIDs zostaną przekazane do następnej strony
// (czyli są ukryte w fomularzu).
function gd_DisableLocations(locationIDs)
{
  LocationSelectFill(gd_form.elements['gd_province'], '', '0', '0', '', '');
  LocationSelectFill(gd_form.elements['gd_powiat'], '', '0', '0', '', '');
  LocationSelectFill(gd_form.elements['s_LocationID'], '', '0', '0', locationIDs, '');
  gd_form.elements['gd_powiat'].disabled = true;
  gd_form.elements['gd_province'].disabled = true;
  if(gd_OnDisabledChange) gd_OnDisabledChange(true);
}

function gd_EnableLocations()
{
  gd_form.elements['gd_powiat'].disabled = false;
  gd_form.elements['gd_province'].disabled = false;
  if(gd_OnDisabledChange) gd_OnDisabledChange(false);
}

// Po zmianie zewnętrznych parametrów (typ oferty, ...)
function gd_Refresh()
{
  if(gd_form.elements['gd_province'].disabled) return;
  LocationsGDRefreshLocationControls(SelectedOptionsAsCommaString(gd_form.elements['s_LocationID']));
}

