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