/* 
 * Formulário dinâmico
 */
function dyn_form(form, url) {
    form = $(form);
    form._url = url;
    // Trata input text
    form.getElementsBySelector('input[type=text]').each(function (e) {
        Event.observe(e, 'focus', function (e) {
            e = Event.element(e);
            if (e.value == e.title) {
                e.value = '';
            }
        })
        Event.observe(e, 'blur', function (e) {
            e = Event.element(e);
            if (e.value == '') {
                e.value = e.title;
            }
        })
    })
    // Trata textarea
    form.getElementsBySelector('textarea').each(function (e) {
        Event.observe(e, 'focus', function (e) {
            e = Event.element(e);
            if (e.innerHTML == e.title) {
                e.innerHTML = '';
            }
        })
        Event.observe(e, 'blur', function (e) {
            e = Event.element(e);
            if (e.innerHTML == '') {
                e.innerHTML = e.title;
            }
        })
    })
    if (!$(form.id + '_feedback')) {
        new Insertion.Bottom(form, '<span id="' + form.id + '_feedback"></span>');
    }
    // Trata submit
    Event.observe(form, 'submit', function (e) {
        new Ajax.Updater(this.id + '_feedback', this._url ? this._url : location, {parameters: Form.serialize(form), evalScripts: true, onSuccess: function (r, x) {
            if (x && x.ok) {
                this.getElementsBySelector('input[type=text]').each(function (e) {
                    e.value = e.title;
                })
                this.getElementsBySelector('textarea').each(function (e) {
                    e.innerHTML = e.title;
                })
            }
        }.bind(this), onException: function (r, e) {
            alert(e.message);
        }});
        Event.stop(e);
    }.bind(form))
}

