//
// Created by KSI ( www.xksi.pl )
//

function search_kontroler(nazwa) {
    this.myname = nazwa;
    this.element_kontener = new Array();
    this.obiekt_kontener = new Array();
    this.slownik_kontener = new Array();
    this.tablicaSlownikowa = new Array();
    
    this.OnChange = function(obiekt_id) {
    // pod to zdazenie mozna podpiac dowolna funkcje zewnetrzna
       //console.debug('OnChange '+obiekt_id);
       //console.debug( this.element_kontener[obiekt_id].values );
    }
    this.OnChangeTrigger = function (obiekt_id) {
    // event wywolywany jest poprzez obiekty nalezace do kontenera
        this.OnChange(obiekt_id); 
        return this.GetValues(obiekt_id, this);
    }
    this.SetValues = function (obiekt_id, tab_wartosci ) {
    // ustawia wartosci obiektu, te ktore sa wybrane JSON
        this.obiekt_kontener[ this.element_kontener[obiekt_id].type ].SetValues(obiekt_id, this, tab_wartosci);
    }    
    this.UnSetValues = function (obiekt_id, tab_wartosci ) {
    // ustawia wartosci obiektu, te ktore sa wybrane JSON
        this.obiekt_kontener[ this.element_kontener[obiekt_id].type ].UnSetValues(obiekt_id, this, tab_wartosci);
    }    
    this.GetValues = function (obiekt_id) {
    // pobiera, wybrane przez uzytkownika wartosci obiketu
        return this.obiekt_kontener[ this.element_kontener[obiekt_id].type ].values;
    }    
    this.AddItems = function (obiekt_id, tab_wartosci) {
    // dodaje wartosc do mozliwych wartosci do wyboru
        this.obiekt_kontener[ this.element_kontener[obiekt_id].type ].AddItems(obiekt_id, this, tab_wartosci);
    }    
    this.RemoveItems = function (obiekt_id, tab_wartosci) {
    // usuwa wartosc z wartosci do wyboru
        this.obiekt_kontener[ this.element_kontener[obiekt_id].type ].RemoveItems(obiekt_id, this, tab_wartosci);
    }
    this.initAll = function() {
      // zaladuj wszystko startowo
      for ( obiekt_id in this.element_kontener) {
        try {
        this.Init(obiekt_id);
        } catch (ex) {
        //console.debug(ex);
        }
      }
    }  
    this.Init = function(obiekt_id) {
        this.obiekt_kontener[this.element_kontener[obiekt_id].type].Init(obiekt_id, this);
    }
}