function TransdevApp(){var n=this,t=Array();n.splashScreenDelay=250;n.splashScreenTimeout=moment();n.splashScreenTimeout.add(n.splashScreenDelay,"ms");n.start=function(){if(t.nav=new SiteNavView,t.home=new SiteHomeView,typeof KSModelDefinitions!="undefined"&&Array.isArray(KSModelDefinitions))for(i in KSModelDefinitions)t[i]=new KSModelDefinitions[i];t.nav.addDone(function(){sammy.run()});t.nav.load()};n.hideSplash=function(){var i=moment(),r=moment.duration(n.splashScreenTimeout.diff(i)),t=r.asMilliseconds()+n.splashScreenDelay;$(".main-page-loader").delay(t>0?t:0).queue(function(){$(".main-page-loader").css({"background-image":"none"});$(".main-page-loader div").hide(0);$(this).dequeue()}).fadeOut(500)};n.pageSplashTimeDelay=250;n.pageSplashTimeOut=moment();n.updateBreadCrumb=function(n){if(breadcrumbs="",Array.isArray(n)){breadcrumbs='<li class="active"><a href="#">Home<\/a><\/li>';locationTarget="#";for(i in n)locationTarget+=locationTarget=="#"?n[i]:"/"+n[i],i+1==n.length?breadcrumbs+='<li class="active">'+n[i]+"<\/li>":breadcrumbs='<li class="active"><a href="'+locationTarget+'">'+n[i]+"<\/a><\/li>"}else breadcrumbs='<li class="active">Home<\/li>';$(".breadcrumb").empty();$(".breadcrumb").append($.parseHTML(breadcrumbs))};n._errorQueue=[];n.raiseError=function(t,i,r,u){if(app.toggleNewLoader(),i!=null&&i.status==401){n.startAuthentication();return}var f=n._getErrorMesage(i);t!=null&&(f.message=t);r==null&&(r=!0);n._errorQueue.push({errorInfo:f,reloadApp:r,continueAction:u});n._errorQueue.length==1&&n._processErrorQueue()};n._processErrorQueue=function(){if(n._errorQueue[0]!=null&&(n._processError(n._errorQueue[0]),n._errorQueue[0].reloadApp)){n._errorQueue=[n._errorQueue[0]];return}};n._processError=function(t){var r=document.createElement("p"),f;r.style.fontWeight="bold";var e=document.createElement("p"),o=document.createElement("hr"),u=$(".modal.error").first(),i=u.find(".modal-body").first();$(r).append(t.errorInfo.message);$(e).append(t.errorInfo.extraInfo);i.empty();i.append(r);i.append(o);i.append(e);t.reloadApp&&(f=document.createElement("p"),$(f).append("Click Ok to reload the app"),i.append(f));u.modal();u.on("hide.bs.modal",n.errorDismissed)};n._getErrorMesage=function(n){var i={message:"An error has occurred",extraInfo:""},t,r;if(n==null)return i;t=null;try{t=JSON.parse(n.responseText)}catch(u){}if(n.status==0&&(i.extraInfo="Connection refused<br/>"),t!=null){if(t.message!=null&&(i.extraInfo+=t.message+"<br />"),t.modelState!=null){keys=Object.keys(t.modelState);for(r in keys)i.extraInfo+="<i>"+t.modelState[keys[r]]+"<\/i><br />"}if(t.exceptionType!=null)for(i.extraInfo="A exception occured: "+t.exceptionType+"<br /><br />",t.exceptionMessage!=null&&(i.extraInfo+=t.exceptionMessage+"<br /><br />"),innerException=t;(innerException=innerException.innerException)!=null;)i.extraInfo+="Inner Exception: "+innerException.exceptionType+"<br /><br />",innerException.exceptionMessage!=null&&(i.extraInfo+=innerException.exceptionMessage+"<br /><br />")}else i.extraInfo=""+n.statusText+" ("+n.status+")<br />"+i.extraInfo;return i};n.errorDismissed=function(){if($(".modal.error").first().off("hide.bs.modal",null,n.errorDismissed),n._errorQueue[0].reloadApp){location.href==location.origin+"/"?location.reload(!0):location=location.origin;return}n._errorQueue[0].continueAction!=null&&typeof n._errorQueue[0].continueAction=="function"&&n._errorQueue[0].continueAction();n._errorQueue.shift();n._processErrorQueue()};n.hWnd=null;n.jqXHRs=[];n.currentlyAuthenticating=!1;n.startAuthentication=function(t){if(t==null){$(".modal.login").modal();return}if(!n.currentlyAuthenticating){if(navigator.userAgent.indexOf("IEMobile")!=-1){location="account/popupsignin";return}n.currentlyAuthenticating=!0;n.hWnd=PopupCenter("account/popupsignin","Sign in",600,400);n.hWnd.onunload=function(){n.currentlyAuthenticating=!1};setTimeout(n.testAuthticationState,500)}};n.testAuthticationState=function(){$.ajax({url:"home/SiteHomeView",doNotRepeat:!0}).then(n.testAuthSuccess,n.testAuthFail)};n.testAuthSuccess=function(){$(".modal.login").modal("hide");n.hWnd.close();for(var t=null;(t=n.jqXHRs.shift())!=null;)$.ajax(t);n.currentlyAuthenticating=!1};n.testAuthFail=function(t){t.status==401?setTimeout(n.testAuthticationState,500):(n.hWnd.close(),$(".modal.login").modal("hide"),n.raiseError("There was an unrecoverable issue while trying to authenticate",t),n.currentlyAuthenticating=!1)};n.uploadMedia=function(n,t,i,r){$.ajax({xhr:function(){return new window.XMLHttpRequest},contentType:!1,processData:!1,type:"put",url:"api/media/upload/"+n,data:t,success:i,error:r})};n.getCookie=function(n){for(var r=n+"=",u=document.cookie.split(";"),t,i=0;i<u.length;i++){for(t=u[i];t.charAt(0)==" ";)t=t.substring(1);if(t.indexOf(r)==0)return t.substring(r.length,t.length)}return""};n.setCookie=function(n,t,i){var r,u;i=i||9999;r=new Date;r.setTime(r.getTime()+i*864e5);u="expires="+r.toUTCString();document.cookie=n+"="+t+";"+u+";path=/"};n.toggleNewLoader=function(n){typeof n=="undefined"||n==null||n==""?($("#newSiteLoader").stop(),$("#newSiteLoader").hide(),$("#newSiteLoader").find(".message").text("")):($("#newSiteLoader").find(".message").append($("#newSiteLoader").find(".message").text()!=""?"... "+n:n),$("#newSiteLoader").fadeIn(250))};n.navigate=function(t){t&&t!=""?n.updateTitle(t):($(".navbar-brand").show(),$(".page-title").hide(),$(".page-title").text(""),$(".back-icon").hide());location.hash=t};n.updateTitle=function(n){$(".navbar-brand").hide();$(".page-title").text(window["module_title_"+n]);$(".page-title").show();$(".back-icon").show()}}function PopupCenter(n,t,i,r){var f=window.screenLeft!=undefined?window.screenLeft:screen.left,e=window.screenTop!=undefined?window.screenTop:screen.top,o=window.innerWidth?window.innerWidth:document.documentElement.clientWidth?document.documentElement.clientWidth:screen.width,s=window.innerHeight?window.innerHeight:document.documentElement.clientHeight?document.documentElement.clientHeight:screen.height,h=o/2-i/2+f,c=s/2-r/2+e,u=window.open(n,t,"scrollbars=yes, width="+i+", height="+r+", top="+c+", left="+h);return window.focus&&u.focus(),u}function doLogin(n){document.cookie=n=="sendPrompt"?"sendPrompt=true":"sendPrompt=false";app.currentlyAuthenticating=!1;app.startAuthentication(this)}function DateFormat(n,t){return m=new moment.utc(n),m.format(t)}function SiteNavView(){var n=this;PageModel.call(n,{swapElement:"#nav-container",modelName:"SiteNavView",ajaxUrl:"/Home",ajaxParam:"SiteNavView",koBindSelector:"#nav-ko-container"});n.onLoadError=function(n){app.raiseError("Unable to load home page.",n,!1)};n.onLogoClick=function(){app.navigate("")};n.pageLoaded=function(){$(".btn-menu").on("click",n.onMenuClick)};n.onMenuClick=function(n){$(".dropdown-menu-nav").css({right:$(window).width()-$(n.target).position().left-45});$(".dropdown-menu-nav").toggle()};n.signout=function(){document.cookie="td_uname2=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";location="/account/signout"};n.addDone(function(){$(window).on("resize",n.onResize);n.onResize();$(n.koBindSelector+" .welcome-text").delay(5e3).fadeOut(1e3)});n.addUnloader(function(){$(window).off("resize",null,n.onResize)});n.onResize=function(){$(n.koBindSelector+" .welcome-text").css({left:$(window).width()/2-$(n.koBindSelector+" .welcome-text").first().width()/2,top:$(".navbar").height()+3})};n.navigate=function(n,t){$(".dropdown-menu-nav").hide();app.navigate($(t.target).attr("data-module"))}}function SiteHomeView(){var n=this;PageModel.call(n,{swapElement:"#home-container",modelName:"SiteHomeView",ajaxUrl:"/Home",ajaxParam:"SiteHomeView",koBindSelector:"#home-ko-container"});n.onLoadError=function(n){app.raiseError("Unable to load home page.",n,!1)};n.loadModule=function(n,t){app.navigate(t.currentTarget.attributes["data-module"].value)};n.addDone(function(){app.updateBreadCrumb();app.hideSplash();app.toggleNewLoader();$(window).on("resize",null,n.resizeTileContainer)});n.pageLoaded=function(){n.resizeTileContainer()};n.addUnloader(function(){$(window).off("resize",null,n.resizeTileContainer)});n.resizeTileContainer=function(){var t=$(window).width(),i=200,r,u;i=t<255?158:t<320?239:t<414?305:t<640?400:t<800?630:780;$(n.koBindSelector+" .tile-centre-container").width(i);$(n.koBindSelector+" .tile-centre-container").width(Math.min(i,$(n.koBindSelector+" .tile-container").width()));r=Math.max(0,$(window).height()-$(".navbar").height()-$(n.koBindSelector+" .tile-centre-container").height());u=$(n.koBindSelector+" .tile").first().height()/150;$(n.koBindSelector+" .tile").css({"margin-top":Math.max(22,r/5*u)+"px"})};n.beforeLoad=function(){app.toggleNewLoader("Loading")};sammy.get("/",function(){n.load()});n.signIn=function(){app.startAuthentication()}}function wiz(){$(".wiz-btn-next").on("click",wizNext);$(".wiz-btn-back").on("click",wizNext)}function wizNext(n){var t,i,r;if(n.stopPropagation!=null&&(n.stopPropagation(),n.preventDefault()),t=n.currentTarget,t.attributes["data-wiz-id"]==null||t.attributes["data-target"]==null){console.warn("Wizard attributes not set on wix-btn-next");return}if(i=$("#"+t.attributes["data-wiz-id"].nodeValue+" > div"),r=$("."+t.attributes["data-target"].nodeValue),i.length==0||r==0){console.warn("Wizard could not find container or target or both");return}i.fadeOut(150);r.delay(151).fadeIn(150)}function RestModel(n,t){var i=this;ObservableDataModel.call(i,n,t);i.feedBackContainer="."+i.modelName+"-feedback";i.post=function(){i.pre();i.apiRequest("POST",i.ajaxParam,ko.mapping.toJS(i.current()),"onPost",i.ajaxUrl,!1)};i.onPostSuccess=function(){$(i.feedBackContainer+" .loader").first().fadeOut(1e3,function(){$(i.feedBackContainer+" .success").first().removeClass("hidden");$(i.feedBackContainer+" .success").first().show().delay(1e3).fadeOut(1e3)})};i.onPostError=function(n){var t=$.parseJSON(n.responseText);$(i.feedBackContainer+" .error").text("Error: "+(typeof t=="object"&&typeof t.message=="string"?t.message:n.responseText));$(i.feedBackContainer+" .loader").first().fadeOut(100,function(){$(i.feedBackContainer+" .error").first().removeClass("hidden");$(i.feedBackContainer+" .error").first().show()})};i.pre=function(){$(i.feedBackContainer+" .error").first().hide();$(i.feedBackContainer+" .success").first().hide();$(i.feedBackContainer+" .loader").first().removeClass("hidden");$(i.feedBackContainer+" .loader").first().show()}}sammy=new Sammy;app=new TransdevApp;$(document).ready(function(){app.start()});ko.onError=function(){app.raiseError("The was an error binding data to the page.",null,!1)};$.fn.scrollTo=function(n,t,i){typeof t=="function"&&arguments.length==2&&(i=t,t=n);var r=$.extend({scrollTarget:n,offsetTop:50,duration:500,easing:"swing"},t);return this.each(function(){var t=$(this),n=typeof r.scrollTarget=="number"?r.scrollTarget:$(r.scrollTarget),u=typeof n=="number"?n:n.offset().top+t.scrollTop()-parseInt(r.offsetTop);t.animate({scrollTop:u},parseInt(r.duration),r.easing,function(){typeof i=="function"&&i.call(this)})})};$(document).ajaxError(function(n,t,i){t.status!=401||n.doNotRepeat||app.jqXHRs.push(i)});ko.bindingHandlers.allowBindings={init:function(n,t){var i=ko.unwrap(t());return{controlsDescendantBindings:!i}}};Array.prototype.filter||(Array.prototype.filter=function(n){"use strict";var i,f,r,e,t,u;if(this===void 0||this===null)throw new TypeError;if(i=Object(this),f=i.length>>>0,typeof n!="function")throw new TypeError;for(r=[],e=arguments.length>=2?arguments[1]:void 0,t=0;t<f;t++)t in i&&(u=i[t],n.call(e,u,t,i)&&r.push(u));return r});Array.prototype.find||Object.defineProperty(Array.prototype,"find",{value:function(n){"use strict";var t;if(this==null)throw new TypeError("Array.prototype.find called on null or undefined");if(typeof n!="function")throw new TypeError("predicate must be a function");var i=Object(this),u=i.length>>>0,f=arguments[1],r;for(t=0;t<u;t++)if(r=i[t],n.call(f,r,t,i))return r;return undefined}});window.location.origin||(window.location.origin=window.location.protocol+"//"+window.location.hostname+(window.location.port?":"+window.location.port:""));AdminModel=function(){var n=this;PageModel.call(n,{swapElement:"#home-container",modelName:"Admin",ajaxUrl:"/Admin",ajaxParam:"Index",koBindSelector:"#admin-ko-container"});n.roles=[{name:"",description:"",adGroupName:""}];n.modules=[{id:0,name:"",title:"",order:0,accessRoles:""}];n.addRoleValidator=null;n.editModuleValidator=null;n.onLoadError=function(n){app.raiseError("There was an error loading admin page",n)};sammy.get("#Admin",function(){app.navigate("Admin");n.load();"onRoot"in n&&n.onRoot()});n.tou=new RestModel({modelName:"tou",ajaxUrl:"api/admin/tou",bindOnLoad:!1,isArray:!1},n);n.dataReseter=new RestModel({modelName:"resetData",ajaxUrl:"api/admin/resetData",bindOnLoad:!1,isArray:!1});n.updateTou=function(){n.tou.current().terms=$("div[name='tou']").text();n.tou.post()};n.resetTou=function(){n.tou.reload()};n.resetData=function(){$.post("api/admin/resetData")};n.pageLoaded=function(){$(".role-list-group").on("click",".btn-edit",n.editRoleButtonClick);$(".role-list-group").on("click",".btn-delete",n.deleteRoleButtonClick);$(".pop-up-edit-role").on("click",".btn-default",n.closeEditButtonClick);$(".pop-up-edit-role").on("click",".btn-primary",n.saveEditButtonClick);$("#resetData").on("click",n.resetData);n.addRoleValidator=$(".pop-up-add-role form").validate({rules:{newName:{required:!0,minlength:3,maxlength:50},adGroupName:{required:!0,minlength:1,maxlength:128},description:{required:!1,minlength:1,maxlength:512}}});$(".panel-roles .btn-add-role").on("click",n.addRoleButtonClick);$(".pop-up-add-role").on("click",".btn-default",n.closeAddButtonClick);$(".pop-up-add-role").on("click",".btn-primary",n.saveAddButtonClick);$(".module-list-group").on("click",".btn-edit",n.editModuleButtonClick);$(".module-list-group").on("click",".btn-order",n.orderModuleButtonClick);$(".pop-up-edit-module").on("click",".btn-default",n.closeModuleButtonClick);$(".pop-up-edit-module").on("click",".btn-primary",n.saveModuleButtonClick);n.editModuleValidator=$(".pop-up-edit-module form").validate({rules:{title:{required:!0,minlength:3,maxlength:50}}})};n.back=function(){history.back()};n.addDone(function(){app.updateBreadCrumb(Array(n.modelName));app.hideSplash();app.toggleNewLoader();n.loadRoles();n.loadModules()});n.beforeLoad=function(){app.toggleNewLoader("Loading administration page")};n.loadRoles=function(){app.toggleNewLoader("Loading roles");$.ajax({url:"api/admin/roles"}).done(function(t){var i=$("#roleListItemTemplate").clone();$(".role-list-group").empty();$(".role-list-group").append(i);n.roles=t;t.forEach(function(n){i=i.clone();i.removeAttr("id");i.find(".list-group-item-heading").html(n.name);i.find(".role-adgroup").text(n.adGroupName);i.find(".role-description").text(n.description);i.find(".btn").attr("data-name",n.name);i.find(".btn .glyphicon").attr("data-name",n.name);n.canDelete?i.find(".btn-delete").removeAttr("disabled"):i.find(".btn-delete").attr("disabled","disabled");$(".role-list-group").append(i)})}).fail(function(n){app.raiseError("Unable to list roles",n,!1)}).complete(function(){app.toggleNewLoader()})};n.editRoleButtonClick=function(t){var i=n.roles.find(function(n){return n.name==$(t.target).attr("data-name")}),r=$(".pop-up-edit-role"),u=r.find("input[name='newName']"),f=r.find("input[name='adGroupName']");i.canEditName?u.removeAttr("disabled"):u.attr("disabled","disabled");i.canEditGroup?f.removeAttr("disabled"):f.attr("disabled","disabled");u.val(i.name);r.find("footer .btn-primary").attr("data-name",i.name);r.find("textarea[name='description']").val(i.description);f.val(i.adGroupName);r.show()};n.closeEditButtonClick=function(){$(".pop-up-edit-role form")[0].reset();$(".pop-up-edit-role").hide()};n.deleteRoleButtonClick=function(t){app.toggleNewLoader("Removing role");$.ajax({url:"api/admin/roles/"+$(t.target).attr("data-name"),method:"delete"}).done(function(){app.toggleNewLoader();n.loadRoles()}).fail(function(n){app.toggleNewLoader();app.raiseError("Unable to remove role",n,!1)})};n.saveEditButtonClick=function(t){var i,r,u,f,e;i=n.roles.find(function(n){return n.name==$(t.target).attr("data-name")});r=$(".pop-up-edit-role");sendData={name:i.name};u=r.find("input[name='newName']").val();i.name!=u&&u!=""&&(sendData.newName=u);f=r.find("textarea[name='description']").val();i.description!=f&&(sendData.description=f);e=r.find("input[name='adGroupName']").val();i.adGroupName!=e&&(sendData.adGroupName=e);$(".pop-up-edit-role form")[0].reset();$(".pop-up-edit-role").hide();(sendData.hasOwnProperty("newName")||sendData.hasOwnProperty("description")||sendData.hasOwnProperty("adGroupName"))&&(app.toggleNewLoader("Saving changes"),$.ajax({url:"api/admin/roles",method:"patch",data:sendData}).done(function(){app.toggleNewLoader();n.loadRoles()}).fail(function(n){app.toggleNewLoader();app.raiseError("Unable to save record",n,!1)}))};n.addRoleButtonClick=function(){$(".pop-up-add-role").show()};n.closeAddButtonClick=function(){n.addRoleValidator.resetForm();$(".pop-up-add-role form")[0].reset();$(".pop-up-add-role").hide()};n.saveAddButtonClick=function(){if($(".pop-up-add-role form").valid())$(".pop-up-add-role").hide(),app.toggleNewLoader("Creating role"),$.ajax({url:"api/admin/roles",method:"post",data:$(".pop-up-add-role form").first().serialize()}).done(function(){app.toggleNewLoader();n.loadRoles()}).fail(function(n){app.toggleNewLoader();$(".pop-up-add-role").show();app.raiseError("Unable to create role",n,!1)})};n.loadModules=function(){app.toggleNewLoader("Loading modules");$.ajax({url:"api/admin/modules"}).done(function(t){n.modules=t;n.completeLoadModules();app.toggleNewLoader()}).fail(function(n){app.toggleNewLoader();app.raiseError("Unable to load modules",n,!1)})};n.completeLoadModules=function(){var i=$("#moduleListItemTemplate").clone(),t=$(".module-list-group");t.empty();n.modules.forEach(function(n){$template=i.clone();$template.removeAttr("id");$template.find(".list-group-item-heading").html(n.name);$template.find(".module-title").html(n.title);$template.find(".module-access-roles").html(n.roles);$template.find(".btn").attr("data-id",n.id);$template.find(".btn .glyphicon").attr("data-id",n.id);t.append($template)});t.find(".btn-order-up").first().attr("disabled","disabled");t.find(".btn-order-down:last-child").last().attr("disabled","disabled");t.append(i)};n.editModuleButtonClick=function(t){var i=$(".pop-up-edit-module"),r=n.modules.find(function(n){return n.id==$(t.target).attr("data-id")});$chkArea=i.find(".role-checkbox-area");$chkArea.empty();$checkBox=$(document.createElement("input"));$checkBox.attr("type","checkbox");n.roles.forEach(function(n){$chk=$checkBox.clone();$chk.val(n.name);var t=r.roles.split(", ");t.find(function(t){return t==n.name})&&$chk.attr("checked","checked");$chkArea.append($chk);$chkArea.append("<span>"+n.name+"<\/span>")});i.find("input[name='title']").val(r.title);i.find("button").attr("data-id",r.id);i.show()};n.closeModuleButtonClick=function(){var n=$(".pop-up-edit-module");n.find("form")[0].reset();n.hide()};n.saveModuleButtonClick=function(t){var u=$(".pop-up-edit-module form"),i=$(".pop-up-edit-module"),r;(i.hide(),app.toggleNewLoader("Saving module"),$(".pop-up-edit-module form").valid())&&(r={title:u.find("input[name='title']").val(),roles:[]},u.find("input[type='checkbox']").each(function(n,t){t.checked&&r.roles.push(t.value)}),$.ajax({url:"api/admin/modules/"+$(t.target).attr("data-id"),data:r,method:"post"}).done(function(){i.find("form")[0].reset();app.toggleNewLoader();n.loadModules();n.loadRoles()}).fail(function(n){app.toggleNewLoader();app.raiseError("Unable to save module",n,!1);i.show()}))};n.orderModuleButtonClick=function(t){var i=$(t.target.tagName=="SPAN"?t.target.parentElement:t.target),r=i.attr("data-id"),u=i.val();app.toggleNewLoader("Re-ording modules");$.ajax({url:"api/admin/modules/"+r+"/"+u,method:"patch"}).done(function(){n.loadModules()}).fail(function(n){app.toggleNewLoader();app.raiseError("There was an error re-ording modules",n,!1)})}};typeof KSModelDefinitions!="undefined"&&Array.isArray(KSModelDefinitions)||(KSModelDefinitions=Array());KSModelDefinitions.AdminModel=AdminModel;commsModel=function(){var n=this;PageModel.call(n,{swapElement:"#home-container",modelName:"Communications",ajaxUrl:"/Communications",ajaxParam:"Index",koBindSelector:"#Communications-ko-container"});n.beforeLoad=function(){app.toggleNewLoader("Loading Communications Page")};n.addDone(function(){app.hideSplash();app.toggleNewLoader()});n.pageLoaded=function(){$("a.comm-link").on("click",function(n){location.hash=n.target.href.split("#")[1];n.preventDefault()});$(".pop-up-comm header button").on("click",n.onCommClose);$("iframe[name='comm']").on("load",function(){$("iframe[name='comm']")[0].src!="about:blank"&&$(".pop-up-comm").fadeIn(100);app.toggleNewLoader()});n.checkRoutes()};n.onResize=function(){$(".pop-up-comm content").height($(window).height()-$(".pop-up-comm header").height())};n.onCommNav=function(t){$(window).on("resize",n.onResize);$("iframe[name='comm']").attr("src","Scripts/compiled/pdfjs-1.4.20-dist/web/viewer2.html?file="+location.origin+"/communications/spfile%3Flocation%3D"+t);app.toggleNewLoader("Loading");n.onResize()};n.onCommClose=function(){location.hash=n.modelName;$(".pop-up-comm").fadeOut(100);$(window).off("resize",n.onResize)};sammy.get("#"+n.modelName+"/?.*",function(){if(app.updateTitle(n.modelName),n.loaded){var t=sammy.getLocation().split(n.modelName+"/");t.length>1?n.checkRoutes():$(n.koBindSelector).length>0?n.reload():n.load()}else n.load();"onRoot"in n&&n.onRoot()});n.checkRoutes=function(){var t=sammy.getLocation().replace("/#Communications/","").split("="),r,i;if(t.length>1){r=t[0];i=t[1];switch(r){case"comm":if(i.length>0)n.onCommNav(i);break;default:location="#"+n.modelName}}}};typeof KSModelDefinitions!="undefined"&&Array.isArray(KSModelDefinitions)||(KSModelDefinitions=Array());KSModelDefinitions.Communications=commsModel;emailModel=function(){var n=this;PageModel.call(n,{swapElement:"#home-container",modelName:"Email",ajaxUrl:"/Email",ajaxParam:"Index",koBindSelector:"#Email-ko-container"});n.beforeLoad=function(){app.toggleNewLoader("Loading")};n.addUnloader(function(){$(window).off("resize",null,n.onResize);$(".navbar").css({border:"0 0 1px"})});n.addDone(function(){app.updateBreadCrumb(Array(n.modelName));app.hideSplash();app.toggleNewLoader();$(window).on("resize",n.onResize);n.onResize();$(".navbar").css({border:"0"})});sammy.get("#Email",function(){app.navigate(n.modelName);n.load();"onRoot"in n&&n.onRoot()});n.onResize=function(){$(n.koBindSelector).width($(window).width());$(n.koBindSelector).height($(window).height()-$(".navbar").first().height());$(n.koBindSelector).css({top:$(".navbar").first().height()});$(n.koBindSelector+" button").css({left:$(window).width()/2-85})};n.openNewTab=function(){window.open("https://mail.transdev.co.nz/owa","_blank");location="#"}};typeof KSModelDefinitions!="undefined"&&Array.isArray(KSModelDefinitions)||(KSModelDefinitions=Array());KSModelDefinitions.Email=emailModel;window.PageControllers||(window.PageControllers={}),function(){"use strict";function n(n){return $(u["$"+n]).clone()}function f(){t=$(r).first();t.find("[data-template]").each(e)}function e(){var n=$(this).clone();$(this).attr("data-template-empty")&&n.empty();u["$"+$(this).attr("data-template")]=n}function o(){t.children().detach("*:not(.btn-group-nav)");i.weeks.forEach(function(r){var u=n("weekCol");r.slots.forEach(function(t){var i=n("slotAvailable");t.split?(i=n("slotPartial"),t.dayStates.forEach(function(t){var r=t.allocated?n("slotDayAllocated"):n("slotDayFree");r.text(t.day.charAt(0));i.append(r)}),u.children().length&&i.insertAfter(u.children().last()),i.appendTo(u)):t.fullyAllocated?(i=n("slotAllocated"),i.text(t.assignee),u.children("[data-template='slotAvailable']").length?i.insertAfter(u.children("[data-template='slotAvailable']").last()):u.children("[data-template='slotPartial']").length?i.insertBefore(u.children("[data-template='slotPartial']").first()):i.appendTo(u)):(u.children("[data-template='slotAllocated']").length?i.insertBefore(u.children("[data-template='slotAllocated']").first()):u.children("[data-template='slotPartial']").length?i.insertBefore(u.children("[data-template='slotPartial']").first()):i.appendTo(u),i.text("Free"));i.data("week",r);i.data("slot",t)});var f=n("weekButton"),o=f.find("span").first(),s=f.find("span:nth-child(2)"),e=f.find("a");e.attr("data-first-day",moment.utc(r.firstDay).toISOString());e.attr("data-calendarId",i.id);s.text(moment.utc(r.firstDay).format("DD/MM/Y"));o.append(r.weekNumber);f.appendTo(u);r.id==0&&u.addClass("virtual");u.insertBefore(t.children(".btn-group-nav").last())})}var i={id:0,name:"Cal",weeks:[{id:0,maxSlots:0,firstDay:Date.now(),lastDay:Date.now(),weekNumber:0,slots:[{id:0,weekId:0,split:!1,fullyAllocated:!1,assignee:"",dayStates:[{day:"",allocated:!1,assignee:"",dayNumber:1}]}]}]},r="#invalidIdSelector",t=$(r),u={};this.LeaveAdminCarouselController=function(n,t){i=n;r=t;f()};this.LeaveAdminCarouselController.prototype.reloadTemplates=function(){f()};this.LeaveAdminCarouselController.prototype.draw=function(){o();this.onDraw()};this.LeaveAdminCarouselController.prototype.onDraw=function(){}}.call(window.PageControllers);var leaveAdminModel=function(){var n=this,t;n.calenders=[];n.currentCalendar={};n.calendarWithWeeks={};n.addedCalendar=null;t=new PageControllers.LeaveAdminCarouselController(this.calendarWithWeeks,".calendar-pane");n.selectedMonth=(new Date).getMonth()+1;n.selectedYear=(new Date).getYear()+1900;n.selectedSlot={};PageModel.call(n,{swapElement:"#home-container",modelName:"LeaveAdmin",ajaxUrl:"/leaveAdmin",ajaxParam:"Index",koBindSelector:"#leaveAdmin-ko-container"});n.beforeLoad=function(){app.toggleNewLoader("Loading")};n.addDone(function(){app.updateBreadCrumb(Array(n.modelName));app.hideSplash();app.toggleNewLoader();$(".calendar-pane").on("click",".btn-cal-back",n.onCalBackClick);$(".calendar-pane").on("click",".btn-cal-forward",n.onCalForwardClick);$(".calendar-pane").on("click",".week-col > button",n.onSlotClick);$(".calendar-pane").on("click","a[data-adjust]",n.onWeekSlotAdjustClick)});n.pageLoaded=function(){var i,r;for($(".slider").slider({value:15,min:1,max:99,step:1,slide:function(n,t){$(".amount").text(t.value)}}),$(".amount").text(15),$(".new-calendar-form").validate({errorElement:"em"}),i=0;i<3;i++)$ele=$($("#calendar-year-list a")[i]),r=1900+(new Date).getYear()+i,$ele.attr("data-value",r),$ele.text(r);$(".btn-group-year span").first().text(n.selectedYear);$(".btn-group-month span").first().text($('#calendar-month-list a[data-value="'+n.selectedMonth+'"]').text());$("#calendar-month-list a").on("click",n.onSelectMonthClick);$("#calendar-year-list a").on("click",n.onSelectYearClick);$("#slot-view .display-free button").on("click",n.onAllocateSlotClick);$("#slot-view .btn-close").on("click",n.onCloseSlotViewClick);$("#slot-view .display-partial > div > div").on("click",function(t){if(n.currentCalendar.mailbox==""){var i=$(t.target).find("input")[0];t.target.nodeName=="DIV"&&(i.checked=!i.checked);n.onCheckSlotDayClick()}});$("#slot-view .allocate-panel .user-search").on("keyup",n.onUserSearchKeyUp);$("#slot-view .allocate-panel").on("click",".btn-user-allocate",n.onUserAllocate);$("#slot-view .display-allocated .btn-danger").on("click",n.onUserDeAllocate);$("#slot-view .display-partial .btn-deallocate").on("click",n.onUserDeAllocate);$("#slot-view .display-partial > div > span a").on("click",n.onPartialSelectAll);t.reloadTemplates();n.refeshCalendarData()};n.onPartialSelectAll=function(t){var i,r;t.preventDefault();i=!0;$(t.target).attr("data-deselect")&&(i=!1);r=$("#slot-view .display-partial input[type='checkbox']");r.each(function(n){r[n].checked=i});n.onCheckSlotDayClick()};n.onUserDeAllocate=function(t){var r={slotId:n.selectedSlot.slot.id,days:[0,1,2,3,4,5,6]},u,i;$(t.target).hasClass("btn-deallocate")&&(u=[],i=$("#slot-view .display-partial .allocated input[type='checkbox']"),i.each(function(n){i[n].checked&&u.push($(i[n]).data("day").day)}),r.days=u);r.days.length&&n.apiRequest("DELETE",null,r,"onUserDeAllocate","api/admin/leave/calendars/weeks/slots");n.onCloseSlotViewClick()};n.onUserDeAllocateSuccess=function(){n.refreshWeeksData(this.currentCalendar.id)}.bind(this);n.onUserDeAllocateError=function(n){app.raiseError("Unable to de-allocate slot",n,!1)};n.onUserAllocate=function(t){$btn=$(t.target);var i={calendarId:n.currentCalendar.id,firstDay:n.selectedSlot.week.firstDay,assignee:$btn.attr("data-user-id"),allocateDays:[]},r=$("#slot-view .display-partial input[type='checkbox']");r.each(function(n){chk=r[n];day=$(chk).data("day");!day.allocated&&chk.checked&&i.allocateDays.push(day.day)});n.apiRequest("POST",null,i,"onAllocate","api/admin/leave/calendars/weeks/slots");n.onCloseSlotViewClick()};n.onAllocateSuccess=function(){n.refreshWeeksData(n.currentCalendar.id)};n.onAllocateError=function(n){app.raiseError("The was an error allocating slots",n,!1)};n.onUserSearchKeyUp=function(t){var i=$(t.target),r=i.val();r.length>1&&(i.data("searching")?i.data("nextSearch",r):(i.data("searching",!0),i.data("lastSearch",r),n.apiRequest("GET",null,null,"onUserSearch","api/autocomplete/user?search="+r)))};n.onUserSearchSuccess=function(t){var i=$("#slot-view .allocate-panel .user-search"),r=$("#list-group-user-search-results");if(r.empty(),t.forEach(function(n){r.append('<div class="list-group-item"><div><button class="btn btn-success btn-user-allocate" data-user-id="'+n.id+'"><span class="glyphicon glyphicon-ok"><\/span> Allocate<\/button> <span>'+n.name+"<\/span><\/div><\/div>")}),i.data("searching",!1),i.data("nextSearch")!=i.data("lastSearch")){i.data("nextSearch",i.val());n.onUserSearchKeyUp({target:i})}};n.onUserSearchError=function(n){var t=$("#slot-view .allocate-panel .user-search");app.raiseError("Unable to seach users",n,!1);t.data("searching",!1)};n.onCloseSlotViewClick=function(){var n=$("#slot-view");n.fadeOut(100);n.find(".display-free").hide();n.find(".display-partial").hide();n.find(".display-allocated").hide();$("#list-group-user-search-results").empty();$("#slot-view .allocate-panel .user-search").val("");$("#slot-view .display-partial .btn-deallocate").hide();$("#slot-view .allocate-panel").hide();$("#slot-view .display-partial input[type='checkbox']").removeAttr("checked")};n.onSlotClick=function(t){var s,f,r,i,h,o;for(s=t.target.nodeName=="SPAN"?$(t.target.parentElement):$(t.target),f=s.data("week"),r=s.data("slot"),n.selectedSlot={week:f,slot:r},i=$("#slot-view"),i.find(".display-free").hide(),i.find(".display-partial").hide(),i.find(".display-allocated").hide(),h=i.find(".display-partial > div > div"),i.find(".slot-name").text(r.assignee),i.find(".week-number").text(f.weekNumber),i.find(".week-start-text").text(moment.utc(f.firstDay).format("ddd Do MMM Y ")),i.find(".week-end-text").text(moment.utc(f.lastDay).format("ddd Do MMM Y")),o=0;o<h.length;o++){var e=$(h[o]),u=r.dayStates[o],c=e.find(".slot-day-check");e.find(".slot-day-text").text(u.day);e.find(".slot-day-name").text(u.assignee==""?"Free":u.assignee);c.val(u.dayNumber);c.data("day",u);u.allocated?e.addClass("allocated"):e.removeClass("allocated");u.assigned&&e.addClass("allocated")}f.id==0||r.id==0?i.find(".display-free").show():r.fullyAllocated&&!r.split?i.find(".display-allocated").show():i.find(".display-partial").show();i.fadeIn(150)};n.onAllocateSlotClick=function(){var i=$("#slot-view"),t;i.find(".display-free").hide();t=i.find(".display-partial");t.find("input[type='checkbox']").each(function(n){t.find("input[type='checkbox']")[n].checked=!0});n.onCheckSlotDayClick({target:t.find("input[type='checkbox']").first()});t.show()};n.onCheckSlotDayClick=function(){if(n.currentCalendar.mailbox==""){var t=$("#slot-view .display-partial input[type='checkbox']"),i=!1,r=!1;t.each(function(n){var f=$(t[n]),u=f.data("day");u&&!u.allocated&&f[0].checked?i=!0:u&&u.allocated&&f[0].checked&&(r=!0)});i?($("#slot-view .allocate-panel input").focus(),$("#slot-view .allocate-panel").show()):$("#slot-view .allocate-panel").hide();r?$("#slot-view .btn-deallocate").show():$("#slot-view .btn-deallocate").hide()}};n.onCalBackClick=function(t){t.target.blur();n.selectedMonth==1?(n.selectedMonth=12,n.selectedYear--):n.selectedMonth--;n.changeMonth(n.selectedMonth,!0);n.changeYear(n.selectedYear)};n.onCalForwardClick=function(t){t.target.blur();n.selectedMonth==12?(n.selectedMonth=1,n.selectedYear++):n.selectedMonth++;n.changeMonth(n.selectedMonth,!0);n.changeYear(n.selectedYear)};n.onSelectMonthClick=function(t){t.preventDefault();n.changeMonth($(t.target).data("value"))};n.changeMonth=function(t,i){i=i||!1;n.selectedMonth=t;$(".btn-group-month span").first().text($('#calendar-month-list a[data-value="'+t+'"]').text());i||n.refreshWeeksData(n.currentCalendar.id)};n.onSelectYearClick=function(t){t.preventDefault();n.changeYear($(t.target).data("value"))};n.changeYear=function(t,i){i=i||!0;n.selectedYear=t;$(".btn-group-year span").first().text(t);i&&n.refreshWeeksData(n.currentCalendar.id)};n.refeshCalendarData=function(){n.apiRequest("GET",null,null,"onRefeshCalendarData","api/admin/leave/calendars")};n.onRefeshCalendarDataSuccess=function(t){n.calenders=t;var i=$("#calendar-list");i.children("*:not(.list-item-static)").remove();t.forEach(function(n){$('<li><a href="#" data-id="'+n.id+'">'+n.name+"<\/a><\/li>").insertBefore(i.children(".list-item-static").first())});$(i).children().children().on("click",n.onCalendarSelectClick);t[0]==null||n.currentCalendar.id?i.children("li").children("a[data-id='"+(n.addedCalendar||n.currentCalendar.id)+"']").first().click():i.children("li").children("a").first().click();n.addedCalendar=null;n.currentCalendar.mailbox?$(".ctrl-active-with-no-mailbox").attr("disabled","disabled"):$(".ctrl-active-with-no-mailbox").removeAttr("disabled")};n.onRefeshCalendarDataError=function(n){app.raiseError("Unable to load calendars",n,!1)};n.onCalendarSelectClick=function(t){t.preventDefault();var i=$(t.target).data("id");i&&(n.calenders.forEach(function(t){t.id==i&&(n.currentCalendar=t)}),$(".calendar-name-text").text(n.currentCalendar.name),n.refreshWeeksData(n.currentCalendar.id))};n.refreshWeeksData=function(t){$(".calendar-pane").addClass("loading");n.apiRequest("POST",null,{calendarId:t,firstDay:moment.utc([n.selectedYear,n.selectedMonth-1]).toISOString()},"onRefreshWeeksData","api/leave/calendars/weeks")};n.onRefreshWeeksDataSuccess=function(i){$.extend(n.calendarWithWeeks,i);t.draw();$(".calendar-pane").scrollTop(1e3);$(".calendar-pane").removeClass("loading");$(".calendar-pane").css({visibility:"visible"})};n.onRefreshWeeksDataError=function(n){app.raiseError("Unable to load calendar information",n,!1)};n.editCalenderClick=function(){var t,i,r;n.hideCalenderForm();t=$("#leaveAdmin-ko-container .btn-group-toolbar .btn-group");i=$(".edit-calendar-form:hidden").first();$(".edit-calendar-form .calendarName").val(n.currentCalendar.name);$(".edit-calendar-form input[name='calendarMailbox']").val(n.currentCalendar.mailbox);$(".edit-calendar-form .amount").text(n.currentCalendar.defaultAllocation);$(".edit-calendar-form .slider").slider("value",n.currentCalendar.defaultAllocation);r=i.outerHeight();i.css({display:"block",height:0,top:t.position().top+t.outerHeight(),left:t.position().left+t.outerWidth()-i.outerWidth()});i.animate({height:r},{done:function(){$(".edit-calendar-form input[name='calendarName']")[0].focus();$(".edit-calendar-form input[name='calendarName']")[0].select()}})};n.submitEditCalenderClick=function(){var i=$(".edit-calendar-form").validate(),t;$(".edit-calendar-form").valid()&&($(".edit-calendar-form .btn-primary").text("Sending..."),t={id:n.currentCalendar.id},n.currentCalendar.name!=$(".edit-calendar-form .calendarName").val()&&(t.name=$(".edit-calendar-form .calendarName").val()),n.currentCalendar.defaultAllocation!=$(".edit-calendar-form .slider").slider("value")&&(t.defaultAllocation=$(".edit-calendar-form .slider").slider("value")),n.currentCalendar.mailbox!=$(".edit-calendar-form input[name='calendarMailbox']").val()&&(t.mailbox=$(".edit-calendar-form input[name='calendarMailbox']").val()),!Object.keys(t).length==1?hideCalenderForm():n.apiRequest("PUT",null,t,"onEdit","api/admin/leave/calendars"))};n.onEditError=function(t){n.onAddNewError(t)};n.onEditSuccess=function(t){n.onAddNewSuccess(t)};n.addNewCalenderClick=function(){n.hideCalenderForm();var t=$("#leaveAdmin-ko-container .btn-group").first(),i=$(".new-calendar-form:hidden").first(),r=i.outerHeight();i.css({display:"block",height:0,top:t.position().top+t.outerHeight(),left:t.position().left});i.animate({height:r},{done:function(){$("input[name='calendarName']")[0].focus()}})};n.cancelAddNewCalenderClick=function(){n.hideCalenderForm()};n.hideCalenderForm=function(){$(".calendar-form:visible").length&&($(".calendar-form:visible input").val(""),$(".calendar-form:visible").first().fadeOut(150,function(){$(".calendar-form .btn-primary").text("Submit")}),$(".slider").slider("value",15),$(".amount").text(15),$(".calendar-form:visible").validate().resetForm())};n.newCalenderIncreaseSlots=function(){var n=$(".calendar-form .slider").slider("value")+1;$(".calendar-form .slider").slider("value",n);$(".calendar-form .amount").text(n)};n.newCalenderDecreaseSlots=function(){var n=$(".calendar-form .slider").slider("value")-1;$(".calendar-form .slider").slider("value",n);$(".calendar-form .amount").text(n)};n.submitNewCalenderClick=function(){var i=$(".new-calendar-form").validate(),t;$(".new-calendar-form").valid()&&($(".new-calendar-form .btn-primary").text("Sending..."),t={name:$(".new-calendar-form .calendarName").val(),defaultAllocation:$(".new-calendar-form .slider").slider("value")},$(".new-calendar-form input[name='calendarMailbox']").first().val()!=""&&(t.mailbox=$(".new-calendar-form input[name='calendarMailbox']").first().val()),n.apiRequest("POST",null,t,"onAddNew","api/admin/leave/calendars"))};n.onAddNewSuccess=function(t){n.addedCalendar=t.id;n.refeshCalendarData();n.hideCalenderForm()};n.onAddNewError=function(t){app.raiseError("Unable to add calendar",t,!1);n.hideCalenderForm()};n.onWeekSlotAdjustClick=function(t){t.preventDefault();data={calendarId:$(t.target).attr("data-calendarId"),firstDay:$(t.target).attr("data-first-day"),slotChange:$(t.target).attr("data-adjust")};n.apiRequest("PATCH",null,data,"onWeekSlotAdjust","api/admin/leave/calendars/weeks")};n.onWeekSlotAdjustSuccess=function(){n.refreshWeeksData(n.currentCalendar.id)};n.onWeekSlotAdjustError=function(n){app.raiseError("Was unable to adjust slots for the week",n,!1)};sammy.get("#LeaveAdmin",function(){app.navigate(n.modelName);n.load();"onRoot"in n&&n.onRoot()})};typeof KSModelDefinitions!="undefined"&&Array.isArray(KSModelDefinitions)||(KSModelDefinitions=Array());KSModelDefinitions.LeaveAdmin=leaveAdminModel,function(){"use strict";function l(n){return $(p["$"+n]).clone()}function w(){o=$(y);o.find("[data-template]").each(b)}function b(){var n=$(this).clone();$(this).attr("data-template-empty")&&n.empty();p["$"+$(this).attr("data-template")]=n}function c(){app.toggleNewLoader("Loading data");$.ajax({url:"api/leave/calendars/weeks",method:"POST",dataType:"json",data:{calendarId:t.calendar.id,firstDay:moment.utc([t.year,t.month-1]).toISOString()}}).done(function(t){a=t;n.calendarUpdated()}).fail(function(n){app.raiseError("Unable to load calendar data",n,!1);o.hide()})}function k(){$("#calendar-list").on("click","a",n.calendarSelected);$("#calendar-month-list").on("click","a",n.monthSelected);$("#calendar-year-list").on("click","a",n.yearSelected);$("#leave-schedule header button.btn-scroll").on("click",n.forwardOrBack);$("#leave-schedule header button.btn-leave-app").on("click",n.applyForLeaveClick);$("#leave-schedule-weeks").on("click","[data-template='leaveScheduleWeek']",n.detail);$("#leave-schedule-weeks").on("click",".btn-close",n.detailClose);$("#leave-print .btn-cancel").on("click",n.printCancel);$(".btn-group-toolbar .btn-print-popup").on("click",n.print);$("#leave-app > div > button.btn-cancel").on("click",n.leaveForm.close);$(s+" input[name='type1']").on("change",n.leaveForm.leaveOptionSelect);$(s+" input[type='checkbox']").on("change",n.leaveForm.leaveTypeSelect);$(r+" input").datepicker({dateFormat:"d/m/yy",minDate:new Date});$(r+" input").on("change",n.leaveForm.leaveDatesSelect);$(r+" input").on("focus",function(n){$(n.target).blur()});$(r+" textarea").on("keyup",n.leaveForm.leaveDatesSelect);$(f+" .btn").on("click",n.leaveForm.leaveBlockBtnClick);$(f+" a.reset").on("click",n.leaveForm.leaveBlockReset);$(e+" select[name='bookon']").on("change",n.leaveForm.leaveBookonSelect);$(u+" .btn-cancel").on("click",n.leaveForm.leaveBlockDateSelectCancel);$(u+" .btn-submit").on("click",n.leaveForm.leaveBlockDateSelect);$(u+" .date-sunday").datepicker({dateFormat:"d/m/yy",minDate:new Date,beforeShowDay:function(n){return[moment(n).format("ddd")=="Sun",""]}});$(u+" .date-sat").on("change",n.leaveForm.leaveBlockLastDayChange);$(u+" .date-sat").datepicker({dateFormat:"d/m/yy",beforeShowDay:function(n){return[moment(n).format("ddd")=="Sat"&&moment(n).isBefore(moment($("#block-select-dates .date-sunday").val(),"D/M/YYYY").add(21,"d"))&&moment(n).isAfter(moment($("#block-select-dates .date-sunday").val(),"D/M/YYYY")),""]}});$(u+" input").on("focus",function(n){$(n.target).blur()});$(h+" .btn-submit-leave-app").on("click",n.leaveForm.leaveAppSubmit);$(window).on("resize",n.pageResized);n.pageResized()}var a={id:0,name:"Cal",weeks:[{id:0,maxSlots:0,firstDay:Date.now(),lastDay:Date.now(),weekNumber:0,slots:[{id:0,weekId:0,split:!1,fullyAllocated:!1,assignee:"",dayStates:[{day:"",allocated:!1,assignee:"",dayNumber:1}]}]}]},v=[{id:null,name:"Select Calendar"}],t={year:null,month:null,calendar:{id:null,name:"Select Calendar"},week:{id:0,maxSlots:0,firstDay:Date.now(),lastDay:Date.now(),weekNumber:0},slot:{id:0,weekId:0,split:!1,fullyAllocated:!1,assignee:"",dayStates:[{day:"",allocated:!1,assignee:"",dayNumber:1}]}},i={option:0,types:["annual"],firstDay:Date.now(),lastDay:Date.now(),extReason:"rdsa",email:"dsa@dsa",blocks:[{pref:1,firstDay:Date.now(),lastDay:Date.now()}],bookon:"wiri"},y="#leave-schedule",o=$(y),p={},s="#type-selection",r="#date-selection-dates",f="#date-selection-blocks",e="#cc-email",h="#submitArea",u="#leave-block-date-select",n={ready:function(){w();k();$.ajax({url:"api/leave/calendars",content:"text/json"}).done(function(t){v=t;n.calendarDataLoaded()}).fail(function(n){app.raiseError("Unable to load calendar information",n,!1);o.find(".leave-schedule-weeks").empty()})},calendarDataLoaded:function(){var f=moment(),e,r,i,u;for(t.month=t.month||f.format("M"),$("#selected-month-text").text(f.format("MMMM")),e=$("#year-dropdown ul"),r=parseInt(f.format("YYYY")),e.empty(),i=0;i<3;i++)e.append('<li><a href="#" data-value="'+(r+i)+'">'+(r+i)+"<\/a><\/li>");t.year==null&&(t.year=r);$("#year-dropdown button span").first().text(t.year);var s=$("#calendar-dropdown"),h=s.find("ul").first(),c=s.find("calendar-name-text").first();h.empty();v.forEach(function(n){h.append('<li><a href="#" data-cal-id="'+n.id+'">'+n.name+"<\/a><\/li>")});u=app.getCookie("selectedLeaveCalendar");u!=""&&(t.calendar.id=u.split(":")[0],t.calendar.name=u.split(":")[1]);t.calendar.id?($("#selected-calendar-text").text(t.calendar.name),n.calendarSelected()):($("#leave-schedule-weeks").empty(),o.hide());n.pageResized()},calendarSelected:function(n){n!=null&&(n.preventDefault(),t.calendar.id=$(n.target).attr("data-cal-id"),t.calendar.name=$(n.target).text(),app.setCookie("selectedLeaveCalendar",t.calendar.id+":"+t.calendar.name));$("#selected-calendar-text").text(t.calendar.name);c()},yearSelected:function(n){var i,r;n.preventDefault();i=$(n.target).attr("data-value");t.year=i;r=moment().year(i);$("#selected-year-text").text(r.format("Y"));c()},monthSelected:function(n){var i,r;n.preventDefault();i=$(n.target).attr("data-value");t.month=i;r=moment().month(i-1);$("#selected-month-text").text(r.format("MMMM"));c()},forwardOrBack:function(n){var r=parseInt(t.month)+parseInt($(n.target).attr("data-value")),u=t.year,i=moment([u,t.month-1]).month(r-1);t.year=i.format("Y");t.month=i.format("M");$("#selected-month-text").text(i.format("MMMM"));$("#selected-year-text").text(i.format("Y"));c()},pageResized:function(){o.find(".leave-week-bar").height(window.innerHeight-211)},calendarUpdated:function(){app.toggleNewLoader();$("#leave-schedule-weeks").empty();a.weeks.forEach(function(n){var t=l("leaveScheduleWeek"),e=n.slots.filter(function(n){return!n.fullyAllocated&&!n.split}).length,o=n.slots.filter(function(n){return n.fullyAllocated&&!n.split}).length,s=n.slots.filter(function(n){return n.split}).length,r,u,i,f;t.find("[data-bind-text='number']").text(n.weekNumber);t.find("[data-bind-text='first-day']").text(moment.utc(n.firstDay).format("DD MMM"));t.find("[data-bind-text='last-day']").text(moment.utc(n.lastDay).format("DD MMM"));t.find("[data-bind-text='slots-free']").text(e);t.find("[data-bind-text='slots-allocated']").text(o);t.find("[data-bind-text='slots-split']").text(s);r=100/((n.maxSlots-s)*1.1);t.find("[data-bind-height='free']").css({height:e*r+"%"});t.find("[data-bind-height='allocated']").css({height:o*r+"%"});t.find("[data-bind-height='split']").css({height:"9%"});u=t.find(".allocated-slots-list");u.empty();n.slots.forEach(function(n){if(n.fullyAllocated&&!n.split){var t=l("allocatedSlotPerson");t.text(n.assignee);u.append(t)}});i=[];f=t.find(".available-days-list");f.empty();n.slots.forEach(function(n){!n.fullyAllocated&&n.split&&n.dayStates.forEach(function(n){n.allocated||i.some(function(t){return t==n.day})||i.push(n.day)})});i.forEach(function(n){var t=l("availableDay");t.text(n);f.append(t)});$("#leave-schedule-weeks").append(t)});n.pageResized();$("a.btn-print").attr("href","leave/printview?year="+t.year+"&calendarId="+t.calendar.id);o.fadeIn(100)},detail:function(n){for(var t=n.target;$(t).attr("data-template")!="leaveScheduleWeek";)t=t.parentElement;$(t).children(".pop-up-bg").fadeIn(100)},detailClose:function(n){n.preventDefault();n.stopPropagation();$("#leave-schedule-weeks .pop-up-bg:visible").fadeOut(100)},print:function(){$("#leave-print").fadeIn(100)},printCancel:function(){$("#leave-print").fadeOut(100)},applyForLeaveClick:function(){$("#leave-app").fadeIn(100)},leaveForm:{curOption:-1,close:function(){$("#leave-app").fadeOut(100);n.leaveForm.reset()},reset:function(){i={blocks:[],type:[]};$(s+" .leave-type").hide();$(r).hide();$(r+" textarea").hide();$(f).hide();$(e).hide();$(h).hide();$(s)[0].reset();$(r)[0].reset();$(f)[0].reset();$(u+" form")[0].reset();$(e)[0].reset();$(r+" .alert-warning").hide()},leaveOptionSelect:function(t){var u,o;i={blocks:[],type:[]};u=$(s+" .leave-type");u.find("> span").hide();$(f).hide();$(r).hide();$(r+" textarea").hide();$(r+" input").val("");$(e).hide();$(e)[0].reset();$(h).hide();$(r+" .alert-warning").hide();o=$(s+" input[type='checkbox']");o.each(function(n,t){t.checked=!1});n.leaveForm.leaveTypeSelect();switch($(t.target).val()){case"0":u.find("> span").show();break;case"1":u.find("#annual,#longservice").show();break;case"2":u.find("#annual,#longservice").show();$(r+" textarea").show()}n.leaveForm.curOption=$(t.target).val();i.option=$(t.target).val();u.show()},leaveTypeSelect:function(){var u=$(s+" input[type='checkbox']"),t;i.types=[];t=!1;u.each(function(n,r){r.checked&&(i.types.push(r.name),t=!0)});t?n.leaveForm.curOption=="0"||n.leaveForm.curOption=="2"?$(r).show():$(f).show():$(r).hide()},leaveDatesSelect:function(){var u=$(r+" input[name='firstDay']"),f=$(r+" input[name='lastDay']"),o=$(r+" textarea");u.val()&&u.val()!=""&&f.val()&&f.val()!=""&&(n.leaveForm.curOption!="2"||o.val()&&o.val()!="")?($(e).show(),i.extReason=o.val()):$(e).hide();u.val()&&u.val()!=""&&f.val()&&f.val()!=""&&(i.firstDay=moment.utc(u.val(),"D/M/YYYY").toISOString(),i.lastDay=moment.utc(f.val(),"D/M/YYYY").toISOString(),$(r+" .num-days-value").text(moment.utc(i.lastDay).diff(i.firstDay,"days")+1),$.ajax({url:"api/leave/calendars/"+t.calendar.id+"/slots",data:{start:i.firstDay,end:i.lastDay}}).done(function(n){var t=!n.some(function(n){return n.availableSlots==0});t?$(r+" .alert-warning").hide():$(r+" .alert-warning").show()}))},leaveBookonSelect:function(n){var t=$(n.target);t.val()!="select"?(i.bookon=t.val(),$(h).show()):$(h).hide()},leaveBlockBtnClick:function(n){n.preventDefault();$(u+" .btn-submit").val($(n.target).val());$(u).show()},leaveBlockDateSelect:function(t){var f=$(u+" input"),e=$(t.target).val(),r=i.blocks.find(function(n){n.pref==e});r==null&&(r={pref:e},i.blocks.push(r));r.firstDay=moment.utc(f.first().val(),"D/M/YYYY").toISOString();r.lastDay=moment.utc(f.last().val(),"D/M/YYYY").add(7,"d").toISOString();$("#block-select-dates")[0].reset();$(u+" .alert-warning").hide();n.leaveForm.updateBlocks();$(u).hide();$(u+" .btn-submit").attr("disabled","disabled")},leaveBlockDateSelectCancel:function(){$("#block-select-dates")[0].reset();$(u).hide();$(u+" .btn-submit").attr("disabled","disabled");$(u+" .alert-warning").hide()},leaveBlockReset:function(t){t.preventDefault();i.blocks=[];n.leaveForm.updateBlocks();$(f+" .btn[value!='1']").attr("disabled","disabled")},updateBlocks:function(){$(f+" .firstday").text(" - ");$(f+" .lastday").text(" - ");i.blocks.forEach(function(n){var t=$($(f+" .firstday")[n.pref-1]),i=$($(f+" .lastday")[n.pref-1]);t.text(moment.utc(n.firstDay).format("Do MMM YY"));i.text(moment.utc(n.lastDay).format("Do MMM YY"));$(f+" .btn[value='"+(parseInt(n.pref)+1)+"']").removeAttr("disabled")});i.blocks.length>0?$(e).show():$(e).hide()},leaveBlockLastDayChange:function(n){if(n.target.value!=""){var i=moment.utc($(u+" input").first().val(),"D/M/YYYY").toISOString(),r=moment.utc($(u+" input").last().val(),"D/M/YYYY").toISOString();$.ajax({url:"api/leave/calendars/"+t.calendar.id+"/slots",data:{start:i,end:r}}).done(function(n){var t=!n.some(function(n){return n.availableSlots==0});t?$(u+" .alert-warning").hide():$(u+" .alert-warning").show()});$(u+" .btn-submit").removeAttr("disabled")}},leaveAppSubmit:function(){i.option!="1"&&(i.blocks=[]);i.email=$(e+" input").val();$.ajax({url:"api/leave/calendars/"+t.calendar.id+"/requests",data:JSON.stringify(i),method:"POST",contentType:"application/json; charset=utf-8"});n.leaveForm.close()}}};this.LeaveCarouselController=function(){};this.LeaveCarouselController.prototype.reloadTemplates=function(){w()};this.LeaveCarouselController.prototype.draw=function(){drawCarousel();this.onDraw()};this.LeaveCarouselController.prototype.onDraw=function(){};this.LeaveCarouselController.prototype.ready=n.ready}.call(window.PageControllers);leaveModel=function(){var n=this;PageModel.call(n,{swapElement:"#home-container",modelName:"Leave",ajaxUrl:"/leave",ajaxParam:"Index",koBindSelector:"#leave-ko-container"});this.leaveCarouselController=new window.PageControllers.LeaveCarouselController;n.beforeLoad=function(){app.toggleNewLoader("Loading")};n.addDone(function(){app.updateBreadCrumb(Array(n.modelName));app.hideSplash();app.toggleNewLoader()});n.pageLoaded=function(){n.leaveCarouselController.ready()};sammy.get("#Leave",function(){app.navigate(n.modelName);n.load();"onRoot"in n&&n.onRoot()})};typeof KSModelDefinitions!="undefined"&&Array.isArray(KSModelDefinitions)||(KSModelDefinitions=Array());KSModelDefinitions.leaveModel=leaveModel;manualsAdminModel=function(){var n=this;PageModel.call(n,{swapElement:"#home-container",modelName:"manualsAdmin",ajaxUrl:"/ManualsAdmin",ajaxParam:"Index",koBindSelector:"#manualsAdmin-ko-container"});n.data=new manualsAdminDataModel(n);n.manualAddModel={title:ko.observable("")};n.beforeLoad=function(){app.toggleNewLoader("Loading")};n.addDone(function(){app.updateBreadCrumb(Array(n.modelName));app.hideSplash();app.toggleNewLoader()});n.addNewClick=function(){$(".add-new-manual-form").toggle();$(".add-new-manual-form")[0].reset()};n.addAndUploadClick=function(){if(n.manualAddModel.title().length==0){app.raiseError("Please enter a name/title for the manual",null,!1);return}var t=$(".add-new-manual-form input[type='file']");if(t[0].files.length<1){app.raiseError("Please select a file",null,!1);return}$("#pop-up-upload").show();$(".add-new-manual-form").toggle();n.apiRequest("POST",null,n.manualAddModel,"onAdd","api/manual/add");n.manualAddModel.title("")};n.deleteManualClick=function(t){n.apiRequest("DELETE",t.id(),null,"onDelete","api/manual")};n.updateManualClick=function(t){n.apiRequest("POST",t.id()+"/removefile",null,"onRemoveFile","api/manual")};n.publishClick=function(t){n.apiRequest("PUT",t.id()+"/publish/true",null,"onPublish","api/manual")};n.hideClick=function(t){n.apiRequest("PUT",t.id()+"/publish/false",null,"onPublish","api/manual")};n.onPublishSuccess=function(){n.data.reload()};n.onPublishError=function(n){app.raiseError("Unable to update published/hidden status",n,!1)};n.onRemoveFileError=function(n){app.raiseError("Unable to remove existing file",n,!1)};n.onRemoveFileSuccess=function(t){var r=$("#updateManaulInput"),u=new FormData,f=!1;for(index=0;index<r.length;index++)for(i=0;i<r[index].files.length;i++)u.append("file",r[index].files[i]),f=!0;if(!f){app.raiseError("Please select a file",null,!1);r.val("");return}app.uploadMedia(t,u,n.onUpdateSuccess,n.onUpdateError)};n.onUpdateSuccess=function(){$("#updateManaulInput").val("");n.data.reload()};n.onUpdateError=function(n){$("#updateManaulInput").val("");app.raiseError("Unable to update manual with file selected",n,!1)};n.onDeleteSuccess=function(){n.data.reload()};n.onDeleteError=function(n){app.raiseError("Unable to delete manual",n,!1)};n.onAddSuccess=function(t){var r=$(".add-new-manual-form input[type='file']"),u=new FormData,f=!1;for(index=0;index<r.length;index++)for(i=0;i<r[index].files.length;i++)u.append("file",r[index].files[i]),f=!0;if(!f){app.raiseError("Please select a file",null,!1);return}app.uploadMedia(t.mediaId,u,n.onUploadSuccess,n.onUploadError);$(".add-new-manual-form")[0].reset()};n.onUploadSuccess=function(){$("#pop-up-upload").hide();n.data.reload()};n.onUploadError=function(n){$("#pop-up-upload").hide();app.raiseError("Error uploading new manual",n,!1)};n.onAddError=function(n){app.raiseError("Error adding new manual",n,!1);$("#pop-up-upload").hide()};sammy.get("#ManualsAdmin",function(){app.navigate(n.modelName);n.load();"onRoot"in n&&n.onRoot()})};manualsAdminDataModel=function(n){var t=this;ObservableDataModel.call(t,{ajaxUrl:"api/manual/adminlist",isArray:!0,setCurrentToZero:!0,bindOnLoad:!1},n)};typeof KSModelDefinitions!="undefined"&&Array.isArray(KSModelDefinitions)||(KSModelDefinitions=Array());KSModelDefinitions.manualsAdmin=manualsAdminModel;manualsModel=function(){var n=this;PageModel.call(n,{swapElement:"#home-container",modelName:"Manuals",ajaxUrl:"/manuals",ajaxParam:"Index",koBindSelector:"#manuals-ko-container"});n.data=new ObservableDataModel({ajaxUrl:"api/manual/list",isArray:!0,setCurrentToZero:!0,bindOnLoad:!1},n);n.beforeLoad=function(){app.toggleNewLoader("Loading")};n.addDone(function(){app.updateBreadCrumb(Array(n.modelName));app.hideSplash();app.toggleNewLoader();$(window).on("resize",function(){$("#manualIframe").height($(window).height()-20)})});n.manualClick=function(n){$("#manualIframe").attr({src:"../../Scripts/compiled/pdfjs-1.4.20-dist/web/viewer2.html?file="+n.fileLocation()});$(".manual-layer").toggle();$("#manualIframe").height($(window).height()-20)};n.hideManualClick=function(){$(".manual-layer").toggle()};sammy.get("#Manuals",function(){app.navigate(n.modelName);n.load();"onRoot"in n&&n.onRoot()})};typeof KSModelDefinitions!="undefined"&&Array.isArray(KSModelDefinitions)||(KSModelDefinitions=Array());KSModelDefinitions.manuals=manualsModel;PhoneDirectoryModel=function(){var n=this;PageModel.call(n,{swapElement:"#home-container",modelName:"PhoneDirectory",ajaxUrl:"/PhoneDirectory",ajaxParam:"Index",koBindSelector:"#PhoneDirectory-ko-container"});n.onLoadError=function(n){app.raiseError("There was an error loading phone directory page",n,!0)};n.onReloadError=n.onLoadError;n.beforeLoad=function(){app.toggleNewLoader("Loading")};n.addDone(function(){app.updateBreadCrumb(Array(n.modelName));app.hideSplash();app.toggleNewLoader();n.searchString("");n.openContact=null;$("input[name='search']").on("keyup",function(t){var r,u,i;for(typeof n.openContact=="object"&&n.openContact!=null&&(n.openContact.slideUp(),n.openContact=null),r=$(".list-group-item"),u=t.currentTarget.value.toLowerCase(),eleIndex=0;eleIndex<r.length;eleIndex++)i=$(r[eleIndex]),i[0].attributes["data-displayName"].nodeValue.indexOf(u)==-1?i[0].className.indexOf("hidden")==-1&&(i[0].className=i[0].className+" hidden"):i[0].className=i[0].className.replace("hidden","")})});sammy.get("#PhoneDirectory",function(){app.navigate(n.modelName);n.load();"onRoot"in n&&n.onRoot()});n.searchString=ko.observable("");n.openContact=null;n.contactLinkClick=function(n,t){var i=t.currentTarget;i.tagName=="A"&&(window.location=i.href,t.stopPropagation())};n.contactClick=function(t,i){if(typeof n.openContact=="object"&&n.openContact!=null)if(n.openContact.is(":visible")){if(n.openContact.slideUp(),n.openContact[0]==$(i.currentTarget).children(".contact-details").first()[0])return n.openContact=null,!0;n.openContact=null}else return n.openContact.slideDown(),!0;n.openContact=$(i.currentTarget).children(".contact-details").first();var r=$(n.openContact).children(".contact-thumbnail");r.length>0&&r.css("background-image",'url("PhoneDirectory/GetThumbnail/'+r.attr("data-objectId")+'")');n.openContact.slideDown()}};typeof KSModelDefinitions!="undefined"&&Array.isArray(KSModelDefinitions)||(KSModelDefinitions=Array());KSModelDefinitions.PhoneDirectory=PhoneDirectoryModel,function(){"use strict";function e(n){return $(f["$"+n]).clone()}function o(){var n=$("[data-template-empty],[data-template]");n.each(function(){var n=$(this).clone();$(this).attr("data-template-empty")&&n.empty();f["$"+$(this).attr("data-template")]=n})}function s(){$("#import-overlay").fadeIn();$.ajax({url:"api/admin/rosters/runsheetsets",method:"POST",data:{validFrom:moment.utc($("#import-form input[name='validFrom']").val(),"DD/MM/YYYY").toISOString(),validTo:moment.utc($("#import-form input[name='validTo']").val(),"DD/MM/YYYY").toISOString(),type:$("#import-form select[name='setType']").val(),roleId:$("#import-form select[name='setRole']").val()}}).done(function(t){var i=new FormData;i.append("file",$("#import-form input[name='fileName']")[0].files[0]);$.ajax({url:"api/admin/rosters/runsheetsets/"+t.id,method:"POST",data:i,contentType:!1,processData:!1}).done(function(){$("#import-overlay").fadeOut();n.importComplete();$("#import-form form")[0].reset()}).fail(function(n){$.ajax({url:"api/admin/rosters/runsheetsets/"+t.id,method:"DELETE"});$("#import-overlay").fadeOut();$("#import-form form")[0].reset();app.raiseError("Unable to import file",n,!1)})}).fail(function(n){app.raiseError("Unable to create runsheet set",n,!1);$("#import-overlay").fadeOut()})}function t(){$.ajax({url:"api/admin/rosters/runsheetsets"}).done(function(t){i=t;n.dataLoaded()}).fail(function(n){app.raiseError("Unable to load run sheet sets",n,!1)})}function h(){var t,i,r;$("#btn-toolbar-import").on("click",n.userActions.toolbarImportButtonClick);$("#btn-import").on("click",n.userActions.importButtonClick);$("#btn-import-cancel").on("click",n.userActions.importCancelButtonClick);t=$("#def-list");t.on("click",".set-btn-change-dates",n.userActions.setChangeDatesClick);t.on("click",".set-btn-import",n.userActions.importAnotherFileClick);t.on("click",".set-btn-delete",n.userActions.setDelectClick);t.find("> input").on("change",n.userActions.uploadAdditionalFileSelect);i=$("#popup-confirm-delete");i.find(".btn-no").on("click",n.userActions.popupDeleteCancelClick);i.find(".btn-yes").on("click",n.userActions.popupDeleteConfimClick);r=$("#popup-update-dates");r.find(".btn-cancel").on("click",n.userActions.popupDatesCancelClick);r.find(".btn-update").on("click",n.userActions.popupDatesUpdateClick);$(window).on("resize",n.pageResized);u=$("#import-form > form").validate();n.pageResized()}var i=[{id:0,type:"string",files:["string"],validFrom:"dateString",validTo:"dateString",roleId:0,roleName:"Name"}],r=[{id:0,name:"ENG"}],u,f={},n={ready:function(){o();$(".valid-date").datepicker({dateFormat:"dd/mm/yy"});h();t()},dataLoaded:function(){var n=$("#def-list > .list-group");n.empty();i.forEach(function(t){var f=moment.utc(t.validFrom),r=moment.utc(t.validTo),i=e("runsheetSet"),u;i.find(".set-type").text(t.type);i.find(".set-type").removeClass("label-primary");i.find(".set-type").removeClass("label-warning");i.find(".set-type").removeClass("label-danger");i.find(".set-type").addClass(t.type=="Permanent"?"label-primary":t.type=="Special"?"label-warning":"label-danger");i.find(".set-role").text(t.roleName);i.find(".set-valid-from").text(f.format("Do MMM YY"));i.find(".set-valid-to").text(r.format("Do MMM YY"));i.find(".btn-group.pull-right .btn").val(t.id);u=i.find(".set-filelist");u.empty();t.files.forEach(function(n){u.append("<li>"+n+"<\/li>")});moment().isAfter(r)?(i.addClass("past-set"),moment().diff(r,"d")>90&&i.addClass("far-past-set"),n.append(i)):moment().isBefore(f)?(i.addClass("future-set"),n.children().length==0?n.append(i):n.children(".active-set").length>0?i.insertBefore(n.children(".active-set").first()):n.children(".past-set").length>0?i.insertAfter(n.children(".past-set").first()):n.append(i)):(i.addClass("active-set"),n.children().length==0?n.append(i):n.children(".future-set").length>0?i.insertAfter(n.children(".future-set").first()):n.children(".past-set").length>0?i.insertBefore(n.children(".active-set").first()):n.append(i))}.bind(this));$("#def-list").show()},importComplete:function(){t()},pageResized:function(){},userActions:{toolbarImportButtonClick:function(){var n=function(){$("#import-form").fadeIn();$("#def-list").hide()};$.ajax({url:"api/admin/rosters/roles"}).done(function(t){r=t;r.forEach(function(n){$("#import-form select[name='setRole']").append('<option value="'+n.id+'">'+n.name+"<\/option>")});$("#import-form select[name='setRole'] option").first().attr("selected");n()}).fail(function(n){app.raiseError("Unable to load roles to associated with runsheets",n,!1)})},importButtonClick:function(n){n.preventDefault();$("#import-form > form").valid()&&($("#import-form").hide(),$("#def-list").show(),u.resetForm(),s())},importCancelButtonClick:function(n){n.preventDefault();$("#import-form").hide();$("#import-form form")[0].reset();$("#def-list").show();u.resetForm()},setDelectClick:function(n){$("#popup-confirm-delete .btn-yes").val($(n.target).val());$("#popup-confirm-delete").fadeIn(100)},setChangeDatesClick:function(n){var t=i.find(function(t){return t.id==$(n.target).val()});$("#popup-update-dates input[name='validFrom']").val(moment.utc(t.validFrom).format("DD/MM/YYYY"));$("#popup-update-dates input[name='validTo']").val(moment.utc(t.validTo).format("DD/MM/YYYY"));$("#popup-update-dates button.btn-update").val($(n.target).val());$("#popup-update-dates").fadeIn(100)},importAnotherFileClick:function(n){$("#def-list > input").attr("data-set-id",$(n.target).val());$("#def-list > input").click()},popupDeleteConfimClick:function(n){$("#popup-confirm-delete .buttons").hide();$("#popup-confirm-delete .processing").show();$.ajax({url:"api/admin/rosters/runsheetsets/"+$(n.target).val(),method:"DELETE"}).done(function(){t()}).fail(function(n){app.raiseError("Unable to delete record",n,!1)}).always(function(){$("#popup-confirm-delete .processing").hide();$("#popup-confirm-delete").fadeOut(100);$("#popup-confirm-delete .buttons").delay(100).show()})},popupDeleteCancelClick:function(){$("#popup-confirm-delete").fadeOut(100)},popupDatesCancelClick:function(){$("#popup-update-dates").fadeOut(100)},popupDatesUpdateClick:function(n){var i=$(n.target).val(),r={validFrom:moment.utc($("#popup-update-dates input[name='validFrom']").val(),"DD/MM/YYYY").toISOString(),validTo:moment.utc($("#popup-update-dates input[name='validTo']").val(),"DD/MM/YYYY").toISOString()};$.ajax({url:"api/admin/rosters/runsheetsets/"+i,data:r,method:"PUT"}).fail(function(n){app.raiseError("Unable to update dates",n,!1)}).always(function(){$("#popup-update-dates").fadeOut(100);t()})},uploadAdditionalFileSelect:function(t){$("#import-overlay").fadeIn();var r=$(t.target).attr("data-set-id"),i=new FormData;i.append("file",$("#def-list input[name='uploadFile']")[0].files[0]);$.ajax({url:"api/admin/rosters/runsheetsets/"+r,method:"POST",data:i,contentType:!1,processData:!1}).done(function(){n.importComplete()}).fail(function(n){app.raiseError("Unable to import file",n,!1)}).always(function(){$("#import-overlay").fadeOut()})}}};this.RosterAdminController=function(){r=null};this.RosterAdminController.prototype.ready=n.ready}.call(window.PageControllers);rosterAdminModel=function(){var n=this;PageModel.call(n,{swapElement:"#home-container",modelName:"RosterAdmin",ajaxUrl:"/rosterAdmin",ajaxParam:"Index",koBindSelector:"#rosterAdmin-ko-container"});n.pageCtlr=new window.PageControllers.RosterAdminController;n.beforeLoad=function(){app.toggleNewLoader("Loading")};n.addDone(function(){app.updateBreadCrumb(Array(n.modelName));app.hideSplash();app.toggleNewLoader()});n.pageLoaded=function(){n.pageCtlr.ready()};sammy.get("#RosterAdmin",function(){app.navigate(n.modelName);n.load();"onRoot"in n&&n.onRoot()})};typeof KSModelDefinitions!="undefined"&&Array.isArray(KSModelDefinitions)||(KSModelDefinitions=Array());KSModelDefinitions.RosterAdmin=rosterAdminModel;VDSRostersModel=function(){var n=this;PageModel.call(n,{swapElement:"#home-container",modelName:"VDSRosters",ajaxUrl:"/VDSRosters",ajaxParam:"Index",koBindSelector:"#vdsrosters-ko-container"});n.data=new VDSRosterDataModel(n);n.searchDateStart=ko.observable(moment().format("DD/MM/YYYY"));n.searchDateEnd=ko.observable(moment().add(13,"d").format("DD/MM/YYYY"));n.compareData=ko.observable();n.confirmData=new VDSConfirmModel;n.selectedUserId=null;n.addDone(function(){n.applyDTPicker()});n.applyDTPicker=function(){var t={minDate:"-90",dateFormat:"d/m/yy",onSelect:function(){n.update()},beforeShow:n.onShowDatePicker};$("input[name='date-from']").datepicker(t);t.defaultDate="+13";$("input[name='date-to']").datepicker(t)};n.addUnloader(function(){$("input[name='date-to']").datetimepicker("destroy");$("input[name='date-from']").datetimepicker("destroy");$("#vdsrosters-ko-container").hide()});n.onLoadError=function(t){t.status==404?app.raiseError("Roster page not found",null,!0):t.status==403?app.raiseError("Access to roster page forbidden",null,!0):app.raiseError("There was an error loading roster data",t,!1,n.goHome)};n.goHome=function(){location="#"};n.pageLoaded=function(){$("#list-group-user-search-results").on("click",".btn-user-select",n.userSelectClick);setTimeout(function(){$("#vdsrosters-ko-container").visible||$("#vdsrosters-ko-container").fadeIn()},1e3)};n.onShowDatePicker=function(){setTimeout(function(){$("#ui-datepicker-div").position().top==0&&$("body").scrollTo(0,{duration:200})},50)};n.update=function(){var t=moment.utc($("input[name='date-from']")[0].value,"DD/MM/YYYY"),i=moment.utc($("input[name='date-to']")[0].value,"DD/MM/YYYY");t>i&&(i=t);moment.utc($("input[name='date-to']")[0].value,"DD/MM/YYYY");n.data.ajaxSendData={aDContactId:n.selectedUserId,startDate:t.toISOString(),finishDate:i.toISOString()};app.toggleNewLoader("Loading roster data");n.data.reload()};n.beforeLoad=function(){app.toggleNewLoader("Loading")};n.addDone(function(){app.updateBreadCrumb(Array(n.modelName));app.hideSplash()});sammy.get("#VDSRosters",function(){app.navigate(n.modelName);n.load();"onRoot"in n&&n.onRoot()});n.back=function(){history.back()};n.compareClick=function(t){var i=$("#modalCompareDays");n.confirmData.oldShiftCode(t.oldShiftCode());n.confirmData.shiftCode(t.shiftCode());n.confirmData.shiftDate(t.shiftDate());n.confirmData.shiftState(t.shiftState());n.confirmData.isRelief(t.isRelief());n.compareData(t);i.modal()};n.sendConfirm=function(t){if(t.reason()=="Other"){if(!t.reasonOther()||t.reasonOther()==""||t.reasonOther().length<=20){app.raiseError("Please enter a valid reason of more than 20 characters",null,!1);return}t.reason(t.reasonOther())}$("#pop-up-confirm").show();n.apiRequest("post",null,t,"onSendConfirm","api/VDSRosters/confirm")};n.onSendConfirmSuccess=function(){app.toggleNewLoader("Loading roster data");n.data.reload();var t=$("#modalCompareDays");t.modal("hide");$("#pop-up-confirm").hide()};n.onSendConfirmError=function(n){$("#pop-up-confirm").hide();app.raiseError("Error processing accept/decline request",n,!1);var t=$("#modalCompareDays");t.modal("hide")};n.codeLabelClick=function(n){if(typeof n.runsheet=="object"){var t=$("#popUpRunsheet"+n.runsheet.id()+" > div");$("#popUpRunsheet"+n.runsheet.id()).show();t.css({top:($(window).outerHeight()-t.outerHeight())/2})}};n.btnCloseRunsheetClick=function(n){$("#popUpRunsheet"+n.runsheet.id()).hide()};n.userSelectClick=function(t){n.selectedUserId=t.target.getAttribute("data-user-id");n.data.ajaxSendData={aDContactId:n.selectedUserId,startDate:n.data.ajaxSendData.startDate,finishDate:n.data.ajaxSendData.finishDate};app.toggleNewLoader("Loading roster data");n.data.reload();$("#list-group-user-search-results").empty()};n.userSearchKeyUp=function(){var n=$("#userSearch"),i=$("#userSearch").val(),t=$("#list-group-user-search-results").first();i.length>1?n.data("searching")?n.data("nextSearch",i):(n.data("searching",!0),n.data("lastSearch",i),$.ajax({url:"api/autocomplete/user?search="+i}).done(function(i){t.empty();n.data("searching",!1);i.forEach(function(n){t.append('<div class="list-group-item"><div><button class="btn btn-success btn-user-select" data-user-id="'+n.id+'"><span class="glyphicon glyphicon-ok"><\/span> Select<\/button> <span>'+n.name+"<\/span><\/div><\/div>")})}).fail(function(){n.data("searching",!1);t.empty();t.append('<div class="list-group-item"><div><span>There was an error searching for users<\/span><\/div><\/div>')})):(n.data("searching",!1),t.empty())}};VDSRosterDataModel=function(n){var t=this;ObservableDataModel.call(t,{isArray:!1,koBindSelector:"#vdsrosters-ko-data-container",modelName:"VDSRoster",bindOnLoad:!1,ajaxSendData:{aDContactId:n.selectedUserId,startDate:null,finishDate:null},ajaxType:"POST"},n);t.dayIsInSearchRange=function(n){var r=moment.utc(t.current().searchStartDate()),u=moment.utc(t.current().searchFinishDate()),i=moment.utc(n.shiftDate());return r<=i&&u>=i};t.onReloadSuccess=function(){setTimeout(app.toggleNewLoader,250);$("#vdsrosters-ko-container").delay(250).fadeIn()};t.onReloadError=function(n){t.onLoadError(n)};t.onLoadSuccess=function(){setTimeout(app.toggleNewLoader,250);$("#vdsrosters-ko-container").delay(250).fadeIn()};t.onLoadError=function(n){app.toggleNewLoader();n.status==404?(app.raiseError("User does not exist in database",null,!1),app.hidePageSplash()):n.status==403?(app.raiseError("Access to roster information forbidden",null,!1),app.toggleNewLoader()):(app.raiseError("There was an error loading roster data",n,!1,t.goHome),app.toggleNewLoader())};t.goHome=function(){location="#"};t.getLinkFirstDay=function(n){return n.rosterDays()[0].shiftDate};t.getLinkLastDay=function(n){return n.rosterDays()[13].shiftDate}};VDSConfirmModel=function(){this.oldShiftCode=ko.observable();this.shiftCode=ko.observable();this.shiftDate=ko.observable();this.shiftState=ko.observable();this.confirm=ko.observable("true");this.reason=ko.observable();this.reasonOther=ko.observable();this.isRelief=ko.observable()};typeof KSModelDefinitions!="undefined"&&Array.isArray(KSModelDefinitions)||(KSModelDefinitions=Array());KSModelDefinitions.VDSRosters=VDSRostersModel