var box_frame={resizeInfo:{scale:1},initialize:function(_1,_2){
_1=io.getBox(_1);
if(_1){
for(key in _2){
if(typeof (_2[key])=="string"){
var _3=Number(_2[key]);
if(isNaN(_3)){
_1.io.frame.data[key]=_2[key];
}else{
_1.io.frame.data[key]=_3;
}
if(_2[key].startsWith("_")){
var _4=_2[key].replaceString("_","-").substring(1);
dojo.attr(_1,"style",{name:_2[key]});
}
}
}
_1.io.frame.state.moved=false;
_1.io.frame.state.resized=false;
}
var _5=io.getFrame(_1);
if(_5){
if(io.userid==2){
_5.style.visibility="hidden";
}else{
if((_1.io.access>=2)||(_1.io.parent.io.access>=4)){
if(io.mode=="edit"){
_1.io.frame.events.touchstart.push(dojo.connect(_5,io.eventTypes.down,null,io.frame.startResize));
dojo.query(".box-frame",_1).forEach(function(_6,_7,_8){
_6.style.opacity="1";
});
}
}else{
dojo.query(".box-frame",_1).forEach(function(_9,_a,_b){
_9.style.opacity="0";
});
}
}
io.frame.redraw(_1);
return true;
}else{
console.warn("io.frame.initialize() no frame on "+_1.id);
}
return false;
},disconnect:function(_c){
var _d=io.getFrame(_c);
if(_d){
while(_c.io.frame.events.touchstart.length>0){
dojo.disconnect(_c.io.frame.events.touchstart.pop());
}
while(_c.io.frame.events.touchmove.length>0){
dojo.disconnect(_c.io.frame.events.touchmove.pop());
}
while(_c.io.frame.events.touchend.length>0){
dojo.disconnect(_c.io.frame.events.touchend.pop());
}
}else{
console.warn("io.frame.disconnect() no frame on "+_c.id);
}
return true;
},startResize:function(_e){
_e=io.fixEvent(_e);
var _f=_e.io.box;
if(_f){
io.box.select(_e.io.target,_e.io.position);
var _10=io.getFrame(_e.io.box);
if(_10){
if((io.box.selected.io.type.name=="images_image")&&(io.box.selected.io.type.data.frameaction==0)){
console.warn("io.frame.startResize() frame is locked");
}else{
io.frame.resizeInfo.scale=io.box.selected.io.frame.data.height/io.box.selected.io.frame.data.width;
_f.io.frame.events.touchmove.push(dojo.connect(io.site,io.eventTypes.move,null,io.frame.resize));
_f.io.frame.events.touchend.push(dojo.connect(io.site,io.eventTypes.up,null,io.frame.stopResize));
}
}
}
return false;
},resize:function(_11){
_11=io.fixEvent(_11);
if(io.box.selected){
var box=io.box.selected;
var _12=io.box.selection;
var _13=_11.io.position.abs.top-_12.eventPos.abs.top;
var _14=_11.io.position.abs.left-_12.eventPos.abs.left;
if(!box.io.frame.state.resized){
if((_13!=0)||(_14!=0)){
box.io.frame.state.resized=true;
dojo.addClass(box,"resizing");
}else{
return false;
}
}
if(box.io.frame.state.resized){
if(box.io.type.name=="containers_page"){
_14=_14*2;
}
if(_12.target.className.contains("box-frame-topleft")){
if(box.io.type.name!="containers_page"){
box.io.frame.data.top=_12.startRect.top+_13;
box.io.frame.data.left=_12.startRect.left+_14;
}
box.io.frame.data.height=_12.startRect.height-_13;
box.io.frame.data.width=_12.startRect.width-_14;
}else{
if(_12.target.className.contains("box-frame-topright")){
if(box.io.type.name!="containers_page"){
box.io.frame.data.top=_12.startRect.top+_13;
}
box.io.frame.data.height=_12.startRect.height-_13;
box.io.frame.data.width=_12.startRect.width+_14;
}else{
if(_12.target.className.contains("box-frame-bottomright")){
box.io.frame.data.height=_12.startRect.height+_13;
box.io.frame.data.width=_12.startRect.width+_14;
}else{
if(_12.target.className.contains("box-frame-bottomleft")){
if(box.io.type.name!="containers_page"){
box.io.frame.data.left=_12.startRect.left+_14;
}
box.io.frame.data.height=_12.startRect.height+_13;
box.io.frame.data.width=_12.startRect.width-_14;
}else{
if(_12.target.className.contains("box-frame-top")){
if(box.io.type.name!="containers_page"){
box.io.frame.data.top=_12.startRect.top+_13;
}
box.io.frame.data.height=_12.startRect.height-_13;
}else{
if(_12.target.className.contains("box-frame-right")){
box.io.frame.data.width=_12.startRect.width+_14;
}else{
if(_12.target.className.contains("box-frame-bottom")){
box.io.frame.data.height=_12.startRect.height+_13;
}else{
if(_12.target.className.contains("box-frame-left")){
if(box.io.type.name!="containers_page"){
box.io.frame.data.left=_12.startRect.left+_14;
}
box.io.frame.data.width=_12.startRect.width-_14;
}
}
}
}
}
}
}
}
var _15=io.frame.calcLimits(box);
if(box.io.type.name=="containers_page"){
io.frame.fitParent(box);
}
io.frame.redraw(box);
if(box.io.type.name=="images_image"){
box.io.type.handler.reposition(box);
}
}
}
return false;
},updateLayers:function(box,_16,_17){
var _18=box.io.parent.io.children;
maxPosition=0;
_18.forEach(function(_19,_1a){
maxPosition=maxPosition+1;
});
if((_17>0)&&((_17<=maxPosition)||(_17<_16))){
_18.forEach(function(_1b,_1c){
if((_1b!=io.box.selected)&&(Number(_1b.style.zIndex)>(_16+250))){
var _1d=Number(_1b.style.zIndex)-1;
_1b.io.frame.data.position=_1b.io.frame.data.position-1;
_1b.style.zIndex=_1d;
}
});
_18.forEach(function(_1e,_1f){
if((_1e!=io.box.selected)&&(Number(_1e.style.zIndex)>=(_17+250))){
var _20=Number(_1e.style.zIndex)+1;
_1e.io.frame.data.position=_1e.io.frame.data.position+1;
_1e.style.zIndex=_20;
}
});
box.io.frame.data.position=_17;
box.style.zIndex=_17+250;
io.frame.save(box);
io.request("getsettings",box,box.io.type.name,{recordid:box.io.type.data.recordid},io.controls.receiveOptions);
}else{
}
},stopResize:function(_21){
_21=io.fixEvent(_21);
var box=io.getBox(_21.io.box);
var _22=io.getFrame(_21.io.box);
if(_22){
while(box.io.frame.events.touchmove.length>0){
dojo.disconnect(box.io.frame.events.touchmove.pop());
}
while(box.io.frame.events.touchend.length>0){
dojo.disconnect(box.io.frame.events.touchend.pop());
}
dojo.removeClass(box,"resizing");
io.frame.save(box);
if(io.site.io.frame.state.resized){
io.frame.save(io.site);
if(box.io.type.name=="images_image"){
var _23=dojo.query("img",box)[0];
if(_23){
var _24="/dl.php?recordid="+box.io.type.data.recordid;
_24+="&width="+box.io.frame.data.width+box.io.frame.data.widthunit;
_24+="&height="+box.io.frame.data.height+box.io.frame.data.heightunit;
_23.src=_24;
}else{
console.error("Unable to update image node!");
}
}
}
}
return false;
},calcLimits:function(box){
box.io.frame.limits={min:{top:0,left:0,height:5,width:5},max:{top:box.io.parent.clientHeight-box.io.frame.data.height,left:box.io.parent.clientWidth-box.io.frame.data.width,height:box.io.parent.clientHeight-box.io.frame.data.top,width:box.io.parent.clientWidth-box.io.frame.data.left}};
return box.io.frame.limits;
},fitParent:function(box){
var _25=true;
var _26=0,_27=0;
if(document.body&&document.body.offsetWidth){
_26=document.body.offsetWidth;
_27=document.body.offsetHeight;
}
if(document.compatMode=="CSS1Compat"&&document.documentElement&&document.documentElement.offsetWidth){
_26=document.documentElement.offsetWidth;
_27=document.documentElement.offsetHeight;
}
if(window.innerWidth&&window.innerHeight){
_26=window.innerWidth;
_27=window.innerHeight;
}
var _28=io.site.offsetHeight;
if(io.userid==2){
if(box==io.page){
var _29=io.getAbsPos(io.page);
var _2a=_29.top+io.page.offsetHeight;
if(_2a<_27){
io.site.style.height="100%";
}else{
io.site.style.height=_2a+"px";
}
}
}else{
if(box!=io.site){
parentbox=box.io.parent;
var _2b=box.io.frame.data.top+box.io.frame.data.height;
var _2c=box.io.frame.data.left+box.io.frame.data.width;
if(box==io.page){
_2b+=200;
_2c+=50;
}
if(_2b>parentbox.clientHeight){
parentbox.io.frame.data.height=_2b;
parentbox.style.height=parentbox.io.frame.data.height+"px";
parentbox.io.frame.state.resized=true;
}else{
if(parentbox==io.site){
if((_2b>window.innerHeight)&&(parentbox.io.frame.data.height>window.innerHeight)){
parentbox.io.frame.data.height=_2b;
parentbox.style.height=parentbox.io.frame.data.height+"px";
parentbox.io.frame.state.resized=true;
}
if(_2c>parentbox.clientWidth){
parentbox.io.frame.data.width=_2c;
parentbox.style.width=parentbox.io.frame.data.width+"px";
parentbox.io.frame.state.resized=true;
}
}
}
if(parentbox.io.frame.state.resized){
console.warn("fitParent() resized parent "+parentbox.id+" (child: "+_2c+", parent: "+parentbox.io.frame.data.width+") - (window: "+window.innerWidth+")");
io.frame.fitParent(parentbox);
_25=false;
}
}
}
return _25;
},move:function(_2d){
if(io.box.selected){
var box=io.box.selected;
var _2e=_2d.io.position.abs.top-io.box.selection.eventPos.abs.top;
var _2f=_2d.io.position.abs.left-io.box.selection.eventPos.abs.left;
if(!box.io.frame.state.moved){
if((_2e!=0)||(_2f!=0)){
box.io.frame.state.moved=true;
dojo.addClass(box,"moving");
}
}
if(box.io.frame.state.moved){
box.io.frame.data.top=io.box.selection.startRect.top+_2e;
box.io.frame.data.left=io.box.selection.startRect.left+_2f;
io.frame.redraw(box);
}else{
}
}
},update:function(box){
box=io.getBox(box);
if(box){
io.request("get",box);
}
},save:function(box){
box=io.getBox(box);
if(box){
io.request("save",box,"box/frame",box.io.frame.data,io.frame.receive);
}
},redraw:function(box){
if(box!=io.site){
if(box.io.type.name!="containers_site"){
box.style.top=box.io.frame.data.top+box.io.frame.data.topunit;
if(box.io.type.name!="containers_page"){
box.style.left=box.io.frame.data.left+box.io.frame.data.leftunit;
}
}
if(box.io.type.name=="images_image"){
if(box.io.type.data.frameaction==2){
if(box.io.frame.state.resized){
box.io.frame.data.height=box.io.frame.data.width*io.frame.resizeInfo.scale;
}
}
}
box.style.height=box.io.frame.data.height+box.io.frame.data.heightunit;
box.style.width=box.io.frame.data.width+box.io.frame.data.widthunit;
}
return true;
},receive:function(_30){
var res=dojo.fromJson(_30);
var box=dojo.byId("box_"+res.objectid);
if(box){
var _31=io.getFrame(box);
if(_31){
io.frame.disconnect(box);
io.frame.initialize(box,res.data);
if(res.request.command=="save"){
io.controls.update();
}
}else{
}
}else{
}
}};
io.frame=box_frame;


