﻿/// <reference name="MicrosoftAjax.js"/>
Type.registerNamespace("TraderMagazine");
TraderMagazine.Magazine = function() {
    TraderMagazine.Magazine.initializeBase(this);

}
TraderMagazine.Magazine.prototype = {
    initialize: function() {
        TraderMagazine.Magazine.callBaseMethod(this, 'initialize');
        this.init();
    },
    /// <summary>
    /// get page
    /// </summary>
    init: function() {
        PURCHASE.Order.ProductCategory = 0;
        TradersMag.ShopService.ShopService.CreateMagazinesPage(this.insertContent, GLOBALS.callError);

    },

    /// <summary>
    /// insert content
    /// </summary>
    insertContent: function(html) {

        $get("Content").innerHTML = html;
        PURCHASE.initHandler();
    },
    /*
    /// <summary>
    /// initialize handlers for this page
    /// </summary>
    initHandler: function() {
    },
    
    /// <summary>
    /// get cash page
    /// </summary>
    toPaymentForm: function() {
    TradersMag.WebService.PageService.CreatePaymentForm(PAGE.insertPaymentForm, GLOBALS.callError);
    },
    /// <summary>
    /// insert payment form
    /// </summary>
    insertPaymentForm: function(html) {
    if (html == "0") {
    DIALOG.createDialogContainer(Text.advice, false, 300, 150);
    $get("DialogContent").innerHTML = Text.errors.e36;
    } else {
    if (GLOBALS.subscriptionBasket.length > 0) {
    $get("MagHolder3_1_0").innerHTML = html;
    $get("CashBtnLabel").innerHTML = Text.back;
    $get("CashBtn").onclick = function() {
    PAGE.init();
    }
    $get("StartPurchaseBtn").onclick = function() {
    if (PAGE.checkInput()) {
    COMP.createLoaderWhite($get("MagHolder3_1_0"), 300);
    TradersMag.WebService.PageService.CreatePaymentConfirmation(PAGE.Order, PAGE.insertConfirmationForm, GLOBALS.callError);

                    }
    }
    }
    }
    },
    /// <summary>
    /// insert content
    /// </summary>
    insertConfirmationForm: function(html) {

        if (html == "0") {
    alert("bitte einloggen");
    } else {
    $get("MagHolder3_1_0").innerHTML = html;
    $get("StartPurchaseBtnLabel").innerHTML = Text.order;
    $get("StartPurchaseBtn").onclick = function() {

            COMP.createLoaderWhite($get("MagHolder3_1_0"), 300);
            
    TradersMag.WebService.PageService.Order(PAGE.Order, PAGE.insertPaymentConfirmation, GLOBALS.callError);
    }

        }
    },
    /// <summary>
    /// insert content
    /// </summary>
    insertPaymentConfirmation: function(result) {

        Sys.Debug.trace(result);
    if (result) {
    $get("MagHolder3_1_0").innerHTML = "<div style='padding:10px;margin:10px;'>" + Text.magazine.confirmation + "</div>";
    GLOBALS.subscriptionBasket = [];
    } else {
    $get("MagHolder3_1_0").innerHTML = "<div style='padding:10px;margin:10px;'>" + Text.errors.e35 + "</div>";
    }

    },
    
 
    /// <summary>
    /// get page
    /// </summary>
    init: function() {
    TradersMag.WebService.PageService.CreateMagazinePage(this.insertContent, GLOBALS.callError);
    },
    /// <summary>
    /// insert content
    /// </summary>
    insertContent: function(html) {
    COMP.createLoader($get("Content"), 200);
    $get("Content").innerHTML = html;

        if ($get("CashTable")) {
    for (var i = 0; i < GLOBALS.subscriptionBasket.length; i++) {
    var currBtnId = "BasketInOut_" + GLOBALS.subscriptionBasket[i];
    $get(currBtnId).innerHTML = Text.magazine.from_basket;
    }
    PAGE.setBasketInfo();
    if ($get("CashBtn"))
    $get("CashBtn").onclick = function() {
    PAGE.toPaymentForm();
    }
    }
    
    
    if ($get("BuyIssueTable")) {
    $get("DelFieldsBtn").onclick = function() {
    $get("BuyIssueName").value = "";
    $get("BuyIssueEmail").value = "";
    }
    $get("BuyIssueBtn").onclick = function() {
    ERROR.hideError("BuyIssueNameError");
    ERROR.hideError("BuyIssueEmailError");
    var buyIssueName = $get("BuyIssueName").value;
    var buyIssueEmail = $get("BuyIssueEmail").value;

                var success = true;
    if (!ERROR.checkField(buyIssueName, "BuyIssueNameError", "multiline", 3, Text.errors.e17)) success = false;
    if (!ERROR.checkEMail(buyIssueEmail)) {
    ERROR.showError("BuyIssueEmailError", Text.errors.e19);
    success = false;
    }

                if (success) {
    $get("BuyIssueBtn").onclick = null;
    TradersMag.WebService.PageService.SendMail(buyIssueEmail, buyIssueName, PAGE.emailSended, GLOBALS.callError);


                }

            }
    }
    },
    
   
    /// <summary>
    // editor function : edit text
    /// </summary>
    emailSended: function(result) {

        Sys.Debug.trace(result);
    if (result) {
    $get("MagHolder1_1_0").innerHTML = "<div style='padding:10px;margin:10px;'>" + Text.magazine.confirmation + "</div>";

        } else {
    $get("MagHolder1_1_0").innerHTML = "<div style='padding:10px;margin:10px;'>" + Text.errors.e35 + "</div>";
    }
    },
    /// <summary>
    // editor function : edit text
    /// </summary>
    editProduct: function(productId) {
    var src = "Editor/EditSubscription.aspx?productId=" + productId + "&category=subscription";
    var c = "<iframe id='SubsEditor' frameborder='0' width='800' height='700' scrolling='no' src='" + src + "' ></iframe>";
    $get("Content").innerHTML = c;
    },
    /// <summary>
    // put product in the basket
    /// </summary>
    toBasket: function(subsId) {
    if (GLOBALS.username == "") {
    DIALOG.createDialogContainer(Text.advice, false, 300, 150);
    $get("DialogContent").innerHTML = Text.errors.e36;
    } else {
    var isInBasket = Array.contains(GLOBALS.subscriptionBasket, subsId);

            var currBtnId = "BasketInOut_" + subsId;
    $get(currBtnId).innerHTML = "";
    if (isInBasket.toString() == "true") {
    TradersMag.ShopService.ShopService.RemoveFromBasket(subsId, this.removeFromBasket, GLOBALS.callError);
    } else {
    TradersMag.ShopService.ShopService.PutInBasket(subsId, "","subscription", this.addToBasket, GLOBALS.callError);
    }
    }
    },
    /// <summary>
    // update basket content
    /// </summary>
    addToBasket: function(subsId) {
    var subsIdNum = Number(subsId);

        if (subsIdNum > 0) {
    var currBtnId = "BasketInOut_" + subsId;
    var isInBasket = Array.contains(GLOBALS.subscriptionBasket, subsId);


            if (isInBasket.toString() == "false") {

                if ($get("BasketInOut_" + GLOBALS.subscriptionBasket[0]))
    $get("BasketInOut_" + GLOBALS.subscriptionBasket[0]).innerHTML = Text.magazine.to_basket;

                GLOBALS.subscriptionBasket = [];
    Array.add(GLOBALS.subscriptionBasket, subsId.toString());
    $get(currBtnId).innerHTML = Text.magazine.from_basket;
    }
    PAGE.setBasketInfo();
    } else {
    alert("Error");
    }
    },
    /// <summary>
    // update basket content
    /// </summary>
    removeFromBasket: function(subsId) {
    var subsIdNum = Number(subsId);
    if (subsIdNum > 0) {
    var currBtnId = "BasketInOut_" + subsId;
    var isInBasket = Array.contains(GLOBALS.subscriptionBasket, subsId);
    Array.remove(GLOBALS.subscriptionBasket, subsId.toString());
    $get(currBtnId).innerHTML = Text.magazine.to_basket;
    PAGE.setBasketInfo();
    } else {
    alert("Error");
    }
    },
    /// <summary>
    /// remove item from basket and check basket 
    /// if empty go back to magazine page else reload purchase page
    /// </summary>
    removeFromAndCheckBasket: function(subsId) {
    var subsIdNum = Number(subsId);
    if (subsIdNum > 0) {
    var isInBasket = Array.contains(GLOBALS.subscriptionBasket, subsId.toString());
    if (isInBasket) {
    TradersMag.ShopService.ShopService.RemoveFromBasket(subsId, this.removeFromBasketAndUpdatePaymentForm, GLOBALS.callError);
    }
    } else {
    alert("Error");
    }
    },
    /// <summary>
    /// remove item from basket and update form
    /// </summary>
    removeFromBasketAndUpdatePaymentForm: function(subsId) {
    var subsIdNum = Number(subsId);
    if (subsIdNum > 0) {
    var isInBasket = Array.contains(GLOBALS.subscriptionBasket, subsId.toString());
    if (isInBasket) {
    Array.remove(GLOBALS.subscriptionBasket, subsId.toString());
    if (GLOBALS.subscriptionBasket.length == 0) {
    PAGE.init();
    } else {
    var currTableId = "Order_" + subsId;
    $get(currTableId).innerHTML = "";
    }
    }
    } else {
    alert("Error");
    }
    },
    /// <summary>
    // set basket info
    /// </summary>
    setBasketInfo: function() {
    var response = "";

        response = Text.magazine.you_have + " " + GLOBALS.subscriptionBasket.length + " " + Text.magazine.products_in;
 
        response = "<div style='width:260px'>" + response.replace(" ", "&nbsp;") + "</div>";
    $get("CashTable_0_0").innerHTML = response;
    },
    /// <summary>
    /// input check
    /// </summary>
    /// <returns></returns>
    checkInput: function() {
    this.readInput();
    var success = true;
    if (!ERROR.checkField(this.Order.FirstName, "FirstNameError", "name", 2, Text.errors.e1)) success = false;
    if (!ERROR.checkField(this.Order.LastName, "LastNameError", "name", 2, Text.errors.e2)) success = false;

        if (!ERROR.checkField(this.Order.Company, "CompanyError", "name", 0, Text.errors.e33)) success = false;
    if (!ERROR.checkField(this.Order.Address1, "AdressError", "name", 2, Text.errors.e33)) {
    success = false;
    } else {
    if (!ERROR.checkField(this.Order.Address2, "AdressError", "singleline", 1, Text.errors.e33)) success = false;
    }
    if (!ERROR.checkPLZ(this.Order.PostCode)) {
    ERROR.showError("CityError", Text.errors.e37);
    success = false;
    } else {
    if (!ERROR.checkField(this.Order.City, "CityError", "name", 2, Text.errors.e38)) success = false;
    }
    if (!ERROR.checkField(this.Order.Phone, "PhoneError", "singleline", 0, Text.errors.e39)) success = false;

        // if (!ERROR.checkField(this.Order.CardOwner, "CardOwnerError", "name", 2, Text.errors.e44)) success = false;
    //if (!ERROR.checkField(this.Order.CVV, "CVVError", "int", 3, Text.errors.e41)) success = false;

        // if (!ERROR.checkField(this.Order.CardNumber, "CardNumberError", "credit", 12, Text.errors.e40)) success = false;

        if (!ERROR.checkEMail(this.Order.EMail)) {
    ERROR.showError("EMailError", Text.errors.e19);
    success = false;
    }


        return success;
    },
    /// <summary>
    /// read input due to current page
    /// </summary>
    /// <returns></returns>
    hideErrors: function() {
    ERROR.hideError("FirstNameError");
    ERROR.hideError("LastnameError");
    ERROR.hideError("CompanyError");
    ERROR.hideError("AdressError");
    ERROR.hideError("CityError");
    ERROR.hideError("PhoneError");
    ERROR.hideError("EMailError");

        // ERROR.hideError("CardOwnerError");
    //ERROR.hideError("CVVError");
    //ERROR.hideError("CardNumberError");
    },
    /// <summary>
    /// read input due to current page
    /// </summary>
    /// <returns></returns>
    readInput: function() {

        this.Order.FirstName = $get("FirstName").value;
    this.Order.LastName = $get("LastName").value;
    this.Order.Company = $get("Company").value;
    this.Order.Address1 = $get("Street").value;
    this.Order.Address2 = $get("StreetNumber").value;
    this.Order.PostCode = $get("PostCode").value;
    this.Order.City = $get("City").value;
    this.Order.Country = $get("Country").value;
    this.Order.Phone = $get("Phone").value;
    this.Order.EMail = $get("EMail").value;

        if ($get("IssueYear")) {
    this.Order.Year = $get("IssueYear").value;
    }
    if ($get("IssueMonth")) {
    this.Order.Month = $get("IssueMonth").value;
    }
    //  var expiry = $get("ExpiryMonth").value + $get("ExpiryYear").value;
    // if ($get("PayType").value == 12) this.Order.PaymentMethod = this.payType[0];
    // if ($get("PayType").value == 15) this.Order.PaymentMethod = this.payType[1];
    //if ($get("PayType").value == -1) this.Order.PaymentMethod = this.payType[2];
    // this.Order.CVV = $get("CVV").value;
    //this.Order.CardOwner = $get("CardOwner").value;
    //if (!this.cardDataEnabled)
    // this.Order.CardNumber = $get("CardNumber").value;
    // this.Order.Expiry = expiry;
    },
    */
    dispose: function() {
        //Add custom dispose actions here
        TraderMagazine.Magazine.callBaseMethod(this, 'dispose');
    }
}
TraderMagazine.Magazine.registerClass('TraderMagazine.Magazine', Sys.Component);
if (typeof (Sys) !== 'undefined') Sys.Application.notifyScriptLoaded();
