/* Zutaten und Optionen */
window.addEvent('domready', function(){
	if($('zutaten'))
	{
        var form = $('zutaten');
        $('OK').addEvent('click', function(e){
            e.stop();
            var rezept = form.getElement('input[type=hidden]').get('value').toInt().limit(1,99);
            var personen = form.getElement('input[type=text]').get('value').toInt();
            getZutaten(rezept,personen);
        });
    }
    if($('filter'))
    {
        var filter = new getRezepte({
            'containerId': 'filter',
            'links': [
                '',
                'vorspeise',
                'hauptgericht',
                'dessert',
                'vegetarisch'
            ],
            'param': 'filter',
            'target': 'kategorien'
        });
    }
});

var changeZutaten = function(d)
{
    var form = $('zutaten');
    var rezept = form.getElement('input[type=hidden]').get('value').toInt();
    var personen = form.getElement('input[type=text]').get('value').toInt().limit(1,99);
    switch(d){
        case '+':
            personen+=1;
            break;
        case '-':
            personen-=1;
            break;
        default:
            break;
    }
    personen = personen.limit(1,99);
    form.getElement('input[type=text]').set('value', personen);    
    getZutaten(rezept,personen);  
}

var getZutaten = function(rezept,personen)
{
    var url = base_url+'ajax/zutaten';
    var target = $('zutaten_liste');

    new Request.JSON({
        url: url,
        onSuccess: function(responseJSON){
            target.empty();
            var ul = new Element('ul').inject(target);
            responseJSON.each(function(obj){
                var text = obj.menge+' ';
                text+= obj.einheit != '' ? obj.einheit+' ' : '';
                text+= obj.plural != '' ? obj.plural : obj.name;
                new Element('li').set('text',text).inject(ul);
            });
        }
	}).post({
		'rezept': rezept,
        'personen': personen
	});                    
}
 
var getRezepte = new Class({
   
    initialize: function(obj)
    {
        this.activeLink = 0;
        this.cssClass = 'active';
        this.container = $(obj.containerId);
        this.links = [];
        this.target = $(obj.target);
        if(obj.links != null)
        {
            obj.links.each(function(link){
                this.links.push(link);
            },this);
        }
        this.param = obj.param;
        this.attach();
    },
    getLinks: function()
    {
        return this.container.getElements('a');
    },
    attach: function()
    {
        var linkElements = this.getLinks();
        
        linkElements.each(function(el,i){
            el.addEvent('click',(function(e){
                e.stop();
                this.sendRequest(i);
            }).bind(this));
        }, this);
    },
    sendRequest: function(i)
    {
        var request = new Request.JSON({
            url: base_url+'ajax/getRezepteJSON/',
            onComplete: (function(json) {
                var category = '';
                this.target.empty();
                this.setActive(i);
                json.each(function(obj){
                    if(obj.kategorie != category)
                    {
                        this.target.adopt(new Element('h2').set('html', obj.kategorie));
                        ul = new Element('ul');
                        this.target.appendChild(ul);
                        category = obj.kategorie;
                    }
                    var a = new Element('a', { 'href': obj.kurz+'.html' }).set('html',obj.name).addEvent('click', function(e){
                            e.stop();
                            rank(obj.rezept_id, a);
                        });
                    ul.appendChild(new Element('li').adopt(a));
                }, this);
            }).bind(this)
        }).post({
            //'search': this.links[i],
            'category': this.links[i],
            'type': 'full'
            });
    },
    setActive: function(i)
    {
        this.container.getElement('a.'+this.cssClass).removeClass(this.cssClass);
        this.activeLink = i;
        var linkElements = this.getLinks();
        linkElements[i].addClass(this.cssClass);
    }

});