﻿
Type.registerNamespace("TraderMagazine");

TraderMagazine.Globals = function() {
    TraderMagazine.Globals.initializeBase(this);
    //  global images

    this.WEBSERVICE_CALL = null;
    this.username = _Username;
    delete _Username;

    if (this.username != "") this.setUser(this.username);

    Sys.Debug.trace(_ServerEnvironment);
    this.ServerEnvironment = _ServerEnvironment;
    delete _ServerEnvironment;
    /*
    this.subscriptionBasket = Array.parse(_SubscriptionInBasket);
    delete _SubscriptionInBasket;

    this.productBasket = Array.parse(_ProductInBasket);
    delete _ProductInBasket;
    */
    this.PageParameter = 0;


    this.subscriptionBasket = [];
    this.productBasket = [];


   
}

TraderMagazine.Globals.prototype = {
    initialize: function() {
        TraderMagazine.Globals.callBaseMethod(this, 'initialize');



    },
    /// <summary>
    // trace web service error
    /// </summary>
    setUser: function(user_name) {
        this.username = user_name;
        var DIV = document.createElement("DIV");
        //  DIV.style.marginRight = "10px";
        DIV.style.fontSize = "11px";
        DIV.style.color = "#666";
        DIV.innerHTML = Text.login_area.you_are.replace(" ", "&nbsp;") + "&nbsp;<span style='color:#822f39;'>" + user_name + "</span>&nbsp;<span style='color:#ccc;'>|</span>&nbsp;";
        $get("LoggedInAs").appendChild(DIV);

        $get("HeadLogin").innerHTML = "Logout";
        $get("HeadLogin").onclick = function() { MENU.logout(); }

    },
    /// <summary>
    // trace web service error
    /// </summary>
    webServiceError: function(result) {

        Sys.Debug.trace(result);

    },
    /// <summary>
    // create formatted time output from unix timestamp
    /// </summary>
    TS2Time: function(TS) {
        var _d = new Date(this.subtractTimezoneOffset(Number(TS)) * 1000);
        var hours = (_d.getHours() < 10) ? "0" + _d.getHours() : _d.getHours();
        var mins = (_d.getMinutes() < 10) ? "0" + _d.getMinutes() : _d.getMinutes();
        var _t = hours + ":" + mins;
        return _t;
    },
    /// <summary>
    // create formatted date output from unix timestamp
    /// </summary>
    TS2Date: function(TS) {
        var _d = new Date(this.subtractTimezoneOffset(Number(TS)) * 1000);
        var mo = (_d.getMonth() < 9) ? "0" + (1 + _d.getMonth()) : (_d.getMonth() + 1);
        var da = (_d.getDate() < 10) ? "0" + _d.getDate() : _d.getDate();
        var _t = da + "." + mo + "." + _d.getFullYear();
        return _t;
    },

    /// <summary>
    // editor function : edit text
    /// </summary>
    editLabel: function(id, language, label, css, width, lines) {
        Sys.Debug.trace("editLabel");
        if (lines > 0) {
            $get(id + "_Tab_0_1").innerHTML = "<textarea name='" + id + "_Input' id='" + id + "_Input' cols='45' rows='" + lines + "' >" + label + "</textarea>"
        } else {
            $get(id + "_Tab_0_1").innerHTML = "<input type='text' value='" + label + "' id='" + id + "_Input' style='width:" + width + "px;' />";
        }
        $get(id + "_Edit").onclick = function() {
            label = $get(id + "_Input").value;

            TradersMag.WebService.PageService.SaveLabel(id, language, label, css, width, lines, GLOBALS.insertLabel, GLOBALS.callError);
        }
    },
    /// <summary>
    // editor function : edit text
    /// </summary>
    insertLabel: function(result) {

        var id = result.split("##")[0];
        var html = result.split("##")[1];
        $get(id + "Panel").innerHTML = html;
    },
    /// <summary>
    /// open article pdf 
    /// </summary>
    openPDF: function(articleId) {

        var address = "Content/Archive/ArticlePDF/article_" + articleId + ".pdf";
        newWindow = window.open(address, "newWindow", "");
        newWindow.focus();


    },
    // ==============================================================================================
    // change personal data area

    /// <summary>
    /// change password 
    /// </summary>
    changePassword: function() {
        if (this.username == "") {
            ERROR.showError("RepeatNewPasswordError", Text.errors.e47);
            $get("RepeatNewPasswordError")
        } else {
            ERROR.hideError("OldPasswordError");
            ERROR.hideError("NewPasswordError");
            ERROR.hideError("RepeatNewPasswordError");

            var oldPw = $get("OldPassword").value;
            var newPw = $get("NewPassword").value;
            var repeatNewPw = $get("RepeatNewPassword").value;



            var success = true;
            // if (!ERROR.checkField(oldPw, "OldPasswordError", "credential", 5, Text.errors.e4)) success = false;
            if (!ERROR.checkField(newPw, "NewPasswordError", "credential", 5, Text.errors.e4)) success = false;


            if (newPw == oldPw && success) {
                ERROR.showError("NewPasswordError", Text.errors.e48);
                success = false;
            }

            if (newPw != repeatNewPw && success) {
                ERROR.showError("RepeatNewPasswordError", Text.errors.e5);
                success = false;
            }

            if (success) {
                TradersMag.WebService.PageService.ChangePassword(oldPw, newPw, GLOBALS.showChangePasswordResult, GLOBALS.callError);
            }

        }
    },
    /// <summary>
    /// show change password result
    /// </summary>
    showChangePasswordResult: function(result) {
        if (result)
            $get("ChangePasswordResult").innerHTML = Text.password_changed;
        else
            $get("ChangePasswordResult").innerHTML = Text.password_changed_error;

    },
    /// <summary>
    /// change password 
    /// </summary>
    changePersonalData: function() {
        if (this.username == "") {
            ERROR.showError("EmailError", Text.errors.e47);
            $get("EmailError")
        } else {
            ERROR.hideError("FirstnameError");
            ERROR.hideError("LastnameError");
            ERROR.hideError("EmailError");

            var firstName = $get("Firstname").value;
            var lastName = $get("Lastname").value;
            var email = $get("Email").value;



            var success = true;
            if (!ERROR.checkField(firstName, "FirstnameError", "name", 2, Text.errors.e1)) success = false;
            if (!ERROR.checkField(lastName, "LastnameError", "name", 2, Text.errors.e1)) success = false;

            if (!ERROR.checkEMail(email)) {
                ERROR.showError("EmailError", Text.errors.e7);
                success = false;

            }




            if (success) {
                TradersMag.WebService.PageService.ChangePersonalData(firstName, lastName, email, GLOBALS.showChangeDataResult, GLOBALS.callError);
            }

        }
    },
    /// <summary>
    /// show change password result
    /// </summary>
    showChangeDataResult: function(result) {
        if (result)
            $get("ChangePersonalDataResult").innerHTML = Text.data_changed;
        else
            $get("ChangePersonalDataResult").innerHTML = Text.data_changed_error;

    },
    /// <summary>
    /// link to archive article
    /// </summary>
    getTeaserPage: function(teaser, id) {
        GLOBALS.PageParameter = Number(id);
        MENU.getThisMenuPage(teaser);
    },

    /// <summary>
    /// link to archive article
    /// </summary>
    showIssueContent: function(id) {

        //var dats = "Content/Archive/Content_" + Language + ".pdf";
        var dats = "Content/Archive/Content_de.pdf";
        var newWindow = window.open(dats, "newWindow", "");


    },
    /// <summary>
    /// insert home content
    /// </summary>
    insertCoverStory: function(html) {
        MENU.Page = "-1";

        $get("Content").innerHTML = html;
    },

    /// <summary>
    /// adjust content height
    /// </summary>
    adjustContentHeight: function() {

        var obj = $get("Content").firstChild;
        var contentHeight = Sys.UI.DomElement.getBounds(obj).y;



    },


    dispose: function() {
        //Add custom dispose actions here
        TraderMagazine.Globals.callBaseMethod(this, 'dispose');
    }
}
TraderMagazine.Globals.registerClass('TraderMagazine.Globals', Sys.Component);

if (typeof (Sys) !== 'undefined') Sys.Application.notifyScriptLoaded();
