﻿
/// <reference name="MicrosoftAjax.js"/>
Type.registerNamespace("TraderMagazine");

TraderMagazine.Contact = function() {
    TraderMagazine.Contact.initializeBase(this);




}

TraderMagazine.Contact.prototype = {
    initialize: function() {
        TraderMagazine.Contact.callBaseMethod(this, 'initialize');

        this.init();

    },
    /// <summary>
    /// insert Contact content
    /// </summary>
    initHandler: function() {
        $addHandler($get("ContactSend"), "click", PAGE.sendMessage);
        $addHandler($get("ContactDelFields"), "click", PAGE.clearInput);



    },

    /// <summary>
    /// get Contact page
    /// </summary>
    init: function() {
        TradersMag.WebService.PageService.CreateContact(this.insertContactContent, GLOBALS.callError);
    },

    /// <summary>
    /// insert Contact content
    /// </summary>
    insertContactContent: function(html) {



        $get("Content").innerHTML = "<div id='ContactPanel' style='padding:10px;background-color:#fff;'></div>";
        $get("ContactPanel").innerHTML = html;
        PAGE.initHandler();

    },
    /// <summary>
    /// send message handler
    /// </summary>
    clearInput: function(e) {
        $get("ContactEMail").value = "";
        $get("ContactName").value = "";
        $get("ContactSubject").value = "";
        $get("ContactMessage").value = "";
        PAGE.clearErrors();
    },
    /// <summary>
    /// send message handler
    /// </summary>
    sendMessage: function(e) {
        PAGE.readInput();
        if (PAGE.checkInput()) {
            COMP.createLoaderWhite($get("ContactPanel"), 300);
            TradersMag.WebService.PageService.SendContactInfo(PAGE.Contact, PAGE.confirmMessageSended, GLOBALS.callError);
            
        }
    },
    /// <summary>
    /// confirmMessageSended
    /// </summary>
    confirmMessageSended: function(msg) { 
        if (msg == "ok") {
            $get("ContactPanel").innerHTML = "<div style='padding:10px;margin:10px;'>" + Text.contact.confirm + "</div>";
        } else {
            $get("ContactPanel").innerHTML = "<div style='padding:10px;margin:10px;'>" + Text.errors.e20 + "</div>";
        }
    },
    /// <summary>
    /// register attempt
    /// </summary>
    readInput: function() {
        PAGE.clearErrors();
        PAGE.Contact = new Object();
        PAGE.Contact.email = $get("ContactEMail").value;
        PAGE.Contact.name = $get("ContactName").value;
        PAGE.Contact.subject = $get("ContactSubject").value;
        PAGE.Contact.message = $get("ContactMessage").value;

    },
    /// <summary>
    /// init function
    /// </summary>
    clearErrors: function() {
        ERROR.hideError("ContactEMailError");
        ERROR.hideError("ContactNameError");
        ERROR.hideError("ContactSubjectError");
        ERROR.hideError("ContactMessageError");

    },
    /// <summary>
    /// init function
    /// </summary>
    checkInput: function() {
        var success = true;

        if (!ERROR.checkField(PAGE.Contact.name, "ContactNameError", "singleline", 2, Text.errors.e17)) success = false;
        if (!ERROR.checkField(PAGE.Contact.subject, "ContactSubjectError", "singleline", 5, Text.errors.e28)) success = false;
        if (!ERROR.checkField(PAGE.Contact.message, "ContactMessageError", "multiline", 5, Text.errors.e18)) success = false;
        if (!ERROR.checkEMail(PAGE.Contact.email)) {
            ERROR.showError("ContactEMailError", Text.errors.e19);
            success = false;
        }
        return success;
    },
    /// <summary>
    // editor function : edit text
    /// </summary>
    editAddress: function() {
    var html = $get("TradersAddress").innerHTML;
        var c = "<TEXTAREA style='height:150px' id='AddressEditor' class='ContactTextBox' name='AddressEditor'>" + html + "</TEXTAREA>";
        c += "<br><br><a onclick='PAGE.saveAddress()'>Speichern</a>";
        $get("TradersAddress").innerHTML = c;
    },
    /// <summary>
    // editor function : edit text
    /// </summary>
    saveAddress: function() {
    var c = $get("AddressEditor").value;
        TradersMag.WebService.PageService.SaveAddress(c, PAGE.insertContactContent, GLOBALS.callError);
    },
    dispose: function() {
        //Add custom dispose actions here
        delete PAGE.Contact;
        if ($get("ContactSend")) $clearHandlers("ContactSend");
        if ($get("ContactDelFields")) $clearHandlers("ContactDelFields");
        TraderMagazine.Contact.callBaseMethod(this, 'dispose');
    }
}
TraderMagazine.Contact.registerClass('TraderMagazine.Contact', Sys.Component);

if (typeof (Sys) !== 'undefined') Sys.Application.notifyScriptLoaded();
