/* FILE ARCHIVED ON 20:32:04 May 6, 2019 AND RETRIEVED FROM THE AN OPENWAYBACK INSTANCE ON 3:35:21 Aug 31, 2024. JAVASCRIPT APPENDED BY OPENWAYBACK, COPYRIGHT INTERNET ARCHIVE. ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C. SECTION 108(a)(3)). */ /********************************************** Blackbaud Design Custom JavaScript *********************************************** Client: UNT Author(s): Chris Martin Product(s): BBNC Created: YYYY-MM-DD *********************************************** CHANGE LOG *********************************************** **********************************************/ BBI = { UNT: { bbnc: { // generic functions and params that typically don't need editing generic: { // namespace for debug functions and values debug: { isEditView: !!window.location.href.match('pagedesign') // boolean that tells whether we're in page edit mode }, // all functions inside this wrapper function will fire on each full page load pageLoad: function(){ BBI.UNT.bbnc.generic.checkWindowInitialSize(); $(window).resize(BBI.UNT.bbnc.specific.windowResizeFunctions); $(window).scroll(BBI.UNT.bbnc.specific.scrollFunctions); }, // all functions inside this wrapper function will fire on each full AND partial page load paneRefresh: function(){ BBI.UNT.bbnc.generic.checkWindowInitialSize(); BBI.UNT.bbnc.generic.checkEditView(); BBI.UNT.bbnc.generic.addClassToEmptyTableCells(); BBI.UNT.bbnc.generic.responsiveDonationForm(); BBI.UNT.bbnc.generic.addClassToRequiredInputs(); BBI.UNT.bbnc.generic.responsiveUserLogin(); BBI.UNT.bbnc.generic.responsiveUserEmailPreferences(); BBI.UNT.bbnc.generic.responsiveEventRegistrationNew(); BBI.UNT.bbnc.generic.responsiveEventRegistrationClassic(); BBI.UNT.bbnc.generic.responsivePaymentPart(); BBI.UNT.bbnc.generic.addClassToTextareaLabel(); BBI.UNT.bbnc.generic.responsiveSurvey(); }, // Re-checks isEditView against template design view: checkEditView: function() { if (!BBI.UNT.bbnc.generic.debug.isEditView) { BBI.UNT.bbnc.generic.debug.isEditView = window.location.href.match('templatedesigner'); } }, // code that runs only the first time window size is calculated after a page load checkWindowInitialSize: function() { // calculate scroll bar width if any browser other than Safari... if (!((navigator.userAgent.indexOf('Safari') != -1) && (navigator.userAgent.indexOf('Chrome') == -1))) { BBI.UNT.bbnc.specific.params.scrollBarWidth = window.innerWidth - $("body").width(); } // if tablet size... if (($(window).width() < BBI.UNT.bbnc.specific.params.breakBelow1 - BBI.UNT.bbnc.specific.params.scrollBarWidth) && ($(window).width() >= BBI.UNT.bbnc.specific.params.breakBelow2 - BBI.UNT.bbnc.specific.params.scrollBarWidth)) { BBI.UNT.bbnc.specific.goTabletOnce(); BBI.UNT.bbnc.specific.goTabletAlways(); // else if phone size... } else if ($(window).width() < BBI.UNT.bbnc.specific.params.breakBelow2 - BBI.UNT.bbnc.specific.params.scrollBarWidth){ BBI.UNT.bbnc.specific.goPhoneOnce(); BBI.UNT.bbnc.specific.goPhoneAlways(); // otherwise, must be desktop size... } else { BBI.UNT.bbnc.specific.goDesktopOnce(); BBI.UNT.bbnc.specific.goDesktopAlways(); } BBI.UNT.bbnc.specific.params.oldWidth = $(window).width(); }, // code that fires each time the window is resized or device orientation rotated checkWindowSize: function() { // calculate scroll bar width if any browser other than Safari... if (!((navigator.userAgent.indexOf('Safari') != -1) && (navigator.userAgent.indexOf('Chrome') == -1))) { BBI.UNT.bbnc.specific.params.scrollBarWidth = window.innerWidth - $("body").width(); } // if moving into tablet size from either phone or desktop size... if (($(window).width() < BBI.UNT.bbnc.specific.params.breakBelow1 - BBI.UNT.bbnc.specific.params.scrollBarWidth) && ($(window).width() >= BBI.UNT.bbnc.specific.params.breakBelow2 - BBI.UNT.bbnc.specific.params.scrollBarWidth) && ((BBI.UNT.bbnc.specific.params.oldWidth >= BBI.UNT.bbnc.specific.params.breakBelow1 - BBI.UNT.bbnc.specific.params.scrollBarWidth) || (BBI.UNT.bbnc.specific.params.oldWidth < BBI.UNT.bbnc.specific.params.breakBelow2 - BBI.UNT.bbnc.specific.params.scrollBarWidth))) { BBI.UNT.bbnc.specific.goTabletOnce(); BBI.UNT.bbnc.specific.goTabletAlways(); } // if currently @ tablet size but resizing within tablet size... else if (($(window).width() < BBI.UNT.bbnc.specific.params.breakBelow1 - BBI.UNT.bbnc.specific.params.scrollBarWidth) && ($(window).width() >= BBI.UNT.bbnc.specific.params.breakBelow2 - BBI.UNT.bbnc.specific.params.scrollBarWidth)) { BBI.UNT.bbnc.specific.goTabletAlways(); } // if moving into phone size from anything greater than phone size... else if (($(window).width() < BBI.UNT.bbnc.specific.params.breakBelow2 - BBI.UNT.bbnc.specific.params.scrollBarWidth) && (BBI.UNT.bbnc.specific.params.oldWidth >= BBI.UNT.bbnc.specific.params.breakBelow2 - BBI.UNT.bbnc.specific.params.scrollBarWidth)){ BBI.UNT.bbnc.specific.goPhoneOnce(); BBI.UNT.bbnc.specific.goPhoneAlways(); } // if currently @ phone size but resizing within phone size... else if ($(window).width() < BBI.UNT.bbnc.specific.params.breakBelow2 - BBI.UNT.bbnc.specific.params.scrollBarWidth){ BBI.UNT.bbnc.specific.goPhoneAlways(); } // if moving to desktop size from anything smaller... else if (($(window).width() >= BBI.UNT.bbnc.specific.params.breakBelow1 - BBI.UNT.bbnc.specific.params.scrollBarWidth) && (BBI.UNT.bbnc.specific.params.oldWidth < BBI.UNT.bbnc.specific.params.breakBelow1 - BBI.UNT.bbnc.specific.params.scrollBarWidth)) { BBI.UNT.bbnc.specific.goDesktopOnce(); BBI.UNT.bbnc.specific.goDesktopAlways(); } // othersize must be moving from desktop to desktop size... else { BBI.UNT.bbnc.specific.goDesktopAlways(); } BBI.UNT.bbnc.specific.params.oldWidth = $(window).width(); }, // bind handler to top level mobile menu button
  • (typically that has a menu icon) // and toggle the class "expanded" on that
  • itself bindMobileMenuIconBehavior: function(element) { if ( element ) { element.eq(0).on('click', function() { element.toggleClass('expanded'); }); } }, // removes the 'expanded' class from the mobile menu icon
  • , typically for when going into desktop mode collapseMobileMenuIcon: function(element) { if ( element ) { element.eq(0).removeClass('expanded'); } }, // binds handler to click event of a collection of nav elements to toggle a class on their parent container (for mobile) bindMobileNavHandlers: function(collection) { if ( collection ) { collection.each(function() { $(this).on("click", { element: $(this) }, BBI.UNT.bbnc.generic.mobileNavTapHandler); }); } }, // handler for mobile menu taps to toggle class of parent container on tap of child element mobileNavTapHandler: function(event) { event.preventDefault(); var element = event.data.element; if(element.parent().hasClass('expanded')) { element.parent().removeClass('expanded'); } else { element.parent().addClass('expanded').siblings('.expanded').removeClass('expanded'); }; }, // function to unbind the above mobile expande/collapse handler unbindMobileNavHandlers: function(collection) { if ( collection ) { collection.each(function() { $(this).off("click", BBI.UNT.bbnc.generic.mobileNavTapHandler); }); } }, // adds a class 'required' to inputs that are required fields addClassToRequiredInputs: function () { // check if we're on a page with a form first... if (($('.BBFormTable').length) || ($('.PaymentPart_FormContainer').length) || ($('div[id$="ev2wiz"]').length) || ($('div[id$="formWizard"]').length)) { // iterate over all form inputs and drop-downs... $('input, select, textarea').each(function() { // for each one, test if it's a required field... if( (($(this).parent().next('td').hasClass('BBFormRequiredFieldMarker')) && ($(this).parent().next('td').css('visibility') != 'hidden')) || (($(this).closest('.BBFieldControlCell').next('td').hasClass('BBFormRequiredFieldMarker')) && ($(this).closest('.BBFieldControlCell').next('td').css('visibility') != 'hidden')) || ($(this).closest('.BBFieldControlCell').next('td').children("span:first").hasClass('BBFormRequiredFieldMarker')) || ($(this).next('span').hasClass('BBFormRequiredFieldMarker')) ) { $(this).addClass('required') if($(this).attr('id').indexOf('cboYear') >=0 ) { // do nothing...it's the year ddl in credit card month/year } else if ($(this).attr('id').indexOf('cboMonth') >= 0) { $(this).closest('table').parent().prev('td[id$="ExpiryLbl"]').children('label').eq(0).addClass('required'); } else if($(this).prev('label').length > 0) { $(this).prev('label').addClass('required'); } else if ($(this).prev('div').children('label').length > 0){ $(this).prev('div').children('label').eq(0).addClass('required'); } else { $(this).parent().prev('td').children('label').eq(0).addClass('required'); } } }); } }, // add class to label for textarea inputs on div-based forms addClassToTextareaLabel: function () { $('.BBDivFieldContainer textarea').prev('label').addClass('labelForTextarea'); }, // adds class to empty table cells addClassToEmptyTableCells: function() { if($('td').length) { $('td').each(function() { if($(this).children().length > 0) { if($(this).children(':visible').length == 0) { $(this).addClass('emptyTD'); } } else if ($.trim($(this).html()) == "") { $(this).addClass('emptyTD'); } }); $('td > span').each(function() { if($.trim($(this).html()) == "") { $(this).addClass('emptyTDSpan'); } }); }; }, // bind handler to change event of checkboxes to call separate function to apply/remove classes to/from its label when clicked responsiveCheckboxesChangeEvent: function() { $('input[type="checkbox"]').change(BBI.UNT.bbnc.generic.responsiveCheckboxesAddClass).next('label').addClass('checkboxLabel'); }, // dynamic classes added to or removed from checkbox labels for mobile treatment responsiveCheckboxesAddClass: function() { $('input[type="checkbox"]').each(function() { if($(this).attr('checked') == 'checked') { $(this).next('label').addClass('boxChecked'); } else { $(this).next('label').removeClass('boxChecked'); } }); }, // bind handler to change event of giving amount radio buttons to call separate function to apply/remove classes to/from labels when clicked/tapped responsiveGivingAmountsChangeEvent: function() { $('table[id$="tblAmount"] input[name$="givingLevels"]').change(BBI.UNT.bbnc.generic.responsiveGivingAmountsAddClass); }, // give class to the giving amount for the radio button that's currently selected responsiveGivingAmountsAddClass: function() { $('table[id$="tblAmount"] input[name$="givingLevels"]').each(function() { if($(this).attr('checked') == 'checked') { if($(this).val() == 'rdoOther') { $(this).siblings('label').eq(0).addClass('boxChecked'); } else { $(this).closest('td').next('td').children('.radioLabel').addClass('boxChecked'); }; } else { // not currently checked if($(this).val() == 'rdoOther') { $(this).siblings('label').eq(0).removeClass('boxChecked'); } else { $(this).closest('td').next('td').children('.radioLabel').removeClass('boxChecked'); }; }; }); }, // bind handler to change event of radio buttons (except giving amounts) to call separate function to apply/remove classes to from their labels when clicked/tapped responsiveRadioButtonChangeEvent: function() { if($('input[type="radio"]').length) { $('input[type="radio"]').filter(function() {return -1 === this.name.indexOf('givingLevels');}).change(BBI.UNT.bbnc.generic.responsiveRadioButtonAddClass).next('label').addClass('radioLabel'); }; }, // give class to radio button label if it's button has been clicked responsiveRadioButtonAddClass: function() { $('input[type="radio"]').filter(function() {return -1 === this.name.indexOf('givingLevels');}).each(function(){ if($(this).attr('checked') == 'checked') { $(this).next('label').addClass('boxChecked'); } else { $(this).next('label').removeClass('boxChecked'); }; }); }, // classes and behavior for responsive donation form responsiveDonationForm: function () { if($('.DonationFormTable').length) { //adding classes that help with targeted styling $('label[id$="lblTxtOnMonthlyQuarterly"]').parent().addClass('labelRecurrenceStartingOn'); $('input[id$="Recurrence_rdoDay"]').parent().parent().addClass('radioRecurrenceDay'); $('select[id$="Recurrence_ddlDayNumber2"]').parent().addClass('inputDayOfMonth'); $('tr[id$="tr_AdvancedRecurringOptions"] > td:nth-child(1)').addClass('emptyTDBelowOnLabel'); $('tr[id$="tr_AdvancedRecurringOptions"] > td:nth-child(2)').addClass('radioRecurrenceDayFrequency'); $('tr[id$="tr_AdvancedRecurringOptions"] > td:nth-child(3)').addClass('inputRecurrenceDayFrequency'); $('tr[id$="Recurrence_trAnnually"] > td').eq(0).addClass('annualRecurrenceTD'); //swap text in weekly and monthly drop-downs $('select[id$="Recurrence_ddlPosition"]').each(function() { $(this).children('option').eq(0).html('1st'); $(this).children('option').eq(1).html('2nd'); $(this).children('option').eq(2).html('3rd'); $(this).children('option').eq(3).html('4th'); }); $('select[id$="Recurrence_ddlDayOfWeek2"]').each(function() { $(this).children('option').eq(0).html('Sun'); $(this).children('option').eq(1).html('Mon'); $(this).children('option').eq(2).html('Tue'); $(this).children('option').eq(3).html('Wed'); $(this).children('option').eq(4).html('Thu'); $(this).children('option').eq(5).html('Fri'); $(this).children('option').eq(6).html('Sat'); }); $('label[for$="Recurrence_ddlDayNumber2"], label[for$="Recurrence_ddlDayOfWeek2"]').each(function() { if($(this).html().indexOf('of every month') >= 0) { $(this).html('monthly'); } else if ($(this).html().indexOf('of every three months') >= 0) { $(this).html('every 3rd mo.'); } }); //shorter text for corporate and anonymous donations $('input[id$="chkCorporate"] + label').html('Give on behalf of a company'); $('input[id$="chkAnonymous"] + label').html('Give anonymously'); //give giving amount span a class and make it clickable to set giving amount if($('input[name$="givingLevels"]').length) { $('input[name$="givingLevels"]').each(function(){ $(this).closest('td').addClass('givingAmountInputTD').next('td').children('span').eq(0).addClass('givingAmount radioLabel').click(function(){ // remove "checked" class from other amount text input wrapper row $(this).parent().parent().siblings('tr[id$="trOther"]').children('td').removeClass('checked'); // fire click event of the hidden input when the label is clicked $(this).parent().prev('td').find('label').eq(0).click(); if($('input[id$="txtAmount"]').length) { $('input[id$="txtAmount"]').val(''); } }); }); //and finally give the Other Amount label the same classes so that it's styled the same way in mobile mode $('input[name$="givingLevels"][id$="rdoOther"]').next('label').addClass('givingAmount radioLabel'); }; //add class to around the other amount box when the "other" input's label is clicked if($('input[id$="txtAmount"]').length) { $('input[id$="rdoOther"]').click(function() { $(this).parent().parent().next('td').addClass('checked'); }) }; //nice treatment for checkboxes and radio buttons from mobile devices BBI.UNT.bbnc.generic.responsiveCheckboxesAddClass(); BBI.UNT.bbnc.generic.responsiveCheckboxesChangeEvent(); BBI.UNT.bbnc.generic.responsiveGivingAmountsAddClass(); BBI.UNT.bbnc.generic.responsiveGivingAmountsChangeEvent(); BBI.UNT.bbnc.generic.responsiveRadioButtonAddClass(); BBI.UNT.bbnc.generic.responsiveRadioButtonChangeEvent(); //add clearfix class to span that contains company matching gift link if ($('input[id$="chkMGCompany"]').length) { $('input[id$="chkMGCompany"]').parent().addClass('clearfix'); } }; }, // User Email Preferences Part classes and responsive behavior responsiveUserEmailPreferences: function() { if($('.SubscriptionFormTable').length) { //nice treatment for checkboxes from mobile devices BBI.UNT.bbnc.generic.responsiveCheckboxesAddClass(); BBI.UNT.bbnc.generic.responsiveCheckboxesChangeEvent(); } }, // Event Registration 2.0 classes and behavior for responsive responsiveEventRegistrationNew: function() { if($('.BBEventRegSequenceMap').length) { //add clearfix class where needed $('div.Ev2_PriceTypesHeader, div.Ev2_PriceTypesRow, div.Ev2_SummaryTotal, div.Ev2_RegistrantFieldCell').addClass('clearfix'); //commented out because scripts can't currenlty be run on secure payment server... //parse out the pieces of the step nav so we can style them separately // $('ol.BBEventRegSequenceMap > li').each(function(index) { // var stepText = $(this).children().eq(0).html().split('Step ' + (index+1) + ' '); // $(this).html('' + (index+1) + '' + stepText[1] + '') // }); //handle showing/hiding of the price validation text $('input[id*="txtQty"]').blur(function() { var $targetSpan = $(this).parent().nextAll('.Ev2_PriceTypeValidatorColumn').children('span.Ev2_Step1QtyValidation'); setTimeout(function(){ if ($targetSpan.css('visibility') == 'visible') { $targetSpan.parent().addClass('validationActive'); } else { $targetSpan.parent().removeClass('validationActive'); } },500); }); }; }, // add classes and new content for responsive event reg classic responsiveEventRegistrationClassic: function() { if($('.EventTable .EventProgressCell').length) { //treatment of the step navigation $('.EventTable table[id$="tblProgress"] th').each(function(index) { var stepText = $(this).html(); var stepTextSplit = stepText.split('>'); $(this).html('' + (index+1) + '' + stepTextSplit[1] + ''); }); $('.EventTable table[id$="tblProgress"] th').last().addClass('last'); //adding class for attribute checklists $('div.LoginFormCheckListContainer').parent().prev('td').addClass('checklistLabelContainer'); $('td.EventItemRegistrantControlCellName').parent().parent().parent().addClass('eventAttributeContainer'); //adding class to previous/next button container table $('.EventTable input[id*="StepNavigationTemplateContainerID"]').eq(0).closest('table').addClass('prevNextContainerTable'); $('.EventTable input[id*="StartNavigationTemplateContainerID"]').eq(0).parent().addClass('nextContainerTR'); //nice treatment for checkboxes from mobile devices BBI.UNT.bbnc.generic.responsiveCheckboxesAddClass(); BBI.UNT.bbnc.generic.responsiveCheckboxesChangeEvent(); }; }, // Payment Part responsive behavior responsivePaymentPart: function() { if($('.PaymentPart_FormContainer').length) { //nice treatment for checkboxes from mobile devices BBI.UNT.bbnc.generic.responsiveCheckboxesAddClass(); BBI.UNT.bbnc.generic.responsiveCheckboxesChangeEvent(); } }, // User Login Part classes and responsive behavior responsiveUserLogin: function() { if($('.LoginFormTable').length) { //add classes to style 's with no classes $('.LoginFormTable .BBFieldControlCell').each(function() { $(this).prev('td').addClass('BBFieldCaption'); }); //add a class 'remember login' container $('label[for$="cbRememberLogin"]').parent().addClass('rememberLoginContainer'); //add class to table that holds validation container $('.LoginFormValidatorSummary').closest('table').addClass('userLoginValidationContainer'); }; if($('tr[id$="trSignInBody"]').length) { //adding class to outer part container $('tr[id$="trSignInBody"]').closest('table').addClass('userLoginPart'); //nice treatment for checkboxes from mobile devices BBI.UNT.bbnc.generic.responsiveCheckboxesAddClass(); BBI.UNT.bbnc.generic.responsiveCheckboxesChangeEvent(); }; }, // Survay Part classes and responsive behavior responsiveSurvey: function() { if ($('.SurveyQuestionTable').length > 0) { $('.SurveyQuestionTable td span.BBFormRequiredFieldMarker').parent().next('td').children('span').eq(0).addClass('required'); } }, // Force event calendar to show in list view when in mobile mode responsiveEventCalendar: function() { if( ($('.EventCalendarPartContainer').length) && ($('.CalendarViewCalendarContainer').length) ) { $('input[id$="ImageButtonViewList"]').click(); } else if ( $('.EventCalendarPartContainer').length ) { $('a.ListViewEventTitle').each(function(){ var href = $(this).attr('href'); $(this).after('View Details'); }); } } }, // end 'generic' namespace // site-specific functions and params specific: { params: { oldWidth: '978', breakBelow1: '769', breakBelow2: '481', //set to zero if you only need one break point for code execution scrollBarWidth: '0', //necessary for some browsers' treatment of scroll bars in media queries scrolledTo: '0', //will hold the current document scroll position previousScrolledTo: '0', //will hold the previous document scroll position }, // all functions inside this wrapper function will fire on each full page load pageLoad: function(){ BBI.UNT.bbnc.specific.mobileNavigation(); //expanded class for mobile site nav BBI.UNT.bbnc.specific.navigation(); //main site navigation dropdowns // BBI.UNT.bbnc.specific.scriptTest(); //main site navigation dropdowns alert("Script has ran"); }, // all functions inside this wrapper function will fire on each full AND partial page load paneRefresh: function(){ }, // stuff to do when the window resizes windowResizeFunctions: function() { BBI.UNT.bbnc.generic.checkWindowSize(); }, // stuff to do when scrolling has been detected scrollFunctions: function() { BBI.UNT.bbnc.specific.params.previousScrolledTo = BBI.UNT.bbnc.specific.params.scrolledTo; BBI.UNT.bbnc.specific.params.scrolledTo = $(window).scrollTop(); }, // add code that should only fire one time once the viewport reaches 'desktop' width goDesktopOnce: function() { $('body').addClass('desktopMode').removeClass('mobileMode tabletMode phoneMode'); // unbind the mobile menu event handlers so clicking top-level menus will BBI.UNT.bbnc.generic.unbindMobileNavHandlers(); // need to pass collection of
  • 's that can be tapped in mobile mode }, // add code that should fire anytime the viewport size changes and the new width is in the 'desktop' range goDesktopAlways: function() { }, // add code that should only fire one time once the viewport reaches 'tablet' width goTabletOnce: function() { $('body').addClass('mobileMode tabletMode').removeClass('desktopMode phoneMode'); }, // add code that should fire anytime the viewport size changes and the new width is in the 'tablet' range goTabletAlways: function() { }, // add code that should only fire one time once the viewport reaches 'phone' width goPhoneOnce: function() { $('body').addClass('mobileMode phoneMode').removeClass('desktopMode tabletMode'); BBI.UNT.bbnc.generic.bindMobileNavHandlers(); // set param to collection of
  • 's that will be tapped BBI.UNT.bbnc.generic.responsiveEventCalendar(); // show event cal in mobile mode }, // add code that should fire anytime the viewport size changes and the new width is in the 'phone' range goPhoneAlways: function() { }, mobileNavigation: function() { var divB = $('.mobileMenuButton'); divB.click(function() { if ( $(this).hasClass('active') ) { $(this).removeClass('active'); $(this).parent().removeClass('active'); // $('#mobilePrimaryNav').css('height','40px'); $('ul.mobileNav').css('display','none'); // $('#navigationWrapper').css('height','95px'); } else { $(this).addClass('active'); $(this).parent().addClass('active'); // $('#mobilePrimaryNav').css('height','auto'); $('ul.mobileNav').css('display','block'); // $('#navigationWrapper').css('height','320px'); } }); }, scriptTest: function() { alert("Script has ran"); } } //end 'specific' namespace } // end 'bbnc' namespace } // end 'UNT' namespace }; // end 'BBI' namespace /* =================================================== Run Global Functions --------------------------------------------------- Default load methods to be used inside BBNC: * Sys.WebForms Event raised after all content on the page is refreshed or loaded after postback. Can be add_pageLoaded () or remove_pageLoaded(); Alternative load methods to be used outside BBNC: * $(window).load(); Triggered after the window is loaded * $(document).ready(); Triggered after all assets completely received. --------------------------------------------------- */ // Functions to run each time the page loads $(document).ready( function(){ BBI.UNT.bbnc.generic.pageLoad(); BBI.UNT.bbnc.specific.pageLoad(); }); // Functions to run each time the pane is refreshed try { Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(function() { BBI.UNT.bbnc.generic.paneRefresh(); BBI.UNT.bbnc.specific.paneRefresh(); }); } catch(err) { console.log('Sys is probably undefined'); $(document).ready( function(){ BBI.UNT.bbnc.generic.paneRefresh(); BBI.UNT.bbnc.specific.paneRefresh(); }); } /* =================================================== CLIENT PLUGINS --------------------------------------------------- Plugin Name: Description: URI: --------------------------------------------------- */ /* =================================================== PLUGINS --------------------------------------------------- Additional plugins can be found on DropBox, under: Design Team > Javascript > Plugins --------------------------------------------------- */