document.observe('dom:loaded', function() {
    if ($('subscribeNewsletter')) {
        var options = {
            formElt: $('subscribeNewsletter'),
            afterCallback: function(event, transport) {
                if(transport) {
                    if(transport.responseText.isJSON() && getServerError(transport.responseText)) return;
                    var data = transport.responseText.evalJSON(true);
                    $('partyId').value = data.partyId;
                    new Ajax.Request($('profileSurvey').action, {
                        asynchronous: false,
                        parameters: $('profileSurvey').serialize(),
                        onSuccess: function(transport) {
                            if(transport.responseText.isJSON()) {
                                var serverError = getServerError(transport.responseText);
                                if(serverError) displayErrorMessage(serverError);
                                else new Dialog({title:'Notification', content:$('subscribeNewsletter').down('.successMsg').innerHTML, autoOpen:true});
                            }
                        }
                    });
                }
            }
        };
        ajaxifyForm(options);
    }
    $$('.submitSubscribeNewsletter').each(function(elt) {
        Event.observe(elt, 'click', function(event) {
            event.stop();
            new Ajax.Request($('ContactForm').action, {
                asynchronous: false,
                parameters: $('ContactForm').serialize(),
                onSuccess: function(transport) {
                    new Dialog({title:'Notification', content:$('ContactForm').down('.successMsg').innerHTML, autoOpen:true});
                }
            });
        });
    });

    function initSubscribeNewsletterObservers() {
      if($('newsletterSubscriptions'))
        $('newsletterSubscriptions').select('form.ajaxMe').each( function (elt) {
            var options = {
                formElt: elt,
                toUpdate: 'newsletterSubscriptions',
                displayErrorMethod: 'dialog',
                afterCallback: function(event, transport) {
                    if(transport && transport.responseText && !transport.responseText.isJSON())
                        initSubscribeNewsletterObservers();
                }
             };
            ajaxifyForm(options);
        });
    }
    initSubscribeNewsletterObservers();
});
