document.observe("dom:loaded", function() {
    $$('#cart select.quantity').invoke('observe', 'change', function() {
        this.form.submit()
    });
    // TODO: disabled inputs nehmen kein onclick - hier sollte ein Klick auf ein Eingabefeld die Felder aktivieren.


    // Mögl. Lösung: nur Ausgrauen-CSS-Klasse setzen
    if ($('customer_different_delivery_address')) {
        var toggler = $('customer_different_delivery_address')
        Ehapa.toggleDeliverForms(toggler.checked)
        toggler.observe('change', function(evt) {
            Ehapa.toggleDeliverForms(this.checked)
        });
        $$('.right .formTable').invoke('observe', 'click',
                function() {
                    $('customer_different_delivery_address').checked = true;
                    Ehapa.toggleDeliverForms(true)
                }
                )
    }

    if ($('flashWrap')) {
        $('flashWrap').blindDown();
    }


    // TODO: Bug: toggleDefaultValue unterbricht dom:loaded, funktioniert nur am Ende des Blocks
    Ehapa.toggleDefaultValue('q');

});

var Ehapa = {
    observeCarouselText : function(carousel_id) {
        var carousel = $(carousel_id)
        var images = carousel.select('li img')
        images.invoke('observe', 'mouseover', function() {
            this.up(".carousel").down(".infotext").update(this.attributes["alt"].value)
        });
        images.invoke('observe', 'mouseout', function() {
            carousel.select('.infotext').invoke('update', "")
        });
    }
}

Ehapa.toggleDeliverForms = function(bool) {
    togglefunc = bool ? 'enable' : 'disable'
    $$('.right .formTable input').invoke(togglefunc)
    $$('.right .formTable select').invoke(togglefunc)
}


Ehapa.noImageObserver = function(selector) {
    $$(selector).invoke('observe', 'error', function() {
        if (!this.hasClassName('notfound')) {
            this.src = this.src.gsub(/\/\d\/(.*)$/, '/keinbild.png')
            this.addClassName('notfound')
        }
    })
}

Ehapa.toggleDefaultValue = function(id) {
    if ($(id)) {
        $(id).observe('click', function(event) {
            Event.stop(event);
            return this.value = (this.value == this.defaultValue) ? "" : this.value;
        });

    }

}

/* Dynamische Erweiterung Validierung Urlaubsservice-Formular */
Ehapa.addRequiredClassToFields = function(additionalRequiredFields) {
    additionalRequiredFields.each(function(item) {
        if($(item)) {
            $(item).addClassName('required');
        }
    });
}

Ehapa.removeRequiredClassFromFields = function(additionalRequiredFields) {
    additionalRequiredFields.each(function(item) {
        if($(item)) {
            $(item).removeClassName('required');
            $(item).removeClassName('validation-failed');
            divId = 'advice-required-' + item;
            if($(divId)) {
                $(divId).hide();
            }
        }
    });
}

/* Tooltip Prämien auf Abo-Artikelseite */
Event.observe(window,"load",function() {
    $$("ol.bonus_products div.inner img").findAll(function(node){
        return node.getAttribute('title');
    }).each(function(node){
        new Tooltip(node,node.title);
        node.removeAttribute("title");
    });
});
/* Tooltip Abos auf Prämien-Artikelseite */

Event.observe(window,"load",function() {
    $$("ol.abo_articles div.inner").findAll(function(node){
        return node.getAttribute('title');
    }).each(function(node){
        new Tooltip(node,node.title);
        node.removeAttribute("title");
    });
});
