# Number of Paths In a Matrix Problem

Consider a maze mapped to a matrix with an upper left corner at coordinates (row, column) = (0, 0). You can only move either towards right or down from a cell. You must determine the number of distinct paths through the maze. You will always start at a position (0, 0), the top left, and end up at (n-1, m-1), the bottom right. As an example, consider the following diagram where '1' indicates an open cell and '0' indicates blocked. You can only travel through open cells, so no path can go through the cell at (0, 2). There are two distinct paths to the goal.

There are two possible paths from the cell (0, 0) to cell (1, 3) in this matrix. Complete the function numberOfPaths. The function must return the number of paths through the matrix, modulo (10^9 + 7).

Example One

Input:

3

4

1 1 1 1

1 1 1 1

1 1 1 1

Output: 10

There are 10 possible paths from cell (0, 0) to cell (2, 3).

Example Two

Input:

2

2

1 1

0 1

Output: 1

There is 1 possible path from the cell (0, 0) to cell (1, 1).

Notes

Input Parameters: The function contains a single argument, a two-dimensional integer array called matrix.

Output: Return an integer, the number of paths to reach from (0, 0) to (n-1, m-1).

Constraints:

● 1

● Each cell, matrix[i][j], contains 1, indicating it is accessible or 0, indicating it is not accessible, where 0

#### Solution

We provided 2 solutions.

#### 1) brute_force_solution.java

● We have a matrix having n rows and m columns where each cell, matrix[A][B], denotes whether it is accessible or not.

● We will use recursion to solve this problem.

● We know that the number of ways to reach a cell is the sum of the number of ways to reach cell just to the left of it and the number of ways to reach cell just above it, that is for cell matrix[i][j], the number of ways to reach that cell is the number of ways to reach cell matrix[i-1][j] + number of ways to reach cell matrix[i][j-1].

● This is because we can only go in the right or downward direction from any cell.

● Now, we start from cell and perform recursion that is number of ways to reach cell (n-1, m-1) which is recur(matrix, n-1, m-1) = recur(matrix, n-2, m-1) + recur(matrix, n-1, m-2).

● For each cell we will check if it is accessible or not. If it is not we simply return 0, as there is no way to reach it.

● The base condition would be that for cell (0,0), that is the starting cell, if it is accessible then the number of ways to reach it is 1.

Time Complexity:

O(2^(rows+columns)).

In each recursion step, we will either reduce n by 1 or m by 1. Hence, the recurrence relation will be:

T(n + m) = T(n - 1 + m) + T(n + m - 1) + O(1)

T(n + m) = 2 * T(n - 1 + m) + O(1)

Which is O(2^(n+m)).

Auxiliary Space Used:

O(rows+columns). We do not create any auxiliary array for the solution. We use recursion which uses O(rows+columns) stack space as the maximum steps can be rows+columns at a time.

Space Complexity:

O(rows*columns). Input takes O(rows*columns) space, the auxiliary space used is O(rows+columns), and the output takes O(1). Summing these up we get O(rows*columns).

``````
// -------- START --------
public static int numberOfPaths(List> matrix){
int n = matrix.size(), m = matrix.get(0).size(), MOD = 1000000007;
int ans = recur(matrix, n-1, m-1, MOD);
return ans;
}

public static int recur(List> matrix, int n, int m, int MOD) {
int ans = 0;
//stopping condition
if(n<0 || m<0) {
return 0;
}
//if a cell is restricted, there are 0 ways to reach there.
if(matrix.get(n).get(m)==0) {
return 0;
}
//base condition: if cell (0,0) is accessible, we have 1 way to reach it.
if(n==0 && m==0) {
return 1;
}
/*number of ways to reach cell
a[i][j] = number of ways to reach cell a[i-1][j] + number of ways to reach cell a[i][j-1]*/
ans += (recur(matrix, n-1, m, MOD) + recur(matrix, n, m-1, MOD))%MOD;
return ans;
}
// -------- END --------
``````

#### 2) optimal_solution.java

● We have a matrix having n rows and m columns where each cell, matrix[A][B], denotes whether it is accessible or not.

● As we can see from the above recursive solutions (brute_force_solution) is exponential. We are visiting multiple states again and again and then recursing for them, which we can surely avoid.

● With the same idea of avoiding recursion again and again for states that have already been visited, we store them in a dp array so that they can be accessed as and when needed.

● This approach is known as Dynamic Programming.

● We know that for any cell (i, j) the number of paths to reach it would be the number of paths to reach cell(i-1, j) + number of paths to reach cell (i, j-1).

● For any accessible cell matrix[i][j], we maintain the count of number of paths to reach this cell in a separate two-dimensional array dp[i][j], where dp[i][j] = dp[i-1][j] + dp[i][j-1], given that cell (i, j) is accessible.

● We return the value of dp[i][j] as the answer.

Time Complexity:

O(n*m) considering the number of rows are n and columns are m.

We traverse the entire array matrix once and simultaneously traverse the dp array to keep the number of ways to reach that cell from cell (0,0). So we travel both arrays at most 1 time and hence the time complexity is O(n*m).

Auxiliary Space Used:

O(n*m) considering the number of rows are n and columns are m. We create a two-dimensional array dp of size n*m to store the number of paths from cell (0,0) to the current cell. Hence, auxiliary space used is O(n*m).

Space Complexity:

O(n*m) considering the number of rows are n and columns are m. Input complexity is O(n*m), auxiliary space used is O(n*m), and output space complexity is O(1), hence total complexity will be O(n*m).

``````
// -------- START --------
public static int numberOfPaths(List> matrix){
int n = matrix.size(), m = matrix.get(0).size(), MOD = 1000000007;
if(matrix.get(0).get(0)== 0 || matrix.get(n-1).get(m-1)==0) {
return 0;
}
int[][] dp = new int[n][m];
//if cell (0,0) is accessible, number of ways to reach it is 1
dp = 1;
//filling for the cells in first row.
for(int i = 1; i < m ;i++){
if(matrix.get(0).get(i)==1 && dp[i-1] == 1){
dp[i] = 1;
}
}
//filling for the cells in the first column
for(int i = 1; i < n ;i++){
if(matrix.get(i).get(0)==1 && dp[i-1] == 1){
dp[i] = 1;
}
}
/*number of ways to reach
cell(i,j) = number of ways to reach cell(i-1,j) + number of ways to reach cell (i,j-1)*/
for(int i = 1; i < n; i++){
for(int j = 1; j``````

### `Attend our Free Webinar on How to Nail Your Next Technical Interview`

#### `Recommended Posts`

`Print Matrix In Spiral Order Problem`
`Skyline Problem`
`Number Of Ways To Make Change Problem`
`All Posts`
``` window.cookieconsent.initialise({palette:{popup:{background:"#3996d2",text:"#ffffff"},button:{background:"#00d1b4",text:"#ffffff"}},theme:"classic",content:{message:"We use cookies to enable the best possible experience on our site and to optimize the content for you. If you continue surfing you agree.",href:"https://www.interviewkickstart.com/privacy-policy"}}); function getAllUrlParams(url) { var queryString = url ? url.split('?') : window.location.search.slice(1); var utmobj = {}; if (queryString) { queryString = queryString.split('#'); var arr = queryString.split('&'); for (var i = 0; i < arr.length; i++) { var a = arr[i].split('='); var paramName = a; var paramValue = typeof (a) === 'undefined' ? true : a; paramName = paramName.toLowerCase(); if (paramName.match(/\[(\d+)?\]\$/)) { var key = paramName.replace(/\[(\d+)?\]/, ''); if (!utmobj[key]) utmobj[key] = []; if (paramName.match(/\[\d+\]\$/)) { var index = /\[(\d+)\]/.exec(paramName); utmobj[key][index] = paramValue; } else { utmobj[key].push(paramValue); } } else { if (!utmobj[paramName]) { utmobj[paramName] = paramValue; } else if (utmobj[paramName] && typeof utmobj[paramName] === 'string'){ utmobj[paramName] = [utmobj[paramName]]; utmobj[paramName].push(paramValue); } else { utmobj[paramName].push(paramValue); } } } } return utmobj; } function create_UUID() { function _p8(s) { var p = (Math.random().toString(16)+"000000000").substr(2,8); return s ? "-" + p.substr(0,4) + "-" + p.substr(4,4) : p ; } return _p8() + _p8(true) + _p8(true) + _p8(); } var visitor_id = getCookie("unique_visitor_id6"); var expdate = new Date(); expdate.setTime(expdate.getTime()+(365*24*60*60*1000)); if(visitor_id == ""){ setCookie("unique_visitor_id6",create_UUID()); visitor_id = getCookie("unique_visitor_id6"); } var referrer = document.referrer; var utm_params_url; let calendly_param = getAllUrlParams(); \$("#iksiteurl").val(iksite_url); if(calendly_param['invitee_first_name'] != undefined){ \$("#invitee_first_name").val(decodeURIComponent(calendly_param['invitee_first_name'])); \$("#invitee_last_name").val(decodeURIComponent(calendly_param['invitee_last_name'])); \$("#invitee_email").val(decodeURIComponent(calendly_param['invitee_email'])); \$("#answer_1").val(decodeURIComponent(calendly_param['answer_1'])); \$("#utm_source").val(decodeURIComponent(calendly_param['utm_source'])); \$("#utm_medium").val(decodeURIComponent(calendly_param['utm_medium'])); \$("#utm_campaign").val(decodeURIComponent(calendly_param['utm_campaign'])); \$("#salesforce_uuid").val(decodeURIComponent(calendly_param['salesforce_uuid'])); \$("#gclid").val(decodeURIComponent(calendly_param['gclid'])); \$("#msclkid").val(decodeURIComponent(calendly_param['msclkid'])); \$("#fbclid").val(decodeURIComponent(calendly_param['fbclid'])); \$("#event_start_time").val(decodeURIComponent(calendly_param['event_start_time'])); \$("#event_end_time").val(decodeURIComponent(calendly_param['event_end_time'])); \$("#user_id").val(visitor_id); utm_params_url = {}; } else{ utm_params_url = getAllUrlParams(); } if(utm_params_url['gh_jid'] != undefined){ utm_params_url = {}; \$('.careers-sec1, .careers-sec2, .careers-sec3, .careers-sec4').hide(); } let isEmpty = jQuery.isEmptyObject(utm_params_url); let r_visit = read_cookie("v_latest"); if(isEmpty && (r_visit == null)){ bake_organic_cookie(); } else if(!isEmpty && (r_visit == null)){ bake_cookie("v_latest", utm_params_url); if(referrer == null || referrer.indexOf(window.location.host.toString()) == -1) bake_cookie_history("v_history", utm_params_url); } else if(isEmpty && (r_visit != null)){ if(r_visit['utm_source'] != "Organic") { bake_organic_cookie(); } } else{ if(!isDuplicateCookie(utm_params_url, r_visit)){ bake_cookie("v_latest", utm_params_url); if(referrer == null || referrer.indexOf(window.location.host.toString()) == -1) bake_cookie_history("v_history", utm_params_url); } } function isCookieSizeExceeded(){ let c_size = 15; var h_cookie = read_cookie("v_history"); if (h_cookie == null) return; if(h_cookie.length >= c_size){ h_cookie.shift(); bake_cookie("v_history", h_cookie); } } function isDuplicateCookie(utm_params, recent_visit){ if((utm_params['utm_source'] == recent_visit['utm_source']) && (utm_params['utm_medium'] == recent_visit['utm_medium']) && (utm_params['utm_campaign'] == recent_visit['utm_campaign']) && (utm_params['utm_adset'] == recent_visit['utm_adset']) && (utm_params['utm_content'] == recent_visit['utm_content']) && (utm_params['utm_term'] == recent_visit['utm_term']) && (utm_params['fbclid'] == recent_visit['fbclid'])) { return true; } else{return false;} } function bake_cookie_history(name, value) { isCookieSizeExceeded(); var visits_history = []; var iksutmhistory = read_cookie(name); if(iksutmhistory == "" || iksutmhistory == null){ var utmstring = value; utmstring.timestamp = \$.now(); visits_history.push(utmstring); var cookie = [name, '=', JSON.stringify(visits_history), ';expires','=', expdate.toGMTString(), '; domain=.', window.location.host.toString(), '; path=/;'].join(''); document.cookie = cookie; } else { var result = document.cookie.match(new RegExp(name + '=([^;]+)')); result && (result = JSON.parse(result)); var newhistoryobj = result.push(value); var cookie = [name, '=', JSON.stringify(result), ';expires','=', expdate.toGMTString(), '; domain=.', window.location.host.toString(), '; path=/;'].join(''); document.cookie = cookie; } } function bake_organic_cookie(){ var organicobj = { "utm_source":"Organic", "utm_medium":"", "utm_campaign":"", "utm_adset":"", "utm_content":"", "utm_term":"", "timestamp":\$.now()}; if(referrer == null || referrer.indexOf(window.location.host.toString()) == -1){ bake_cookie_history("v_history", organicobj); bake_cookie("v_latest", organicobj); } } function bake_cookie(name, value) { var utmstring = value; utmstring.timestamp = \$.now(); var cookie = [name, '=', JSON.stringify(utmstring), ';expires','=', expdate.toGMTString(),'; domain=.', window.location.host.toString(), '; path=/;'].join(''); document.cookie = cookie; } function read_cookie(name) { var result = document.cookie.match(new RegExp(name + '=([^;]+)')); result && (result = JSON.parse(result)); return result; } function setCookie(cname, cvalue) { var d = new Date(); d.setTime(d.getTime() + (365*24*60*60*1000)); var expires = "expires="+ d.toUTCString(); document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/"; } function getCookie(cname) { var name = cname + "="; var ca = document.cookie.split(';'); for(var i = 0; i < ca.length; i++) { var c = ca[i]; while (c.charAt(0) == ' ') { c = c.substring(1); } if (c.indexOf(name) == 0) { return c.substring(name.length, c.length); } } return ""; } \$('.calendly-link-widget').click(function(){ var active_visit = read_cookie("v_latest"); var visit_history = read_cookie("v_history"); var utm_medium_str=""; for (const property in active_visit) { if (`\${property}` == "utm_medium") { utm_medium_str = utm_medium_str + `\${active_visit[property]}`; } } utm_medium_str = utm_medium_str + ":"; for (const property in active_visit) { if (`\${property}` == "gclid") { utm_medium_str = utm_medium_str + "gclid:" + `\${active_visit[property]}`; } else if (`\${property}` == "msclkid") { utm_medium_str = utm_medium_str + "msclkid:" + `\${active_visit[property]}`; } else if (`\${property}` == "fbclid") { utm_medium_str = utm_medium_str + "fbclid:" + `\${active_visit[property]}`; } } if ( (utm_medium_str.indexOf("gclid") == -1) && (utm_medium_str.indexOf("msclkid") == -1) && (utm_medium_str.indexOf("fbclid") == -1)){ utm_medium_str = utm_medium_str + ":"; } utm_medium_str = utm_medium_str + ":" + visitor_id.toString().replace(/"/g, ""); var utm_campaign="",utm_source="",utm_content="",utm_term=""; for (const property in active_visit) { if (`\${property}` == "utm_campaign") { utm_campaign = `\${active_visit[property]}`; } } for (const property in active_visit) { if (`\${property}` == "utm_source") { utm_source = `\${active_visit[property]}`; } } for (const property in active_visit) { if (`\${property}` == "utm_content") { utm_content = `\${active_visit[property]}`; } } for (const property in active_visit) { if (`\${property}` == "utm_term") { utm_term = `\${active_visit[property]}`; } } Calendly.initPopupWidget({ url: 'https://calendly.com/interviewkickstart/enrollment-workshop', utm: { utmCampaign: utm_campaign, utmSource: utm_source, utmMedium: utm_medium_str, utmContent: utm_content, utmTerm: utm_term } }); let page_url = window.location.pathname; var jsonData = {"unique_visitor_id": visitor_id.toString().replace(/"/g, ""), "device_name": "", "page_url": page_url, "visitor_city": v_city, "click_history":JSON.stringify(visit_history)}; \$.ajax({ type: "POST", url: "https://hooks.zapier.com/hooks/catch/9555768/ong6g6o/", data: jsonData, success: function (e) { if(e.status == "success"){ bake_cookie("v_history",""); bake_cookie("v_latest",""); } setTimeout(function(){ location.href = calendlyurl; }, 100); } }); return false; }); \$('.direct-link').click(function(e) { e.preventDefault(); calendlySignup(false,""); }); \$('.lpv5-home-form').click(function(e) { e.preventDefault(); var formstr = '&first_name=' + \$("#lpv5-fname").val() + '&last_name=' + \$("#lpv5-lname").val() + '&a1=' + \$("#lpv5-phone").val() + '&email=' + \$("#lpv5-email").val(); calendlySignup(true, formstr); }); \$('.request-info-close').click(function(e){ \$('.request-info-wrap').css("display","none"); \$('.request-info-wrap').css("opacity",0); }); \$('.btn-webinar-popup').click(function(e){ e.preventDefault(); \$('.request-info-wrap').css("display","flex"); \$('.request-info-wrap').css("opacity",1); let page_url = window.location.pathname; let visit_history = read_cookie("v_history"); var jsonData = {"unique_visitor_id": visitor_id.toString().replace(/"/g, ""), "device_name": "", "page_url": page_url, "visitor_city": v_city, "click_history":JSON.stringify(visit_history)}; \$.ajax({ type: "POST", url: "https://hooks.zapier.com/hooks/catch/9555768/ong6g6o/", data: jsonData, success: function (e) { if(e.status == "success"){ bake_cookie("v_history",""); bake_cookie("v_latest",""); } } }); }); \$('.form-to-calendly').click(function(e) { e.preventDefault(); var active_visit = read_cookie("v_latest"); var full_phone_number = int_phone.getNumber(intlTelInputUtils.numberFormat.E164); \$("input[name='phone_number[full]'").val(full_phone_number); var formstr = '&first_name=' + \$("#wcalendly-fname").val() + '&last_name=' + \$("#wcalendly-lname").val() + '&a1=' + full_phone_number + '&email=' + encodeURIComponent(\$("#wcalendly-email").val()) + '&salesforce_uuid=' + v_timezone; \$('#wc_utm_source').val(active_visit['utm_source']); \$('#wc_utm_medium').val(active_visit['utm_medium']); \$('#wc_utm_campaign').val(active_visit['utm_campaign']); \$('#wc_gclid').val(active_visit['gclid']); \$('#wc_msclkid').val(active_visit['msclkid']); \$('#wc_timezone').val(v_timezone); \$('#wc_page_url').val(window.location.pathname); \$('#wc_user_id').val(visitor_id); var name_regex = new RegExp("^[a-zA-Z ]+\$"); var email_regex = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+\$/; var phone_regex = /^(\+\d{1,2}\s?)?1?\-?\.?\s?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}\$/gm; \$( "#wcalendly-fname" ).keypress(function() { \$('.fname-error').addClass('hide'); }); \$( "#wcalendly-lname" ).keypress(function() { \$('.lname-error').addClass('hide'); }); \$( "#wcalendly_pnumber" ).keypress(function() { \$('.mobile-error').addClass('hide'); }); \$( "#wcalendly-email" ).keypress(function() { \$('.email-error').addClass('hide'); }); \$( "#wcalendly-fname, #wcalendly-lname, #wcalendly-email, #wcalendly_pnumber" ).focus(function() { \$('.fname-error, .lname-error, .email-error, .mobile-error').addClass('hide'); }); if( (\$("#wcalendly-fname").val().length == 0) && (\$("#wcalendly-lname").val().length == 0) && (\$("#wcalendly-email").val().length == 0) && (\$("#wcalendly_pnumber").val().length == 0)){ \$('.fname-error, .lname-error, .email-error, .mobile-error').removeClass('hide'); } else if (!name_regex.test(\$("#wcalendly-fname").val()) || \$("#wcalendly-fname").val().length == 0){ \$('.fname-error').removeClass('hide'); }else if (!name_regex.test(\$("#wcalendly-lname").val()) || \$("#wcalendly-lname").val().length == 0){ \$('.lname-error').removeClass('hide'); }else if (!email_regex.test(\$("#wcalendly-email").val()) || \$("#wcalendly-email").val().length == 0){ \$('.email-error').removeClass('hide'); }else if(!phone_regex.test(\$("#wcalendly_pnumber").val()) || \$("#wcalendly_pnumber").val().length == 0){ \$('.mobile-error').removeClass('hide'); }else{ \$(".leadcapturing-form").submit(); calendlySignup(true,formstr); } }); function calendlySignup(isthisForm,formstr) { \$('.loading-overlay').css('display', 'flex'); var calendlyurl = "https://calendly.com/interviewkickstart/enrollment-workshop?"; var active_visit = read_cookie("v_latest"); var visit_history = read_cookie("v_history"); var gaid = getCookie("_ga"); visitor_id = visitor_id + gaid; //console.log("visitor_id: "+visitor_id); var utm_medium_str = "utm_medium="; for (const property in active_visit) { if (`\${property}` == "utm_medium") { utm_medium_str = utm_medium_str + `\${active_visit[property]}`; } } utm_medium_str = utm_medium_str + ":"; for (const property in active_visit) { if (`\${property}` == "gclid") { utm_medium_str = utm_medium_str + "gclid:" + `\${active_visit[property]}`; } else if (`\${property}` == "msclkid") { utm_medium_str = utm_medium_str + "msclkid:" + `\${active_visit[property]}`; } else if (`\${property}` == "fbclid") { utm_medium_str = utm_medium_str + "fbclid:" + `\${active_visit[property]}`; } } if ( (utm_medium_str.indexOf("gclid") == -1) && (utm_medium_str.indexOf("msclkid") == -1) && (utm_medium_str.indexOf("fbclid") == -1)){ utm_medium_str = utm_medium_str + ":"; } utm_medium_str = utm_medium_str + ":" + visitor_id; for (const property in active_visit) { var ptyn = `\${active_visit[property]}`; if( (`\${property}` != "utm_medium") && (`\${property}` != "msclkid") && (`\${property}` != "fbclid") && (`\${property}` != "gclid") ){ calendlyurl = calendlyurl+`\${property}`+"="+`\${active_visit[property]}`+"&"; } } utm_medium_str = utm_medium_str + "&salesforce_uuid="+v_timezone; calendlyurl = calendlyurl + utm_medium_str; if(isthisForm){ calendlyurl = calendlyurl + formstr; } let page_url = window.location.pathname; var jsonData = {"unique_visitor_id": visitor_id.toString().replace(/"/g, ""), "device_name": "", "page_url": page_url, "visitor_city": v_city, "click_history":JSON.stringify(visit_history)}; \$.ajax({ type: "POST", url: "https://hooks.zapier.com/hooks/catch/9555768/ong6g6o/", data: jsonData, success: function (e) { if(e.status == "success"){ bake_cookie("v_history",""); bake_cookie("v_latest",""); } setTimeout(function(){ location.href = calendlyurl; \$('.loading-overlay').css('display', 'none'); }, 100); } }); } window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-54935903-1', { 'user_id': visitor_id }); \$(document).ready(function () { \$('.btn-sendinblue-subscribe').click(function(e) { e.preventDefault(); var name_regex = new RegExp("^[a-zA-Z ]+\$"); var email_regex = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+\$/; //var phone_regex = /^(\+\d{1,2}\s?)?1?\-?\.?\s?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}\$/gm; \$( "#sb-fname" ).keypress(function() { \$('.fname-sb-error').addClass('hide'); }); \$( "#sb-email" ).keypress(function() { \$('.email-sb-error').addClass('hide'); }); \$( "#sb-fname, #sb-email" ).focus(function() { \$('.fname-sb-error, .email-sb-error').addClass('hide'); }); if( (\$("#sb-fname").val().length == 0) && (\$("#sb-email").val().length == 0)){ \$('.fname-sb-error, .email-sb-error').removeClass('hide'); } else if (!name_regex.test(\$("#sb-fname").val()) || \$("#sb-fname").val().length == 0){ \$('.fname-sb-error').removeClass('hide'); }else if (!email_regex.test(\$("#sb-email").val()) || \$("#sb-email").val().length == 0){ \$('.email-sb-error').removeClass('hide'); }else{ \$("#form-sendinblue-popup").submit(); setTimeout(function(){ \$('.close-sb-popup').trigger('click'); \$('.subscription-popup').css('right','-400px'); }, 2000); } }); }); idleTimer = null; idleState = false; idleWait = 300000; (function (\$) { \$(document).ready(function () { \$('.nudge-blog').click(function(e) { e.preventDefault(); fbq('track', 'nudge_blog'); window.open(\$(this).attr('href')); }); \$('*').bind('mousemove keydown scroll', function () { clearTimeout(idleTimer); idleState = false; idleTimer = setTimeout(function () { bioEp.showPopup(); idleState = true; }, idleWait); }); \$("body").trigger("mousemove"); }); }) (jQuery) \$( document ).ready(function() { let utm_sendinblue = getAllUrlParams(); \$(".sb_utm_source").val((utm_sendinblue['utm_source'] == undefined) ? "" : decodeURIComponent(utm_sendinblue['utm_source'])); \$(".sb_utm_medium").val((utm_sendinblue['utm_medium'] == undefined) ? "" : decodeURIComponent(utm_sendinblue['utm_medium'])); \$(".sb_utm_campaign").val((utm_sendinblue['utm_campaign'] == undefined) ? "" : decodeURIComponent(utm_sendinblue['utm_campaign'])); \$(".sb_utm_term").val((utm_sendinblue['utm_term'] == undefined) ? "" : decodeURIComponent(utm_sendinblue['utm_term'])); \$(".sb_utm_content").val((utm_sendinblue['utm_content'] == undefined) ? "" : decodeURIComponent(utm_sendinblue['utm_content'])); \$(".sb_page_url").val(decodeURIComponent(window.location.pathname)); \$('a').each(function() { var reg_exp = new RegExp('/' + window.location.host + '/'); if (!reg_exp.test(this.href)) { // External Link Found \$(this).attr('rel','nofollow'); } }); }); var usertimezone; function geoip(json){ usertimezone = json.timezone; } \$(document).ready(function() { var ltz = (new Date()).toTimeString().match(new RegExp("[A-Z](?!.*[\(])","g")).join(''); \$('.webinar-slots-item').each(function(){ let localtime = UTLtoLocal(\$(this).find('.utc-date').val(), \$(this).find('.utc-date').data('timezone')); \$(this).find('.slot-radio-date').html(localtime +" "+ltz); \$(this).find('.utc-date').data('local',localtime); if(compareDates(localtime)){ //console.log("Registrations Closed for: "+ localtime); \$(this).hide(); } }); function UTLtoLocal(utcdate, timezone) { let pdtdate = new Date(utcdate); // pdtdate.setHours(pdtdate.getHours() - 1); let theDate = new Date(Date.parse(pdtdate + timezone)); let localDate = theDate.toLocaleDateString('en-US', { weekday: 'short', month: 'long', day: '2-digit', year: 'numeric', hour: '2-digit', minute: '2-digit' }); return localDate; } function compareDates(eventdate){ let currentdate = new Date(); let edate = new Date(eventdate); if(currentdate.getTime() >= edate.getTime()){ return true; } } int_phone = window.intlTelInput(document.querySelector("#wcalendly_pnumber"), { initialCountry: "auto", geoIpLookup: function(callback) { \$.get('https://get.geojs.io/v1/ip/geo.js', function() {}, "jsonp").always(function(resp) { var countryCode = (resp && resp.country_code) ? resp.country_code : "us"; callback(countryCode); }); }, hiddenInput: "full", utilsScript: "//cdnjs.cloudflare.com/ajax/libs/intl-tel-input/17.0.3/js/utils.js" }); \$('.btn-submit-wc-step1').click(function(e) { e.preventDefault(); let active_visit = read_cookie("v_latest"); var full_phone_number = int_phone.getNumber(intlTelInputUtils.numberFormat.E164); \$("input[name='phone_number[full]'").val(full_phone_number); \$('.wc_utm_source').val(active_visit['utm_source']); \$('.wc_utm_medium').val(active_visit['utm_medium']); \$('.wc_utm_campaign').val(active_visit['utm_campaign']); \$('.wc_utm_term').val(active_visit['utm_term']); \$('.wc_utm_content').val(active_visit['utm_content']); \$('.wc_fbclid').val(active_visit['gclid']); \$('.wc_gclid').val(active_visit['gclid']); \$('.wc_msclkid').val(active_visit['msclkid']); \$('.wc_timezone').val(usertimezone); \$('.wc_page_url').val(window.location.pathname); \$('.wc_user_id').val(visitor_id); \$('.wc_hostname').val(window.location.hostname); var name_regex = new RegExp("^[a-zA-Z ]+\$"); var email_regex = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+\$/; var phone_regex = /^(\+\d{1,2}\s?)?1?\-?\.?\s?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}\$/gm; \$( "#wcalendly-fname" ).keypress(function() { \$('.fname-error').addClass('hide'); }); \$( "#wcalendly-lname" ).keypress(function() { \$('.lname-error').addClass('hide'); }); \$( "#wcalendly_pnumber" ).keypress(function() { \$('.mobile-error').addClass('hide'); }); \$( "#wcalendly-email" ).keypress(function() { \$('.email-error').addClass('hide'); }); \$( "#wcalendly-fname, #wcalendly-lname, #wcalendly-email, #wcalendly_pnumber" ).focus(function() { \$('.fname-error, .lname-error, .email-error, .mobile-error').addClass('hide'); }); if( (\$("#wcalendly-fname").val().length == 0) && (\$("#wcalendly-lname").val().length == 0) && (\$("#wcalendly-email").val().length == 0) && (\$("#wcalendly_pnumber").val().length == 0)){ \$('.fname-error, .lname-error, .email-error, .mobile-error').removeClass('hide'); } else if (!name_regex.test(\$("#wcalendly-fname").val()) || \$("#wcalendly-fname").val().length == 0){ \$('.fname-error').removeClass('hide'); }else if (!name_regex.test(\$("#wcalendly-lname").val()) || \$("#wcalendly-lname").val().length == 0){ \$('.lname-error').removeClass('hide'); }else if (!email_regex.test(\$("#wcalendly-email").val()) || \$("#wcalendly-email").val().length == 0){ \$('.email-error').removeClass('hide'); }else if(!phone_regex.test(\$("#wcalendly_pnumber").val()) || \$("#wcalendly_pnumber").val().length == 0){ \$('.mobile-error').removeClass('hide'); }else{ \$('.wc_fname').val(\$("#wcalendly-fname").val()); \$('.wc_lname').val(\$("#wcalendly-lname").val()); \$('.wc_email').val(\$("#wcalendly-email").val()); \$('.wc_phone').val(full_phone_number); \$(".lead-form-details").hide(); \$(".lead-form-moredetails").show(); \$("#dlc-personal-details").submit(); } }); \$( "input[type=radio]" ).on( "click", function() { \$('.slots-error').addClass('hide'); \$('.wc_webinar_starttime').val(\$( this ).data('starttime')); \$('.wc_webinar_endtime').val(\$( this ).data('endtime')); \$(".slot-booked2").text(\$(this).data('local')); }); \$('.btn-bookthis-slot').click(function(e) { e.preventDefault(); let n = \$( "input:checked" ).length; if( n == 0){ \$('.slots-error').removeClass('hide'); }else{ \$('.wc_slot').val(\$( "input:checked" ).val()); \$('.slots-error').addClass('hide'); \$(".lead-form-slots").hide(); \$(".lead-form-details").show(); \$("#dlc-webinar-slots").submit(); } }); }); ```