{"id":5379,"date":"2025-08-25T12:31:10","date_gmt":"2025-08-25T04:31:10","guid":{"rendered":"https:\/\/www.causewaylink.com.my\/BAS.MY-JohorBahru\/?page_id=5379"},"modified":"2025-08-25T12:32:51","modified_gmt":"2025-08-25T04:32:51","slug":"pembaharuan-pas-transit-v2","status":"publish","type":"page","link":"https:\/\/www.causewaylink.com.my\/BAS.MY-JohorBahru\/pembaharuan-pas-transit-v2\/","title":{"rendered":"Pembaharuan Pas Transit V2"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"5379\" class=\"elementor elementor-5379\" data-elementor-post-type=\"page\">\n\t\t\t\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-31c1dc4e elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"31c1dc4e\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-185dcd3f\" data-id=\"185dcd3f\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-bf5b88f elementor-widget elementor-widget-shortcode\" data-id=\"bf5b88f\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-shortcode\">\r\n<script type=\"text\/javascript\" src=\"https:\/\/www.causewaylink.com.my\/BAS.MY-JohorBahru\/php-functions\/web\/cgi-bin\/js\/moment.min.js\"><\/script>\r\n<script type=\"text\/javascript\" src=\"https:\/\/www.causewaylink.com.my\/BAS.MY-JohorBahru\/php-functions\/web\/cgi-bin\/js\/cwl.js\"><\/script>\r\n<link rel=\"stylesheet\" href=\"https:\/\/www.causewaylink.com.my\/BAS.MY-JohorBahru\/php-functions\/web\/cgi-bin\/css\/cwl.css\" \/>\r\n<link rel=\"stylesheet\" href=\"https:\/\/www.causewaylink.com.my\/BAS.MY-JohorBahru\/php-functions\/web\/cgi-bin\/css\/pass_transit.css\" \/>\r\n\r\n\r\n<div id=\"cover-spin\"><\/div>\r\n<div class=\"renew_container\">\r\n  <h2>Pembaharuan Pas Transit<\/h2>\r\n  <div class=\"renew_box\">\r\n    <img decoding=\"async\"\r\n      src=\"https:\/\/www.causewaylink.com.my\/BAS.MY-JohorBahru\/wp-content\/uploads\/2025\/09\/BAS.MY-Johor-Bahru-Logo-Square-scaled.png\"\r\n      width=\"180px\" \/>\r\n\r\n    <div class=\"renew_step step1\" id=\"renew_step1\" style=\"display:none;\">\r\n      <h5>\r\n        Sila masukkan nombor MyKad atau MyTentera      <\/h5>\r\n      <input type=\"text\" style=\"text-align:center;\" id=\"txtIdNumber\" autofocus maxlength=\"12\"><\/input>\r\n      <span id=\"errMsgIdNumber\" class=\"errmsg\"\r\n        style=\"display:none;\">MyKad \/ MyTentera mesti mempunyai 12 nombor.<\/span>\r\n      <div class=\"divider\"><\/div>\r\n      <button class=\"btn\" id=\"btnSearch\">Hantar<\/button>\r\n    <\/div>\r\n\r\n    <div class=\"renew_step step2\" id=\"renew_step2\" style=\"display:none;\">\r\n      <div class=\"divider\"><\/div>\r\n      <h5>Maklumat Pemilik Pas Transit<\/h5>\r\n      <div class=\"user_header\">\r\n        <div class=\"user_header info\">\r\n          <span style=\"padding-left:2px\">Nama: <span id=\"lblName\"\r\n              style=\"padding-left:2px; font-weight:bold;\"><\/span><\/span>\r\n          <span style=\"padding-left:2px\">MyKad \/ MyTentera: <span id=\"lblIdNumber\"\r\n              style=\"padding-left:2px; font-weight:bold;\"><\/span><\/span>\r\n        <\/div>\r\n      <\/div>\r\n      <div id=\"plan_list\" style=\"width:100%\"><\/div>\r\n      <div class=\"divider\"><\/div>\r\n      <div style=\"display: flex;justify-content: flex-end;width: 100%; align-items: center;\">\r\n        <a href=\"#\" id=\"btnBatal\"\r\n          style=\"padding-left:15px;padding-right:15px;\">Batal<\/a>\r\n        <button class=\"btn\"\r\n          id=\"btnRenew\">Perbaharui Sekarang<\/button>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"renew_step step3\" id=\"renew_step3\" style=\"display:none;\">\r\n      <h5>Maklumat Pembaharuan Pas Transit      <\/h5>\r\n      <div class=\"divider\"><\/div>\r\n      <div id=\"renew_plan_list\" style=\"width:100%\"><\/div>\r\n      <div class=\"divider\"><\/div>\r\n      <div style=\"display: flex;align-items: center;width: 95%;\">\r\n        <span id=\"errMsgStep3\" class=\"errmsg\"><\/span>\r\n      <\/div>\r\n      <div style=\"display: flex;align-items: center;width: 95%;margin-bottom:10px;\"><span\r\n          style=\"font-weight:bold; width:120px\">Tarikh Mula:<\/span><input\r\n          style=\"width:200px\" type=\"date\" id=\"dateStart\" name=\"dateStart\"\r\n          min=\"2026-05-11\"><\/div>\r\n      <div style=\"display: flex;align-items: center;width: 95%;margin-bottom:10px;\"><span\r\n          style=\"font-weight:bold; width:120px\">Tarikh Tamat:<\/span><input\r\n          style=\"width:200px\" type=\"date\" id=\"dateEnd\" name=\"dateEnd\" disabled><\/div>\r\n      <div style=\"display: flex;align-items: center;width: 95%;\">\r\n        <span style=\"font-weight:bold; width:120px\">Emel:<\/span>\r\n        <input style=\"width:200px\" type=\"text\" id=\"email\" name=\"email\">\r\n      <\/div>\r\n\r\n      <div class=\"divider\"><\/div>\r\n      <span\r\n        style=\"line-height: 18px;\">Peringatan! Tarikh langganan tidak boleh diubah selepas pembayaran\u00a0dilakukan.<\/span>\r\n      <div class=\"divider\"><\/div>\r\n      <div style=\"display: flex;justify-content: flex-end;width: 100%; align-items: center;\">\r\n        <a href=\"#\" id=\"btnBack\"\r\n          style=\"padding-left:15px;padding-right:15px;\">Kembali<\/a>\r\n        <button class=\"btn\"\r\n          id=\"btnConfirmRenew\">Perbaharui Sekarang<\/button>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"renew_step success\" id=\"renew_success\" style=\"display:none;\">\r\n      <div class=\"divider\"><\/div>\r\n      <div class=\"renew_notice\">\r\n        <img decoding=\"async\" src=\"https:\/\/www.causewaylink.com.my\/BAS.MY-JohorBahru\/php-functions\/web\/cgi-bin\/images\/icon\/ic_payment_success.svg\"\r\n          width=\"25px\" \/>\r\n        <span\r\n          style=\"line-height: 16px; margin-left:10px;\">Pembaharuan telah berjaya.<\/span>\r\n      <\/div>\r\n      <div class=\"divider\"><\/div>\r\n      <h5>Maklumat Pemilik Pas Transit<\/h5>\r\n      <div class=\"user_header\">\r\n        <div class=\"user_header info\">\r\n          <span style=\"padding-left:2px\">Nama: <span\r\n              id=\"success_lblName\" style=\"padding-left:2px; font-weight:bold;\"><\/span><\/span>\r\n          <span style=\"padding-left:2px\">MyKad \/ MyTentera: <span id=\"success_lblIdNumber\"\r\n              style=\"padding-left:2px; font-weight:bold;\"><\/span><\/span>\r\n        <\/div>\r\n      <\/div>\r\n      <div id=\"plan_list2\" style=\"width:100%\">\r\n        <div class=\"divider\"><\/div>\r\n        <h5>Maklumat Pas Transit<\/h5>\r\n        <div class=\"user_plan\">\r\n          <img decoding=\"async\" style=\"width: 70px; height: 70px;\" id=\"success_planimage\" src=\"\" \/>\r\n          <div class=\"user_plan_info\">\r\n            <span style=\"padding-left:2px; font-weight: bold;\" id=\"success_planname\"><\/span>\r\n            <span>Tempoh sah : <span\r\n                style=\"padding-left:2px\" id=\"success_validityperiod\"><\/span><\/span>\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"renew_step failed\" id=\"renew_failed\" style=\"display:none;\">\r\n      <div class=\"divider\"><\/div>\r\n      <div class=\"renew_notice failed\">\r\n        <img decoding=\"async\" src=\"https:\/\/www.causewaylink.com.my\/BAS.MY-JohorBahru\/php-functions\/web\/cgi-bin\/images\/icon\/ic_payment_failed.svg\"\r\n          width=\"25px\" \/>\r\n        <span\r\n          style=\"line-height: 16px; margin-left:10px;\">Pembaharuan tidak berjaya. Sila cuba lagi.<\/span>\r\n      <\/div>\r\n      <div class=\"divider\"><\/div>\r\n            <div style=\"display: flex; width: 100%; justify-content: center;\">\r\n        <button class=\"btn\" id=\"btnRetry\">Cuba lagi<\/button>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/div>\r\n\r\n<!-- The Modal -->\r\n<div id=\"myModal\" class=\"modal\">\r\n  <!-- Modal content -->\r\n  <div class=\"modal-content\">\r\n    <div class=\"modal-header\">\r\n      <span class=\"close\">&times;<\/span>\r\n      <h4>Mesej<\/h4>\r\n    <\/div>\r\n    <div class=\"modal-body\">\r\n      <p id=\"ModalMessage\"><\/p>\r\n    <\/div>\r\n    <div class=\"modal-footer\">\r\n      <div style=\"display: flex;justify-content: flex-end;width: 100%; align-items: center;\">\r\n        <button class=\"btn\" id=\"btnModalClose\">Ok<\/button>\r\n        <a href=\"#\" id=\"lnkModalCancel\"\r\n          style=\"padding-left:15px;padding-right:15px;\">Batal<\/a>\r\n        <button href=\"#\" class=\"btn\"\r\n          id=\"btnModalPayment\">Teruskan<\/button>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<script type=\"text\/javascript\">\r\njQuery(document).ready(function($) {\r\n  \"use strict\";\r\n\r\n  getOrderStatus();\r\n  setModalDefault();\r\n\r\n  \/\/ \/\/ Get the modal\r\n  var modal = document.getElementById(\"myModal\");\r\n\r\n  window.onclick = function(event) {\r\n    if (event.target == modal) {\r\n      modal.style.display = \"none\";\r\n    }\r\n  }\r\n\r\n  $(\".close\").on('click', function(e) {\r\n    $(\"#myModal\").hide();\r\n  });\r\n\r\n  $(\"#btnModalClose\").on('click', function(e) {\r\n    $(\"#myModal\").hide();\r\n  });\r\n\r\n  $(\"#lnkModalCancel\").on('click', function(e) {\r\n    $(\"#myModal\").hide();\r\n  });\r\n\r\n  $(\"#btnSearch\").on('click', function(e) {\r\n    var IdNumber = $(\"#txtIdNumber\").val();\r\n    $(\"#btnModalPayment\").data(\"url\", null);\r\n    if ($.trim(IdNumber) != '') {\r\n      getUserPlan(IdNumber)\r\n    } else {\r\n      $(\"#txtIdNumber\").focus();\r\n    }\r\n  });\r\n\r\n  $(\"#btnRetry\").on('click', function(e) {\r\n    var IdNumber = '';\r\n    $(\"#btnModalPayment\").data(\"url\", null);\r\n    if ($.trim(IdNumber) != '') {\r\n      getUserPlan(IdNumber)\r\n    } else {\r\n      $(\"#txtIdNumber\").focus();\r\n    }\r\n  });\r\n\r\n  $(\"#btnBatal\").on('click', function(e) {\r\n    getStep1();\r\n  });\r\n\r\n  $(\"#btnRenew\").on('click', function(e) {\r\n    getStep3();\r\n  });\r\n\r\n  $(\"#btnConfirmRenew\").on('click', function(e) {\r\n\r\n    if (!ValidateStep3()) {\r\n      return;\r\n    }\r\n    $('#cover-spin').show(0);\r\n    var Url = $(\"#btnModalPayment\").data(\"url\");\r\n    if ($.trim(Url) != '' || Url != undefined || Url != null) {\r\n      translateModalText('You will redirect to payment gateway page for renew pass transit.');\r\n      setModalForPayment();\r\n      $('#cover-spin').hide(0);\r\n      $(\"#myModal\").show();\r\n    } else {\r\n      var obj = new Object();\r\n      obj.IdNumber = $(this).data(\"idNumber\");\r\n      obj.fullName = $(this).data(\"fullName\");\r\n      obj.phoneNo = $(this).data(\"phoneNo\");\r\n      obj.email = $(\"#email\").val();\r\n      obj.currentPassExpiryDate = $(this).data(\"currentPassExpiryDate\");\r\n      obj.newPassStartDate = $(this).data(\"newPassStartDate\");\r\n      obj.subscriptionPlanID = $(this).data(\"subscriptionPlanID\");\r\n      obj.IsFromWeb = true;\r\n\r\n      var redirectUrl = location.protocol + '\/\/' + location.host + location.pathname;\r\n      obj.RedirectUrl = redirectUrl;\r\n\r\n      console.log($(this));\r\n      console.log(obj);\r\n\r\n      var params = new Array(new Items('q', JSON.stringify(obj)));\r\n      var querystring = getQueryString(params);\r\n\r\n      $.ajax({\r\n        dataType: \"json\",\r\n        url: 'https:\/\/www.causewaylink.com.my\/BAS.MY-JohorBahru\/php-functions\/web\/ajax.php?action=SubscriptionPurchase',\r\n        cache: false,\r\n        data: querystring,\r\n        success: function(msg) {\r\n          $('#cover-spin').hide(0);\r\n          if (msg.status) {\r\n            var _data = JSON.parse(msg.data);\r\n            translateModalText('You will redirect to payment gateway page for renew pass transit.');\r\n            $(\"#btnModalPayment\").data(\"url\", _data.paymentURL);\r\n            setModalForPayment();\r\n            $(\"#myModal\").show();\r\n          } else {\r\n            translateModalText(msg.errors.reason);\r\n            setModalDefault();\r\n            $(\"#myModal\").show();\r\n          }\r\n        },\r\n        error: function(e) {\r\n          $('#cover-spin').hide(0);\r\n          alert(\"getUserPlan error\");\r\n        }\r\n      });\r\n    }\r\n  });\r\n\r\n  $(\"#btnBack\").on('click', function(e) {\r\n    $(\"#renew_step1\").hide();\r\n    $(\"#renew_step2\").show();\r\n    $(\"#renew_step3\").hide();\r\n  });\r\n\r\n\r\n  $(\"#btnModalPayment\").on('click', function(e) {\r\n    var Url = $(this).data(\"url\");\r\n    window.location.href = Url;\r\n  });\r\n\r\n  $(\"#dateStart\").change(function() {\r\n    var startdate = $(this).val();\r\n    var enddate = moment(startdate, \"YYYY-MM-DD\").add(29, 'days');\r\n    $(\"#dateEnd\").val(enddate.format('YYYY-MM-DD'));\r\n    $(\"#btnModalPayment\").data(\"url\", null);\r\n\r\n    var status = $(\"#btnConfirmRenew\").data(\"status\");\r\n    if (status == 'EXPIRED') {\r\n      $(\"#btnConfirmRenew\").data(\"newPassStartDate\", startdate);\r\n      $(\"#btnConfirmRenew\").data(\"currentPassExpiryDate\", null);\r\n    }\r\n  });\r\n\r\n  $(\"#txtIdNumber\").keyup(function() {\r\n    this.value = this.value.replace(\/[^0-9\\.]\/g, '');\r\n    var IdNumber = $.trim($(this).val());\r\n\r\n    if (IdNumber.length == 0 || IdNumber.length == 12) {\r\n      $('#errMsgIdNumber').hide();\r\n    } else {\r\n      $('#errMsgIdNumber').show();\r\n    }\r\n  });\r\n\r\n  function getUserPlan(IdNumber) {\r\n    $('#cover-spin').show(0);\r\n    var obj = new Object();\r\n    obj.IdNumber = IdNumber;\r\n\r\n    var params = new Array(new Items('q', JSON.stringify(obj)));\r\n    var querystring = getQueryString(params);\r\n\r\n    $.ajax({\r\n      dataType: \"json\",\r\n      url: 'https:\/\/www.causewaylink.com.my\/BAS.MY-JohorBahru\/php-functions\/web\/ajax.php?action=SelectUserPlan',\r\n      cache: false,\r\n      data: querystring,\r\n      success: function(msg) {\r\n        if (msg.status) {\r\n          var _data = JSON.parse(msg.data);\r\n          checkIsFreeRideEligible(_data, IdNumber);\r\n          \/\/ getStep2(_data);\r\n        } else {\r\n          translateModalText(msg.errors.reason);\r\n          $(\"#myModal\").show();\r\n        }\r\n        $('#cover-spin').hide(0);\r\n      },\r\n      error: function(e) {\r\n        alert(\"getUserPlan error\");\r\n        $('#cover-spin').hide(0);\r\n      }\r\n    });\r\n  }\r\n\r\n  function checkIsFreeRideEligible(data, IdNumber) {\r\n\r\n    if (data && IdNumber) {\r\n      if (data && data.subscriptions && data.subscriptionPlans) {\r\n        const planIds = [];\r\n\r\n        data.subscriptions.forEach(subscription => {\r\n          if (subscription.planId) {\r\n            planIds.push(subscription.planId);\r\n          }\r\n        });\r\n\r\n        if (planIds.length > 0) {\r\n          const zeroPricePlanIds = [];\r\n\r\n          data.subscriptionPlans.forEach(subscriptionPlan => {\r\n            console.log(subscriptionPlan)\r\n            if (planIds.includes(subscriptionPlan.subscriptionPlanId) && subscriptionPlan.subscriptionPrice ===\r\n              \"0.00\" ||\r\n              planIds.includes(subscriptionPlan.subscriptionPlanId) && subscriptionPlan.subscriptionPrice == 0\r\n            ) {\r\n              zeroPricePlanIds.push(subscriptionPlan.subscriptionPlanId);\r\n            }\r\n          });\r\n\r\n          if (zeroPricePlanIds.length > 0) {\r\n            \/\/ existing free ride user, block them from renewal\r\n            translateModalText(\"existingFreeRideUser\");\r\n            $(\"#myModal\").show();\r\n            return;\r\n          } else {\r\n            \/\/ console.log(\"cant found free ride, continue to make payment\");\r\n          }\r\n        } else {\r\n          \/\/ console.log(\"No planIds found in subscriptions.\");\r\n        }\r\n      } else {\r\n        \/\/ console.log(\"No subscriptions or subscriptionPlans data found.\");\r\n      }\r\n      callCheckFreeRideAPI(data, IdNumber);\r\n    } else {\r\n      \/\/ console.log(\"Invalid parameter data.\");\r\n    }\r\n  }\r\n\r\n  function callCheckFreeRideAPI(data, IdNumber) {\r\n    $('#cover-spin').show(0);\r\n    var obj_free_ride = new Object();\r\n    obj_free_ride.ic_no = IdNumber;\r\n    obj_free_ride.FromDate = data?.subscriptions[0]?.endDate ?? \"\";\r\n\r\n    var free_ride_params = new Array(new Items('q', JSON.stringify(obj_free_ride)));\r\n    var free_ride_querystring = getQueryString(free_ride_params);\r\n\r\n    $.ajax({\r\n      dataType: \"json\",\r\n      url: 'https:\/\/www.causewaylink.com.my\/BAS.MY-JohorBahru\/php-functions\/web\/ajax.php?action=CheckUserFreeRideApplicable',\r\n      cache: false,\r\n      data: free_ride_querystring,\r\n      success: function(msg) {\r\n        if (msg.status) {\r\n          \/\/ var _freeRideData = JSON.parse(msg.data);\r\n          \/\/ console.log(\"_freeRideData: \");\r\n          \/\/ console.log(_freeRideData);\r\n          let text = getTranslate(\"freeRideSuggestion\");\r\n          if (confirm(text) == true) {\r\n            getStep2(data);\r\n          }\r\n          \/\/ translateModalText(\"freeRideSuggestion\");\r\n          \/\/ setModalForFreeRide();\r\n          \/\/ $(\"#myModal\").show();\r\n        } else {\r\n          \/\/ console.log(\"Unable to free ride, continue to make payment\")\r\n          getStep2(data);\r\n        }\r\n        $('#cover-spin').hide(0);\r\n      },\r\n      error: function(e) {\r\n        alert(\"checkIsFreeRideEligible error\");\r\n        $('#cover-spin').hide(0);\r\n      }\r\n    });\r\n  }\r\n\r\n  function getTranslate(string) {\r\n    let lang = 'bm';\r\n    if (string == \"freeRideSuggestion\") {\r\n      if (lang == \"en\") {\r\n        return \"You are eligible for MYBas Konsesi program. Are you still want to continue to subscribe MYBas50?\";\r\n      } else {\r\n        return \"Anda layak untuk program MYBas Konsesi. Adakah anda mahu meneruskan langganan MYBas50?\";\r\n      }\r\n    }\r\n    return string;\r\n  }\r\n\r\n  function getStep1() {\r\n    $(\"#txtIdNumber\").val('');\r\n    $(\"#renew_step1\").show();\r\n    $(\"#renew_step2\").hide();\r\n    $(\"#renew_step3\").hide();\r\n    $(\"#errMsgStep3\").hide();\r\n    $(\"#email\").removeClass('inputErr');\r\n    $(\"#dateStart\").removeClass('inputErr');\r\n  }\r\n\r\n  function getStep2(data) {\r\n    $(\"#renew_step1\").hide();\r\n    $(\"#renew_step2\").show();\r\n    $(\"#renew_step3\").hide();\r\n    $(\"#lblName\").html(data.name);\r\n    $(\"#lblIdNumber\").html(data.idNumber);\r\n\r\n    $(\"#plan_list\").html('');\r\n    getRenewalbleStatus(data.status);\r\n    var list = data.subscriptions,\r\n      length = list.length;\r\n    if (length > 0) {\r\n      for (var i = 0; i < length; i++) {\r\n        var subscription = list[i];\r\n        getPlanTemplate(data.status, subscription);\r\n      }\r\n      \/\/ setRenewDate(data.status, list[0]);\r\n    }\r\n\r\n    $(\"#renew_plan_list\").html('');\r\n    var listPlan = data.subscriptionPlans.length > 0 ? data.subscriptionPlans : data.subscriptions,\r\n      lengthPlan = listPlan.length;\r\n    if (lengthPlan > 0) {\r\n      var plan = listPlan.find(p => p.subscriptionPlanId || p.planId === data.subscriptions[0]?.planId);\r\n      getPlan(plan);\r\n    }\r\n\r\n    $(\"#btnConfirmRenew\").data({\r\n      idNumber: data.idNumber,\r\n      fullName: data.name,\r\n      phoneNo: data.phoneNo,\r\n      subscriptionPlanID: listPlan[0].subscriptionPlanId || listPlan[0].planId,\r\n    });\r\n\r\n    var subDate = $(\"#dateStart\").val();\r\n    $(\"#btnConfirmRenew\").data(\"status\", data.status);\r\n    if (data.status == 'ACTIVE') {\r\n      subDate = moment(subDate).subtract(1, 'days');\r\n      $(\"#btnConfirmRenew\").data(\"currentPassExpiryDate\", subDate.format('YYYY-MM-DD'));\r\n      $(\"#btnConfirmRenew\").data(\"newPassStartDate\", null);\r\n    } else if (data.status == 'EXPIRED') {\r\n      $(\"#btnConfirmRenew\").data(\"newPassStartDate\", subDate);\r\n      $(\"#btnConfirmRenew\").data(\"currentPassExpiryDate\", null);\r\n    }\r\n    $(\"#errMsgStep3\").hide();\r\n    $(\"#renew_step2\").show();\r\n    $(\"#renew_failed\").hide();\r\n  }\r\n\r\n  function getStep3() {\r\n    $('#cover-spin').show(0);\r\n    $(\"#renew_step1\").hide();\r\n    $(\"#renew_step2\").hide();\r\n    $(\"#renew_step3\").show();\r\n    $(\"#errMsgStep3\").hide();\r\n    $(\"#email\").removeClass('inputErr');\r\n    $(\"#dateStart\").removeClass('inputErr');\r\n    $('#cover-spin').hide(0);\r\n  }\r\n\r\n  function getRenewalbleStatus(status) {\r\n    if (status == 'ACTIVE_HASSUB') {\r\n      var _html = '<div class=\"divider\"><\/div>' +\r\n        '<div class=\"plan_notice\">' +\r\n        '<img decoding=\"async\" src=\"https:\/\/www.causewaylink.com.my\/BAS.MY-JohorBahru\/php-functions\/web\/cgi-bin\/images\/icon\/ic-error.png\"<\/img>' +\r\n        '<span style=\"line-height: 16px; margin-left:10px;\">' + translateText(\r\n          \"Renewal is not allowed because you have active \/ upcoming transit pass.\") + '<\/span>' +\r\n        '<\/div>';\r\n      $(\"#plan_list\").append(_html);\r\n\r\n      $(\"#btnRenew\").hide();\r\n    } else {\r\n      $(\"#btnRenew\").show();\r\n    }\r\n  }\r\n\r\n  function getPlanTemplate(status, subscription) {\r\n    if (subscription.status == 'ACTIVE') {\r\n      var _html_current = '<div class=\"divider\"><\/div><h5>' + translateText(\"Current Plan\") + '<\/h5>' +\r\n        '<div class=\"user_plan\">' +\r\n        '<img decoding=\"async\" style=\"width: 70px; height: 70px;\" src=\"' + subscription.planImage + '\"\/>' +\r\n        '<div class=\"user_plan_info\">' +\r\n        '<span style=\"padding-left:2px; font-weight: bold;\">' + translateText(subscription.planName) + '<\/span>' +\r\n        '<span>' + translateText(\"Valid period\") + ' : <span style=\"padding-left:2px\">' + subscription\r\n        .startDateDisplay + ' - ' + subscription.endDateDisplay + '<\/span><\/span>' +\r\n        '<span style=\"padding-left:2px;font-weight: 600;color: red;\">' + subscription.daysBeforeExpiry +\r\n        ' days left<\/span>' +\r\n        '<\/div>' +\r\n        '<\/div>';\r\n      $(\"#plan_list\").append(_html_current);\r\n      setRenewDate(status, subscription);\r\n    }\r\n\r\n    if (subscription.status == 'ACTIVE_HASSUB') {\r\n      var _html_future = '<div class=\"divider\"><\/div><h5>' + translateText(\"Upcoming Plan\") + '<\/h5>' +\r\n        '<div class=\"user_plan\">' +\r\n        '<img decoding=\"async\" style=\"width: 70px; height: 70px;\" src=\"' + subscription.planImage + '\"\/>' +\r\n        '<div class=\"user_plan_info\">' +\r\n        '<span style=\"padding-left:2px; font-weight: bold;\">' + translateText(subscription.planName) + '<\/span>' +\r\n        '<span>' + translateText(\"Valid period\") + ' : <span style=\"padding-left:2px\">' + subscription\r\n        .startDateDisplay + ' - ' + subscription.endDateDisplay + '<\/span><\/span>' +\r\n        '<\/div>' +\r\n        '<\/div>';\r\n      $(\"#plan_list\").append(_html_future);\r\n    }\r\n\r\n    if (status == 'EXPIRED' && subscription.status == 'EXPIRED') {\r\n      var _html_expired = '<div class=\"divider\"><\/div><h5>' + translateText(\"Expired Plan\") + '<\/h5>' +\r\n        '<div class=\"user_plan\">' +\r\n        '<img decoding=\"async\" style=\"width: 70px; height: 70px;\" src=\"' + subscription.planImage + '\"\/>' +\r\n        '<div class=\"user_plan_info\">' +\r\n        '<span style=\"padding-left:2px; font-weight: bold;\">' + translateText(subscription.planName) + '<\/span>' +\r\n        '<span>' + translateText(\"Valid period\") + ' : <span style=\"padding-left:2px\">' + subscription\r\n        .startDateDisplay + ' - ' + subscription.endDateDisplay + '<\/span><\/span>' +\r\n        '<\/div>' +\r\n        '<\/div>';\r\n      $(\"#plan_list\").append(_html_expired);\r\n      setRenewDate(status, subscription);\r\n    }\r\n  }\r\n\r\n  function getPlan(plan) {\r\n    var _html = '<div class=\"user_plan\">' +\r\n      '<img decoding=\"async\" style=\"width: 70px; height: 70px;\" src=\"' + (plan.subscriptionImageUrl || plan.planImage) + '\"\/>' +\r\n      '<div class=\"user_plan_info\">' +\r\n      '<div style=\"width:100%; display: flex; justify-content: space-between;\"><span style=\"padding-left:2px; font-weight: bold;\">' +\r\n      translateText(plan.subscriptionName || plan.planName) +\r\n      '<\/span><span style=\"color:#00A79C; font-weight:bold; font-size:15px;\">RM' + (plan.subscriptionPrice || 30.00) +\r\n      '<\/span><\/div>' +\r\n      '<span style=\"line-height: 18px;\">' + translateText(plan.subscriptionDesc || plan.planName) + '<\/span>' +\r\n      '<\/div>' +\r\n      '<\/div>';\r\n    $(\"#renew_plan_list\").append(_html);\r\n  }\r\n\r\n  function clearStep2(data) {\r\n    $(\"#lblName\").html('');\r\n    $(\"#lblIdNumber\").html('');\r\n    $(\"#plan_list\").html('');\r\n    $(\"#renew_step1\").show();\r\n    $(\"#renew_step2\").hide();\r\n    $(\"#renew_step3\").hide();\r\n    $(\"#email\").removeClass('inputErr');\r\n    $(\"#dateStart\").removeClass('inputErr');\r\n    setModalDefault();\r\n  }\r\n\r\n  function translateModalText(msg) {\r\n    var language = 'bm';\r\n    var newMsg = msg;\r\n\r\n    if (msg == 'User not found.') {\r\n      if (language == \"en\") {\r\n        newMsg = 'Sorry, your MyKad \/ MyTentera number is not found in record.';\r\n      } else if (language == \"bm\") {\r\n        newMsg = 'Maaf, nombor MyKad \/ MyTentera anda tiada dalam rekod.';\r\n      }\r\n    } else if (msg == 'Please use your lugo app for renewal.') {\r\n      if (language == \"en\") {\r\n        newMsg = 'Sorry, please use your Lugo app for pass transit renewal.';\r\n      } else if (language == \"bm\") {\r\n        newMsg = 'Maaf, sila guna applikasi Lugo untuk pembaharuan pas transit.';\r\n      }\r\n    } else if (msg == 'No active subscription plan found.') {\r\n      if (language == \"en\") {\r\n        newMsg = 'Sorry, please purchase pass transit at counter or Lugo.';\r\n      } else if (language == \"bm\") {\r\n        newMsg = 'Maaf, sila langgan pas transit di kaunter atau Lugo.';\r\n      }\r\n    } else if (msg == 'You will redirect to payment gateway page for renew pass transit.') {\r\n      if (language == \"en\") {\r\n        newMsg = 'You will redirect to payment gateway page for renew pass transit.';\r\n      } else if (language == \"bm\") {\r\n        newMsg = 'Anda akan dibawa ke halaman pembayaran untuk memperbaharui pas transit.';\r\n      }\r\n    } else if (msg == 'No subscription plan found.') {\r\n      if (language == \"en\") {\r\n        newMsg = 'No subscription pass transit found.';\r\n      } else if (language == \"bm\") {\r\n        newMsg = 'Tiada langganan pas transit dijumpai.';\r\n      }\r\n    } else if (msg == 'freeRideSuggestion') {\r\n      if (language == \"en\") {\r\n        newMsg = 'You are eligible for MYBas Konsesi program. Are you still want to continue to subscribe MYBas50?';\r\n      } else if (language == \"bm\") {\r\n        newMsg = 'Anda layak untuk program MYBas Konsesi. Adakah anda mahu meneruskan langganan MYBas50?';\r\n      }\r\n    } else if (msg == 'existingFreeRideUser') {\r\n      if (language == \"en\") {\r\n        newMsg = 'Please renew at selected counter. Refer Terms and Condition';\r\n      } else if (language == \"bm\") {\r\n        newMsg = 'Sila kemaskini langganan di kaunter terpilih. Sila rujuk Terma dan Syarat';\r\n      }\r\n    }\r\n\r\n    $(\"#ModalMessage\").text(newMsg);\r\n  }\r\n\r\n  function translateText(msg) {\r\n    var language = 'bm';\r\n    var newMsg = msg;\r\n\r\n    if (msg == 'Current Plan') {\r\n      if (language == \"en\") {\r\n        newMsg = 'Current Plan';\r\n      } else if (language == \"bm\") {\r\n        newMsg = 'Pelan Semasa';\r\n      }\r\n    } else if (msg == 'Valid period') {\r\n      if (language == \"en\") {\r\n        newMsg = 'Valid period';\r\n      } else if (language == \"bm\") {\r\n        newMsg = 'Tempoh sah';\r\n      }\r\n    } else if (msg == 'Upcoming Plan') {\r\n      if (language == \"en\") {\r\n        newMsg = 'Upcoming Plan';\r\n      } else if (language == \"bm\") {\r\n        newMsg = 'Pelan Akan Datang';\r\n      }\r\n    } else if (msg == 'Expired Plan') {\r\n      if (language == \"en\") {\r\n        newMsg = 'Expired Plan';\r\n      } else if (language == \"bm\") {\r\n        newMsg = 'Pelan Tamat Tempoh';\r\n      }\r\n    } else if (msg == 'Renewal is not allowed because you have active \/ upcoming transit pass.') {\r\n      if (language == \"en\") {\r\n        newMsg = 'Renewal is not allowed because you have active \/ upcoming transit pass.';\r\n      } else if (language == \"bm\") {\r\n        newMsg = 'Pembaharuan tidak dibenarkan kerana anda mempunyai pas transit yang aktif \/ akan datang.';\r\n      }\r\n    } else if (msg == 'myBAS50 transit pass') {\r\n      if (language == \"en\") {\r\n        newMsg = 'myBAS50 transit pass';\r\n      } else if (language == \"bm\") {\r\n        newMsg = 'Pas transit myBAS50';\r\n      }\r\n    } else if (msg ==\r\n      'A RM50 transit pass that allows Malaysian Citizens to unlimited travels on all myBAS Johor Bahru within 30 days.'\r\n    ) {\r\n      if (language == \"en\") {\r\n        newMsg =\r\n          'A RM50 transit pass that allows Malaysian Citizens to unlimited travels on all myBAS Johor Bahru within 30 days.';\r\n      } else if (language == \"bm\") {\r\n        newMsg =\r\n          'Satu pas perjalanan bas berharga RM50 yang menawarkan perjalanan tanpa had kepada Warganegara Malaysia untuk menaiki semua perkhidmatan myBas di Johor Bahru selama 30 hari.';\r\n      }\r\n    } else if (msg == 'Invalid email format.') {\r\n      if (language == \"en\") {\r\n        newMsg = 'Invalid email format.';\r\n      } else if (language == \"bm\") {\r\n        newMsg = 'Format emel tidak tepat.';\r\n      }\r\n    } else if (msg == 'Email is required.') {\r\n      if (language == \"en\") {\r\n        newMsg = 'Email is required.';\r\n      } else if (language == \"bm\") {\r\n        newMsg = 'Emel diperlukan.';\r\n      }\r\n    } else if (msg == 'Start date is required.') {\r\n      if (language == \"en\") {\r\n        newMsg = 'Start date is required.';\r\n      } else if (language == \"bm\") {\r\n        newMsg = 'Tarikh mula diperlukan.';\r\n      }\r\n    } else if (msg == 'and.') {\r\n      if (language == \"en\") {\r\n        newMsg = 'and';\r\n      } else if (language == \"bm\") {\r\n        newMsg = 'dan';\r\n      }\r\n    } else if (msg == 'Please check following error:') {\r\n      if (language == \"en\") {\r\n        newMsg = 'Please check following error:';\r\n      } else if (language == \"bm\") {\r\n        newMsg = 'Sila semak ralat dibawah:';\r\n      }\r\n    } else if (msg == 'Minimum start date is') {\r\n      if (language == \"en\") {\r\n        newMsg = 'Minimum start date is';\r\n      } else if (language == \"bm\") {\r\n        newMsg = 'Tarikh mula minimum adalah';\r\n      }\r\n    }\r\n\r\n    return newMsg;\r\n  }\r\n\r\n  function setRenewDate(status, plan) {\r\n    var startdate = moment().add(1, 'days');\r\n    if (status == \"ACTIVE\") {\r\n      startdate = moment(plan.endDate).add(1, 'days');\r\n      $(\"#dateStart\").val(startdate.format('YYYY-MM-DD'));\r\n      $(\"#dateStart\").prop('disabled', true);\r\n    } else if (status == \"EXPIRED\") {\r\n      startdate = moment().add(1, 'days');\r\n      $(\"#dateStart\").val(startdate.format('YYYY-MM-DD'));\r\n      $(\"#dateStart\").prop('disabled', false);\r\n    }\r\n    var enddate = moment(startdate, \"YYYY-MM-DD\").add(29, 'days');\r\n    $(\"#dateEnd\").val(enddate.format('YYYY-MM-DD'));\r\n    $(\"#dateEnd\").prop('disabled', true);\r\n  }\r\n\r\n  function setModalDefault() {\r\n    $(\"#btnModalClose\").show();\r\n    $(\"#lnkModalCancel\").hide();\r\n    $(\"#btnModalPayment\").hide();\r\n  }\r\n\r\n  function setModalForPayment() {\r\n    $(\"#btnModalClose\").hide();\r\n    $(\"#lnkModalCancel\").show();\r\n    $(\"#btnModalPayment\").show();\r\n  }\r\n\r\n  function ValidateStep3() {\r\n    var is_valid = true;\r\n    var err_msg = [];\r\n    var email = $.trim($(\"#email\").val());\r\n\r\n    var startdate = $(\"#dateStart\").val();\r\n    if ($.trim(startdate) == '') {\r\n      $(\"#dateStart\").addClass('inputErr');\r\n      err_msg.push(\" - \" + translateText('Start date is required.'));\r\n      is_valid = false;\r\n    } else {\r\n      var min_startdate = moment().add(1, 'days');\r\n      var set_startdate = moment(startdate, \"YYYY-MM-DD\")\r\n      if (moment(set_startdate).isBefore(min_startdate.format('YYYY-MM-DD'))) {\r\n        $(\"#dateStart\").addClass('inputErr');\r\n        err_msg.push(\" - \" + translateText('Minimum start date is') + '  ' + min_startdate.format('DD\/MM\/YYYY') +\r\n          '.');\r\n        is_valid = false;\r\n      } else {\r\n        $(\"#dateStart\").removeClass('inputErr');\r\n      }\r\n    }\r\n\r\n\r\n    if ($.trim(email) == '') {\r\n      $(\"#email\").addClass('inputErr');\r\n      err_msg.push(\" - \" + translateText('Email is required.'));\r\n      is_valid = false;\r\n    } else {\r\n      var emailReg = \/^([\\w-\\.]+@([\\w-]+\\.)+[\\w-]{2,4})?$\/;\r\n      if (emailReg.test(email)) {\r\n        $(\"#email\").removeClass('inputErr');\r\n      } else {\r\n        err_msg.push(\" - \" + translateText('Invalid email format.'));\r\n        $(\"#email\").addClass('inputErr');\r\n        is_valid = false;\r\n      }\r\n    }\r\n\r\n    if (!is_valid) {\r\n      var newErrMsg = translateText('Please check following error :') + \"<\/br>\"\r\n      newErrMsg = newErrMsg + err_msg.join('<\/br>');\r\n      $(\"#errMsgStep3\").html(newErrMsg);\r\n      $(\"#errMsgStep3\").show();\r\n    } else {\r\n      $(\"#email\").html('');\r\n      $(\"#errMsgStep3\").hide();\r\n    }\r\n    return is_valid;\r\n  }\r\n\r\n  function getOrderStatus() {\r\n    var StatusId = '';\r\n    if (StatusId != \"\") {\r\n      $(\"#renew_success\").hide();\r\n      $(\"#renew_failed\").hide();\r\n      $(\"#renew_step1\").hide();\r\n      $(\"#renew_step2\").hide();\r\n      $(\"#renew_step3\").hide();\r\n    } else {\r\n      clearStep2();\r\n    }\r\n\r\n    if (StatusId == \"1\") {\r\n      $('#cover-spin').show(0);\r\n      $(\"#renew_success\").show();\r\n      var TransactionId = '';\r\n      var OrderNumber = '';\r\n\r\n      var obj = new Object();\r\n      obj.TransactionId = TransactionId;\r\n      obj.OrderNumber = OrderNumber;\r\n\r\n      var params = new Array(new Items('q', JSON.stringify(obj)));\r\n      var querystring = getQueryString(params);\r\n\r\n      $.ajax({\r\n        dataType: \"json\",\r\n        url: 'https:\/\/www.causewaylink.com.my\/BAS.MY-JohorBahru\/php-functions\/web\/ajax.php?action=SubscriptionOrderStatus',\r\n        cache: false,\r\n        data: querystring,\r\n        success: function(msg) {\r\n          if (msg.status) {\r\n            var _data = JSON.parse(msg.data);\r\n            $(\"#success_lblName\").html(_data.name);\r\n            $(\"#success_lblIdNumber\").html(_data.idNumber);\r\n            $(\"#success_planimage\").attr(\"src\", _data.subscription.planImage);\r\n            $(\"#success_planname\").html(_data.subscription.planName);\r\n            $(\"#success_validityperiod\").html(_data.subscription.startDateDisplay + ' - ' + _data.subscription\r\n              .endDateDisplay);\r\n          }\r\n          $('#cover-spin').hide(0);\r\n        },\r\n        error: function(e) {\r\n          alert(\"getUserPlan error\");\r\n          $('#cover-spin').hide(0);\r\n        }\r\n      });\r\n    } else if (StatusId == \"0\") {\r\n      $(\"#renew_failed\").show();\r\n    }\r\n  }\r\n})\r\n<\/script><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-5379","page","type-page","status-publish","hentry","entry"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.causewaylink.com.my\/BAS.MY-JohorBahru\/wp-json\/wp\/v2\/pages\/5379","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.causewaylink.com.my\/BAS.MY-JohorBahru\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.causewaylink.com.my\/BAS.MY-JohorBahru\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.causewaylink.com.my\/BAS.MY-JohorBahru\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.causewaylink.com.my\/BAS.MY-JohorBahru\/wp-json\/wp\/v2\/comments?post=5379"}],"version-history":[{"count":7,"href":"https:\/\/www.causewaylink.com.my\/BAS.MY-JohorBahru\/wp-json\/wp\/v2\/pages\/5379\/revisions"}],"predecessor-version":[{"id":5388,"href":"https:\/\/www.causewaylink.com.my\/BAS.MY-JohorBahru\/wp-json\/wp\/v2\/pages\/5379\/revisions\/5388"}],"wp:attachment":[{"href":"https:\/\/www.causewaylink.com.my\/BAS.MY-JohorBahru\/wp-json\/wp\/v2\/media?parent=5379"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}