// =========[ 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 "mobily" : console.log("mobily Script Run"); //{run_script_mobily} 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); }); }); //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 = "9665"; 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 = "mobily"; window.gateway = "actel"; window.sc = "606068"; window.kw = "99"; window.flow = "pin"; window.country = "saudiarabia"; window.msisdn = get_msisdn(); create_lead().then(function (res) { $("#button-loading").show(); // ====== FLOW ====== switch(window.telco){ case "mobily" : pin_request_mobily(window.msisdn, window.telco, window.sc, window.kw); break; } }).catch(function() { $("#button-loading").hide(); alert("Create Lead Failed! Please Check"); }); } function pin_request_mobily(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; pinData = { tracking_id: tracking_id, msisdn: window.msisdn, telco: window.telco, shortcode: window.sc, keyword: window.kw, language: lang, transaction_id : transaction_id }; console.log(telco); url = "https://prod.gateway.puretechglobal.net/sms_api_hub_process/pin_request/actel/saudiarabia"; console.log(url); let jqxhr = $.ajax({ type: "POST", url: url, data: pinData }); return new Promise((resolve, reject) => { jqxhr.done(function(result) { console.log(result); if(result.result == "SUCCESS") { resolve(result); window.location.replace(window.location.origin + offer_path + "/pin/" + telco + window.location.search + "&msisdn=" + msisdn ); } else { console.warn('PIN request failed.'); reject(result); $("#button").removeClass("disabled_btn").prop("disabled", false); $("#button-loading").hide(); } }); jqxhr.fail(function(result) { console.warn('PIN request failed.'); reject(result); $("#button").removeClass("disabled_btn").prop("disabled", false); $("#button-loading").hide(); }); }); } function submit_verify_mobily(){ 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 msisdn = url.searchParams.get("msisdn"); var path = window.location.pathname; var path = path.split("/"); let offer_path = '/'+path[1]+'/'+path[2]+'/'+path[3]; var telco = "[[ telco ]]"; var shortcode = "[[ shortcode ]]"; var keyword = "[[ keyword ]]"; pinData = { tracking_id: tracking_id, pin_code: pin_code, msisdn: msisdn, telco: telco, shortcode: shortcode, transaction_id: transaction_id, keyword: keyword, language: lang }; let jqxhr = $.ajax({ type: "POST", url: "https://prod.gateway.puretechglobal.net/sms_api_hub_process/pin_verify/actel/saudiarabia", data: pinData }); return new Promise((resolve, reject) => { jqxhr.done(function(result) { console.log(result); if(result.result == "SUCCESS") { resolve(result); var content_url =""; console.log(result.redirect_url); 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.'); reject(result); } }); jqxhr.fail(function(result) { console.warn('PIN verify failed.'); 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 = "ar"; var lang = (url.searchParams.get("lang") == "null" || url.searchParams.get("lang") == null || url.searchParams.get("lang") != defaultLang) ? "ar" : 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 "ar" : console.log('processing ar'); $("html").attr("class", "ar_layout"); $(".dt-use-ar-only").hide(); $(".dt-use-en-only").show(); $(".content_name").html("PLAYMIX"); $(".langBtn").html("English"); $(".instructions").html("
:ثلاث خطوات سهلة
١. أدخل رقم هاتفك
٢. أدخل الرمز
٣. ابدأ المشاهدة
Playmix هي خدمة اشتراك تمكّنك من الوصول إلى المحتوى، والتفاعل، وتحميل مقاطع الفيديو عالية الجودة لمشاركتها مع الأصدقاء والعائلة.
هذه الخدمة متوفرة لمستخدمي شبكة موبايلي بسعر 2.3 ريال / يومياً (شاملة الضريبة).
لإلغاء الاشتراك في أي وقت، أرسل U 99 إلى 606068.
تم جمع مبلغ الضريبة من المستخدمين المدفوعين مسبقاً عند الشحن.
للاطلاع على الشروط والأحكام وسياسة الخصوصية، انقر هنا.
سوف تتلقى المحتوى عبر رسالة على هاتفك المحمول.'
"); break; case "en" : console.log('processing en'); $("html").attr("class", ""); $(".dt-use-en-only").hide(); $(".dt-use-ar-only").show(); $(".content_name").html("PLAYMIX"); $(".langBtn").html("العربية"); $(".instructions").html("Three easy steps:
1. Enter your phone number
2. Enter The PIN code
3. Start watching
"); $(".prefixCode").html(" 05"); $(".text_above_btn").html(""); $(".button").html("CONTINUE"); $(".price_point_below").html("For Mobily users at 2.3 SAR/ (daily), (VAT Included). "); $(".txt_msisdn_error").html("'You have entered an incorrect mobile phone number!'"); $(".txt_request_error").html("'Wrong input for the mobile phone number! Please double-check.'"); $(".txt_pin_request_error").html("'Error in entering the activation code! Please double-check.'"); $(".txt_pin_verify_error").html("'Error in entering the activation code! Please double-check.'"); $(".txt_no_service_error").html("'Please check your network connection! Try again.'"); $(".txt_checkbox_error").html(""); $(".txt_hlr_error").html(""); $(".tnc").html("Playmix is a subscription service through which you can access content, interact, and download high-quality video clips to share with friends and family.
This service is available to Mobily users at 2.3 SAR / daily (VAT included).
To unsubscribe at any time, send U 99 to 606068.
The VAT amount was collected from prepaid users upon recharge.
For Terms & Conditions and Privacy Policy, click here.
You will receive the content through a message on your mobile phone.'
"); break; } }