/* --------------------- Copyright Marcin Zadęcki - WSZYSTKIE PRAWA ZASTRZEŻONE --------------------- */
/* ---------- Wykorzystywanie całości lub fragmentów kodu wyłącznie za zgodą Marcin Zadęcki --------- */
function LoadLocations(progressAnimFunc)
{
    if(progressAnimFunc) this.progressAnimFunc = progressAnimFunc;
}
LoadLocations.prototype = {
     FILE_SET_OPT : ''
    ,QS_SET_OPT   : ''
    ,QS_ADDITIONAL: ''
    ,DEFAULT_TEXT : '-------- wybierz --------'
    ,DEFAULT_VALUE: ''
    ,DEFAULT_CLASS: 'option_inactive'
    ,XH_OBJ         : null
    ,progressAnim: function(bool)
    {
        if(this.progressAnimFunc) this.progressAnimFunc(bool);
    }
    //Dodawanie option
    ,addOpt: function(oSelect, sText, sValue, sClass)
    {
        for(var i = 0; i < oSelect.length; i++)
        {
            if(oSelect[i].value == sValue) return;
        }
        oSelect.length++;
        i = oSelect.length - 1;
        oSelect.options[i].text  = sText;
        oSelect.options[i].value = sValue;
        if(sClass) oSelect.options[i].className = sClass;
        return;
    }
    //Czyszczenie select
    ,clearOpts: function(oSelect)
    {
        while(oSelect.length > 0) oSelect.options[0] = null;
        return;
    }
    //Ustaw wartość domyślną select
    ,resetOpts: function(oSelect)
    {
        //Najpierw wyczyść opcje
        this.clearOpts(oSelect);
        //Dodaj domyślną opcję
        this.addOpt(oSelect, this.DEFAULT_TEXT, this.DEFAULT_VALUE, this.DEFAULT_CLASS);
        return;
    }
    //Pobierz dane o wybranej lokalizacji
   ,readyStateSetOpt: function(obj)
    {
        obj.OBJ_COPY.progressAnim(false);
        if(!obj.XH_OBJ.responseText) return;
        var aDbData = obj.XH_OBJ.responseText.split(String.fromCharCode(30));
        var aItem   = new Array();
        for(var i = 0; i < (aDbData.length - 1); i++)
        {
            if(!aDbData[i]) continue;
            var aItem = aDbData[i].split(String.fromCharCode(31));
            if(aItem.length < 2) continue;
            obj.OBJ_COPY.addOpt(obj.OBJ_TARGET, aItem[1], aItem[0]);
        }
        if(obj.VALUE_TO_SELECT != '')
        {
            for(var i = 0; i < obj.OBJ_TARGET.length; i++)
            {
                if(obj.OBJ_TARGET.options[i].value == obj.VALUE_TO_SELECT) obj.OBJ_TARGET.options[i].selected = true;
            }
        }
        return;
    }
   ,setOpt: function(oTarget, oSource, sValue)
    {
        this.resetOpts(oTarget);
        var sSourceValue = oSource.options[oSource.selectedIndex].value;
        if(sSourceValue == '') return;
        this.progressAnim(true);
        this.XH_OBJ                 = new XHclient();
        this.XH_OBJ.XH_XML_FORMAT   = false;
        this.XH_OBJ.XH_SHOW_ERR     = true;
        this.XH_OBJ.OBJ_TARGET      = oTarget;
        this.XH_OBJ.VALUE_TO_SELECT = sValue;
        this.XH_OBJ.OBJ_COPY        = this;
        this.XH_OBJ.XHload(this.FILE_SET_OPT, 'GET', this.QS_SET_OPT.replace(/&amp;/ig, '&') + this.QS_ADDITIONAL.replace(/&amp;/ig, '&') + '&selected=' + sSourceValue, this.readyStateSetOpt);
        return;
    }
}
