if (!window.bt) window.bt = {}; window.bt.tool = "scholarships"; window.bt.render = function(postrender,data,id=''){ id = (id=='')?'btContainer':id; document.getElementById(id).innerHTML = data.html; if (postrender) postrender(); }; window.bt.load = function(args={}){ var url = window.location.href; if (url.indexOf('?') > -1) url = url.substr(0,url.indexOf('?')); if (!args) args = {}; const urlParams = new URLSearchParams(window.location.search); if (urlParams.get('t') && !args.hasOwnProperty('t')) args.t = urlParams.get('t'); if (urlParams.get('s') && !args.hasOwnProperty('s')) args.s = urlParams.get('s'); var query = Object.keys(args) .map(function(k) {return encodeURIComponent(k) + '=' + encodeURIComponent(args[k]);}) .join('&'); window.location.href = url+'?'+query; }; window.bt.action = function(e,action,args){ if (e) e.preventDefault(); if (!args) args = {}; args.a = action; const urlParams = new URLSearchParams(window.location.search); if (urlParams.get('t') && !args.hasOwnProperty('t')) args.t = urlParams.get('t'); if (urlParams.get('s') && !args.hasOwnProperty('s')) args.s = urlParams.get('s'); window.bt.lastAction = action; window.bt.load(args); return false; }; window.bt.actionOnElem = function(e,action,elem,args){ if (e) e.preventDefault(); if (!args) args = {}; args.a = action; args.el = elem; window.bt.lastAction = action; var query = Object.keys(args) .map(function(k) {return encodeURIComponent(k) + '=' + encodeURIComponent(args[k]);}) .join('&'); var s = document.createElement("script"); s.type = "text/javascript"; s.src = "https://boom-production.azurewebsites.net/tools/"+window.bt.tool+"/?"+query; document.head.appendChild(s); return false; } window.bt.initNavigation = function(){ window.bt.prevHash = window.location.hash; if ('onhashchange' in window) { window.onhashchange = function () { if (window.bt.onNavigate) window.bt.onNavigate( window.bt.prevHash ); window.bt.prevHash = window.location.hash; } } else { window.setInterval(function () { if (window.location.hash != window.bt.prevHash) { if (window.bt.onNavigate) window.bt.onNavigate( window.bt.prevHash ); window.bt.prevHash = window.location.hash; } }, 100); } }; window.bt.navigate = function( hash ){ if(history.pushState) { history.pushState(null, null, '#'+hash); } else { location.hash = '#'+hash; } }; window.bt.setCookie = function( name, jsonData, exp=60 ) { var d = new Date(); d.setTime(d.getTime() + (exp*24*60*60*1000)); var expires = "expires="+ d.toUTCString(); if (jsonData!='') jsonData = JSON.stringify(jsonData); document.cookie = name + "=" + jsonData + ";" + expires + ";path=/"; }; window.bt.getCookie = function(name, defaultCookie={}) { name = name + "="; var decodedCookie = decodeURIComponent(document.cookie); var ca = decodedCookie.split(';'); for(var i = 0; i =0) filterCats.splice(filterCats.indexOf(id),1); } data.filterCats = filterCats; window.bt.setCookie(window.bt.dataCookieName,data); }; window.bt.checkPresetFilters = function(){ // Get set filters var filters = []; var cbs = document.getElementsByClassName('bt-filter-checkbox'); for (var i=0; i 0) { var data = window.bt.getCookie(window.bt.dataCookieName); data.filters = filters; window.bt.setCookie(window.bt.dataCookieName,data); } }; window.bt.checkExtraFilters = function(){ // Get filters var data = window.bt.getCookie(window.bt.dataCookieName); var filters = data.filters?data.filters:[]; var cbs = document.getElementsByClassName('bt-filter-checkbox'); for (var i=0; i=0) filters.splice(filters.indexOf(id),1); } data.filters = filters; window.bt.setCookie(window.bt.dataCookieName,data); window.bt.applyFilters(); } }; window.bt.applyFilters = function(){ // Get results var results = document.getElementsByClassName('bt-result'); if (results.length==0) return; // Get filters var data = window.bt.getCookie(window.bt.dataCookieName); var filtersAll = data.filters?data.filters:[]; // Filter map // OR within group, AND between groups var filterMap = [ { btOpen: 'open', btOpenSoon: 'opens-soon', btClosed: 'closed' }, { btAchievement: 'scholarship-achievement', }, { btEquityMaori: 'maori', btEquityPasifika: 'pasifika' }, { btEquityWoman: 'female' }, { btEquityHardship: 'scholarship-hardship' }, { btEquityDisability: 'disability' }, { btResident: 'audience-nz-citizen', btInternational: 'international' }, { btLocation: 'scholarship-location' }, { btParttime: 'part-time', btFulltime: 'full-time' }, { btUndergraduate: 'undergraduate', btPostgraduate: 'postgraduate' }, { btMaster: 'master', btDoctorate: 'doctorate' }, { btResearch: 'research' }, { btCurrentStudent: 'student-current' }, { btDistance: 'campus-distance' }, { btFirstYearStudent: 'study-year-1' }, { btMassey: 'scholarship-massey', btAdvertiseOnly: 'scholarship-advertise-only' } ]; // Step each result var resultCount = results.length; var visibleCount = resultCount; for (var i=0; i=0) anyGroupFilterSet = true; } } if (affectedByFilters && !anyGroupFilterSet) showResult = false; } if (!showResult){ results[i].style.display = 'none'; visibleCount--; } } // Show or hide 'no results' document.getElementById('btResult-none').style.display = (visibleCount>0)?'none':'block'; } window.bt.changeOrder = function( e ){ // Determine selected order var target = (e.currentTarget)?e.currentTarget:e.srcElement; s = target.value; // Save cookie value var data = window.bt.getCookie(window.bt.dataCookieName); if (data.order!=s){ data.order = s; window.bt.setCookie(window.bt.dataCookieName,data); } window.bt.applyOrder(); } window.bt.applyOrder = function(){ // Determine selected order var data = window.bt.getCookie(window.bt.dataCookieName); var s = data.order?data.order:'name'; // Change the select box document.getElementById('btOrder').value=s; // Grab results var p = document.getElementById('btResults'); var r = p.childNodes; var ra = []; for (var i in r) if (r[i].nodeType == 1) ra.push(r[i]); // Ignore text nodes // Order results if (s=='amount'){ ra.sort(function(a,b){ var av = parseInt(a.getAttribute('data-'+s)); var bv = parseInt(b.getAttribute('data-'+s)); if (av == bv) return 0; return (av > bv)?-1:1; }); } else{ ra.sort(function(a,b){ var av = a.getAttribute('data-'+s); var bv = b.getAttribute('data-'+s); if (av == bv) return 0; return (av > bv)?1:-1; }); } // Order DOM for (i = 0; i < ra.length; ++i) p.appendChild(ra[i]); }; window.bt.view = function (e,id){ window.bt.action(event,'view',{id:id}); } window.bt.hasClass = function( elem, name ){ var arr = elem.className.split(' '); if (arr.indexOf(name) > -1) return true; return false; }; window.bt.addClass = function( elem, name ){ var arr = elem.className.split(' '); if (arr.indexOf(name) == -1) elem.className += ' '+name; }; window.bt.removeClass = function( elem, name ){ var arr = elem.className.split(' '); if (arr.indexOf(name) > -1){ arr.splice( arr.indexOf(name), 1 ); elem.className = arr.join(' '); } }; window.bt.shortlist = function(e,id){ var target = (e.currentTarget)?e.currentTarget:e.srcElement; var data = window.bt.getCookie(window.bt.dataCookieName); var sl = data.saved?data.saved:[]; if (window.bt.hasClass(target, 'bt-saved')){ window.bt.removeClass( target, 'bt-saved' ); if (sl.indexOf(id)>=0) sl.splice(sl.indexOf(id),1); } else{ window.bt.addClass( target, 'bt-saved' ); if (sl.indexOf(id)<0) sl.push(id); } data.saved = sl; window.bt.setCookie(window.bt.dataCookieName,data); window.bt.applyShortlist(); }; window.bt.shortlistRemove = function(e,id){ if (e) e.preventDefault(); var elem = document.getElementById('btSave-'+id); if (elem) window.bt.removeClass( elem, 'bt-saved' ); var data = window.bt.getCookie(window.bt.dataCookieName); var sl = data.saved?data.saved:[]; if (sl.indexOf(id)>=0) sl.splice(sl.indexOf(id),1); data.saved = sl; window.bt.setCookie(window.bt.dataCookieName,data); window.bt.applyShortlist(); }; window.bt.applyShortlist = function(){ var data = window.bt.getCookie(window.bt.dataCookieName); var saved = data.saved?data.saved:[]; // Color shortlist buttons for (var i=0; i