﻿function WantedWines() {

    this.Features = $H();
    this.AppliedFilters = '';
    this.AppliedValues = $H();
    this.Init = function() {

        $$('li.sikWantedWines').each(
            function(li) {
                var ddl = li.down('select');
                WW.Features.set($(ddl).id.sub('WW', ''));
                Event.observe(ddl, 'change', WW.Reload);
            });
    }

    this.Reload = function(event) {
        //WW.AppliedValues.clear();
        var e = $(Event.element(event));
        var caraId = e.id.sub('WW', '');
        var ddl = null;
        var tmp = '';
        //Applied filters
        WW.Features.each(function(feat) {
            ddl = $('WW' + feat.key);
            tmp = tmp + ddl.options[ddl.selectedIndex].value;
            WW.AppliedValues.set(feat.key, ddl.options[ddl.selectedIndex].value)

        });

        WW.AppliedFilters = tmp;
        
        WW.Features.each(function(feat) {
            ddl = $('WW' + feat.key);
            if (feat.key != caraId) {
                //Mise a jour des dropdownlists: 1 par une
                //On doit passer la liste des filtres appliqués ainsi que FamiId  et CaraId a refresh
                ddl = $('WW' + feat.key);
                AskRemote('/Ajax/WantedWines/Fragment/GetFilterValuesForWW.aspx?FamiId=1001&CaraId=' + feat.key + '&AppliedFilters=' + encodeURIComponent(WW.AppliedFilters),
				WW.FilterValuesFragmentOk, WW.FilterValuesFragmentFailed, feat.key);
                //alert(WW.AppliedFilters);
            }
        });
        AskRemote('/Ajax/WantedWines/Fragment/GetUrlForWW.aspx?FamiId=1001&CaraId=' + caraId + '&AppliedFilters=' + encodeURIComponent(WW.AppliedFilters),
				WW.FilterUrlFragmentOk, WW.FilterUrlFragmentFailed, caraId);
        
        
    }

    this.FilterValuesFragmentOk = function(fragment, param) {
        $('WW' + param).update(fragment);
        $('WW' + param).childElements().each(function(option) {
            if (option.value == WW.AppliedValues.get(param)) {
                option.selected = true;
            }
        });
        
    }

    this.FilterValuesFragmentFailed = function(err) 
    {
        alert(err);
    }


    this.FilterUrlFragmentOk = function(fragment, param) {
       
        $('sikWWFire').href = fragment;

    }
    this.FilterUrlFragmentFailed = function(err) {
        alert(err);
    }
}

function Init() {

    WW.Init();

}
var WW = new WantedWines();
Event.observe(window, 'load', Init);


