String.prototype.startsWith=function(_1){
return this.length>=_1.length&&this.substr(0,_1.length)==_1;
};
String.prototype.contains=function(_2){
return (this.indexOf(_2)!=-1)?true:false;
};
String.prototype.replaceString=function(_3,_4){
var _5=this;
while(_5.indexOf(_3)!=-1){
_5=_5.replace(_3,_4);
}
return _5;
};
var io={initialized:false,selected:false,platform:"desktop",userid:0,userkey:"",mode:"guest",fadeQueue:[],site:false,page:false,typesLoading:"",typesLoaded:"",types:[],type:{},boxes:false,box:{},controls:{},initialize:function(){
if((navigator.userAgent.indexOf("Android")!=-1)||(navigator.userAgent.indexOf("android")!=-1)||(navigator.userAgent.indexOf("iPhone")!=-1)||(navigator.userAgent.indexOf("iPad")!=-1)||(navigator.userAgent.indexOf("ipad")!=-1)){
io.platform="mobile";
io.eventTypes={"down":"touchstart","move":"touchmove","up":"touchend"};
}else{
io.platform="desktop";
io.eventTypes={"down":"mousedown","move":"mousemove","up":"mouseup"};
}
io.site=dojo.query(">.containers_site",document.body)[0];
if(io.userid==0){
io.userid=Number(io.getNodeParam(io.site,"userid"));
if(io.userid!=0){
io.userkey=io.getNodeParam(io.site,"userkey");
}else{
io.userid=2;
io.userkey="guest";
}
}
io.request("get",io.site,"box",{recordid:io.getId(io.site)},io.box.receive);
var _6=dojo.byId("loginpanel");
var _7=dojo.byId("login_button_inactive");
var _8=dojo.byId("login_button");
if(_6&&_8&&_7){
_6.io={state:"hidden"};
dojo.connect(_7,io.eventTypes.down,null,io.activateLogin);
dojo.connect(_8,io.eventTypes.down,null,io.loginUser);
dojo.connect(dojo.byId("loginform"),"submit",null,io.loginUser);
dojo.connect(dojo.byId("loginform"),"keyup",null,io.loginUser);
}else{
console.warn("io.initialize() no login box found");
}
if((io.userid==2)||(io.userid=="2")){
console.warn("Not initializing controls because user is a guest");
io.showLogin();
}else{
if(io.controls.initialized==undefined){
io.loadSource("system/controls.js","js","controls");
}
}
io.initialized=true;
},activateLogin:function(){
if(!document.head){
document.head=document.getElementsByTagName("head")[0];
}
if(!document.head.innerHTML.contains("controls.css")){
io.loadSource("/layout/elements/controls.css","css","controls");
}
if(dojo.byId("loginpanel").io.state=="hidden"){
io.showLogin();
}
dojo.animateProperty({rate:25,duration:500,node:"loginpanel",properties:{opacity:1},onEnd:function(){
dojox.fx.crossFade({nodes:["login_button_inactive","login_button"],duration:500,onEnd:function(){
dojo.byId("login_button_inactive").style.display="none";
dojo.animateProperty({rate:25,duration:500,node:"loginpanel",properties:{top:0,right:-10},onEnd:function(){
dojo.byId("loginpanel").io={state:"active"};
dojo.byId("email").focus();
}}).play();
}}).play();
}}).play();
},deactivateLogin:function(){
if(dojo.byId("loginpanel").io.state=="hidden"){
io.showLogin();
}
dojo.animateProperty({rate:25,duration:500,node:"loginpanel",properties:{top:0,right:-249},onEnd:function(){
dojo.byId("login_button_inactive").style.display="block";
dojox.fx.crossFade({nodes:["login_button","login_button_inactive"],duration:500,onEnd:function(){
dojo.animateProperty({rate:25,duration:500,node:"loginpanel",properties:{opacity:0.5}}).play();
dojo.byId("loginpanel").io.state="visible";
}}).play();
}}).play();
},hideLogin:function(){
dojo.animateProperty({rate:25,duration:500,node:"loginpanel",properties:{top:0,right:-249},onEnd:function(){
dojo.byId("loginpanel").io={state:"hidden"};
dojo.byId("loginpanel").style.display="none";
}}).play();
},showLogin:function(){
dojo.byId("loginpanel").style.display="block";
dojo.animateProperty({rate:25,delay:1000,duration:500,node:"loginpanel",properties:{top:0,right:-249},onEnd:function(){
dojo.byId("loginpanel").io={state:"visible"};
dojo.byId("login_button_inactive").style.display="block";
}}).play();
},loginUser:function(_9){
var e=io.fixEvent(_9);
var _a=dojo.byId("email").value;
var _b=dojo.byId("password").value;
if(((e.currentTarget.id=="login_button")&&(e.type=="mousedown"))||((e.type=="keyup")&&(e.io.key==13))){
if((_a!="")&&(_b!="")){
io.login(_a,_b);
}else{
}
}
e.preventDefault();
return false;
},login:function(_c,_d){
var _e={recordid:1,email:_c,password:_d};
io.request("login",io.site,"users_user",_e,function(_f){
var res=dojo.fromJson(_f);
io.clearLogin();
io.userid=Number(res.data.recordid);
io.userkey=res.data.userkey;
if((res.data.recordid!=2)&&(res.data.recordid!="2")){
io.box.disconnect(io.site);
io.mode="user";
if(io.site){
io.request("render",io.site,"containers_site",{recordid:io.getId(io.site),pagepath:window.location.pathname},io.box.receive);
}
io.deactivateLogin();
io.hideLogin();
var _10=dojo.byId("controls_guest");
if(_10){
dojo.place(res.data.controls,_10,"replace");
if(io.controls.initialized==undefined){
io.loadSource("/system/controls.js","js","controls");
}else{
io.controls.initialize();
}
}else{
alert("Unable to display the control panels! Please report this.");
}
}else{
if(io.userid==2){
alert("Påloggingen feilet fordi e-postadressen eller passordet var feil.\n\nVennligst prøv igjen.");
dojo.byId("email").focus();
}
}
});
},logout:function(){
io.mode="guest";
var _11={recordid:2,email:"guest",password:"guest"};
io.request("login",io.site,"users_user",_11,function(_12){
io.userid=2;
io.userkey="guest";
io.request("render",io.site,"containers_site",{recordid:20000,objectid:20000},io.box.receive);
io.guestMode();
dojo.place("<div id='controls_guest'></div>","controls_dialog","replace");
});
},guestMode:function(){
io.site.style.top="0px";
var _13=dojo.byId("control_toggle_edit");
if(dojo.hasClass(_13,"active")){
io.controls.toggleEditPanel();
}
var _14=dojo.byId("control_toggle_user");
if(dojo.hasClass(_14,"active")){
io.controls.toggleUserPanel();
}
io.controls.hideZoomPanel(function(){
io.controls.hideHomePanel();
io.controls.hideEditPanel();
io.showLogin();
});
},userMode:function(){
dojo.animateProperty({rate:20,duration:500,node:"loginbox",properties:{right:-277},onEnd:function(){
io.site.style.top="0px";
dojo.animateProperty({rate:20,duration:500,node:"controls_right",properties:{bottom:-101},onEnd:function(){
dojo.byId("controls_right").style.display="none";
},onBegin:function(){
dojo.animateProperty({rate:20,duration:500,node:"controls_top",properties:{top:-101},onEnd:function(){
dojo.byId("controls_top").style.display="none";
dojo.byId("controls_home").style.display="block";
dojo.animateProperty({rate:20,duration:500,node:"controls_home",properties:{top:0},onEnd:function(){
io.box.unselect();
io.controls.unselect();
io.mode="user";
dojo.query(".box-frame",io.site).forEach(function(_15,_16){
_15.style.display="none";
});
}}).play();
}}).play();
}}).play();
}}).play();
},homeToggle:function(){
if(dojo.byId("controls_left").style.visibility!="visible"){
dojo.fadeIn({node:"controls_left",delay:0,duration:500,rate:25,onBegin:function(){
dojo.byId("controls_left").style.visibility="visible";
}}).play();
}else{
dojo.fadeOut({node:"controls_left",delay:0,duration:500,rate:25,onEnd:function(){
dojo.byId("controls_left").style.visibility="hidden";
}}).play();
}
},clearLogin:function(){
dojo.byId("email").value="";
dojo.byId("password").value="";
},typeLoaded:function(_17){
if(io.typesLoaded.indexOf("["+_17+"]")==-1){
return false;
}
return true;
},typeLoading:function(_18){
if(io.typesLoading.indexOf("["+_18+"]")==-1){
return false;
}
return true;
},onTypeLoad:function(_19,_1a){
io.typesLoading=io.typesLoading.replaceString("["+_19+"]","");
io.typesLoaded+="["+_19+"]";
io.types.push({name:_19,handler:_1a});
if(io.initialized){
dojo.query("."+_19,io.page).forEach(function(box){
if(!box.io||!box.io.initialized){
io.request("get",io.page,"box",{recordid:io.getId(box)},io.box.receive);
}
});
}
},loadSource:function(_1b,_1c,_1d){
if(_1c=="js"){
var _1e=document.createElement("script");
_1e.setAttribute("type","text/javascript");
_1e.setAttribute("src",_1b);
}else{
if(_1c=="css"){
var _1e=document.createElement("link");
_1e.setAttribute("rel","stylesheet");
_1e.setAttribute("type","text/css");
_1e.setAttribute("href",_1b);
}else{
alert("ALT can not load files of type '"+_1c+"'");
return false;
}
}
if(typeof _1e!="undefined"){
document.getElementsByTagName("head")[0].appendChild(_1e);
}
return true;
},loadType:function(_1f){
if(dojo.isString(_1f)){
if(!this.typeLoading(_1f)){
if(!this.typeLoaded(_1f)){
io.typesLoading+="["+_1f+"]";
var _20=_1f.replaceString("_","/");
var _21="system/elements/"+_20;
this.loadSource(_21+".js","js",_1f);
_21="layout/elements/"+_20;
this.loadSource(_21+".css","css",_1f);
return true;
}else{
}
}else{
}
}else{
}
return false;
},getPanel:function(_22){
var _23=false;
if(dojo.hasClass(_22,"controls")){
_23=_22;
}else{
while((_22!=document.body)&&!dojo.hasClass(_22,"controls")){
_22=_22.parentNode;
}
if(dojo.hasClass(_22,"controls")){
_23=_22;
}
}
return _23;
},getBox:function(_24){
var box=false;
if(_24){
if(dojo.hasClass(_24,"box")){
box=_24;
}else{
while((_24!=document.body)&&!dojo.hasClass(_24,"box")){
_24=_24.parentNode;
}
if(dojo.hasClass(_24,"box")){
box=_24;
}
}
}
return box;
},getFrame:function(_25){
var _26=false;
if(!dojo.hasClass(_25,"box-frame")){
var box=io.getBox(_25);
if(box){
_26=dojo.query("> .box-frame",box)[0];
}
}else{
_26=_25;
}
return _26;
},getContents:function(_27){
var _28=false;
if(!dojo.hasClass(_27,"box-contents")){
var box=io.getBox(_27);
if(box){
_28=dojo.query("> .box-contents",box)[0];
}
}else{
_28=_27;
}
return _28;
},getId:function(_29){
var res=false;
if(_29){
aNodeId=_29.id.split("_");
if(aNodeId.length>1){
res=aNodeId[aNodeId.length-1];
}
}
return res;
},getType:function(_2a){
var res=false;
if(_2a){
aNodeId=_2a.id.split("_");
if(aNodeId.length>1){
res="";
for(var t=0;t<(aNodeId.length-1);t++){
res+="_"+aNodeId[t];
}
res=res.substr(1);
}
}
return res;
},getNodeParam:function(_2b,_2c){
var _2d=null;
if((_2b!=undefined)&&(_2b!=null)&&(dojo.isString(_2c))){
_2c+="_";
var _2e=_2b.className.split(" ");
if(_2e.length>0){
for(var i=0;i<_2e.length;i++){
if(_2e[i].substr(0,_2c.length)==_2c){
_2d=_2e[i].substr(_2c.length);
break;
}
}
}
}else{
console.error("getNodeParam: node parameter missing or param is not a string");
}
return _2d;
},getAbsPos:function(obj){
var abs={top:0,left:0};
if(obj!=null){
if(obj.offsetParent){
do{
abs.top+=obj.offsetTop;
abs.left+=obj.offsetLeft;
}while(obj=obj.offsetParent);
return abs;
}
}else{
alert("Unable to get absolute position for 'null' object!");
}
return false;
},calcEventPos:function(box,_2f){
var _30=0;
var _31=0;
if(io.platform=="desktop"){
if(!_2f){
_2f=window.event;
}
if(_2f.pageX||_2f.pageY){
_30=_2f.pageX;
_31=_2f.pageY;
}else{
if(_2f.clientX||_2f.clientY){
_30=eventvent.clientX+document.body.scrollLeft+document.documentElement.scrollLeft;
_31=_2f.clientY+document.body.scrollTop+document.documentElement.scrollTop;
}
}
}else{
if(io.platform=="mobile"){
if(_2f.touches){
if(_2f.touches.length>=1){
_30=_2f.touches[0].clientX;
_31=_2f.touches[0].clientY;
}else{
}
}else{
}
}
}
eventPos={rel:{top:_31,left:_30},abs:{top:_31,left:_30}};
if(box&&box.io){
var _32=io.getAbsPos(box.io.parent);
eventPos.rel.top=eventPos.abs.top-_32.top;
eventPos.rel.left=eventPos.abs.left-_32.left;
}
return eventPos;
},disconnectEvents:function(_33){
if(_33&&_33.io&&_33.io.events){
while(_33.io.events.length>0){
var _34=_33.io.events.pop();
dojo.disconnect(_34);
}
}
},fixEvent:function(_35,_36){
if(typeof _35=="undefined"){
_35=window.event;
}
var _37=null;
if(_35.target){
_37=_35.target;
}else{
if(_35.srcElement){
_37=_35.srcElement;
}
}
if(_37.nodeType==3){
_37=_37.parentNode;
}
var box=io.getBox(_37);
var _38=false;
if(!box){
_38=io.getPanel(_37);
}
var _39=false;
if(_35.keyCode){
_39=_35.keyCode;
}else{
if(_35.which){
_39=_35.which;
}
}
var pos=this.calcEventPos(box,_35);
_35.io={target:_37,box:box,panel:_38,position:pos,key:_39};
return _35;
},isInside:function(box,_3a){
var _3b=_3a;
while((_3b.id!=box.id)&&(!dojo.hasClass(_3b,"site"))){
_3b=_3b.parentNode;
}
if(_3b.id==box.id){
return true;
}else{
return false;
}
},request:function(_3c,box,_3d,_3e,_3f){
box=io.getBox(box);
if(box){
if(!dojo.isString(_3d)){
_3d=box.io.type.name;
}
if(!_3e){
if((_3d=="box")||(_3d=="box/frame")){
_3e=box.io.frame.data;
}else{
_3e=box.io.type.data;
}
}
if(!_3f){
_3f=io.receive;
}
if(_3e.objectid){
var _40=_3e.objectid;
}else{
var _40=io.getId(box);
}
if(io.mode=="user"){
previewMode=true;
}else{
previewMode=false;
}
var _41={url:"/io.php",content:{userid:io.userid,userkey:io.userkey,command:_3c,objecttype:_3d,objectid:_40,data:dojo.toJson(_3e),preview:previewMode},handleAs:"text",failOk:true,load:_3f,handle:io.handle,error:io.error};
if(io.platform=="mobile"){
_41.sync=true;
}
dojo.xhrPost(_41);
}else{
}
},receive:function(_42){
var _43=dojo.fromJson(_42);
},handle:function(_44,_45){
if(Number(_45.xhr.status)!=200){
console.warn("Request result: "+_45.xhr.status+" "+_45.xhr.statusText);
}
},error:function(e,_46){
var msg=dojo.toJson(_46.args.content);
if(e){
msg=e.message+" when sending "+msg;
}
},fadeIn:function(box){
box=io.getBox(box);
if(box){
fadeParams={node:box,delay:0,duration:200,rate:50,onEnd:function(){
if(io.fadeQueue.length>0){
io.fading=true;
var _47=io.fadeQueue.shift();
dojo.fadeIn(_47).play();
}else{
io.fading=false;
}
}};
if(io.fading){
io.fadeQueue.push(fadeParams);
}else{
io.fading=true;
dojo.fadeIn(fadeParams).play();
}
}else{
console.warn("io.fadeIn() not a box");
}
},fadeOut:function(box,_48){
box=io.getBox(box);
if(!_48){
_48=function(_49){
};
}
if(box){
fadeParams={node:box,delay:0,duration:500,rate:50,onEnd:_48};
dojo.fadeOut(fadeParams).play();
}else{
console.warn("io.fadeOut() not a box");
}
},toggleOnOffClass:function(_4a){
if(dojo.hasClass(_4a,"on")){
dojo.removeClass(_4a,"on");
dojo.addClass(_4a,"off");
}else{
dojo.removeClass(_4a,"off");
dojo.addClass(_4a,"on");
}
}};


