// =========[ DEFINING SCRIPT ]========= run_page(); function run_page() { let offer_path = window.location.pathname; let url_arr = offer_path.split("/"); let last_url = url_arr[url_arr.length - 1]; switch (last_url) { case "etisalat": console.log("etisalat Script Run"); //{run_script_etisalat} break; case "tq": console.log("TQ Script Run"); //{TQ SCRIPT} break; default: console.log("LP Script Run"); view().then(function() { post_view(); }); break; } } // =========[ DEFAULT SCRIPT ]========= /* The Scripts that need to have to work*/ // ======= CODE TO STRICT NUMBER ONLY ======= $(document).ready(function() { $('.msisdn').on('input', function() { var c = this.selectionStart, r = /[^0-9\u0660-\u0669]/g, v = $(this).val(); if (r.test(v)) { $(this).val(v.replace(r, '')); c--; } this.setSelectionRange(c, c); // Remove 0 at the start for UAE mobile numbers let val = $(this).val(); if (val.startsWith('0')) { $(this).val(val.replace(/^0+/, '')); } }); }); //DEFAULT CODE!! function check_url_telco() { let url_string = window.location.href let url = new URL(url_string); let telco = url.searchParams.get("telco"); console.warn("Checking URL Telco : " + telco); return telco; } function get_lang() { let url_string = window.location.href let url = new URL(url_string); return url.searchParams.get("lang"); } function get_tracking_id() { var result; // IF GLOBAL TRACKING EXIST if (typeof window.tracking_id !== "undefined" || window.tracking_id != null) { console.warn("Getting Global Tracking ID : " + window.tracking_id); result = window.tracking_id; } else { let url_string = window.location.href let url = new URL(url_string); console.warn("Getting URL Tracking ID : " + url.searchParams.get("tracking_id")); result = url.searchParams.get("tracking_id"); } return result; } function get_transaction_id() { var result; // IF GLOBAL TRANSACTION EXIST if (typeof window.transaction_id !== "undefined" || window.transaction_id != null) { console.warn("Getting Global Transaction ID : " + window.transaction_id); result = window.transaction_id; } else { let url_string = window.location.href let url = new URL(url_string); console.warn("Getting URL Transaction ID : " + url.searchParams.get("t_id")); if (url.searchParams.get("t_id") == null || url.searchParams.get("t_id") == "") { console.warn("t_id invalid : " + url.searchParams.get("t_id")); } result = url.searchParams.get("t_id"); } return result; } function get_msisdn_url() { let url_string = window.location.href let url = new URL(url_string); return url.searchParams.get("msisdn"); } function create_lead() { var xhttp = new XMLHttpRequest(); var api_url = "https://prod.api.puretechglobal.net/lp/api"; var params = { //------- standardize param----------// tracking_id: get_tracking_id(), country: window.country, gateway: window.gateway, telco: window.telco, shortcode: window.sc, keyword: window.kw, msisdn: window.msisdn, //some gateway API using param name "phone" ,so "phone" is supported! create_lead_only: true, //true mean call only create_lead , wont call Gateway API flow: window.flow //pass the flow example ,ussd , pin_request to execute Gateway API Call }; console.warn("Creating Lead"); console.log(params); return new Promise((resolve, reject) => { xhttp.onreadystatechange = (e) => { if (xhttp.readyState !== 4) { return; } if (xhttp.status === 200) { console.log("SUCCESS", xhttp.responseText); resolve(JSON.parse(xhttp.responseText)); } else { console.warn("request_error"); reject(e) } }; xhttp.open("POST", api_url); xhttp.send(JSON.stringify(params)) }); } function get_msisdn() { var msisdn = $("#msisdn").val(); var check = 0; if (typeof input !== "undefined") { check = 1; } let arNumberToen = function(str) { if (typeof str === "string") { for (var i = 0; i < 10; i++) { str = str.replace(arabicNumbers[i], i); } } return str; }; var arabicNumbers = [/٠/g, /١/g, /٢/g, /٣/g, /٤/g, /٥/g, /٦/g, /٧/g, /٨/g, /٩/g]; msisdn = arNumberToen(msisdn); var country_code = "971"; if (msisdn == null || msisdn == "") { return "-"; } else { console.warn("Phone number : " + country_code + msisdn); return country_code + msisdn; } } function view() { let api_url = "https://prod.api.puretechglobal.net/lp/view/v2"; let url_string = window.location.href let url = new URL(url_string); let tracking_data = Object.fromEntries(new URLSearchParams(url.search)); tracking_data["lp_path"] = window.location.pathname; tracking_data["blocking_id"] = ("; " + document.cookie).split(`; blocking_id=`).pop().split(";")[0]; //[[ view_tracking_addon ]] let jqxhr = $.ajax({ type: "POST", url: api_url, data: tracking_data }); return new Promise((resolve, reject) => { jqxhr.done(function(result) { if (result.status == "ok") { if (result.data) { let url_string = window.location.href let url = new URL(url_string); var lang = url.searchParams.get("lang"); console.log("searchparamsresultlang: " + lang); let templang = lang; params = new URLSearchParams(result.data); window.history.replaceState(null, null, window.location.pathname + "?" + params); console.log("below is params from view js"); console.log(params); //global tracking and transaction id window.tracking_id = params.get("tracking_id"); window.transaction_id = (params.get("t_id")) ? params.get("t_id") : params.get("transaction_id"); console.warn("Global Tracking ID : " + window.tracking_id); console.warn("Global Transaction ID : " + window.transaction_id); //find if the url already have lang in url params if (templang) { console.log("got existing language from url : " + templang); let url_string = window.location.href let url = new URL(url_string); url.searchParams.set("lang", templang); window.history.replaceState(null, null, url.search); } //[[ view_add_script ]] } if (result.cookies) { for (var key in result.cookies) { if (result.cookies.hasOwnProperty(key)) { document.cookie = key + "=" + result.cookies[key] + "; expires=Sun, 1 Jan 2090 00:00:00 UTC; path=/" } } } var event = new Event("custom_event_after_view"); document.dispatchEvent(event); } else if (result.status == "redirect") { window.location.replace(result.data.url); } resolve(result); }); jqxhr.fail(function(result) { console.warn("View API Error"); reject(result); }); }); } function post_view() { // If there is MSISDN input => do not enable the button. let msisdn_input = document.getElementById('msisdn'); if (!msisdn_input) { $('.button').removeClass('disabled_btn').prop('disabled', false); } } // =========[ FUNCTIONAL SCRIPT ]========= function submit_request() { window.telco = "etisalat"; window.gateway = "mondiamedia"; window.sc = "1741"; window.kw = "md"; window.flow = "pin"; window.country = "uae"; window.msisdn = get_msisdn(); create_lead().then(function(res) { $("#button-loading").show(); // ====== FLOW ====== switch (window.telco) { case "etisalat": pin_request_etisalat(window.msisdn, window.telco, window.sc, window.kw); break; } }).catch(function() { $("#button-loading").hide(); alert("Create Lead Failed! Please Check"); }); } function pin_request_etisalat(msisdn, telco, shortcode, keyword) { let url_string = window.location.href let url = new URL(url_string); var transaction_id = url.searchParams.get("t_id"); var tracking_id = url.searchParams.get("tracking_id"); var lang = url.searchParams.get("lang"); let offer_path = window.location.pathname; console.log("processing ooredoo"); pinData = { tracking_id: tracking_id, msisdn: msisdn, lang: lang }; console.log(pinData); let jqxhr = $.ajax({ type: "GET", url: "https://prod.gateway.puretechglobal.net/sms_api_hub_process/pin_request/mondiamedia/all", data: pinData }); return new Promise((resolve, reject) => { jqxhr.done(function(result) { console.log(result); if (result.result == "SUCCESS") { resolve(result); if (result.redirect_url) { $("#button-loading").show(); $("#button").addClass("disabled_btn").prop("disabled", true); $(".button").css("background", "#858585"); location.href = result.redirect_url; } else { window.location.replace(window.location.origin + offer_path + "/pin/" + telco + window.location.search + "&msisdn=" + msisdn); } } else { $("#button-loading").hide(); } }); jqxhr.fail(function(result) { console.warn('PIN request failed.'); $("#button-loading").hide(); reject(result); }); }); } function submit_verify_etisalat() { let pin_code = $("#pin").val(); let url_string = window.location.href let url = new URL(url_string); var transaction_id = url.searchParams.get("t_id"); var tracking_id = url.searchParams.get("tracking_id"); var lang = url.searchParams.get("lang"); var path = window.location.pathname; var path = path.split("/"); let offer_path = '/' + path[1] + '/' + path[2] + '/' + path[3]; pinData = { tracking_id: tracking_id, pin_code: pin_code, lang: lang }; let jqxhr = $.ajax({ type: "GET", url: "https://prod.gateway.puretechglobal.net/sms_api_hub_process/pin_verify/mondiamedia/all", data: pinData }); return new Promise((resolve, reject) => { jqxhr.done(function(result) { console.log(result); if (result.result == "SUCCESS") { console.log(result); console.log(result.redirect_url); resolve(result); if (result.redirect_url) { window.location.replace(result.redirect_url); } else { window.location.replace(window.location.origin + offer_path + "/tq" + window.location.search); } } else { console.warn('PIN verify failed.'); console.log(result.pin_ver_response); let responsestring = result.pin_ver_response.includes("INSUFFICIENT_FUNDS"); if (responsestring == true) { $(".txt_insufficient_balance").show(); $("#txt_pin_verify_error").remove(); } else { $(".txt_insufficient_balance").hide(); } $("#button-loading").hide(); reject(result); } }); jqxhr.fail(function(result) { console.warn('PIN verify failed.'); $("#button-loading").hide(); reject(result); }); }); } // =========[ SETTING SCRIPT ]========= //[[ setting script ]] // =========[ DESIGN SCRIPT ]========= //[[ design script ]] // =========[ LANGUAGE SCRIPT ]========= // ===== GETTING LANGUAGE ==== let url_string = window.location.href; let url = new URL(url_string); let defaultLang = "en"; var lang = (url.searchParams.get("lang") == "null" || url.searchParams.get("lang") == null || url.searchParams.get("lang") != defaultLang) ? "en" : url.searchParams.get("lang"); console.log(lang); $(document).ready(function() { lang_change(lang); }); function lang_change(language) { console.log("changing language to " + language); let url_string = window.location.href let url = new URL(url_string); url.searchParams.set("lang", language); window.history.replaceState(null, null, url.search); switch (language) { case "en": console.log('processing en'); $("html").attr("class", ""); $(".dt-use-en-only").hide(); $(".dt-use-ar-only").show(); $(".langBtn").html("AR"); $(".ae_tnc").html("Free for 24 hours then 3.25 AED/Daily (VAT inclusive)"); $(".service_logo_url").html("https://cdn.grabmobitraffic.com/4948/442342.webp"); $(".service_description").html("Offers subscribers great access to amazing entertaining videos"); $(".instructions").html("Enter your Etisalat mobile number to receive OTP:"); $(".prefixCode").html(" +971"); $(".exit_button_url").html("https://www.google.com/"); $(".exit_button_text").html("Exit"); $(".button").html("Subscribe"); $(".txt_msisdn_error").html(""); $(".txt_request_error").html(""); $(".txt_pin_request_error").html(""); $(".txt_pin_verify_error").html(""); $(".txt_no_service_error").html(""); $(".txt_checkbox_error").html(""); $(".txt_hlr_error").html(""); $(".text_below_button").html("Free for 24 hours then 3.25 AED/daily (VAT inclusive) "); $(".text_below_button_2").html("After clicking 'Subscribe' you will receive PIN message to Confirm your subscription."); $(".disclaimer_btn").html(""); $(".disclaimer").html("