PageSourceSearch

https://mohajerdanesh.com/wp-content/plugins/gravity-forms-timed-e…?ver=b490411a22f797493dcb8ed3877d03a0

js mohajerdanesh.com collected 2026-10-03 00:57:35 UTC 17,995 bytes, 369 lines download raw bytes

1jQuery(function($) {
2
3'use strict';
4
5var gfteClockActive = false;
6var	gftePageClockActive = [];
7	
8function gfteclock() {
9	if ($(".gfteStartTime input").length && $(".gfteStartTime input").val().length) {
10		$(".gftereadonly input").attr("readonly", true);
11        $(".gfteStartTime").show();
12        $(".gftetimertext").not(".gftehiddentimer").show();
13		$(".gftehidden").hide();
14		
15		if (!gfteClockActive) {
16			gfteClockActive = true;
17            
18			//Get variables from PHP
19            var gftebrowserTime = new Date();
20			var gftestartTime 	= $(".gfteStartTime input").val();
21			var gftetimerarray  = gftestartTime.split("%");
22			var gftebaseTime 	= new Date(gftetimerarray[0]);
23			var gfteinitialtime = gftetimerarray[0];
24			var gfteTimeLimiter	= gftetimerarray[1] === "none" ? "none" : parseInt(gftetimerarray[1]);
25			var gfteTimeSynch	= gftetimerarray[2] === "" ? "" : (parseInt(gftetimerarray[2]) * 1000);
26			var gfteTimeSyninit	= gftetimerarray[2] ? gftetimerarray[2] : '';
27			var gfteFormId		= gftetimerarray[3] ? gftetimerarray[3] : '';
28			var gfteBlockEdit	= gftetimerarray[4] ? gftetimerarray[4] : '';
29			var gfteAutoSubmit	= gftetimerarray[5] ? gftetimerarray[5] : '';
30			var gftePreciseTime	= gftetimerarray[6] ? gftetimerarray[6] : '';
31            var gfteStartPage	= gftetimerarray[7] ? gftetimerarray[7] : '';
32            var gfteCustomTime	= gftetimerarray[8] ? gftetimerarray[8] : '';
33            var gfteTimeOffset	= gftetimerarray[9] ? parseInt(gftetimerarray[9]) : Math.floor(gftebaseTime - gftebrowserTime);
34			var gfteLockedForm	= gftetimerarray[10] ? gftetimerarray[10] : 'false';
35            var gfteRedirect    = $("#gfteautoredirect").length ? $("#gfteautoredirect").html() : "";
36            var gfteClockendMsg = $("#gfteclockendmessage").length ? $("#gfteclockendmessage").html() : "Time Limit Reached";
37            
38			if (gftetimerarray.length < 10) {
39				$(".gfteStartTime input").attr("value", gftestartTime + '%' + gfteTimeOffset + '%' + gfteLockedForm + '%');
40			}
41			//GFTE LOCK FORM -for block edit or auto submit
42			var gtfeLockForm = function() {
43				gfteLockedForm	= 'true';
44				$(".gfteStartTime input").attr("value", gfteinitialtime + '%' + gfteTimeLimiter + '%' + gfteTimeSyninit + '%' + gfteFormId + '%' + gfteBlockEdit + '%' + gfteAutoSubmit + '%' + gftePreciseTime + '%' + gfteStartPage + '%' + gfteCustomTime + '%' + gfteTimeOffset + '%' + gfteLockedForm);
45			};
46			//Auto Submit Form
47			var gfteAutoSubmitter = function() {
48				if (gfteAutoSubmit) {
49					//$('#gform_' + gfteFormId + ' .gform_body').hide();
50                    $('.gform_page_fields, .gform_save_link, .gform_previous_button').hide();
51                    //$('#gform_' + gfteFormId).find(':input[value=Previous]').hide();
52					if(window['gf_submitting_' + gfteFormId]){
53						return false;
54					} 
55					window['gf_submitting_' + gfteFormId] = true;
56					$('#gform_' + gfteFormId).trigger('submit',[true]);//steps through remaining pages until submit
57					setTimeout(gfteAutoSubmitter, 100);
58				}
59			};
60            //Redirect page from Form
61			var gfteAutoRedirector = function() {
62				if (gfteRedirect) {
63                    $('#gform_' + gfteFormId + ' .gform_body').hide();
64					//window.location.href = gfteRedirect;
65					window.location.replace(gfteRedirect);
66					return true;
67				}
68			};
69			//Close down editing of form
70			var gtfereadonlyForm = function() {
71				if (gfteBlockEdit && !gfteAutoSubmit) {
72					$('#gform_' + gfteFormId).find(':input').not(':input[value=Submit], :input[value=Previous], :input[value=Next], :input[type=submit], .gfteNoBlock :input').attr({'readonly': 'readonly', 'style': 'pointer-events: none;', 'tabindex': '-1', 'focusable': 'false'});
73					$('#gform_' + gfteFormId + ' label').not('.gfteNoBlock label').attr({'readonly': 'readonly', 'style': 'pointer-events: none;'});
74                    $('#gform_' + gfteFormId).find('option:not(:selected)').not('.gfteNoBlock option').attr({'disabled': 'disabled'});
75					$(".gfteStartTime input").hide();
76				}
77			};
78			//Change field/element visibility
79			var gtfeChangeVisibility = function() {
80				$(".gfte-hide").hide().attr({'style': 'visibility: hidden; display: none !important;'});
81				$(".gfte-show").show().attr({'style': 'visibility: visible; display: block !important;'});	
82
83			};
84			//Custom time is up alert
85			var gfteTimesUpMessage = function() {
86				var gfte_message = $("#gftetimesupmessage").html();
87				if (gfteLockedForm === "false" && typeof(gfte_message) !== "undefined" && gfte_message !== null && gfte_message !== "" && gfteAutoSubmit === "" && gfteAutoSubmit === "" && $(".gfteStartTime input").length) {
88					alert($('#gftetimesupmessage').html());
89				}
90			};
91			//Variable Timed Events
92            var gftevarevents = function(gftevariruntime) {
93                var gftevaritimes = function(gftevaritimevalue) {
94                    var gftevartimefunction = gftevaritimevalue.split("::");
95                    if (Array.isArray(gftevartimefunction) && gftevartimefunction.length == 3 && !isNaN(parseFloat(gftevartimefunction[2])) && isFinite(gftevartimefunction[2])) {
96                        if (gftevariruntime >= gftevartimefunction[2]) {
97                            switch (gftevartimefunction[0]) {
98                               case "block":
99                                   $('#gform_' + gfteFormId + ' .' + gftevartimefunction[1]).find(':input, label').attr({'readonly': 'readonly', 'style': 'pointer-events: none;', 'tabindex': '-1', 'focusable': 'false'});
100                                   $('#gform_' + gfteFormId + ' .' + gftevartimefunction[1]).find('option:not(:selected)').attr({'disabled': 'disabled'});
101                                   break;   
102                               case "hide":
103                                   $('.' + gftevartimefunction[1]).hide().attr({'style': 'visibility: hidden; display: none !important;'});
104                                   break;
105                               case "show":
106                                   $('.' + gftevartimefunction[1]).show().attr({'style': 'visibility: visible; display: block !important;'});
107                                   break;   
108                               case "alert":
109                                    if (gftevariruntime == gftevartimefunction[2]) {
110                                        alert(gftevartimefunction[1]);
111                                        $("#gftetimedevents").html($("#gftetimedevents").html().replace(gftevaritimevalue, gftevaritimevalue + "::complete"));
112                                    }
113                                   break;
114                               default:
115                                    if (gftevariruntime == gftevartimefunction[2]) {
116                                        alert('"' + gftevartimefunction[1] + '" is not a valid option. You must use "block, hide, show, or alert". Check your Additional Timed Events entry for this time.');
117                                    $("#gftetimedevents").html($("#gftetimedevents").html().replace(gftevaritimevalue, gftevaritimevalue + "::complete"));
118                                    }
119                            }
120                        }
121                    }
122                };
123                if ($("#gftetimedevents").length && $("#gftetimedevents").html().length) {
124                    var gfteVariTime = $("#gftetimedevents").html().split(/\r?\n/);
125                    if (Array.isArray(gfteVariTime) && gfteVariTime.length) {
126                        gfteVariTime.forEach(gftevaritimes)
127                    }
128                }
129            };
130            //GFTE MAIN CLOCK            
131            var gfteclockwork = function() {
132				if ($(".gfteStartTime input").length) {
133					var gfteallseconds 	= Math.floor(((new Date() - gftebaseTime) + gfteTimeOff
133set) / 1000);                  
134					var gfteruntime		= gfteallseconds;
135					var gfte_runtime	= gfteTimeLimiter - gfteruntime;
136					var gfte_timesup	= function() {
137						$(".gfteCountdownTimer").html(gfteClockendMsg); //countdown
138						//$(".gfteCountupTimer").html(gfteClockendMsg); //countup
139					};
140					if (gfteallseconds > gfteTimeLimiter) {  //time limit reached
141						gfte_timesup();
142					}
143					var gftehours 		= Math.floor(gfteallseconds / 3600);
144					var gfte_hours 		= Math.floor(gfte_runtime / 3600);
145					gfteallseconds 		= gfteallseconds % 3600;
146					gfte_runtime 		= gfte_runtime % 3600;
147					var gfteminutes 	= Math.floor(gfteallseconds / 60);
148					var gfte_minutes 	= Math.floor(gfte_runtime / 60);
149					gfteallseconds 		= gfteallseconds % 60;
150					gfte_runtime 		= gfte_runtime % 60;
151					var gfteseconds 	= Math.floor(gfteallseconds);
152					var gfte_seconds 	= Math.floor(gfte_runtime);
153					if ($(".gfteseconds").length) {
154						$(".gfteseconds").html(gfteseconds);
155                        if (gfteminutes != 0) {
156                            $(".gfteminutes").html(gfteminutes);
157                            if ($(".gfteminutes").is(":hidden")) {
158                                $(".gfteminutes").show();
159                                $(".gfteminsseparator").show();
160                            }
161                        } else {
162                            if ($(".gfteminutes").is(":visible")) {
163                                $(".gfteminutes").hide();
164                                $(".gfteminsseparator").hide();
165                            }
166                        }
167                        if (gftehours != 0) {
168                            $(".gftehours").html(gftehours);
169                            if ($(".gftehours").is(":hidden")) {
170                                $(".gftehours").show();
171                                $(".gftehoursseparator").show();
172                            }
173                        } else {
174                            if ($(".gftehours").is(":visible")) {
175                                $(".gftehours").hide();
176                                $(".gftehoursseparator").hide();
177                            }
178                        }
179					}
180					if ($(".gfte-seconds").length) {
181						$(".gfte-seconds").html(gfte_seconds);
182						$(".gfte-minutes").html(gfte_minutes);
183						$(".gfte-hours").html(gfte_hours);
184                        if (!gfte_hours) {
185                            if ($(".gfte-hours").is(":visible")) {
186                                $(".gfte-hours").hide();
187                                $(".gfte-hoursseparator").hide();
188                            }
189                        }
190                        if (!gfte_minutes) {
191                            if ($(".gfte-minutes").is(":visible")) {
192                                $(".gfte-minutes").hide();
193                                $(".gfte-minsseparator").hide();
194                            }
195                        } else {
196                            if ($(".gfte-minutes").is(":hidden")) {
197                                $(".gfte-minutes").show();
198                                $(".gfte-minsseparator").show();
199                            }
200                        }
201					}                    
202					if ((gfteTimeLimiter !== "none" && gfteruntime >=  gfteTimeLimiter) || gfteLockedForm === "true") {
203						gtfereadonlyForm();
204						//gtfereadonlyFields();
205                        if (gfteAutoRedirector()) {
206							return;
207						}
208						gtfeChangeVisibility();
209						gfteAutoSubmitter();
210						gfteTimesUpMessage();
211						if (gfteLockedForm === "false") {
212							gtfeLockForm();
213						}
214					}
215                    //variable timed events trigger
216                    gftevarevents(gfteruntime);
217					
218				} else {
219					$(".gftetimertext").hide();
220				}
221			}
222            gfteclockwork();
223            setInterval(gfteclockwork, 1000);
224			//Get Server time via AJAX
225            var gfteservertimesynch = function() {
226                var gfteGetServerTime = new XMLHttpRequest();
227                gfteGetServerTime.open('HEAD', document.location, false);
228                gfteGetServerTime.send(null);
229                var gfteTimeReturn 	= new Date(gfteGetServerTime.getResponseHeader("DATE"));
230                var gftetimezoneOff = gfteTimeReturn.getTimezoneOffset();
231                gfteTimeReturn.setMinutes(gfteTimeReturn.getMinutes() + gftetimezoneOff);
232                var gftediffSecs 	= Math.floor(gfteTimeReturn - gftebaseTime) / 1000;
233                if ((gfteTimeLimiter !== "none" && gftediffSecs >=  gfteTimeLimiter) || gfteLockedForm === "true") {
234                    gtfereadonlyForm();
235                    //gtfereadonlyFields();
236					if (gfteAutoRedirector()) {
237                        return;
238                    }
239                    gtfeChangeVisibility();
240                    gfteAutoSubmitter();
241                    gfteTimesUpMessage();
242                    if (gfteLockedForm === "false") {
243                        gtfeLockForm();
244                    }
245					
246                }
247                //variable timed events trigger
248                gftevarevents(gftediffSecs);
249            }
250			if (gfteTimeSynch) {
251				setInterval(gfteservertimesynch, gfteTimeSynch);
252			}
253			//setTimeOut version
254		/*	if (gfteTimeSynch) {
255				var gfteTimeCompare = function(){
256					var gfteGetServerTime = new XMLHttpRequest();
257					gfteGetServerTime.open('HEAD', document.location, false);
258					gfteGetServerTime.send(null);
259					var gfteTimeReturn 	= gfteGetServerTime.getResponseHeader("DATE");
260					var gfteServerTime 	= new Date(gfteTimeReturn);
261					var gftetimediff 	= (gfteServerTime - gftebaseTime);
262					var gftediffSecs 	= Math.floor(gftetimediff / 1000);
263					$('#gfteoffsettime').html(gfteServerTime);
264					if (gftediffSecs >=  gfteTimeLimiter) {
265						$('#gform_submit_button_' + gfteFormId).click();
266					}
267					setTimeout(gfteTimeCompare, 10000);
268				};
269				gfteTimeCompare();
270			}*/
271		}
272	} else {
273       $(".gfteStartTime").hide();
274       $(".gftetimertext").hide();
275    }
276}
277
278//Page Clock Display
279function gftePageClock(current_page) {
280	if ($(".gfteStartTime input").length && $(".gfteStartTime input").val().length && $(".gftePageTime").length) {
281		
282		//var gftePageStart = Date.now();  //working non- ajax time calcs
283		$('.gftepageminutes, .gftepageminsseparator, .gftepagehours, .gftepagehoursseparator ').hide();
284				
285		if (!gftePageClockActive[current_page]) {
286            gftePageClockActive[current_page] = true;
287			var gfteUpdatePageClock = function() {
288
289                $(".gftePageTime.gftePageNumber_" + current_page).each(function() {
290                    var gftePageSecs        = 0;
291                    var gftePageTime 	  	= $(this).find('input').val();
292                    var gftePageTimeArray  	= gftePageTime.split("%");
293					var gftePageCounter		= gftePageTimeArray[3] ? +gftePageTimeArray[3] : 0;
294
295					//working non- ajax time calcs
296					//var gftePageCurrent		= Math.floor((Date.now() - gftePageStart) / 1000);
297					//gftePageSecs 			= Math.floor(+gftePageTimeArray[1]) + gftePageCurrent;
298					//alert (gftePageSecs);
299					//end working
300                    gftePageSecs 		= Math.floor(+gftePageTimeArray[1]) + gftePageCounter;
301                    var gftepagehours 	= Math.floor(gftePageSecs / 3600);
302                    gftePageSecs 		= gftePageSecs % 3600;
303                    var gftepageminutes = Math.floor(gftePageSecs / 60);
304                    gftePageSecs 		= gftePageSecs % 60;
305                    var gftepageseconds = Math.floor(gftePageSecs);
306                    
307                    //targeting display based on GF 2.5+ markup or legacy 
308                    var GFTEThis        = $(this).find('.gftepageseconds').length > 0 ? $(this) : $(this).siblings('.gftePageTimerText_' + current_page);
309                    GFTEThis.find('.gftepageseconds').html(gftepageseconds);
310                    if (gftepageminutes) {
311                        GFTEThis.find('.gftepageminutes').html(gftepageminutes);
312                        if (GFTEThis.find('.gftepageminutes').is(":hidden")) {
313                            GFTEThis.find('.gftepageminutes').show();
314                            GFTEThis.find('.gftepageminsseparator').show();
315                        }
316                    } else {
317                        if (GFTEThis.find('.gftepageminutes').is(":visible")) {
318                            GFTEThis.find('.gftepageminutes').hide();
319                            GFTEThis.find('.gftepageminsseparator').hide();
320                        }
321                    }
322                    if (gftepagehours) {
323                        GFTEThis.find('.gftepagehours').html(gftepagehours);
324                        if (GFTEThis.find('.gftepagehours').is(":hidden")) {
325                            GFTEThis.find('.gftepagehours').show();
326                            GFTEThis.find('.gftepagehoursseparator').show();
327                        }
328                    } else {
329                        if (GFTEThis.find('.gftepagehours').is(":visible")) {
330                            GFTEThis.find('.gftepagehours').hide();
331                            GFTEThis.find('.gftepagehoursseparator').hide();
332                        }
333                    }
334					
335					gftePageCounter = gftePageCounter + 1;
336					//var gftePageCurrent		= Math.floor((Date.now() - gftePageStart) / 1000); //working non- ajax time calcs
337					$(this).find('input').val(gftePageTimeArray[0] + '%' + gftePageTimeArray[1] + '%' + gftePageTimeArray[2] + '%' + gftePageCounter);
338                });
339            }
340		
341			gfteUpdatePageClock();
342			setInterval(gfteUpdatePageClock, 1000);
343		}
344	}
345}
346	
347$(document).ready(function() {
348    /*$(document).on('gform_post_render', function(event, form_id, current_page){ //needs a way to get current page without this function
349        gfteclock();
350    });*/
351	gfteclock(); 
352	var current_page = $(".gfte_current_page_print").html();  
353	gftePageClock(current_page);
354    $('.gftehidden').hide();
355});
356	
357$(document).on('gform_post_render', function(event, form_id, current_page) {
358    gfteclock();
359    gftePageClock(current_page);
360    $('.gftehidden').hide();
361});
362
363$(document).ajaxComplete(function() {
364	//gfteclock();
365    $('.gftehidden').hide();
366});
367
368
369});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.