/*
 * Obiekt odpowiedzialny za obsługę animacji głównego menu
 * @autor Przemysław Schultek <vanoode@gmail.com>
 * @version $0.1$
 * 
 */

function message() {
    dojo.require("dijit.form.Button");
    dojo.require("dijit.Dialog");
    this.dialogBox = '';
    this.info = '';
}

message.prototype.init = function() {
    var self = this;
    // przygotowanie contentu boxa
    var boxContent = '<form action="javascript:void(0);" method="post"> ' +
                        '<p id="infoBox"></p>' +
                        '<p><label for="name">imię i nazwisko:*</label><br /><input id="name" type="text" name="name" value="" /></p>' +
                        '<p><label for="compamny">firma:</label><br /><input id="companyname" type="text" name="company" value="" /></p>' +
                        '<p class="part"><label for="email">e-mail:*</label><br /><input id="email" type="text" name="email" value="" /></p>' +
                        '<p class="part"><label for="phone">telefon:</label><br /><input id="phone" type="text" name="phone" value="" /></p>' +
                        '<p class="textareaWrap"><label for="message">wiadomość:*</label><br /><textarea id="message" name="message"></textarea></p>' +
                        '<p class="checkBoxWrap"><input id="checkBox" type="checkbox" name="sendcopy" value="" /><label for="name">Wyślij kopię wiadomości na mój e-mail.</label></p>' +
                        '<div class="boxButtonsWrap"><p>* - Pola wymagane</p>' +
                            '<a href="javascript:void(0);" id="sendQuestion" name="Wyślij"><a id="cancelQuestion" href="javascript:void(0);" title="Anuluj">Anuluj</a></a>' +
                        '</div>' +
                    '</form>';
    self.dialogBox = new dijit.Dialog({
        id: 'messageBox',
        content: boxContent,
        onCancel : function() {
            var infoBox = dojo.byId('infoBox');
            dojo.style("infoBox", "display", "none");
            dojo.style("infoBox", "opacity", "0");
            infoBox.innerHTML = '';
            dojo.query("#messageBox > div").style("backgroundPosition",'250px  -15px');

        }
    });
    self.info = new dijit.Dialog({
        id: 'messageBoxSuccess',
        content: "<p>Wiadomość została wysłana.</p>"
    });
    // dodanie metod gdzie trzeba
    // TODO: wysyłanie na server przechwytywanie odpowiedzi komunikaty
    dojo.style("contactUsHover", "opacity", 0);
    dojo.connect(dojo.byId('sendQuestion'), "onclick", function() {self.send()});
    dojo.connect(dojo.byId('cancelQuestion'), "onclick", function() {
        var infoBox = dojo.byId('infoBox');
        dojo.style("infoBox", "display", "none");
        dojo.style("infoBox", "opacity", "0");
        infoBox.innerHTML = '';
        dojo.query("#messageBox > div").style("backgroundPosition",'250px  -15px');
        self.dialogBox.hide();
    });
    var fadeTrigger = '';
    dojo.connect(dojo.byId('contactUs'), "onmouseover", function() {
        var fadeArgs = {
            node: 'contactUsHover',
            duration: 900
        };
        fadeTrigger = dojo.fadeIn(fadeArgs);
        fadeTrigger.play();
    });
    dojo.connect(dojo.byId('contactUs'), "onmouseout", function() {
        if (fadeTrigger) {
            fadeTrigger.stop();
        }

        var fadeArgs = {
            node: 'contactUsHover',
            duration: 500
        };
        dojo.fadeOut(fadeArgs).play();
    });
}

message.prototype.showBox = function() {
    this.dialogBox.show();
    var fadeArgs = {
        node: 'messageBox',
        duration: 1000
    };
    dojo.fadeIn(fadeArgs).play();
}

message.prototype.send = function() {
    var self = this;
    // wyczyszczenie komunikatów o ile istnieją
    var infoBox = dojo.byId('infoBox');
    dojo.style("infoBox", "display", "none");
    infoBox.innerHTML = '';
    var infoBox = dojo.byId('infoBox');
    dojo.style("infoBox", "display", "block");
    // ustawienie bg jak pojawia sie komunikaty
    var newHeigh = -15 + dojo.byId('infoBox').offsetHeight;
    dojo.query("#messageBox > div").style("backgroundPosition",'250px ' + newHeigh + 'px');
    // dodanie ładowania
    dojo.style("sendQuestion", "backgroundImage", "url(themes/advertia/img/ajax-loader.gif)");

    
    var sendContent = {
        'name' : dojo.byId('name').value,
        'company' : dojo.byId('companyname').value,
        'email' : dojo.byId('email').value,
        'phone' : dojo.byId('phone').value,
        'message' : dojo.byId('message').value,
        'copy' : dojo.byId('checkBox').checked
    };
    
    var xhrArgs = {
        url: "messages/send.php",
        content : {
          'sendmail' : dojo.toJson(sendContent)
        },
        load: function(data) {
            data = dojo.fromJson(data);
            if (data.success) {
                self.dialogBox.hide();
                self.info.show();
                dojo.style("messageBoxSuccess", "opacity", "1");
                var fadeOutArgs = {
                    node: 'messageBoxSuccess',
                    duration: 3500,
                    onEnd : function() {
                        self.info.hide();
                    }
                };
                dojo.fadeOut(fadeOutArgs).play();

            } else {
                var infoBox = dojo.byId('infoBox');
                dojo.style("infoBox", "display", "block");
                // ustawienie bg jak pojawia sie komunikaty
                var newHeigh = -15 + dojo.byId('infoBox').offsetHeight;
                dojo.query("#messageBox > div").style("backgroundPosition",'250px ' + newHeigh + 'px');
                for (var iterator in data.error) {
                    infoBox.innerHTML += data.error[iterator] + '<br />';
                }
                var fadeArgs = {
                    node: 'infoBox',
                    duration: 1000
                };
                dojo.fadeIn(fadeArgs).play();
            }
            dojo.style("sendQuestion", "backgroundImage", "url(themes/advertia/img/bg_send.png)");
            dojo.connect(dojo.byId('sendQuestion'), "onmouseover", function() {
                dojo.style("sendQuestion", "backgroundImage", "url(themes/advertia/img/bg_send_hover.png)");
            });
            dojo.connect(dojo.byId('sendQuestion'), "onmouseout", function() {
                dojo.style("sendQuestion", "backgroundImage", "url(themes/advertia/img/bg_send.png)");
            });
        },
        error: function(error) {
            var infoBox = dojo.byId('infoBox');
            infoBox.innerHTML += 'Wystąpiły nieoczekiwane problemy. Prosimy spróbować ponownie później.';
        }
    }
    dojo.xhrPost(xhrArgs);

}
