FormDestSender.prototype.send = null;

/**
 * Tworzy instancję klasy FormSender
 * Zaleca się aby formularz opakowany był w jakiś element np. div
 * zwłaszcza w przypadku, kiedy nieznany jest element docelowy.
 *
 * @version 1.00
 */

function FormDestSender(formId) {

    this.form = $el(formId);
    
    if (!FormDestSender.functionCreated) {
        FormDestSender.functionCreated = true;

        FormDestSender.prototype.send =
        function(sendButton, target) {

            var instance = this;
            var form = instance.form;
            var formInner = form.innerHTML;
//            var target = dest == formId ?: form.parentElement;
//            var target = target ? target : null;
            var action = form.action;
            var method = form.method;
            var enctype = form.enctype;

            if (form.onsubmit) if (!form.onsubmit()) return;

            var params = "";
            for (var n = 0; n < form.elements.length; n++) {
                var input = form[n];

                input.disabled = true;
                if ( input.name && ( input.type != 'button'
                                  && input.type != 'reset'
                                  || input == sendButton)) {

                    if (params.length) params += "&";
                    params += input.name + "=" + input.value;
                }

            }

            
            var sender = new DestSender(target, method, enctype);
            sender.listener = 
                function(txt, xml, sender) {
                
//                    if (!sender.status && sender.statusText) {
                    if (xml && sender.statusText) {
                        
                        var div = document.createElement('h2');
                        
                        var button = document.createElement(sendButton.nodeName);
                        if (sendButton.nodeName == 'INPUT') {
                            button.value = "OK";
                            button.type = "button";
                        }
                        else button.innerHTML = "OK";

                        button.className = 'pannelButton';
                        button.onclick = function(){
                            form.innerHTML = formInner ;
                        }

                        form.innerHTML = '';
                        form.appendChild(div);
                        div.innerHTML = sender.statusText;

                        form.appendChild(button);
                        
                        return false;
                    }

                    var dalej = xml ? true : false;
                    if (!dalej) form.innerHTML = formInner;
                    return dalej;
                };

//            form.innerHTML =
//                '<h3>Trwa wysyłanie danych</h3>';

            sender.send(action, null, params);

        }
    }
}

