// =========[ 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(); $(".service_logo_url").html(""); $(".service_text").html("Welcome to Mobiflix Free for 24hrs then 3.25 AED/day (VAT inc)"); $(".langBtn").html("العربية"); $(".service_description").html("Mobiflix offers subscribers great access to amazing entertaining videos"); $(".instructions").html("Enter your Etisalat mobile number to receive OTP:"); $(".prefixCode").html(" (+971)"); $(".button").html("Subscribe"); $(".exit_btn").html("Exit"); $(".text_below_btn").html(""); $(".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(""); $(".price_points").html("Free for 24hrs then 3.25 AED/day (VAT inc)
After clicking “Subscribe” you will receive PIN message to Confirm your subscription
"); $(".disclaimer_btn").html(""); $(".disclaimer").html("TERMS AND CONDITIONS:بالضغط على 'اشترك'، سوف تتلقى رسالة تحتوي علي رمز التفعيل لتأكيد اشتراكك
"); $(".disclaimer_btn").html(""); $(".disclaimer").html("