AUI({lang:"nb-NO"}).add("ntnu-viewer-calevent-module",function(A){var unHTML=function(value){var div=document.createElement("div");div.innerHTML=value;return div.textContent};function toText(input){var e=document.createElement("div");e.innerHTML=input;return e.innerText}A.namespace("NTNU");A.NTNU.EventViewer=function(config){A.NTNU.EventViewer.superclass.constructor.apply(this,arguments)};var EV=A.NTNU.EventViewer,widget=A.Widget;EV.NAME="EventViewer";EV.ATTRS={serviceUrl:{value:""},eventId:{value:""},
icalUrl:{value:""},modalNode:{value:null},modal:{value:null},event:{value:null,setter:function(value){return value}}};EV.DATEFORMAT="%d %b %Y";var currentPage=window.location.href;EV.TEMPLATES={event:'\x3cdiv class\x3d"d-flex justify-content-between flex-column flex-lg-row align-items-start"\x3e'+'\x3cdiv class\x3d"singleEvent mr-auto"\x3e'+"\x3ch1\x3e{title}\x3c/h1\x3e"+'\x3cdiv class\x3d"eventBody"\x3e{message}\x3c/div\x3e'+'\x3cdiv class\x3d"tags"\x3e\x3cspan class\x3d"sprite-tags-black"\x3e\x3c/span\x3e{tags}\x3c/div\x3e\x3chr/\x3e'+
'\x3cdiv class\x3d"channels"\x3e{feedNames}\x3c/div\x3e'+"\x3c/div\x3e"+'\x3cdiv class\x3d"metaData"\x3e'+'\x3cdiv class\x3d"grey"\x3e'+'\x3cspan class\x3d"starts"\x3e{fromTime}\x3c/span\x3e'+'\x3cspan class\x3d"ends"\x3e{toTime}\x3c/span\x3e'+'\x3cdiv class\x3d"locationWrap"\x3e\x3cspan class\x3d"locationLabel"\x3e'+"Hvor:"+'\x3c/span\x3e\x3cspan class\x3d"location"\x3e {location}\x3c/span\x3e\x3c/div\x3e'+'\x3cspan class\x3d"icalLabel hidden-print"\x3e\x3ca class\x3d"ntnu-ibtn" href\x3d"{icalurl}{entryUri}"\x3e'+
"Legg til i din kalender"+"\x3c/a\x3e\x3c/span\x3e"+'\x3cspan class\x3d"icalLabel hidden-print"\x3e\x3ca target\x3d"_blank" href\x3d"http://www.google.com/calendar/render?action\x3dTEMPLATE\x26{googleparams}"\x3e'+"Legg til i Google kalender"+"\x3c/a\x3e\x3c/span\x3e"+"\x3c/div\x3e"+'\x3cdiv class\x3d"shareLinks hidden-print"\x3e'+'\x3cspan\x3e\x3ca class\x3d"twitter" role\x3d"button" href\x3d"https://twitter.com/intent/tweet?text\x3d'+document.title+" "+encodeURIComponent(window.location.href)+'\x26source\x3dwebclient"'+
currentPage+'" title\x3d"'+"Del p\u00e5 Twitter"+'"\x3e\x3ci class\x3d"fab fa-fw fa-twitter text-white"\x3e\x3c/i\x3e\x3c/a\x3e\x3c/span\x3e'+'\x3cspan\x3e\x3ca class\x3d"facebook" role\x3d"button" href\x3d"https://www.facebook.com/sharer/sharer.php?u\x3d'+encodeURIComponent(window.location.href)+"\x26title\x3d"+document.title+'" title\x3d"'+"Del p\u00e5 Facebook"+'"\x3e\x3ci class\x3d"fab fa-fw fa-facebook-f text-white"\x3e\x3c/i\x3e\x3c/a\x3e\x3c/span\x3e'+'\x3cspan\x3e\x3ca class\x3d"print" role\x3d"button" href\x3d"javascript:window.print()" title\x3d"'+
"Skriv ut"+'"\x3e\x3ci class\x3d"far fa-fw fa-print text-white"\x3e\x3c/i\x3e\x3c/a\x3e\x3c/span\x3e'+'\x3cspan\x3e\x3ca class\x3d"email" id\x3d"shareByEmail" role\x3d"button" title\x3d"'+"Del p\u00e5 e-post"+'"\x3e\x3ci class\x3d"far fa-fw fa-envelope text-white"\x3e\x3c/i\x3e\x3c/a\x3e\x3c/span\x3e'+"\x3c/div\x3e"+"\x3c/div\x3e"+"\x3c/div\x3e",location:"{locationName}",locationLink:'\x3ca href\x3d"{locationTarget}"\x3e{locationName}\x3c/a\x3e',tag:'\x3ca class\x3d"navigationTag" href\x3d"javascript:void(0)" data-tag\x3d"{tag}"\x3e\x3cspan class\x3d"tag"\x3e{tag}\x3c/span\x3e\x3c/a\x3e',
channel:'\x3cspan class\x3d"channel"\x3e{channel}\x3c/span\x3e',channelLabel:'\x3cspan class\x3d"channelLabel"\x3e'+"Ogs\u00e5 publisert i Innsida p\u00e5:"+"\x3c/span\x3e\x3cbr/\x3e"};A.extend(EV,widget,{renderUI:function(){A.log("Rendering eventviewer");A.log("ServiceUrl: "+this.get("serviceUrl"))},bindUI:function(){this.after("eventChange",this.buildEventGui,this);this.get("contentBox").delegate("click",this.navigateToTagView,".navigationTag",this)},syncUI:function(){var instance=this;var url=
this.get("serviceUrl");var cfg={method:"POST",data:{eventId:this.get("eventId")},dataType:"json",headers:{charset:"utf-8"},timeout:15E3,on:{start:function(){},success:function(){var responseData=this.get("responseData");A.one(".eventViewerError").hide();if(responseData)if(responseData.error&&responseData.error=="404")A.one(".eventViewerError").text("Fant ikke kalenderhendelse for denne IDen").show();else instance.set("event",responseData);else A.one(".eventViewerError").show()},failure:function(event){A.one(".eventViewerError").text("Tjeneren responderte ikke innenfor angitt tid. Pr\u00f8v igjen og hvis problemet vedvarer kontakt orakeltjenesten.").show();
A.log("failure")},end:function(){A.log("end io request")}}};A.io.request(url,cfg)},successhandler:function(event,id,response){this.set("event",response.response)},navigateToTagView:function(event){var tag=event.currentTarget;var tagString=tag.getAttribute("data-tag").trim();window.location.href=window.location.protocol+"//"+window.location.host+"/kalender#tag\x3d"+encodeURI(tagString)},buildEventGui:function(event){var eventData=event.newVal,location="",eventDomString;if(eventData.locationName)if(eventData.locationTarget&&
eventData.locationTarget.substring(0,4).toLowerCase()==="http")location=A.substitute(EV.TEMPLATES.locationLink,eventData);else location=A.substitute(EV.TEMPLATES.location,eventData);eventData.location=location;eventData.icalurl=this.get("icalUrl");var params=[];params.push("text\x3d"+unHTML(eventData.title));params.push("dates\x3d"+moment.utc(eventData.fromTime).format("YYYYMMDD[T]HHmmss[Z]")+(eventData.toTime!=undefined?"/"+moment.utc(eventData.toTime).format("YYYYMMDD[T]HHmmss[Z]"):""));params.push("location\x3d"+
toText(eventData.location));eventData.googleparams=params.join("\x26");eventDomString=A.substitute(EV.TEMPLATES.event,eventData,function(key,value){if(key=="title"){A.one("title").text(unHTML(value)+" - NTNU");var breadcrumbNode=A.one("h1.ntnucrumb \x3e a");if(breadcrumbNode)breadcrumbNode.text(value)}if(key=="fromTime"&&value>0)return'\x3cdiv\x3e\x3cspan class\x3d"fromTimeLabel"\x3e'+"N\u00e5r"+"\x3c/span\x3e"+'\x3cspan class\x3d"fromTime"\x3e'+moment(value).format("ll")+"\x3c/span\x3e\x3c/div\x3e"+
'\x3cdiv\x3e\x3cspan class\x3d"fromTimeLabel"\x3e'+"Tidspunkt"+"\x3c/span\x3e"+'\x3cspan class\x3d"fromTime"\x3e'+moment(value).format("LT")+"\x3c/span\x3e\x3c/div\x3e";else if(key=="toTime")if(value>0)return'\x3cdiv\x3e\x3cspan class\x3d"fromTimeLabel"\x3e'+"Slutter"+"\x3c/span\x3e"+'\x3cspan class\x3d"fromTime"\x3e'+moment(value).format("ll")+"\x3c/span\x3e\x3c/div\x3e"+'\x3cdiv\x3e\x3cspan class\x3d"fromTimeLabel"\x3e'+"Tidspunkt"+"\x3c/span\x3e"+'\x3cspan class\x3d"fromTime"\x3e'+moment(value).format("LT")+
"\x3c/span\x3e\x3c/div\x3e";else return"";else if(key==="tags"){var tags="";A.Array.each(value,function(tag){tags+=A.substitute(EV.TEMPLATES.tag,{tag:tag})});return tags}else if(key==="feedNames"){var channels=EV.TEMPLATES.channelLabel;A.Array.each(value,function(channel){channels+=A.substitute(EV.TEMPLATES.channel,{channel:channel})});return channels}return value});this.get("contentBox").append(A.Node.create(eventDomString))},destructor:function(){}});A.namespace("NTNU.plugin").ShareByEmail=ShareByEmail;
function ShareByEmail(config){ShareByEmail.superclass.constructor.apply(this,arguments)}ShareByEmail.NAME="ShareByEmail";ShareByEmail.NS="ShareByEmail";ShareByEmail.ATTRS={eventLink:{value:""},eventTitle:{value:""},sendEmailUrl:{value:""},dataModel:{value:{},setter:function(data){this.value=data}}};A.extend(ShareByEmail,A.Plugin.Base,{initializer:function(){var hostNode=this.get("host");var windowWidth=$(window).width();var defaultModalSize=650;if(windowWidth>0&&windowWidth<defaultModalSize)defaultModalSize=
windowWidth;var outer=this;this.modal=new A.Modal({headerContent:"\x3cspan\x3e"+"Del p\u00e5 e-post"+"\x3c/span\x3e",centered:true,modal:true,render:hostNode,width:defaultModalSize,id:"shareByEmailModalWindow",zIndex:1E3,destroyOnHide:true});var template=A.Handlebars.compile(A.one("#share-by-email-template").getHTML());this.modal.set("bodyContent",template({eventTitle:unHTML(document.title),eventSender:"Din e-postadresse",eventReceivers:"Send e-post til",eventHelp:"bruk komma mellom dersom det er mer enn en mottaker",
eventComment:"Din kommentar (Valgfri)",eventSend:"Send e-post"}));this.modal.render();this.eventHandle=hostNode.delegate("click",this.sendEmail,"#shareEventSendEmail",this);this.modal.on("destroy",function(){outer.get("host").unplug(ShareByEmail);outer.eventHandle.detach()})},sendEmail:function(){this.hideErrorMessage();var self=this;var receiverEmails=A.one("#shareEventReceiverEmails").val();var senderEmail=A.one("#shareEventSenderEmail").val();var comment=A.one("#emailComment").val();self.errorMessage=
"";var re=/\S+@\S+\.\S+/;var receiverValid=true;var senderValid=true;if(!receiverEmails||receiverEmails.length<6||!re.test(receiverEmails))receiverValid=false;if(!senderEmail||senderEmail.length<6||!re.test(senderEmail))senderValid=false;if(!receiverValid&&!senderValid)self.errorMessage+="Mottaker e-postadressen(e) og din e-postadresse er ugyldig. ";else if(!receiverValid)self.errorMessage+="Mottaker e-postadressen(e) er ugyldig. ";else if(!senderValid)self.errorMessage+="Din e-postadressen er ugyldig. ";
if(this.errorMesage||this.errorMessage.length>0)this.showErrorMessage(this.errorMessage);else{var self=this;A.io.request(this.get("sendEmailUrl"),{method:"POST",data:{link:this.get("eventLink"),title:this.get("eventTitle"),receivers:receiverEmails,sender:senderEmail,comment:comment},on:{success:function(event,id,resp){self.modal.destroy()},failure:function(event,id,resp){self.errorMessage="Det oppstod en feil, vennligst pr\u00f8v igjen senere.";self.showErrorMessage(resp.message)}}})}},showErrorMessage:function(errorMessage){var errorMessageNode=
A.one(".errorMessage");errorMessageNode.text(errorMessage);errorMessageNode.removeClass("hide")},hideErrorMessage:function(){var errorMessageNode=A.one(".errorMessage");errorMessageNode.addClass("hide")}})},"1.0.0",{requires:["aui-node","aui-modal","widget","aui-io","substitute","aui-io-deprecated","json-parse","handlebars"]});
AUI().add("ntnu-calevent-filter-widget",function(A){function CalEventFilter(config){CalEventFilter.superclass.constructor.apply(this,arguments)}var CEF=CalEventFilter,widget=A.Widget,historyHash=new A.HistoryHash,history=historyHash;CEF.NAME="CalEventFilter";CEF.ATTRS={form:{value:""},categories:{value:{},setter:function(value){A.log(value);return value}},stateObject:{value:{},setter:function(history){var stateObject={};stateObject.state=[];var categories=this.get("categories");if(history.date)stateObject.date=
moment(history.date).format("YYYY-MM-DD");if(history.tag||history.tag!=null){console.log("setting stateObj tag \x3d "+history.tag);stateObject.tag=decodeURI(history.tag)}delete history.tag;delete history.date;for(state in history){var label=undefined;A.Array.each(categories,function(category){if(category.id==state)label=category.name});if(label!=undefined)stateObject.state.push({value:state,checked:!!(history[state]==1),label:label})}return stateObject}},currentDate:{value:moment().format("YYYY-MM-DD")},
calendar:{value:null,setter:function(value){return value}},resultWidgetLoaded:{value:false}};CEF.TEMPLATES={heading:'\x3cdiv class\x3d"filterHeading"\x3e\x3cp\x3eType \x3c/p\x3e\x3c/div\x3e',calendar:'\x3cdiv class\x3d"calendar"\x3e\x3c/div\x3e',calendarinfo:'\x3cp class\x3d"calenderainfo"\x3e'+"Viser fra dato og frem i tid"+"\x3c/p\x3e",testCalendar:'\x3cdiv id\x3d"zebraCalendar"\x3e\x3cdiv id\x3d"calendarInstance"\x3e\x3c/div\x3e\x3c/div\x3e'};CEF.LANG={};A.extend(CEF,widget,{renderUI:function(){this.get("contentBox").append(A.Node.create(CEF.TEMPLATES.heading));
this.get("form").show();this.get("contentBox").append(this.get("form"));this.get("contentBox").append(A.Node.create(CEF.TEMPLATES.calendar));this.get("contentBox").append(A.Node.create(CEF.TEMPLATES.testCalendar));A.all(".circleLoader").removeClass("circleLoader");A.one(".footerText").show();this.get("contentBox").append(A.Node.create(CEF.TEMPLATES.calendarinfo))},bindUI:function(){this.get("contentBox").delegate("change",function(event){var states=this.get("stateObject");states.state=[];this.get("form").all("input").each(function(checkBox){var state=
{value:checkBox.get("value"),checked:checkBox.get("checked"),label:checkBox.ancestor(".filter").one("label").text()};states.state.push(state);states.tag=null});this.set("stateObject",this.convertFromStateToHistory(states));this.doQuery("checkBoxChange")},'input[type\x3d"checkbox"]',this);A.on("ntnu-calevent-result-loaded",function(){this.createDatePicker();this.after("calendarChange",function(event){if(event.newVal!=null&&A.one(".dp_selected"))A.one(".dp_selected").simulate("click")});this.doQuery("ntnu-calevent-result-loaded-query")},
this);A.on("ntnu-calevent-result-loaded",function(){this.set("resultWidgetLoaded",true);A.log("caleventResultLoaded")},this)},syncUI:function(){this.setSelectedFiltersInGUI(this.get("stateObject"));if(this.get("resultWidgetLoaded")==true){this.createDatePicker();this.after("calendarChange",function(event){if(event.newVal!=null&&A.one(".dp_selected"))A.one(".dp_selected").simulate("click")});this.doQuery("sync")}},getState:function(){return this.get("stateObject")},setState:function(state){this.setSelectedFiltersInGUI(state);
state.date=moment(this.get("currentDate")).format("YYYY-MM-DD");this.set("stateObject",this.convertFromStateToHistory(state));this.doQuery("setState")},doQuery:function(caller){A.log(caller);historyHash.add(this.convertFromStateToHistory(this.get("stateObject")));var stateX=this.get("stateObject");var query={query:{filter:this.get("stateObject").state?this.get("stateObject").state:{},date:this.get("stateObject").date?this.get("stateObject").date:moment().format("YYYY-MM-DD"),tag:this.get("stateObject").tag}};
this.fire("CalEventFilterStateChange",query)},convertFromStateToHistory:function(stateObject){var historyObject={};A.Array.each(stateObject.state,function(state){historyObject[state.value]=state.checked===true?1:0});if(stateObject.date)historyObject.date=moment(stateObject.date).format("YYYY-MM-DD");if(stateObject.tag)historyObject.tag=encodeURI(stateObject.tag);if(stateObject.tag&&stateObject.tag.length==0||stateObject.tag==null)historyObject.tag=null;return historyObject},setSelectedFiltersInGUI:function(stateObject){this.get("form").all("input").each(function(checkBox){checkBox.set("checked",
false);A.Array.each(stateObject.state,function(state){if(checkBox.get("value")==state.value&&state.checked==true)checkBox.set("checked",true)})})},createDatePicker:function(){var scriptUrls=["/calevent-portlet/js/lib/Zebra_Datepicker-master/public/javascript/zebra_datepicker.src.js"];var widgetInstance=this;var isNorwegian=A.one("html").getAttribute("lang")==="no";var initializing=true;var zebraPickerConfig={always_visible:A.one("#calendarInstance"),show_clear_date:"FALSE",readonly_element:false,
onSelect:function(date,date2,jsDateObject){var currentHistory=historyHash.get();currentHistory.date=jsDateObject;widgetInstance.set("currentDate",jsDateObject);widgetInstance.set("stateObject",currentHistory);if(!initializing)widgetInstance.doQuery("zebra")}};if(history.date&&history.date.length>0)zebraPickerConfig.start_date=moment(history.date).format("YYYY-MM-DD");if(isNorwegian){zebraPickerConfig.days=["S\u00f8ndag","Mandag","Tirsdag","Onsdag","Torsdag","Fredag","L\u00f8rdag"];zebraPickerConfig.months=
["Januar","Februar","Mars","April","Mai","Juni","Juli","August","September","Oktober","November","Desember"]}$("#zebraCalendar").Zebra_DatePicker(zebraPickerConfig);var calendarInstance=$("#zebraCalendar").data("Zebra_DatePicker");widgetInstance.set("calendar",calendarInstance);initializing=false}});A.namespace("NTNU").CalEventFilter=CalEventFilter},"1.0.0",{requires:["widget","substitute","aui-node","aui-calendar","history","history-hash","node-event-simulate","io"]});
AUI().add("ntnu-calevent-result-widget",function(A){function CaleventResultWidget(config){CaleventResultWidget.superclass.constructor.apply(this,arguments)}CaleventResultWidget.NAME="CaleventResultWidget";CaleventResultWidget.ATTRS={resourceUrl:{value:""},jsonData:{value:[]},filter:{value:""},filterObject:{value:{}},page:{value:0},NS:{value:""},categories:{value:{}}};var CRW=CaleventResultWidget;CRW.ICONLINK='\x3ca href\x3d"{url}" class\x3d""\x3e\x3cimg src\x3d"{icon}"/\x3e\x3c/a\x3e';CRW.LINK='\x3ca href\x3d"{url}"\x3e{text}\x3c/a\x3e';
CRW.IMGBASEURL=window.location.origin+"/img/";CRW.MULTIMEDIAURL=window.location.origin;CRW.TIMETABLEURL=window.location.origin;CRW.CALEVENTBASEURL="caleventportlet.caleventbaseurl";CRW.TEMPLATES={wrapper:'\x3cdiv class\x3d"filedWrap"\x3e\x3c/div\x3e',input:'\x3cinput placeholder\x3d"Add tag" name\x3d"tagInput" id\x3d"{NS}ntnuTagWidget" type\x3d"text"/\x3e',hiddenInput:'\x3cinput type\x3d"hidden" name\x3d"tagInputList" value\x3d"{tagsCSV}"/\x3e',event:'\x3cdiv class\x3d"event"\x3e'+'\x3ca href\x3d"{entryUri}"\x3e\x3ch2 class\x3d"eventLabel"\x3e{title}\x3c/h2\x3e\x3c/a\x3e'+
"\x3cspan\x3e{fromTime} {toTime}\x3c/span\x3e"+'\x3cspan class\x3d"location"\x3e'+'\x3cspan\x3e{bullet}\x3ca href\x3d"{locationTarget}"\x3e{locationName}\x3c/a\x3e\x3c/span\x3e'+"\x3c/span\x3e"+'\x3cdiv class\x3d"categoryText"\x3e{calEventTypes}\x3c/div\x3e'+'\x3cdiv class\x3d"description"\x3e{message}\x3c/div\x3e'+'\x3cdiv class\x3d"clear"\x3e\x3c/div\x3e'+"\x3c/div\x3e",eventDay:"\x3cli\x3e"+'\x3cdiv class\x3d"eventDayWrapper border-top pt-3"\x3e'+'\x3cdiv class\x3d"dateBox p-2 {eventTypeCss}"\x3e'+
'\x3cdiv class\x3d"dateLabel"\x3e{fromDateDay}\x3c/div\x3e'+'\x3cdiv class\x3d"monthLabel"\x3e{fromDateMonth}\x3c/div\x3e'+"\x3c/div\x3e{eventBody}\x3c/div\x3e"+"\x3c/div\x3e"+"\x3c/li\x3e",category:'\x3cspan class\x3d""\x3e\x3ca class\x3d"viewCategory" data-cat-id\x3d"{id}" href\x3d"javascript:void(0)"\x3e{cat}\x3c/a\x3e\x3cspan class\x3d"colorScheeme"\x3e\x3c/span\x3e\x3c/span\x3e',eventList:'\x3cul class\x3d"eventList"\x3e\x3c/ul\x3e',loadMore:'\x3cdiv class\x3d"footer"\x3e\x3ca href\x3d"javascript:void(0);" class\x3d"btn btn-b loadmore shadow" title\x3d"mer"\x3e'+
"mer"+"\x3c/a\x3e\x3c/div\x3e",readMore:'\x3ca class\x3d"readMore" href\x3d"javascript:void(0);"\x3e'+"Les mer"+"\x3c/a\x3e",readLess:'\x3ca class\x3d"readLess" href\x3d"javascript:void(0);"\x3e'+"Les mindre"+"\x3c/a\x3e",emptyView:"\x3cli\x3e"+"Det finnes ingen kalenderhendelser for den angitte datoen eller valgte type"+"\x3c/li\x3e"};A.extend(CaleventResultWidget,A.Widget,{renderUI:function(){var cBox=this.get("contentBox");cBox.append(A.Node.create(CRW.TEMPLATES.eventList));cBox.append(A.Node.create(CRW.TEMPLATES.loadMore))},
bindUI:function(){this.after("jsonDataChange",this.populateCaleventList,this);this.get("filter").on("CalEventFilterStateChange",function(event){this.set("filterObject",event.query);this.set("page",0);this.loadData(event.query,this.get("page"),event.query.tag)},this);this.get("contentBox").delegate("click",function(event){var clickNode=event.currentTarget;var categoryID=clickNode.getAttribute("data-cat-id");this.get("filter").setState({state:[{checked:true,label:this.getCategoryName(categoryID).name,
value:categoryID}]})},".viewCategory",this);this.get("contentBox").delegate("click",this.getMoreEvents,".loadmore",this);this.get("contentBox").delegate("click",function(event){var clickNode=event.currentTarget,parent=clickNode.ancestor(".eventWrapper"),message=parent.one(".message"),summary=parent.one(".summary");message.toggle();summary.toggle();if(message.hasClass("hide"))message.all("img").removeAttribute("style");else message.all("img").each(function(image){image.setAttribute("style",image.getAttribute("data-styles"))});
if(summary.hasClass("hide"))summary.all("img").removeAttribute("style");else summary.all("img").each(function(image){image.setAttribute("style",image.getAttribute("data-styles"))})},"a.readMore, a.readLess")},syncUI:function(){A.fire("ntnu-calevent-result-loaded")},getCategoryName:function(id){var categoryArray=this.get("categories");for(var i=0;i<categoryArray.length;i++){var category=categoryArray[i];if(category.id==id)return category}return{}},convertFromHistoryToState:function(history){var stateObject=
{};stateObject.state=[];if(history.date)stateObject.date=moment(history.date).format("YYYY-MM-DD");for(state in history)stateObject.state.push({value:history[state]});if(stateObject.date&&stateObject.date.length>0||stateObject.state.length>0)return stateObject;return{}},createQueryString:function(queryObject,page,tag){var queryString="\x26page\x3d"+page;if(tag&&tag.length>0)queryString+="\x26tag\x3d"+tag;A.Array.each(queryObject.filter,function(state,index){if(state.checked)queryString+="\x26filterValue\x3d"+
state.value});if(queryObject.date)queryString+="\x26date\x3d"+A.DataType.Date.format(queryObject.date,{format:"%Y-%m-%d"});return queryString},getNsId:function(id){return"#"+this.get("NS")+id},getMoreEvents:function(){this.set("page",this.get("page")+1);this.loadData(this.get("filterObject"),this.get("page"))},loadData:function(queryObject,page,tag){var queryString=this.createQueryString(queryObject,page);if(tag&&tag.length>0)queryString+="\x26tag\x3d"+tag;var instance=this;this.get("contentBox").one(".eventList").addClass("bigLoader");
var url=this.get("resourceUrl");var cfg={method:"POST",dataType:"json",headers:{charset:"utf-8"},data:{channel:"urn:uuid:2ed06db3-09df-3e29-9f22-78876c8ccac2",stamp:(new Date).getTime()},timeout:15E3,on:{start:function(){},success:function(){var responseData=this.get("responseData");instance.set("jsonData",responseData);instance.get("contentBox").one(".eventList").removeClass("bigLoader")},failure:function(event){A.log("failure");A.log("Could not retrieve data: "+event.error.message);instance.get("contentBox").one(".eventList").removeClass("bigLoader");
A.one(".eventViewerError").text("Tjeneren responderte ikke innenfor angitt tid. Pr\u00f8v igjen og hvis problemet vedvarer kontakt orakeltjenesten.").show()},end:function(){A.log("end io request")}}};A.log("Querystring \x3d "+queryString);A.io.request(url+queryString,cfg)},getStyleObject:function(node){var styleString=node.getAttribute("style");var stylesArr=styleString.split(";");var object={};A.Array.each(stylesArr,function(style){if(style.length>0){var keyVal=style.split(":");object[A.Lang.trim(keyVal[0])]=
A.Lang.trim(keyVal[1])}});return object},populateCaleventList:function(event){var cBox=this.get("contentBox");cBox.one(".eventList").empty();cBox.one(".eventList").addClass("circleLoader");var instance=this;if(A.Lang.isArray(event.newVal)&&event.newVal.length>0)A.Array.each(event.newVal,function(calItem,index){var eventTypeCss="";var eventDataString=A.substitute(CaleventResultWidget.TEMPLATES.event,calItem,function(key,value){if(value===null||value==="null")value="";if(key=="bullet"){if(calItem.locationName&&
calItem.locationName.length>0)return"\x26bull; ";return""}if(key=="fromTime"&&value>0)return" "+A.DataType.Date.format(new Date(value),{format:"%d. %b %R"});if(key=="toTime"&&value>0)return" \x26mdash; "+A.DataType.Date.format(new Date(value),{format:"%d. %b %R"});if(key==="entryUri")return"/kalender/detaljer/"+"-/event/"+value.substr(9,value.length);if(key=="calEventTypes"){var catString="";var calTypeArrayLength=value.length;A.Array.each(value,function(cat,index){var id=parseInt(cat,10);var catObject=
instance.getCategoryName(id);cat=catObject.name;if(index+1<calTypeArrayLength)cat=cat+", ";var catClass="";if(cat)catClass=cat.split(" ").join("").toLowerCase();catString+=A.substitute(CRW.TEMPLATES.category,{id:id,cat:cat,catClass:catClass});eventTypeCss=catClass},this);return catString}if(key=="message"&&value&&value.length){var messageNode=A.Node.create('\x3cdiv class\x3d"message hide"\x3e'+value+"\x3c/div\x3e");var summary=messageNode.get("text");var end=Math.min(250,summary.length);var summaryImage=
messageNode.one("img");var summaryImageString="";if(summaryImage)summaryImageString=summaryImage.get("outerHTML");var summaryNode=A.Node.create('\x3cdiv class\x3d"summary"\x3e'+summaryImageString+summary.substring(0,end)+(end==250?" [\u2026] ":"")+"\x3c/div\x3e");if(summaryNode.one("img"))summaryNode.one("img").addClass("summaryImage").setAttribute("data-styles",summaryNode.one("img").getAttribute("style")).removeAttribute("style");messageNode.all("img").each(function(image){image.setAttribute("data-styles",
image.getAttribute("style")).removeAttribute("style")});var wrapperNode=A.Node.create('\x3cdiv class\x3d"eventWrapper"\x3e\x3c/div\x3e');wrapperNode.append(summaryNode);wrapperNode.append(messageNode);return wrapperNode.get("outerHTML")}return value},this);var completeEvent=A.substitute(CRW.TEMPLATES.eventDay,{eventBody:eventDataString,fromDateDay:A.DataType.Date.format(new Date(calItem.fromTime),{format:"%d"}),fromDateMonth:A.DataType.Date.format(new Date(calItem.fromTime),{format:"%b"}),eventTypeCss:eventTypeCss});
cBox.one(".eventList").append(completeEvent)},this);else cBox.one(".eventList").append(A.Node.create(CRW.TEMPLATES.emptyView))}});A.namespace("NTNU").CaleventResultWidget=CaleventResultWidget},"1.0.0",{requires:["aui-node","widget","substitute","aui-io-request-deprecated","datatype-date","io","json-parse","history"]});
AUI({lang:"nb-NO"}).add("ntnu-mini-calevent-edit",function(A){function MiniCalEventEdit(config){MiniCalEventEdit.superclass.constructor.apply(this,arguments)}MiniCalEventEdit.NAME="MiniCalEventEdit";MiniCalEventEdit.ATTRS={form:{value:""},wrapper:{value:""},tagInputList:{value:""},NS:{value:""},tags:{value:[],setter:function(value){function filter(value){value=value.replace('""','"');value=value.replace("'","_");if(value.indexOf('""')!=-1||value.indexOf("'")!=-1)filter(value);return value}return filter(value)}},
allChannelsUrl:{value:""},categories:{value:{},setter:function(value){A.log("We got categories");A.log(value);return value}},allChannels:{value:[],setter:function(value){var normalizedArr={channels:[]};A.Array.each(value,function(channel){if(channel.internal===true){var miniChannel={uri:channel.uri,name:channel.name,description:channel.description};normalizedArr.channels.push(miniChannel)}});A.log("Return array::");A.log(normalizedArr);return normalizedArr}}};var MCE=MiniCalEventEdit;MCE.TEMPLATES=
{selectedChannel:'\x3cdiv class\x3d"selectedChannel btn btn-outline-success btn-sm mr-2 mb-2" data-channel-uri\x3d"{uri}"\x3e\x3cinput type\x3d"hidden" name\x3d"channel" value\x3d"{uri}|{name}" /\x3e\x3cspan class\x3d"name"\x3e{name}\x3c/span\x3e\x3cspan\x3e\x3ca href\x3d"javascript:void(0);" class\x3d"removeChannelItem fas fa-times ml-2 text-white" title\x3d"remove"\x3e\x3c/a\x3e\x3c/span\x3e\x3c/div\x3e'};A.extend(MCE,A.Base,{initializer:function(cfg){this.addEventHandlers();this.fire("jQueryLoaded");
this.loadChannelData();A.log(this.get("categories"));var messageTags=new A.NTNU.MessageTags({chosenTags:this.get("tagInputList"),NS:this.get("NS"),tags:this.get("tags")});messageTags.render(this.getNsId("messageTags"))},destructor:function(){},registerAutoComplete:function(contentBox,inputNode,dataSource){var myDataSource=new A.DataSource.Local({source:dataSource.channels,matchKey:"name",schema:{resultFields:[{key:"name"},{key:"uri"},{key:"description"}],resultListLocator:"channels"},schemaType:"json"});
var resultAutoComplete=new A.AutoComplete({contentBox:contentBox,source:myDataSource,inputNode:inputNode,resultFilters:["subWordMatch"],resultFormatter:function(query,result){return A.Array.map(result,function(item){return item.raw.name})},resultTextLocator:function(result){return result.name}});resultAutoComplete.on("queryChange",function(event){});resultAutoComplete.on("resultsChange",function(event){});resultAutoComplete.after("select",function(event){A.log(event);this.get("wrapper").one(".chosenChannels").append(A.Node.create(A.substitute(MCE.TEMPLATES.selectedChannel,
event.result.raw)));this.get("wrapper").one(".autoCompleteInput").set("value","")},this);resultAutoComplete.render();var onItemSelect=function(event){A.log(event)};resultAutoComplete.on("itemSelect",onItemSelect)},loadChannelData:function(){var context=this;var url=this.get("allChannelsUrl"),myDataSource=new A.DataSource.IO({source:url}),myCallback={success:function(e){var parsedJsonResponse=A.JSON.parse(e.response.results[0].response);context.set("allChannels",parsedJsonResponse)},failure:function(e){A.log("Could not retrieve data: "+
e.error.message)}};myDataSource.sendRequest({callback:myCallback,cfg:{method:"post"}})},addEventHandlers:function(){var selectID=this.getNsId("eventType");var formId=this.getNsId("miniEventCalenderEditForm");var selectName=this.get("NS")+"eventType";this.on("jQueryLoaded",function(){var select=jQuery(formId+" "+selectID);select.attr("data-placeholder","Velg type aktivitet");select.attr("multiple","multiple");select.attr("name",selectName);select.find('option[value\x3d"-1"]').remove();select.addClass("chzn-select")},
this);this.after("allChannelsChange",function(event){A.log("allChannelsChange");this.registerAutoComplete(this.get("wrapper").one(".autocomplete"),this.get("wrapper").one(".autoCompleteInput"),event.newVal)},this);this.get("wrapper").delegate("click",function(event){var clickNode=event.currentTarget;clickNode.ancestor(".selectedChannel").remove()},".removeChannelItem",this)},getNsId:function(id){return"#"+this.get("NS")+id}});A.namespace("NTNU").MiniCalEventEdit=MiniCalEventEdit;var MessageTags=function(config){MessageTags.superclass.constructor.apply(this,
arguments)};var MT=MessageTags;MT.NAME="MessageTags";MT.ATTRS={tags:{value:[],setter:function(value){try{return A.JSON.parse(value)}catch(err){value=value.replace(/\+/g,"").replace(/\\+/g,"").replace(/['"]+/g,"").replace(/[\[\]']+/g,"");value=value.split(",");value=JSON.stringify(value);return A.JSON.parse(value)}}},chosenTags:{value:[],setter:"_chosenTagsSetter"},newTag:{value:"",setter:"_newTagSetter",validator:"_newTagValidator"},NS:{value:""}};MT.TEMPLATES={wrapper:'\x3cdiv class\x3d"filedWrap"\x3e\x3c/div\x3e',
input:'\x3clabel class\x3d"d-block" for\x3d"{NS}ntnuTagWidget"\x3eTagg: Hent aktiviteter med f\u00f8lgende tagg:\x3c/label\x3e\x3cinput placeholder\x3d"Add tag" name\x3d"tagInput" id\x3d"{NS}ntnuTagWidget" type\x3d"text"/\x3e',hiddenInput:'\x3cinput type\x3d"hidden" data-placeholder\x3d"Legg til tag" name\x3d"tagInputList" value\x3d"{tagsCSV}"/\x3e',tagList:'\x3cdiv class\x3d"tagInputListView"\x3e{tags}\x3c/div\x3e',tag:'\x3cspan class\x3d"tag btn btn-outline-success btn-sm rounded-circle mr-2"\x3e\x3cspan class\x3d"tagLabel"\x3e{tag}\x3c/span\x3e\x3ca class\x3d"deleteTag fas fa-times pl-2 text-muted" href\x3d"javascript:void(0);"\x3e\x3c/a\x3e\x3c/span\x3e'};
A.extend(MT,A.Widget,{renderUI:function(){var wrapper=A.Node.create(MT.TEMPLATES.wrapper);wrapper.append(A.Node.create(A.substitute(MT.TEMPLATES.input,{NS:this.get("NS")})));if(this.get("chosenTags").length>0)wrapper.append(A.Node.create(A.substitute(MT.TEMPLATES.tagList,{tags:this.populateTagList(this.get("chosenTags"))})));else wrapper.append(A.Node.create(A.substitute(MT.TEMPLATES.tagList,{tags:""})));wrapper.append(A.Node.create(A.substitute(MT.TEMPLATES.hiddenInput,{tagsCSV:this.get("chosenTags")})));
this.get("contentBox").append(wrapper);var scriptUrls=["https://code.jquery.com/ui/1.12.1/jquery-ui.min.js"];var availableTags=this.get("tags");var widgetTagId=this.getNsId("ntnuTagWidget");var selected=false;A.Get.script(scriptUrls,{onSuccess:function(){jQuery(widgetTagId).autocomplete({source:availableTags,select:function(event,ui){jQuery(widgetTagId).val("");A.log("select auto tag");selected=true},change:function(event){},close:function(event,ui){if(selected){jQuery(widgetTagId).val("");selected=
false}}})}})},bindUI:function(){this.after("chosenTagsChange",function(event){this.get("contentBox").one('input[name\x3d"tagInputList"]').val(this.get("chosenTags").join(","))});this.get("contentBox").delegate("click",this.deleteTag,".deleteTag",this);this.get("contentBox").one('input[name\x3d"tagInput"]').on("key",this.addTag,"enter",this);this.after("newTagChange",this.tagUpdate,this)},syncUI:function(){},getNsId:function(id){return"#"+this.get("NS")+id},tagUpdate:function(event){this.get("contentBox").one(".tagInputListView").append(A.Node.create(A.substitute(MT.TEMPLATES.tag,
{tag:event.newVal})));var chosenTagArrray=this.get("chosenTags");chosenTagArrray.push(event.newVal);this.set("chosenTags",chosenTagArrray)},_chosenTagsSetter:function(value){if(A.Lang.isString(value))return value.split(",");else if(A.Lang.trim(value).length>0)return value},_newTagSetter:function(value){return value},_newTagValidator:function(value){if(value&&value.length>0&&value.indexOf("'")===-1&&value.indexOf('"')===-1)return value;else A.log("new tag has been rejected")},populateTagList:function(tags){var listHTML=
"";A.Array.each(tags,function(tag){if(tag.length>0)listHTML+=A.substitute(MT.TEMPLATES.tag,{tag:tag})});return listHTML},addTag:function(event){var inputNode=event.currentTarget;if(inputNode.val().length>0&&inputNode.val().indexOf("'")===-1){var newTag=inputNode.val();newTag=newTag.replace('"','"');this.set("newTag",inputNode.val());inputNode.set("value","")}},deleteTag:function(event){var deleteNode=event.currentTarget;var tagNode=deleteNode.ancestor(".tag");var chosenTagsArr=this.get("chosenTags");
var deleteValue=A.Lang.trim(tagNode.one(".tagLabel").text());var filteredArray=A.Array.filter(chosenTagsArr,function(existingTag){if(deleteValue.toLowerCase()==A.Lang.trim(existingTag).toLowerCase())return false;else return true});this.set("chosenTags",filteredArray);tagNode.remove()}});A.namespace("NTNU").MessageTags=MT},"1.0.0",{requires:["aui-node","base","widget","substitute","event-key","autocomplete","datasource","autocomplete-filters"]});
AUI().add("ntnu-mini-calevent-module",function(A){A.namespace("NTNU");A.NTNU.MiniCalEvent=function(config){A.NTNU.MiniCalEvent.superclass.constructor.apply(this,arguments)};var MCE=A.NTNU.MiniCalEvent,widget=A.Widget;MCE.NAME="MiniCalEvent";MCE.ATTRS={resourceUrl:{value:"",setter:function(value){},validator:function(value){return value}},calEventJson:{value:{},setter:"_calEventJsonSetter",validator:"__calEventJsonValidator"},IdToEventLooockUp:{value:null},dialogNode:{value:""},dialog:{value:""},saveFormresourceUrl:{value:""},
editModeLinkFooter:{value:""},fetchCategoriesUrl:{value:""},categoriesJson:{value:{}},showInOverLay:{value:true,setter:function(value){return value==="true"}},showMore:{value:false,setter:function(value){return value==="true"}},toolTipInstanceArr:{value:[]},NS:{value:""},viewPath:{value:"/web/guest/detaljer/",setter:function(value){if(value.lastIndexOf("/")==value.length-1)return value;else return value+"/"}}};MCE.TEMPLATES={eventWrap:'\x3cli class\x3d"calEvent" data-id\x3d"{id}"\x3e'+'\x3cspan class\x3d"fromDate dateBox d-inline float-left text-white text-center text-uppercase mr-1 p-2"\x3e{fromTime}\x3c/span\x3e'+
'\x3cdiv class\x3d"eventInfo"\x3e'+'\x3cspan class\x3d"title"\x3e\x3ca href\x3d"{entryUri}"\x3e{title}\x3c/a\x3e\x3c/span\x3e'+'\x3cdiv class\x3d"calEventDetails"\x3e'+'\x3cspan class\x3d"fromTime"\x3e\x3c/span\x3e'+'\x3cspan class\x3d"time"\x3e\x3c/span\x3e\x3cspan class\x3d"timeValue mr-1"\x3e{time}\x3c/span\x3e'+'\x3cspan class\x3d"location"\x3e{locationName}\x3c/span\x3e'+"\x3c/div\x3e"+"\x3c/div\x3e"+"\x3c/li\x3e",toolTipWrap:'\x3cdiv class\x3d"toolTipContentWrapper"\x3e{message}\x3c/div\x3e'};
MCE.LANG={};A.extend(MCE,widget,{renderUI:function(){this.get("contentBox").append('\x3cdiv class\x3d"eventContent"\x3e\x3c/div\x3e');this.get("contentBox").append(this.get("editModeLinkFooter"))},bindUI:function(){this.on("ntnu:minicaleventsetting:store",this.settingsChangeHandler,this);this.after("calEventJsonChange",this.buildEvents,this);if(A.one(this.getNsId("editModeLink")))A.one(this.getNsId("editModeLink")).on("click",function(event){var bodyContentNode='\x3cdiv class\x3d"editForm" id\x3d"'+
this.getNsId("editForm")+'"\x3e\x3c/div\x3e';var instance=Liferay.Util.Window.getWindow({dialog:{bodyContent:A.Node.create(bodyContentNode),centered:true,constrain2view:true,destroyOnClose:true,draggable:true,resizable:false,stack:true,title:"Settings",cssClass:"miniCalEventSettings"}}).render(this.get("dialogNode"));this.set("dialog",instance);instance.get("bodyContent").plug(A.Plugin.IO,{uri:event.currentTarget.getAttribute("data-editmodeUrl"),method:"POST"});instance.get("contentBox").delegate("click",
function(event){instance.hide()},".cancel",this);instance.get("contentBox").delegate("click",function(event){var headingNode=this.get("contentBox").ancestor(".miniCalender").one(".miniCalHeading");var form=instance.get("contentBox").one("form");var context=this;var cfg={method:"POST",headers:{"Cache-Control":"no-cache","Pragma":"no-cache"},cache:false,data:{"action":"save"},form:{id:form.guid()},on:{start:function(){A.log("sending request")},success:function(){var newTitle=form.one(".displayName").val();
if(headingNode&&newTitle.length>0)headingNode.text(newTitle);context.loadData();context.set("viewPath",A.one(".viewerPath").get("value"));var formDataConfig={showMore:form.one(".showMore").get("checked"),displayCount:form.one(".displayCount").get("value")};context.fire("ntnu:minicaleventsetting:store",formDataConfig);context.fire("ntnu:minicalevent:close")},end:function(){}}};A.io.request(this.get("saveFormresourceUrl"),cfg)},".submit",this)},this);this.after("showInOverLayChange",function(event){A.log("showInOverLay is changed to:: "+
event.newVal)});this.after("showMoreChange",function(event){A.log("showMore is changed to : "+event.newVal)});this.get("contentBox").delegate("click",this.redirectToViewer,".calEvent",this);this.get("contentBox").delegate("click",this.closeAllToolTips,".calEvent",this);this.on("ntnu:minicalevent:close",function(){this.get("dialog").hide()},this)},syncUI:function(){this.loadData()},destructor:function(){},getNsId:function(id){return"#"+this.get("NS")+id},settingsChangeHandler:function(settings){this.set("showInOverLay",
settings.showInOverLay+"");this.set("showMore",settings.showMore+"");this.loadData()},_calEventJsonSetter:function(value){var normalizedObject=[];A.Array.each(value,function(item){item.time=A.DataType.Date.format(new Date(item.fromTime),{format:"%R"});normalizedObject.push(item)});return normalizedObject},__calEventJsonValidator:function(value){var hasUri=true;A.Array.each(value,function(item){if(!item.entryUri||!A.Lang.isString(item.entryUri)||!item.entryUri.length>10)hasUri=false});if(!A.Lang.isArray(value)&&
hasUri===false){this.showMessage("Det er for \u00f8yeblikket problemer med kalenderdataen.");return false}return true},buildEvents:function(event){var self=this;this.get("contentBox").ancestor(".miniCalender").removeClass("circleLoader");this.get("contentBox").one(".eventContent").empty();this.set("toolTipInstanceArr",[]);var events=event.newVal;var keyArray=[];var valueArray=[];var UL=A.Node.create('\x3cul class\x3d"list-unstyled"\x3e\x3c/ul\x3e');A.Array.each(events,function(event){keyArray.push(event.id);
valueArray.push(event);UL.append(A.substitute(MCE.TEMPLATES.eventWrap,event,function(key,value){if(value===null)return"";if(key=="fromTime"||key=="toTime"){var day=A.DataType.Date.format(new Date(value),{format:"%d"});var month=A.DataType.Date.format(new Date(value),{format:"%b"});return'\x3cspan class\x3d"day"\x3e'+day+'\x3c/span\x3e\x3cspan class\x3d"month"\x3e'+month+"\x3c/span\x3e"}if(key==="entryUri")return self.get("viewPath")+"-/event/"+value.substr(9,value.length);return value}))},this);this.get("contentBox").one(".eventContent").append(UL);
this.set("IdToEventLooockUp",A.Array.hash(keyArray,valueArray))},closeAllToolTips:function(){A.Array.each(this.get("toolTipInstanceArr"),function(toolTipInstance){toolTipInstance.hide()},this)},getContentById:function(node){var eventId=node.getAttribute("data-id");var hash=this.get("IdToEventLooockUp");var fromTime=hash[eventId].fromTime;var toTime=hash[eventId].toTime;if(fromTime&&fromTime>0)fromTime=" "+A.DataType.Date.format(new Date(fromTime),{format:"%d/%m %R"});if(toTime&&toTime>0)toTime=" \x26mdash; "+
A.DataType.Date.format(new Date(toTime),{format:"%d/%m %R"});var location=hash[eventId].locationName;var bubbleContent='\x3cdiv class\x3d"calendarBubbleDate"\x3e'+fromTime+toTime+"\x3c/div\x3e";if(location)bubbleContent+='\x3cdiv class\x3d"calendarBubbleLocation"\x3e'+location+"\x3c/div\x3e";bubbleContent+=hash[eventId].message;return bubbleContent},showMessage:function(message){var contentArea=this.get("contentBox").one(".eventContent");if((!message||message.length==0)&&contentArea.one(".miniCalmsg"))contentArea.one(".miniCalmsg").remove();
else contentArea.append(A.Node.create('\x3cspan class\x3d"miniCalmsg"\x3e\x3c/span\x3e').text(message))},loadData:function(){this.showMessage("");var context=this;var url=this.get("resourceUrl");var cfg={method:"POST",dataType:"json",headers:{charset:"utf-8"},timeout:15E3,on:{start:function(){},success:function(){var responseData=this.get("responseData");if(responseData&&responseData.length>0)context.set("calEventJson",responseData);else context.showMessage("Det er for \u00f8yeblikket ingen aktuelle aktiviteter.");
if(context.get("showMore")){var showMoreLink=A.Node.create('\x3ca class\x3d"moreEvents d-block" href\x3d"'+"/kalender"+'"\x3e'+"Flere arrangement"+"\x3c/a\x3e");context.get("contentBox").one(".eventContent").append(showMoreLink)}},failure:function(event){A.log("failure")},end:function(){A.log("end io request")}}};A.io.request(url,cfg)}})},"1.0.0",{requires:["aui-io-plugin-deprecated","json-parse","json-stringify","aui-node","aui-io","widget","substitute","datatype-date","aui-tooltip","liferay-util-window"]});
