PageSourceSearch

https://speechpathologyaustralia.org.au/iparts/Common/FormBuilder/FormsDisplay.js

js speechpathologyaustralia.org.au collected 2026-10-02 04:56:35 UTC 15,892 bytes, 506 lines download raw bytes

1// not currently implemented; referenced in code-behind in RegisterWebhookCall
2function callWebHook(URL, ID, Ordinal, formName, redirectUrl, target) {
3    showLoader();
4    try {
5        jQuery.ajax({
6            url: URL,
7            success: async function (data, textStatus, jqXHR) {
8                try {
9                    var response = jQuery(jqXHR.responseText);
10                    var resFind = response.find("#formswebhook");
11                    eval(resFind.html());
12                    showLoader();
13                    var result = await formswebhook(ID, Ordinal, formName);
14
15
16                    if (result.result) {
17
18                        //success
19                        if (redirectUrl != "") {
20                            if (target == "_blank")
21                                window.open(redirectUrl, '_blank');
22                            else
23                                window.location.replace(redirectUrl);
24                        }
25                        else
26                            showMessage('Success', result.message);
27                    }
28                    else {
29                        //fail
30                        //show error message
31                        //stay on page
32                        showMessage('Error', result.message);
33                    }
34                } catch(err) {
35                    showMessage("Error", "Post processing failed " + err.message);
36                }
37            },
38
39            error: function (jqXhr, textStatus, errorMessage) { // error callback 
40                showMessage('Error', errorMessage);
41            }
42        });
43    } catch(ex){
44        showMessage("Error", "Post processing failed: " + ex.Message);
45    }
46}
47
48var imisVersion;
49jQuery(document).ready(function () {
50    imisVersion = jQuery("[id*='imisVersion'")[0].value ?? "V10"; // look for iMIS Version; default to v10
51
52    // remove class RadInput_Default where it occurs; it is messing up the display
53    var els = document.querySelectorAll('.RadInput_Default');
54    els.forEach(el => el.classList.remove('RadInput_Default'));
55})
56
57// Set on button in code-behind when button is added
58function formsSetTarget(target, btnClicked) {
59    try {
60        if (typeof window.ASIRulesEngineObject.runListeners === "function") {
61            window.ASIRulesEngineObject.runListeners();
62        }
63        else {
64        }
65    } catch(ex) {
66    }
67
68    if (target == "_self")
69        showLoader(btnClicked);
70    else if (target == "_blank")
71        document.forms[0].target = target;
72}
73
74// Only called from callWebHook, which is not used right now
75function showMessage(messageType, messageText) {
76    if (messageText != "")
77        jQuery("span.FormsMessage").text(messageText);
78
79    // gWebRoot is the Tenant.Current.WebsiteBaseUri without a trailing slash
80    var successIconPath = window.gWebRoot.concat("/Assets/images/AsiSuccess.png");
81    var errorIconPath = window.gWebRoot.concat("/Assets/images/AsiError.png");
82
83        switch (messageType) {
84        case "Success":
85            jQuery(".FormsMessageHidden").addClass("AsiSuccess");
86            jQuery("img.FormsMessageIcon").prop("src", successIconPath);
87            break;
88        case "Error":
89            jQuery(".FormsMessageHidden").addClass("AsiError");
90            jQuery("img.FormsMessageIcon").prop("src", errorIconPath);
91            break;
92    }
93    jQuery(".FormsMessageHidden").removeClass("FormsMessageHidden");
94    hideLoader();
95}
96
97function showLoaderPopup(btnClicked, popupContainer) {
98    if (typeof Page_ClientValidate !== "function" || typeof btnClicked === "undefined" || popupContainer === "undefined") {
99        return true;
100    }
101
102    var clickContents = jQuery(btnClicked).attr("onclick");
103    if (clickContents) {
104        for (var i = 0; i < Page_Validators.length; i++) {
105            var validator = Page_Validators[i];
106            var $control = jQuery('#' + validator.controltovalidate);
107
108            // Skip if control doesn't exist
109            if ($control.length === 0) continue;
110
111            // Skip if control explicitly marked as not required
112            if ($control.data("required") === false || $control.attr("data-required") === "false") {
113                ValidatorEnable(validator, false);
114                continue;
115            }
116         
117            // Only consider controls inside RadWindow container
118            var radWindowWrapper = "RadWindow_" + popupContainer;
119            if ($control.closest("div[id$='" + radWindowWrapper + "']").length > 0) {
120                var visible = $control.is(':visible');
121                ValidatorEnable(validator, visible);
122            } else {
123                ValidatorEnable(validator, false);
124            }
125        }
126    }
127
128    var radWindowValidation = "RadWindowValidation_" + popupContainer;
129    var isValid = Page_ClientValidate("" + radWindowValidation + "");
130    if (isValid) {
131        jQuery(".loader-wrapper").fadeIn("fast");
132    }
133
134    return isValid;
135}
136
137// Called from formsSetTarget
138function showLoader(btnClicked) {
139    var isValid = true;
140    if (typeof Page_ClientValidate === "function") {
141        if (typeof (btnClicked) != "undefined") {
142            var clickContents = jQuery(btnClicked).attr("onclick");
143            if (clickContents.indexOf("FB_ValidationGroup") > 0) {
144                isValid = Page_ClientValidate('FB_ValidationGroup');
145            }
146        }
147
148    }
149
150    if (isValid)
151        jQuery(".loader-wrapper").fadeIn("fast");
152    else
153        return false;
154}
155
156// Called from showMessage and from code-behind
157function hideLoader() {
158    jQuery(".loader-wrapper").fadeOut("slow");
159}
160
161
162// Not called explicitly; is defined on Telerik RadDateTimePicker in code-behind
163function dateTimeOnError(sender, args) {
164    var date = sender;
165    date.clear();
166    //args.set_cancel(true)
167}
168
169// set on combobox in code-behind
170function OnClientLoadCombo(sender, args) {
171    disableAutoFill(sender);
172}
173
174function disableAutoFill(control) {
175    function focusHandler(ev) {
176        this.originalName = this.name;
177        this.name = new Date().toString();
178    }
179    function blurHandler(ev) {
180        this.name = this.originalName;
181    }
182
183    if (Telerik.Web.UI.RadComboBox && control instanceof Telerik.Web.UI.RadComboBox) {
184        jQuery(control.get_inputDomElement()).on({
185            focus: focusHandler,
186            blur: blurHandler
187        });
188    } else if (Telerik.Web.UI.RadTextBox && control instanceof Telerik.Web.UI.RadTextBox) {
189        jQuery(control.get_element()).on({
190            focus: focusHandler,
191            blur: blurHandler
192        });
193    }
194}
195
196// set on combobox in code-behind
197function OnClientBlurHandlerComboBox(sender, eventArgs) {
198    var textInTheCombo = sender.get_text();
199    var item = sender.findItemByText(textInTheCombo);
200    //if there is no item with that text
201    if (!item) {
202        sender.set_text("");
203        setTimeout(function () {
204            var inputElement = sender.get_inputDomElement();
205            inputElement.focus();
206        }, 20);
207    }
208}
209
210function ClientValidationDate(sender, args) {
211    var controlID = sender.id.substring(0, sender.id.length - 4) + "_wrapper";
212    var valID = sender.id;
213
214    if (jQuery("#" + controlID + " .RadInputError").is(":visible")) {
215        args.IsValid = false;
216    }
217    else {
218        args.IsValid = true;
219    }
220}
221
222function dateFieldOnBlur(sender, args) {
223    var wrapperID = sender.get_wrapperElement().id.substring(0, sender.get_wrapperElement().id.length - 18);
224    var valID = wrapperID + "_val";
225    var val = document.getElementById(valID);
226
227    if (jQuery("#" + wrapperID + "_dateInput").val() == "") {
228        ValidatorEnable(val, false);
229    }
230    else {
231        ValidatorEnable(val, true);
232        ValidatorValidate(val);
233
234    }
235}
236function dateFieldOnDateSelected(sender, args) {
237    var wrapperID = sender.get_element().id;
238    var valID = wrapperID + "_val";
239    var val = document.getElementById(valID);
240    ValidatorEnable(val, false);
241}
242
243function dateFieldOnError(sender, args) {
244    var valID = sender.get_wrapperElement().id.substring(0, sender.get_wrapperElement().id.length - 18) + "_val";
245    var val = document.getElementById(valID);
246    ValidatorValidate(val);
247}
248
249
250function OnClientValidationFailed(sender, args) {
251    var fileExtention = args.get_fileName().substring(args.get_fileName().lastIndexOf('.') + 1, args.get_fileName().length);
252    if (args.get_fileName().lastIndexOf('.') != -1) {//this checks if the extension is correct
253        if (sender.get_allowedFileExtensions().indexOf(fileExtention) == -1) {
254            alert("Invalid file extension.");
255        }
256        else {
257            alert("File size exceeds limit.");
258        }
259    }
260    else {
261        alert("Invalid file extension.");
262    }
263}
264
265// no longer used; will remove in next pass
266function FireRequiredValidator(element) {
267    var notRequired = element.querySelector('[id$=_Required]') == null;
268    if (notRequired)
269        return false;
270
271    var dbFilename = "";
272    var selFileName = "";
273
274    var fileInDatabase = element.querySelector('[id$=lbtnDownloadDocument');
275    if (fileInDatabase)
276        dbFilename = fileInDatabase.innerText;
277    var fileSelected = element.querySelector('.ruUploadProgress');
278    if (fileSelected)
279        selFileName = fileSelected.innerText;
280    if (!dbFilename && !selFileName)
281        return true;
282
283    return false;
284}
285
286function ClientValidateFileUpload(source, args) {
287    var sourceID = source.id.slice(0, -9); // "_Required" is 9 characters
288    var linkbuttonID = sourceID + "_lbtnDownloadDocument";
289
290    if (jQuery("#" + linkbuttonID).text() != "") {
291        args.IsValid = true;
292    }
293    else {
294        args.IsValid = false;
295
296        linkbuttonID = sourceID + "_AsyncUpload1row0 .ruRemove";
297        if (jQuery("#" + linkbuttonID).text() == "Remove") {
298            args.IsValid = true;
299        }
300
301        linkbuttonID = sourceID + "_AsyncUpload1row2.ruUploadSuccess";
302        if (jQuery("#" + linkbuttonID).length > 0) {
303            args.IsValid = true;
304        }
305    }
306    return;
307}
308
309function ClientValidateFileUploadUploading(source, args) {
310
311    // "_uploading" is 10 characters
312    var uploadID = "#" + source.id.substring(0, source.id.length - 10) + "_AsyncUpload1";
313
314    if (jQuery(uploadID + " .ruProgressStarted").is(":visible")) {
315        args.IsValid = false;
316        return;
317    }
318
319}
320
321function ValidateCheckBoxList(sender, args) {
322    try {
323        args.IsValid = false;
324
325        var n = sender.id.replace("FB_Required_", "");
326
327
328        if (jQuery("#" + n).is(':checked')) {
329            args.IsValid = true;
330            return;
331        }
332
333    } catch (Err) {
334        return;
335    }
336}
337
338function ValidateRequiredCheckBoxList(source, args) {
339    var validator = document.getElementById('' + source.id + '');
340    var chkListModules = validator.previousSibling;
341    var chkListInputs = chkListModules.getElementsByTagName("input");
342    for (var i = 0; i < chkListInputs.length; i++) {
343        if (chkListInputs[i].checked) {
344            args.IsValid = true;
345            return;
346        }
347    }
348
349    var prev = source.previousSibling;
350    if (prev && prev.getAttribute && prev.getAttribute("data-required") === "true") {
351        args.IsValid = document.getElementById(prev.id)?.checked === true;
352        if (args.IsValid) {
353            return;
354        }
355    }
356
357    if (chkListInputs.length > 0) {
358        chkListInputs[0].focus();
359    }
360
361    args.IsValid = false;
362}
363
364function ValidateRequiredComboBox(source, args) {
365    var validator = document.getElementById('' + source.id + '');
366    var radComboBox = validator.previousSibling;
367    var selectedText = radComboBox.control.get_text();
368
369    if (selectedText == null || selectedText == '' || selectedText == "(None)") {
370        args.IsValid = false;
371        return;
372    }
373
374    args.IsValid = true;
375
376    
377}
378
379// Added as callback by code-behind
380function textCounterDown(field, countfield, maxlimit, pEvent) {
381
382    var iLine = field.value.split(/\n/).length;
383    var vCharacters = field.value.replace(/\n/g, '').replace('\r', '').length;
384
385    if (pEvent.keyCode.toString() == "13") {
386        iLine = iLine + 1;
387    }
388    else {
389        vCharacters++;
390    }
391
392    if (iLine > 1) {
393        vCharacters = vCharacters + ((iLine - 1) * 2);
394    }
395
396    if (vCharacters > maxlimit) {
397        field.value = field.value.substring(0, maxlimit);
398
399        if (!checkSpecialKeys(pEvent)) {
400            CancelEvent(pEvent)
401            return false;
402        }
403    }
404    else {
405        if (!((typeof countfield === "string") && (typeof countfield.toString() == 'X'))) {
406            countfield.innerHTML = (maxlimit - vCharacters) + ' characters left';
407            var test = countfield.innerHTML;
408        }
409    }
410}
411
412// Added as callback by code-behind
413function textCounter(field, countfield, maxlimit, pEvent) {
414
415    var iLine = field.value.split("\n").length;
416    var vCharacters = field.value.replace(/\n/g, '').replace('\r', '').length;
417
418    if (iLine > 1) {
419        vCharacters = vCharacters + ((iLine - 1) * 2);
420    }
421
422    if (vCharacters > maxlimit) {
423        if (iLine > 1) {
424            maxlimit = maxlimit - (iLine - 1);
425        }
426        field.value = field.value.substring(0, maxlimit);
427        return false;
428    }
429    else {
430        if (!((typeof countfield === "string") && (typeof countfield.toString() == 'X'))) {
431            countfield.innerHTML = (maxlimit - vCharacters) + ' characters left';
432            var test = countfield.innerHTML;
433        }
434    }
435}
436
437// Not called (commented out in code-behind)
438function checkTextAreaMaxLength(textBox, e, length) {
439
440    var iLine = jQuery(textBox).val().split("\n").length;
441    var vCharacters = jQuery(textBox).val().replace('\n', '').replace('\r', '').length;
442
443    if (iLine > 1) {
444        vCharacters = vCharacters + ((iLine - 1) * 2);
445    }
446
447    var mLen = textBox["MaxLength"];
448    if (null == mLen)
449        mLen = length;
450
451    var maxLength = parseInt(mLen);
452
453    if (!checkSpecialKeys(e)) {
454
455        if (vCharacters > maxLength) {
456
457            CancelEvent(e);
458            return false;
459        }
460    }
461}
462
463function CancelEvent(e) {
464    if (window.event)//IE
465    {
466        e.returnValue = false;
467    }
468    else//Firefox
469        e.preventDefault();
470}
471
472// Called only by textCounterDown and checkTextAreaMaxLength; see former
473function checkSpecialKeys(e) {
474    if (e.keyCode != 8 && e.keyCode != 9 && e.keyCode != 46 && e.keyCode != 35 && e.keyCode != 36 && e.keyCode != 37 && e.keyCode != 38 && e.keyCode != 39 && e.keyCode != 40)
475        return false;
476    else
477        return true;
478}
479
480function onMultiLineLoad(sender, args) {
481    var wrapper = sender.get_wrapperElement();
482    wrapper.classList.remove('RadInput');
483    wrapper.classList.remove('RadInput_Default');
484}
485
486// Called in CreateRadWindow in code-behind
487function OnClientShowWindow(sender, args, width, height) {
488    var browserWidth = jQuery(window).width();
489    var browserHeight = jQuery(window).height();
490    sender.setSize(Math.ceil(browserWidth * width / 100), Math.ceil(browserHeight * height / 100));
491    sender.center();
492}
493
494function fnClickOK(sender, e) {
495    __doPostBack(sender, e);
496}
497
498function ClientValidateRadEditorContentLength(sender, args) {
499    var maxLength = sender.getAttribute("data-maxlength");
500    if (maxLength != null) {
501        if (args.Value != null && args.Value.length > maxLength)
502            args.IsValid = false;
503        else
504            args.IsValid = true;
505    }
506}

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.