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.