RechargeCreditCard = { rechargeAmountRegExp: null, euroToRonExchangeRate: null, minRechargeAmount: null, maxRechargeAmount: null, url3ds:null, init: function() { RechargeCreditCard.initVars(); RechargeCreditCard.initView(); RechargeCreditCard.initValidation(); RechargeCreditCard.bindFormEvents(); RechargeCreditCard.initPayment(); }, initVars: function() { RechargeCreditCard.rechargeAmountRegExp = /(^\d+$)/; RechargeCreditCard.euroToRonExchangeRate = $("span#euroToRonExchangeRate").data("value"); RechargeCreditCard.minRechargeAmount = $("span#minRechargeAmount").data("value"); RechargeCreditCard.maxRechargeAmount = $("span#maxRechargeAmount").data("value"); }, initView: function() { $("input[name='rechargeType']").click(function() { if ($(this).val() === '1') { $(this).parent().parent().parent().find("#your-number").removeClass("hidden"); $(this).parent().parent().parent().find("#other-number").addClass("hidden"); } else { $(this).parent().parent().parent().find("#other-number").removeClass("hidden"); $(this).parent().parent().parent().find("#your-number").addClass("hidden"); } }); setTimeout(function() { $("input[name='rechargeType']:checked").trigger("click"); $('#recharge-amount').trigger('change'); var amount = $('#recharge-amount').val(); $(".sidebar-slider").slider({value: amount}) }, 100); }, initValidation: function() { var validateConfigurationMap = { ignore : ".ignore-js-validation", highlight : function(element, errorClass, validClass) { return $(element).closest(".control-group").removeClass("success").addClass("error"); }, unhighlight : function(element, errorClass, validClass) { return $(element).closest(".control-group").removeClass("error").addClass("success"); }, success : function(label) { return $(label).closest("form").find(".valid").removeClass("invalid"); }, errorPlacement : function(error, element) { return element.closest("div").find(".error-wrapper").html(error.text()); } }; $.validator.addMethod("checkMsisdn", (function(value, element, radioName) { if($("input[name='" + radioName + "']:checked").val() == "2") { var regExp = /^0\d{9}$/; if(regExp.test($(element).val())) return true; } else return true; enableSubmit(); return false; })); $.validator.addMethod("checkAmountFormat", (function(value, element, radioName) { if(RechargeCreditCard.rechargeAmountRegExp.test($(element).val())) { return true; } enableSubmit(); return false; })); $.validator.addMethod("checkAmountValue", (function(value, element, radioName) { var valueF = parseFloat($(element).val()); if(valueF >= RechargeCreditCard.minRechargeAmount && valueF <= RechargeCreditCard.maxRechargeAmount) { return true; } enableSubmit(); return false; })); $("#rechargeCreditCardForm").validate(validateConfigurationMap); }, bindFormEvents: function() { $("#rechargeCreditCardForm").find("a.btn").click(function() { $("#rechargeCreditCardForm").find("input[type=submit]").click(); // disableSubmit(); return false; }); $("#recharge-amount").on("input change propertychange", function() { var amount = $(this).val(); // alert('amount:'+amount); if(RechargeCreditCard.rechargeAmountRegExp.test(amount) && amount >= RechargeCreditCard.minRechargeAmount && amount <= RechargeCreditCard.maxRechargeAmount) { // $("#totalAmount").html(RechargeCreditCard.convertEuroToRon(amount)); var $this = RechargeCreditCard.convertEuroToRon(amount).toString() ; var dec_pos = $this.indexOf('.'); $("#totalAmount").html($this.substring(0, dec_pos) + '' + "," + $this.substring(dec_pos + 1) + ''); // $('#totalAmount').html(function () { // var $this = RechargeCreditCard.convertEuroToRon(amount).toString() ; // var dec_pos = $this.indexOf('.'); // alert(dec_pos); // $(this).html($this.substring(0, dec_pos) + '' + "," + $this.substring(dec_pos + 1) + ''); // alert($this.substring(0, dec_pos); // }); } else { $("#totalAmount").html("0"); } }); function modal_content(obj) { var optionText = obj.prev('td').find('label').text(); var confirmationTextTpl=$("span#modal-text").data("template"); $("span#modal-text").html(confirmationTextTpl.replace("{{optionText}}", optionText)); } $(".remove-card a").on("click", function(e) { modal_content($(this).parent('.remove-card')); $("#modal-confirm-btn").attr("onclick","deleteCreditCard('" + $(this).data('card-token-id') + "')"); $('#myAcc-remove-card').modal('show'); }); $('a.close-modal').click(function(event){ event.preventDefault(); $('.close').click(); }); }, initPayment: function() { if($("#payUForm").length > 0) { setTimeout(function() { $("#payUForm").submit(); }, 150); } }, convertEuroToRon: function(amount) { return Math.round((amount * RechargeCreditCard.euroToRonExchangeRate * (1 + Number($("#vat").html())/100) )*100) / 100; } } $(document).ready(function() { RechargeCreditCard.init(); initRechargeWithEO(); var euroToRonExchangeRateValue = $("#euroToRonExchangeRate").text(); $("#euroToRonExchangeRateSpan").text(euroToRonExchangeRateValue); }); function deleteCreditCard(creditCardId) { $('#deleteCreditCardForm').find("input[name=deleteCard]").val(creditCardId); $("#deleteCreditCardForm").find("input[type=submit]").click(); } function enableSubmit() { if ($("#rechargeCreditCardForm").length > 0) { if($("#rechargeCreditCardForm").find("a.btn").length > 0) { $("#rechargeCreditCardForm").find("a.btn").removeClass("disabled"); } } } function disableSubmit() { if ($("#rechargeCreditCardForm").length > 0) { if($("#rechargeCreditCardForm").find("a.btn").length > 0) { $("#rechargeCreditCardForm").find("a.btn").addClass("disabled"); } } } /***************************************/ /* Recharge with Extra option Tab code */ /***************************************/ function initRechargeWithEO() { if ($('input[name=extraOptionId]:checked').length) { $('input[name=extraOptionId]:checked').click(); } if ($('#activateButton').length && $('#modal-confirm').length) { $('#activateButton').click(function() { $('#modal-confirm').modal(); }); } } function extraOptionSelected(extraOptionId) { var accountBalance = parseFloat($("#accountBalance").html()); var promoPlanPriceEuro = parseFloat($("#promoPlanPriceEuro-" + extraOptionId).html()); //console.log("accountBalance: " + accountBalance); //console.log("promoPlanPriceEuro: " + promoPlanPriceEuro); if (!isNaN(accountBalance) && !isNaN(promoPlanPriceEuro) && (promoPlanPriceEuro - accountBalance) > 0) { // not enough credit! var notEnoughCreditMessage = $("#notEnoughCreditMessage-" + extraOptionId).html(); $("#notEnoughCreditMessage").html(notEnoughCreditMessage); var minRechargeAmount = parseFloat($("#minRechargeAmount").html()); var maxRechargeAmount = parseFloat($("#maxRechargeAmount").html()); var extraCreditNeeded = Math.ceil(promoPlanPriceEuro - accountBalance); if (extraCreditNeeded < minRechargeAmount) { extraCreditNeeded = minRechargeAmount; } else if (extraCreditNeeded > maxRechargeAmount) { extraCreditNeeded = maxRechargeAmount; } $("#recharge-amount").val(extraCreditNeeded); $("#totalAmount").html(RechargeCreditCard.convertEuroToRon(extraCreditNeeded)); $("#activateButton").addClass("disabled"); $("#activateButton").hide(); $("#notEnoughCredit").show(); } else { var planName = $("#planName-" + extraOptionId).html(); var endReactivationDateStr = $("#endReactivationDateStr-" + extraOptionId).html(); var params = {"planName": planName, "reactivationEndDate": endReactivationDateStr}; var templateString = $('#manage-eo-modal-content-activate').html(); var html = Mustache.to_html(templateString, params); $("#manage-eo-text").html(html); //$("#modal-manageeo-title").html(???); var currentPlanEposCode = $("#currentPlanEposCode-" + extraOptionId).html(); $("input#eposCodeInput").val(currentPlanEposCode); $("input#extraOptionPrice").val(promoPlanPriceEuro); $("input#activateInput").val("true"); $("#notEnoughCredit").hide(); $("#activateButton").removeClass("disabled"); $("#activateButton").show(); } }