"use strict";var lclient;var client;var optionsCLOUD={};var l_options={};var UiId='xxx';var CanvasArr=[];var SaveColor3D=[];var Cam3DSet=0;var UiFuncMqttConArr={};var TimerId={};var Cam3DRotation=false;var LocalVariable={};var Ftimeout={};var Finterval={};var PreviorPage;var CurrentPage;var LogicFuncSend={};var WbDevUpdate={};var TagVal={};var ElCopy=false;var Login='';var ButCtrl=false;var ButShift=false;var Interval={};var Timeout={};var PosTouchX=0;var PosTouchY=0;var EditBlockCurrentId='';var CopyAttrVal=[];var CopyTagsVal=[];var CopyLinkDevVal=[];var CopyCssVal=[];var CopyCss3DVal=[];var CopyHtmlVal='';var CopyFxUiVal='';var CopyFxLogicVal='';var EditHistory=[];var EditHistoryIndex=0;var EditBlockSelectArr=[];var BreakclickR=false;var ParamPrintTimeout=0;var StructPrintTimeout=0;var UiFuncArrEdit={};var UiFuncSelBoxKey='';var UiFuncArrEditEl={};var SYS_DisplayStyleBlock;var KnxDevUpdate={};var TagSelectVal;var LinkDevSelectVal;var ElementSelect;var DevicesConf={};var DevicesConfList={};var CharacteristicsConfList={};var RoomsConfList={};var FloorsConfList={};var DevFxLogicCopy={};var XiotServices={};var XiotCharacteristics={};var XiotLogic={};var ElTagsArr={};var DeviceReady=false;var ScreensaverList={};var WB_select=0;var EditorOpenFlag=false;var EditorOpenCloseFlag=false;Object.size=function(obj){var size=0,key;for(key in obj){if(obj.hasOwnProperty(key))size++;} return size;};function LevelGet(el){var level=0;if(typeof(el.attr('value'))!=="undefined"){level=parseInt(el.attr('value'));} return level;} function LevelSet(el,setval){el.attr('value',setval);var param=JSON.parse(el.attr('param'));var fontype='0';var min='0';var max='100';var set=0;var intransition=100;if(param['fontype']!==undefined){fontype=param['fontype'];} if(param['min']!==undefined){min=parseFloat(param['min']);} if(param['max']!==undefined){max=parseFloat(param['max']);} if(param['intransition']!==undefined){intransition=parseFloat(param['intransition']);} var setvaln=parseInt((Math.abs(parseFloat(min)-parseFloat(setval))/Math.abs(parseFloat(max)-parseFloat(min)))*100);if(setvaln>100){setvaln=100;} if(setvaln<0){setvaln=0;} var fon=el.find('div[name="фон"]');var xid=fon.attr('id');switch(fontype){case'0':fon.css('transition',(intransition/1000)+'s');setTimeout("$('#"+xid+"').css('transition','0s');",intransition);fon.css({'height':setvaln+'%','top':(100-setvaln)+'%'});break;case'1':fon.css({'height':setvaln+'%'});break;case'2':fon.css({'width':setvaln+'%','left':(100-setvaln)+'%'});break;case'3':fon.css({'width':setvaln+'%'});break;}} function WbModuleSetupPrint(modul,setuparr){var setupjson=$('.SYS_PlcModuleSetup').attr('json');if(setupjson&&setupjson!==''){var setuparr=JSON.parse(setupjson);}else{var setuparr={};} var block=$('.SYS_PlcModuleTemp[type="'+modul+'"]').clone();block.attr('class','SYS_PlcModule').show();var wb_types=JSON.parse($('.SYS_wb_types').attr('json'));var xiot_types=JSON.parse($('.SYS_xiot_types').attr('json'));$('.SYS_PlcModuleBlock').append(block);var wbid=WB_select+'';var wb='wb';if(WB_select!==0){wb='wb'+WB_select;} for(var dev in WbDevUpdate){if(typeof(setuparr[modul][wbid]['devices'])==='undefined'){setuparr[modul][wbid]['devices']=WbDevUpdate;} if(typeof(setuparr[modul][wbid]['devices'][dev])==='undefined'){setuparr[modul][wbid]['devices'][dev]=WbDevUpdate[dev];}else{setuparr[modul][wbid]['devices'][dev]['name']=WbDevUpdate[dev]['name'];if(typeof(setuparr[modul][wbid]['devices'][dev]['controls'])==='undefined'){setuparr[modul][wbid]['devices'][dev]['controls']=WbDevUpdate[dev]['controls'];}else{for(var contr in WbDevUpdate[dev]['controls']){if(typeof(setuparr[modul][wbid]['devices'][dev]['controls'][contr])==='undefined'){setuparr[modul][wbid]['devices'][dev]['controls'][contr]={};} setuparr[modul][wbid]['devices'][dev]['controls'][contr]['value']=WbDevUpdate[dev]['controls'][contr]['value'];if(WbDevUpdate[dev]['controls'][contr]['readonly']!==undefined){setuparr[modul][wbid]['devices'][dev]['controls'][contr]['rw']='r';}else{setuparr[modul][wbid]['devices'][dev]['controls'][contr]['rw']='rw';} setuparr[modul][wbid]['devices'][dev]['controls'][contr]['order']=WbDevUpdate[dev]['controls'][contr]['order'];var type=WbDevUpdate[dev]['controls'][contr]['type'];setuparr[modul][wbid]['devices'][dev]['controls'][contr]['typewb']=type;if(type==='rgb'){setuparr[modul][wbid]['devices'][dev]['controls'][contr+'_range']={};setuparr[modul][wbid]['devices'][dev]['controls'][contr+'_range']['value']='100';setuparr[modul][wbid]['devices'][dev]['controls'][contr+'_range']['typewb']='rgbrange';setuparr[modul][wbid]['devices'][dev]['controls'][contr+'_range']['typexiot']='percentage';setuparr[modul][wbid]['devices'][dev]['controls'][contr+'_range']['rw']='rw';setuparr[modul][wbid]['devices'][dev]['controls'][contr+'_range']['error']=WbDevUpdate[dev]['controls'][contr]['error'];setuparr[modul][wbid]['devices'][dev]['controls'][contr+'_switch']={};setuparr[modul][wbid]['devices'][dev]['controls'][contr+'_switch']['value']='1';setuparr[modul][wbid]['devices'][dev]['controls'][contr+'_switch']['typewb']='rgbswitch';setuparr[modul][wbid]['devices'][dev]['controls'][contr+'_switch']['typexiot']='switch';setuparr[modul][wbid]['devices'][dev]['controls'][contr+'_switch']['rw']='rw';setuparr[modul][wbid]['devices'][dev]['controls'][contr+'_switch']['error']=WbDevUpdate[dev]['controls'][contr]['error'];} if(type==='range'){setuparr[modul][wbid]['devices'][dev]['controls'][contr+'_switch']={};setuparr[modul][wbid]['devices'][dev]['controls'][contr+'_switch']['value']='1';setuparr[modul][wbid]['devices'][dev]['controls'][contr+'_switch']['typewb']='rangeswitch';setuparr[modul][wbid]['devices'][dev]['controls'][contr+'_switch']['']='switch';setuparr[modul][wbid]['devices'][dev]['controls'][contr+'_switch']['rw']='rw';setuparr[modul][wbid]['devices'][dev]['controls'][contr+'_switch']['error']=WbDevUpdate[dev]['controls'][contr]['error'];} try{setuparr[modul][wbid]['devices'][dev]['controls'][contr]['typexiot']=wb_types[type]['xiottype'];}catch(err){setuparr[modul][wbid]['devices'][dev]['controls'][contr]['typexiot']='string';} setuparr[modul][wbid]['devices'][dev]['controls'][contr]['error']=WbDevUpdate[dev]['controls'][contr]['error'];if(WbDevUpdate[dev]['controls'][contr]['max']!==undefined){setuparr[modul][wbid]['devices'][dev]['controls'][contr]['max']=WbDevUpdate[dev]['controls'][contr]['max'];}}}}} $('.SYS_PlcModuleParamBlock[arr="devices"]').html('');console.log('111111111111111111111111111111');console.log(setuparr);if(typeof(setuparr[modul][wbid])!=="undefined"){var devices=setuparr[modul][wbid]['devices'];var seltype="';var selxiot_types="';for(var dev in devices){var table=$('
');table.append("тегимятип WBтип XIOTrwvaluemaxerror");var hks=$('
'+devices[dev]['name']+'
X
');for(var control in devices[dev]['controls']){table.append('/'+wb+'/'+dev+'/'+control+''+seltype+''+selxiot_types+' ');} hks.find('.SYS_PlcModuleBlock2').append(table);block.find('.SYS_PlcModuleParamBlock[arr="devices"]').append(hks);}} WbDevUpdate={};} function Start_screensaver(id){delete ScreensaverList[id]['timer'];if(EditorOpenCloseFlag===false){var popup=$('#'+id);if(popup.length>0){PopupEffect(popup,'Show');}}} function SystemLog(mess){console.log(mess);} function SystemLog2(mess){console.log(mess);if($('div[name=SYS_Log]').length>0){var el=$('div[name=SYS_Log]');var p=$("

"+mess+"

");el.prepend(p);el.find('p').slice(20).remove();}} function SetLang(lang){$('div[type=text]').each(function(){var el=$(this);var htmlsel=el.attr('htmlsel');if(typeof(el.attr('html'+htmlsel+lang))!=="undefined"){if(el.attr('html'+htmlsel+lang)!==''){el.html(el.attr('html'+htmlsel+lang));}}});} var UiFuncXid='';var FXedit='';var DevSelectSv='';var fjsfunc_attr1;var fjsfunc_attr2;var fjsfunc_attr3;function SYS_system_page(){var func=fjsfunc_attr1;var el=fjsfunc_attr2;switch(func){case'выйти':if(confirm('Выйти?')){LogOut();} break;case'сбросить_пароль':if(confirm('Сбросить пароль?')){var jwt=localStorage.getItem('jwt');var arr={"func":"reset_passwd","jwt":jwt};$.post("https://xiot.pro/system/ajax.php",{data:JSON.stringify(arr)},function(msg){if(msg['mess']){alert(msg['mess']);} if(msg['error']){alert(msg['error']);}},'json');} break;case'добавить_пользователя':var name=el.parent().find('div[name="имя"]').find('input').val();var mail=el.parent().find('div[name="email"]').find('input').val();var mail2=el.parent().find('div[name="email2"]').find('input').val();if(name.length>0&&mail.length>0&&mail2.length>0){if(mail===mail2){var project=localStorage.getItem("project");var jwt=localStorage.getItem('jwt');var arr={"func":"adduser","name":name,"mail":mail,"jwt":jwt,"project":project};$.post("https://xiot.pro/system/ajax.php",{data:JSON.stringify(arr)},function(msg){if(msg['error']){alert(msg['error']);}else{GetSystemPage();}},'json');}else{alert('Введите корректные данные.');}}else{alert('Введите корректные данные.');} break;case'изменить_пароль':var curpass=el.parent().find('div[name="старый_пароль"]').find('input').val();var newpass=el.parent().find('div[name="новый_пароль"]').find('input').val();var newpass2=el.parent().find('div[name="подтверждение_пароль"]').find('input').val();if(curpass.length>0&&newpass.length>0&&newpass2.length>0){if(newpass===newpass2){var jwt=localStorage.getItem('jwt');var arr={"func":"editpassV2","passcur":curpass,"pass":newpass,"pass2":newpass2,"jwt":jwt};$.post("https://xiot.pro/system/ajax.php",{data:JSON.stringify(arr)},function(msg){if(msg['mess']){alert(msg['mess']);} if(msg['error']){alert(msg['error']);} if(msg['edit']){if(msg['edit']=='ok'){LogOut();}}},'json');}else{alert('Новый пароль и подтверждение не совпадают. Введите корректные данные.');}}else{alert('Введите корректные данные.');} break;case'удалить_пользователя':var email=el.closest('div[name="user"]').attr('email');var project=localStorage.getItem("project");var jwt=localStorage.getItem('jwt');var arr={"func":"deleteuser","email":email,"jwt":jwt,"project":project};$.post("https://xiot.pro/system/ajax.php",{data:JSON.stringify(arr)},function(msg){if(msg['error']){alert(msg['error']);}else{el.closest('div[name=user]').remove();GetSystemPage();alert(msg['ok']);}},'json');break;case'сбросить_пароль_пользователя':alert(func);break;default:alert(func);}} function GetSystemPage(){var spage=$('div[name=S_СТРАНИЦА_НАСТРОЙКИ]');var jwt=localStorage.getItem('jwt');var project=localStorage.getItem('project');var data={"jwt":jwt,"project":project,"func":"syspage_getinfo"};spage.find('div[name=блок_добавить_пользователя]').hide();spage.find('div[name=загрузка]').show();$.post("https://xiot.pro/system/ajax.php",{data:JSON.stringify(data)},function(mess){spage.find('div[name=загрузка]').hide();if(mess['prjlist']){var projectArr=mess['prjlist'];var project="";var homelist=spage.find('div[name=список_домов]');var homebut=spage.find('div[name=список_домов]').find('div[name=дом]').last().clone();homelist.html('');for(var prj in projectArr){if(localStorage.getItem("project")==undefined||localStorage.getItem("project")==null||localStorage.getItem("project")==""){project="";}else{project=localStorage.getItem("project");} if(prj==project){spage.find('div[name=дом]').find('div[name=имя_дома]').html(projectArr[prj]['name']);}else{var homebutnew=homebut.clone().html(projectArr[prj]['name']).attr('class','OpenProjectBut').attr('prj',prj);var nid=newid();homebutnew.attr('id',nid);homelist.append(homebutnew);}} spage.find('div[name=владелец]').find('div[name=email]').html(mess['user']);switch(mess['usertype']){case'admin':spage.find('div[name=владелец]').find('div[name=текст]').html('РАЗРАБОТЧИК');spage.find('div[name=разработчик]').hide();spage.find('div[name=пользователи]').hide();break;case'owner':if(typeof(mess['userscount'])!=="undefined"){if(mess['userscount']>0){var count=mess['userscount'];spage.find('div[name=пользователи]').find('div[name=кол-во]').html('всего '+count);spage.find('div[name=пользователи]').find('div[name=user]').remove();for(var key in mess['users']){var userdiv=spage.find('div[name=пользователи]').find('div[name=пользователь]').clone();var nid=newid();userdiv.attr('id',nid).attr('name','user');userdiv.css('display','block').attr('email',key);userdiv.find('div[name=имя]').html(mess['users'][key]['name']+' ('+key+')');spage.find('div[name=пользователи]').find('div[name=список]').append(userdiv);}}else{spage.find('div[name=пользователи]').find('div[name=кол-во]').html('не добавлены');}} if(typeof(mess['admin'])!=="undefined"){spage.find('div[name=разработчик]').find('div[name=email]').html(mess['admin']);} break;default:spage.find('div[name=владелец]').find('div[name=текст]').html('ПОЛЬЗОВАТЕЛЬ');spage.find('div[name=разработчик]').hide();spage.find('div[name=пользователи]').hide();}}else{SystemLog(mess['error']);}},"json");openpage(spage,'GetSystemPage');} var SYS_acad_buf=new Array();function SYS_acad(){var attr1=fjsfunc_attr1;var attr2=fjsfunc_attr2;switch(attr1){case'Element':for(var key in attr2){console.log(attr2);switch(key){case'Group':$('div[name=SYS_ACAD_Cable_Group]').find('input').val(attr2[key]);break;}} break;case'SelectLine':$('div[name=SYS_ACAD_SelectLine]').html(attr2);break;case'SelectBlock':$('div[name=SYS_ACAD_SelectBlock]').html(attr2);break;case'SYS_ACAD':var SYS_ACAD_Cable_Type=$('div[name=SYS_ACAD_Cable_Type]').find('select');SYS_ACAD_Cable_Type.html('');SYS_ACAD_Cable_Type.append('');SYS_ACAD_Cable_Type.append('');break;case'SYS_ACAD_Cable_Save':var SYS_ACAD_Cable_Group=$('div[name=SYS_ACAD_Cable_Group]').find('input').val();var SYS_ACAD_Cable_Type=$('div[name=SYS_ACAD_Cable_Type]').find('input').val();var jsonarr={};jsonarr['Group']=SYS_ACAD_Cable_Group;jsonarr['Type']=SYS_ACAD_Cable_Type;var json=JSON.stringify(jsonarr);TagChange('/xsysui/module/acad/set_type',json);break;case'SYS_ACAD_Cable_Create':var eltype='line';TagChange('/xsysui/module/acad/create',eltype);break;default:console.log(attr1+' - default');}} function LogOut(){localStorage.removeItem('savetime');localStorage.removeItem('editor');localStorage.removeItem('editorver');localStorage.removeItem('user');localStorage.removeItem('MQTTADDR');localStorage.removeItem('MQTTPORT');localStorage.removeItem('MQTTPIN');localStorage.removeItem('MQTTSSL');localStorage.removeItem('MQTTUSER');localStorage.removeItem('MQTTPASS');localStorage.removeItem('MQTTPOUT');localStorage.removeItem('jwt');localStorage.removeItem('project');localStorage.removeItem('prjlist');if(localStorage.getItem('ihtml')){document.location.href=localStorage.getItem('ihtml');}else{document.location.href='/index.html';;}};function GetDevName(hid){SystemLog('!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!');SystemLog(hid);var DevArr=hid.split('/');SystemLog(DevArr);var textlinkdev=hid;var type=DevArr[1];switch(type){case'xhome':textlinkdev=DevicesConf['home']['name']+'-'+DevArr[3];break;case'xfloor':var floorid=DevArr[2];textlinkdev=FloorsConfList[floorid]['name']+'-'+DevArr[3];break;case'xroom':var roomid=DevArr[2];var floorname='';try{floorname=RoomsConfList[roomid]['floorname'];}catch(err){floorname='';} var roomname='';try{roomname=RoomsConfList[roomid]['name'];}catch(err){roomname='';} textlinkdev=floorname+'-'+roomname+'-'+DevArr[3];break;case'xdev':var devid=DevArr[2];try{textlinkdev=DevicesConfList[devid]['floorname']+'-'+DevicesConfList[devid]['roomname']+'-'+DevicesConfList[devid]['name']+'-'+DevArr[3];}catch(err){textlinkdev='удален';} break;case'xlogic':var lid=DevArr[2];var type=DevicesConf['logic'][lid]['type'];var param=XiotLogic[type]['Param'][DevArr[3]]['name'];textlinkdev=DevicesConf['logic'][lid]['Name']+'-'+param;break;} SystemLog(textlinkdev);return textlinkdev;} function ConfListCreate(){CharacteristicsConfList={};for(var floorid in DevicesConf['floors']){FloorsConfList[floorid]={};FloorsConfList[floorid]['name']=DevicesConf['floors'][floorid]['name'];for(var roomid in DevicesConf['floors'][floorid]['rooms']){RoomsConfList[roomid]={};RoomsConfList[roomid]['floorname']=DevicesConf['floors'][floorid]['name'];RoomsConfList[roomid]['name']=DevicesConf['floors'][floorid]['rooms'][roomid]['name'];RoomsConfList[roomid]['floor']=floorid;for(var devid in DevicesConf['floors'][floorid]['rooms'][roomid]['devices']){DevicesConfList[devid]=DevicesConf['floors'][floorid]['rooms'][roomid]['devices'][devid];DevicesConfList[devid]['floor']=floorid;DevicesConfList[devid]['floorname']=DevicesConf['floors'][floorid]['name'];DevicesConfList[devid]['room']=roomid;DevicesConfList[devid]['roomname']=DevicesConf['floors'][floorid]['rooms'][roomid]['name'];for(var rh in DevicesConfList[devid]['rh']){try{var hname=XiotCharacteristics[rh]['ru'];}catch(e){SystemLog(e);} if(typeof(CharacteristicsConfList[rh])==='undefined'){CharacteristicsConfList[rh]={};} switch(rh){case'MotionDetected':var hid='/xfloor/'+floorid+'/'+rh;if(typeof(CharacteristicsConfList[rh][hid])==='undefined'){var hidarr={};hidarr['floorid']=floorid;hidarr['roomid']=roomid;hidarr['name']=DevicesConfList[devid]['floorname']+' - '+hname;CharacteristicsConfList[rh][hid]=hidarr;} var hid='/xroom/'+roomid+'/'+rh;if(typeof(CharacteristicsConfList[rh][hid])==='undefined'){var hidarr={};hidarr['floorid']=floorid;hidarr['roomid']=roomid;hidarr['name']=DevicesConfList[devid]['floorname']+' - '+DevicesConfList[devid]['roomname']+' - '+hname;CharacteristicsConfList[rh][hid]=hidarr;} break;} var hid='/xdev/'+devid+'/'+rh;var hidarr={};hidarr['floorid']=floorid;hidarr['roomid']=roomid;hidarr['devid']=devid;hidarr['name']=DevicesConfList[devid]['floorname']+' - '+DevicesConfList[devid]['roomname']+' - '+DevicesConfList[devid]['name']+' - '+hname;CharacteristicsConfList[rh][hid]=hidarr;} for(var oh in DevicesConfList[devid]['oh']){var hname=oh;if(typeof(XiotCharacteristics[oh])!=="undefined"){hname=XiotCharacteristics[oh]['ru'];} if(typeof(CharacteristicsConfList[oh])==='undefined'){CharacteristicsConfList[oh]={};} if(DevicesConfList[devid]['oh'][oh]['active']=="1"){var hid='/xdev/'+devid+'/'+oh;var hidarr={};hidarr['floorid']=floorid;hidarr['roomid']=roomid;hidarr['devid']=devid;hidarr['name']=DevicesConfList[devid]['floorname']+' - '+DevicesConfList[devid]['roomname']+' - '+DevicesConfList[devid]['name']+' - '+hname;CharacteristicsConfList[oh][hid]=hidarr;}}}}}} var blink_interval={};function blink_set_color_background_interval(el,color,setcolor){if(el.attr('blink_color_background_set')==0){el.attr('blink_color_background_set',1);el.css('background-color',color);}else{el.attr('blink_color_background_set',0);el.css('background-color',setcolor);}} function el_blink_start(func,el,color,setcolor){switch(func){case'fill':el.attr('blink_color_fill',color);el.css('fill',setcolor);break;case'background':if(el.attr('blink_color_background_start')!=='1'){el.attr('blink_color_background_start','1');el.attr('blink_color_background',color);el.css('background-color',setcolor);el.attr('blink_color_background_set',0);blink_interval[el.attr('id')]=setInterval(blink_set_color_background_interval,500,el,color,setcolor);} break;}} function el_blink_stop(el){clearTimeout(blink_interval[el.attr('id')]);if(typeof(el.attr('blink_color_fill'))!=="undefined"){el.css('fill',el.attr('blink_color_fill'));el.removeAttr('blink_color_fill');} if(el.attr('blink_color_background_start')==='1'){el.attr('blink_color_background_start','0');if(typeof(el.attr('blink_color_background'))!=="undefined"){el.css('background-color',el.attr('blink_color_background'));el.removeAttr('blink_color_background');}}} const rgbToHex=(r,g,b)=>'#'+[r,g,b].map(x=>{const hex=x.toString(16) return hex.length===1?'0'+hex:hex}).join('') const hexToRgb=hex=>hex.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i,(m,r,g,b)=>'#'+r+r+g+g+b+b).substring(1).match(/.{2}/g).map(x=>parseInt(x,16)) function DeviceConfigAddFloor(id,name){var floor=$('.SYS_DevicesFloor_T').clone().attr('class','SYS_DevicesFloor').show().attr('did',id);floor.find('.SYS_DevicesFloorName').html(name).attr('title',name);$('.SYS_DevicesFloorCont').append(floor);} function DeviceConfigAddRoom(roomid,name,keyfloor){var roomcont=$('.SYS_DevicesFloor[did="'+keyfloor+'"]').find('.SYS_DevicesRoomsCont');var room=roomcont.find('.SYS_DevicesRoom_T').clone().attr('class','SYS_DevicesRoom').show().attr('did',roomid);room.find('.SYS_DevicesRoomName').html(name).attr('title',name);roomcont.append(room);} function DeviceConfigAddDev(roomid,devid,namedev,typedev){var devcont=$('.SYS_DevicesRoom[did="'+roomid+'"]').find('.SYS_DevicesDevCont');var dev=devcont.find('.SYS_DevicesDev_T').clone().attr('class','SYS_DevicesDev').show().attr('did',devid);dev.find('.SYS_DevicesDevName').html(namedev).attr('title',namedev);dev.find('.SYS_DevicesDevIcon').hide();dev.find('.SYS_DevicesDevIcon[type="'+typedev+'"]').show();devcont.append(dev);} function DeviceConfigAddLogic(logicid,name,type){SystemLog(DevicesConf);var logic=$('.SYS_DevicesLogic_T').clone().attr('class','SYS_DevicesLogic').show().attr('did',logicid);logic.find('.SYS_DevicesLogicName').html(name).attr('title',name);logic.find('.SYS_DevicesLogicIcon').hide();logic.find('.SYS_DevicesLogicIcon[type="'+type+'"]').show();$('.SYS_DevicesLogicsCont').append(logic);} function DevicesSetupAddElement(scenetype,param,conf,xiotconf){var type=xiotconf['type'];var scenename=XiotLogic[scenetype]['ru'];var def=xiotconf['default'];var el=$('
'+xiotconf['name']+'
');switch(type){case'name':if(typeof(conf[param])!=="undefined"){scenename=conf[param];} var div=$('');el.find('.SYS_DevicesSetupBlockPV').append(div);break;case'text':var txt='';if(typeof(conf[param])!=="undefined"){txt=conf[param];} var div=$('');el.find('.SYS_DevicesSetupBlockPV').append(div);break;case'tag':var tag='';if(typeof(conf[param])!=="undefined"){tag=conf[param];} var div=$('');el.find('.SYS_DevicesSetupBlockPV').append(div);break;case'device':el.find('.SYS_DevicesSetupBlockPN').css('width','30%');el.find('.SYS_DevicesSetupBlockPV').css('width','70%');var sel=$('');for(var dev in DevicesConfList){var add=false;if(typeof(xiotconf['device'])==="undefined"){add=true;}else{if(xiotconf['device']==='all'){add=true;}else{var harr=xiotconf['device'].split(',');if(harr.indexOf(DevicesConfList[dev]['type'])!==-1){add=true;}}} if(add===true){var floorid=DevicesConfList[dev]['floor'];var roomid=DevicesConfList[dev]['room'];var hid='/xdev/'+dev;sel.append('');}} if(typeof(conf[param])!=="undefined"){sel.val(conf[param]);conf[param]=def;} el.find('.SYS_DevicesSetupBlockPV').css('height','15vh').append(sel);break;case'deviceh':el.find('.SYS_DevicesSetupBlockPN').css('width','30%');el.find('.SYS_DevicesSetupBlockPV').css('width','70%');var sel=$('');for(var h in CharacteristicsConfList){var add=false;if(typeof(xiotconf['h'])==="undefined"){add=true;}else{if(xiotconf['h']==='all'){add=true;}else{var harr=xiotconf['h'].split(',');if(harr.indexOf(h)!==-1){add=true;}}} if(add===true){for(var dev in CharacteristicsConfList[h]){var devid=dev;var hname=CharacteristicsConfList[h][dev]['name'];sel.append('');}}} if(typeof(conf[param])!=="undefined"){sel.val(conf[param]);} el.find('.SYS_DevicesSetupBlockPV').css('height','15vh').append(sel);break;case'action':var actionsel=$('.SYS_DevicesSetupActionSelect_T').clone().removeClass('SYS_DevicesSetupActionSelect_T').addClass('SYS_DevicesSetupActionSelect').show();if(typeof(conf[param])!=="undefined"){var actionselblock=actionsel.find('.SYS_DevicesSetupActionSelectBlock');actionselblock.attr('arr',param).html('');for(var name in conf[param]){var devname=GetDevName(name);var selblock='
"'+devname+'"
X
';actionselblock.append(selblock);}}else{var selblock='
';actionsel.find('.SYS_DevicesSetupActionSelectBlock').attr('arr',param).html(selblock);} el.find('.SYS_DevicesSetupBlockPN').css('width','20%');el.find('.SYS_DevicesSetupBlockPV').css('height','auto').css('width','80%').append(actionsel);break;case'select':var sel=$('');var option='';for(var key in xiotconf['option']){option=option+''} sel.html(option);if(typeof(conf[param])!=="undefined"){sel.val(conf[param]);}else{sel.val(def);conf[param]=def;} el.find('.SYS_DevicesSetupBlockPV').append(sel);break;case'room':var sel=$('');var option='';for(var roomid in RoomsConfList){option=option+''} sel.html(option);if(typeof(conf[param])!=="undefined"){sel.val(conf[param]);}else{sel.val(def);conf[param]=def;} el.find('.SYS_DevicesSetupBlockPV').append(sel);break;case'number':case'percentage':case'temperature':var input=$('');if(typeof(conf[param])!=="undefined"){input.val(conf[param]);}else{input.val(def);conf[param]=def;} el.find('.SYS_DevicesSetupBlockPV').css('width','calc(50% - 15vh)').append(input);el.append('
'+xiotconf['unit']+'');if(typeof(conf[param])!=="undefined"){input.val(conf[param]);}else{input.val(def);conf[param]=def;} el.find('.SYS_DevicesSetupBlockPV').css('width','calc(50% - 15vh)').append(input);el.append('
'+xiotconf['unit']+'0){for(var floorid in DevicesConf['floors']){var namefloor=DevicesConf['floors'][floorid]['name'];DeviceConfigAddFloor(floorid,namefloor);for(var roomid in DevicesConf['floors'][floorid]['rooms']){var nameroom=DevicesConf['floors'][floorid]['rooms'][roomid]['name'];DeviceConfigAddRoom(roomid,nameroom,floorid);for(var devid in DevicesConf['floors'][floorid]['rooms'][roomid]['devices']){var namedev=DevicesConf['floors'][floorid]['rooms'][roomid]['devices'][devid]['name'];var typedev=DevicesConf['floors'][floorid]['rooms'][roomid]['devices'][devid]['type'];DeviceConfigAddDev(roomid,devid,namedev,typedev);}}} if(typeof(DevicesConf['logic'])!=="undefined"){for(var logicid in DevicesConf['logic']){var name=DevicesConf['logic'][logicid]['Name'];var type=DevicesConf['logic'][logicid]['type'];DeviceConfigAddLogic(logicid,name,type);}}} $('.SYS_DevicesWindow').show();break;case'close':if($('.SYS_DevicesConf').length==0){$('.SYS_Main').append('');} var json=JSON.stringify(DevicesConf);$('.SYS_DevicesConf').attr('json',json);$('.SYS_DevicesWindow').hide();break;case'openfloors':var rc=el.parent().find('.SYS_DevicesRoomsCont') var icon=el.parent().find('.SYS_DevicesFloorIcon');rc.toggle();if(rc.css('display')=='none'){icon.css('transform','rotate(0deg)');}else{icon.css('transform','rotate(90deg)');} break;case'openrooms':var rc=el.parent().find('.SYS_DevicesDevCont') var icon=el.parent().find('.SYS_DevicesRoomIcon');rc.toggle();if(rc.css('display')=='none'){icon.css('transform','rotate(0deg)');}else{icon.css('transform','rotate(90deg)');} break;case'addfloor':if(typeof(DevicesConf['floors'])==="undefined"){DevicesConf['floors']={};} var floorid=1;if(typeof(DevicesConf['floorid'])!=="undefined"){floorid=DevicesConf['floorid']+1;} DevicesConf['floorid']=floorid;var name="Этаж";DevicesConf['floors'][floorid]={};DevicesConf['floors'][floorid]['name']=name;DevicesConf['floors'][floorid]['rooms']={};DeviceConfigAddFloor(floorid,name);break;case'addroom':var floorid=el.closest('.SYS_DevicesFloor').attr('did');var roomid=1;if(typeof(DevicesConf['roomid'])!=="undefined"){roomid=DevicesConf['roomid']+1;} DevicesConf['roomid']=roomid;var name="Комната";if(typeof(DevicesConf['floors'][floorid]['rooms'])==="undefined"){DevicesConf['floors'][floorid]['rooms']={};} DevicesConf['floors'][floorid]['rooms'][roomid]={};DevicesConf['floors'][floorid]['rooms'][roomid]['name']=name;DevicesConf['floors'][floorid]['rooms'][roomid]['floor']=floorid;DevicesConf['floors'][floorid]['rooms'][roomid]['devices']={};DeviceConfigAddRoom(roomid,name,floorid);break;case'adddev':var floorid=el.closest('.SYS_DevicesFloor').attr('did');var roomid=el.closest('.SYS_DevicesRoom').attr('did');var devid=1;if(typeof(DevicesConf['devid'])!=="undefined"){devid=DevicesConf['devid']+1;} DevicesConf['devid']=devid;var namedev="новое";DevicesConf['floors'][floorid]['rooms'][roomid]['devices'][devid]={};DevicesConf['floors'][floorid]['rooms'][roomid]['devices'][devid]['name']=namedev;DevicesConf['floors'][floorid]['rooms'][roomid]['devices'][devid]['type']='none';DevicesConf['floors'][floorid]['rooms'][roomid]['devices'][devid]['floor']=floorid;DevicesConf['floors'][floorid]['rooms'][roomid]['devices'][devid]['room']=roomid;DeviceConfigAddDev(roomid,devid,namedev,'none');break;case'logicsetup':$('.SYS_DevicesSetup').hide();var logicid=el.closest('.SYS_DevicesLogic').attr('did');var logicconf=DevicesConf['logic'][logicid];var type=logicconf['type'];var devsetup=$('.SYS_DevicesSetup[type="logic"]');devsetup.attr('did',logicid).show();devsetup.find('.SYS_DevicesSetupCont[type="left"]').html('');devsetup.find('.SYS_DevicesSetupCont[type="right"]').html('');for(var input in XiotLogic[type]['Input']){var el=DevicesSetupAddElement(type,input,logicconf,XiotLogic[type]['Input'][input]);devsetup.find('.SYS_DevicesSetupCont[type="right"]').append(el);var tag='/xlogic/'+logicid+'/'+input;TagChange('/xtagr'+tag,'0');} for(var output in XiotLogic[type]['Output']){var el=DevicesSetupAddElement(type,output,logicconf,XiotLogic[type]['Output'][output]);devsetup.find('.SYS_DevicesSetupCont[type="right"]').append(el);var tag='/xlogic/'+logicid+'/'+output;TagChange('/xtagr'+tag,'0');} for(var param in XiotLogic[type]['Param']){var el=DevicesSetupAddElement(type,param,logicconf,XiotLogic[type]['Param'][param]);devsetup.find('.SYS_DevicesSetupCont[type="left"]').append(el);var tag='/xlogic/'+logicid+'/'+param;TagChange('/xtagr'+tag,'0');} devsetup.find('.SYS_DevicesSetupTitle').html('Настройка сценария (id='+logicid+')');break;case'homesetup':case'floorsetup':case'roomsetup':case'devsetup':$('.SYS_DevicesSetup').hide();var homeid='1';$('.SYS_DevicesSetup[type="dev"]').find('.SYS_DevicesSetupBlock[func="room"]').hide();$('.SYS_DevicesSetup[type="dev"]').find('.SYS_DevicesSetupBlock[func="type"]').hide();switch(func){case'homesetup':if(typeof(DevicesConf['home'])==="undefined"){DevicesConf['home']={};DevicesConf['home']['name']='Мой дом';} var sv='/xhome/1';var devconf=DevicesConf['home'];var devtype='Home';$('.SYS_DevicesSetup[type="dev"]').show().attr('devtype',devtype).attr('did','1');UiFuncXid='1';FXedit='fxhome';break;case'floorsetup':var floorid=el.closest('.SYS_DevicesFloor').attr('did');var sv='/xfloor/'+floorid;var devconf=DevicesConf['floors'][floorid];var devtype='Floor';$('.SYS_DevicesSetup[type="dev"]').show().attr('devtype',devtype).attr('did',floorid);UiFuncXid=floorid;FXedit='fxfloor';break;case'roomsetup':var floorid=el.closest('.SYS_DevicesFloor').attr('did');var roomid=el.closest('.SYS_DevicesRoom').attr('did');var sv='/xroom/'+roomid;var devconf=DevicesConf['floors'][floorid]['rooms'][roomid];var devtype='Room';$('.SYS_DevicesSetup[type="dev"]').show().attr('devtype',devtype).attr('did',roomid).attr('roomid',roomid).attr('floorid',floorid);UiFuncXid=roomid;FXedit='fxroom';break;case'devsetup':var floorid=el.closest('.SYS_DevicesFloor').attr('did');var roomid=el.closest('.SYS_DevicesRoom').attr('did');var devid=el.closest('.SYS_DevicesDev').attr('did');var sv='/xdev/'+devid;var devconf=DevicesConf['floors'][floorid]['rooms'][roomid]['devices'][devid];var devtype=devconf['type'];$('.SYS_DevicesSetup[type="dev"]').show().attr('devtype',devtype).attr('did',devid).attr('roomid',roomid).attr('floorid',floorid);$('.SYS_DevicesSetup[type="dev"]').find('.SYS_DevicesSetupVal[func="type"]').val(devconf['type']);$('.SYS_DevicesSetup[type="dev"]').find('.SYS_DevicesSetupContType').attr('type',devtype);var seltype=$('');var option='';for(var key in XiotServices){if(['Home','Floor',"Room"].indexOf(key)===-1){option=option+'';}} seltype.html(option);seltype.val(devtype);$('.SYS_DevicesSetup[type="dev"]').find('.SYS_DevicesSetupBlock[func="type"]').find('.SYS_DevicesSetupBlockPV').html(seltype);var selroom=$('');option='';for(var key in RoomsConfList){option=option+'';} selroom.html(option);selroom.val(roomid);$('.SYS_DevicesSetup[type="dev"]').find('.SYS_DevicesSetupBlock[func="room"]').find('.SYS_DevicesSetupBlockPV').html(selroom);$('.SYS_DevicesSetup[type="dev"]').find('.SYS_DevicesSetupTitle').html("Настройка устройства (id "+devid+")");UiFuncXid=devid;FXedit='fxdev';$('.SYS_DevicesSetup[type="dev"]').find('.SYS_DevicesSetupBlock[func="room"]').show();$('.SYS_DevicesSetup[type="dev"]').find('.SYS_DevicesSetupBlock[func="type"]').show();break;} $('.SYS_DevicesSetup[type="dev"]').find('.SYS_DevicesSetupVal[func="name"]').val(devconf['name']);var Dct=$('.SYS_DevicesSetup[type="dev"]').find('.SYS_DevicesSetupContType');Dct.find('.SYS_DevicesSetupBlock').remove();var Dscr=$('.SYS_DevicesSetup[type="dev"]').find('.SYS_DevicesSetupCont[type="right"]');Dscr.find('.SYS_DevicesSetupBlock').remove();if(typeof(XiotServices[devtype])!=="undefined"){var numh=0;for(var key in XiotServices[devtype]['RequiredCharacteristics']){numh++;var rh=XiotServices[devtype]['RequiredCharacteristics'][key];var DevicesSetupBlock=$('.SYS_DevicesSetupBlock_T').clone();DevicesSetupBlock.attr('class','SYS_DevicesSetupBlock').attr('arr','rh').attr('arr2',rh).show();try{var rhname=XiotCharacteristics[rh]['ru'];}catch(e){var rhname=rh;} try{var desc=XiotCharacteristics[rh]['desc'];}catch(e){var desc=rhname;} DevicesSetupBlock.find('.SYS_DevicesSetupBlockTitle').html(rhname).attr('title',desc);if(typeof(devconf['rh'])==='undefined'){devconf['rh']={};} if(typeof(devconf['rh'][rh])==='undefined'){devconf['rh'][rh]={};} devconf['rh'][rh]['num']=numh;try{if(typeof(XiotCharacteristics[rh])!=='undefined'){for(var key2 in XiotCharacteristics[rh]['Permissions']){switch(XiotCharacteristics[rh]['Permissions'][key2]){case'pw':DevicesSetupBlock.find('.SYS_DevicesSetupVal[func="control"]').prop('disabled',false).css('background-color','white');break;case'pr':DevicesSetupBlock.find('.SYS_DevicesSetupVal[func="status"]').prop('disabled',false).css('background-color','white');break;}}}}catch(e){SystemLog(e);DevicesSetupBlock.find('.SYS_DevicesSetupVal[func="control"]').prop('disabled',false).css('background-color','white');DevicesSetupBlock.find('.SYS_DevicesSetupVal[func="status"]').prop('disabled',false).css('background-color','white');} DevicesSetupBlock.find('.SYS_DevicesSetupVal[func="active"]').prop('checked',true);DevicesSetupBlock.find('.SYS_DevicesSetupVal[func="active"]').prop('disabled',true);DevicesSetupBlock.find('.SYS_DevicesSetupVal[func="control"]').attr('tagtype','all');DevicesSetupBlock.find('.SYS_DevicesSetupVal[func="status"]').attr('tagtype','all');if(typeof(devconf['rh'])!=="undefined"){if(typeof(devconf['rh'][rh])!=="undefined"){if(typeof(devconf['rh'][rh]['control'])!=="undefined"){DevicesSetupBlock.find('.SYS_DevicesSetupVal[func="control"]').val(devconf['rh'][rh]['control']);} if(typeof(devconf['rh'][rh]['status'])!=="undefined"){DevicesSetupBlock.find('.SYS_DevicesSetupVal[func="status"]').val(devconf['rh'][rh]['status']);} try{if(typeof(XiotCharacteristics[rh])!=='undefined'){if(typeof(XiotCharacteristics[rh]["link"])!=="undefined"){if(XiotCharacteristics[rh]["link"]=="0"){DevicesSetupBlock.find('.SYS_ElEditorBut').hide();}}}}catch(e){SystemLog(e);} if(typeof(devconf['rh'][rh]['link'])!=="undefined"){if(devconf['rh'][rh]['link']=='1'){DevicesSetupBlock.find('.SYS_DevicesSetupVal[func="link"]').prop('checked',true);}else{DevicesSetupBlock.find('.SYS_DevicesSetupVal[func="link"]').prop('checked',false);}}}} var tag='/xtagr'+sv+'/'+rh;DevicesSetupBlock.attr('hn',rh);Dct.append(DevicesSetupBlock);TagChange(tag,'0');} for(var key in XiotServices[devtype]['OptionalCharacteristics']){numh++;var oh=XiotServices[devtype]['OptionalCharacteristics'][key];var DevicesSetupBlock=$('.SYS_DevicesSetupBlock_T').clone();DevicesSetupBlock.attr('class','SYS_DevicesSetupBlock').attr('arr','oh').attr('arr2',oh).show();try{var rhname=XiotCharacteristics[oh]['ru'];}catch(e){var rhname=oh;} try{var desc=XiotCharacteristics[oh]['desc'];}catch(e){var desc=rhname;} DevicesSetupBlock.find('.SYS_DevicesSetupBlockTitle').html(rhname).attr('title',desc);if(typeof(devconf['oh'])==='undefined'){devconf['oh']={};} if(typeof(devconf['oh'][oh])==='undefined'){devconf['oh'][oh]={};} devconf['oh'][oh]['num']=numh;for(var key2 in XiotCharacteristics[oh]['Permissions']){switch(XiotCharacteristics[oh]['Permissions'][key2]){case'pw':DevicesSetupBlock.find('.SYS_DevicesSetupVal[func="control"]').prop('disabled',false).css('background-color','white');break;case'pr':DevicesSetupBlock.find('.SYS_DevicesSetupVal[func="status"]').prop('disabled',false).css('background-color','white');break;}} DevicesSetupBlock.find('.SYS_DevicesSetupVal[func="control"]').attr('tagtype','all');DevicesSetupBlock.find('.SYS_DevicesSetupVal[func="status"]').attr('tagtype','all');if(typeof(devconf['oh'])!=="undefined"){if(typeof(devconf['oh'][oh])!=="undefined"){if(typeof(devconf['oh'][oh]['control'])!=="undefined"){DevicesSetupBlock.find('.SYS_DevicesSetupVal[func="control"]').val(devconf['oh'][oh]['control']);} if(typeof(devconf['oh'][oh]['status'])!=="undefined"){DevicesSetupBlock.find('.SYS_DevicesSetupVal[func="status"]').val(devconf['oh'][oh]['status']);} if(typeof(devconf['oh'][oh]['active'])!=="undefined"){if(devconf['oh'][oh]['active']=='1'){DevicesSetupBlock.find('.SYS_DevicesSetupVal[func="active"]').prop('checked',true);}else{DevicesSetupBlock.find('.SYS_DevicesSetupVal[func="active"]').prop('checked',false);}} if(typeof(XiotCharacteristics[oh]["link"])!=="undefined"){if(XiotCharacteristics[oh]["link"]=="0"){DevicesSetupBlock.find('.SYS_ElEditorBut').hide();}} if(typeof(devconf['oh'][oh]['link'])!=="undefined"){if(devconf['oh'][oh]['link']=='1'){DevicesSetupBlock.find('.SYS_DevicesSetupVal[func="link"]').prop('checked',true);}else{DevicesSetupBlock.find('.SYS_DevicesSetupVal[func="link"]').prop('checked',false);}}}} var tag='/xtagr'+sv+'/'+oh;DevicesSetupBlock.attr('hn',oh);Dct.append(DevicesSetupBlock);TagChange(tag,'0');} if(typeof(devconf['param'])==="undefined"){devconf['param']={};} for(var key in XiotServices[devtype]['Param']){var param=XiotServices[devtype]['Param'][key];var DevicesSetupBlock=$('.SYS_DevicesSetupBlock_T2').clone();DevicesSetupBlock.attr('class','SYS_DevicesSetupBlock').attr('arr','param').show();DevicesSetupBlock.find('.SYS_DevicesSetupBlockPN').html(param['name']);if(typeof(param['unit'])!=="undefined"){DevicesSetupBlock.find('.SYS_DevicesSetupBlockPU').html(param['unit']);} switch(param['type']){case'fxlogic':var len=0;if(typeof(devconf['param'][key])!=="undefined"){len=Object.keys(devconf['param'][key]).length;} DevicesSetupBlock.find('.SYS_DevicesSetupBlockPV').css('width','auto').html('
элементов - '+len+'
');var SYS_FxDevLogicMenu=$('.SYS_FxDevLogicMenu_T').clone().attr('class','SYS_FxDevLogicMenu').show();DevicesSetupBlock.find('.SYS_DevicesSetupBlockPU').css('width','auto').html(SYS_FxDevLogicMenu);break;case'number':var input=DevicesSetupBlock.find('.SYS_DevicesSetupBlockPV').find('input');if(typeof(param['min'])!=="undefined"){input.attr('min',param['min']);} if(typeof(param['max'])!=="undefined"){input.attr('max',param['max']);} input.attr('func',key);if(typeof(devconf['param'][key])!=="undefined"){input.val(devconf['param'][key]);}else{devconf['param'][key]=param['default'];if(typeof(param['default'])!=="undefined"){input.val(param['default']);}} break;case'select':DevicesSetupBlock.find('.SYS_DevicesSetupBlockPV').css('width','50%').html('');DevicesSetupBlock.find('.SYS_DevicesSetupBlockPU').hide();var select=DevicesSetupBlock.find('.SYS_DevicesSetupBlockPV').find('select');for(var sel in param["option"]){select.append('');} if(typeof(devconf['param'][key])!=="undefined"){select.val(devconf['param'][key]);}else{if(typeof(param['default'])!=="undefined"){devconf['param'][key]=param['default'];select.val(param['default']);}} break;case'tag':DevicesSetupBlock.find('.SYS_DevicesSetupBlockPV').css('width','50%').html(' ');DevicesSetupBlock.find('.SYS_DevicesSetupBlockPU').hide();if(typeof(devconf['param'][key])!=="undefined"){DevicesSetupBlock.find('.SYS_DevicesSetupBlockPV').find('input').val(devconf['param'][key]);} break;case'devcontrol':break;case'device':DevicesSetupBlock.find('.SYS_DevicesSetupBlockPN').css('width','30%');DevicesSetupBlock.find('.SYS_DevicesSetupBlockPV').css('width','70%').html('');DevicesSetupBlock.find('.SYS_DevicesSetupBlockPU').hide();var select=$('');for(var dev in DevicesConfList){var add=false;if(typeof(param['device'])==="undefined"){add=true;}else{if(param['device']==='all'){add=true;}else{if(param['device']==DevicesConfList[dev]['type']){add=true;}}} if(add===true){select.append('');}} DevicesSetupBlock.find('.SYS_DevicesSetupBlockPV').css('height','15vh').append(select);if(typeof(devconf['param'][key])!=="undefined"){DevicesSetupBlock.find('.SYS_DevicesSetupBlockPV').find('select').val(devconf['param'][key]);} break;} var tag='/xtagr'+sv+'/'+key;DevicesSetupBlock.attr('hn',key);Dscr.append(DevicesSetupBlock);TagChange(tag,'0');}} break;case'setupval':var type=el.attr('type');var func=el.attr('func');var eltype=el.attr('el');var DeviceSetupType=el.closest('.SYS_DevicesSetup').attr('type');var val='';switch(DeviceSetupType){case'logic':var logicid=el.closest('.SYS_DevicesSetup').attr('did');switch(func){case'Name':$('.SYS_DevicesLogic[did="'+logicid+'"]').find('.SYS_DevicesLogicName').html(val);break;} switch(eltype){case'input':case'select':val=el.val();break;case'checkbox':if(el.is(":checked")){val='1';}else{val='0';} break;case'inputblock':var func=el.closest('.SYS_DevicesSetupActionSelectBlock').attr('arr');var val={};el.closest('.SYS_DevicesSetupActionSelectBlock').find('.SYS_DevicesSetupActionCont').each(function(){var h=$(this).find('div[func="h"]').attr('value');var v=$(this).find('input[func="v"]').val();val[h]=v;});break;} DevicesConf['logic'][logicid][func]=val;var tag='/xlogic/'+logicid+'/'+func;TagChange(tag,val) break;case'dev':switch(eltype){case'input':case'select':val=el.val();break;case'checkbox':if(el.is(":checked")){val='1';}else{val='0';} break;} var devid=el.closest('.SYS_DevicesSetup').attr('did');var devtype=el.closest('.SYS_DevicesSetup').attr('devtype');switch(devtype){case'Home':var dc=DevicesConf['home'];var sv='/xhome/1';break;case'Floor':var dc=DevicesConf['floors'][devid];var sv='/xfloor/'+devid;break;case'Room':var floorid=el.closest('.SYS_DevicesSetup').attr('floorid');var dc=DevicesConf['floors'][floorid]['rooms'][devid];var sv='/xroom/'+devid;break;default:var floorid=el.closest('.SYS_DevicesSetup').attr('floorid');var roomid=el.closest('.SYS_DevicesSetup').attr('roomid');var dc=DevicesConf['floors'][floorid]['rooms'][roomid]['devices'][devid];var sv='/xdev/'+devid;} if(typeof(el.attr('arr'))!=="undefined"){var arr=el.attr('arr');if(arr==='*'){arr=el.closest('.SYS_DevicesSetupBlock').attr('arr');} if(typeof(dc[arr])==="undefined"){dc[arr]={};} if(typeof(el.attr('arr2'))!=="undefined"){var arr2=el.attr('arr2');if(arr2==='*'){arr2=el.closest('.SYS_DevicesSetupBlock').attr('arr2');} if(typeof(dc[arr][arr2])==="undefined"){dc[arr][arr2]={};} dc[arr][arr2][func]=val;}else{dc[arr][func]=val;}}else{dc[func]=val;} switch(func){case'name':switch(devtype){case'Home':$('.SYS_DevicesHome[did="'+devid+'"]').find('.SYS_DevicesHomeName').html(val);break;case'Floor':$('.SYS_DevicesFloor[did="'+devid+'"]').find('.SYS_DevicesFloorName').html(val);break;case'Room':$('.SYS_DevicesRoom[did="'+devid+'"]').find('.SYS_DevicesRoomName').html(val);break;default:$('.SYS_DevicesDev[did="'+devid+'"]').find('.SYS_DevicesDevName').html(val);} break;case'type':$('.SYS_DevicesDev[did="'+devid+'"]').find('.SYS_DevicesDevIcon').hide();$('.SYS_DevicesDev[did="'+devid+'"]').find('.SYS_DevicesDevIcon[type="'+val+'"]').show();$('.SYS_DevicesSetup[type="dev"]').find('.SYS_DevicesSetupContType').attr('type',val);var el=$('.SYS_DevicesDev[did="'+devid+'"]').find('.SYS_DevicesDevMenuBut[type="devsetup"]');DeviceConfig('devsetup',el);break;case'room':if(val!==roomid){var floorid2=RoomsConfList[val]['floor'];DevicesConf['floors'][floorid2]['rooms'][val]['devices'][devid]=dc;delete(DevicesConf['floors'][floorid]['rooms'][roomid]['devices'][devid]);DeviceConfig('start',$('.SYS_none'));} break;} if(func=='value'){var hn=el.closest('.SYS_DevicesSetupBlock').attr('hn');var tag=sv+'/'+hn;TagChange(tag,val)} break;} break;case'devdel':var result=confirm('Удалить устройсво?');if(result){$('.SYS_DevicesSetup').hide();var floorid=el.closest('.SYS_DevicesFloor').attr('did');var roomid=el.closest('.SYS_DevicesRoom').attr('did');var devid=el.closest('.SYS_DevicesDev').attr('did');delete(DevicesConf['floors'][floorid]['rooms'][roomid]['devices'][devid]);el.closest('.SYS_DevicesDev').remove();} break;case'roomdel':var result=confirm('Удалить комнату?');if(result){$('.SYS_DevicesSetup').hide();var floorid=el.closest('.SYS_DevicesFloor').attr('did');var roomid=el.closest('.SYS_DevicesRoom').attr('did');if(Object.keys(DevicesConf['floors'][floorid]['rooms'][roomid]['devices']).length>0){alert('Нельзя удалить комнату с устройствами, сначала удалите или переместите устройства из комнаты');}else{delete(DevicesConf['floors'][floorid]['rooms'][roomid]);el.closest('.SYS_DevicesRoom').remove();}} break;case'floordel':var result=confirm('Удалить этаж?');if(result){$('.SYS_DevicesSetup').hide();var floorid=el.closest('.SYS_DevicesFloor').attr('did');if(Object.keys(DevicesConf['floors'][floorid]['rooms']).length>0){alert('Нельзя удалить этаж с комнатами, сначала удалите или переместите комнаты из этажа');}else{delete(DevicesConf['floors'][floorid]);el.closest('.SYS_DevicesFloor').remove();}} break;case'logicdel':var result=confirm('Удалить сценарий?');if(result){$('.SYS_DevicesSetup').hide();var logicid=el.closest('.SYS_DevicesLogic').attr('did');delete(DevicesConf['logic'][logicid]);el.closest('.SYS_DevicesLogic').remove();} break;case'logiclist':$('.SYS_DevicesSetup').hide();$('.SYS_DevicesSetupAddLogicCont').html('');for(var logic in XiotLogic){$('.SYS_DevicesSetupAddLogicCont').append('
'+XiotLogic[logic]['ru']+'
');} $('.SYS_DevicesSetup[type="logiclist"]').show();break;case'logicadd':var type=el.attr('logic');if(typeof(DevicesConf['logic'])==="undefined"){DevicesConf['logic']={};} var logicid=1;if(typeof(DevicesConf['logicid'])!=="undefined"){logicid=DevicesConf['logicid']+1;} DevicesConf['logicid']=logicid;var name=XiotLogic[type]['ru'];DevicesConf['logic'][logicid]={};DevicesConf['logic'][logicid]['Name']=name;DevicesConf['logic'][logicid]['type']=type;DevicesConf['logic'][logicid]['param']={};DeviceConfigAddLogic(logicid,name,type);break;} ConfListCreate();} function TagSelectBlockShow(){var tags=JSON.parse($('.SYS_Tags').attr('json'));$('.SYS_TagSelectList').html('');var tagssel=TagSelectVal.val();if(tagssel!==''){tagssel=tagssel.split(';');for(var key in tagssel){var tagsel=tagssel[key];var tagname='....';if(tags[tagsel]){tagname=tags[tagsel]['name'];$('.SYS_TagSelectList').append('
'+tagname+'
'+tagsel+'
х
');}}} $('.SYS_TagSelectBlock').show();} function LinkDevSelectBlockShow(){$('.SYS_LinkDevSelectList').html('');$('.SYS_LinkDevSelectBlock').show();var func=$('.SYS_LinkDevSelectBlock').attr('func');SystemLog(DevicesConf);if(typeof(DevicesConf['floors'])!=="undefined"){switch(func){case'fx':var key=$('.SYS_LinkDevSelectBlock').attr('key');var param=$('.SYS_LinkDevSelectBlock').attr('param');$('.SYS_LinkDevSelectBlock').find('.SYS_LinkDevSelectList').html('');var elxid=$("#"+UiFuncXid);$('.SYS_LinkDevSelectBlockGroupTitle[group="tagattr"]').remove();$('.SYS_LinkDevSelectBlockGroup[group="tagattr"]').remove();if(elxid.attr('linkdev')){var SYS_LinkDevAttr=$('
Характеристики устройств текущего элемента
');$('.SYS_LinkDevSelectList').prepend(SYS_LinkDevAttr);var ArrLinkDev=JSON.parse(elxid.attr('linkdev'));SystemLog(ArrLinkDev);for(var dev in ArrLinkDev){$('.SYS_LinkDevSelectBlockGroup[group="tagattr"]').append('
'+dev+'
');}} break;case'dev':break;} var table=$('
');for(var h in DevicesConf['home']['rh']){var homename=DevicesConf['home']['name'];var hid='home/1/'+h;try{var hname=XiotCharacteristics[h]['ru'];}catch(err){var hname=h;} var txt=homename+' - '+hname;table.append('
'+txt+'
');} for(var floorid in DevicesConf['floors']){var floor=DevicesConf['floors'][floorid];var floorname=floor['name'];for(var h in floor['rh']){var hid='floor/'+floorid+'/'+h;try{var hname=XiotCharacteristics[h]['ru'];}catch(err){var hname=h;} var txt=floorname+' - '+hname;table.append('
'+txt+'
');} for(var roomid in DevicesConf['floors'][floorid]['rooms']){var room=DevicesConf['floors'][floorid]['rooms'][roomid];var roomname=room['name'];for(var h in room['rh']){var hid='room/'+roomid+'/'+h;try{var hname=XiotCharacteristics[h]['ru'];}catch(err){var hname=h;} var txt=floorname+' - '+roomname+' - '+hname;table.append('
'+txt+'
');} var devices=DevicesConf['floors'][floorid]['rooms'][roomid]['devices'];for(var devid in devices){var devname=devices[devid]['name'];for(var h in devices[devid]['rh']){var hid='dev/'+devid+'/'+h;try{var hname=XiotCharacteristics[h]['ru'];}catch(err){var hname=h;} var txt=floorname+' - '+roomname+' - '+devname+' - '+hname;table.append('
'+txt+'
');} for(var h in devices[devid]['oh']){if(devices[devid]['oh'][h]['active']=='1'){var hid='dev/'+devid+'/'+h;try{var hname=XiotCharacteristics[h]['ru'];}catch(err){var hname=h;} var txt=floorname+' - '+roomname+' - '+devname+' - '+hname;table.append('
'+txt+'
');}}}}} for(var lid in DevicesConf['logic']){var type=DevicesConf['logic'][lid]['type'];var name=DevicesConf['logic'][lid]['Name'];try{for(var h in XiotLogic[type]['Param']){var txt=name+' - '+XiotLogic[type]['Param'][h]['name'];var hid='logic/'+lid+'/'+h;table.append('
'+txt+'
');}}catch(err){console.log(err);}} $('.SYS_LinkDevSelectList').append(table);}else{alert('Устройства не добавлены!')}} function WindowsReload(before){switch(before){case false:$(window).off("beforeunload") break;} window.location.reload();} function ScreenOrientation(type){if(localStorage.getItem('app')!==null){switch(type){case'portrait':screen.orientation.lock('portrait');ReloadParamPrint('style');break;case'landscape':screen.orientation.lock('landscape');ReloadParamPrint('style');break;case'0':var cur=screen.orientation;screen.orientation.lock(cur);screen.orientation.unlock();ReloadParamPrint('style');break;default:screen.orientation.unlock();}}} function updateURL(link){if(history.pushState){if(link!==""){link='#!'+link;} var baseUrl=window.location.protocol+"//"+window.location.host+window.location.pathname;var newUrl=baseUrl+link;history.pushState(null,null,newUrl);}else{console.warn('History API не поддерживается');}} function openpagetag(page){var orientlock='all';if(typeof(page.attr('param'))!=="undefined"){SystemLog(page.attr('param'));var param=JSON.parse(page.attr('param'));SystemLog(param);if(typeof(page.attr('param'))!=="undefined"){orientlock=param['orientlock'];}} var tagarr=[];page.find('div').each(function(){var id=$(this).attr('id');if(typeof(ElTagsArr[id])!=="undefined"){for(var tag in ElTagsArr[id]){tagarr.push(tag);}}});if(tagarr.length>0){var tagarrjson=JSON.stringify(tagarr);TagChange('/xtagr/arr',tagarrjson);}} function openpage(page,func){try{if(page.find('div[type="HistoryTable"]').length>0){page.find('div[type="HistoryTable"]').each(function(){History_constructor.SYS('OpenPageTable',$(this));});}}catch(e){alert('error openpage '+e);} if(page.attr('type')==='Page'){$('div[type="SYS_Page"]').hide();$('.SYS_Main').find('div[type="Page"]').css('display','none').attr('select','0');page.css('display','block').attr('select','1');if(typeof(page.attr('param'))=='object'){var param=JSON.parse(page.attr('param'));switch(param['orientlock']){case'portrait':ScreenOrientation('portrait');break;case'landscape':ScreenOrientation('landscape');break;default:ScreenOrientation('all');}} var id=page.attr('id');updateURL(id);if(EditorOpenCloseFlag===false){setTimeout(openpagetag,500,page);}} if(page.attr('type')==='SYS_Page'){PreviorPage=$('.SYS_Main').find('div[type="Page"][select="1"]');$('.SYS_Main').find('div[type="Page"]').hide();page.css('display','block');} if(EditorOpenCloseFlag===false){if(page.find('div[name=SYS_Message]').length>0){Message_constructor.SYS('SYS_Message_But_Restart',page.find('div[name=SYS_Message]'));} if(page.find('div[name=SYS_SetupHistoryT]').length>0){History_constructor.SYS('OpenPage',page.find('div[name=SYS_SetupHistory]'));}}} window.onpopstate=function(event){var hash=window.location.hash;if(typeof(hash)==='string'){var page_id=hash.replace('#!','');openpage($('#'+page_id),'window.onpopstate');}};function TimeHide(pop){pop.attr('show','0');pop.attr('hiderun','0');if(localStorage.getItem('editor')==='1'){StructurePopupView();}} function PopupLife(pop,life){if(life>0){if(pop.attr('sthide')!==undefined){var sthide=pop.attr('sthide');clearTimeout(sthide);} if(localStorage.getItem('editor')!=='1'){var st=setTimeout(PopupEffect,life,pop,'Hide');pop.attr('sthide',st);}}} function sleep(ms){return new Promise(resolve=>setTimeout(resolve,ms));} function PopupEffect(pop,param){var styleall=pop.attr('styleall');var styleallarr=styleall.split(';');styleall={};for(var t in styleallarr){var pv=styleallarr[t].split(':');styleall[pv[0]]=pv[1];} var opacity=1;var left=0;var top=0;var width=0;var height=0;SystemLog(styleall);if(styleall['opacity']!==undefined){opacity=styleall['opacity'];} if(styleall['left']!==undefined){left=styleall['left'];} if(styleall['top']!==undefined){top=styleall['top'];} if(styleall['width']!==undefined){width=styleall['width'];} if(styleall['height']!==undefined){height=styleall['height'];} switch(param){case'Show':pop.attr('hiderun','0');if(pop.attr('param')!==undefined){var param=JSON.parse(pop.attr('param'));var timeshow=parseInt(param['timeshow']);var life=parseInt(param['life']);if(timeshow>0){var transition=parseFloat(timeshow)/1000;switch(param['effectshow']){case'opacity':clearTimeout(pop.attr('sthide2'));pop.css('top',top);pop.css('left',left);if(pop.attr('hiderun')!=='1'){pop.css('transition','opacity 0s linear');pop.css('opacity','0');} pop.attr('show','1');sleep(10).then(()=>{pop.css('transition','opacity '+transition+'s linear');pop.css('opacity',opacity);});break;case'left':clearTimeout(pop.attr('sthide2'));pop.css('top',top);if(pop.attr('hiderun')!=='1'){pop.css('transition','left 0s linear');pop.css('left','-'+width);} pop.attr('show','1');sleep(10).then(()=>{pop.css('transition','left '+transition+'s linear');pop.css('left',left);});break;case'right':pop.css('top',top);clearTimeout(pop.attr('sthide2'));if(pop.attr('hiderun')!=='1'){pop.css('transition','left 0s linear');pop.css('left',parseInt($('.SYS_Main').css('width'))+'px');} pop.attr('show','1');sleep(10).then(()=>{pop.css('transition','left '+transition+'s linear');pop.css('left',left);});break;case'top':pop.css('left',left);clearTimeout(pop.attr('sthide2'));if(pop.attr('hiderun')!=='1'){pop.css('transition','top 0s linear');pop.css('top','-'+height);} pop.attr('show','1');sleep(10).then(()=>{pop.css('transition','top '+transition+'s linear');pop.css('top',top);});break;case'bottom':pop.css('left',left);clearTimeout(pop.attr('sthide2'));if(pop.attr('hiderun')!=='1'){pop.css('transition','top 0s linear');pop.css('top',parseInt($('.SYS_Main').css('height'))+'px');} pop.attr('show','1');sleep(10).then(()=>{pop.css('transition','top '+transition+'s linear');pop.css('top',top);});break;default:clearTimeout(pop.attr('sthide2'));pop.attr('show','1');} PopupLife(pop,timeshow+life);}else{pop.attr('show','1');PopupLife(pop,life);}}else{pop.attr('show','1');PopupLife(pop,life);} pop.attr('show','1');var tagarr=[];pop.find('div').each(function(){var id=$(this).attr('id');if(typeof(ElTagsArr[id])!=="undefined"){for(var tag in ElTagsArr[id]){tagarr.push(tag);}}});if(tagarr.length>0){var tagarrjson=JSON.stringify(tagarr);TagChange('/xtagr/arr',tagarrjson);} break;case'Hide':if(pop.attr('show')=='0'){return;} if(pop.attr('hiderun')==='1'){return;} if(pop.attr('param')!==undefined){var param=JSON.parse(pop.attr('param'));if(param['timehide']>0){var transition=parseFloat(param['timehide'])/1000;switch(param['effecthide']){case'opacity':pop.css('transition','opacity 0s linear');pop.css('opacity',opacity);pop.css('transition','opacity '+transition+'s linear');pop.css('opacity','0');pop.attr('hiderun','1');var sthide2=setTimeout(TimeHide,param['timehide'],pop);pop.attr('sthide2',sthide2);break;case'left':pop.css('transition','left '+transition+'s linear');pop.css('left','-'+width);pop.attr('hiderun','1');var sthide2=setTimeout(TimeHide,param['timehide'],pop);pop.attr('sthide2',sthide2);break;case'right':pop.css('transition','left '+transition+'s linear');pop.css('left',parseInt($('.SYS_Main').css('width'))+'px');pop.attr('hiderun','1');var sthide2=setTimeout(TimeHide,param['timehide'],pop);pop.attr('sthide2',sthide2);break;case'top':pop.css('transition','top '+transition+'s linear');pop.css('top','-'+height);pop.attr('hiderun','1');var sthide2=setTimeout(TimeHide,param['timehide'],pop);pop.attr('sthide2',sthide2);break;case'bottom':pop.css('transition','top '+transition+'s linear');pop.css('top',parseInt($('.SYS_Main').css('height'))+'px');pop.attr('hiderun','1');var sthide2=setTimeout(TimeHide,param['timehide'],pop);pop.attr('sthide2',sthide2);break;default:pop.attr('show','0');}}else{pop.attr('show','0');}}else{pop.attr('show','0');} break;case'ShowHide':if(pop.attr('show')==='0'||pop.attr('hiderun')==='1'){PopupEffect(pop,'Show');}else{if(pop.attr('show')!=='0'&&pop.attr('hiderun')!=='1'){PopupEffect(pop,'Hide');}} break;}} function StyleApply(el,sel,reset){el.attr('stylesel',sel);if(reset===true){el.attr('style',el.attr('styleall'));} if(sel!=='all'){var stylesel=el.attr('style'+sel);if(typeof(stylesel)!=="undefined"){stylesel=stylesel.trim() if(stylesel!==""){var stylearr=stylesel.split(';');for(var key in stylearr){var sp=stylearr[key].split(':');if(typeof(sp[0])!=="undefined"&&typeof(sp[1])!=="undefined"){el.css(sp[0],sp[1]);}}}}}} function HtmlApply(el,htmlsel){switch(el.attr('type')){case'svg':if(el.find('.SYS_HtmlSel[sel="'+htmlsel+'"]').length>0){el.find('.SYS_HtmlSel').hide();el.find('.SYS_HtmlSel[sel="'+htmlsel+'"]').show();} break;case'text':try{var langsel='ru';if(localStorage.getItem('lang')){langsel=localStorage.getItem('lang');} if(typeof(el.attr('langsel'))!=="undefined"){langsel=el.attr('langsel');} if(typeof(el.attr('html'+htmlsel+langsel))!=="undefined"){if(el.attr('html'+htmlsel+langsel)!==''){el.html(el.attr('html'+htmlsel+langsel));}}else{if(typeof(el.attr('html'+htmlsel))!=="undefined"){if(el.attr('html'+htmlsel)!==''){el.html(el.attr('html'+htmlsel));}}}}catch(e){console.log('HtmlApply text '+e);} break;}} function xcss(xid,param,value,funcel){switch(funcel){case'style':var css=$('style#CSS_portrait');break;default:var css=$('style#CSS_portrait');} var cssall=css.html();var cssnew='/*'+xid+'*/#'+xid+'{'+param+':'+value+';}/*'+xid+'*/';var result='';var cssarr=[];var allcss=[];if(cssall){cssarr=cssall.split('/*'+xid+'*/');if(cssarr[1]){cssarr[1]=cssarr[1].replace('#'+xid+'{','').replace('}','');var arrcss=cssarr[1].split(';');for(var i=0;i=100){returnval=100;} if(t=='TLPR'||t=='TLR'){value=(100-returnval);}else{value=returnval;} if(t=='TLP'||t=='TLPR'){value=value+"%";} break;case'TT':case'TTR':case'TTP':case'TTPR':var t=value;var touchYT=$('body').attr('touchY')-parseInt(offsettop);var returnval=parseInt(parseInt(touchYT)/parseInt(el.css('height'))*100);if(returnval<=0){returnval=0;} if(returnval>=100){returnval=100;} if(t=='TTPR'||t=='TTR'){value=(100-returnval);}else{value=returnval;} if(t=='TTP'||t=='TTPR'){value=value+"%";} SystemLog(value);break;case'TP':case'TPR':var topel=parseInt(el.css('top'));var Pheight=parseInt(el.parent().css('height'));var topD=topel+(touchY-(parseInt($('body').attr('touchY'))||0));var returnval=(topD/Pheight*100).toFixed();if(returnval<=0){returnval=0;} if(returnval>=100){returnval=100;} if(value=='TPR'){value=(100-returnval)+'%';}else{value=returnval+'%';} break;case'ROTATE':var centerY=parseInt(el.offset().top)+parseInt(el.css('height'))/2,centerX=parseInt(el.offset().left)+parseInt(el.css('width'))/2,radians=Math.atan2(parseInt($('body').attr('touchX'))-centerX,parseInt($('body').attr('touchY'))-centerY),degrees=(radians*(180/Math.PI)*-1)+180;var value=parseInt(degrees);break;case'ROTATE90':var centerY=parseInt(el.offset().top)+parseInt(el.css('height'))/2,centerX=parseInt(el.offset().left)+parseInt(el.css('width'))/2,radians=Math.atan2(parseInt($('body').attr('touchX'))-centerX,parseInt($('body').attr('touchY'))-centerY),degrees=(radians*(180/Math.PI)*-1)+180;var value=parseInt(degrees);break;case'ROTATE180':var centerY=parseInt(el.offset().top)+parseInt(el.css('height'))/2,centerX=parseInt(el.offset().left)+parseInt(el.css('width'))/2,radians=Math.atan2(parseInt($('body').attr('touchX'))-centerX,parseInt($('body').attr('touchY'))-centerY),degrees=(radians*(180/Math.PI)*-1)+180;degrees=degrees+180;if(degrees>360){degrees=degrees-360;} var value=parseInt(degrees);break;case'ROTATE270':var centerY=parseInt(el.offset().top)+parseInt(el.css('height'))/2,centerX=parseInt(el.offset().left)+parseInt(el.css('width'))/2,radians=Math.atan2(parseInt($('body').attr('touchX'))-centerX,parseInt($('body').attr('touchY'))-centerY),degrees=(radians*(180/Math.PI)*-1)+180;var value=parseInt(degrees);break;case'CPRGB':var rgb=ResColorPicker(el,'RGB');value='rgb('+rgb[0]+','+rgb[1]+','+rgb[2]+')';break;case'CP(R;G;B)':var rgb=ResColorPicker(el,'RGB');value=rgb[0]+';'+rgb[1]+';'+rgb[2];break;case'CP(R,G,B)':var rgb=ResColorPicker(el,'RGB');value=rgb[0]+','+rgb[1]+','+rgb[2];break;case'CP(R;G;B)':var rgb=ResColorPicker(el,'RGB');value=rgb[0]+';'+rgb[1]+';'+rgb[2];break;case'CPR':value=ResColorPicker(el,'R');break;case'CPG':value=ResColorPicker(el,'G');break;case'CPB':value=ResColorPicker(el,'B');break;case'CPRP':var rgb=ResColorPicker(el,'R');var value=parseInt(rgb/255*100);var value=value+'%' break;case'CPRPR':var rgb=ResColorPicker(el,'R');value=100-parseInt(rgb/255*100);value=value+'%' break;case'CPGP':var rgb=ResColorPicker(el,'G');value=parseInt(rgb/255*100);value=value+'%' break;case'CPGPR':var rgb=ResColorPicker(el,'G');var value=100-parseInt(rgb/255*100);var value=value+'%' break;case'CPBP':var rgb=ResColorPicker(el,'B');value=parseInt(rgb/255*100);value=value+'%' break;case'CPBPR':var rgb=ResColorPicker(el,'B');value=100-parseInt(rgb/255*100);value=value+'%' break;case'OT':value=el.offset().top;break;case'OL':value=el.offset().left;break;case'PT':value=el.position().top;break;case'PL':value=el.position().left;break;case'PTO':value=parseInt(el.position().top)+parseInt(el.parent().scrollTop());value=value+'px';break;case'PLO':value=parseInt(el.position().left)+parseInt(el.parent().scrollTop());value=value+'px';break;case'UserEmail':value=localStorage.getItem('user');break;case'scrollLeft':value=parseFloat(el.scrollLeft());break;case'scrollLeftMax':var jsel=document.getElementById(id);value=parseFloat(jsel.scrollWidth)-parseFloat(jsel.offsetWidth);break;case'scrollTop':value=parseFloat(el.scrollTop());break;} if((value+'').indexOf('ATTR-')!==-1){var valnew=value.replace('ATTR-','');var ArrJson=el.attr('Attr');if(ArrJson){var ArrAttr=JSON.parse(ArrJson);value=ArrAttr['attr'][valnew];}} return value;} function GetEl(str,elg){var str=str.replace(/\s/g,'');var straar=str.split('-');var i=0;while(straar[i]){switch(straar[i]){case'C':var elg=$('.'+str.replace('C-',''));break;case'BODY':case'HTML':var elg=$('html, body');break;case'EL':var elg=elg;break;case'PEL':var elg=elg.parent();break;case'PPEL':var elg=elg.parent().parent();break;case'CEL':var elg=elg.find('div');break;case'P':var elg=elg.parent();break;case'P1':var elg=elg.parent();break;case'P2':var elg=elg.parent().parent();break;case'P3':var elg=elg.parents('div').eq(2);break;case'P4':var elg=elg.parents('div').eq(3);break;case'P5':var elg=elg.parents('div').eq(4);break;case'P6':var elg=elg.parents('div').eq(5);break;case'P7':var elg=elg.parents('div').eq(6);break;case'P8':var elg=elg.parents('div').eq(7);break;case'P9':var elg=elg.parents('div').eq(8);break;case'P10':var elg=elg.parents('div').eq(9);break;case'EL1':case'EL2':case'EL3':case'EL4':case'EL5':case'EL6':case'EL7':case'EL8':case'EL9':case'EL10':case'EL11':case'EL12':case'EL13':case'EL14':case'EL15':case'EL16':case'EL17':case'EL18':case'EL19':case'EL20':case'EL21':case'EL22':case'EL23':case'EL24':case'EL25':case'EL26':case'EL27':case'EL28':case'EL29':case'EL30':case'EL31':case'EL32':case'EL33':case'EL34':case'EL35':case'EL36':case'EL37':case'EL38':case'EL39':case'EL40':case'EL41':case'EL42':case'EL43':case'EL44':case'EL45':case'EL46':case'EL47':case'EL48':case'EL49':case'EL50':case'EL51':case'EL52':case'EL53':case'EL54':case'EL55':case'EL56':case'EL57':case'EL58':case'EL59':case'EL60':case'EL61':case'EL62':case'EL63':case'EL64':case'EL65':case'EL66':case'EL67':case'EL68':case'EL69':case'EL70':case'EL71':case'EL72':case'EL73':case'EL74':case'EL75':case'EL76':case'EL77':case'EL78':case'EL79':case'EL80':case'EL81':case'EL82':case'EL83':case'EL84':case'EL85':case'EL86':case'EL87':case'EL88':case'EL89':case'EL90':case'EL91':case'EL92':case'EL93':case'EL94':case'EL95':case'EL96':case'EL97':case'EL98':case'EL99':case'EL100':var k=parseInt(straar[i].replace('EL',''))-1;var elg=elg.children('div').eq(k);break;} i++;} return elg;} function FMath(param2,setval2,val2){if(param2===undefined){param2='add';} if(val2===undefined){val2=0;} var newval=setval2;if((setval2+'').indexOf(':')!==-1){var x=new Date();var timezone=x.getTimezoneOffset();var setvaln=setval2;if((setval2+'').length==5){setvaln=setvaln+':00';} var datetime1=new Date('1970-01-01T'+setvaln+'+00:00').getTime()+timezone*60*1000;if((val2+'').indexOf('s')!==-1){val2=parseInt(val2)*1000;} if((val2+'').indexOf('m')!==-1){val2=parseInt(val2)*60*1000;} if((val2+'').indexOf('h')!==-1){val2=parseInt(val2)*60*60*1000;} val2=parseInt(val2);switch(param2){case'subtract':datetime1=datetime1-val2;var date=new Date(datetime1);var h=date.getHours();if(h<10){h='0'+h;} var m=date.getMinutes();if(m<10){m='0'+m;} var s=date.getSeconds();if(s<10){s='0'+s;} if((''+setval2).length==5){newval=h+':'+m;} if((''+setval2).length==8){newval=h+':'+m+':'+s;} break;case'add':datetime1=datetime1+val2;var date=new Date(datetime1);var h=date.getHours();if(h<10){h='0'+h;} var m=date.getMinutes();if(m<10){m='0'+m;} var s=date.getSeconds();if(s<10){s='0'+s;} if((''+setval2).length==5){newval=h+':'+m;} if((''+setval2).length==8){newval=h+':'+m+':'+s;} break;}}else{switch(param2){case'multiply':newval=parseFloat(setval2)*parseFloat(val2);break;case'subtract':newval=parseFloat(setval2)-parseFloat(val2);break;case'add':newval=parseFloat(setval2)+parseFloat(val2);break;case'divide':newval=parseFloat(setval2)/parseFloat(val2);break;}} return newval;} function Scss(el,param,val){switch(param){case'rotate':if((val+"").indexOf('%')!==-1){var nval=parseFloat(val);nval=3.6*nval;el.css('transform','rotate('+nval+'deg)');}else{var nval=parseInt(val);el.css('-webkit-transform','translate3d(0,0,0)');el.css('-webkit-transform','rotate('+nval+'deg)');} break;case'rotate90':if((val+"").indexOf('%')!==-1){var nval=parseFloat(val);nval=3.6*nval;el.css('transform','rotate('+nval+'deg)');}else{var nval=parseInt(val);nval=nval+90;if(nval>360){nval=nval-360;} el.css('transform','rotate('+nval+'deg)');} break;case'rotate180':if((val+"").indexOf('%')!==-1){var nval=parseFloat(val);nval=3.6*nval;el.css('transform','rotate('+nval+'deg)');}else{var nval=parseInt(val);nval=nval+180;if(nval>360){nval=nval-360;} el.css('transform','rotate('+nval+'deg)');} break;case'background-opacity':var bgcolor=el.css('background-color');var rgb=bgcolor.substring(4,bgcolor.length-1).replace(/ /g,'').replace('(','').replace(')','').split(',');var val=val/255;el.css('background-color','rgba('+rgb[0]+','+rgb[1]+','+rgb[2]+','+val+')');break;case'background-colorR':if((val+"").indexOf('%')!==-1){var val=parseInt(parseInt(val)*2.55);} var bgcolor=el.css('background-color');var rgb=bgcolor.substring(4,bgcolor.length-1).replace(/ /g,'').replace('(','').replace(')','').split(',');var param='background-color';var val='rgb('+val+','+rgb[1]+','+rgb[2]+')';el.css(param,val);break;case'background-colorG':if((val+"").indexOf('%')!==-1){var val=parseInt(parseInt(val)*2.55);} var bgcolor=el.css('background-color');var rgb=bgcolor.substring(4,bgcolor.length-1).replace(/ /g,'').replace('(','').replace(')','').split(',');var param='background-color';var val='rgb('+rgb[0]+','+val+','+rgb[2]+')';el.css(param,val);break;case'background-colorB':if((val+"").indexOf('%')!==-1){var val=parseInt(parseInt(val)*2.55);} var bgcolor=el.css('background-color');var rgb=bgcolor.substring(4,bgcolor.length-1).replace(/ /g,'').replace('(','').replace(')','').split(',');var param='background-color';var val='rgb('+rgb[0]+','+rgb[1]+','+val+')';el.css(param,val);break;case'background-colorRGB':var rgb={};if((val+"").indexOf(';')!==-1){rgb=val.split(';');}else{if((val+"").indexOf(',')!==-1){rgb=val.split(',');}} if((rgb[0]+"").indexOf('%')!==-1){rgb[0]=parseInt(parseInt(rgb[0])*2.55);} if((rgb[1]+"").indexOf('%')!==-1){rgb[1]=parseInt(parseInt(rgb[1])*2.55);} if((rgb[2]+"").indexOf('%')!==-1){rgb[2]=parseInt(parseInt(rgb[2])*2.55);} var param='background-color';var val='rgb('+rgb[0]+','+rgb[1]+','+rgb[2]+')';el.css(param,val);break;case'fillRGB':var rgb={};if((val+"").indexOf(';')!==-1){rgb=val.split(';');}else{if((val+"").indexOf(',')!==-1){rgb=val.split(',');}} if((rgb[0]+"").indexOf('%')!==-1){rgb[0]=parseInt(parseInt(rgb[0])*2.55);} if((rgb[1]+"").indexOf('%')!==-1){rgb[1]=parseInt(parseInt(rgb[1])*2.55);} if((rgb[1]+"").indexOf('%')!==-1){rgb[1]=parseInt(parseInt(rgb[1])*2.55);} var param='fill';var val='rgb('+rgb[0]+','+rgb[1]+','+rgb[2]+')';el.css(param,val);break;case'transformscale':val='scale('+val+')' el.css('transform',val);break;case'transformscaleX':val='scaleX('+val+')' el.css('transform',val);break;case'transformscaleY':val='scaleY('+val+')' el.css('transform',val);break;case'fill':case'background-color':if(val.indexOf('rgb')===-1){var valarr=val.split(',');if(valarr.length>3){val='rgba('+val+')';}else{val='rgb('+val+')';}} el.css(param,val);break;case'background-image':if(val.indexOf('url(')===-1){val='url('+val+')';} el.css(param,val);break;default:if(el){el.css(param,val);}else{SystemLog("ERROR param"+param);SystemLog("ERROR val"+val);}}} function LevelSetOut2(UiFuncArr,el,key){var val=el.attr('level_val');UiFuncLinkStart(UiFuncArr,'',el,el,key,val,'2','fxtopic');} function TouchFuncUser(func,el){var elclass='none';if(typeof(el.attr('class'))!=="undefined"){elclass=el.attr('class');} ButTouch=true;elclass=elclass.split(' ');elclass=elclass[0];switch(elclass){case"SYS_PageSystemPrj":switch(func){case"press":var prj=el.attr('prj');localStorage.setItem('project',prj);if(DeviceReady==true){document.location.href='/index.html';}else{WindowsReload(false);} break;} break;case"OpenProjectBut":switch(func){case"click":var prj=el.attr('prj');localStorage.setItem('project',prj);if(DeviceReady==true){document.location.href='/index.html';}else{WindowsReload(false);} break;} break;case"SYS_PageSystemClose":switch(func){case"press":$('.SYS_PageSystem').remove();break;} break;} var type=el.attr('type');switch(type){case'select':switch(func){case'change':var val=el.find('select').val();var keyval=el.find('select').find('option:selected').html();el.attr('value',val);var UiFuncJson=el.attr('UiFunc');if(UiFuncJson){var UiFuncArr=JSON.parse(UiFuncJson);for(var key in UiFuncArr['el']){switch(UiFuncArr['el'][key]['type']){case'fselect':UiFuncLinkStart(UiFuncArr,'',el,el,key,val,'1','fxtopic');UiFuncLinkStart(UiFuncArr,'',el,el,key,keyval,'2','fxtopic');break;}}} break;} break;case'input':switch(func){case'change':var type=el.find('input').attr('type');switch(type){case'checkbox':var val=0;if(el.find('input').is(':checked')){val=1;}else{val=0;} break;default:var val=el.find('input').val();} el.attr('value',val);var UiFuncJson=el.attr('UiFunc');if(UiFuncJson){var UiFuncArr=JSON.parse(UiFuncJson);for(var key in UiFuncArr['el']){switch(UiFuncArr['el'][key]['type']){case'finput':UiFuncLinkStart(UiFuncArr,'',el,el,key,val,'1','fxtopic');UiFuncLinkStart(UiFuncArr,'',el,el,key,val,'2','fxtopic');break;}}} break;case'keyup':var val=el.find('input').val();el.attr('value',val);var UiFuncJson=el.attr('UiFunc');if(UiFuncJson){var UiFuncArr=JSON.parse(UiFuncJson);for(var key in UiFuncArr['el']){if(UiFuncArr['el'][key]['type']=='finput'){UiFuncLinkStart(UiFuncArr,'',el,el,key,val,'1','fxtopic');}}} break;} break;case'colorpicker':var param=JSON.parse(el.attr('param'));var v2time=100;if(param['v2time']!==undefined){v2time=parseInt(param['v2time']);if(v2time<100){v2time=100;} if(v2time>2000){v2time=2000;}} var out=false;var UiFuncJson=el.attr('UiFunc');if(typeof(UiFuncJson)!=="undefined"){var UiFuncArr=JSON.parse(UiFuncJson);switch(func){case'click':case'move':case'press':case'release':var rgb=ResColorPicker(el.find('div[name="фон"]'),'RGB');var val=rgb[0]+','+rgb[1]+','+rgb[2];el.attr('colorpicker_val',val);out=true;break;} if(out==true){if(UiFuncArr){for(var key in UiFuncArr['el']){if(UiFuncArr['el'][key]['type']=='fcolorpicker'){UiFuncLinkStart(UiFuncArr,'',el,el,key,val,'1','fxtopic');}}}}} break;case'Level':var param=JSON.parse(el.attr('param'));var fontype='0';var min=0;var max=100;var step=100;var step2=0;var set=0;var v2time=100;if(param['fontype']!==undefined){fontype=param['fontype'];}else{break;} if(param['min']!==undefined){min=parseFloat(param['min']);} if(param['max']!==undefined){max=parseFloat(param['max']);} if(param['step']!==undefined){step=parseFloat(param['step']);} if(param['step']!==undefined){step2=parseFloat(param['step2']);} if(param['v2time']!==undefined){v2time=parseInt(param['v2time']);if(v2time<100){v2time=100;} if(v2time>2000){v2time=2000;}} var fon=el.find('div[name="фон"]');switch(func){case'click':case'move':case'press':case'release':if(func=='release'){el.parent().css('overflow','auto');} if(func=='press'){el.parent().css('overflow','hidden');switch(fontype){case'0':case'1':fon.css('left','');fon.css('right','');fon.css('bottom','');break;case'2':case'3':fon.css('top','');fon.css('right','');fon.css('bottom','');break;}} var decimalstep2=0;if(step2%1!=0){decimalstep2=1;} switch(fontype){case'0':var H=Fval('TTR',el);set=H;var MT=100-H;if(step2>0){var step2=100/(Math.abs(min-max)/step2);H=(Math.floor(H/step2)*step2);MT=100-H;} fon.css({'height':H+'%','top':MT+'%'});break;case'1':var H=Fval('TT',el);set=H;if(step2>0){var step2=100/(Math.abs(min-max)/step2);H=(Math.floor(H/step2)*step2);} fon.css({'height':H+'%'});break;case'2':var W=Fval('TLR',el);set=W;var MT=100-W;if(step2>0){var step2=100/(Math.abs(min-max)/step2);W=(Math.floor(W/step2)*step2);MT=100-W;} fon.css({'width':W+'%','left':MT+'%'});break;case'3':var W=Fval('TL',el);set=W;if(step2>0){var step2=100/(Math.abs(min-max)/step2);W=(Math.floor(W/step2)*step2);} fon.css({'width':W+'%'});break;} var val=0;var r=Math.abs(min-max);if(max>min){val=min+parseFloat(r/100)*parseFloat(set);}else{val=min-parseFloat(r/100)*parseFloat(set);} var decimal=0;if(step%1==0){decimal=0;}else{decimal=1;} val=(Math.floor(val/step)*step).toFixed(decimal);var UiFuncJson=el.attr('UiFunc');if(UiFuncJson){var UiFuncArr=JSON.parse(UiFuncJson);for(var key in UiFuncArr['el']){if(UiFuncArr['el'][key]['type']=='flevel'){switch(func){case'press':case'release':case'click':case'move':el.attr('level_val',val);if(v2time>100){if(func=='press'){UiFuncLinkStart(UiFuncArr,'',el,el,key,val,'2','fxtopic');if(el.attr('si_level')===undefined){var si_level=setInterval(LevelSetOut2,v2time,UiFuncArr,el,key);el.attr('si_level',si_level);}} if(func=='release'){UiFuncLinkStart(UiFuncArr,'',el,el,key,val,'2','fxtopic');var si_level=el.attr('si_level');clearInterval(si_level);el.removeAttr('si_level');}}else{UiFuncLinkStart(UiFuncArr,'',el,el,key,val,'2','fxtopic');} UiFuncLinkStart(UiFuncArr,'',el,el,key,val,'1','fxtopic');break;}}}} break;} break;case'3D':switch(func){case'press':var Div3D=$('div[type="3D"]');var height=parseInt(Div3D.css('height'));var PosTouchX=Div3D.attr('touchX')-parseInt($('.SYS_Main').css('margin-left'));var PosTouchY=Div3D.attr('touchY');mouse3D.x=(PosTouchX/parseInt(Div3D.css('width')))*2-1;mouse3D.y=(-(PosTouchY/parseInt(Div3D.css('height')))*2+1);raycaster.setFromCamera(mouse3D,camera3D);var intersects=raycaster.intersectObjects(scene.children,true);if(intersects[0]){for(var z=0;z<1;z++){obj=intersects[z].object;for(var i=0;i<10;i++){if(obj.name){func=Div3D.attr('press-'+obj.name);if(func){funcstart(func,Div3D,'press',obj.name);}} if(obj.parent){obj=obj.parent;}}}} break;} break;} switch(func){case"press":var press=el.attr('press');funcstart(press,el,func);for(var id in ScreensaverList){if(typeof(ScreensaverList[id]['timer'])!=='undefined'){clearTimeout(ScreensaverList[id]['timer']);delete ScreensaverList[id]['timer'];} var time=ScreensaverList[id]['time']*1000;ScreensaverList[id]['timer']=setTimeout(Start_screensaver,time,id);} break;case"hold":case"hover":case"unhover":funcstart(el.attr('hold'),el,func);break;case"start":case"endhold":case"click":case"dclick":case"move":case"swiperight":case"swipeleft":case"swiperightedge":case"swipeleftedge":case"swipeup":case"swipedown":funcstart(el.attr(func),el,func);break;case"release":funcstart(el.attr(func),el,func);break;} if(func!=='hover'&&func!=='unhover'&&func!=='start'&&func!=='endhold'){el.attr('touch',func);}} function cancelFullScreen(el){var requestMethod=el.cancelFullScreen||el.webkitCancelFullScreen||el.mozCancelFullScreen||el.exitFullscreen;if(requestMethod){requestMethod.call(el);}else if(typeof window.ActiveXObject!=="undefined"){var wscript=new ActiveXObject("WScript.Shell");if(wscript!==null){wscript.SendKeys("{F11}");}}} function requestFullScreen(el){var requestMethod=el.requestFullScreen||el.webkitRequestFullScreen||el.mozRequestFullScreen||el.msRequestFullscreen;if(requestMethod){requestMethod.call(el);}else if(typeof window.ActiveXObject!=="undefined"){var wscript=new ActiveXObject("WScript.Shell");if(wscript!==null){wscript.SendKeys("{F11}");}} return false} function CssDisplay(el,func){if(el.attr(func)){funcstart(el.attr(func),el,'func');}} function PopupShow(popup,effect){switch(effect){case'Left':time=500;if(popup.attr('select')=='0'){popup.attr('select','1');left='-'+popup.css('width');popup.css('left',left);CssDisplay(popup,'show');popup.animate({left:popup.attr('left')},time);} break;case'Right':time=500;if(popup.attr('select')=='0'){left=popup.parent().css('width');popup.css('left',left);popup.attr('select','1');CssDisplay(popup,'show');popup.animate({left:popup.attr('left')},time);} break;case'Time':time=300;if(!popup.attr('opacity')){popup.attr('opacity',popup.css('opacity'));}else{popup.css('opacity','1');popup.attr('opacity','1');} if(popup.attr('select')=='0'){popup.css('opacity','0');popup.attr('select','1');CssDisplay(popup,'show');popup.animate({opacity:popup.attr('opacity')},time);} break;default:if(popup.attr('select')=='0'){popup.attr('select','1');CssDisplay(popup,'show');}}} function PopupHide(popup,effect,func){switch(effect){case'Left':time=500;if(popup.attr('select')=='1'){CssDisplay(popup,'hide');popup.animate({left:'-'+popup.css('width')},time,function(){$(this).attr('select','0').css('left',$(this).attr('left'));});} break;case'Right':time=500;if(popup.attr('select')=='1'){CssDisplay(popup,'hide');popup.animate({left:popup.parent().css('width')},time,function(){$(this).attr('select','0').css('left',$(this).attr('left'));});} break;case'Time':time=300;if(!popup.attr('opacity')&&popup.css('opacity')!=0){popup.attr('opacity',popup.css('opacity'));}else{popup.css('opacity','1');popup.attr('opacity','1');} if(popup.attr('select')=='1'){CssDisplay(popup,'hide');popup.animate({opacity:0},time,function(){$(this).attr('select','0').css('opacity',popup.attr('opacity'));});} break;default:if(popup.attr('select')=='1'){popup.attr('select','0');CssDisplay(popup,'hide');}}} function getcss3D(fel,param){var ret='0';var style3D=fel.attr('style3D');if(style3D){if(style3D.indexOf(param)!==-1){var style3Darr=style3D.split(';');for(var key in style3Darr){var paramarr=style3Darr[key].split(':');if(paramarr[0]==param){ret=paramarr[1];}}}} SystemLog('!!!!!!!!!!!'+ret);return ret;} var saveparam=[];function UiFuncLinkRun(UiFuncArrT,type,lil,lil2,box,el,fel,setval,fxtopic){var val=UiFuncArrT['el'][lil]['val'];var val2=UiFuncArrT['el'][lil]['val2'];var ta=val;var da=val;if(val){if((val+'').indexOf(':')!==-1){var valarr=val.split(':');var func=valarr[0];switch(func){case'l':if(localStorage.getItem(valarr[1])){val=localStorage.getItem(valarr[1]);}else{val='0';} break;case'v':if(typeof(LocalVariable[el.attr('id')+valarr[1]])!=='undefined'){val=LocalVariable[el.attr('id')+valarr[1]];}else{val='0';} break;case'a':var ArrJson=el.attr('Attr');if(ArrJson){var ArrAttr=JSON.parse(ArrJson);val=ArrAttr['attr'][valarr[1]];} break;case'ta':var TagsJson=el.attr('tags');if(TagsJson){var ArrTags=JSON.parse(TagsJson);ta=ArrTags['tags'][valarr[1]] val=TagVal[ta];} break;case'da':var LinkDevJson=el.attr('linkdev');if(LinkDevJson){var LinkDevArr=JSON.parse(LinkDevJson);da=LinkDevArr[valarr[1]] val=TagVal[da];} break;}}} if(val2){if((val2+'').indexOf(':')!==-1){var valarr=val2.split(':');var func=valarr[0];switch(func){case'l':if(localStorage.getItem(valarr[1])){val2=localStorage.getItem(valarr[1]);}else{val2='0';} break;case'a':var ArrJson=el.attr('Attr');if(ArrJson){var ArrAttr=JSON.parse(ArrJson);val2=ArrAttr['attr'][valarr[1]];} break;case'ta':var TagsJson=el.attr('tags');if(TagsJson){var ArrTags=JSON.parse(TagsJson);val2=TagVal[ArrTags['tags'][valarr[1]]];} break;}}} var param=UiFuncArrT['el'][lil]['param'];var elid=el.attr('id');switch(type){case'ftimeout':if(!(elid in Ftimeout)){Ftimeout[elid]={};} var getms=1;if(typeof(UiFuncArrT['el'][lil]['val'])!=="undefined"){getms=parseInt(UiFuncArrT['el'][lil]['val']);} var param='s';if(typeof(UiFuncArrT['el'][lil]['param'])!=="undefined"){param=UiFuncArrT['el'][lil]['param'];} switch(lil2){case'1':var flag=true;if(elid in Ftimeout){if(lil in Ftimeout[elid]){flag=false;}} if(flag){var ms=parseFloat(getms);switch(param){case's':ms=ms*1000;break;case'm':ms=ms*1000*60;break;case'h':ms=ms*1000*60*60;break;default:ms=ms*1000;} UiFuncLinkStart(UiFuncArrT,box,el,fel,lil,setval,'1',fxtopic);var timeoutId=setTimeout(UiFuncLinkStart,ms,UiFuncArrT,box,el,fel,lil,setval,'2',fxtopic);Ftimeout[elid][lil]=timeoutId;var delattr=setTimeout("delete Ftimeout['"+elid+"']["+lil+"]",ms+100);} break;case'2':var ms=parseFloat(getms);switch(param){case's':ms=ms*1000;break;case'm':ms=ms*1000*60;break;case'h':ms=ms*1000*60*60;break;default:ms=ms*1000;} if(elid in Ftimeout){if(lil in Ftimeout[elid]){delete Ftimeout[elid][lil];}} UiFuncLinkStart(UiFuncArrT,box,el,fel,lil,setval,'3',fxtopic);UiFuncLinkStart(UiFuncArrT,box,el,fel,lil,setval,'1',fxtopic);var timeoutId=setTimeout(UiFuncLinkStart,ms,UiFuncArrT,box,el,fel,lil,setval,'2',fxtopic);Ftimeout[elid][lil]=timeoutId;break;case'3':if(elid in Ftimeout){if(lil in Ftimeout[elid]){clearTimeout(Ftimeout[elid][lil]);delete Ftimeout[elid][lil];}} UiFuncLinkStart(UiFuncArrT,box,el,fel,lil,setval,'3',fxtopic);break;} break;case'finterval':if(!(elid in Finterval)){Finterval[elid]={};} switch(lil2){case'1':var flag=true;if(elid in Finterval){if(lil in Finterval[elid]){flag=false;}} if(flag){var getms=UiFuncArrT['el'][lil]['val'];var param=UiFuncArrT['el'][lil]['param'];var ms=parseFloat(getms);switch(param){case's':ms=ms*1000;break;case'm':ms=ms*1000*60;break;case'h':ms=ms*1000*60*60;break;default:ms=ms*1000;} UiFuncLinkStart(UiFuncArrT,box,el,fel,lil,setval,'1',fxtopic);var intervalId=setInterval(UiFuncLinkStart,ms,UiFuncArrT,box,el,fel,lil,setval,'2',fxtopic);Finterval[elid][lil]=intervalId;} break;case'2':var getms=UiFuncArrT['el'][lil]['val'];var param=UiFuncArrT['el'][lil]['param'];var ms=parseFloat(getms);switch(param){case's':ms=ms*1000;break;case'm':ms=ms*1000*60;break;case'h':ms=ms*1000*60*60;break;default:ms=ms*1000;} if(elid in Finterval){if(lil in Finterval[elid]){clearInterval(Finterval[elid][lil]);delete Finterval[elid][lil];}} UiFuncLinkStart(UiFuncArrT,box,el,fel,lil,setval,'3',fxtopic);UiFuncLinkStart(UiFuncArrT,box,el,fel,lil,setval,'1',fxtopic);var intervalId=setInterval(UiFuncLinkStart,ms,UiFuncArrT,box,el,fel,lil,setval,'2',fxtopic);Finterval[elid][lil]=intervalId;break;case'3':if(elid in Finterval){if(lil in Finterval[elid]){clearInterval(Finterval[elid][lil]);delete Finterval[elid][lil];}} UiFuncLinkStart(UiFuncArrT,box,el,fel,lil,setval,'3',fxtopic);break;} break;case'fif':if(param===undefined){param='equal';} if(val!==undefined&¶m!==undefined&&setval!==undefined){var ok=false;var data=new Date();var flagtime=false;if((setval+'').indexOf(':')!==-1){var x=new Date();var timezone=x.getTimezoneOffset();if((setval+'').length==5){setval=setval+':00';} var datetime1=new Date('1970-01-01T'+setval+'+00:00').getTime()+timezone*60*1000;if(val.length==5){val=val+':00';} var datetime2=new Date('1970-01-01T'+val+'+00:00').getTime()+timezone*60*1000;flagtime=true;} switch(param){case'more':if(flagtime){if(datetime1>datetime2){ok=true;}}else{if(parseFloat(setval)>parseFloat(val)){ok=true;}} break;case'less':if(flagtime){if(datetime1=datetime2){ok=true;}}else{if(parseFloat(setval)>=parseFloat(val)){ok=true;}} break;case'less_equal':if(flagtime){if(datetime1<=datetime2){ok=true;}}else{if(parseFloat(setval)<=parseFloat(val)){ok=true;}} break;} if(ok==true){UiFuncLinkStart(UiFuncArrT,box,el,fel,lil,setval,'1',fxtopic);}else{UiFuncLinkStart(UiFuncArrT,box,el,fel,lil,setval,'2',fxtopic);}} break;case'fpage':switch(val){case'!системная_страница!':GetSystemPage();break;case'!предыдущая_страница!':var page=PreviorPage;CurrentPage=page;if(page.length>0){openpage(page,'fpage');} break;default:var page=$('#'+val);PreviorPage=CurrentPage;CurrentPage=page;if(page.length>0){openpage(page,'fpage');}} SystemLog(page);break;case'fpopup':if(val=="!текущее_окно!"){var Popup=el.closest('div[type="Popup"]');}else{var Popup=$('.SYS_Main').find('div[type="Popup"][id="'+val+'"]');} var id=Popup.attr('id');if(Popup.length>0){if(param==='Show'){SetAttrPopup(el,Popup);} PopupEffect(Popup,param);} break;case'fcss':if(setval){var val=Fval(setval,fel);Scss(fel,param,val);} break;case'fjsfunc':switch(val){case'SYS_system_page':fjsfunc_attr1=setval;fjsfunc_attr2=el;let f_SYS_system_page=new Function('SYS_system_page();');f_SYS_system_page();break;case'SYS_message':Message_constructor.SYS(setval,el);break;case'SYS_history':History_constructor.SYS(setval,el);break;case'SYS_TagSelect':TagSelectClass.SYS(setval,el);break;case'SYS_HdevSelect':HdevSelectClass.SYS(setval,el);break;case'SYS_acad':fjsfunc_attr1=setval;fjsfunc_attr2=el;let f_SYS_acad=new Function('SYS_acad();');f_SYS_acad();break;case'SYS_wirenboard':Wb_constructor.SYS_Wirenboard(setval,el);break;case'SYS_russound':Russound_constructor.SYS(setval,el);break;case'SYS_jseditor':FjsEditor.set(setval,el);break;} break;case'fstylesel':if($('body').attr('sys_editor')!=='1'){if(val=='in'){if(setval!==undefined){if(val2=='all'){StyleApply(fel,setval,false);fel.find('div').each(function(){StyleApply($(this),setval,false);});}else{StyleApply(fel,setval,false);}}}else{if(val2=='all'){StyleApply(fel,val,false);fel.find('div').each(function(){StyleApply($(this),val,false);});}else{StyleApply(fel,val,false);}}} break;case'fhtmlsel':if($('body').attr('sys_editor')!=='1'){if(val=='in'){if(val2=='all'){HtmlApply(fel,setval);fel.find('div').each(function(){HtmlApply($(this),setval);});}else{HtmlApply(fel,setval);}}else{if(val2=='all'){HtmlApply(fel,val);fel.find('div').each(function(){HtmlApply($(this),val);});}else{HtmlApply(fel,val);}}} break;case'fvibro':if(val=='in'){ms=100;if(setval){ms=parseInt(setval);if(ms<=10){ms=100;}} VibtationSet(ms);} if(val=='ms'){ms=100;if(val2){ms=parseInt(val2);if(ms<1){ms=1;}} VibtationSet(ms);} break;case'fanimate':switch(param){case'blink_fill':el_blink_start('fill',el,fel.css('fill'),val);break;case'blink_background':el_blink_start('background',el,fel.css('background-color'),val);break;case'blink_stop':el_blink_stop(el);break;} break;case'f3d':if(setval!==undefined){var val=setval;var name=fel.attr('name');var xid=fel.attr('xid');var step=1;if(Arr3D[xid]){switch(param){case'scaleX':Scale3Dx[xid]=[];Scale3Dx[xid]['transition']=getcss3D(fel,'transition');Scale3Dx[xid]['val']=0.01*parseInt(val);break;case'scaleY':Scale3Dy[xid]=[];Scale3Dy[xid]['transition']=getcss3D(fel,'transition');Scale3Dy[xid]['val']=0.01*parseInt(val);break;case'scaleZ':Scale3Dz[xid]=[];Scale3Dz[xid]['transition']=getcss3D(fel,'transition');Scale3Dz[xid]['val']=0.01*parseInt(val);break;case'rotationX':Rotation3Dx[xid]=[];Rotation3Dx[xid]['transition']=getcss3D(fel,'transition');Rotation3Dx[xid]['val']=0.063*parseInt(val);break;case'rotationY':Rotation3Dy[xid]=[];Rotation3Dy[xid]['transition']=getcss3D(fel,'transition');Rotation3Dy[xid]['val']=0.063*parseInt(val);break;case'color':SetColor3D(xid,val);break;case'opacity':if(!Opacity3D[xid]){Opacity3D[xid]=[];} Opacity3D[xid]['val']=val;Opacity3D[xid]['transition']=getcss3D(fel,'transition');break;case'opacitypercent':if(!Opacity3D[xid]){Opacity3D[xid]=[];} var val2=0.01*parseInt(val);Opacity3D[xid]['val']=val2;Opacity3D[xid]['transition']=getcss3D(fel,'transition');break;}}} break;case'fcam3d':Cam3dSelect(val);break;case'fsetsys':if(setval){var val=setval;switch(param){case'PageScroll':var top=-1*parseInt(val);$('.SYS_Main').find('div[type="Page"][select="1"').css('transition','2s');$('.SYS_Main').find('div[type="Page"][select="1"').css('top',top+'px');setTimeout("$('div[type=\"Page\"][select=\"1\"]').css('transition','');",2000);break;case'ScrollTop':fel.animate({scrollTop:parseInt(val)},'500');break;case'ScrollLeft':if(val.indexOf('%')!==-1){val=(parseInt(fel.css('width'))*(parseInt(val)/100))+'px';}else{val=parseInt(val)+'px';} fel.animate({scrollLeft:val},'500');break;}} break;case'fgettime':var Data=new Date();var Hour=Data.getHours();var Minutes=Data.getMinutes();var Seconds=Data.getSeconds();if(parseInt(Hour)<10){Hour='0'+Hour;} if(parseInt(Minutes)<10){Minutes='0'+Minutes;} if(parseInt(Seconds)<10){Seconds='0'+Seconds;} var Day=Data.getDate();if(parseInt(Day)<10){Day='0'+Day;} var Month=Data.getMonth()+1;if(parseInt(Month)<10){Month='0'+Month;} var FullYear=Data.getFullYear();switch(param){case'Time':setval=Hour+":"+Minutes;break;case'TimeHMS':setval=Hour+":"+Minutes+":"+Seconds;break;case'Date':setval=Day+"."+Month+"."+FullYear;break;case'TimeDate':setval=Hour+":"+Minutes+":"+Seconds+" "+Day+"."+Month+"."+FullYear;break;case'TimeH':setval=Hour;break;case'TimeM':setval=Minutes;break;case'TimeS':setval=Seconds;break;case'TimeD':setval=Day;break;case'DateM12':setval=Month;break;case'DateMT':var Month=Data.getMonth()-1;var M=['Январь','Февраль','Март','Апрель','Май','Июнь','Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'];setval=M[Month];break;case'DateDN':var day=Data.getDay();var D=['Пн','Вт','Ср','Чт','Пт','Сб','Вс'];setval=D[day];break;case'DateDNT':var day=Data.getDay();var D=['Понедельник','Вторник','Среда','Четверг','Пятница','Суббота','Воскресенье'];setval=D[day];break;case'DiteG':setval=FullYear;break;} UiFuncLinkStart(UiFuncArrT,box,el,fel,lil,setval,'1',fxtopic);break;case'fclearcss':var stylesel=fel.attr('stylesel');StyleApply(fel,stylesel,true);break;case'fgetcss':switch(param){case'background-colorRGB':var rgb=fel.css('background-color');rgb=rgb.replace('rgb(','').replace(')','');rgb=rgb.split(',');var setval=parseInt(rgb[0])+';'+parseInt(rgb[1])+';'+parseInt(rgb[2]);break;default:var setval=fel.css(param);} UiFuncLinkStart(UiFuncArrT,box,el,fel,lil,setval,'1',fxtopic);break;case'fiftouch':if(el.attr('touch')!=="release"){UiFuncLinkStart(UiFuncArrT,box,el,fel,lil,setval,'1',fxtopic);}else{UiFuncLinkStart(UiFuncArrT,box,el,fel,lil,setval,'2',fxtopic);} break;case'ftrigger01':if(parseInt(setval)==1){setval="0";}else{setval="1";} UiFuncLinkStart(UiFuncArrT,box,el,fel,lil,setval,'1',fxtopic);break;case'fgethtml':var setval=fel.html();UiFuncLinkStart(UiFuncArrT,box,el,fel,lil,setval,'1',fxtopic);break;case'fgetval':var type=fel.attr('type');var setval=null;switch(type){case'input':setval=fel.find('input').val();break;case'select':setval=fel.find('select').val();break;case'checkbox':if(fel.find('input').prop('checked')==true){setval='1';}else{setval='0';} break;} if(setval){UiFuncLinkStart(UiFuncArrT,box,el,fel,lil,setval,'1',fxtopic);} break;case'fvalue':case'flist':var setval=val;UiFuncLinkStart(UiFuncArrT,box,el,fel,lil,setval,'1',fxtopic);break;case'fjsonparse':var jsonarr=JSON.parse(setval);var mask=val.split('/');if(Array.isArray(jsonarr)){var newarr=[];for(var key in jsonarr){if(mask[0]=='#'||mask[0]==key){for(var key1 in jsonarr[key]){if(mask[1]=='#'||mask[1]==key1){newarr[newarr.length]=jsonarr[key][key1];}}}} for(var key in newarr){UiFuncLinkStart(UiFuncArrT,box,el,fel,lil,newarr[key],'1',fxtopic);}} break;case'ftable':switch(param){case'set':try{var setval=JSON.parse(setval);}catch(err){console.log('ERROR json parse - '+err);} console.log(setval);var count=setval['count'];var top=fel.find('div[name="Шапка таблицы"]');var top_el_t=fel.find('div[name="Шапка таблицы"]').find('div[name="Шаблон элемента"]');top_el_t.hide();var table=fel.find('div[name="Таблица"]');var tr_t=table.find('div[name="Шаблон колонки"]');tr_t.hide();var el_time_t=tr_t.find('div[name="шаблон время"]');var el_val_t=tr_t.find('div[name="Шаблон значение"]');fel.find('div[f="t"]').remove();for(var i=1;i<=10;i++){var top_el=top_el_t.clone().attr('f','t').attr('name','элемент'+i).show().attr('id','top_el'+i);top_el.html('колонка '+i);top.append(top_el);var tr=tr_t.clone().attr('f','t').attr('name','колонка'+i).show().attr('id','tr'+i).html('');table.append(tr);} for(var i=1;i<=count;i++){var sdate=setval['arr'][i]['Sdate'];var day=sdate.split(' ')[0];var time=sdate.split(' ')[1].split('.')[0];var dayarr=day.split('-');var dayformat=dayarr[2]+'.'+dayarr[1]+'.'+dayarr[0];var el_time=el_time_t.clone().attr('name','время'+i).show().attr('id','el_time'+i);el_time.find('div[name="время"]').html(time);el_time.find('div[name="дата"]').html(dayformat);table.find('div[name="колонка1"]').append(el_time);var y=0;for(key in setval['arr'][i]){y=y+1;var el_val=el_val_t.clone().attr('name','значение'+i).show().attr('id','el_val'+i+y);el_val.html(setval['arr'][i][key]);table.find('div[name="колонка'+(y)+'"]').append(el_val);}} break;} break;case'ftrend':switch(param){case'trendset':console.log(setval);try{var setval=JSON.parse(setval);}catch(err){SystemLog('ERROR json parse - '+err);} SystemLog2(setval);var objkeys=Object.keys(setval['arr']).sort(function(a,b){return a-b;});var period=setval['period'];var func=setval['func'];SystemLog2(func);if(fel.find('.element[val="trend"]').length==0){var El_trend=$('.element[val="trend"][template="1"]').clone().removeAttr('template').removeAttr('style');fel.append(El_trend);} var block='
';var svgw=parseInt(fel.find('div[name="график"]').css('width'));var svgh=parseInt(fel.find('div[name="график"]').css('height'));var svg='';var svgc='';var n=0;var min=10;var max=40;var rel=fel.find('div[name="блок справа"]').find('div[name="элемент"]');var relh=parseFloat(rel.first().css('height'));switch(func){case'FloorHeatElectric':max=parseFloat(setval['max']);max=(max*1.05).toFixed(1);min=parseFloat(setval['min']);min=(min*0.95).toFixed(1);var valstep=parseFloat((max-min)/(svgh/relh));var powerL=fel.find('div[name="блок слева"]').find('div[name="блок реле"]').find('div[name="команда включения"]').find('div');var releL=fel.find('div[name="блок слева"]').find('div[name="блок реле"]').find('div[name="статус реле"]').find('div');if(svgh==0){return;} var n=1;var y1=0;var y1s=0;var y2=0;var y2s=0;var tempprev=0;var stempprev=0;for(var key in objkeys){var nkey=objkeys[key];if(typeof(setval['arr'][nkey])==="undefined"){return;};var sdate=setval['arr'][nkey]['Sdate'];var temp=setval['arr'][nkey]['CurrentTemperature'];var stemp=setval['arr'][nkey]['TargetTemperature'];y2=svgh-(parseFloat(temp)-min)/(max-min)*svgh;y2s=svgh-(parseFloat(stemp)-min)/(max-min)*svgh;if(y1!==0){var date=new Date(sdate*1000);var day="0"+date.getDate();var month="0"+date.getMonth();var hours="0"+date.getHours();var minutes="0"+date.getMinutes();var seconds="0"+date.getSeconds();switch(period){case'minute':var formattedTime=day.substr(-2)+'.'+month.substr(-2)+'\n'+hours.substr(-2)+':'+minutes.substr(-2);break;case'hour':var formattedTime=day.substr(-2)+'.'+month.substr(-2)+'\n'+hours.substr(-2)+':00';break;case'day':var formattedTime=day.substr(-2)+'.'+month.substr(-2);break;default:var formattedTime=day.substr(-2)+'.'+month.substr(-2)+'\n'+hours.substr(-2)+':'+minutes.substr(-2)+':'+seconds.substr(-2);} svg=svg+'';svgc=svgc+''+nkey+' - '+tempprev+'°C \n'+formattedTime+'';svg=svg+'';svgc=svgc+''+nkey+' - '+stempprev+'°C \n'+formattedTime+'';if(n==1){fel.find('div[name="блок информации"]').find('div[name="значение"]').eq(0).html(parseFloat(temp).toFixed(1)+'°');fel.find('div[name="блок информации"]').find('div[name="значение"]').eq(1).html(parseFloat(stemp).toFixed(1)+'°');} fel.find('div[name="блок снизу"]').find('div[n="'+n+'"]').html(formattedTime);n++;} tempprev=temp;stempprev=stemp;y1=y2;y1s=y2s;} fel.find('div[name="блок слева"]').on('scroll',function(){var scrool_r=4750-$(this).scrollLeft();var n=(scrool_r/50).toFixed(0);fel.find('svg').find('circle').attr('fill','red');fel.find('svg').find('circle[n='+n+']').attr('fill','green');fel.find('div[name="блок информации"]').find('div[name="значение"]').eq(0).html(setval['arr'][n+'']['CurrentTemperature']+'°');fel.find('div[name="блок информации"]').find('div[name="значение"]').eq(1).html(setval['arr'][n+'']['TargetTemperature']+'°');});var valset=parseFloat(max)-valstep/2;;rel.each(function(){$(this).html(parseFloat(valset).toFixed(1));valset=valset-valstep;});break;case'Trend':max=parseInt(setval['max']);max=(max*1.05).toFixed(1);min=parseInt(setval['min']);min=(min*0.95).toFixed(1);var valstep=parseInt((max-min)/(svgh/relh));console.log('valstepvalstepvalstepvalstepvalstep') console.log(valstep);if(svgh==0){return;} var n=1;var y1=0;var y1_2=0;var y1_3=0;var y1_4=0;var y2=0;var y2_2=0;var y2_3=0;var y2_4=0;var devval1prev=0;var devval2prev=0;var devval3prev=0;var devval4prev=0;for(var key in objkeys){var nkey=objkeys[key];if(typeof(setval['arr'][nkey])==="undefined"){return;};var sdate=setval['arr'][nkey]['Sdate'];var devval1=setval['arr'][nkey]['Devval1'];var devval2=setval['arr'][nkey]['Devval2'];var devval3=setval['arr'][nkey]['Devval3'];var devval4=setval['arr'][nkey]['Devval4'];y2=svgh-(parseInt(devval1)-min)/(max-min)*svgh;y2_2=svgh-(parseInt(devval2)-min)/(max-min)*svgh;y2_3=svgh-(parseInt(devval3)-min)/(max-min)*svgh;y2_4=svgh-(parseInt(devval4)-min)/(max-min)*svgh;if(y1!==0){var date=new Date(sdate*1000);var day="0"+date.getDate();var month="0"+date.getMonth();var hours="0"+date.getHours();var minutes="0"+date.getMinutes();var seconds="0"+date.getSeconds();switch(period){case'minute':var formattedTime=day.substr(-2)+'.'+month.substr(-2)+'\n'+hours.substr(-2)+':'+minutes.substr(-2);break;case'hour':var formattedTime=day.substr(-2)+'.'+month.substr(-2)+'\n'+hours.substr(-2)+':00';break;case'day':var formattedTime=day.substr(-2)+'.'+month.substr(-2);break;default:var formattedTime=day.substr(-2)+'.'+month.substr(-2)+'\n'+hours.substr(-2)+':'+minutes.substr(-2)+':'+seconds.substr(-2);} svg=svg+'';svgc=svgc+''+nkey+' - '+devval1prev+' \n'+formattedTime+'';svg=svg+'';svgc=svgc+''+nkey+' - '+devval2prev+' \n'+formattedTime+'';svg=svg+'';svgc=svgc+''+nkey+' - '+devval3prev+' \n'+formattedTime+'';svg=svg+'';svgc=svgc+''+nkey+' - '+devval4prev+' \n'+formattedTime+'';if(n==1){fel.find('div[name="блок информации"]').find('div[name="значение"]').eq(0).html(devval1);fel.find('div[name="блок информации"]').find('div[name="значение"]').eq(1).html(devval2);} fel.find('div[name="блок снизу"]').find('div[n="'+n+'"]').html(formattedTime);n++;} devval1prev=devval1;devval2prev=devval2;devval3prev=devval3;devval4prev=devval4;y1=y2;y1_2=y2_2;y1_3=y2_3;y1_4=y2_4;} fel.find('div[name="блок слева"]').on('scroll',function(){var scrool_r=4750-$(this).scrollLeft();var n=(scrool_r/50).toFixed(0);fel.find('svg').find('circle').attr('fill','red');fel.find('svg').find('circle[n='+n+']').attr('fill','green');});var valset=parseInt(max)-valstep/2;;rel.each(function(){$(this).html(parseInt(valset).toFixed(1));valset=valset-valstep;});break;} svg=svg+svgc+'';fel.find('div[name="график"]').html(svg);fel.find('div[name="блок слева"]').animate({scrollLeft:svgw+'px'},'100');break;} break;case'fgetlocalstorage':if(localStorage.getItem(val)){setval=localStorage.getItem(val);}else{setval='0';} UiFuncLinkStart(UiFuncArrT,box,el,fel,lil,setval,'1',fxtopic);break;case'fsetlocalstorage':localStorage.setItem(val,setval);break;case'fsetvar':LocalVariable[el.attr('id')+val]=setval;break;case'fgetvar':if(LocalVariable[el.attr('id')+val]){setval=LocalVariable[el.attr('id')+val];}else{setval=undefined;} UiFuncLinkStart(UiFuncArrT,box,el,fel,lil,setval,'1',fxtopic);break;case'ftagset':if(ta!==''){SystemLog(ta);var tagarr=[ta];if(ta.indexOf(';')!==-1){tagarr=ta.split(';');} for(var tag in tagarr){var tag=tagarr[tag];TagChange(tag,setval.toString());}}else{SystemLog('Error ftagset, no tag');} break;case'fdevset':if(da!==''){switch(setval){case'release':setTimeout(TagChange,200,'/x'+da,setval);break;default:TagChange('/x'+da,setval);}} break;case'ftimeintervalset':try{var arr=JSON.parse(setval);for(var key in arr){var i=parseInt(key)-1;var block=el.find('div[name="block"]').eq(i);for(var p in arr[key]){var pel=block.find('div[name="'+p+'"]');var type=pel.find('input').attr('type');switch(type){case'checkbox':if(arr[key][p]==1){pel.find('input').prop('checked',true);}else{pel.find('input').prop('checked',false);} break;default:pel.find('input').val(arr[key][p]);} pel.attr('value',arr[key][p]);}}}catch(err){SystemLog(err);} break;case'fcolorpickerset':if(el.attr('touch')!=='release'){break;} var param=JSON.parse(el.attr('param'));SystemLog('fcolorpickerset = '+setval);break;case'flevelset':if(typeof(el.attr('touch2'))!=='undefined'){if(el.attr('touch2')==='release'){LevelSet(el,setval);}}else{LevelSet(el,setval);} break;case'ftagval':if(typeof(TagVal[ta])!=='undefined'){var setval=TagVal[ta];}else{var setval=0;} UiFuncLinkStart(UiFuncArrT,box,el,fel,lil,setval,'1',fxtopic);break;case'fdevval':var tag='/x'+da;if(typeof(TagVal[tag])!=='undefined'){var setval=TagVal[tag];}else{var setval=0;} UiFuncLinkStart(UiFuncArrT,box,el,fel,lil,setval,'1',tag);break;case'flink':window.open(val,'_blank');break;case'fattr':switch(val){case'lang':var setval='ru';if(localStorage.getItem('lang')){var setval=localStorage.getItem('lang');} break;case'font-size':var setval='14';if(localStorage.getItem('font-size')){var setval=localStorage.getItem('font-size');} break;default:var setval=Fval(val,fel);} UiFuncLinkStart(UiFuncArrT,box,el,fel,lil,setval,'1',fxtopic);break;case'finputset':var input=fel.find('input');if(input.length>0){input.val(setval);} break;case'fselectset':var select=fel.find('select');switch(lil2){case'1':var arr=JSON.parse(setval);var param={};param['select_count']="1";var option="";var i=0;for(var key in arr){i++;option="" param['key'+i]=key;param['val'+i]=arr[key];} param['select_count']=i;select.html(option);if(typeof(fel.attr('value'))!=="undefined"){select.val(fel.attr('value'));} var json=JSON.stringify(param);fel.attr('param',json);break;case'2':fel.attr('value',setval);select.val(setval);break;case'3':fel.attr('value',setval);fel.find('select option:contains("'+setval+'")').prop('selected',true);break;} break;case'fjseditor':if(typeof(JsFuncArr[el.attr('id')])==="undefined"){JsFuncArr[el.attr('id')]=new JsFuncClass(el);} var js=UiFuncArrT['el'][lil]['js'];var res=JsFuncArr[el.attr('id')].run(js,setval);switch(lil2){case'1':break;} UiFuncLinkStart(UiFuncArrT,box,el,fel,lil,res,'1',fxtopic);break;case'fsetattr':switch(val){case'lang':localStorage.setItem('lang',setval);SetLang(setval);break;case'font-size':$('.SYS_Main').css('font-size',parseInt(setval)+'px');localStorage.setItem('font-size',setval);break;default:var ArrJson=fel.attr('Attr');if(ArrJson){var ArrAttr=JSON.parse(ArrJson);}else{var ArrAttr={'attr':{}}} var PrevAttr=ArrAttr['attr'][val.replace('ATTR-','')];ArrAttr['attr'][val.replace('ATTR-','')]=setval;var AttrArrJson=JSON.stringify(ArrAttr);fel.attr('Attr',AttrArrJson);if(PrevAttr){if(PrevAttr!==setval){if(UiFuncMqttConArr[PrevAttr]){if(UiFuncMqttConArr[PrevAttr][fel.attr('id')]){if(!UiFuncMqttConArr[setval]){UiFuncMqttConArr[setval]={};} UiFuncMqttConArr[setval][fel.attr('id')]=UiFuncMqttConArr[PrevAttr][fel.attr('id')];delete UiFuncMqttConArr[PrevAttr][fel.attr('id')];}}}}} break;case'fdom':var valarr=val.split(';');for(var valn in valarr){if(valarr[valn]){var valfel=GetEl(valarr[valn],el);setTimeout(UiFuncLinkStart,10,UiFuncArrT,box,el,valfel,lil,setval,'1',fxtopic);}} break;case'felname':$('div[name="'+val+'"]').each(function(){var valfel=$(this);setTimeout(UiFuncLinkStart,10,UiFuncArrT,box,el,valfel,lil,setval,'1',fxtopic);});break;case'fstruct':UiFuncLinkStart(UiFuncArrT,box,el,GetEl(val,fel),lil,setval,'1',fxtopic);break;case'faddstr':if(val.indexOf('!1!')!==-1){var nsetval=val.replace(/!1!/g,setval);}else{var nsetval=setval+val;} UiFuncLinkStart(UiFuncArrT,box,el,fel,lil,nsetval,'1',fxtopic);break;case'fhtml':var typeel=fel.attr('type');switch(typeel){case'block':fel.html(setval);break;case'input':fel.find('input').val(setval);break;case'text':fel.html(setval);break;default:fel.html(setval);} break;case'faddclass':fel.addClass(setval);break;case'fdelclass':fel.removeClass(setval);break;case'flog':SystemLog('FUNCTION - '+setval);break;case'falert':var w=parseInt($('.SYS_Main').css('width'));if($('.SYS_Main').find('.SYS_alert').length===0){$('.SYS_Main').append('
--------------
');} $('.SYS_alert').css('width',(w/2)+'px').css('left','calc(50% - '+(w/4)+'px)') $('.SYS_alert').show();$('.SYS_alert').find('.SYS_mess').html(setval);break;case'frangefilter':var setvaln=parseFloat(setval);if(setvaln<=parseFloat(val2)&&setvaln>=parseFloat(val)){UiFuncLinkStart(UiFuncArrT,box,el,fel,lil,setvaln,'1',fxtopic);} break;case'frangenew':var mabc=Math.abs(parseFloat(val)-parseFloat(val2));if(parseFloat(val2)>parseFloat(val)){var setvaln=parseFloat(val)+parseFloat(mabc/100)*parseFloat(setval);}else{var setvaln=parseFloat(val)-parseFloat(mabc/100)*parseFloat(setval);} if(val%1==0){setvaln=parseInt(setvaln);} if(val.indexOf('%')!==-1||val2.indexOf('%')!==-1){setvaln=setvaln+'%';} UiFuncLinkStart(UiFuncArrT,box,el,fel,lil,setvaln,'1',fxtopic);break;case'frangepersent':var setvaln=parseInt((Math.abs(parseFloat(val)-parseFloat(setval))/Math.abs(parseFloat(val2)-parseFloat(val)))*100);if(setvaln>100){setvaln=100;} if(setvaln<0){setvaln=0;} setvaln=setvaln+'%';UiFuncLinkStart(UiFuncArrT,box,el,fel,lil,setvaln,'1',fxtopic);break;case'ftoFixed':if(typeof(val)==="undefined"){val=1;} var setvaln=parseFloat(setval).toFixed(parseInt(val));UiFuncLinkStart(UiFuncArrT,box,el,fel,lil,setvaln,'1',fxtopic);break;case'fround':var inv=1.0/parseFloat(val);var setvaln=Math.round(setval*inv)/inv;UiFuncLinkStart(UiFuncArrT,box,el,fel,lil,setvaln,'1',fxtopic);break;case'fmath':var setval=FMath(param,setval,val);UiFuncLinkStart(UiFuncArrT,box,el,fel,lil,setval,'1',fxtopic);break;case'fsendglobal':var UiFuncFel=fel.attr('UiFunc');if(typeof(UiFuncFel)!=='undefined'){var UiFuncArr=JSON.parse(UiFuncFel);for(var key in UiFuncArr['el']){if(UiFuncArr['el'][key]['type']=='fglobal'){if(UiFuncArr['el'][key]['param']==param){setTimeout(UiFuncLinkStart,10,UiFuncArr,'',el,fel,key,setval,'1',fxtopic);}}}} break;default:if(type.indexOf('fx')===0){TagChange('/xsysui/fxlink/'+el.attr('id')+'/'+lil+'/'+lil2,setval);}}} function UiFuncLinkStart(UiFuncArr,box,el,fel,key,setval,nout,fxtopic){var UiFuncArrT=UiFuncArr;if(UiFuncArrT['el']&&UiFuncArrT['el'][key]){var link=undefined;var ct=UiFuncArrT['el'][key]['type'];if(nout){var link=UiFuncArrT['el'][key]['link'+nout];if(nout==1){var link=UiFuncArrT['el'][key]['link'];if(UiFuncArrT['el'][key]['link1']){var link=UiFuncArrT['el'][key]['link1'];}}}else{var link=UiFuncArrT['el'][key]['link'];if(UiFuncArrT['el'][key]['link1']){var link=UiFuncArrT['el'][key]['link1'];}} if(link){var linkarr=link.split(',');for(var il in linkarr){var lil=linkarr[il];var lil2=1;if(lil.indexOf('-')!==-1){lil=linkarr[il].split('-')[0];var lil2=linkarr[il].split('-')[1];} try{var type=UiFuncArrT['el'][lil]['type'];UiFuncLinkRun(UiFuncArrT,type,lil,lil2,box,el,fel,setval,fxtopic);}catch(err){SystemLog('type error - '+err);}}}}} function funcstart(press,el,func,DDD){var UiFuncJson=el.attr('UiFunc');if(UiFuncJson){var UiFuncArr=JSON.parse(UiFuncJson);for(var key in UiFuncArr['el']){if(UiFuncArr['el'][key]['type']=='f'+func){UiFuncLinkStart(UiFuncArr,'',el,el,key,func,'1','fxtopic');}else if(UiFuncArr['el'][key]['type']=='ftouch'){if(UiFuncArr['el'][key]['param']==func){UiFuncLinkStart(UiFuncArr,'',el,el,key,func,'1','fxtopic');}} if(UiFuncArr['el'][key]['type']=='ftoucheffect'){var id=el.attr('id');if(func=='click'){switch(UiFuncArr['el'][key]['param']){case'explosion':el.css('transition','0.1s');el.css('transform','scale(2,2)');setTimeout('$("#'+id+'").css("transition","0s")',100);setTimeout('$("#'+id+'").css("transform","scale(1,1)")',110);break;}} if(func=='press'){switch(UiFuncArr['el'][key]['param']){case'increase':el.css('transition','0.15s');el.css('transform','scale(1.15,1.15)');break;case'increase2':el.css('transition','0.15s');el.css('transform','scale(1.05,1.05)');break;case'increase3':el.css('transition','0.10s');el.css('transform','scale(1.02,1.02)');break;case'decrease':el.css('transition','0.15s');el.css('transform','scale(0.9,0.9)');break;case'bouncing':el.css('transition','0.15s');el.css('transform','translateY(-14px)');break;}} if(func=='release'){switch(UiFuncArr['el'][key]['param']){case'increase':el.css('transform','scale(0.8,0.8)');setTimeout('$("#'+id+'").css("transform","scale(1,1)")',100);break;case'increase2':el.css('transform','scale(0.95,0.95)');setTimeout('$("#'+id+'").css("transform","scale(1,1)")',100);break;case'increase3':el.css('transform','scale(0.98,0.98)');setTimeout('$("#'+id+'").css("transform","scale(1,1)")',100);break;case'decrease':el.css('transform','scale(1.1,1.1)');setTimeout('$("#'+id+'").css("transform","scale(1,1)")',100);break;case'bouncing':el.css('transform','translateY(7px)');setTimeout('$("#'+id+'").css("transform","translateY(0)")',100);break;}}}}}} var KeyDownInterval={};var EditSizeTimeout={};function savefile(ele){ele.removeAttr('sys_select');ele.removeAttr('select');ele.find('.SYS_InputBlock').remove();ele.find('div[add="dinamic"]').remove();ele.find('select[add="dinamic"]').remove();ele.find('option[add="dinamic"]').remove();var new_id=newid();var resid=new_id;if(ele.attr('id')){var resid=ele.attr('id');} var newele=ele.clone().attr('id',new_id);newele.find('div').each(function(index){$(this).removeAttr('touch');$(this).removeAttr('touch2');$(this).removeAttr('hover');$(this).removeAttr('press-time');$(this).removeAttr('offsettop');$(this).removeAttr('offsetleft');$(this).removeAttr('tleft');$(this).removeAttr('touchxend');$(this).removeAttr('touchyend');$(this).removeAttr('touchxstart');$(this).removeAttr('touchystart');$(this).removeAttr('touchx');$(this).removeAttr('touchy');$(this).removeAttr('ttop');$(this).removeAttr('click-time');var new_id=newid();if(typeof($(this).attr('id'))==="undefined"){return;} var resid=$(this).attr('id');$(this).attr('id',new_id);});var name=ele.attr('name');var block=$('');block.append(newele);var txt=block.html();txt=txt.replace(/url\(/g,"url(http://xiot.pro/");var blob=new Blob([txt],{type:"text/plain;charset=utf-8"});saveAs(blob,name+".xelem");} function pasteisbase(){$('.SYS_ElemBaseBlock').show();if($('.SYS_ElemBaseBlockEl').html()==''){$.post("login/getelem.php",{func:'dir'},function(data){$('.SYS_ElemBaseBlockEl').append(data);});}} function AddElem(elem){var newblock=$('
').html(elem);newblock.find('div').each(function(index){if(typeof($(this).attr('id'))!=="undefined"){var newxid=newid();$(this).attr('id',newxid);}});var divtype=newblock.find('div:first').attr('type');var ferstxid=newblock.find('div:first').attr('id');switch(divtype){case'Popup':if($('.SYS_Main').find('div[type="Popup"]').length!=0){$('.SYS_Main').find('div[type="Popup"]:last').after(newblock.html());}else{$('.SYS_Main').append(newblock.html());} StructurePopupView();break;case'Page':$('.SYS_Main').find('div[type="Page"]:last').after(newblock.html());StructurePageView();break;default:if($('div[sys_edit="1"').length!=0){$('div[sys_edit="1"').append(newblock.html());}else{var elid=$('.SYS_ClickRightMenu2').attr('el');$('.SYS_ClickRightMenu2').removeAttr('el');if($('#'+elid).attr('type')=='Page'||$('#'+elid).attr('type')=='Popup'){$('#'+elid).append(newblock.html());}}} RestartFxUi(ferstxid);} function pasteisfile(){var input=$(document.createElement('input'));input.on('change',function(e){var file=e.target.files[0];var reader=new FileReader();reader.onload=(function(file){return function(e){var r=e.target;var block=r.result;AddElem(block);};})(file);reader.readAsText(file);});input.attr("type","file");input.attr('class','pasteisfile');input.trigger('click');} function TagSelectCreate(){if(typeof($('.SYS_Tags').attr('json'))!=="undefined"){var tagsarr=JSON.parse($('.SYS_Tags').attr('json'));const tags={};Object.keys(tagsarr).sort().forEach(function(key){tags[key]=tagsarr[key];});$('.SYS_TagSelectBlockSelect').html('');var ts=$('
');for(var tag in tags){var tagarr=tag.split('/');var vtagadd='';var vtagdel='';var vtagedit='';if(tagarr[1]=='vtag'){vtagadd='
+
';vtagdel='
x
';vtagedit='
';} if(ts.find('.SYS_TagSelectBlockGroup[group="'+tagarr[1]+'"]').length==0){ts.append('
'+tagarr[1]+'
'+vtagadd+'
')} ts.find('.SYS_TagSelectBlockGroup[group="'+tagarr[1]+'"]').append('
'+vtagdel+vtagedit+'
'+tag+' ('+tags[tag]['name']+')
'+tags[tag]['typexiot']+'
');} if(ts.find('.SYS_TagSelectBlockGroup[group="vtag"]').length==0){ts.append('
vtag
+
');} $('.SYS_TagSelectBlock').find('.SYS_TagSelectBlockSelect').append(ts);}} function SavePlcModule(){var setupjson=$('.SYS_PlcModuleSetup').attr('json');if(setupjson&&setupjson!==''){var setuparr=JSON.parse(setupjson);}else{var setuparr={};} var type=$('.SYS_PlcModuleBlock').attr('type');if(typeof(type)!=="undefined"){if(type!=='gc'){setuparr[type]={};} if($('.SYS_PlcModuleBlock').find('.SYS_PlcModule').length>0){var i=0;$('.SYS_PlcModuleBlock').find('.SYS_PlcModule').each(function(){if(type!=='gc'){setuparr[type][i]={};} $(this).find('.SYS_PlcModuleVal').each(function(){try{var paramname=$(this).attr('name');SystemLog('ok');SystemLog(paramname);var eltype=$(this).attr('type');var arr=$(this).closest('.SYS_PlcModuleParamBlock').attr('arr');var arr2=$(this).closest('.SYS_PlcModuleParamBlock2').attr('arr');var arr3=$(this).closest('.SYS_PlcModuleParamBlock3').attr('arr');var arr4=$(this).closest('.SYS_PlcModuleParamBlock4').attr('arr');var arr5=$(this).closest('.SYS_PlcModuleParamBlock5').attr('arr');SystemLog(arr+' '+arr2+' '+arr3+' '+arr4) var paramval="";switch(eltype){case'text':paramval=$(this).val();break;case'select':paramval=$(this).val();break;case'checkbox':paramval=0;if($(this).prop("checked")==true){paramval='1';} break;} if(arr){if(!setuparr[type][i][arr]){setuparr[type][i][arr]={};} if(arr2){if(arr2=='*'){arr2=$(this).closest('.SYS_PlcModuleParamBlock2').index();SystemLog("arr2arr2arr2 = "+arr2);} if(!setuparr[type][i][arr][arr2]){setuparr[type][i][arr][arr2]={};} if(arr3){if(arr3=='*'){arr3=$(this).closest('.SYS_PlcModuleParamBlock3').index();SystemLog("arr3arr3arr3 = "+arr3);} if(!setuparr[type][i][arr][arr2][arr3]){setuparr[type][i][arr][arr2][arr3]={};} if(arr4){if(arr4=='*'){arr4=$(this).closest('.SYS_PlcModuleParamBlock4').index();SystemLog("arr4arr4arr4 = "+arr4);} if(!setuparr[type][i][arr][arr2][arr3][arr4]){setuparr[type][i][arr][arr2][arr3][arr4]={};} if(arr5){if(arr5=='*'){arr5=$(this).closest('.SYS_PlcModuleParamBlock5').index();SystemLog("arr5arr5arr5 = "+arr5);} if(!setuparr[type][i][arr][arr2][arr3][arr4][arr5]){setuparr[type][i][arr][arr2][arr3][arr4][arr5]={};} setuparr[type][i][arr][arr2][arr3][arr4][arr5][paramname]=paramval;}else{setuparr[type][i][arr][arr2][arr3][arr4][paramname]=paramval;}}else{setuparr[type][i][arr][arr2][arr3][paramname]=paramval;}}else{setuparr[type][i][arr][arr2][paramname]=paramval;}}else{setuparr[type][i][arr][paramname]=paramval;}}else{setuparr[type][i][paramname]=paramval;}}catch(e){SystemLog(e);}});var tagjson=$('.SYS_Tags').attr('json');if(tagjson&&tagjson!==''){var tagarr=JSON.parse(tagjson);}else{var tagarr={};} switch(type){case'zigbee2mqtt':delete(tagarr['z2m']);for(var tag in tagarr){if(tagarr[tag]['module']=='z2m'){delete(tagarr[tag]);}} SystemLog(setuparr);for(var dev in setuparr[type][i]['devices']){for(var contrl in setuparr[type][i]['devices'][dev]['controls']){tagarr['/z2m/'+dev+'/'+contrl]={};tagarr['/z2m/'+dev+'/'+contrl]['typez2m']=setuparr[type][i]['devices'][dev]['controls'][contrl]['typez2m'];tagarr['/z2m/'+dev+'/'+contrl]['typexiot']=setuparr[type][i]['devices'][dev]['controls'][contrl]['typexiot'];tagarr['/z2m/'+dev+'/'+contrl]['name']=setuparr[type][i]['devices'][dev]['controls'][contrl]['name'];}} break;case'1wire':delete(tagarr['1wire']);for(var tag in tagarr){if(tagarr[tag]['module']=='1wire'){delete(tagarr[tag]);}} SystemLog(setuparr);for(var dev in setuparr[type][i]['devices']){tagarr['/1wire/'+dev+'/temperature']={};tagarr['/1wire/'+dev+'/temperature']['typexiot']='temperature';tagarr['/1wire/'+dev+'/temperature']['name']=setuparr[type][i]['devices'][dev]['name'];} break;case'modbustcpclient':delete(tagarr['modbustcpclient']);for(var tag in tagarr){if(tagarr[tag]['module']=='modbustcpclient'){delete(tagarr[tag]);}} console.log('!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!');console.log(setuparr);for(var id in setuparr[type][i]['read']){var count=parseInt(setuparr[type][i]['read'][id]['count']);var start=parseInt(setuparr[type][i]['read'][id]['start']);for(var key=start;key<(start+count);key++){tagarr['/modbustcpclient/0/'+key]={};tagarr['/modbustcpclient/0/'+key]['typexiot']='string';tagarr['/modbustcpclient/0/'+key]['name']='';tagarr['/modbustcpclient/0/'+key]['rw']="rw";}} break;case'knx':delete(tagarr['knx']);for(var tag in tagarr){if(tagarr[tag]['module']=='knx'){delete(tagarr[tag]);}} for(var dev in setuparr[type][i]['group']){for(var contrl in setuparr[type][i]['group'][dev]['dev']){tagarr['/knx/'+contrl]={};tagarr['/knx/'+contrl]['typeknx']=setuparr[type][i]['group'][dev]['dev'][contrl]['type'];tagarr['/knx/'+contrl]['typexiot']=setuparr[type][i]['group'][dev]['dev'][contrl]['typexiot'];tagarr['/knx/'+contrl]['name']=setuparr[type][i]['group'][dev]['dev'][contrl]['name'];tagarr['/knx/'+contrl]['rw']=setuparr[type][i]['group'][dev]['dev'][contrl]['rw'];}} break;case'weather':tagarr['/weather/current/temp']={};tagarr['/weather/current/temp']['typexiot']='float';tagarr['/weather/current/temp']['name']='температура';tagarr['/weather/current/temp']['rw']="r";tagarr['/weather/current/windspeed']={};tagarr['/weather/current/windspeed']['typexiot']='float';tagarr['/weather/current/windspeed']['name']='скорость ветра';tagarr['/weather/current/windspeed']['rw']="r";tagarr['/weather/current/winddirection']={};tagarr['/weather/current/winddirection']['typexiot']='int';tagarr['/weather/current/winddirection']['name']='направление ветра';tagarr['/weather/current/winddirection']['rw']="r";tagarr['/weather/current/humidity']={};tagarr['/weather/current/humidity']['typexiot']='int';tagarr['/weather/current/humidity']['name']='влажность';tagarr['/weather/current/humidity']['rw']="r";tagarr['/weather/current/pressure']={};tagarr['/weather/current/pressure']['typexiot']='int';tagarr['/weather/current/pressure']['name']='давление';tagarr['/weather/current/pressure']['rw']="r";tagarr['/weather/current/sunrise']={};tagarr['/weather/current/sunrise']['typexiot']='time';tagarr['/weather/current/sunrise']['name']='время рассвета';tagarr['/weather/current/sunrise']['rw']="r";tagarr['/weather/current/sunset']={};tagarr['/weather/current/sunset']['typexiot']='time';tagarr['/weather/current/sunset']['name']='время заката';tagarr['/weather/current/sunset']['rw']="r";tagarr['/weather/dark']={};tagarr['/weather/dark']['typexiot']='switch';tagarr['/weather/dark']['name']='темное время суток';tagarr['/weather/dark']['rw']="r";tagarr['/weather/current/code']={};tagarr['/weather/current/code']['typexiot']='number';tagarr['/weather/current/code']['name']='код погоды';tagarr['/weather/current/code']['rw']="r";tagarr['/weather/current/desc']={};tagarr['/weather/current/desc']['typexiot']='string';tagarr['/weather/current/desc']['name']='описание';tagarr['/weather/current/desc']['rw']="r";tagarr['/weather/current/icon']={};tagarr['/weather/current/icon']['typexiot']='string';tagarr['/weather/current/icon']['name']='ссылка на иконку';tagarr['/weather/current/icon']['rw']="r";tagarr['/weather/current/sunnyday']={};tagarr['/weather/current/sunnyday']['typexiot']='switch';tagarr['/weather/current/sunnyday']['name']='солнечный день';tagarr['/weather/current/sunnyday']['rw']="r";break;case'routing':tagarr['/routing/gateway/default']={};tagarr['/routing/gateway/default']['typexiot']='string';tagarr['/routing/gateway/default']['name']='текущий шлюз выхода в интернет';tagarr['/routing/gateway/default']['rw']="r";tagarr['/routing/packetloss/eth0']={};tagarr['/routing/packetloss/eth0']['typexiot']='percentage';tagarr['/routing/packetloss/eth0']['name']='процент потерь пакетов на eth0';tagarr['/routing/packetloss/eth0']['rw']="r";tagarr['/routing/packetloss/wlan0']={};tagarr['/routing/packetloss/wlan0']['typexiot']='percentage';tagarr['/routing/packetloss/wlan0']['name']='процент потерь пакетов на wlan0';tagarr['/routing/packetloss/wlan0']['rw']="r";tagarr['/routing/packetloss/ppp0']={};tagarr['/routing/packetloss/ppp0']['typexiot']='percentage';tagarr['/routing/packetloss/ppp0']['name']='процент потерь пакетов на ppp0';tagarr['/routing/packetloss/ppp0']['rw']="r";break;case'smsc':tagarr['/smsc/sms/send1']={};tagarr['/smsc/sms/send1']['typexiot']='string';tagarr['/smsc/sms/send1']['name']='отправить sms по номеру 1';tagarr['/smsc/sms/send1']['rw']="w";tagarr['/smsc/sms/send2']={};tagarr['/smsc/sms/send2']['typexiot']='string';tagarr['/smsc/sms/send2']['name']='отправить sms по номеру 2';tagarr['/smsc/sms/send2']['rw']="w";tagarr['/smsc/call/send1']={};tagarr['/smsc/call/send1']['typexiot']='string';tagarr['/smsc/call/send1']['name']='отправить голосовое сообщение по номеру 1';tagarr['/smsc/call/send1']['rw']="w";tagarr['/smsc/call/send2']={};tagarr['/smsc/call/send2']['typexiot']='string';tagarr['/smsc/call/send2']['name']='отправить голосовое сообщение по номеру 2';tagarr['/smsc/call/send2']['rw']="w";tagarr['/smsc/info/balance']={};tagarr['/smsc/info/balance']['typexiot']='string';tagarr['/smsc/info/balance']['name']='баланс';tagarr['/smsc/info/balance']['rw']="r";break;case'homekit':tagarr['/module/homekit/delete']={};tagarr['/module/homekit/delete']['typexiot']='push_button';tagarr['/module/homekit/delete']['name']='Homekit - отвязать дом';tagarr['/module/homekit/delete']['rw']="w";tagarr['/module/homekit/restart']={};tagarr['/module/homekit/restart']['typexiot']='push_button';tagarr['/module/homekit/restart']['name']='Homekit - перезагрузить';tagarr['/module/homekit/restart']['rw']="w";tagarr['/module/homekit/status']={};tagarr['/module/homekit/status']['typexiot']='switch';tagarr['/module/homekit/status']['name']='Homekit - статус работы';tagarr['/module/homekit/status']['rw']="r";break;case'mplayer':tagarr['/mplayer/play/link']={};tagarr['/mplayer/play/link']['typexiot']='link';tagarr['/mplayer/play/link']['name']='воспроизвести по ссылке';tagarr['/mplayer/play/link']['rw']="w";tagarr['/mplayer/play/playlist']={};tagarr['/mplayer/play/playlist']['typexiot']='link';tagarr['/mplayer/play/playlist']['name']='Воспроизвести плейлист';tagarr['/mplayer/play/playlist']['rw']="w";tagarr['/mplayer/remote/control']={};tagarr['/mplayer/remote/control']['typexiot']='remote_control';tagarr['/mplayer/remote/control']['name']='управление плейером';tagarr['/mplayer/remote/control']['rw']="w";tagarr['/mplayer/current/playlist']={};tagarr['/mplayer/current/playlist']['typexiot']='playlist';tagarr['/mplayer/current/playlist']['name']='Загруженный плейлист';tagarr['/mplayer/current/playlist']['rw']="w";tagarr['/mplayer/current/song']={};tagarr['/mplayer/current/song']['typexiot']='link';tagarr['/mplayer/current/song']['name']='Играет сейчас';tagarr['/mplayer/current/song']['rw']="w";tagarr['/mplayer/current/cover']={};tagarr['/mplayer/current/cover']['typexiot']='base64';tagarr['/mplayer/current/cover']['name']='Обложка';tagarr['/mplayer/current/cover']['rw']="w";tagarr['/mplayer/current/coveruri']={};tagarr['/mplayer/current/coveruri']['typexiot']='link';tagarr['/mplayer/current/coveruri']['name']='Обложка';tagarr['/mplayer/current/coveruri']['rw']="w";break;case'mediatrap':tagarr['/mediatrap/control/update']={};tagarr['/mediatrap/control/update']['typexiot']='push_button';tagarr['/mediatrap/control/update']['name']='воспроизвести по ссылке';tagarr['/mediatrap/control/update']['rw']="w";tagarr['/mediatrap/playlist/radiomoscow']={};tagarr['/mediatrap/playlist/radiomoscow']['typexiot']='playlist';tagarr['/mediatrap/playlist/radiomoscow']['name']='Плейлист радио Москвы';tagarr['/mediatrap/playlist/radiomoscow']['rw']="r";break;case'jethome':tagarr['/jethome/rele/1']={};tagarr['/jethome/rele/1']['typexiot']='switch';tagarr['/jethome/rele/1']['name']='реле 1';tagarr['/jethome/rele/1']['rw']="rw";tagarr['/jethome/rele/2']={};tagarr['/jethome/rele/2']['typexiot']='switch';tagarr['/jethome/rele/2']['name']='реле 2';tagarr['/jethome/rele/2']['rw']="rw";tagarr['/jethome/rele/3']={};tagarr['/jethome/rele/3']['typexiot']='switch';tagarr['/jethome/rele/3']['name']='реле 3';tagarr['/jethome/rele/3']['rw']="rw";tagarr['jethome/discrete/1']={};tagarr['jethome/discrete/1']['typexiot']='switch';tagarr['jethome/discrete/1']['name']='дискретный вход 1';tagarr['jethome/discrete/1']['rw']="rw";tagarr['jethome/discrete/2']={};tagarr['jethome/discrete/2']['typexiot']='switch';tagarr['jethome/discrete/2']['name']='дискретный вход 2';tagarr['jethome/discrete/2']['rw']="rw";tagarr['jethome/discrete/3']={};tagarr['jethome/discrete/3']['typexiot']='switch';tagarr['jethome/discrete/3']['name']='дискретный вход 3';tagarr['jethome/discrete/3']['rw']="rw";tagarr['jethome/discrete/4']={};tagarr['jethome/discrete/4']['typexiot']='switch';tagarr['jethome/discrete/4']['name']='дискретный вход 4';tagarr['jethome/discrete/4']['rw']="rw";break;case'gc':tagarr['/gc/ir/1.1']={};tagarr['/gc/ir/1.1']['typexiot']='string';tagarr['/gc/ir/1.1']['name']='Записать Ик команду на порт 1.1';tagarr['/gc/ir/1.1']['rw']="w";tagarr['/gc/ir/1.2']={};tagarr['/gc/ir/1.2']['typexiot']='string';tagarr['/gc/ir/1.2']['name']='Записать Ик команду на порт 1.2';tagarr['/gc/ir/1.2']['rw']="w";tagarr['/gc/ir/1.3']={};tagarr['/gc/ir/1.3']['typexiot']='string';tagarr['/gc/ir/1.3']['name']='Записать Ик команду на порт 1.3';tagarr['/gc/ir/1.3']['rw']="w";tagarr['/gc/ir/2.1']={};tagarr['/gc/ir/2.1']['typexiot']='string';tagarr['/gc/ir/2.1']['name']='Записать Ик команду на порт 2.1';tagarr['/gc/ir/2.1']['rw']="w";tagarr['/gc/ir/2.2']={};tagarr['/gc/ir/2.2']['typexiot']='string';tagarr['/gc/ir/2.2']['name']='Записать Ик команду на порт 2.2';tagarr['/gc/ir/2.2']['rw']="w";tagarr['/gc/ir/2.3']={};tagarr['/gc/ir/2.3']['typexiot']='string';tagarr['/gc/ir/2.3']['name']='Записать Ик команду на порт 2.3';tagarr['/gc/ir/2.3']['rw']="w";tagarr['/gc/ir/3.1']={};tagarr['/gc/ir/3.1']['typexiot']='string';tagarr['/gc/ir/3.1']['name']='Записать Ик команду на порт 3.1';tagarr['/gc/ir/3.1']['rw']="w";tagarr['/gc/ir/3.2']={};tagarr['/gc/ir/3.2']['typexiot']='string';tagarr['/gc/ir/3.2']['name']='Записать Ик команду на порт 3.2';tagarr['/gc/ir/3.2']['rw']="w";tagarr['/gc/ir/3.3']={};tagarr['/gc/ir/3.3']['typexiot']='string';tagarr['/gc/ir/3.3']['name']='Записать Ик команду на порт 3.3';tagarr['/gc/ir/3.3']['rw']="w";tagarr['/gc/ir/4.1']={};tagarr['/gc/ir/4.1']['typexiot']='string';tagarr['/gc/ir/4.1']['name']='Записать Ик команду на порт 4.1';tagarr['/gc/ir/4.1']['rw']="w";tagarr['/gc/ir/4.2']={};tagarr['/gc/ir/4.2']['typexiot']='string';tagarr['/gc/ir/4.2']['name']='Записать Ик команду на порт 4.2';tagarr['/gc/ir/4.2']['rw']="w";tagarr['/gc/ir/4.3']={};tagarr['/gc/ir/4.3']['typexiot']='string';tagarr['/gc/ir/4.3']['name']='Записать Ик команду на порт 4.3';tagarr['/gc/ir/4.3']['rw']="w";tagarr['/gc/ir/5.1']={};tagarr['/gc/ir/5.1']['typexiot']='string';tagarr['/gc/ir/5.1']['name']='Записать Ик команду на порт 5.1';tagarr['/gc/ir/5.1']['rw']="w";tagarr['/gc/ir/5.2']={};tagarr['/gc/ir/5.2']['typexiot']='string';tagarr['/gc/ir/5.2']['name']='Записать Ик команду на порт 5.2';tagarr['/gc/ir/5.2']['rw']="w";tagarr['/gc/ir/5.3']={};tagarr['/gc/ir/5.3']['typexiot']='string';tagarr['/gc/ir/5.3']['name']='Записать Ик команду на порт 5.3';tagarr['/gc/ir/5.3']['rw']="w";tagarr['/gc/ir/6.1']={};tagarr['/gc/ir/6.1']['typexiot']='string';tagarr['/gc/ir/6.1']['name']='Записать Ик команду на порт 6.1';tagarr['/gc/ir/6.1']['rw']="w";tagarr['/gc/ir/6.2']={};tagarr['/gc/ir/6.2']['typexiot']='string';tagarr['/gc/ir/6.2']['name']='Записать Ик команду на порт 6.2';tagarr['/gc/ir/6.2']['rw']="w";tagarr['/gc/ir/6.3']={};tagarr['/gc/ir/6.3']['typexiot']='string';tagarr['/gc/ir/6.3']['name']='Записать Ик команду на порт 6.3';tagarr['/gc/ir/6.3']['rw']="w";break;} tagarr['/test/switch/1']={};tagarr['/test/switch/1']['typexiot']='switch';tagarr['/test/switch/1']['name']='Тест - переключатель 1';tagarr['/test/switch/1']['rw']="rw";tagarr['/test/switch/2']={};tagarr['/test/switch/2']['typexiot']='switch';tagarr['/test/switch/2']['name']='Тест - переключатель 2';tagarr['/test/switch/2']['rw']="rw";tagarr['/test/switch/3']={};tagarr['/test/switch/3']['typexiot']='switch';tagarr['/test/switch/3']['name']='Тест - переключатель 3';tagarr['/test/switch/3']['rw']="rw";tagarr['/test/percentage/1']={};tagarr['/test/percentage/1']['typexiot']='percentage';tagarr['/test/percentage/1']['name']='Тест - процент 1';tagarr['/test/percentage/1']['rw']="rw";tagarr['/test/percentage/2']={};tagarr['/test/percentage/2']['typexiot']='percentage';tagarr['/test/percentage/2']['name']='Тест - процент 2';tagarr['/test/percentage/2']['rw']="rw";tagarr['/test/percentage/3']={};tagarr['/test/percentage/3']['typexiot']='percentage';tagarr['/test/percentage/3']['name']='Тест - процент 3';tagarr['/test/percentage/3']['rw']="rw";tagarr['/system/internet/connect']={};tagarr['/system/internet/connect']['typexiot']='switch';tagarr['/system/internet/connect']['name']='Статус подключения к интернет';tagarr['/system/internet/connect']['rw']="r";tagarr['/system/mqtt/cloudconnect']={};tagarr['/system/mqtt/cloudconnect']['typexiot']='switch';tagarr['/system/mqtt/cloudconnect']['name']='Статус подключения к облачному mqtt брокеру';tagarr['/system/mqtt/cloudconnect']['rw']="r";tagarr['/system/mqttplc/cloudconnect']={};tagarr['/system/mqttplc/cloudconnect']['typexiot']='switch';tagarr['/system/mqttplc/cloudconnect']['name']='Статус подключения к mqtt брокера контроллера к облачному mqtt брокеру';tagarr['/system/mqttplc/cloudconnect']['rw']="r";tagarr['/system/mqtt/localconnect']={};tagarr['/system/mqtt/localconnect']['typexiot']='switch';tagarr['/system/mqtt/localconnect']['name']='Статус подключения к mqtt брокеру контроллера';tagarr['/system/mqtt/localconnect']['rw']="r";tagarr['/system/plc/connect']={};tagarr['/system/plc/connect']['typexiot']='switch';tagarr['/system/plc/connect']['name']='Статус подключения к контроллеру';tagarr['/system/plc/connect']['rw']="r";tagarr['/system/plc/login']={};tagarr['/system/plc/login']['typexiot']='switch';tagarr['/system/plc/login']['name']='Статус авторизации контроллера в редакторе XIOT-EDITOR';tagarr['/system/plc/login']['rw']="r";SystemLog(tagarr);tagjson=JSON.stringify(tagarr);$('.SYS_Tags').attr('json',tagjson);i++;});setupjson=JSON.stringify(setuparr);$('.SYS_PlcModuleSetup').attr('json',setupjson);}} TagSelectCreate();} function UiFuncSave(){if(UiFuncXid!==''){var ArrJson=JSON.stringify(UiFuncArrEdit);switch(FXedit){case'fxui':$('#'+UiFuncXid).attr('UiFunc',ArrJson);break;case'fxhome':if(typeof(DevicesConf['home']['param'])==='undefined'){DevicesConf['home']['param']={};} DevicesConf['home']['param']['FxLogic']=UiFuncArrEdit;break;case'fxfloor':if(typeof(FloorsConfList[UiFuncXid])==='undefined'){FloorsConfList[UiFuncXid]={};FloorsConfList[UiFuncXid]['param']={};} FloorsConfList[UiFuncXid]['param']['FxLogic']=UiFuncArrEdit;break;case'fxroom':if(typeof(RoomsConfList[UiFuncXid])==='undefined'){RoomsConfList[UiFuncXid]={};RoomsConfList[UiFuncXid]['param']={};} RoomsConfList[UiFuncXid]['param']['FxLogic']=UiFuncArrEdit;break;case'fxdev':if(typeof(DevicesConfList[UiFuncXid])==='undefined'){DevicesConfList[UiFuncXid]={};DevicesConfList[UiFuncXid]['param']={};} DevicesConfList[UiFuncXid]['param']['FxLogic']=UiFuncArrEdit;break;case'fxdevlink':var did=$('.SYS_UiFuncBlockBox').attr('did');var hn=$('.SYS_UiFuncBlockBox').attr('hn');if(typeof(DevicesConfList[did]['param'])==='undefined'){DevicesConfList[did]['param']={};} if(typeof(DevicesConfList[did]['param']['devlink'])==='undefined'){DevicesConfList[did]['param']['devlink']={};} DevicesConfList[did]['param']['devlink'][hn]=UiFuncArrEdit;break;default:$('#'+UiFuncXid).attr('LogicFunc',ArrJson);} UiFuncPrint();}} function AddBlock(blocktype){switch(blocktype){case'block1':var xid=newid();var newblock=$('.SYS_AddBlock').clone();newblock.show();var style=newblock.attr('style');newblock.attr('id',xid).removeClass('SYS_AddBlock').attr('styleall',style);if($('div[sys_edit="1"').length!=0){$('div[sys_edit="1"').append(newblock);}else{var elid=$('.SYS_ClickRightMenu2').attr('el');$('.SYS_ClickRightMenu2').removeAttr('el');if($('#'+elid).attr('type')=='Page'||$('#'+elid).attr('type')=='Popup'){$('#'+elid).append(newblock);}} break;}} function CpColorSet(input){if(input){var SYS_ElEditor=input.closest('.SYS_ElEditor');var xid=SYS_ElEditor.attr('xid');var param=input.parent().find('select').val();$('.SYS_CpColorPicker').attr('xid',xid);$('.SYS_CpColorPicker').attr('param',xid);$('#'+xid).css(param,input.val());}} function FdomPrintAddUl(els,liget,ppp,pelsel){var ul=$('
    ');if(els.children().length>0){liget.append(ul);} if(els.children('div').length>0){liget.find('.SYS_FdomSelect').prepend('
    ');}else{liget.find('.SYS_FdomSelect').prepend('
    ');} els.children('div').each(function(index){if(name=$(this).attr('name')){}else{name='';} if($(this).find($('#'+UiFuncXid)).length>0){var pel='P'+(ppp-2);var pppn=ppp-1;}else{if($(this).attr('id')==UiFuncXid){var pppn=ppp;var pel='EL';}else{var pppn=ppp;if(liget.find('.SYS_FdomSelect').attr('pel')){var pel=liget.find('.SYS_FdomSelect').attr('pel')+'-EL'+(index+1);}else{var pel='P'+(ppp-2);}}} var findpel=0;if(pelsel!==undefined){var pelselarr=pelsel.split(';');for(var i in pelselarr){if(pelselarr[i]==pel){findpel=1;}}} if(findpel==1){var li=$('
  • '+name+'
  • ');ul.append(li);ul.css('display','block');ul.parents('ul').css('display','block');ul.parents('li').find('.SYS_FdomSelectView:first').addClass('SYS_FdomSelectViewMinus');ul.parent().find('.SYS_FdomSelectView:first').addClass('SYS_FdomSelectViewMinus');}else{var li=$('
  • '+name+'
  • ');ul.append(li);} if(pel=='EL'){ul.css('display','block');ul.parents('ul').css('display','block');ul.parents('li').find('.SYS_FdomSelectView:first').addClass('SYS_FdomSelectViewMinus');ul.parent().find('.SYS_FdomSelectView:first').addClass('SYS_FdomSelectViewMinus');} FdomPrintAddUl($(this),li,pppn,pelsel);});} function FdomPrint(){var fdomel=$("#"+UiFuncXid);var ind=1;for(var i=0;i<10;i++){if(fdomel.parent().attr('class')!='SYS_Main'){fdomel=fdomel.parent();ind++;}} $('.SYS_FdomSelectBlockBody').html('');var startul=$('
    • '+fdomel.attr('name')+'
    ');var key=$('.SYS_FdomSelectBlock').attr('key');$('.SYS_FdomSelectBlockBody').append(startul);var pelsel=UiFuncArrEditEl[key]['val'];FdomPrintAddUl(fdomel,$('.SYS_FdomSelectStartLi'),ind,pelsel);} function UiFuncLinkDel(Element){var el=$(Element);var key=el.attr('key');var delkey=el.attr('link');var linkn=el.attr('linkn');SystemLog(key);SystemLog(delkey);SystemLog(linkn);var link=UiFuncArrEditEl[key][linkn];SystemLog(link);if(link.indexOf(',')){var linkarr=link.split(',');var linknew=[];for(var key3 in linkarr){var key33=linkarr[key3];if(key33.indexOf('-')!==-1){key33=key33.split('-')[0];} if(key33!==delkey){linknew.push(linkarr[key3]);}} linknew=linknew.join();UiFuncArrEditEl[key][linkn]=linknew;}else{if(link!=''){if(link.indexOf('-')!==-1){link=link.split('-')[0];SystemLog(link);} if(link==delkey){delete UiFuncArrEditEl[key][linkn];}}} UiFuncSave();} function UiFuncAdd(eldeg){var type=eldeg.attr('type');var x=parseInt($('body').attr('touchX'))-parseInt($('.SYS_UiFuncBlockBox').offset().left)-parseInt(eldeg.attr('tleft'));var y=parseInt($('body').attr('touchY'))-parseInt($('.SYS_UiFuncBlockBox').offset().top)-parseInt(eldeg.attr('ttop'));var step=parseInt($('body').css('width'))/screen.width;step=step.toFixed(1)*10;var x=parseInt(Math.round(x/step)*step)/parseInt($(document).height())*100;var y=parseInt(Math.round(y/step)*step)/parseInt($(document).height())*100;if(x>=0&&y>=0){switch(FXedit){case'fxui':UiFuncArrEdit={'i':1,'el':{}} var ArrJson=$('#'+UiFuncXid).attr('UiFunc');if(ArrJson){UiFuncArrEdit=JSON.parse(ArrJson);} break;case'fxdev':UiFuncArrEdit={'i':1,'el':{}} SystemLog('1111111111111111111111111111133333333333333333333333');SystemLog(UiFuncXid);if(typeof(DevicesConfList[UiFuncXid]['param']['FxLogic'])!=='undefined'){UiFuncArrEdit=DevicesConfList[UiFuncXid]['param']['FxLogic'];} break;case'fxdevlink':UiFuncArrEdit={'i':1,'el':{}} var did=$('.SYS_UiFuncBlockBox').attr('did');var hn=$('.SYS_UiFuncBlockBox').attr('hn');if(typeof(DevicesConfList[did]['param']['devlink'])!=='undefined'){if(typeof(DevicesConfList[did]['param']['devlink'][hn])!=='undefined'){UiFuncArrEdit=DevicesConfList[did]['param']['devlink'][hn];}} break;} if(UiFuncSelBoxKey!=''){UiFuncArrEdit['el'][UiFuncSelBoxKey]['el'][UiFuncArrEdit['el'][UiFuncSelBoxKey]['i']]={'type':type,'x':x,'y':y} UiFuncArrEdit['el'][UiFuncSelBoxKey]['i']=UiFuncArrEdit['el'][UiFuncSelBoxKey]['i']+1;}else{UiFuncArrEdit['el'][UiFuncArrEdit['i']]={'type':type,'x':x,'y':y} UiFuncArrEdit['i']=UiFuncArrEdit['i']+1;} UiFuncSave();} eldeg.remove();} function UiFuncSaveVal(sel,attr,typein){var key=sel.closest('.SYS_UiFunc').attr('key');switch(typein){case'checkbox':var val='0';if(sel.prop('checked')==true){val='1';}else{val='0';} break;case'rgb':var val=sel.val();var val2=hexToRgb(sel.val());val='rgb('+val2[0]+','+val2[1]+','+val2[2]+')';break;default:var val=sel.val();} if(typeof(sel.attr('arr'))!=="undefined"){var arr=sel.attr('arr');if(typeof(UiFuncArrEditEl[key][arr])==="undefined"){UiFuncArrEditEl[key][arr]={}} UiFuncArrEditEl[key][arr][attr]=val;}else{UiFuncArrEditEl[key][attr]=val;} UiFuncSave();};function UiFuncPrint(){var eltype=$('#'+UiFuncXid).attr('type');$('.SYS_UiFuncBlock').show();$('html').css('width','100%');$('html').css('height','100%');var svgw=parseInt($('.SYS_UiFuncBlockBox').css('width'));var svgh=parseInt($('.SYS_UiFuncBlockBox').css('height'));$('.SYS_UiFuncBlockBox').html(' ');$('.SYS_UiFuncBlockLeftMenu').find('.SYS_UiFunc[fxui="1"]').show();$('.SYS_UiFuncBlockRightMenu').find('.SYS_UiFunc[fxui="1"]').show();$('.SYS_UiFuncBlockTopMenu').find('.SYS_UiFunc[fxui="1"]').show();$('.SYS_UiFuncBlockLeftMenu').find('.SYS_UiFunc[fxui="1"]').each(function(){if(typeof($(this).attr('only'))!=='undefined'){$(this).attr('view','0');if($(this).attr('only')===eltype){$(this).attr('view','1').css('background-color','#71abc3');}}});$('.SYS_UiFuncBlockRightMenu').find('.SYS_UiFunc[fxui="1"]').each(function(){if($(this).attr('only')!==undefined){$(this).attr('view','0');if($(this).attr('only')===eltype){$(this).attr('view','1').css('background-color','#71abc3');}}});UiFuncArrEdit={'i':1,'el':{}} switch(FXedit){case'fxui':ArrJson=$('#'+UiFuncXid).attr('UiFunc');if(!ArrJson){return} UiFuncArrEdit=JSON.parse(ArrJson);break;case'fxfloor':if(typeof(FloorsConfList[UiFuncXid])!=='undefined'){if(typeof(FloorsConfList[UiFuncXid]['param'])!=='undefined'){if(typeof(FloorsConfList[UiFuncXid]['param']['FxLogic'])!=='undefined'){UiFuncArrEdit=FloorsConfList[UiFuncXid]['param']['FxLogic'];}}else{FloorsConfList[UiFuncXid]['param']={};}}else{FloorsConfList[UiFuncXid]={};FloorsConfList[UiFuncXid]['param']={};} $('.SYS_UiFuncBlockLeftMenu').find('.SYS_UiFunc[fxui="1"]').hide();$('.SYS_UiFuncBlockRightMenu').find('.SYS_UiFunc[fxui="1"]').hide();$('.SYS_UiFuncBlockTopMenu').find('.SYS_UiFunc[fxui="1"]').hide();break;case'fxroom':if(typeof(RoomsConfList[UiFuncXid])!=='undefined'){if(typeof(RoomsConfList[UiFuncXid]['param'])!=='undefined'){if(typeof(RoomsConfList[UiFuncXid]['param']['FxLogic'])!=='undefined'){UiFuncArrEdit=RoomsConfList[UiFuncXid]['param']['FxLogic'];}}else{RoomsConfList[UiFuncXid]['param']={};}}else{RoomsConfList[UiFuncXid]={};RoomsConfList[UiFuncXid]['param']={};} $('.SYS_UiFuncBlockLeftMenu').find('.SYS_UiFunc[fxui="1"]').hide();$('.SYS_UiFuncBlockRightMenu').find('.SYS_UiFunc[fxui="1"]').hide();$('.SYS_UiFuncBlockTopMenu').find('.SYS_UiFunc[fxui="1"]').hide();break;case'fxdev':if(typeof(DevicesConfList[UiFuncXid])!=='undefined'){if(typeof(DevicesConfList[UiFuncXid]['param']['FxLogic'])!=='undefined'){UiFuncArrEdit=DevicesConfList[UiFuncXid]['param']['FxLogic'];}}else{DevicesConfList[UiFuncXid]={};DevicesConfList[UiFuncXid]['param']={};} $('.SYS_UiFuncBlockLeftMenu').find('.SYS_UiFunc[fxui="1"]').hide();$('.SYS_UiFuncBlockRightMenu').find('.SYS_UiFunc[fxui="1"]').hide();$('.SYS_UiFuncBlockTopMenu').find('.SYS_UiFunc[fxui="1"]').hide();break;case'fxdevlink':UiFuncArrEdit={};var did=$('.SYS_UiFuncBlockBox').attr('did');var hn=$('.SYS_UiFuncBlockBox').attr('hn');if(typeof(DevicesConfList[did]['param']['devlink'])!=='undefined'){if(typeof(DevicesConfList[did]['param']['devlink'][hn])!=='undefined'){UiFuncArrEdit=DevicesConfList[did]['param']['devlink'][hn];}}else{DevicesConfList[did]={};DevicesConfList[did]['param']={};} if(typeof(UiFuncArrEdit['i'])==='undefined'){UiFuncArrEdit['i']=5;UiFuncArrEdit['el']={};UiFuncArrEdit['el']['1']={};UiFuncArrEdit['el']['1']['type']='fxdevtagsub';UiFuncArrEdit['el']['1']['x']=5.255474452554744;UiFuncArrEdit['el']['1']['y']=2.627737226277372;UiFuncArrEdit['el']['1']['link1']='2-1';UiFuncArrEdit['el']['2']={};UiFuncArrEdit['el']['2']['type']='fxdevhset';UiFuncArrEdit['el']['2']['x']=63.065693430656935;UiFuncArrEdit['el']['2']['y']=2.627737226277372;UiFuncArrEdit['el']['2']['val']='dev/'+did+'/'+hn;UiFuncArrEdit['el']['3']={};UiFuncArrEdit['el']['3']['type']='fxdevhsub';UiFuncArrEdit['el']['3']['x']=5.255474452554744;UiFuncArrEdit['el']['3']['y']=18.394160583941606;UiFuncArrEdit['el']['3']['link1']='4-1';UiFuncArrEdit['el']['3']['val']='dev/'+did+'/'+hn;UiFuncArrEdit['el']['4']={};UiFuncArrEdit['el']['4']['type']='fxdevtagset';UiFuncArrEdit['el']['4']['x']=63.065693430656935;UiFuncArrEdit['el']['4']['y']=18.394160583941606;} $('.SYS_UiFuncBlockLeftMenu').find('.SYS_UiFunc[fxui="1"]').hide();$('.SYS_UiFuncBlockRightMenu').find('.SYS_UiFunc[fxui="1"]').hide();$('.SYS_UiFuncBlockTopMenu').find('.SYS_UiFunc[fxui="1"]').hide();break;} UiFuncArrEditEl=UiFuncArrEdit['el'];for(var key in UiFuncArrEditEl){var UiFuncEl=$('.SYS_UiFunc[type="'+UiFuncArrEditEl[key]['type']+'"][template="1"]').clone().removeAttr('template').css('display','block');var type=UiFuncEl.attr('type');switch(type){case'fpage':valres=$("");$('.SYS_Main').find('div[type="Popup"]').each(function(){var name=$(this).attr("name");var id=$(this).attr("id");valres.append("");});valres.append("");valres.val(UiFuncArrEditEl[key]['val']);valres.on('change',function(e){UiFuncSaveVal($(this),'val');});UiFuncEl.find('.SYS_UiFuncVal').html(valres);valres=$(".Select_Popup").clone().removeClass('Select_Popup').addClass('SYS_UiFuncValSelect').show();valres.val(UiFuncArrEditEl[key]['param']);valres.on('change',function(e){UiFuncSaveVal($(this),'param');});UiFuncEl.find('.SYS_UiFuncVal').append(valres);break;case'fcss':valres=$(".Select_style").clone().removeClass('Select_style').addClass('SYS_UiFuncValSelect').show();valres.val(UiFuncArrEditEl[key]['param']);valres.on('change',function(e){UiFuncSaveVal($(this),'param');});UiFuncEl.find('.SYS_UiFuncVal').html(valres);break;case'ftouch':valres=$(".Select_touch").clone().removeClass('Select_touch').addClass('SYS_UiFuncValSelect').show();valres.val(UiFuncArrEditEl[key]['param']);valres.on('change',function(e){UiFuncSaveVal($(this),'param');});UiFuncEl.find('.SYS_UiFuncVal').html(valres);break;case'ftoucheffect':valres=$(".Select_toucheffect").clone().removeClass('Select_toucheffect').addClass('SYS_UiFuncValSelect').show();valres.val(UiFuncArrEditEl[key]['param']);valres.on('change',function(e){UiFuncSaveVal($(this),'param');});UiFuncEl.find('.SYS_UiFuncVal').html(valres);break;case'fstylesel':valres=$(".Select_stylesel").clone().removeClass('Select_stylesel').addClass('SYS_UiFuncValSelect').show();valres.val(UiFuncArrEditEl[key]['val']);valres.on('change',function(e){UiFuncSaveVal($(this),'val');});valres2=$(".Select_stylesel2").clone().removeClass('Select_stylesel2').addClass('SYS_UiFuncValSelect').show();valres2.val(UiFuncArrEditEl[key]['val2']);valres2.on('change',function(e){UiFuncSaveVal($(this),'val2');});UiFuncEl.find('.SYS_UiFuncVal').html('');UiFuncEl.find('.SYS_UiFuncVal').append(valres);UiFuncEl.find('.SYS_UiFuncVal').append(valres2);break;case'fhtmlsel':valres=$(".Select_htmlsel").clone().removeClass('Select_htmlsel').addClass('SYS_UiFuncValSelect').show();valres.val(UiFuncArrEditEl[key]['val']);valres.on('change',function(e){UiFuncSaveVal($(this),'val');});valres2=$(".Select_htmlsel2").clone().removeClass('Select_htmlsel2').addClass('SYS_UiFuncValSelect').show();valres2.val(UiFuncArrEditEl[key]['val2']);valres2.on('change',function(e){UiFuncSaveVal($(this),'val2');});UiFuncEl.find('.SYS_UiFuncVal').html('');UiFuncEl.find('.SYS_UiFuncVal').append(valres);UiFuncEl.find('.SYS_UiFuncVal').append(valres2);break;case'fvibro':valres=$(".Select_fvibro").clone().removeClass('Select_fvibro').addClass('SYS_UiFuncValSelect').show();valres.val(UiFuncArrEditEl[key]['val']);valres.on('change',function(e){UiFuncSaveVal($(this),'val');});var val=UiFuncArrEditEl[key]['val2'];if(val===undefined){val='';} var valres2=$("");valres2.on('focusout',function(e){UiFuncSaveVal($(this),'val2');});UiFuncEl.find('.SYS_UiFuncVal').html('');UiFuncEl.find('.SYS_UiFuncVal').append(valres);UiFuncEl.find('.SYS_UiFuncVal').append(valres2);break;case'fanimate':valres=$(".Select_animate").clone().removeClass('Select_animate').addClass('SYS_UiFuncValSelect').show();valres.val(UiFuncArrEditEl[key]['param']);valres.on('change',function(e){UiFuncSaveVal($(this),'param');});UiFuncEl.find('.SYS_UiFuncVal').html(valres);switch(UiFuncArrEditEl[key]['param']){case'rotate_next':valres2=$(".Select_animate").clone().removeClass('Select_animate').addClass('SYS_UiFuncValSelect').show();valres2.val(UiFuncArrEditEl[key]['param']);valres2.on('change',function(e){UiFuncSaveVal($(this),'val');});UiFuncEl.find('.SYS_UiFuncVal2').html(valres2);break;case'blink_fill':case'blink_background':valres2=$('');valres2.val(UiFuncArrEditEl[key]['val']);valres2.on('change',function(e){UiFuncSaveVal($(this),'val');});UiFuncEl.find('.SYS_UiFuncVal2').html(valres2);break;case'blink_stop':break;} break;case'f3d':valres=$(".Select_style3D").clone().removeClass('Select_style3D').addClass('SYS_UiFuncValSelect').show();valres.val(UiFuncArrEditEl[key]['param']);valres.on('change',function(e){UiFuncSaveVal($(this),'param');});UiFuncEl.find('.SYS_UiFuncVal').html(valres);break;case'fcam3d':valres=$(" ");var valres2=$("");var valres3=$("");var valres4=$("");var ArrJson=$('#'+UiFuncXid).attr('Attr');if(ArrJson){var optgroup='';var ArrAttr=JSON.parse(ArrJson);for(var attr in ArrAttr['attr']){optgroup+='';} optgroup+='';valres.html(optgroup);valres2.html(optgroup);valres3.html(optgroup);valres4.html(optgroup);} valres.val(UiFuncArrEditEl[key]['temp']);valres.on('change',function(e){UiFuncSaveVal($(this),'temp');});UiFuncEl.find('.SYS_UiFuncVal[val="temp"]').html(valres);valres2.val(UiFuncArrEditEl[key]['set']);valres2.on('change',function(e){UiFuncSaveVal($(this),'set');});UiFuncEl.find('.SYS_UiFuncVal[val="set"]').html(valres2);valres3.val(UiFuncArrEditEl[key]['power']);valres3.on('change',function(e){UiFuncSaveVal($(this),'power');});UiFuncEl.find('.SYS_UiFuncVal[val="power"]').html(valres3);valres4.val(UiFuncArrEditEl[key]['status']);valres4.on('change',function(e){UiFuncSaveVal($(this),'status');});UiFuncEl.find('.SYS_UiFuncVal[val="status"]').html(valres4);break;case'fgetcss':valres=$(".Select_style").clone().removeClass('Select_style').addClass('SYS_UiFuncValSelect').show();valres.val(UiFuncArrEditEl[key]['param']);valres.on('change',function(e){UiFuncSaveVal($(this),'param');});UiFuncEl.find('.SYS_UiFuncVal').html(valres);break;case'fvalue':case'fxvalue':var valres=$(".Select_xiottype").eq(0).clone().removeClass("Select_xiottype").addClass('SYS_UiFuncValSelect').show();valres.css('width','100%');var param=UiFuncArrEditEl[key]['param'];if(param!==undefined){valres.val(param);}else{valres.val('string');} valres.on('change',function(e){UiFuncSaveVal($(this),'param');});UiFuncEl.find('.SYS_UiFuncVal').html(valres);if(UiFuncArrEditEl[key]['val']!==undefined){var val=UiFuncArrEditEl[key]['val'];}else{var val='';} switch(param){case'scene':valres2=$("");for(var i=1;i<128;i++){valres2.append('');valres2.append('');} valres2.val(val);break;case'hvac_mode':valres2=$("");valres2.append('');valres2.append('');valres2.append('');valres2.append('');valres2.val(val);break;case'rgb':try{var rgb=val.replace('rgb(','').replace(')','').split(',');val=rgbToHex(parseInt(rgb[0]),parseInt(rgb[1]),parseInt(rgb[2]));}catch(err){SystemLog('err');SystemLog(err);val='#000000';} SystemLog('val');SystemLog(val);valres2=$("");break;case'number':valres2=$("");break;case'float':case'temperature':valres2=$("");break;case'percentage':valres2=$("");break;case'angle':valres2=$("");break;default:valres2=$("");} valres2.css('width','100%');valres2.on('change',function(e){UiFuncSaveVal($(this),'val',param);});UiFuncEl.find('.SYS_UiFuncVal').append(valres2);break;case'fcomment':var val=UiFuncArrEditEl[key]['val'];if(val===undefined){val='';} var valres=$("");UiFuncEl.find('.SYS_UiFuncVal').append(valres).attr('title',val);;valres.on('focusout',function(e){UiFuncSaveVal($(this),'val');});break;case'fjsfunc':case'flink':var val=UiFuncArrEditEl[key]['val'];if(val===undefined){val='';} var valres=$("");UiFuncEl.find('.SYS_UiFuncVal').append(valres);valres.on('focusout',function(e){UiFuncSaveVal($(this),'val');});break;case'fattr':var valres=$(".Select_fattr").clone().removeClass('Select_fattr').addClass('SYS_UiFuncValSelect').show();var ArrJson=$('#'+UiFuncXid).attr('Attr');if(ArrJson){var select='';var ArrAttr=JSON.parse(ArrJson);for(var attr in ArrAttr['attr']){select+='';} select+='';valres.prepend(select);} valres.val(UiFuncArrEditEl[key]['val']);valres.on('change',function(e){UiFuncSaveVal($(this),'val');});UiFuncEl.find('.SYS_UiFuncVal').html(valres);break;case'fhtml':case'faddclass':case'fdelclass':break;case'fdom':UiFuncEl.find('.SYS_UiFuncVal').html(UiFuncArrEditEl[key]['name']);break;case'felname':valres=$("");UiFuncEl.find('.SYS_UiFuncVal').html('').append(valres);valres.on('focusout',function(e){UiFuncSaveVal($(this),'val');});break;case'fgetlocalstorage':case'fsetlocalstorage':case'fsetvar':case'fgetvar':case'fxsetvar':case'fxgetvar':var val=UiFuncArrEditEl[key]['val'];if(val===undefined){val='имя переменной';} var valres=$("");UiFuncEl.find('.SYS_UiFuncVal').html('').append(valres);valres.on('focusout',function(e){UiFuncSaveVal($(this),'val');});break;case'fxpush':var val=UiFuncArrEditEl[key]['val'];if(val===undefined){val='заголовок';} var valres=$("");UiFuncEl.find('.SYS_UiFuncVal').html('').append(valres);valres.on('focusout',function(e){UiFuncSaveVal($(this),'val');});break;case'fjseditor':UiFuncEl.on('click',function(e){FjsEditor.open($(this));});break;case'fxping':var val=UiFuncArrEditEl[key]['val'];if(val===undefined){val='192.168.1.1';} var valres=$("");UiFuncEl.find('.SYS_UiFuncVal').html('').append(valres);valres.on('focusout',function(e){UiFuncSaveVal($(this),'val');});break;case'ftimeout':case'finterval':case'fxtimeout':case'fxinterval':var val=UiFuncArrEditEl[key]['val'];if(val===undefined){val='1';} var valres=$("");valres.css('width','80%').css('float','left');valres.on('focusout',function(e){UiFuncSaveVal($(this),'val');});UiFuncEl.find('.SYS_UiFuncVal').html('').html(valres);var valres=$(".Select_timetype").clone().removeClass('Select_timetype').addClass('SYS_UiFuncValSelect').show();valres.css('width','15%').css('float','left');valres.val('s');if(typeof(UiFuncArrEditEl[key]['param'])!=="undefined"){valres.val(UiFuncArrEditEl[key]['param']);} valres.on('change',function(e){UiFuncSaveVal($(this),'param');});UiFuncEl.find('.SYS_UiFuncVal').append(valres);break;case'frangefilter':case'frangenew':case'frangepersent':case'fxrangefilter':case'fxrangenew':case'fxrangepersent':if(UiFuncArrEditEl[key]['val']){var val=UiFuncArrEditEl[key]['val'];}else{var val='';} var valres=$("");valres.on('focusout',function(e){UiFuncSaveVal($(this),'val');});UiFuncEl.find('.SYS_UiFuncVal').append(valres);if(UiFuncArrEditEl[key]['val2']){var val2=UiFuncArrEditEl[key]['val2'];}else{var val2='';} var valres=$("");valres.on('focusout',function(e){UiFuncSaveVal($(this),'val2');});UiFuncEl.find('.SYS_UiFuncVal').append(valres);break;case'fmath':case'fif':case'fxmath':case'fxif':var valres=$(".Select_"+type).clone().removeClass('Select_'+type).addClass('SYS_UiFuncValSelect').show();valres.css('width','20%');var val='';if(UiFuncArrEditEl[key]['param']!==undefined){val=UiFuncArrEditEl[key]['param'];}else{if(type==='fmath'||type==='fmath'){val='add';}else if(type==='fif'||type==='fxif'){val='equal';}} valres.val(val);valres.on('change',function(e){UiFuncSaveVal($(this),'param');});UiFuncEl.find('.SYS_UiFuncVal').html(valres);if(UiFuncArrEditEl[key]['val']!==undefined){val=UiFuncArrEditEl[key]['val'];}else{val='10';} valres=$("");valres.css('width','70%');valres.on('focusout',function(e){UiFuncSaveVal($(this),'val');});UiFuncEl.find('.SYS_UiFuncVal').append(valres);break;case'fxif':case'ftoFixed':case'fxtoFixed':if(UiFuncArrEditEl[key]['val']){var val=parseInt(UiFuncArrEditEl[key]['val']);}else{var val=1;} var valres=$("");valres.on('focusout',function(e){UiFuncSaveVal($(this),'val');});UiFuncEl.find('.SYS_UiFuncVal').append(valres);break;case'fxinversion':if(UiFuncArrEditEl[key]['val']){var val=UiFuncArrEditEl[key]['val'];}else{var val='switch';} var valres=$(".Select_xiottype").clone().removeClass("Select_xiottype").addClass('SYS_UiFuncValSelect').show();valres.val(val);valres.on('focusout',function(e){UiFuncSaveVal($(this),'val');});UiFuncEl.find('.SYS_UiFuncVal').append(valres);break;case'fround':case'fxround':if(UiFuncArrEditEl[key]['val']){var val=UiFuncArrEditEl[key]['val'];}else{var val='0.5';} var valres=$("");valres.on('focusout',function(e){UiFuncSaveVal($(this),'val');});UiFuncEl.find('.SYS_UiFuncVal').append(valres);break;case'fglobal':case'fsendglobal':var valres=$(".Select_fglobal").clone().removeClass('Select_fglobal').addClass('SYS_UiFuncValSelect').show();valres.val(UiFuncArrEditEl[key]['param']);valres.on('change',function(e){UiFuncSaveVal($(this),'param');});UiFuncEl.find('.SYS_UiFuncVal').html(valres);break;} UiFuncEl.find('.SYS_UiFuncValSel').each(function(){var param=$(this).attr('param');switch($(this)[0].tagName){case'INPUT':case'SELECT':if(typeof($(this).attr('arr'))!=="undefined"){var arr=$(this).attr('arr');try{var val=UiFuncArrEditEl[key][arr][param];$(this).val(val);}catch(err){SystemLog(err);}}else{if(typeof(UiFuncArrEditEl[key][param])!=='undefined'){$(this).val(UiFuncArrEditEl[key][param]);}} break;case'DIV':$(this).html('div');break;}});var vw=UiFuncArrEditEl[key]['x']+'vh';var vh=UiFuncArrEditEl[key]['y']+'vh';UiFuncEl.css('left',vw);UiFuncEl.css('top',vh);UiFuncEl.find('.SYS_UiFuncLink').attr('key',key);UiFuncEl.attr('key',key);$('.SYS_UiFuncBlockBox').append(UiFuncEl);} var svg=$('.SYS_UiFuncBlockBox').children('svg');for(var key in UiFuncArrEditEl){var UiFuncArrEditElKey=UiFuncArrEditEl[key];var link='';var linkn='';for(var i=0;i<10;i++){if(i==0){if(UiFuncArrEditElKey['link']){link=UiFuncArrEditElKey['link'];linkn='link';}}else{if(UiFuncArrEditElKey['link'+i]){link=UiFuncArrEditElKey['link'+i];linkn='link'+i;}else{link='';}} if(link!=''){var linkarr=link.split(',');for(var key2 in linkarr){var link=linkarr[key2];var linkout='';if(link.indexOf('-')!==-1){var ls=link.split('-');link=ls[0];linkout=ls[1];}else{linkout='';} if(UiFuncArrEditEl[link]){var xmlns="http://www.w3.org/2000/svg";var path=document.createElementNS(xmlns,"path");path.setAttributeNS(null,"class",'SYS_UiLink');path.setAttributeNS(null,"key",key);path.setAttributeNS(null,"onclick","UiFuncLinkDel(this)");path.setAttributeNS(null,"link",link);path.setAttributeNS(null,"linkn",linkn);path.setAttributeNS(null,"linknin",linkout);var path2=document.createElementNS(xmlns,"path");path2.setAttributeNS(null,"class",'SYS_UiLinkDel');path2.setAttributeNS(null,"key",key);path2.setAttributeNS(null,"onclick","UiFuncLinkDel(this)");path2.setAttributeNS(null,"link",link);path2.setAttributeNS(null,"linkn",linkn);path2.setAttributeNS(null,"linknin",linkout);if(i!=0){var left1=parseInt($('.SYS_UiFunc[key="'+key+'"').css('left'))+parseInt($('.SYS_UiFunc[key="'+key+'"').css('width'));var lout=$('.SYS_UiFunc[key="'+key+'"').find('.SYS_UiFuncLink[type="out"]').eq(i-1);var top1=parseInt($('.SYS_UiFunc[key="'+key+'"').css('top'))+parseInt(lout.position().top)+parseInt(lout.css('height'))/2;}else{var left1=parseInt($('.SYS_UiFunc[key="'+key+'"').css('left'))+parseInt($('.SYS_UiFunc[key="'+key+'"').css('width'));var top1=parseInt($('.SYS_UiFunc[key="'+key+'"').css('top'))+parseInt($('.SYS_UiFunc[key="'+key+'"').css('height'))/2;} if(linkout!=''){var left2=parseInt($('.SYS_UiFunc[key="'+link+'"').css('left'));var lin=$('.SYS_UiFunc[key="'+link+'"').find('.SYS_UiFuncLink[type="in"]').eq(parseInt(linkout)-1);var top2=parseInt($('.SYS_UiFunc[key="'+link+'"').css('top'))+parseInt(lin.position().top)+parseInt(lin.css('height'))/2;}else{var left2=parseInt($('.SYS_UiFunc[key="'+link+'"').css('left'));var top2=parseInt($('.SYS_UiFunc[key="'+link+'"').css('top'))+parseInt($('.SYS_UiFunc[key="'+link+'"').css('height'))/2;} var zig=parseInt($('body').css('height'))/10;path.setAttributeNS(null,"d",'M '+left1+' '+top1+' C '+(parseInt(left1)+zig)+' '+top1+' '+(parseInt(left2)-zig)+' '+top2+' '+left2+' '+top2+'');path2.setAttributeNS(null,"d",'M '+left1+' '+top1+' C '+(parseInt(left1)+zig)+' '+top1+' '+(parseInt(left2)-zig)+' '+top2+' '+left2+' '+top2+'');svg.prepend(path);svg.prepend(path2);}}}}}} function HistoryEditorFunc(elem,func,param,param2,attr){switch(func){case'delete':var ArrEdit=[];ArrEdit['id']=elem.attr('id');ArrEdit['func']=func;ArrEdit['parent']=elem.parent().attr('id');ArrEdit['elem']=elem.clone().removeAttr('sys_select');EditHistory[EditHistoryIndex]=ArrEdit;EditHistoryIndex=EditHistoryIndex+1;EditHistory.length=EditHistoryIndex;break;case'style':case'html':var ArrEdit=[];ArrEdit['id']=elem.attr('id');ArrEdit['func']=func;ArrEdit['param']=param;ArrEdit['param2']=param2;EditHistory[EditHistoryIndex]=ArrEdit;EditHistoryIndex=EditHistoryIndex+1;EditHistory.length=EditHistoryIndex;break;case'attr':var ArrEdit=[];ArrEdit['id']=elem.attr('id');ArrEdit['func']=func;ArrEdit['param']=param;ArrEdit['param2']=param2;ArrEdit['attr']=attr;EditHistory[EditHistoryIndex]=ArrEdit;EditHistoryIndex=EditHistoryIndex+1;EditHistory.length=EditHistoryIndex;break;} $('.SYS_TopMenuEl[func="Next"]').attr('disable','1');$('.SYS_TopMenuEl[func="Prev"]').attr('disable','0');} function rgb2hex(rgb){var rgb=rgb.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i);return(rgb&&rgb.length===4)?"#"+ ("0"+parseInt(rgb[1],10).toString(16)).slice(-2)+ ("0"+parseInt(rgb[2],10).toString(16)).slice(-2)+ ("0"+parseInt(rgb[3],10).toString(16)).slice(-2):'';} function StructurePageView(){$('.SYS_StructurePageBlock').html('');$('.SYS_Main').find('div[type="Page"]').each(function(){if($(this).attr('name')=="S_СТРАНИЦА_НАСТРОЙКИ"){return;} $('.SYS_StructurePageBlock').append('
    '+$(this).attr('name')+'
    ');if($(this).attr('select')=='1'){$('.SYS_StructurePage[elid="'+$(this).attr('id')+'"').attr('select','1');}});if($('.SYS_Main').find('div[type="Page"][select="1"]').length==0){$('.SYS_StructurePage').eq(0).attr('select','1');$('.SYS_Main').find('div[type="Page"]').eq(0).attr('select','1');}} function StructurePopupView(){$('.SYS_StructurePopupBlock').html('');var svg='';$('.SYS_Main').find('div[type="Popup"]').each(function(){var fill='rgb(160,160,160)';if($(this).attr('show')=='1'){fill='#39475d';} $('.SYS_StructurePopupBlock').append('
    '+$(this).attr('name')+'
    '+svg+'
    ');});} function GetCss(idres){var css=$('style#CSS_portrait');var cssall=css.html();if(cssall.indexOf(idres)!=-1){var cssarr=cssall.split('/*'+idres+'*/');if(cssarr[1]){var res=cssarr[1].replace('#'+idres+'{','').replace('}','');return res;}}} function newid(XL=20){var id="";var abc="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMOPQRSTUVWXYZ";while(id.length0){var id=$('.SYS_ElEditor[edit="'+func+'"]').attr('xid');var ele=$('#'+id);ParamPrint(ele);}}} function ParamPrint(ele,func){var xid=ele.attr('id');var type=ele.attr('type');if(typeof(type)==="undefined"){type='block';ele.attr('type',type);} switch(type){case'Page':$('.SYS_ElEditorElTypeSel').hide();$('.SYS_ElEditorElTypeName').show();$('.SYS_ElEditorElTypeName').html('страница');break;case'Popup':$('.SYS_ElEditorElTypeSel').hide();$('.SYS_ElEditorElTypeName').show();$('.SYS_ElEditorElTypeName').html('окно');break;default:$('.SYS_ElEditorElTypeSel').show();$('.SYS_ElEditorElTypeName').hide();$('.SYS_ElEditorElTypeSel').val(type);} if(func){switch(func){case'html':HtmlEditorStart(ele);break;case'name':NameEditorStart(xid,func);break;case'function':FuncEditorStart(xid,'function');break;case'fxlogic':FxLogicEditorStart(xid,'fxlogic');break;case'attr':AttrEditorStart(xid,'attr');break;case'tags':TagsEditorStart(xid,'tags');break;case'linkdev':LinkDevEditorStart(xid,'linkdev');break;default:ElEditorStart(xid,func,ele);}}else{$('.SYS_ElEditorName[edit="cam3d"]').css('display','none');$('.SYS_ElEditor[edit="cam3d"]').css('display','none');$('.SYS_ElEditorName[edit="project3d"]').css('display','none');$('.SYS_ElEditor[edit="project3d"]').css('display','none');$('.SYS_ElEditorName[edit="styleTrend"]').css('display','none');$('.SYS_ElEditor[edit="styleTrend"]').css('display','none');$('.SYS_ElEditorName[edit="style3D"]').css('display','none');$('.SYS_ElEditor[edit="style3D"]').css('display','none');switch(ele.attr('type')){case'trend':ElEditorStart(xid,'style',ele);FuncEditorStart(xid,'function');FxLogicEditorStart(xid,'fxlogic');HtmlEditorStart(ele);NameEditorStart(xid,'name');TagsEditorStart(xid,'tags');LinkDevEditorStart(xid,'linkdev');AttrEditorStart(xid,'attr');ElEditorStart(xid,'styleTrend',ele);$('.SYS_ElEditorName[edit="styleTrend"]').css('display','block');$('.SYS_ElEditor[edit="styleTrend"]').css('display','block');break;default:ElEditorStart(xid,'style',ele);FuncEditorStart(xid,'function');FxLogicEditorStart(xid,'fxlogic');HtmlEditorStart(ele);NameEditorStart(xid,'name');AttrEditorStart(xid,'attr');TagsEditorStart(xid,'tags');LinkDevEditorStart(xid,'linkdev');}} $('.SYS_ElEditorBut[func="selectall"]').attr('select','0');} function CloseEditBlock(){$('div').attr('sys_edit','0');$('div').attr('sys_select','0');$('.SYS_EditFonClone').remove();$('.SYS_DomCont').html('');EditBlockSelectArr.length=0;} function EditFonClose(el){if(EditBlockSelectArr.length!==0){if(el.attr('elid')==EditBlockSelectArr[EditBlockSelectArr.length-1]){EditBlockSelectArr.length=EditBlockSelectArr.length-1;var id=EditBlockSelectArr[EditBlockSelectArr.length-1];$('div').attr('sys_edit','0');$('div').attr('sys_select','0');$('#'+id).attr('sys_edit','1');el.remove();SystemLog(id);} if(el.attr('elid')==EditBlockSelectArr[EditBlockSelectArr.length-2]){$('.SYS_EditFonClone[elid="'+EditBlockSelectArr[EditBlockSelectArr.length-1]+'"]').remove();EditBlockSelectArr.length=EditBlockSelectArr.length-2;var id=EditBlockSelectArr[EditBlockSelectArr.length-1];$('div').attr('sys_edit','0');$('div').attr('sys_select','0');$('#'+id).attr('sys_edit','1');el.remove();} if(el.attr('elid')==EditBlockSelectArr[EditBlockSelectArr.length-3]){$('.SYS_EditFonClone[elid="'+EditBlockSelectArr[EditBlockSelectArr.length-1]+'"]').remove();$('.SYS_EditFonClone[elid="'+EditBlockSelectArr[EditBlockSelectArr.length-2]+'"]').remove();if(EditBlockSelectArr.length>=3){EditBlockSelectArr.length=EditBlockSelectArr.length-3;}else{EditBlockSelectArr.length=0;} var id=EditBlockSelectArr[EditBlockSelectArr.length-1];$('div').attr('sys_edit','0');$('div').attr('sys_select','0');$('#'+id).attr('sys_edit','1');el.remove();} var elid=$('#'+el.attr('elid'));StructPrint(elid.parent(),elid);}} function StructPrint(P,el){var DOM=$('.SYS_DomCont');var xidsel='';DOM.html('');if(P.length>0){var pid=P.attr('id');var name=P.attr('name');if(P.attr('name')===undefined){name='-';} P.children('div').each(function(e){var namec=$(this).attr('name');if(namec===undefined){namec='-';} if($(this).attr('id')==el.attr('id')){xidsel=$(this).attr('id');DOM.append('
    '+namec+'
    ');}else{DOM.append('
    '+namec+'
    ');}});}else{var name=P.attr('name');var pid=P.attr('id');} DOM.prepend('
    '+name+'
    ');$('div[func="movedomok"]').css('display','none');$('div[func="movedom"]').css('display','flex');$('div[func="renamedomok"]').css('display','none');$('div[func="renamedom"]').css('display','flex');} function EditBlockSelect(el,id){var clas=el.attr('class');if(clas&&clas.indexOf('SYS_')!==-1){return;} if((el.attr('type')==='block'||el.attr('type')==='HistoryTable'||el.attr('type')==='Level'||el.attr('type')==='timeinterval')&&(EditBlockSelectArr.length==0&&el.parent().attr('type')=='Page'||EditBlockSelectArr.length==0&&el.parent().attr('type')=='Popup'||EditBlockSelectArr[EditBlockSelectArr.length-1]==el.parent().attr('id'))){$('div').attr('sys_edit','0');$('div').attr('sys_select','0');el.attr('sys_edit','1');var bgx=100+(EditBlockSelectArr.length*10);var clone=$('.SYS_EditFon').clone();clone.attr('class','SYS_EditFonClone').attr('elid',id);clone.css({'display':'block','z-index':950+EditBlockSelectArr.length,'background-color':'rgba('+bgx+','+bgx+','+bgx+',0)'});el.parent().append(clone);EditBlockSelectArr[EditBlockSelectArr.length]=id;StructPrint(el.parent(),el.find('div').eq(0));if(el.find('div').length>0){ElSelect(el.find('div').eq(0));}}} function ElSelect(el){var clas=el.attr('class');var id=el.attr('id');if(!clas){el.attr('class','NoClass');clas='NoClass';} if(clas.indexOf('SYS_')==-1&&$('div').attr('sys_edit')!='1'){if(el.attr('type')!='Page'&&EditBlockSelectArr.length==0&&el.parent().attr('type')=='Page'||el.attr('type')!='Popup'&&EditBlockSelectArr.length==0&&el.parent().attr('type')=='Popup'||id&&el.parent().attr('id')==EditBlockSelectArr[EditBlockSelectArr.length-1]){if(ButCtrl){if(el.attr('sys_select')=='1'){el.attr('sys_select','0');}else{el.attr('sys_select','1');}}else{if(ButShift){var index1=el.parent().find('div[sys_select="1"]').eq(0).index();var index2=el.index();el.parent().find('div').each(function(i){if(i>=index1&&i<=index2){$(this).attr('sys_select','1');}});}else{var attr=el.attr('sys_select');$('div').attr('sys_select','0');if(attr!='1'){el.attr('sys_select','1');} if(StructPrintTimeout){clearTimeout(StructPrintTimeout);} StructPrintTimeout=setTimeout(StructPrint,100,el.parent(),el);if(ParamPrintTimeout){clearTimeout(ParamPrintTimeout);} ParamPrintTimeout=setTimeout(ParamPrint,500,el);ElementSelect=el;UiFuncXid=el.attr('id');FXedit='fxui';}}}}} function TouchFuncEditor(func,el){if(!el.attr('id')){var id=newid();el.attr('id',id);}else{var id=el.attr('id');} var elclass=el.attr('class');if(func=='press'||func=='pressR'){$('.SYS_ClickRightMenu').hide();$('.SYS_ClickRightMenu2').hide();} if(id==$('.SYS_Main').attr('id')){BreakclickR=false;} switch(func){case"start":TouchFuncUser(func,el);break;case"press":$('.SYS_StructureElBlock').hide();break;case"click":if(elclass=='SYS_DomContEl'){var id=el.attr('xid');var el=$('#'+id);var xel=$('.SYS_EditFonClone[elid="'+id+'"]');EditFonClose(xel);ElSelect(el);}else{ElSelect(el);} break;case"dclick":if(elclass!=='SYS_DomContEl2'){EditBlockSelect(el,id);} break;case"clickR":if(el.attr('sys_select')=='1'&&BreakclickR==false){$('.SYS_ClickRightMenu').show();var topel=parseInt($('.SYS_Main').attr('ttop'))+parseInt($('.SYS_Main').offset().top);var leftel=parseInt($('.SYS_Main').attr('tleft'))+parseInt($('.SYS_Main').offset().left);$('.SYS_ClickRightMenu').css({'top':topel+'px','left':leftel+'px'});$('.SYS_ClickRightMenu').attr('el',id);BreakclickR=true;}else{if(el.attr('sys_edit')=='1'&&BreakclickR==false||el.attr('type')=='Page'&&BreakclickR==false||el.attr('type')=='Popup'&&BreakclickR==false){var top=parseInt($('body').attr('touchystart'))+20;var left=parseInt($('body').attr('touchxstart'))+20;var bh=parseInt($('body').css('height'));var h=parseInt($('.SYS_ClickRightMenu2').css('height'));if((top+h)>bh){top-=(top+h)-bh;} $('.SYS_ClickRightMenu2').css({'top':top+'px','left':left+'px'});$('.SYS_ClickRightMenu2').attr('el',id);$('.SYS_ClickRightMenu2').show();BreakclickR=true;}} break;} switch(elclass){case"SYS_ElEditorParamVal":switch(func){case"change":case"keyup":case"paste":var func=el.attr('func');var val=el.val();if(el.attr('type')==='checkbox'){if(el.is(':checked')){val='1';}else{val='0';}} var param={};if(ElementSelect.attr('param')!==undefined){param=JSON.parse(ElementSelect.attr('param'));} param[func]=val;var paramjson=JSON.stringify(param);ElementSelect.attr('param',paramjson);var type=ElementSelect.attr('type');switch(type){case'select':var select=ElementSelect.find('select');if(param['select_count']!==undefined){var options="";for(var i=1;i<=param['select_count'];i++){var key=i;var val=i;if(param['key'+i]!==undefined){key=param['key'+i];} if(param['val'+i]!==undefined){val=param['val'+i];} options=options+'';} select.html(options);} break;} switch(func){case'select_count':ElSelect(ElementSelect);break;case'inputtype':ElementSelect.find('input').attr('type',val);break;case'link_url':ElementSelect.find('a').attr('href',val);break;case'link_text':ElementSelect.find('a').html(val);break;case'link_target':switch(val){case'0':ElementSelect.find('a').attr('target','_self');break;case'1':ElementSelect.find('a').attr('target','_blank');break;} break;case'fontype':switch(val){case'0':ElementSelect.find('div[name="фон"]').css({'width':'100%','height':'50%','top':'50%','left':'0'});break;case'1':ElementSelect.find('div[name="фон"]').css({'width':'100%','height':'50%','top':'0','left':'0'});break;case'2':ElementSelect.find('div[name="фон"]').css({'width':'50%','height':'100%','top':'0','left':'50%'});break;case'3':ElementSelect.find('div[name="фон"]').css({'width':'50%','height':'100%','top':'0','left':'0'});break;} break;case'link':ElementSelect.find('video').attr('src',val);break;case'autoplay':case'controls':case'loop':case'muted':case'autobuffer':if(val=='1'){ElementSelect.find('video').attr(func,func);}else{ElementSelect.find('video').removeAttr(func);} break;case'playsinline':if(val=='1'){ElementSelect.find('video').attr(func,func);ElementSelect.find('video').attr('webkit-playsinline','1');}else{ElementSelect.find('video').removeAttr(func);ElementSelect.find('video').removeAttr('webkit-playsinline');} break;case'youtube':ElementSelect.html(val);ElementSelect.find('frame').attr('width','100%').attr('height','100%');break;case'HistoryCid':History_constructor.start();History_constructor.restart(val);break;} break;} break;case"SYS_DevicesSetupActionSelectAdd":switch(func){case"click":var ac=el.parent().find(".SYS_DevicesSetupActionCont").eq(0).clone();ac.find('input').val('');el.parent().find('.SYS_DevicesSetupActionSelectBlock').append(ac);break;} break;case"SYS_VtagAdd":switch(func){case"click":el.hide();$('.SYS_VtagAddBlock').remove();var SYS_VtagAddBlock=$('.SYS_VtagAddBlockT').clone();SYS_VtagAddBlock.removeClass('SYS_VtagAddBlockT').addClass('SYS_VtagAddBlock').show();var xiot_types=JSON.parse($('.SYS_xiot_types').attr('json'));var select=SYS_VtagAddBlock.find('select');for(var type in xiot_types){select.append('')} $('.SYS_TagSelectBlockGroup[group="vtag"]').prepend(SYS_VtagAddBlock);break;} break;case"SYS_VtagEdit":switch(func){case"click":el.parent().attr('touchblock','1');var tag=el.parent().attr('value');var tags=JSON.parse($('.SYS_Tags').attr('json'));var tagarr=tag.split('/');$('.SYS_VtagAddBlock').remove();var SYS_VtagAddBlock=$('.SYS_VtagAddBlockT').clone();SYS_VtagAddBlock.removeClass('SYS_VtagAddBlockT').addClass('SYS_VtagAddBlock').show();SYS_VtagAddBlock.find('.SYS_VtagAddName').val(tags[tag]['name']);SYS_VtagAddBlock.find('.SYS_VtagAddI1').val(tagarr[2]);SYS_VtagAddBlock.find('.SYS_VtagAddI2').val(tagarr[3]);var xiot_types=JSON.parse($('.SYS_xiot_types').attr('json'));var select=SYS_VtagAddBlock.find('select');for(var type in xiot_types){select.append('')} select.val(tags[tag]['typexiot']);SYS_VtagAddBlock.find('.SYS_VtagAddOk').html('Сохранить').attr('edit',tag);el.parent().after(SYS_VtagAddBlock);break;} break;case"SYS_VtagAddOk":switch(func){case"click":var i1=$('.SYS_VtagAddBlock').find('.SYS_VtagAddI1').val();var i2=$('.SYS_VtagAddBlock').find('.SYS_VtagAddI2').val();var name=$('.SYS_VtagAddBlock').find('.SYS_VtagAddName').val();if(name==null){name='';} var type=$('.SYS_VtagAddBlock').find('select').val();if(type==null){type='string';} i1=i1.replace('/','').replace('#','').replace('*','');i2=i2.replace('/','').replace('#','').replace('*','');if(i1!==''&&i2!==''){var tags=JSON.parse($('.SYS_Tags').attr('json'));if(el.attr('edit')){delete(tags[el.attr('edit')]);} var tag={};tag['typexiot']=$('.SYS_VtagAddBlock').find('select').val();tag['name']=name;tag['rw']='rw';tags['/vtag/'+i1+'/'+i2]=tag;SystemLog(tags);var tagjson=JSON.stringify(tags);$('.SYS_Tags').attr('json',tagjson);TagSelectCreate();$('.SYS_VtagAdd').show();} break;} break;case"SYS_VtagDel":switch(func){case"click":el.parent().attr('touchblock','1');var tag=el.parent().attr('value');var tags=JSON.parse($('.SYS_Tags').attr('json'));delete(tags[tag]);var tagsjson=JSON.stringify(tags);$('.SYS_Tags').attr('json',tagsjson);el.parent().remove();break;} break;case"SYS_VtagAddBlockClose":switch(func){case"click":$('.SYS_VtagAddBlock').remove();$('.SYS_VtagAdd').show();break;} break;case"SYS_DomContEl":switch(func){case"clickR":$('.SYS_ClickRightMenu').show();var xid=el.attr('xid');var xel=$('#'+xid);$('.SYS_ClickRightMenu').css({'top':300+'px','left':300+'px'});$('.SYS_ClickRightMenu').attr('el',xid);BreakclickR=true;break;} break;case"SYS_TagSelectBlockGroupTitle":switch(func){case"click":var group=el.attr('group');if($('.SYS_TagSelectBlockGroup[group='+group+']').css('display')=='none'){$('.SYS_TagSelectBlockGroup[group='+group+']').show();el.find('.SYS_TagSelectBlockGroupIcon').css('transform','rotate(90deg)');}else{$('.SYS_TagSelectBlockGroup[group='+group+']').hide();el.find('.SYS_TagSelectBlockGroupIcon').css('transform','rotate(0deg)');} break;} break;case"SYS_TagSelectListTagDel":switch(func){case"click":TagSelectVal.val('');TagSelectVal.trigger('click');$('.SYS_TagSelectBlock').hide();break;} break;case"SYS_TagSelectBlockTag":switch(func){case"click":if(el.attr('touchblock')!=='1'){var val=el.attr('value');var key=$('.SYS_TagSelectBlock').attr('key');var param=$('.SYS_TagSelectBlock').attr('param');if(typeof(key)!=='undefined'){$('.SYS_TagSelectBlock').removeAttr('key');UiFuncArrEditEl[key][param]=val;UiFuncSave();$('.SYS_TagSelectBlock').hide();}else{TagSelectVal.val(val);TagSelectVal.trigger('keyup');var ArrTags={'tags':{}} $('.SYS_EditorBlockTags').each(function(){var name=$(this).find('input[name="nametag"]').val();var val=$(this).find('input[name="valtag"]').val();ArrTags['tags'][name]=val;});var TagsArrJson=JSON.stringify(ArrTags);TagsEditorSave(TagSelectVal.closest('.SYS_ElEditor').attr('xid'),TagsArrJson);$('.SYS_TagSelectBlock').hide();}} break;} break;case"SYS_TagSelectBlockClear":switch(func){case"click":TagSelectVal.val('');$('.SYS_TagSelectBlock').hide();break;} break;case"SYS_LinkDevSelectBlockGroupTitle":switch(func){case"click":var group=el.attr('group');if($('.SYS_LinkDevSelectBlockGroup[group='+group+']').css('display')=='none'){$('.SYS_LinkDevSelectBlockGroup[group='+group+']').show();el.find('.SYS_LinkDevSelectBlockGroupIcon').css('transform','rotate(90deg)');}else{$('.SYS_LinkDevSelectBlockGroup[group='+group+']').hide();el.find('.SYS_LinkDevSelectBlockGroupIcon').css('transform','rotate(0deg)');} break;} break;case"SYS_LinkDevSelectBlockDev":switch(func){case"click":if(el.attr('touchblock')!=='1'){var val=el.attr('value');var key=$('.SYS_LinkDevSelectBlock').attr('key');var param=$('.SYS_LinkDevSelectBlock').attr('param');$('.SYS_LinkDevSelectBlock').removeAttr('key');UiFuncArrEditEl[key][param]=val;UiFuncSave();$('.SYS_LinkDevSelectBlock').hide();} break;} break;case"SYS_UiFuncValSel":SystemLog(func);switch(func){case"change":var param=el.attr('param');UiFuncSaveVal(el,param);break;} break;case"SYS_UiFuncSetup":switch(func){case"click":var logic_id=el.parent().find('.SYS_UiFuncValSel').val();var type=el.closest('.SYS_UiFunc').attr('type');FxLogicParamEdit(type,logic_id);break;} break;case"SYS_UiFuncBlock":switch(func){case"press":$('.SYS_UiFuncMenu').hide();$('.SYS_UiBoxMenu').hide();if($('.SYS_UiFunc[template="2"]').length>0){var eldeg=$('.SYS_UiFunc[template="2"]');var mtop=$('body').attr('touchY')-parseInt(el.offset().top)-parseInt(eldeg.attr('ttop'));var mleft=$('body').attr('touchX')-parseInt(el.offset().left)-parseInt(eldeg.attr('tleft'));eldeg.css('left',mleft);eldeg.css('top',mtop);}else{if(el.find('.SYS_UiFuncLink[touch2="press"][type="out"]').length>0){$('.SYS_UiLinkNew').remove();var UiFuncLink=el.find('.SYS_UiFuncLink[touch2="press"][type="out"]').eq(0);var mtop=$('body').attr('touchY')-parseInt($('.SYS_UiFuncBlockSvg').offset().top);var mleft=$('body').attr('touchX')-parseInt($('.SYS_UiFuncBlockSvg').offset().left);var xmlns="http://www.w3.org/2000/svg";var path=document.createElementNS(xmlns,"path");path.setAttributeNS(null,"class",'SYS_UiLinkNew');path.setAttributeNS(null,"id",newid());path.setAttributeNS(null,"key",UiFuncLink.attr('key')+'-'+UiFuncLink.attr('number'));path.setAttributeNS(null,"d",'"M '+mleft+' '+mtop+' C '+(parseInt(mleft)+80)+' '+mtop+' '+(parseInt(mleft)+80)+' '+mtop+' '+mleft+' '+mtop+'"');$('.SYS_UiFuncBlockSvg').prepend(path);}} break;case"move":$('.SYS_UiLinkDel').remove();if($('.SYS_UiFunc[template="2"]').length>0){var eldeg=$('.SYS_UiFunc[template="2"]');var mtop=$('body').attr('touchY')-parseInt(eldeg.attr('ttop'));var mleft=$('body').attr('touchX')-parseInt(eldeg.attr('tleft'));var step=parseInt($('body').css('width'))/screen.width;step=step.toFixed(1)*10;mleft=parseInt(Math.round(mleft/step)*step);mtop=parseInt(Math.round(mtop/step)*step);eldeg.css('left',mleft);eldeg.css('top',mtop);}else{if($('.SYS_UiLinkNew').length>0){var link=$('.SYS_UiLinkNew');var attrd=link.attr('d').split(' ');var mtop=$('body').attr('touchY')-parseInt($('.SYS_UiFuncBlockSvg').offset().top);var mleft=$('body').attr('touchX')-parseInt($('.SYS_UiFuncBlockSvg').offset().left);link.attr('d','M '+attrd[1]+' '+attrd[2]+' C '+attrd[4]+' '+attrd[5]+' '+(parseInt(mleft)-80)+' '+mtop+' '+mleft+' '+mtop);}else{if($('.SYS_UiFunc[touch2="press"]').length>0&&$('.SYS_UiFunc[touch2="press"]').find('.SYS_UiFuncParam').attr('touch2')!=='press'){var elm=$('.SYS_UiFunc[touch2="press"][xy!="false"]').eq(0);var key=elm.attr('key');var x=parseInt($('body').attr('touchX'))-parseInt($('.SYS_UiFuncBlockBox').offset().left)-parseInt(elm.attr('tleft'));var y=parseInt($('body').attr('touchY'))-parseInt($('.SYS_UiFuncBlockBox').offset().top)-parseInt(elm.attr('ttop'));var step=parseInt($('body').css('width'))/screen.width;step=step.toFixed(1)*10;var x=parseInt(Math.round(x/step)*step);var y=parseInt(Math.round(y/step)*step);elm.css('left',x+'px');elm.css('top',y+'px');elm.attr('move','1');elm.css('z-index','100001');$('.SYS_UiLink[key="'+key+'"]').each(function(){$(this).css('stroke','red');var attrd=$(this).attr('d').split(' ');var linkn=$(this).attr('linkn').replace('link','');var lout=$('.SYS_UiFunc[key="'+key+'"]').find('.SYS_UiFuncLink[type="out"][number="'+linkn+'"]');SystemLog(linkn);var left1=x+parseInt(elm.css('width'));var top1=parseInt($('.SYS_UiFunc[key="'+key+'"').css('top'))+parseInt(lout.position().top)+parseInt(lout.css('height'))/2;$(this).attr("d",'M '+left1+' '+top1+' C '+(parseInt(left1)+80)+' '+top1+' '+attrd[6]+' '+attrd[7]+' '+attrd[8]+' '+attrd[9]+'');});$('.SYS_UiLink[link="'+key+'"]').each(function(){$(this).css('stroke','red');var attrd=$(this).attr('d').split(' ');var link=parseInt($(this).attr('link'));var linkn=$(this).attr('linknin');var left2=x;var lout=$('.SYS_UiFunc[key="'+link+'"]').find('.SYS_UiFuncLink[type="in"][number="'+linkn+'"]');var top2=parseInt($('.SYS_UiFunc[key="'+key+'"').css('top'))+parseInt(lout.position().top)+parseInt(lout.css('height'))/2;$(this).attr("d",'M '+attrd[1]+' '+attrd[2]+' C '+attrd[4]+' '+attrd[5]+' '+(parseInt(left2)-80)+' '+top2+' '+left2+' '+top2+'');});}}} break;case"release":if($('.SYS_UiFunc[template="2"]').length>0){eldeg=$('.SYS_UiFunc[template="2"]');UiFuncAdd(eldeg);}else{if(el.find('.SYS_UiFuncLink[hover="1"][type="in"]').length>0){var els=$('.SYS_UiLinkNew').attr('key');var keyelin=el.find('.SYS_UiFuncLink[hover="1"][type="in"]').attr('key');var elend=el.find('.SYS_UiFuncLink[hover="1"]').attr('key');if(el.find('.SYS_UiFuncLink[hover="1"][type="in"]').attr('number')){elend=elend+'-'+el.find('.SYS_UiFuncLink[hover="1"][type="in"]').attr('number');} if(parseInt(els)!==parseInt(keyelin)){if(els.indexOf('-')!==-1){var la=els.split('-');var els=parseInt(la[0]);if(parseInt(els)!==parseInt(keyelin)){var elsk=la[1];if(UiFuncArrEditEl[els]['link'+elsk]){UiFuncArrEditEl[els]['link'+elsk]=UiFuncArrEditEl[els]['link'+elsk]+','+elend;}else{UiFuncArrEditEl[els]['link'+elsk]=elend;}}}else{if(UiFuncArrEditEl[els]['link']){UiFuncArrEditEl[els]['link']=UiFuncArrEditEl[els]['link']+','+elend;}else{UiFuncArrEditEl[els]['link']=elend;}}} UiFuncSave();}else{$('.SYS_UiLinkNew').remove();if($('.SYS_UiFunc[touch2="press"]').length>0){var elm=$('.SYS_UiFunc[touch2="press"]').eq(0);var key=elm.attr('key');if(elm.css('left')!=UiFuncArrEditEl[key]['x']||elm.css('top')!=UiFuncArrEditEl[key]['y']){if(elm.attr('move')=='1'){elm.attr('move','0');var x=parseInt($('body').attr('touchX'))-parseInt($('.SYS_UiFuncBlockBox').offset().left)-parseInt(elm.attr('tleft'));var y=parseInt($('body').attr('touchY'))-parseInt($('.SYS_UiFuncBlockBox').offset().top)-parseInt(elm.attr('ttop'));var step=parseInt($('body').css('width'))/screen.width;step=step.toFixed(1)*10;var x=parseInt(Math.round(x/step)*step);var y=parseInt(Math.round(y/step)*step);UiFuncArrEditEl[key]['x']=parseInt(x)/parseInt($(document).height())*100;UiFuncArrEditEl[key]['y']=parseInt(y)/parseInt($(document).height())*100;UiFuncSave();}}}}} break;} break;case"SYS_UiFuncBlockBox":switch(func){case"clickR":if($('.SYS_UiFuncMenu').css('display')=='none'){$('.SYS_UiBoxMenu').show();$('.SYS_UiBoxMenu').css('top',$('body').attr('touchY')+'px');$('.SYS_UiBoxMenu').css('left',$('body').attr('touchX')+'px');} break;} break;case"SYS_UiFuncBlockSave":switch(func){case"click":$('.SYS_UiFuncBlock').hide();$('.SYS_FdomSelectBlock').hide();var DisplaySelect=localStorage.getItem('DisplaySelect');DisplaySelectFunc(DisplaySelect,false);var xid=$('.SYS_ElEditorFxUiBlock').attr('xid');var elem=$('#'+xid);switch(FXedit){case'fxui':ParamPrint(elem,'function');RestartFxUi(xid);break;} TagChange('/xsysui/fxlogic/debug','none');break;} break;case"SYS_UiFuncBlockUIPLC":switch(func){case"click":var UiFunc=localStorage.getItem('UiFunc');if(UiFunc==='UI'){$('.SYS_UiFuncBlockTopMenu').find('.SYS_UiFunc[fxui="1"]').attr('view','0');$('.SYS_UiFuncBlockLeftMenu').find('.SYS_UiFunc[fxui="1"]').attr('view','0');$('.SYS_UiFuncBlockRightMenu').find('.SYS_UiFunc[fxui="1"]').attr('view','0');$('.SYS_UiFuncBlockTopMenu').find('.SYS_UiFunc[fxlogic="1"]').removeAttr('view');$('.SYS_UiFuncBlockLeftMenu').find('.SYS_UiFunc[fxlogic="1"]').removeAttr('view');$('.SYS_UiFuncBlockRightMenu').find('.SYS_UiFunc[fxlogic="1"]').removeAttr('view');el.html('PLC');localStorage.setItem('UiFunc','PLC');}else{$('.SYS_UiFuncBlockTopMenu').find('.SYS_UiFunc[fxlogic="1"]').attr('view','0');$('.SYS_UiFuncBlockLeftMenu').find('.SYS_UiFunc[fxlogic="1"]').attr('view','0');$('.SYS_UiFuncBlockRightMenu').find('.SYS_UiFunc[fxlogic="1"]').attr('view','0');$('.SYS_UiFuncBlockTopMenu').find('.SYS_UiFunc[fxui="1"]').removeAttr('view');$('.SYS_UiFuncBlockLeftMenu').find('.SYS_UiFunc[fxui="1"]').removeAttr('view');$('.SYS_UiFuncBlockRightMenu').find('.SYS_UiFunc[fxui="1"]').removeAttr('view');el.html('UI');localStorage.setItem('UiFunc','UI');} break;} break;case"SYS_UiBoxMenuEl":switch(func){case"press":switch(el.attr('func')){case"paste":if($('.SYS_UiFuncMenu').attr('copykey')!==undefined){var copykey=$('.SYS_UiFuncMenu').attr('copykey');var x=parseInt($('body').attr('touchX'))-parseInt($('.SYS_UiFuncBlockBox').offset().left)+$('.SYS_UiFuncBlockBox').scrollLeft();var y=parseInt($('body').attr('touchY'))-parseInt($('.SYS_UiFuncBlockBox').offset().top)+$('.SYS_UiFuncBlockBox').scrollTop();x=parseInt(x)/parseInt($(window).height())*100;y=parseInt(y)/parseInt($(window).height())*100;var i=UiFuncArrEdit['i'] UiFuncArrEditEl[i]=JSON.parse(JSON.stringify(UiFuncArrEditEl[copykey]));for(var key in UiFuncArrEditEl[i]){if(key.indexOf('link')!==-1){delete(UiFuncArrEditEl[i][key]);}} UiFuncArrEditEl[i]['x']=x;UiFuncArrEditEl[i]['y']=y;UiFuncArrEdit['i']=i+1;UiFuncSave();} break;} $('.SYS_UiBoxMenu').hide();break;} case"SYS_UiFuncMenuEl":switch(func){case"press":switch(el.attr('func')){case"copy":key=el.parent().attr('key');el.parent().attr('copykey',key);break;case"del":var key=el.parent().attr('key');delete UiFuncArrEditEl[key];for(var key2 in UiFuncArrEditEl){if(UiFuncArrEditEl[key2]['link']){var link=UiFuncArrEditEl[key2]['link'];var linkarr=link.split(',');var linknew=[];for(var key3 in linkarr){if(linkarr[key3].indexOf(key+'-')===-1&&linkarr[key3]!==key){linknew.push(linkarr[key3]);}} linknew=linknew.join();UiFuncArrEditEl[key2]['link']=linknew;} if(UiFuncArrEditEl[key2]['link1']){var link=UiFuncArrEditEl[key2]['link1'];var linkarr=link.split(',');var linknew=[];for(var key3 in linkarr){if(linkarr[key3].indexOf(key+'-')===-1&&linkarr[key3]!==key){linknew.push(linkarr[key3]);}} linknew=linknew.join();UiFuncArrEditEl[key2]['link1']=linknew;} if(UiFuncArrEditEl[key2]['link2']){var link=UiFuncArrEditEl[key2]['link2'];var linkarr=link.split(',');var linknew=[];for(var key3 in linkarr){if(linkarr[key3].indexOf(key+'-')===-1&&linkarr[key3]!==key){linknew.push(linkarr[key3]);}} linknew=linknew.join();UiFuncArrEditEl[key2]['link2']=linknew;}} UiFuncSave();break;} $('.SYS_UiFuncMenu').hide();break;} break;case"SYS_UiFuncTag":switch(func){case"click":var key=el.closest('.SYS_UiFunc').attr('key');var param=el.attr('param');$('.SYS_TagSelectBlock').find('.SYS_TagSelectList').html('');$('.SYS_TagSelectBlock').attr('key',key).attr('param',param).show();var elxid=$("#"+UiFuncXid);$('.SYS_TagSelectBlockGroupTitle[group="tagattr"]').remove();$('.SYS_TagSelectBlockGroup[group="tagattr"]').remove();if(elxid.attr('tags')){var SYS_TagsAttr=$('
    Тэги текущего элемента
    ');$('.SYS_TagSelectCont').prepend(SYS_TagsAttr);var ArrTags=JSON.parse(elxid.attr('tags'));SystemLog(ArrTags);for(var tag in ArrTags['tags']){$('.SYS_TagSelectBlockGroup[group="tagattr"]').append('
    '+tag+'
    ');}} break;} break;case"SYS_UiFuncDev":switch(func){case"click":var key=el.closest('.SYS_UiFunc').attr('key');var param=el.attr('param');$('.SYS_LinkDevSelectBlock').attr('func','fx').attr('key',key).attr('param',param);LinkDevSelectBlockShow();break;} break;case"SYS_UiFunc":var key=el.attr('key');if(el.attr("type")=="fdom"&&el.attr('template')!='1'&&func=='click'){$('.SYS_FdomSelectBlock').attr('key',key).show();FdomPrint();} switch(el.attr('template')){case'1':switch(func){case"press":var elnew=el.clone().attr('template','2').css('left',$('body').attr('touchX')).css('top',$('body').attr('touchY'));$('.SYS_UiFuncBlock').prepend(elnew);break;} break;default:switch(func){case"clickR":$('.SYS_UiFuncMenu').show();$('.SYS_UiFuncMenu').css('top',$('body').attr('touchY')+'px');$('.SYS_UiFuncMenu').css('left',$('body').attr('touchX')+'px');$('.SYS_UiFuncMenu').attr('key',key);break;}} break;case"SYS_FdomSelectView":case"SYS_FdomSelectView SYS_FdomSelectViewMinus":switch(func){case"click":var ul=el.parent().parent().find('ul:first');if(el.hasClass("SYS_FdomSelectViewMinus")){ul.css('display','none');el.removeClass('SYS_FdomSelectViewMinus');}else{ul.css('display','block');el.addClass('SYS_FdomSelectViewMinus');} break;} break;case"SYS_FdomSelectName":switch(func){case"click":var ul=el.parent().parent().find('ul:first');if(ul.css('display')=='none'){ul.css('display','block');el.parent().parent().find('.SYS_FdomSelectView:first').addClass('SYS_FdomSelectViewMinus');}else{ul.css('display','none');el.parent().parent().find('.SYS_FdomSelectView:first').removeClass('SYS_FdomSelectViewMinus');} break;} break;case"SYS_FdomSelectUnCheck":switch(func){case"click":el.removeClass('SYS_FdomSelectUnCheck').addClass('SYS_FdomSelectCheck');break;} break;case"SYS_FdomSelectCheck":switch(func){case"click":el.removeClass('SYS_FdomSelectCheck').addClass('SYS_FdomSelectUnCheck');break;} break;case"SYS_FdomSelectBlockMenuEl":var funcel=el.attr('func');switch(func){case"click":switch(funcel){case"save":var key=$('.SYS_FdomSelectBlock').attr('key');var pel='';var name='';$('.SYS_FdomSelectBlockBody').find('.SYS_FdomSelectCheck').each(function(){pel=pel+$(this).parent().attr('pel')+";";name=name+$(this).parent().find('.SYS_FdomSelectName').html()+",";});SystemLog(pel);SystemLog(name);UiFuncArrEditEl[key]['val']=pel;UiFuncArrEditEl[key]['name']=name;$('.SYS_FdomSelectBlock').hide();UiFuncSave();break;case"close":$('.SYS_FdomSelectBlock').hide();break;} break;} break;case"SYS_ClickRightMenuFunc":switch(func){case"press":var ele=$('#'+el.parent().attr('el'));switch(el.attr('func')){case"AddBlock":AddBlock('block1');break;case"del":var parent=$('div[sys_select="1"]').parent().first();$($('div[sys_select="1"]').get().reverse()).each(function(){HistoryEditorFunc($(this),'delete');$(this).remove();});var elem=parent.find('div').first();ParamPrint(elem);StructPrint(parent,elem);ElSelect(elem);elem.attr('sys_select','1');break;case"clon":var resid=ele.attr('id');var new_id=newid();var newele=ele.clone().attr('id',new_id);$('div').attr('sys_select','0');$('#'+new_id).attr('sys_select','1');newele.find('div').each(function(index){resid=$(this).attr('id');var new_id2=newid();$(this).attr('id',new_id2);});ele.after(newele);ParamPrint(newele);StructPrint(newele.parent(),newele);RestartFxUi(new_id);ElementSelect=newele;break;case"copy":$('.SYS_BufferHtml').html('');ElCopy=$('div[sys_select="1"').clone();break;case"paste":$('div').attr('sys_select','0');var newel=ElCopy.clone();$('.SYS_BufferHtml').append(newel);newel.find('div').each(function(index){var new_id=newid();$(this).attr('id',new_id);});newel.each(function(index){var new_id=newid();$(this).attr('id',new_id);var addto=null;if(EditBlockSelectArr.length==0){if(ElementSelect.attr('type')==='Page'||ElementSelect.attr('type')==='Popup'){addto=ElementSelect;}else{if(ElementSelect.closest('div[type="Page"]').length>0){addto=ElementSelect.closest('div[type="Page"]');}else{if(ElementSelect.closest('div[type="Popup"]').length>0){addto=ElementSelect.closest('div[type="Popup"]');}}}}else{var id=EditBlockSelectArr[EditBlockSelectArr.length-1];addto=$('#'+id);} if(addto){addto.append($('#'+new_id));RestartFxUi(new_id);}});StructPrint(addto,$('
    '));break;case"savefile":savefile(ele);break;case"pasteisfile":pasteisfile();break;case"pasteisbase":pasteisbase();break;} break;} break;case"SYS_EditorBlockParamEdit":switch(func){case"press":var block=el.parent().parent();var blockP=block.parent();EditBlockCurrentId=block.attr('id');$('.SYS_EditorBlockParam').css({"display":"none"});$('body').append($('.SYS_EditorBlockParam'));break;} break;case"SYS_EditFonClone":switch(func){case"press":EditFonClose(el);break;} break;case"SYS_ElEditorName":switch(func){case"click":if(el.attr('touchblock')===undefined){var edit=el.attr('edit');$('.SYS_ElEditor[edit="'+edit+'"]').toggle();if($('.SYS_ElEditor[edit="'+edit+'"]').css('display')=='block'){el.find('.SYS_ElEditorOpenStatus').css('transform','rotate(90deg)');}else{el.find('.SYS_ElEditorOpenStatus').css('transform','rotate(0deg)');} localStorage.setItem('ElEditorShow-'+edit,$('.SYS_ElEditor[edit="'+edit+'"]').css('display'));}else{el.removeAttr('touchblock');} break;} break;case"SYS_EditorBlock3dcamFunc":switch(func){case"press":switch(el.attr('func')){case"play":var cam=el.parent().attr('cam');Cam3dSelect(cam);break;case"del":var cam=el.parent().attr('cam');var xid=$('div[type="3D"]').attr('id');var ArrJson=$('div[type="3D"]').attr('cam3d');var ArrCam3D=JSON.parse(ArrJson);delete ArrCam3D['cams'][cam];var ArrCam3DJson=JSON.stringify(ArrCam3D);Cam3DEditorSave(xid,ArrCam3DJson);break;} break;} break;case"SYS_SvgBaseMenuEl":switch(func){case"click":switch(el.attr('func')){case"close":$('.SYS_SvgBaseBlock').hide();break;case"dir":el.hide();$('.SYS_SvgBaseElBlock').hide();$('.SYS_SvgBaseDirBlock').show();$('.SYS_SvgBaseMenuTitle').html('Выбор раздела');break;} break;} break;case"SYS_SvgBaseEl":switch(func){case"click":var htmlsel=ElementSelect.attr('htmlsel');ElementSelect.find('.SYS_HtmlSel[sel="'+htmlsel+'"]').html(el.html());HtmlEditorStart(ElementSelect);$('.SYS_SvgBaseBlock').hide();break;} break;case"SYS_SvgBaseDir":switch(func){case"click":var xid=$('.SYS_SvgBaseBlock').attr('xid');$('.SYS_SvgBaseDirBlock').hide();$('.SYS_SvgBaseElBlock').hide();var dir=el.html();$('.SYS_SvgBaseMenuTitle').html(dir);if($('.SYS_SvgBaseElBlock[dir="'+dir+'"]').length==0){$.post("login/getsvg.php",{dir:dir,func:'el'},function(data){$('.SYS_SvgBaseMenuEl[func="dir"]').show();$('.SYS_SvgBaseBlockEl').append(data);});} break;} break;case"SYS_GcIrBaseMenuEl":switch(func){case"click":switch(el.attr('func')){case"close":$('.SYS_GcIrBaseBlock').hide();break;case"dir":$('.SYS_GcIrBaseElBlock').hide();$('.SYS_GcIrBaseDirBlock').show();$('.SYS_GcIrBaseMenuTitle').html('');$('.SYS_GcIrBaseMenuTitle2').html('');break;} break;} break;case"SYS_GcIrBaseEl":switch(func){case"click":$('.SYS_GcIrBaseBlock').hide();break;} break;case"SYS_GcIrBaseDir":switch(func){case"click":var xid=$('.SYS_GcIrBaseBlock').attr('xid');$('.SYS_GcIrBaseDirBlock').hide();$('.SYS_GcIrBaseDir2Block').hide();$('.SYS_GcIrBaseElBlock').hide();var dir=el.html();$('.SYS_GcIrBaseMenuEl[func="dir"]').show();$('.SYS_GcIrBaseMenuTitle2').html('');$('.SYS_GcIrBaseMenuTitle').html(dir);if($('.SYS_GcIrBaseDir2Block[dir="'+dir+'"]').length==0){$.post("login/getgsir.php",{dir:dir,func:'dir2'},function(data){$('.SYS_GcIrBaseMenuEl[func="dir2"]').show();$('.SYS_GcIrBaseBlockEl').append(data);});} break;} break;case"SYS_GcIrBaseDir2":switch(func){case"click":var xid=$('.SYS_GcIrBaseBlock').attr('xid');$('.SYS_GcIrBaseDirBlock').hide();$('.SYS_GcIrBaseDir2Block').hide();$('.SYS_GcIrBaseElBlock').hide();var type=el.html();var brend=el.attr('brend');$('.SYS_GcIrBaseMenuTitle').html(brend);$('.SYS_GcIrBaseMenuTitle2').html(type);if($('.SYS_GcIrBaseElBlock[dir="'+dir+'"]').length==0){$.post("login/getgsir.php",{type:type,brend:brend,func:'code'},function(data){$('.SYS_GcIrBaseMenuEl[func="dir"]').show();$('.SYS_GcIrBaseBlockEl').append(data);});} break;} break;case"SYS_GcIrBaseMenuTitle":switch(func){case"click":var xid=$('.SYS_GcIrBaseBlock').attr('xid');$('.SYS_GcIrBaseDirBlock').hide();$('.SYS_GcIrBaseDir2Block').hide();$('.SYS_GcIrBaseElBlock').hide();var dir=el.html();$('.SYS_GcIrBaseMenuTitle').html(dir);$('.SYS_GcIrBaseMenuTitle2').html('');if($('.SYS_GcIrBaseDir2Block[dir="'+dir+'"]').length==0){$.post("login/getgsir.php",{dir:dir,func:'dir2'},function(data){$('.SYS_GcIrBaseMenuEl[func="dir"]').show();$('.SYS_GcIrBaseMenuEl[func="dir2"]').show();$('.SYS_GcIrBaseBlockEl').append(data);});} break;} break;case"SYS_ElemBaseMenuEl":switch(func){case"click":switch(el.attr('func')){case"close":$('.SYS_ElemBaseBlock').hide();break;case"dir":el.hide();$('.SYS_ElemBaseElBlock').hide();$('.SYS_ElemBaseDirBlock').show();$('.SYS_ElemBaseMenuTitle').html('Выбор раздела');break;} break;} break;case"SYS_ElemBaseEl":switch(func){case"click":AddElem(el.html());$('.SYS_ElemBaseBlock').hide();break;} break;case"SYS_ElemBaseDir":switch(func){case"click":var xid=$('.SYS_ElemBaseBlock').attr('xid');$('.SYS_ElemBaseDirBlock').hide();$('.SYS_ElemBaseElBlock').hide();var dir=el.html();$('.SYS_ElemBaseMenuTitle').html(dir);if($('.SYS_ElemBaseElBlock[dir="'+dir+'"]').length==0){$.post("login/getelem.php",{dir:dir,func:'el'},function(data){$('.SYS_ElemBaseMenuEl[func="dir"]').show();$('.SYS_ElemBaseBlockEl').append(data);});} break;} break;case"SYS_DevicesSetupActionContDel":switch(func){case"click":el.parent('.SYS_DevicesSetupActionCont').remove();break;} break;case"SYS_ImageBaseMenuEl":switch(func){case"click":switch(el.attr('func')){case"close":$('.SYS_ImageBaseBlock').hide();break;case"dir":el.hide();$('.SYS_ImageBaseElBlock').hide();$('.SYS_ImageBaseDirBlock').show();$('.SYS_ImageBaseMenuTitle').html('Выбор раздела');break;} break;} break;case"SYS_ImageBaseEl":switch(func){case"click":if(el.attr('blockclick')=='true'){el.removeAttr('blockclick');}else{SystemLog(el.html());var imgurl=el.attr('imgurl');var xid=ElementSelect.attr('id');var stylesel=ElementSelect.attr('stylesel');ElementSelect.attr('style',ElementSelect.attr('style'+stylesel));ElementSelect.css('background-image','url('+imgurl+')');ElementSelect.attr('style'+stylesel,ElementSelect.attr('style'));ParamPrint(ElementSelect,'style');$('.SYS_ImageBaseBlock').hide();ElEditorStart(xid,'style',ElementSelect);StyleApply(ElementSelect,stylesel,true);} break;} break;case"SYS_ImageBaseElDel":switch(func){case"click":el.parent().attr('blockclick','true');var imgurl=el.parent().attr('imgurl');var jwt=localStorage.getItem('jwt');var project=localStorage.getItem('project');var data={"jwt":jwt,"func":"delimage","project":project,"imgurl":imgurl};$.post("system/ajax.php",{data:JSON.stringify(data)},function(mess){if(mess['ok']){el.parent().remove();}else{alert(mess['error']);}},"json");break;} break;case"SYS_ImageBaseDir":switch(func){case"click":var xid=$('.SYS_ImageBaseBlock').attr('xid');$('.SYS_ImageBaseDirBlock').hide();$('.SYS_ImageBaseElBlock').hide();var dir=el.html();$('.SYS_ImageBaseMenuTitle').html(dir).show();if($('.SYS_ImageBaseElBlock[dir="'+dir+'"]').length==0){var project=localStorage.getItem('project');$.post("login/getimage.php",{dir:dir,func:'el',project:project},function(data){$('.SYS_ImageBaseMenuEl[func="dir"]').show();$('.SYS_ImageBaseBlockEl').append(data);if($('.SYS_ImageBaseElBlock[dir="'+dir+'"]').attr('edit')=='true'){$('.SYS_ImageBaseMenuEl[func="load"]').show();}else{$('.SYS_ImageBaseMenuEl[func="load"]').hide();} $('.SYS_ImageBaseElBlock[dir="'+dir+'"]').show();});}else{$('.SYS_ImageBaseMenuEl[func="dir"]').show();if($('.SYS_ImageBaseElBlock[dir="'+dir+'"]').attr('edit')=='true'){$('.SYS_ImageBaseMenuEl[func="load"]').show();}else{$('.SYS_ImageBaseMenuEl[func="load"]').hide();} $('.SYS_ImageBaseElBlock[dir="'+dir+'"]').show();} break;} break;case"SYS_DomContEl2":var xid=el.attr('xid');if(el.attr('contenteditable')!=='true'){switch(func){case"click":if(el.attr('select')!=='1'){var xel=$('#'+xid);ElSelect(xel);} break;case"dclick":var xel=$('#'+xid);EditBlockSelect(xel,xid);break;case"clickR":$('.SYS_ClickRightMenu').show();var xel=$('#'+xid);$('.SYS_ClickRightMenu').css({'top':300+'px','left':300+'px'});$('.SYS_ClickRightMenu').attr('el',xid);BreakclickR=true;break;}} switch(func){case"dragstart":el.attr('drag','start');el.css('border','1px solid green');break;case"dragover":el.css('border','1px solid red');if(el.attr('drag')!=="start"){var eldrag=$('.SYS_DomContEl2[drag="start"]');var index=$(".SYS_DomContEl2").index(el);if(index>0){el.after(eldrag);}else{el.before(eldrag);}} break;case"dragleave":el.css('border','1px solid blue');break;case"dragend":$('.SYS_DomContEl2[drag="start"]').removeAttr('drag');var Pxid=$(".SYS_DomContEl").attr('xid');$(".SYS_DomContEl2").each(function(){var xid=$(this).attr('xid');var last=$('#'+Pxid).children().last();if(last.attr('id')!==xid){last.after($("#"+xid));}});break;} break;case"SYS_StructurePopupName":switch(func){case"click":var SYS_StructurePopup=el.closest('.SYS_StructurePopup');var Index=$('.SYS_StructurePopup').index(SYS_StructurePopup);var Popup=$('.SYS_Main').find('div[type="Popup"]').eq(Index);switch(func){case"click":$('.SYS_StructurePopup').attr('select','0');el.parent().attr('select','1');ElementSelect=Popup;UiFuncXid=SYS_StructurePopup.attr('elid');FXedit='fxui';ParamPrint(Popup);CloseEditBlock();break;} break;} break;case"SYS_StructurePopupView":switch(func){case"click":var SYS_StructurePopup=el.closest('.SYS_StructurePopup');var Index=$('.SYS_StructurePopup').index(SYS_StructurePopup);var Popup=$('.SYS_Main').find('div[type="Popup"]').eq(Index);if(Popup.attr('show')==='1'){PopupEffect(Popup,'Hide');el.css('fill','rgb(160,160,160)');}else{PopupEffect(Popup,'Show');el.css('fill','#39475d');} break;} break;case"SYS_StructurePage":case"SYS_StructurePopup":case"SYS_StructureProject":var typeel='Page';typeel=elclass.replace("SYS_Structure","");var id=el.attr('elid');switch(func){case"dragstart":el.attr('drag','start');el.css('border','1px solid green');break;case"dragover":el.css('border','1px solid red');if(el.attr('drag')!=="start"){var eldrag=$('div[drag="start"]');var index=$(".SYS_Structure"+typeel).index(el);if(index>0){el.after(eldrag);}else{el.before(eldrag);}} break;case"dragenter":break;case"dragleave":el.css('border','1px solid blue');break;case"dragend":$('div[drag="start"]').removeAttr('drag');$(".SYS_Structure"+typeel).each(function(){var id=$(this).attr('elid');SystemLog('id = '+id);var last=$("div[type='"+typeel+"']").last();if(last.attr('id')!==id){last.after($("#"+id));}});break;case"click":switch(typeel){case'Project':if(el.attr("contenteditable")!=="true"&&el.attr("draggable")!=="true"){var prj=el.attr('prj');var result=confirm('Подтвердите переход к другому проекту, несохраненные данные будут потеряны.');if(result){localStorage.setItem('project',prj);WindowsReload(false);}} break;case'Page':var Index=$('.SYS_StructurePage').index(el);var Page=$('.SYS_Main').find('div[type="Page"]').eq(Index);switch(func){case"click":$('.SYS_StructurePage').attr('select','0');el.attr('select','1');ParamPrint(Page);CloseEditBlock();StructPrint(Page,$('
    '));openpage(Page,'Page');ElementSelect=Page;break;} break;} break;} break;case"SYS_TagSelectBut":case"SYS_LinkDevSelectBut":switch(func){case"press":switch(el.attr('func')){case"close":var block=el.parent().parent().hide();break;} break;} break case"SYS_LinkDevSel":switch(func){case"click":var hid=el.attr('hid');var func=$('.SYS_LinkDevSelectBlock').attr('func');switch(func){case'logic':var devname=GetDevName('/x'+el.attr('hid'));LinkDevSelectVal.html(devname).attr('value','/x'+el.attr('hid'));break;case'fx':var val=el.attr('hid');var key=$('.SYS_LinkDevSelectBlock').attr('key');var param=$('.SYS_LinkDevSelectBlock').attr('param');SystemLog(UiFuncArrEditEl);UiFuncArrEditEl[key][param]=val;UiFuncSave();break;case'dev':var xid=LinkDevSelectVal.attr('xid');var namelink=LinkDevSelectVal.attr('namelink');var LinkDevJson=$('#'+xid).attr('linkdev');if(LinkDevJson){var ArrLinkDev=JSON.parse(LinkDevJson);if(typeof(ArrLinkDev[namelink])!=="undefined"){ArrLinkDev[namelink]=hid;var LinkDevJson=JSON.stringify(ArrLinkDev);LinkDevEditorSave(xid,LinkDevJson);}} RestartFxUi(xid);break;} $('.SYS_LinkDevSelectBlock').hide();break;} break case"SYS_ElEditorBut":switch(func){case"press":switch(el.attr('func')){case"addproject":var result=confirm('СОХРАНИТЕ данные текущего проекта перед созданием нового. Создать новый проект?');if(result){var jwt=localStorage.getItem('jwt');var data={"jwt":jwt,"func":"addproject"};$.post("system/ajax.php",{data:JSON.stringify(data)},function(mess){if(mess['ok']){localStorage.setItem('project',mess['project']);WindowsReload(false);}else{alert(mess['error']);}},"json");} break;case"renameproject":$('.SYS_StructureProject').attr('contenteditable','true');$('.SYS_StructureProject').css('border','1px solid orange');el.css('display','none');el.parent().find('div[func="renameprojectok"]').css('display','flex');break;case"renameprojectok":$('.SYS_StructureProject').attr('contenteditable','false');$('.SYS_StructureProject').css('border','none');var prjnamearr={};$('.SYS_StructureProject').each(function(){var sysname=$(this).attr('prj');var name=$(this).html();prjnamearr[sysname]=name;});SystemLog(prjnamearr);var jwt=localStorage.getItem('jwt');var data={"jwt":jwt,"func":"renameproject","prjnamearr":prjnamearr};$.post("system/ajax.php",{data:JSON.stringify(data)},function(mess){if(mess['ok']){var prjselect=$('.SYS_StructureProject[select="1"]').attr("prj");$(".SYS_StructureProjectName").find('span').html('Проект - '+prjnamearr[prjselect]);SystemLog(mess['ok']);}else{alert(mess['error']);}},"json");el.css('display','none');el.parent().find('div[func="renameproject"]').css('display','flex');break;case"moveproject":$('.SYS_StructureProject').attr('draggable','true');$('.SYS_StructureProject').css('border','1px solid blue');el.css('display','none');el.parent().find('div[func="moveprojectok"]').css('display','flex');break;case"moveprojectok":$('.SYS_StructureProject').attr('draggable','false');$('.SYS_StructureProject').css('border','none');var prjarr={};var i=0;$('.SYS_StructureProject').each(function(){var prj=$(this).attr('prj');prjarr[i]=prj;i++;});SystemLog(prjarr);var jwt=localStorage.getItem('jwt');var data={"jwt":jwt,"func":"moveproject","prjarr":prjarr};$.post("system/ajax.php",{data:JSON.stringify(data)},function(mess){if(mess['ok']){SystemLog(mess['ok']);}else{alert(mess['error']);}},"json");el.css('display','none');el.parent().find('div[func="moveproject"]').css('display','flex');break;case"delproject":var result=confirm('УДАЛИТЬ ПРОЕКТ?');if(result){var result2=confirm('Вы уверены что хотите УДАЛИТЬ проект? после удаления проект НЕЛЬЗЯ будет восстановить!');if(result2){var jwt=localStorage.getItem('jwt');var project=localStorage.getItem('project');var data={"jwt":jwt,"func":"delproject","project":project};$.post("system/ajax.php",{data:JSON.stringify(data)},function(mess){if(mess['ok']){alert(mess['ok']);WindowsReload(false);}else{alert(mess['error']);}},"json");}} break;case"addpage":$('.SYS_Main').find('div[type="Page"]').attr('select','0').css('display','none');var count=$('.SYS_Main').find('div[type="Page"]').length+1;var nid=newid();var last=$("div[type='Page']").last();var newpage=$('.SYS_AddPage').clone();newpage.removeClass('SYS_AddPage').attr('id',nid).attr('name','Страница '+count).attr('type','Page');var style=newpage.attr('style');newpage.attr('styleall',style);last.after(newpage);ElementSelect=newpage;StructurePageView();break;case"delpage":if($('.SYS_Main').find('div[type="Page"]').length==1){alert('В проекте должна быть минимум 1 странциа!');}else{var result=confirm('Удалить страницу?');if(result){$('.SYS_Main').find('div[type="Page"][select="1"]').remove();var Page=$("div[type='Page']:first");Page.attr('select','1');var display=xcss(Page,'display');if(display!==0&&display!=='none'){Page.css('display',display);}else{Page.css('display','block');} StructurePageView();}} break;case"copypage":var len=$('.SYS_StructurePage[select="1"]').length;switch(len){case 0:alert('Страница не выбрана');break;case 1:var id=$('.SYS_StructurePage[select="1"]').attr('elid');$('#'+id).removeAttr('select');var newpage=$('#'+id).clone();newpage.attr('name',newpage.attr('name')+" (копия)").attr('select','1');newpage.find('div').each(function(index){var new_id=newid();$(this).attr('id',new_id);});var new_id=newid();newpage.attr('id',new_id);$('.SYS_Main').find('div[type="page"]:last').after(newpage);StructurePageView();break;default:alert('Выбрано больше одной страницы');} break;case"renamepage":$('.SYS_StructurePageName').attr('contenteditable','true');$('.SYS_StructurePage').css('border','1px solid orange');el.css('display','none');el.parent().find('div[func="renamepageok"]').css('display','flex');break;case"renamepageok":$('.SYS_StructurePageName').attr('contenteditable','false');$('.SYS_StructurePage').css('border','none');$('.SYS_StructurePageName').each(function(){var id=$(this).parent().attr('elid');var name=$(this).html();$("#"+id).attr('name',name);});el.css('display','none');el.parent().find('div[func="renamepage"]').css('display','flex');break;case"movepage":$('.SYS_StructurePage').attr('draggable','true');$('.SYS_StructurePage').css('border','1px solid blue');el.css('display','none');el.parent().find('div[func="movepageok"]').css('display','flex');break;case"movepageok":$('.SYS_StructurePage').attr('draggable','false');$('.SYS_StructurePage').css('border','none');$('.SYS_StructurePageName').each(function(){var id=$(this).parent().attr('elid');});el.css('display','none');el.parent().find('div[func="movepage"]').css('display','flex');break;case"renamepopup":$('.SYS_StructurePopupName').attr('contenteditable','true');$('.SYS_StructurePopup').css('border','1px solid orange');el.css('display','none');el.parent().find('div[func="renamepopupok"]').css('display','flex');break;case"renamepopupok":$('.SYS_StructurePopupName').attr('contenteditable','false');$('.SYS_StructurePopup').css('border','none');$('.SYS_StructurePopupName').each(function(){var id=$(this).parent().attr('elid');var name=$(this).html();$("#"+id).attr('name',name);});el.css('display','none');el.parent().find('div[func="renamepopup"]').css('display','flex');break;case"addpopup":var nid=newid();if($("div[type='Popup']").length>0){var last=$("div[type='Popup']").last();}else{var last=$("div[type='Page']").last();} var newpopup=$('.SYS_AddPopup').clone();newpopup.removeClass('SYS_AddPopup').attr('id',nid).attr('name','Окно '+($('.SYS_Main').find('div[type="Popup"]').length+1)).attr('type','Popup');var style=newpopup.attr('style');newpopup.attr('styleall',style);last.after(newpopup);StructurePopupView();ElementSelect=newpopup;break;case"delpopup":var len=$('.SYS_StructurePopup[select="1"]').length;switch(len){case 0:alert('Окно не выбрано');break;case 1:if(confirm('Удалить окно?')){var id=$('.SYS_StructurePopup[select="1"]').attr('elid');$('#'+id).remove();StructurePopupView();} break;default:alert('Выбрано больше одного окна');} break;case"copypopup":var len=$('.SYS_StructurePopup[select="1"]').length;switch(len){case 0:alert('Окно не выбрано');break;case 1:var id=$('.SYS_StructurePopup[select="1"]').attr('elid');var newpopup=$('#'+id).clone();$('#'+id).css('display','none');newpopup.attr('name',newpopup.attr('name')+" (копия)");newpopup.find('div').each(function(index){var resid=$(this).attr('id');var new_id=newid();$(this).attr('id',new_id);});var new_id=newid();newpopup.attr('id',new_id);$('.SYS_Main').find('div[type="popup"]:last').after(newpopup);StructurePopupView();break;default:alert('Выбрано больше одного окна');} break;case"movepopup":$('.SYS_StructurePopup').attr('draggable','true');$('.SYS_StructurePopup').css('border','1px solid blue');el.css('display','none');el.parent().find('div[func="movepopupok"]').css('display','flex');break;case"movepopupok":$('.SYS_StructurePopup').attr('draggable','false');$('.SYS_StructurePopup').css('border','none');$('.SYS_StructurePopupName').each(function(){var id=$(this).parent().attr('elid');});el.css('display','none');el.parent().find('div[func="movepopup"]').css('display','flex');break;case"savefilepopup":var len=$('.SYS_StructurePopup[select="1"]').length;switch(len){case 0:alert('Окно не выбрано');break;case 1:var id=$('.SYS_StructurePopup[select="1"]').attr('elid');var popup=$('#'+id);var newpopup=popup.clone();StyleApply(newpopup,'all',true);savefile(newpopup);break;default:alert('Выбрано больше одного окна');} break;case"savefilepage":var id=$('.SYS_StructurePage[select="1"]').attr('elid');var page=$('#'+id);savefile(page);break;case"adddom":SystemLog('AddElement');break;case"deldom":var result=confirm('Удалить элемент?');if(result){$('.SYS_DomContEl2[select="1"]').each(function(){var xid=$(this).attr('xid');$('#'+xid).remove();$(this).remove();});} break;case"renamedom":$('.SYS_DomContEl2').attr('contenteditable','true');$('.SYS_DomContEl2').css('border','1px solid orange');el.css('display','none');el.parent().find('div[func="renamedomok"]').css('display','flex');break;case"renamedomok":$('.SYS_DomContEl2').attr('contenteditable','false');$('.SYS_DomContEl2').css('border','none');$('.SYS_DomContEl2').each(function(){var xid=$(this).attr('xid');var name=$(this).html();$("#"+xid).attr('name',name);});el.css('display','none');el.parent().find('div[func="renamedom"]').css('display','flex');break;case"movedom":$('.SYS_DomContEl2').attr('draggable','true');$('.SYS_DomContEl2').css('border','1px solid blue');el.css('display','none');el.parent().find('div[func="movedomok"]').css('display','flex');break;case"movedomok":$('.SYS_DomContEl2').attr('draggable','false');$('.SYS_DomContEl2').css('border','none');$('.SYS_StructurePopupName').each(function(){var id=$(this).parent().attr('elid');});el.css('display','none');el.parent().find('div[func="movedom"]').css('display','flex');break;case"addattr":var xid=el.parent().parent().attr('xid');AttrEditorAdd(xid);RestartFxUi(xid);break;case"addtag":var xid=el.parent().parent().attr('xid');TagsEditorAdd(xid);RestartFxUi(xid);break;case"addlinkdev":var xid=el.parent().parent().attr('xid');LinkDevEditorAdd(xid);RestartFxUi(xid);break;case"addcam3d":var xid=el.parent().parent().attr('xid');Cam3dEditorAdd(xid);break;case"selectall":xid=el.parent().parent().attr('xid');if(el.attr('select')=='1'){el.attr('select','0');el.parent().parent().find('input[type="checkbox"]').prop("checked",false)}else{el.attr('select','1');el.parent().parent().find('input[type="checkbox"]').prop("checked",true)} break;case"copyattr":var xid=el.parent().parent().attr('xid');var SelBlock=el.parent().parent().find('.SYS_EditorBlockAttr');CopyAttrVal=[];SelBlock.each(function(index){if($(this).find('input[type="checkbox"]').prop("checked")==true){var param=$(this).find('input[name="nameattr"]').val();var val=$(this).find('input[name="valattr"]').val();CopyAttrVal[param]=val;}});SystemLog(CopyAttrVal);break;case"copytags":var xid=el.parent().parent().attr('xid');var SelBlock=el.parent().parent().find('.SYS_EditorBlockTags');CopyTagsVal=[];SelBlock.each(function(index){if($(this).find('input[type="checkbox"]').prop("checked")==true){var param=$(this).find('input[name="nametag"]').val();var val=$(this).find('input[name="valtag"]').val();CopyTagsVal[param]=val;}});SystemLog(CopyTagsVal);break;case"copylinkdev":var xid=el.parent().parent().attr('xid');var SelBlock=el.parent().parent().find('.SYS_EditorBlockLinkDev');CopyLinkDevVal=[];SelBlock.each(function(index){if($(this).find('input[type="checkbox"]').prop("checked")==true){var param=$(this).find('input[name="namelinkdev"]').val();var val=$(this).find('input[name="vallinkdev"]').attr('link');CopyLinkDevVal[param]=val;}});SystemLog(CopyLinkDevVal);break;case"pastelinkdev":var xid=el.parent().parent().attr('xid');var LinkDevJson=$('#'+xid).attr('linkdev');if(LinkDevJson){var ArrLinkDev=JSON.parse(LinkDevJson);}else{var ArrLinkDev={}} for(var key in CopyLinkDevVal){ArrLinkDev[key]=CopyLinkDevVal[key];} var LinkDevJson=JSON.stringify(ArrLinkDev);SystemLog(LinkDevJson);LinkDevEditorSave(xid,LinkDevJson);RestartFxUi(xid);break;case"copystyle3D":var xid=el.parent().parent().attr('xid');var SelBlock=el.parent().parent().find('.SYS_SelBlock');CopyCss3DVal=[];SelBlock.each(function(index){if($(this).find('input[type="checkbox"]').prop("checked")==true){var param=$(this).find('.SYS_Select:first').val();var val=$(this).find('.SYS_Select').eq(1).val();CopyCss3DVal[param]=val;}});break;case"pastestyle3D":var xid=el.parent().parent().attr('xid');var elem=$('#'+xid);var edit=el.parent().parent().attr('edit');var style3D=elem.attr('style3D');var CssArr=[];if(style3D){style3D=style3D.replace(/ /g,'');var style3Darr2=style3D.split(';');for(var key in style3Darr2){style3Darr3=style3Darr2[key].split(':');CssArr[style3Darr3[0]]=style3Darr3[1];} for(var key in CopyCss3DVal){if(key){CssArr[key]=CopyCss3DVal[key];}}}else{CssArr=CopyCss3DVal;} var newcss="";delete CssArr[""];for(var key in CssArr){newcss=newcss+""+key+":"+CssArr[key]+";";} elem.attr('style3D',newcss);ParamPrint(elem,edit);break;case"pasteattr":var xid=el.parent().parent().attr('xid');var ArrJson=$('#'+xid).attr('Attr');if(ArrJson){var ArrAttr=JSON.parse(ArrJson);}else{var ArrAttr={'attr':{}}} for(var key in CopyAttrVal){ArrAttr['attr'][key]=CopyAttrVal[key];} var AttrArrJson=JSON.stringify(ArrAttr);SystemLog(AttrArrJson);AttrEditorSave(xid,AttrArrJson);RestartFxUi(xid);break;case"pastetags":var xid=el.parent().parent().attr('xid');var TagsJson=$('#'+xid).attr('tags');if(TagsJson){var ArrTags=JSON.parse(TagsJson);}else{var ArrTags={'tags':{}}} for(var key in CopyTagsVal){ArrTags['tags'][key]=CopyTagsVal[key];} var TagsArrJson=JSON.stringify(ArrTags);SystemLog(TagsArrJson);TagsEditorSave(xid,TagsArrJson);RestartFxUi(xid);break;case"pastestyle3D":var xid=el.parent().parent().attr('xid');var elem=$('#'+xid);var edit=el.parent().parent().attr('edit');for(var param in CopyCssVal){xcss(xid,param,CopyCssVal[param],edit);elem.parent().find('div[sys_select="1"]').each(function(index){var xid2=$(this).attr('id');if(xid2&&xid2!=xid){xcss(xid2,param,CopyCssVal[param],edit);}});} ParamPrint(elem,edit);break;case"add":funcel=el.parent().parent().attr('edit');if(el.parent().parent().find('.SYS_EditorBlock').length==0){el.parent().parent().append('
    ')} var sel=$('.Select_'+funcel).eq(0).clone().attr('class','SYS_Select').show();sel.val('');var SYS_SelBlock=$('.SelBlock').clone().attr('class','SYS_SelBlock').show();SYS_SelBlock.append(sel);SYS_SelBlock.append($('
    -
    '));$('.SYS_EditorBlock[edit="'+funcel+'"]').append(SYS_SelBlock);break;case"copycss":var xid=el.parent().parent().attr('xid');var SelBlock=el.parent().parent().find('.SYS_SelBlock');CopyCssVal=[];SelBlock.each(function(index){if($(this).find('input[type="checkbox"]').prop("checked")==true){var param=$(this).find('.SYS_Select:first').val();var val=$(this).find('.SYS_Select').eq(1).val();CopyCssVal[param]=val;}});break;case"pastecss":var xid=el.parent().parent().attr('xid');var edit=el.parent().parent().attr('edit');var elem=$('#'+xid);var stylesel=elem.attr('stylesel');var elstylesel=elem.attr('style'+stylesel);if(typeof(elstylesel)==="undefined"){elem.attr('style'+stylesel,'');} console.log('CCCCCCCCCCCCCCCCCCCCC');console.log(CopyCssVal);var styleadd="";var styleold=elem.attr('style'+stylesel);var styleoldarr={};var styleoldarr1=styleold.split(';');for(var key in styleoldarr1){var styleoldarr2=styleoldarr1[key].split(':');if(typeof(styleoldarr2[0])!=="undefined"&&typeof(styleoldarr2[1])!=="undefined"){styleoldarr[styleoldarr2[0]]=styleoldarr2[1];}} for(var param in CopyCssVal){console.log(param);console.log(CopyCssVal[param]);styleoldarr[param]=CopyCssVal[param];} var styletxt='';for(var key in styleoldarr){styletxt=styletxt+key+':'+styleoldarr[key]+';';} console.log(styletxt);elem.attr('style'+stylesel,styletxt);ElEditorStart(xid,'style',elem);StyleApply(elem,stylesel,true);break;case"copyfunc":xid=$('.SYS_ElEditorFxUiBlock').attr('xid');CopyFxUiVal=$('#'+xid).attr('UiFunc');break;case"pastefunc":$('div[sys_select="1"]').each(function(){$(this).attr('UiFunc',CopyFxUiVal);var xid=$(this).attr('id');ParamPrint($('#'+xid),'function');});break;case"delfunc":xid=$('.SYS_ElEditorFxUiBlock').attr('xid');$('#'+xid).attr('UiFunc','');ParamPrint($('#'+xid),'function');break;case"copyfxlogic":xid=$('.SYS_ElEditorFxUiBlock').attr('xid');CopyFxLogicVal=$('#'+xid).attr('LogicFunc');break;case"disablefxlogic":xid=$('.SYS_ElEditorFxUiBlock').attr('xid');if($('#'+xid).attr('FxLogicDisable')=='1'){$('#'+xid).attr('FxLogicDisable','0');el.css('fill','');}else{$('#'+xid).attr('FxLogicDisable','1');el.css('fill','red');} break;case"pastefxlogic":xid=$('.SYS_ElEditorFxUiBlock').attr('xid');$('#'+xid).attr('LogicFunc',CopyFxLogicVal);ParamPrint($('#'+xid),'fxlogic');break;case"delfxlogic":xid=$('.SYS_ElEditorFxUiBlock').attr('xid');$('#'+xid).attr('LogicFunc','');ParamPrint($('#'+xid),'fxlogic');break;case"svg":$('.SYS_SvgBaseBlock').show();if($('.SYS_SvgBaseBlockEl').html()==''){$.post("login/getsvg.php",{func:'dir'},function(data){$('.SYS_SvgBaseBlockEl').append(data);});} break;case"copyhtml":xid=el.parent().parent().attr('xid');funcel=el.parent().parent().attr('edit');var newele=$('#'+xid).clone();newele.find('div').each(function(index){var resid=$(this).attr('id');var new_id=newid();$(this).attr('id',new_id);});CopyHtmlVal=newele.html();break;case"delhtml":xid=el.parent().parent().attr('xid');elem=$('#'+xid);$('#'+xid).html('');funcel=el.parent().parent().attr('edit');ParamPrint(elem,funcel);break;case"pastehtml":xid=el.parent().parent().attr('xid');funcel=el.parent().parent().attr('edit');elem=$('#'+xid);elem.html(CopyHtmlVal);elem.parent().find('div[sys_select="1"]').each(function(index){var xid2=$(this).attr('id');if(xid2&&xid2!=xid){$('#'+xid2).html(CopyHtmlVal);}});ParamPrint(elem,funcel);break;case"ck":funcel=el.parent().parent().attr('edit');switch(funcel){case"html":xid=$('.SYS_ElEditor[edit="'+funcel+'"]').attr('xid');$('.SYS_FuncEditorCK').attr('edit',funcel).show();data=$('.SYS_ElEditor[edit="'+funcel+'"]').find('textarea').val();$('textarea.editor').val(data);break;} break;case"fxui":case"fxdev":case"fxdevlink":$('.SYS_UiFuncBlockBox').attr('UiFuncXid',UiFuncXid);TagChange('/xsysui/fxlogic/debug',UiFuncXid);switch(el.attr('func')){case"fxdevlink":var did=el.closest('.SYS_DevicesSetup').attr('did');var hn=el.closest('.SYS_DevicesSetupBlock').attr('hn');$('.SYS_UiFuncBlockBox').attr('did',did).attr('hn',hn);FXedit="fxdevlink";break;} UiFuncPrint();break;} break;} break;case"SYS_SelValImage":switch(func){case"press":$('.SYS_ImageBaseBlock').show();if($('.SYS_ImageBaseBlockEl').html()==''){var project=localStorage.getItem('project');$.post("login/getimage.php",{func:'dir',project:project},function(data){$('.SYS_ImageBaseBlockEl').append(data);});} break;} break;case"SYS_CssImageSelectBlockListGet":switch(func){case"press":$('.SYS_CssImageSelectBlockList').html('');var hname=el.html();$.post("GetImages.php",{LOGIN:Login,HNAME:hname},function(data){for(var i=0;i
    ');$('.SYS_CssImageSelectBlockList').append(imgel);}},"json");break;} break;case"SYS_CssImageSelectBlockListEl":switch(func){case"press":img=el.attr('data-image');$('.SYS_CssImageSelectBlock').attr('data-image',img);$('.SYS_CssImageSelectBlockImage').css('background-image','url('+img+')');break;} break;case"SYS_CssImageSelectBlockClose":switch(func){case"press":el.parent().css('display','none');break;} break;case"SYS_CssImageSelectBlockSave":switch(func){case"press":img=$('.SYS_CssImageSelectBlock').attr('image');img=img.replace(/"/g,'');if(img.indexOf("url(")==-1){img='url('+img+')';} $('.SYS_SelValImage').find('.SYS_Select').val(img);$('.SYS_SelValImage').css('background-image',img);xid=$('.SYS_SelValImage').parent().parent().parent().attr('xid');ElEditorSave(xid,'style');el.parent().css('display','none');break;} break;case"SYS_SelBlockDel":switch(func){case"press":var funcel=el.parent().parent().attr('edit');el.parent().remove();switch(funcel){case"attr":var xid=$('.SYS_ElEditor[edit="'+funcel+'"]').attr('xid');var ArrAttr={'attr':{}} $('.SYS_EditorBlockAttr').each(function(){var name=$(this).find('input[name="nameattr"]').val();var val=$(this).find('input[name="valattr"]').val();ArrAttr['attr'][name]=val;});var AttrArrJson=JSON.stringify(ArrAttr);SystemLog(AttrArrJson);AttrEditorSave(xid,AttrArrJson);break;case"tags":var xid=$('.SYS_ElEditor[edit="'+funcel+'"]').attr('xid');var ArrTags={'tags':{}} $('.SYS_EditorBlockTags').each(function(){var name=$(this).find('input[name="nametag"]').val();var val=$(this).find('input[name="valtag"]').val();ArrTags['tags'][name]=val;});var TagsArrJson=JSON.stringify(ArrTags);SystemLog(TagsArrJson);TagsEditorSave(xid,TagsArrJson);break;case"linkdev":var xid=$('.SYS_ElEditor[edit="'+funcel+'"]').attr('xid');var ArrLinkDev={} $('.SYS_EditorBlockLinkDev').each(function(){var name=$(this).find('input[name="namelinkdev"]').val();var val=$(this).find('input[name="vallinkdev"]').attr('link');ArrLinkDev[name]=val;});var TagsLinkDev=JSON.stringify(ArrLinkDev);SystemLog(TagsLinkDev);LinkDevEditorSave(xid,TagsLinkDev);break;default:var xid=$('.SYS_ElEditor[edit="'+funcel+'"]').attr('xid');ElEditorSave(xid,funcel);ElEditorStart(xid,funcel,$('#'+xid));break;} break;} break;case"SYS_SelectCSS":switch(func){case"change":ival=el.parent().find('.SYS_SelVal');ival.attr('data-val',el.val());switch(el.val()){case"background-color":case"color":ival.attr('type','color');break;default:ival.attr('type','text');break;} break;} break;case"SYS_CpColorPicker":switch(func){case"unhover":if(el.attr('xid')){ElEditorSave(el.attr('xid'),'style');el.css(el.attr('param'),'');} break;} break;case"SYS_NameCam3d":switch(func){case"change":var xid=el.closest('.SYS_ElEditorHtml').attr('xid');var cam=el.parent().attr('cam');var ArrJson=$('#'+xid).attr('cam3d');var ArrCam3D=JSON.parse(ArrJson);if(ArrCam3D){ArrCam3D['cams'][cam]['name']=el.val();} var Cam3DArrJson=JSON.stringify(ArrCam3D);Cam3DEditorSave(xid,Cam3DArrJson);break;} break;case"SYS_ElEditorStylesel":switch(func){case"change":var xid=el.closest('.SYS_ElEditor').attr('xid');var stylesel=el.val();$('#'+xid).attr('stylesel',stylesel);ElEditorStart(xid,'style',$('#'+xid));StyleApply($('#'+xid),stylesel,true);break;} break;case"SYS_ElEditorElType":switch(func){case"click":el.closest('.SYS_ElEditorName').attr('touchblock',1);break;} break;case"SYS_ElEditorElTypeSel":switch(func){case"change":var type=$('.SYS_ElEditorElTypeSel').val();ElementSelect.attr("type",type);switch(type){case"video":ElementSelect.html('');break;case"youtube":ElementSelect.html('');break;case"input":ElementSelect.html('');break;case"select":ElementSelect.html('');break;case"block":ElementSelect.html('');break;case"svg":ElementSelect.html($('.SYS_SvgSelBlock').html());break;case"text":ElementSelect.html('');break;case"link":ElementSelect.html('ссылка');break;case"Level":var level=$('.SYS_Level').clone();ElementSelect.html('');level.find('div').each(function(index){var new_id=newid();$(this).attr('id',new_id);});ElementSelect.html(level.html());ElementSelect.attr('param','{"fontype":"0","max":"100","step":"1","intransition":"500","v2time":"300","step2":"0","min":"0"}');ElementSelect.css({'overflow':'hidden',"padding":"0"});ElementSelect.attr('styleall',ElementSelect.attr('style'));break;case"colorpicker":var colorpicker=$('.SYS_colorpicker').clone();ElementSelect.html('');colorpicker.find('div').each(function(index){var new_id=newid();$(this).attr('id',new_id);});ElementSelect.html(colorpicker.html());ElementSelect.attr('param','{"v2time":"300"}');ElementSelect.css({'overflow':'hidden',"padding":"0"});ElementSelect.attr('styleall',ElementSelect.attr('style'));break;case"HistoryTable":var HistoryTable=$('.SYS_ElementsContainer').find('div[name="SYS_HistoryTable"]').clone();ElementSelect.attr('param','{"HistoryCid":""}');ElementSelect.html('');ElementSelect.append(HistoryTable);break;default:alert(type);} HtmlEditorStart(ElementSelect);break;} break;case"SYS_ElEditorHtmlsel":switch(func){case"change":var htmlsel=el.val();ElementSelect.attr('htmlsel',htmlsel);HtmlApply(ElementSelect,htmlsel);HtmlEditorStart(ElementSelect);break;} break;case"SYS_ElEditorLangsel":switch(func){case"change":var langsel=el.val();ElementSelect.attr('langsel',langsel);var htmlsel=ElementSelect.attr('htmlsel') HtmlApply(ElementSelect,htmlsel);HtmlEditorStart(ElementSelect);break;} break;case"SYS_Select":case"SYS_Select SYS_SelValSelect":switch(func){case"click":var SYS_ElEditor=el.closest('.SYS_ElEditor');var funcel=SYS_ElEditor.attr('edit');var xid=SYS_ElEditor.attr('xid');switch(funcel){case"tags":if(el.attr('name')=='valtag'){TagSelectVal=el;TagSelectBlockShow();} break;case"linkdev":if(el.attr('name')=='vallinkdev'){LinkDevSelectVal=el;$('.SYS_LinkDevSelectBlock').attr('func','dev');LinkDevSelectBlockShow();} break;} break;case"change":case"keyup":case"paste":var SYS_ElEditor=el.closest('.SYS_ElEditor');var funcel=SYS_ElEditor.attr('edit');var xid=SYS_ElEditor.attr('xid');switch(funcel){case"html":var sel=el.closest('.SYS_ElEditorHtml').attr('sel');HtmlEditorSave(sel,el.val());break;case"name":NameEditorSave(xid,funcel);if(func=="change"){StructPrint($('#'+xid).parent(),$('#'+xid));} break;case"attr":if(func=='change'){var ArrAttr={'attr':{}} $('.SYS_EditorBlockAttr').each(function(){var name=$(this).find('input[name="nameattr"]').val();var val=$(this).find('input[name="valattr"]').val();ArrAttr['attr'][name]=val;});var AttrArrJson=JSON.stringify(ArrAttr);AttrEditorSave(xid,AttrArrJson);RestartFxUi(xid);} break;case"tags":if(func=='change'){var ArrTags={'tags':{}} $('.SYS_EditorBlockTags').each(function(){var name=$(this).find('input[name="nametag"]').val();var val=$(this).find('input[name="valtag"]').val();ArrTags['tags'][name]=val;});var TagsArrJson=JSON.stringify(ArrTags);TagsEditorSave(xid,TagsArrJson);RestartFxUi(xid);} break;case"linkdev":if(func=='change'){var ArrLinkDev={} $('.SYS_EditorBlockLinkDev').each(function(){var name=$(this).find('input[name="namelinkdev"]').val();var val=$(this).find('input[name="vallinkdev"]').attr('link');ArrLinkDev[name]=val;});var LinkDevArrJson=JSON.stringify(ArrLinkDev);LinkDevEditorSave(xid,LinkDevArrJson);RestartFxUi(xid);} break;default:ElEditorSave(xid,funcel);if(func=="change"){ElEditorStart(xid,funcel,$('#'+xid));}} break;} break;case"SYS_ElEditorClose":switch(func){case"press":el.parent().hide();break;} break;case"SYS_StructureBlockPageName":switch(func){case"click":if($('.SYS_StructurePageBlock').css('display')=='none'){el.find('.SYS_ElEditorOpenStatus').css('transform','rotate(90deg)');el.parent().find('.SYS_ElEditorButBlock[type="fpage"]').css('display','block');}else{el.find('.SYS_ElEditorOpenStatus').css('transform','rotate(0deg)');el.parent().find('.SYS_ElEditorButBlock[type="fpage"]').css('display','none');} $('.SYS_StructurePageBlock').toggle();localStorage.setItem('ElEditorShow-page',$('.SYS_StructurePageBlock').css('display'));break;} break;case"SYS_StructureBlockPopupName":switch(func){case"click":if($('.SYS_StructurePopupBlock').css('display')=='none'){el.find('.SYS_ElEditorOpenStatus').css('transform','rotate(90deg)');el.parent().find('.SYS_ElEditorButBlock[type="fpopup"]').css('display','block');}else{el.find('.SYS_ElEditorOpenStatus').css('transform','rotate(0deg)');el.parent().find('.SYS_ElEditorButBlock[type="fpopup"]').css('display','none');} $('.SYS_StructurePopupBlock').toggle();localStorage.setItem('ElEditorShow-popup',$('.SYS_StructurePopupBlock').css('display'));break;} break;case"SYS_DomBlockName":switch(func){case"click":if($('.SYS_DomCont').css('display')=='none'){el.find('.SYS_ElEditorOpenStatus').css('transform','rotate(90deg)');el.parent().find('.SYS_ElEditorButBlock[type="fdom"]').css('display','block');}else{el.find('.SYS_ElEditorOpenStatus').css('transform','rotate(0deg)');el.parent().find('.SYS_ElEditorButBlock[type="fdom"]').css('display','none');} $('.SYS_DomCont').toggle();localStorage.setItem('ElEditorShow-dom',$('.SYS_DomCont').css('display'));break;} break;case"SYS_StructureProjectName":switch(func){case"click":if($('.SYS_StructureProjectCont').css('display')=='none'){el.find('.SYS_ElEditorOpenStatus').css('transform','rotate(90deg)');el.parent().find('.SYS_ElEditorButBlock').css('display','block');}else{el.find('.SYS_ElEditorOpenStatus').css('transform','rotate(0deg)');el.parent().find('.SYS_ElEditorButBlock').css('display','none');} $('.SYS_StructureProjectCont').toggle();localStorage.setItem('ElEditorShow-project',$('.SYS_StructureProjectCont').css('display'));break;} break;case"SYS_MqttConBlockSave":switch(func){case"click":var func=el.attr('func');switch(func){case'mqtt':var project=localStorage.getItem('project');var jwt=localStorage.getItem('jwt');var mqtt={};mqtt['broker']=$('.SYS_MQTTBROKER').val();mqtt['plc1']={};mqtt['plc1']['addr']=$('.SYS_PMQTTADDR').val();mqtt['plc1']['port']=$('.SYS_PMQTTPORT').val();mqtt['plc1']['user']=$('.SYS_PMQTTUSER').val();mqtt['plc1']['pass']=$('.SYS_PMQTTPASS').val();mqtt['plc1']['pin']=$('.SYS_PMQTTPIN').val();mqtt['plc1']['pout']=$('.SYS_PMQTTPOUT').val();if($('.SYS_PMQTTSSL').is(':checked')){mqtt['plc1']['ssl']='true';}else{mqtt['plc1']['ssl']='false';} mqtt['ui']={};mqtt['ui']['addr']=$('.SYS_MQTTADDR').val();mqtt['ui']['port']=$('.SYS_MQTTPORT').val();mqtt['ui']['user']=$('.SYS_MQTTUSER').val();mqtt['ui']['pass']=$('.SYS_MQTTPASS').val();mqtt['ui']['pin']=$('.SYS_MQTTPIN').val();mqtt['ui']['pout']=$('.SYS_MQTTPOUT').val();if($('.SYS_MQTTSSL').is(':checked')){mqtt['ui']['ssl']='true';}else{mqtt['ui']['ssl']='false';} var data={"jwt":jwt,"plc":"plc1","func":"plcconfigsave","project":project,'mqtt':mqtt};$.post("system/ajax.php",{data:JSON.stringify(data)},function(mess){if(mess['error']){alert(mess['error']);SystemLog2(mess);}else{SystemLog(mess);if(mess['mqttui']){MQTTADDR=mess['mqttui']['addr'];MQTTPORT=parseInt(mess['mqttui']['port']);MQTTUSER=mess['mqttui']['user'];MQTTPASS=mess['mqttui']['pass'];if(mess['mqttui']['ssl']=='true'){MQTTSSL=true;}else{MQTTSSL=false;} MQTTPIN=mess['mqttui']['pin'];MQTTPOUT=mess['mqttui']['pout'];var options={cleanSession:false,useSSL:MQTTSSL,userName:MQTTUSER,password:MQTTPASS,onSuccess:onConnectSuccess,onFailure:onFailedConnect,reconnect:true,timeout:5,keepAliveInterval:10} var result=confirm('Настройки подключения изменены, необходимо перезагрузить редактор. Перезагрузить?');if(result){WindowsReload(false);}}}},"json");$('.SYS_MqttBlock').hide();break;case'localip':var ip=$('.SYS_PLCLOCALIP').val();var iparr=[];var ok=false;try{iparr=ip.split('.');if(iparr.length===4){if(parseInt(iparr[0])>=0&&parseInt(iparr[0])<=255){if(parseInt(iparr[1])>=0&&parseInt(iparr[1])<=255){if(parseInt(iparr[2])>=0&&parseInt(iparr[2])<=255){if(parseInt(iparr[3])>=0&&parseInt(iparr[3])<=255){ok=true;}}}}}}catch(err){alert(err);ok=false;} if(ok===true){$('.SYS_MQTT').attr('localip',ip);alert('Изменил, сохраните проект!');}else{alert('IP адрес указан неверно');} break;} break;} break;case"SYS_PlcBlockEl":switch(func){case"click":var func=el.attr('func');switch(func){case"UpdatePlc":var result=confirm('ОБНОВИТЬ КОНТРОЛЛЕР?');if(result){var uiver=localStorage.getItem('editorver');el.css('opacity','0');if(uiver==='vxxx'){uiver='v5.5-1';} TagChange('/xsysui/plc/update',uiver);} break;case"DeletePlc1":var result=confirm('ОТВЯЗАТЬ КОНТРОЛЛЕР?');if(result){var result2=confirm('Вы уверены что хотите ОТВЯЗАТЬ контроллер от проекта?');if(result2){var project=localStorage.getItem('project');var jwt=localStorage.getItem('jwt');var sn=el.attr('sn');var plc='plc1';var arr={"func":"delplc","sn":sn,"jwt":jwt,"project":project,"plc":plc};$.post("system/ajax.php",{data:JSON.stringify(arr)},function(msg){SystemLog(msg);if(msg['ok']){alert(msg['ok']);el.hide();$('.SYS_PlcUpdateBlock[name="sn"]').html('Контроллер не привязан к проекту.').css('color','orange');}else{alert(msg['error']);}},'json');}} break;case"PlcAppLoadPC":var project=localStorage.getItem('project');var jwt=localStorage.getItem('jwt');var arr={"func":"apploadlocal","project":project,"jwt":jwt};$.post("system/ajax.php",{data:JSON.stringify(arr)},function(msg){SystemLog(msg);if(msg['link']){window.open(msg['link'],'_blank');}else{alert(msg['error']);}},'json');break;case"PlcAppLoadPLC":var project=localStorage.getItem('project');var jwt=localStorage.getItem('jwt');var arr={"func":"apploadlocal","project":project,"jwt":jwt};$.post("system/ajax.php",{data:JSON.stringify(arr)},function(msg){SystemLog(msg);if(msg['link']){alert("Отправил ссылку на контроллер "+msg['link']);TagChange('/xsysui/loadapp/link',msg['link']);}else{alert(msg['error']);}},'json');break;} break;} break;case"SYS_LogicFuncParamTagSel":switch(func){case"click":TagSelectVal=el.parent().find('.SYS_LogicFuncVal');TagSelectBlockShow();break;} break;case"SYS_PlcModuleBut":switch(func){case"click":var modul=el.closest('.SYS_PlcModuleBlock').attr('type');var funcel=el.attr('func');switch(funcel){case"add":var block=$('.SYS_PlcModuleTemp[type="'+modul+'"]').clone();block.attr('class','SYS_PlcModule').show();$('.SYS_PlcModuleBlock').append(block);SavePlcModule();break;case"delmodule":el.parent('.SYS_PlcModule').remove();SavePlcModule();break;case"addread":var tr=$("
    удалить
    ");el.closest('.SYS_PlcModuleParamBlock').find('table[t="add"]').append(tr);break;case"addwrite":var tr=$("
    удалить
    ");el.closest('.SYS_PlcModuleParamBlock').find('table[t="add"]').append(tr);break;case"delread":case"delwrite":el.closest('tr').remove();SavePlcModule();break;case"loadknxxml":var input=$(document.createElement('input'));input.on('change',function(e){var file=e.target.files[0];var reader=new FileReader();reader.onload=(function(file){return function(e){var r=e.target;var xmlString=r.result;var parser=new DOMParser();var doc1=parser.parseFromString(xmlString,"text/xml");var elems=$(doc1);KnxDevUpdate={};var i=1;elems.children().each(function(){$(this).children('GroupRange').each(function(){var main=$(this).attr('Name');$(this).children('GroupRange').each(function(){var middle=$(this).attr('Name');KnxDevUpdate['main'+i]={};KnxDevUpdate['main'+i]['main']=main;KnxDevUpdate['main'+i]['middle']=middle;KnxDevUpdate['main'+i]['name']=main+' - '+middle;KnxDevUpdate['main'+i]['dev']={};$(this).children('GroupAddress').each(function(){KnxDevUpdate['main'+i]['dev'][$(this).attr('Address')]={};KnxDevUpdate['main'+i]['dev'][$(this).attr('Address')]['name']=$(this).attr('Name');var dpts=$(this).attr('DPTs');switch(dpts){case'DPT-1':dpts='DPST-1-1';break;case'DPT-2':dpts='DPST-2-1';break;case'DPT-3':dpts='DPST-3-1';break;case'DPT-4':dpts='DPST-4-1';break;case'DPT-5':dpts='DPST-5-1';break;case'DPT-6':dpts='DPST-6-1';break;case'DPT-7':dpts='DPST-7-1';break;case'DPT-8':dpts='DPST-8-1';break;case'DPT-9':dpts='DPST-9-1';break;} KnxDevUpdate['main'+i]['dev'][$(this).attr('Address')]['type']=dpts;});i++;});});});SystemLog(KnxDevUpdate);TouchFuncEditor('click',$('.SYS_PlcModuleMenuBut[type="knx"]'));};})(file);reader.readAsText(file);});input.attr("type","file");input.attr('class','pasteisfile');input.trigger('click');break;case'dptselect':if(el.find('select').length==0){var dpt=el.find('.SYS_PlcModuleVal').val();var addr=el.find('.SYS_PlcModuleVal').attr('arr');sel=$('.knxdpt').clone().attr('type','select').attr('class','SYS_PlcModuleVal').attr('arr',addr).attr('name','dpt').css('height','100%').css('margin','0').show();sel.val(dpt);el.parent().html(sel);} break;case'alice_add':var block=el.parent().find('.SYS_PlcModuleParamBlock[arr="services"]');if($('.SYS_PlcModuleBut[func="module_save"]').length==0){var services=JSON.parse($('.SYS_alice_services').attr('json'));var servicekey=Date.now();var sel=$('');for(var key in services){sel.append($(''))} sel.val('light');var block2=$("
    ");block2.append(sel);block2.append(('
    добавить
    '));block.append(block2);} block.scrollTop(parseInt(block.scrollTop())+parseInt(block.css('height')));break;case'homekit_delete':TagChange('/xsysui/module/homekit/delete','1');break;case'devices_add':var block=el.parent().find('.SYS_PlcModuleParamBlock[arr="services"]');if($('.SYS_PlcModuleBut[func="module_save"]').length==0){var services=JSON.parse($('.SYS_xiot_services').attr('json'));var servicekey=Date.now();var sel=$('');for(var key in services){sel.append($(''))} sel.val('Light');var block2=$("
    ");block2.append(sel);block2.append(('
    добавить
    '));block.append(block2);} block.scrollTop(parseInt(block.scrollTop())+parseInt(block.css('height')));break;case'z2m_menu_list':$('.SYS_PlcModuleMenu').find('.SYS_PlcModuleBut').attr('sel','0');el.attr('sel','1');$('.SYS_PlcModuleParamBlock[func="z2m_dev_list"]').hide();$('.SYS_PlcModuleParamBlock[func="z2m_map"]').hide();$('.SYS_PlcModuleParamBlock[func="z2m_log"]').hide();TagChange('/xsysui/module/zigbee2mqtt/device','list');$('.SYS_PlcModuleParamBlock[func="z2m_dev_list"]').show();break;case'z2m_device_remove':var devid=el.closest('.SYS_PlcModuleParamBlock2').attr('arr');var json='{"id":"'+devid+'","force":true,"block":false}';TagChange('/xsysui/module/zigbee2mqtt/deviceDelete',json);el.closest('.SYS_PlcModuleParamBlock2').remove();break;case'1wire_getdev':TagChange('/xsysui/module/1wire/getdev','0');break;case'module_param_open':var el2=el.parent().parent().find('.SYS_PlcModuleBlock2');if(el2.css('display')=='none'){el2.css('display','block');el.parent().find('.SYS_PlcModuleBut[func="module_param_open2"]').css('transform','rotate(90deg)');}else{el2.css('display','none');el.parent().find('.SYS_PlcModuleBut[func="module_param_open2"]').css('transform','rotate(0deg)');SystemLog(el.parent().find('.SYS_PlcModuleBut[func="module_param_open2"]'));} break;case'module_del_service':el.closest('.SYS_PlcModuleParamBlock2').remove();break;case'module_tag_select':TagSelectVal=el.parent().find('.SYS_PlcModuleVal');TagSelectBlockShow();break;case'module_save':SavePlcModule();TouchFuncEditor('click',$('.SYS_PlcModuleMenuBut[type="'+modul+'"]'));break;case'codegen':el.parent().find('.SYS_PlcModuleVal[name="code"]').val("");SavePlcModule();TouchFuncEditor('click',$('.SYS_PlcModuleMenuBut[type="'+modul+'"]'));break;case'gc_ir_add':$('.SYS_GcIrBaseBlock').show();$('.SYS_GcIrBaseMenuTitle').html('');$('.SYS_GcIrBaseMenuTitle2').html('');$.post("login/getgsir.php",{func:'dir'},function(data){$('.SYS_GcIrBaseBlockElLoading').hide();$('.SYS_GcIrBaseBlockEl').append(data);});break;case'gc_ir_sel':SavePlcModule();$('.SYS_PlcModuleBut[func="gc_ir_sel"]').attr('sel','0');el.attr('sel','1');var num=el.attr('num');var table=el.parent().parent().find('table');if($('.SYS_PlcModuleSetup').attr('json')){var setupjson=$('.SYS_PlcModuleSetup').attr('json');var setuparr=JSON.parse(setupjson);}else{var setuparr={};} SystemLog(setuparr);var IrCodeTr=el.parent().parent().find('.SYS_PlcModuleIrCodeTr_Temp').clone();el.parent().parent().find('.SYS_PlcModuleIrCodeTr').remove();el.parent().parent().find('.SYS_PlcModuleIrCodeBlock').attr('arr',num);IrCodeTr.attr('class','SYS_PlcModuleIrCodeTr SYS_PlcModuleParamBlock3');for(var i=1;i<151;i++){var IrCodeTrClone=IrCodeTr.clone();var name='';var code='';try{name=setuparr['gc']['0']['code'][num]['ir'+i]['name'];}catch(e){} try{code=setuparr['gc']['0']['code'][num]['ir'+i]['code'];}catch(e){} IrCodeTrClone.attr('arr','ir'+i);IrCodeTrClone.find('.SYS_PlcModuleIrCodeNum').html(i);IrCodeTrClone.find('.SYS_PlcModuleIrCodeName').find('input').val(name);IrCodeTrClone.find('.SYS_PlcModuleIrCodeIr').find('input').val(code);table.find('tbody').append(IrCodeTrClone);} break;case'gc_ir_test':var ir=el.closest('.SYS_PlcModuleIrCodeBlock').attr('arr');var code=el.closest('.SYS_PlcModuleIrCodeTr').find('.SYS_PlcModuleVal[name="code"]').val();TagChange('/xsysui/module/gc/irtest/'+ir,code);break;} break;} break;case"SYS_PlcModuleMenuButN":switch(func){case"click":$('.SYS_PlcModuleMenuBut').attr('active','0');$('.SYS_PlcModuleMenuButN').attr('active','0');el.attr('active','1');var modul=el.attr('type');switch(modul){case"wirenboard":if(!Wb_constructor){Wb_constructor=new WbSetupClass();}else{Wb_constructor.print();} break;case"russound":Russound_constructor.print();break;case"message":Message_constructor.print();break;case"history":History_constructor.print();break;} break;} break;case"SYS_PlcModuleMenuBut":switch(func){case"click":$('.SYS_PlcModuleMenuBut').attr('active','0');$('.SYS_PlcModuleMenuButN').attr('active','0');SavePlcModule();el.attr('active','1');var modul=el.attr('type');if($('.SYS_PlcModuleSetup').attr('json')){var setupjson=$('.SYS_PlcModuleSetup').attr('json');var setuparr=JSON.parse(setupjson);}else{var setuparr={};} $('.SYS_PlcModuleBlock').html('');$('.SYS_PlcModuleBlock').attr('type',modul);switch(modul){case"CloseWindow":$('.SYS_PlcModuleWindow').hide();break;case"routing":var block=$('.SYS_PlcModuleTemp[type="'+modul+'"]').clone();block.attr('class','SYS_PlcModule').show();$('.SYS_PlcModuleBlock').append(block);break;case"gc":var block=$('.SYS_PlcModuleTemp[type="'+modul+'"]').clone();block.attr('class','SYS_PlcModule').show();$('.SYS_PlcModuleBlock').append(block);break;case"smsc":var block=$('.SYS_PlcModuleTemp[type="'+modul+'"]').clone();block.attr('class','SYS_PlcModule').show();$('.SYS_PlcModuleBlock').append(block);break;case"weather":var block=$('.SYS_PlcModuleTemp[type="'+modul+'"]').clone();block.attr('class','SYS_PlcModule').show();$('.SYS_PlcModuleBlock').append(block);var tags=JSON.parse($('.SYS_Tags').attr('json'));break;case"zigbee2mqtt":var block=$('.SYS_PlcModuleTemp[type="'+modul+'"]').clone();block.attr('class','SYS_PlcModule').show();$('.SYS_PlcModuleBlock').append(block);TagChange('/xsysui/module/zigbee2mqtt/start','start');$('.SYS_PlcModuleParamBlock[func="z2m_dev_list"]').show();break;case"1wire":var block=$('.SYS_PlcModuleTemp[type="'+modul+'"]').clone();block.attr('class','SYS_PlcModule').show();$('.SYS_PlcModuleBlock').append(block);var devices=setuparr[modul]['0']['devices'];$('.SYS_PlcModuleParamBlock[func="1wire_dev_list"]').html('');var arr=devices;var pb2=$('
    ТэгИмяЗначение% ошибок
    ');for(var id in arr){pb2.find('table').append('/1wire/'+id+'/temperature');} $('.SYS_PlcModuleParamBlock[func="1wire_dev_list"]').append(pb2);SystemLog(devices);break;case"mplayer":case"mediatrap":case"jethome":var block=$('.SYS_PlcModuleTemp[type="'+modul+'"]').clone();block.attr('class','SYS_PlcModule').show();$('.SYS_PlcModuleBlock').append(block);break;case"yandexalice":var block=$('.SYS_PlcModuleTemp[type="'+modul+'"]').clone();block.attr('class','SYS_PlcModule').show();$('.SYS_PlcModuleBlock').append(block);var services=JSON.parse($('.SYS_alice_services').attr('json'));var characteristics=JSON.parse($('.SYS_alice_characteristics').attr('json'));var tags=JSON.parse($('.SYS_Tags').attr('json'));if(typeof(setuparr[modul])!=='undefined'){if(typeof(setuparr[modul][0]['services'])!=='undefined'){var c=1;for(var i in setuparr[modul][0]['services']){var sname=setuparr[modul][0]['services'][i]['name'];if(typeof(sname)==="undefined"){sname="";} var hks=$('
    '+setuparr[modul][0]['services'][i]['service']+' ('+services[setuparr[modul][0]['services'][i]['service']]['ru']+') - '+sname+'
    X
    ');var table=$("
    ");table.append("характеристикауправлениестатус");var rc=$(' ');for(key in services[setuparr[modul][0]['services'][i]['service']]['RequiredCharacteristics']){var ocname=services[setuparr[modul][0]['services'][i]['service']]['RequiredCharacteristics'][key];var tagr='
    ';var tagw='
    ';rc.append(' '+ocname+' ('+characteristics[ocname]['ru']+')'+tagw+''+tagr+'');} var oc=$(' ');for(key in services[setuparr[modul][0]['services'][i]['service']]['OptionalCharacteristics']){var ocname=services[setuparr[modul][0]['services'][i]['service']]['OptionalCharacteristics'][key];var tagr='
    ';var tagw='
    ';oc.append(' '+ocname+' ('+characteristics[ocname]['ru']+')'+tagw+''+tagr+'');if(ocname.indexOf('mode.')!==-1){oc.append(' режимы работы (замена значений на указанные) ');var modes='
    ';var modearr=characteristics[ocname]['modes'];for(var modekey in modearr){modes=modes+''+modearr[modekey]+'';} modes=modes+'
    ';oc.append(''+modes+'');}} table.append(rc);table.append(oc);hks.find('.SYS_PlcModuleBlock2').append(table);block.find('.SYS_PlcModuleParamBlock[arr="services"]').append(hks);}}} break;case"homekit":var block=$('.SYS_PlcModuleTemp[type="'+modul+'"]').clone();block.attr('class','SYS_PlcModule').show();$('.SYS_PlcModuleBlock').append(block);break;case"knx":var block=$('.SYS_PlcModuleTemp[type="'+modul+'"]').clone();block.attr('class','SYS_PlcModule').show();var knx_types=JSON.parse($('.SYS_knx_types').attr('json'));var xiot_types=JSON.parse($('.SYS_xiot_types').attr('json'));$('.SYS_PlcModuleBlock').append(block);for(var group in KnxDevUpdate){if(typeof(setuparr[modul]['0']['group'])==='undefined'){setuparr[modul]['0']['group']=KnxDevUpdate;} if(typeof(setuparr[modul]['0']['group'][group])==='undefined'){setuparr[modul]['0']['group'][group]=KnxDevUpdate[group];}else{setuparr[modul]['0']['group'][group]['name']=KnxDevUpdate[group]['name'];if(typeof(setuparr[modul]['0']['group'][group]['dev'])==='undefined'){setuparr[modul]['0']['group'][group]['dev']=KnxDevUpdate[group]['dev'];}else{for(var contr in KnxDevUpdate[group]['dev']){if(typeof(setuparr[modul]['0']['group'][group]['dev'][contr])==='undefined'){setuparr[modul]['0']['group'][group]['dev'][contr]={};} var type=KnxDevUpdate[group]['dev'][contr]['type'];setuparr[modul]['0']['group'][group]['dev'][contr]['typeknx']=type;try{setuparr[modul]['0']['group'][group]['dev'][contr]['typexiot']=knx_types[type]['xiottype'];}catch(err){setuparr[modul]['0']['group'][group]['dev'][contr]['typexiot']='string';} setuparr[modul]['0']['group'][group]['dev'][contr]['name']=KnxDevUpdate[group]['dev'][contr]['name'];}}}} var group=setuparr[modul]['0']['group'];SystemLog(group);var seltype="';var selxiot_types="';for(var dev in group){var table=$('
    ');table.append("тегимятип KNXтип XIOT");var hks=$('
    '+group[dev]['name']+'
    X
    ');for(var control in group[dev]['dev']){var checkbox='';table.append('/knx/'+control+''+seltype+''+selxiot_types+'');} hks.find('.SYS_PlcModuleBlock2').append(table);block.find('.SYS_PlcModuleParamBlock[arr="group"]').append(hks);} KnxDevUpdate={};break;case"modbustcpclient":if(setuparr[modul]!==undefined){console.log(setuparr[modul]);var object_length=Object.keys(setuparr[modul]).length;for(var i=0;i
    удалить
    ");block.find('.SYS_PlcModuleParamBlock[arr="read"]').find('table[t="add"]').append(tr);}} if(setuparr[modul][i]['write']){var object_length2=Object.keys(setuparr[modul][i]['write']).length;for(var y=0;y
    удалить
    ");block.find('.SYS_PlcModuleParamBlock[arr="write"]').find('table[t="add"]').append(tr);}} $('.SYS_PlcModuleBlock').append(block);}} break;} var i=0;$('.SYS_PlcModuleBlock').find('.SYS_PlcModule').each(function(){var type=$(this).attr('type');$(this).find('.SYS_PlcModuleVal').each(function(){var paramname=$(this).attr('name');var eltype=$(this).attr('type');var arr=$(this).closest('.SYS_PlcModuleParamBlock').attr('arr');var arr2=$(this).closest('.SYS_PlcModuleParamBlock2').attr('arr');var arr3=$(this).closest('.SYS_PlcModuleParamBlock3').attr('arr');var arr4=$(this).closest('.SYS_PlcModuleParamBlock4').attr('arr');var arr5=$(this).closest('.SYS_PlcModuleParamBlock5').attr('arr');if(typeof(setuparr[type])!=='undefined'){switch(eltype){case'text':case'select':if(arr){if(arr2){if(arr2=='*'){arr2=$(this).closest('.SYS_PlcModuleParamBlock2').index('.SYS_PlcModuleParamBlock2');} if(arr3){if(arr3=='*'){arr3=$(this).closest('.SYS_PlcModuleParamBlock3').index('.SYS_PlcModuleParamBlock3');} if(arr4){if(arr4=='*'){arr4=$(this).closest('.SYS_PlcModuleParamBlock4').index('.SYS_PlcModuleParamBlock4');} if(arr5){if(arr5=='*'){arr5=$(this).closest('.SYS_PlcModuleParamBlock5').index('.SYS_PlcModuleParamBlock5');} $(this).val(setuparr[type][i][arr][arr2][arr3][arr4][arr5][paramname]);}else{try{$(this).val(setuparr[type][i][arr][arr2][arr3][arr4][paramname]);}catch(err){console.log(err);}}}else{try{$(this).val(setuparr[type][i][arr][arr2][arr3][paramname]);}catch(err){console.log(err);}}}else{try{$(this).val(setuparr[type][i][arr][arr2][paramname]);}catch(err){console.log(err);}}}else{try{$(this).val(setuparr[type][i][arr][paramname]);}catch(err){console.log(err);}}}else{$(this).val(setuparr[type][i][paramname]);if(paramname=="code"){var code=false;if(typeof(setuparr[type][i][paramname])==="undefined"){code=true;}else{if(setuparr[type][i][paramname]==""){code=true;}} if(code){code=Math.floor(Math.random()*(999999-111111+1))+111111;$(this).val(code);}}} break;case'checkbox':var chek=false;if(arr){if(arr2){if(arr2=='*'){arr2=$(this).closest('.SYS_PlcModuleParamBlock2').index('.SYS_PlcModuleParamBlock2');} if(arr3){if(arr3=='*'){arr3=$(this).closest('.SYS_PlcModuleParamBlock3').index('.SYS_PlcModuleParamBlock3');} if(arr4){if(arr4=='*'){arr4=$(this).closest('.SYS_PlcModuleParamBlock4').index('.SYS_PlcModuleParamBlock4');} if(arr5){if(arr5=='*'){arr5=$(this).closest('.SYS_PlcModuleParamBlock5').index('.SYS_PlcModuleParamBlock5');} if(setuparr[type][i][arr][arr2][arr3][arr4][arr5][paramname]=='1'){chek=true;}}else{if(setuparr[type][i][arr][arr2][arr3][arr4][paramname]=='1'){chek=true;}}}else{if(setuparr[type][i][arr][arr2][arr3][paramname]=='1'){chek=true;}}}else{if(setuparr[type][i][arr][arr2][paramname]=='1'){chek=true;}}}else{if(setuparr[type][i][arr][paramname]=='1'){chek=true;}}}else{if(typeof(setuparr[type][i])!=='undefined'){if(setuparr[type][i][paramname]=='1'){chek=true;}}} $(this).prop("checked",chek);break;}}});i++;});break;} break;case"SYS_MQTTBROKER":switch(func){case"change":if($('.SYS_MQTTBROKER').val()=='custom'){$('.SYS_MQTTPARAM').css('display','block');}else{$('.SYS_MQTTPARAM').css('display','none');} break;} break;case"SYS_MqttBlockMenuEl":switch(func){case"click":var func=el.attr('func');$('.SYS_MqttBlockMenuEl').removeAttr('select');el.attr('select','1');switch(func){case"user":$('.SYS_UserBlock').show();$('.SYS_MqttConBlock').hide();var user=localStorage.getItem('user');$('.SYS_UserBlockEl[func="name"]').html(user);var owner=localStorage.getItem('owner');$('.SYS_UserBlockEl[func="owner"]').html(owner);if(user===owner){$('.SYS_UserBlockEl[func="setowner"]').show();} break;case"mqtt":$('.SYS_UserBlock').hide();$('.SYS_MqttConBlock').show();break;} break;} break;case"SYS_DisplaySelectRotate":switch(func){case"click":var DisplaySelect=localStorage.getItem('DisplaySelect');if(DisplaySelect.indexOf('portrait')!==-1){DisplaySelect=DisplaySelect.replace('portrait','landscape');}else{DisplaySelect=DisplaySelect.replace('landscape','portrait');} DisplaySelectFunc(DisplaySelect);ReloadParamPrint('style');break;} break;case"SYS_DevicesMenuBut":var type=el.attr('type');switch(func){case"click":switch(type){case"CloseWindow":DeviceConfig('close',el);break;} break;} break;case"SYS_DevicesFloorMenuBut":case"SYS_DevicesRoomMenuBut":case"SYS_DevicesDevMenuBut":case"SYS_DevicesLogicMenuBut":case"SYS_DevicesSetupAddLogic":var type=el.attr('type');switch(func){case"click":DeviceConfig(type,el);break;} break;case"SYS_DevicesFloorIcon":case"SYS_DevicesFloorName":switch(func){case"click":DeviceConfig('openfloors',el);break;} break;case"SYS_DevicesRoomIcon":case"SYS_DevicesRoomName":switch(func){case"click":DeviceConfig('openrooms',el);break;} break;case"SYS_DevicesSetupVal":var eltype=el.attr('el');var elfunc=el.attr('func');var tagtype=el.attr('tagtype');var devtype=el.attr('devtype');switch(func){case"click":switch(eltype){case'inputblock':switch(devtype){case'all':LinkDevSelectVal=el;$('.SYS_LinkDevSelectBlock').attr('func','logic');LinkDevSelectBlockShow();break;} break;case'input':switch(tagtype){case"all":TagSelectVal=el;TagSelectBlockShow();break;} break;} break;case"change":case"keyup":switch(eltype){case'input':case'select':case'checkbox':case'inputblock':DeviceConfig('setupval',el);break;} break;} break;case"SYS_TopMenuEl":switch(func){case"click":var PageFunc=el.attr('func');switch(PageFunc){case"versionsel":$('.SYS_VersionsBlock').toggle();$('.SYS_SaveTimeSelectBlock').hide();break;case"colorscheme":window.open('https://colorscheme.ru/','_blank');break;case"setup":$('.SYS_MqttBlock').toggle();if($('.SYS_MqttBlock').css('display')=='none'){el.css('fill','white');}else{el.css('fill','orange');} var project=localStorage.getItem('project');var jwt=localStorage.getItem('jwt');$.post("system/ajax.php",{data:JSON.stringify({"jwt":jwt,"func":"mqttconfigget2","plc":"plc1","project":project})},function(mess){SystemLog(mess);if(typeof(mess['mqttbroker'])!=="undefined"){$('.SYS_MQTTBROKER').val(mess['mqttbroker']);if(mess['mqttbroker']=='custom'){$('.SYS_MQTTPARAM').css('display','block');}} if(typeof(mess['plc1'])!=="undefined"){if(mess['plc1']['jwt']!==undefined){var sn=mess['plc1']['sn'];var time=mess['plc1']['time'];if(sn===null){sn='0';} var txt='Контроллер привязан '+time+', серийный номер - '+sn;$('.SYS_PlcUpdateBlock[name="sn"]').html(txt).css('color','white');;$('.SYS_PlcBlockEl[func="DeletePlc1"]').attr('sn',sn).show();}else{var txt='Контроллер не привязан к проету';$('.SYS_PlcUpdateBlock[name="sn"]').html(txt).css('color','orange');} if(typeof(mess['plc1']['mqtt'])!=="undefined"){$('.SYS_PMQTTADDR').val(mess['plc1']['mqtt']['addr']);$('.SYS_PMQTTPORT').val(mess['plc1']['mqtt']['port']);$('.SYS_PMQTTUSER').val(mess['plc1']['mqtt']['user']);$('.SYS_PMQTTPASS').val(mess['plc1']['mqtt']['pass']);$('.SYS_PMQTTPIN').val(mess['plc1']['mqtt']['pin']);$('.SYS_PMQTTPOUT').val(mess['plc1']['mqtt']['pout']);if(mess['plc1']['mqtt']['ssl']=='true'){$('.SYS_PMQTTSSL').attr('checked','checked');}else{$('.SYS_PMQTTSSL').removeAttr('checked');}}} if(typeof(mess['ui'])!=="undefined"){if(typeof(mess['ui']['mqtt'])!=="undefined"){$('.SYS_MQTTADDR').val(mess['ui']['mqtt']['addr']);$('.SYS_MQTTPORT').val(mess['ui']['mqtt']['port']);$('.SYS_MQTTUSER').val(mess['ui']['mqtt']['user']);$('.SYS_MQTTPASS').val(mess['ui']['mqtt']['pass']);$('.SYS_MQTTPIN').val(mess['ui']['mqtt']['pin']);$('.SYS_MQTTPOUT').val(mess['ui']['mqtt']['pout']);if(mess['ui']['mqtt']['ssl']=='true'){$('.SYS_MQTTSSL').attr('checked','checked');}else{$('.SYS_MQTTSSL').removeAttr('checked');}}}},"json");if($('.SYS_MQTT').attr('localip')!=="undefined"){var ip=$('.SYS_MQTT').attr('localip');$('.SYS_PLCLOCALIP').val(ip);} break;case"module":$('.SYS_PlcModuleWindow').show();if($('.SYS_Main').find('.SYS_PlcModuleSetup').length==0){$('.SYS_Main').append('
    ');} if($('.SYS_Main').find('.SYS_Tags').length==0){$('.SYS_Main').append('
    ');} break;case"devices":DeviceConfig('start',$('.SYS_none'));break;case"sendconfigplc":var result=confirm('Загрузить конфигурацию на контроллер?');if(!result){return;} $('.SYS_FxUpdateBlock').show();LogicFuncSend={};LogicFuncSend['el']={};LogicFuncSend['module']={};LogicFuncSend['devices']={};LogicFuncSend['uisub']={};LogicFuncSend['tagsub']={};$('div').each(function(){if($(this).attr('UiFunc')){var UiFuncJson=$(this).attr('UiFunc');var UiFuncArr=JSON.parse(UiFuncJson);for(var key in UiFuncArr['el']){delete UiFuncArr['el'][key]['x'];delete UiFuncArr['el'][key]['y'];for(var keyval in UiFuncArr['el'][key]){try{var val=UiFuncArr['el'][key][keyval] if(val.indexOf('ta:')!==-1){var TagsJson=$(this).attr('tags');var TagsJsonArr=JSON.parse(TagsJson);var tagval=TagsJsonArr['tags'][val.replace('ta:','')];if(tagval!==undefined){UiFuncArr['el'][key][keyval]='ta:'+tagval;if(tagval.indexOf(';')!==-1){tagarr=tagval.split(';');for(var tag in tagarr){LogicFuncSend['tagsub'][tag]={};}}else{LogicFuncSend['tagsub'][tagval]={};}}} if(val.indexOf('da:')!==-1){var LinkDevJson=$(this).attr('linkdev');var LinkDevArr=JSON.parse(LinkDevJson);var val=LinkDevArr[val.replace('da:','')];if(val!==undefined){UiFuncArr['el'][key][keyval]='da:'+val;}}}catch(err){SystemLog(err);}} SystemLog('!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!') SystemLog(LogicFuncSend);} LogicFuncSend['el'][$(this).attr('id')]=UiFuncArr;}});if($('.SYS_PlcModuleSetup').length>0){var modjson=$('.SYS_PlcModuleSetup').attr('json');LogicFuncSend['module']=JSON.parse(modjson);} if($('.SYS_Tags').length>0){var tagjson=$('.SYS_Tags').attr('json');LogicFuncSend['tags']=JSON.parse(tagjson);} LogicFuncSend['devices']=DevicesConf;var Json=JSON.stringify(LogicFuncSend);if(!$('.SYS_LogicFuncSend').length){$('.SYS_Main').append($('
    '));} $('.SYS_LogicFuncSend').attr('json',Json);SendFxLogic(Json);break;case"Prev":if(EditHistory.length>0&&EditHistoryIndex>0){func=elem=EditHistory[EditHistoryIndex-1]['func'];switch(func){case'delete':parent=EditHistory[EditHistoryIndex-1]['parent'];elem=EditHistory[EditHistoryIndex-1]['elem'];$('#'+parent).append(elem);EditHistoryIndex=EditHistoryIndex-1;break;case'style':id=EditHistory[EditHistoryIndex-1]['id'];param=EditHistory[EditHistoryIndex-1]['param'];xcss(id,'all',param);EditHistoryIndex=EditHistoryIndex-1;ParamPrint($('#'+id),func);break;case'html':id=EditHistory[EditHistoryIndex-1]['id'];param=EditHistory[EditHistoryIndex-1]['param'];$('#'+id).html(param);EditHistoryIndex=EditHistoryIndex-1;ParamPrint($('#'+id),func);break;case'attr':id=EditHistory[EditHistoryIndex-1]['id'];param=EditHistory[EditHistoryIndex-1]['param'];attr=EditHistory[EditHistoryIndex-1]['attr'];$('#'+id).attr(attr,param);EditHistoryIndex=EditHistoryIndex-1;ParamPrint($('#'+id),attr);break;} if(EditHistoryIndex==0){$('.SYS_TopMenuEl[func="Prev"]').attr('disable','1');} $('.SYS_TopMenuEl[func="Next"]').attr('disable','0');} break;case"Next":if(EditHistory.length>EditHistoryIndex){EditHistoryIndex=EditHistoryIndex+1;func=EditHistory[EditHistoryIndex-1]['func'];switch(func){case'delete':elem=EditHistory[EditHistoryIndex-1]['elem'];elem.remove();break;case'style':id=EditHistory[EditHistoryIndex-1]['id'];param2=EditHistory[EditHistoryIndex-1]['param2'];xcss(id,'all',param2);ParamPrint($('#'+id),func);break;case'html':id=EditHistory[EditHistoryIndex-1]['id'];param2=EditHistory[EditHistoryIndex-1]['param2'];$('#'+id).html(param2);ParamPrint($('#'+id),func);break;case'attr':id=EditHistory[EditHistoryIndex-1]['id'];param2=EditHistory[EditHistoryIndex-1]['param2'];attr=EditHistory[EditHistoryIndex-1]['attr'];$('#'+id).attr(attr,param2);ParamPrint($('#'+id),attr);break;} if(EditHistory.length==EditHistoryIndex){$('.SYS_TopMenuEl[func="Next"]').attr('disable','1');} $('.SYS_TopMenuEl[func="Prev"]').attr('disable','0');} break;case"SaveHistory":$('.SYS_SaveTimeSelectBlock').toggle();$('.SYS_VersionsBlock').hide();break;case"Save":$('.SYS_Save').show();$('div').removeAttr('opacity');$('div').removeAttr('touchx');$('div').removeAttr('touchy');$('div').removeAttr('ttop');$('div').removeAttr('sys_edit');$('div').removeAttr('sys_select');$('div').removeAttr('data-left');$('div').removeAttr('data-id');$('div').removeAttr('langsel');$('.SYS_EditFonClone').remove();$('div').removeAttr('click-time');$('div').removeAttr('stylesel');$('div[name=S_СТРАНИЦА_НАСТРОЙКИ]').remove();$('div[add=script]').remove();$('.SYS_EditorBlockParam').hide();$('body').append($('.SYS_EditorBlockParam'));$('.SYS_BlockSetting').remove();$('div[name=SYS_Message_Mess]').remove();$('div[name=SYS_Log]').html('');var save=$('.SYS_Main').html();var JsonProject=JSON.stringify(save);var ModuleJson='{}';if(typeof($('.SYS_PlcModuleSetup').attr('json'))!=="undefined"){ModuleJson=$('.SYS_PlcModuleSetup').attr('json');} var DevicesJson=JSON.stringify(DevicesConfList);var project=localStorage.getItem('project');var jwt=localStorage.getItem('jwt');var arr={"jwt":jwt,"func":"saveproject","project":project};$.post("system/ajax.php",{data:JSON.stringify(arr),jsonproject:JsonProject,modulejson:ModuleJson,devicejson:DevicesJson},function(mess){$('.SYS_Save').hide();if(mess['error']=='no'){localStorage.setItem('savetime',mess['savetime']);localStorage.setItem('savetimesel'+project,mess['savetime']);WindowsReload(false);}else{alert(mess['error']);} SystemLog(mess);},"json");break;case"User":$('.SYS_UserMenu').toggle();break;} break;} break;case"SYS_UserBlockEl":switch(func){case"click":PageFunc=el.attr('func');switch(PageFunc){case"Logout":LogOut();break;case"setowner":if($('.SYS_UserBlockEl[func="owner"]').find('input').length===0){var result=confirm('Указать владельца? Т.к. вы создали проект, при создании были назначены и разработчиком и владельцем. Если вы инсталлятор, укажите владельца. Владельца можно указать только один раз, будьте внимательны при вводе email. У владельца есть права на получение push уведомлений, назначение времени доступа разработчика к проекту и др., подробнее в документации.');if(!result){return;} $('.SYS_UserBlockEl[func="owner"]').html('');}else{var mail=$('.SYS_UserBlockEl[func="owner"]').find('input').val();var reg=/^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;if(reg.test(mail)==false){alert('Введите корректный e-mail');return false;} var result=confirm('Назначить владельцем '+mail+'?');if(!result){return;} var jwt=localStorage.getItem('jwt');var project=localStorage.getItem('project');var projectArr=JSON.parse(localStorage.getItem("projectJSON"));var objname=projectArr[project]['name'];var arr={"func":"setowner","mail":mail,"jwt":jwt,"project":project,"objname":objname};$.post("https://xiot.pro/system/ajax.php",{data:JSON.stringify(arr)},function(msg){if(msg['ok']){alert(msg['ok']);$('.SYS_UserBlockEl[func="owner"]').html(msg['mail']);$('.SYS_UserBlockEl[func="setowner"]').hide();}else{alert(msg['error']);$('.SYS_UserBlockEl[func="setowner"]').hide();}},'json');} break;} break;} break;default:ButTouch=false;} if(func!='hover'&&func!='unhover'){el.attr('touch',func);}} function EditSizeSave(xid,param){var elget=$('#'+xid);xcss(xid,param,elget.attr(param));if(elget.attr('class').indexOf('SYS_')===-1){ParamPrint(elget,'style');}} function EditSize(elDag,param,func){var xid=elDag.attr('id');var vp,EMS,unit;if(elDag.attr(param)){vp=elDag.attr(param);}else{vp=xcss(xid,param);elDag.attr(param,vp);} if(vp&&vp.indexOf('%')===-1){EMS=EditorMeshSize;unit="px";}else{EMS=EditorMeshSize2;unit="%";} var val=parseInt(vp);switch(func){case'-':val=val-EMS;var inv=1.0/EMS;val=Math.round(val*inv)/inv;elDag.css(param,val+unit);elDag.attr(param,val+unit);break;case'+':val=val+EMS;var inv=1.0/EMS;val=Math.round(val*inv)/inv;elDag.css(param,val+unit);elDag.attr(param,val+unit);break;} if(EditSizeTimeout[xid+param]){clearTimeout(EditSizeTimeout[xid+param]);} EditSizeTimeout[xid+param]=setTimeout(EditSizeSave,500,xid,param);} $(document).keyup(function(event){for(var key in KeyDownInterval){clearInterval(KeyDownInterval[key]);} KeyDownInterval={};});function EditorShow(){$('body').attr('sys_editor','1');$('body').css('background-color','rgb(200,200,200)');SystemLog("$('.SYS_StructureBlock')");SystemLog($('.SYS_StructureBlock'));$('.SYS_StructureBlock').css('display','block');var editver=localStorage.getItem('editorver');if(editver!=='vxxx'){document.addEventListener('contextmenu',onContextMenu,false);} $('.SYS_ElEditorBlock').css('display','block');$('.SYS_TopMenu').css('display','block');$('.SYS_DisplaySelectBlock').css('display','block');$('.SYS_StructureProjectBlock').css('display','block');$('.SYS_EditorElements').css('display','block');localStorage.setItem('editor','1');try{StructurePopupView();StructurePageView();}catch(err){SystemLog(err);} $('.SYS_Main').find('div[add="dinamic"]').remove();$('.SYS_Main').find('div[add="script"]').remove();} function EditorHide(){$('body').attr('sys_editor','0');$('body').css('background-color','white');$('.SYS_EditorElements').css('display','none');document.removeEventListener('contextmenu',onContextMenu,false);localStorage.setItem('editor','0');$('div').attr('sys_select',"0");$('div').removeAttr('sys_edit');$('div').removeAttr('sys_select');$('.SYS_EditFonClone').remove();EditBlockSelectArr=[];} var KeyDouwCount=0;var KeyDouwBlock=false;var KeyDouwMax=10;$(document).keydown(function(event){if(KeyDouwBlock!==true){KeyDouwCount=KeyDouwCount+1;if(KeyDouwCount>10){KeyDouwBlock=true;} switch(event.keyCode){case 113:EditorOpenFlag=true;if($('.SYS_UiFuncBlock').css('display')==='none'){if($('body').attr('sys_editor')!=='1'){EditorOpenCloseFlag=true;EditorShow();$('.SYS_Main').find('div[type="input"],div[type="select"]').each(function(){if($(this).find('.SYS_InputBlock').length===0){$(this).append('
    ');}});$('.SYS_Main').find('div').css('-webkit-transform','none');}else{EditorOpenCloseFlag=false;EditorHide();$('.SYS_Main').find('div[type="input"],div[type="select"]').each(function(){$(this).find('.SYS_InputBlock').remove();});$('.SYS_Main').find('div').css('-webkit-transform','translate3d(0,0,0)');openpage(CurrentPage,'F2');}} break;case 17:ButCtrl=true;break;case 16:ButShift=true;break;case 67:break;case 86:break;case 38:break;case 40:break;case 37:break;case 39:break;}}}).keyup(function(event){KeyDouwCount=0;KeyDouwBlock=false;switch(event.keyCode){case 16:ButShift=false;break;case 17:ButCtrl=false;break;case 46:break;}});function AddSelBlock(next,val,SYS_SelBlock,attrV,select){var valres=0;if(attrV==undefined){attrV='';} switch(next){case"image":if(attrV){attrV=attrV.replace('!https!','https://');} SYS_SelBlock.append($('
    '));break;case"color":var CP=$('').colorPicker();SYS_SelBlock.append(CP);break;case"select":valres=$('.'+select).clone().removeClass(select).addClass('SYS_Select SYS_SelValSelect').attr('value',attrV).css('display','block');valres.val(attrV);SYS_SelBlock.append(valres);break;case"page":valres=$("");$('.SYS_Main').find('div[type="Popup"]').each(function(){var name=$(this).attr("name");valres.append("");valres.val(attrV);});SYS_SelBlock.append(valres);break;default:valres=$('');SYS_SelBlock.append(valres);} return valres;} function onContextMenu(e){e.preventDefault();} function DisplaySelectFunc(value,styleset=true){localStorage.setItem('DisplaySelect',value);var w=$('.SYS_DisplaySelect').find('option[value="'+value+'"]').attr('w');var h=$('.SYS_DisplaySelect').find('option[value="'+value+'"]').attr('h');var styles=$('.SYS_DisplaySelect').find('option[value="'+value+'"]').attr('styles');$('html').css({'width':w,'height':h});$('.SYS_DisplaySelect').val(value);if(styleset){$('div[style'+styles+'!=undefined]').each(function(){StyleApply($(this),styles,true);});} var page=$('div[type="Page"][select="1"]');if(page.length>0){setTimeout(openpage,100,page,'DisplaySelectFunc');}} window.addEventListener('appinstalled',(evt)=>{app.logEvent('a2hs','installed');});if(window.matchMedia('(display-mode: standalone)').matches){SystemLog('display-mode is standalone');}else{SystemLog('NONE display-mode is standalone');} $('.SYS_DisplaySelect').change(function(){localStorage.setItem('DisplaySelect',$(this).val());DisplaySelectFunc($(this).val());ReloadParamPrint('style');});if(localStorage.getItem('ElEditorShow-function')=='none'){$('.SYS_ElEditor[edit="function"]').hide();$('.SYS_ElEditorName[edit="function"]').find('.SYS_ElEditorOpenStatus').css('transform','rotate(0deg)');} if(localStorage.getItem('ElEditorShow-attr')=='none'){$('.SYS_ElEditor[edit="attr"]').hide();$('.SYS_ElEditorName[edit="attr"]').find('.SYS_ElEditorOpenStatus').css('transform','rotate(0deg)');} if(localStorage.getItem('ElEditorShow-html')=='none'){$('.SYS_ElEditor[edit="html"]').hide();$('.SYS_ElEditorName[edit="html"]').find('.SYS_ElEditorOpenStatus').css('transform','rotate(0deg)');} if(localStorage.getItem('ElEditorShow-style')=='none'){$('.SYS_ElEditor[edit="style"]').hide();$('.SYS_ElEditorName[edit="style"]').find('.SYS_ElEditorOpenStatus').css('transform','rotate(0deg)');} if(localStorage.getItem('ElEditorShow-style3D')=='none'){$('.SYS_ElEditor[edit="style3D"]').hide();$('.SYS_ElEditorName[edit="style3D"]').find('.SYS_ElEditorOpenStatus').css('transform','rotate(0deg)');} if(localStorage.getItem('ElEditorShow-cam3d')=='none'){$('.SYS_ElEditor[edit="cam3d"]').hide();$('.SYS_ElEditorName[edit="cam3d"]').find('.SYS_ElEditorOpenStatus').css('transform','rotate(0deg)');} if(localStorage.getItem('ElEditorShow-project3d')=='none'){$('.SYS_ElEditor[edit="project3d"]').hide();$('.SYS_ElEditorName[edit="project3d"]').find('.SYS_ElEditorOpenStatus').css('transform','rotate(0deg)');} if(localStorage.getItem('ElEditorShow-project')=='none'){$('.SYS_StructureProjectCont').hide();$('.SYS_StructureProjectBlock').find('.SYS_ElEditorButBlock').hide();$('.SYS_StructureProjectName').find('.SYS_ElEditorOpenStatus').css('transform','rotate(0deg)');} if(localStorage.getItem('ElEditorShow-page')=='none'){$('.SYS_ElEditorButBlock[type="fpage"]').hide();$('.SYS_StructurePageBlock').hide();$('.SYS_StructureBlockPageName').find('.SYS_ElEditorOpenStatus').css('transform','rotate(0deg)');} if(localStorage.getItem('ElEditorShow-popup')=='none'){$('.SYS_ElEditorButBlock[type="fpopup"]').hide();$('.SYS_StructurePopupBlock').hide();$('.SYS_StructureBlockPopupName').find('.SYS_ElEditorOpenStatus').css('transform','rotate(0deg)');} if(localStorage.getItem('ElEditorShow-dom')=='none'){$('.SYS_ElEditorButBlock[type="fdom"]').hide();$('.SYS_DomCont').hide();$('.SYS_DomBlockName').find('.SYS_ElEditorOpenStatus').css('transform','rotate(0deg)');} ReloadParamPrint('style');if(localStorage.getItem('editor')=='1'){EditorShow();EditorOpenCloseFlag=true;} $('.SYS_ImageBaseMenuEl[func="load"]').find('input').on('change',function(){var files=this.files;if(typeof files=='undefined')return;var project=localStorage.getItem('project');var data=new FormData();$.each(files,function(key,value){data.append(key,value);});data.append('PROJECT',project);data.append('my_file_upload',1);$.ajax({url:'login/loadimage.php',type:'POST',data:data,cache:false,dataType:'json',processData:false,contentType:false,success:function(respond,status,jqXHR){if(typeof respond.error==='undefined'){var file=respond.files;var img='project/'+project+'/images/'+file;var SYS_ImageBaseEl=$("
    ");$('.SYS_ImageBaseElBlock[dir="текущий проект"]').append(SYS_ImageBaseEl);}else{alert('ОШИБКА: '+respond.error);}},error:function(jqXHR,status,errorThrown){alert('ОШИБКА загрузки на сервер: '+status,jqXHR);}});});var files3D;$('.SYS_Load3dProject').on('change',function(){files3D=this.files;});$('.SYS_Load3dProjectSubmit').on('click',function(event){if(typeof files3D=='undefined')return;var project=localStorage.getItem('project');var data=new FormData();var elid=$('.SYS_ElEditor').attr('xid');var file=document.getElementById('input3d').files[0];data.append('PROJECT',project);data.append('ELID',elid);data.append('file',file);$('.SYS_Load3dProjectProgress').show();$('.SYS_Load3dProjectProgressPersent').html('загружаю...');$.ajax({url:'system/Project3dLoad.php',type:'POST',contentType:false,processData:false,data:data,dataType:'json',xhr:function(){var xhr=$.ajaxSettings.xhr();xhr.upload.addEventListener('progress',function(evt){if(evt.lengthComputable){var percentComplete=Math.ceil(evt.loaded/evt.total*100);$('.SYS_Load3dProjectProgressFon').css('width',percentComplete+'%');$('.SYS_Load3dProjectProgressPersent').html(percentComplete+'%');SystemLog('Загружено '+percentComplete+'%');if(percentComplete==100){$('.SYS_Load3dProjectProgressPersent').html('файл загружен, сохрани проект и обнови страницу');}}},false);return xhr;},success:function(json){if(json){if(json['res']=='ok'){$('#'+elid).attr('prj3d',json['name']);}}}});});function HtmlEditorStart(elem){$('.SYS_ElEditorHtml').find('.SYS_ElEditorParam[type="dinamic"]').remove();var htmlsel=elem.attr('htmlsel');$('.SYS_ElEditorHtmlsel').val(htmlsel);if(typeof(htmlsel)=="undefined"){elem.attr('htmlsel','0');} var type=elem.attr("type");$('.SYS_ElEditorHtml').hide();$('.SYS_ElEditorHtml[sel="'+type+'"]').show();switch(type){case'3D':var xid=elem.attr('id');$('.SYS_ElEditorHtml[sel="'+type+'"]').attr('xid',xid);Cam3DEditorStart(xid);break;case'text':var data='';if(typeof(elem.attr('langsel'))==="undefined"){if(localStorage.getItem('lang')){elem.attr('langsel',localStorage.getItem('lang'));}else{elem.attr('langsel','ru');}} $('.SYS_ElEditorLangsel').val(elem.attr('langsel'));if(typeof(elem.attr('html'+htmlsel+elem.attr('langsel')))!=='undefined'){if(elem.attr('html'+htmlsel+elem.attr('langsel'))!==''){data=elem.attr('html'+htmlsel+elem.attr('langsel'));}} if(data===''){if(typeof(elem.attr('html'+htmlsel))!=='undefined'){if(elem.attr('html'+htmlsel)!==''){var data=elem.attr('html'+htmlsel);}}} if(data===''){if(typeof(elem.attr('html'))!=='undefined'){if(elem.attr('html')!==''){var data=elem.attr('html');elem.attr('html'+htmlsel+elem.attr('langsel'),data);}}} $('.SYS_ElEditorHtml[sel="text"]').find('textarea').val(data);break;case'svg':var data=elem.find('.SYS_HtmlSel[sel="'+htmlsel+'"]').html();$('.SYS_ElEditorBut[func="svg"]').html(data);break;case'select':if(elem.attr('param')!==undefined){var param=JSON.parse(elem.attr('param'));if(param['select_count']!==undefined){var eblock=$('.SYS_ElEditorHtml');var options="";for(var i=1;i<=param['select_count'];i++){var pblock=$('
    ');var key='';var val='';if(param['key'+i]!==undefined){key=param['key'+i];} if(param['val'+i]!==undefined){val=param['val'+i];} var pname=$('
    ключ '+i+'
    ');var pval=$('');var pname2=$('
    значение '+i+'
    ');var pval2=$('');pblock.append(pname);pblock.append(pval);pblock.append(pname2);pblock.append(pval2);eblock.append(pblock);options=options+'';} elem.find('select').html(options);}} break;case'HistoryTable':var listcid=History_constructor.getlistcid();var sel=$('.SYS_ElEditorHtml[sel="'+type+'"]').find('select[func="HistoryCid"]');sel.html('');for(var key in listcid){sel.append('');} break;} $('.SYS_ElEditorHtml[sel="'+type+'"]').find('.SYS_ElEditorParamVal').each(function(){$(this).val(0);});if(elem.attr('param')!==undefined){var param=JSON.parse(elem.attr('param'));$('.SYS_ElEditorHtml[sel="'+type+'"]').find('.SYS_ElEditorParamVal').each(function(){var func=$(this).attr('func');if(param[func]!==undefined){switch($(this).attr('type')){case'checkbox':if(param[func]==='1'){$(this).attr('checked','checked');}else{$(this).removeAttr('checked');} break;default:$(this).val(param[func]);}}});}} function HtmlEditorSave(sel,val){switch(sel){case'text':var htmlsel=ElementSelect.attr('htmlsel');var langsel='ru';if(typeof(ElementSelect.attr('langsel'))!=="undefined"){var langsel=ElementSelect.attr('langsel');} ElementSelect.attr('html'+htmlsel+langsel,val);ElementSelect.html(val);break;}} function FuncEditorStart(xid,funcel){var UiFuncJson=$('#'+xid).attr('UiFunc');if(UiFuncJson){var UiFuncArr=JSON.parse(UiFuncJson);var size=Object.keys(UiFuncArr['el']).length;var text="элементов - "+size;$('.SYS_ElEditorName[edit="'+funcel+'"]').css('color','#C9FFBD');$('.SYS_ElEditorFxUiBlock').attr('xid',xid).html(text);}else{$('.SYS_ElEditorName[edit="'+funcel+'"]').css('color','white');$('.SYS_ElEditorFxUiBlock').attr('xid',xid).html('нет логики');}} function FxLogicEditorStart(xid,funcel){var UiFuncJson=$('#'+xid).attr('logicfunc');if(UiFuncJson){var UiFuncArr=JSON.parse(UiFuncJson);var size=Object.keys(UiFuncArr['el']).length;var text="элементов - "+size;$('.SYS_ElEditorName[edit="'+funcel+'"]').css('color','#C9FFBD');$('.SYS_ElEditorFxLogicBlock').attr('xid',xid).html(text);if($('#'+xid).attr('FxLogicDisable')=='1'){$('.SYS_ElEditorBut[func="disablefxlogic"]').css('fill','red');}else{$('.SYS_ElEditorBut[func="disablefxlogic"]').css('fill','');}}else{$('.SYS_ElEditorName[edit="'+funcel+'"]').css('color','white');$('.SYS_ElEditorFxLogicBlock').attr('xid',xid).html('нет логики');$('.SYS_ElEditorBut[func="disablefxlogic"]').css('fill','');}} function NameEditorStart(xid,funcel){var data=$('#'+xid).attr(funcel);if(data){$('.SYS_ElEditor[edit="'+funcel+'"]').attr('xid',xid).find('textarea').val(data);}else{$('.SYS_ElEditor[edit="'+funcel+'"]').attr('xid',xid).find('textarea').val('');}} function NameEditorSave(xid,funcel){var data=$('.SYS_ElEditor[edit="'+funcel+'"]').find('textarea').val();var param=$('#'+xid).attr(funcel);$('#'+xid).attr(funcel,data);HistoryEditorFunc($('#'+xid),'attr',param,data,funcel);} function AttrEditorStart(xid,funcel){$('.SYS_ElEditorName[edit="'+funcel+'"]').css('display','block');$('.SYS_ElEditor[edit="'+funcel+'"]').attr('xid',xid);$('.SYS_EditorBlock[edit="'+funcel+'"]').remove();$('.SYS_ElEditor[edit="'+funcel+'"]').append('
    ');var ArrJson=$('#'+xid).attr('Attr');if(ArrJson){var ArrAttr=JSON.parse(ArrJson);var EditorBlockAttr=$('.SYS_EditorBlock[edit="'+funcel+'"]');EditorBlockAttr.html('');for(var attr in ArrAttr['attr']){if(attr.indexOf('__')){var attrBlock=$('
    X
    ');}else{var attrBlock=$('
    ');} EditorBlockAttr.append(attrBlock);}}} function AttrEditorSave(xid,AttrArrJson){$('#'+xid).attr('Attr',AttrArrJson);AttrEditorStart(xid,'attr')} function AttrEditorAdd(xid){var ArrJson=$('#'+xid).attr('Attr');if(ArrJson){var ArrAttr=JSON.parse(ArrJson);var l=Object.keys(ArrAttr['attr']).length;ArrAttr['attr']['атрибут'+l]='значение';}else{var ArrAttr={'attr':{'атрибут':'значение'}}} var AttrArrJson=JSON.stringify(ArrAttr);AttrEditorSave(xid,AttrArrJson);} function TagsEditorStart(xid,funcel){$('.SYS_ElEditorName[edit="'+funcel+'"]').css('display','block');$('.SYS_ElEditor[edit="'+funcel+'"]').attr('xid',xid);$('.SYS_EditorBlock[edit="'+funcel+'"]').remove();$('.SYS_ElEditor[edit="'+funcel+'"]').append('
    ');var TagsJson=$('#'+xid).attr('tags');if(TagsJson){var ArrTags=JSON.parse(TagsJson);var EditorBlockTags=$('.SYS_EditorBlock[edit="'+funcel+'"]');EditorBlockTags.html('');for(var tag in ArrTags['tags']){var tagBlock=$('
    X
    ');EditorBlockTags.append(tagBlock);}}} function TagsEditorSave(xid,tarrJson){$('#'+xid).attr('tags',tarrJson);TagsEditorStart(xid,'tags')} function TagsEditorAdd(xid){var TagsJson=$('#'+xid).attr('tags');if(TagsJson){var ArrTags=JSON.parse(TagsJson);var l=Object.keys(ArrTags['tags']).length;ArrTags['tags']['тэг'+l]='';}else{var ArrTags={'tags':{'тэг':''}}} var TagsArrJson=JSON.stringify(ArrTags);TagsEditorSave(xid,TagsArrJson);} function LinkDevEditorStart(xid,funcel){$('.SYS_ElEditorName[edit="'+funcel+'"]').css('display','block');$('.SYS_ElEditor[edit="'+funcel+'"]').attr('xid',xid);$('.SYS_EditorBlock[edit="'+funcel+'"]').remove();$('.SYS_ElEditor[edit="'+funcel+'"]').append('
    ');var LinkDevJson=$('#'+xid).attr('linkdev');if(LinkDevJson){var ArrLinkDev=JSON.parse(LinkDevJson);var EditorBlockLinkDev=$('.SYS_EditorBlock[edit="'+funcel+'"]');EditorBlockLinkDev.html('');for(var namelink in ArrLinkDev){var textlinkdev='';if(ArrLinkDev[namelink].indexOf('/')!==-1){try{var DevArr=ArrLinkDev[namelink].split('/');var type=DevArr[0];switch(type){case'home':textlinkdev=DevicesConf['home']['name']+'-'+DevArr[2];break;case'floor':var floorid=DevArr[1];textlinkdev=FloorsConfList[floorid]['name']+'-'+DevArr[2];break;case'room':var roomid=DevArr[1];textlinkdev=RoomsConfList[roomid]['floorname']+'-'+RoomsConfList[roomid]['name']+'-'+DevArr[2];break;case'dev':var devid=DevArr[1];textlinkdev=DevicesConfList[devid]['floorname']+'-'+DevicesConfList[devid]['roomname']+'-'+DevicesConfList[devid]['name']+'-'+DevArr[2];break;case'logic':var lid=DevArr[1];var type=DevicesConf['logic'][lid]['type'];var param=XiotLogic[type]['Param'][DevArr[2]]['name'];textlinkdev=DevicesConf['logic'][lid]['Name']+'-'+param;break;}}catch(err){SystemLog(err);}} var LinkDevBlock=$('
    X
    ');EditorBlockLinkDev.append(LinkDevBlock);}}} function LinkDevEditorSave(xid,LinkDevArrJson){$('#'+xid).attr('linkdev',LinkDevArrJson);LinkDevEditorStart(xid,'linkdev')} function LinkDevEditorAdd(xid){var LinkDevJson=$('#'+xid).attr('linkdev');if(LinkDevJson){var ArrLinkDev=JSON.parse(LinkDevJson);var l=Object.keys(ArrLinkDev).length;if(typeof(ArrLinkDev['[характеристика] '+l])==="undefined"){ArrLinkDev['[характеристика] '+l]='';}else{ArrLinkDev['[характеристика] '+(l+1)]='';}}else{var ArrLinkDev={'характеристика':''}} var LinkDevJson=JSON.stringify(ArrLinkDev);SystemLog(LinkDevJson);LinkDevEditorSave(xid,LinkDevJson);} function Cam3DEditorStart(xid){var ArrJson=$('#'+xid).attr('cam3d');if(ArrJson){var ArrCam3D=JSON.parse(ArrJson);var ElEditor3DCamSetup=$('.SYS_ElEditor3DCamSetup');ElEditor3DCamSetup.html('');for(var cam in ArrCam3D['cams']){var name=ArrCam3D['cams'][cam]['name'];var attrBlock=$('.SYS_EditorBlock3dcamTemp').clone();attrBlock.removeClass('SYS_EditorBlock3dcamTemp').addClass('SYS_EditorBlock3dcam').css('display','block');attrBlock.find('input').val(name);attrBlock.attr('cam',cam);ElEditor3DCamSetup.append(attrBlock);}}} function Project3DEditorStart(xid,funcel){$('.SYS_ElEditorName[edit="'+funcel+'"]').css('display','block');$('.SYS_ElEditor[edit="'+funcel+'"]').attr('xid',xid);} function Cam3DEditorSave(xid,Cam3DArrJson){$('#'+xid).attr('cam3d',Cam3DArrJson);Cam3DEditorStart(xid,'cam3d');} function Cam3dEditorAdd(xid){var ArrJson=$('#'+xid).attr('cam3d');if(ArrJson){var ArrCam3D=JSON.parse(ArrJson);var index=ArrCam3D['index']+1;ArrCam3D['index']=index;ArrCam3D['cams']['cam'+index]={'name':'новая камера','position':{'CameraPosX':camera3D.position.x,'CameraPosY':camera3D.position.y,'CameraPosZ':camera3D.position.z,'ControlTargetX':controls3D.target.x,'ControlTargetY':controls3D.target.y,'ControlTargetZ':controls3D.target.z}}}else{var ArrCam3D={'index':1,'cams':{'cam1':{'name':'камера1','position':{'CameraPosX':camera3D.position.x,'CameraPosY':camera3D.position.y,'CameraPosZ':camera3D.position.z,'ControlTargetX':controls3D.target.x,'ControlTargetY':controls3D.target.y,'ControlTargetZ':controls3D.target.z}}}}} var ArrCam3DJson=JSON.stringify(ArrCam3D);Cam3DEditorSave(xid,ArrCam3DJson);} function ElEditorStart(xid,funcel,el){var data='';$('.SYS_ElEditorName[edit="'+funcel+'"]').css('display','block');$('.SYS_EditorBlock[edit="'+funcel+'"]').html('');switch(funcel){case'style':var stylesel=$('.SYS_ElEditorStylesel').val();var stylesel=el.attr('stylesel');$('.SYS_ElEditorStylesel').val(stylesel);if(typeof(stylesel)==="undefined"){stylesel='all';el.attr('stylesel',stylesel);} var data=el.attr('style'+stylesel);break;default:if(funcel){var data=$('#'+xid).attr(funcel);}} $('.SYS_ElEditor[edit="'+funcel+'"]').attr('xid',xid);if(data){$('.SYS_EditorBlock[edit="'+funcel+'"]').remove();$('.SYS_ElEditor[edit="'+funcel+'"]').append('
    ');$('.SYS_ElEditorName[edit="'+funcel+'"]').css('color','#C9FFBD');var arrcss=data.split(';');for(var i=0;i'));SYS_SelBlock.append($('
    '));$('.SYS_EditorBlock[edit="'+funcel+'"]').append(SYS_SelBlock);}}else{$('.SYS_ElEditorName[edit="'+funcel+'"]').css('color','white');}} function ElEditorSave(xid,funcel){var func='';$('.SYS_ElEditor[edit="'+funcel+'"').find('.SYS_EditorBlock').find('.SYS_SelBlock').each(function(){var str='';$(this).find('.SYS_Select').each(function(){var val=$(this).val();str=str+val+':';});str=str.substring(0,str.length-1);func=func+str+';';});switch(funcel){case'style':var el=$('#'+xid);var stylesel=el.attr('stylesel');var SelBlock=$('.SYS_EditorBlock[edit="style"]').find('.SYS_SelBlock');var newcss='';SelBlock.each(function(index){var param=$(this).find('.SYS_Select:first').val();var val=$(this).find('.SYS_Select').eq(1).val();newcss=newcss+param+":"+val+";";});el.attr('style'+stylesel,newcss);StyleApply(el,stylesel,true);break;}} var _global=typeof window==='object'&&window.window===window?window:typeof self==='object'&&self.self===self?self:typeof global==='object'&&global.global===global?global:this function bom(blob,opts){if(typeof opts==='undefined')opts={autoBom:false} else if(typeof opts!=='object'){console.warn('Depricated: Expected third argument to be a object') opts={autoBom:!opts}} if(opts.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(blob.type)){return new Blob([String.fromCharCode(0xFEFF),blob],{type:blob.type})} return blob} function download(url,name,opts){var xhr=new XMLHttpRequest() xhr.open('GET',url) xhr.responseType='blob' xhr.onload=function(){saveAs(xhr.response,name,opts)} xhr.onerror=function(){console.error('could not download file')} xhr.send()} function corsEnabled(url){var xhr=new XMLHttpRequest() xhr.open('HEAD',url,false) xhr.send() return xhr.status>=200&&xhr.status<=299} function clickel(node){try{node.dispatchEvent(new MouseEvent('click'))}catch(e){var evt=document.createEvent('MouseEvents') evt.initMouseEvent('click',true,true,window,0,0,0,80,20,false,false,false,false,0,null) node.dispatchEvent(evt)}} var saveAs=_global.saveAs||(typeof window!=='object'||window!==_global)?function saveAs(){}:'download'in HTMLAnchorElement.prototype?function saveAs(blob,name,opts){var URL=_global.URL||_global.webkitURL var a=document.createElement('a') name=name||blob.name||'download' a.download=name a.rel='noopener' if(typeof blob==='string'){a.href=blob if(a.origin!==location.origin){corsEnabled(a.href)?download(blob,name,opts):clickel(a,a.target='_blank')}else{clickel(a)}}else{a.href=URL.createObjectURL(blob) setTimeout(function(){URL.revokeObjectURL(a.href)},4E4) setTimeout(function(){clickel(a)},0)}}:'msSaveOrOpenBlob'in navigator?function saveAs(blob,name,opts){name=name||blob.name||'download' if(typeof blob==='string'){if(corsEnabled(blob)){download(blob,name,opts)}else{var a=document.createElement('a') a.href=blob a.target='_blank' setTimeout(function(){clickel(a)})}}else{navigator.msSaveOrOpenBlob(bom(blob,opts),name)}}:function saveAs(blob,name,opts,popup){popup=popup||open('','_blank') if(popup){popup.document.title=popup.document.body.innerText='downloading...'} if(typeof blob==='string')return download(blob,name,opts) var force=blob.type==='application/octet-stream' var isSafari=/constructor/i.test(_global.HTMLElement)||_global.safari var isChromeIOS=/CriOS\/[\d]+/.test(navigator.userAgent) if((isChromeIOS||(force&&isSafari))&&typeof FileReader==='object'){var reader=new FileReader() reader.onloadend=function(){var url=reader.result url=isChromeIOS?url:url.replace(/^data:[^;]*;/,'data:attachment/file;') if(popup)popup.location.href=url else location=url popup=null} reader.readAsDataURL(blob)}else{var URL=_global.URL||_global.webkitURL var url=URL.createObjectURL(blob) if(popup)popup.location=url else location.href=url popup=null setTimeout(function(){URL.revokeObjectURL(url)},4E4)}} _global.saveAs=saveAs.saveAs=saveAs if(typeof module!=='undefined'){module.exports=saveAs;} $(document).ready(function(){try{Message_constructor=new MessageSetupClass();}catch(err){alert('Ошибка Message_constructor - '+err);} try{History_constructor=new HistorySetupClass();}catch(err){alert('Ошибка History_constructor - '+err);} if(localStorage.getItem("UiId")==undefined||localStorage.getItem("UiId")==null||localStorage.getItem("UiId")==""){UiId=newid(10);localStorage.setItem('UiId',UiId);}else{UiId=localStorage.getItem("UiId");} RgbCanvasCreate();if(EditorOpenFlag===true){$(window).on("beforeunload",function(){return"Вы уверены, что хотите покинуть страницу?";});$(document).on("submit","form",function(event){$(window).off("beforeunload");});if($('.SYS_PageSystem').length>0){$('.SYS_PageSystem').remove();}} var projectArr=JSON.parse(localStorage.getItem("projectJSON"));var project="";for(var prj in projectArr){if(localStorage.getItem("project")==undefined||localStorage.getItem("project")==null||localStorage.getItem("project")==""){localStorage.setItem('project',prj);project=prj;}else{project=localStorage.getItem("project");if(projectArr[project]==undefined||projectArr[project]==null||projectArr[project]==""){localStorage.setItem('project',prj);project=prj;}} var select='0';if(prj==project){select='1';$('.SYS_StructureProjectName').find('span').html('Проект - '+projectArr[prj]['name']);}else{$('.SYS_PageSystemPrjList').append('
    '+projectArr[prj]['name']+'
    ');} $('.SYS_StructureProjectCont').append('
    '+projectArr[prj]['name']+'
    ');} var page=$('.SYS_Main').find('div[type="Page"][select="1"]');CurrentPage=page;PreviorPage=CurrentPage;TagSelectCreate();if(localStorage.getItem('editor')=='1'){StructPrint(page,$('
    '));$('input').attr('autocomplete','off');$('.SYS_Main').find('div[type="input"],div[type="select"]').each(function(){if($(this).find('.SYS_InputBlock').length===0){$(this).append('
    ');}});}else{$('.SYS_Main').find('div[type="input"],div[type="select"]').each(function(){$(this).find('.SYS_InputBlock').remove();});} if($('style#CSS_portrait').length>0){var css=$('style#CSS_portrait').html();var arr1=css.split('*//*');for(var key in arr1){var arr2=arr1[key].split('*/#');var arr3=arr2[1].split('{');var arr4=arr3[1].split('}/*');var id=arr3[0];var cssel=arr4[0];SystemLog(id);SystemLog(cssel);$('#'+id).attr('styleall',cssel);$('#'+id).attr('stylesel','all');$('#'+id).attr('style',cssel);} $('style#CSS_portrait').remove();} $('.SYS_Main').find('div').each(function(){if($(this).attr('class')===undefined){$(this).attr('class','noclass');} if($(this).attr('type')===undefined){if($(this).attr('class').indexOf('SYS_')===-1){$(this).attr('type','block');}}});var savelist={};if(localStorage.getItem("savelist")){savelist=JSON.parse(localStorage.getItem("savelist"));savelist=savelist.reverse();} var project=localStorage.getItem('project');var savetime=localStorage.getItem("savetime");var savetimesel=localStorage.getItem("savetimesel"+project);var SaveTimeSelect="";$('.SYS_SaveTimeSelectBlock').append(SaveTimeSelect);$('.SYS_SaveTimeSelect').val(savetimesel);if(savetimesel===undefined){savetimesel=savetime;} if(savetime!==savetimesel){$(".SYS_TopMenuEl[func='SaveHistory']").css('fill','red').attr('title','История сохранения. Выбрано - '+savetimeseltime);} $('.SYS_SaveTimeSelect').on('change',function(e){localStorage.setItem('savetimesel'+project,$(this).val());WindowsReload(false);});if(localStorage.getItem("versions")){var versions=JSON.parse(localStorage.getItem("versions"));versions=versions.reverse();var VersionsSelect="";$('.SYS_VersionsBlock').append(VersionsSelect);$('.SYS_TopMenuEl[func="versionsel"]').html(localStorage.getItem("editorver"));$('.SYS_VersionsSelect').val(localStorage.getItem("editorver"));if(versions[0]!==localStorage.getItem("editorver")){$('.SYS_TopMenuEl[func="versionsel"]').css('background-color','#a24343');} $('.SYS_VersionsSelect').on('change',function(e){var versel=$(this).val();localStorage.setItem('editorver',versel);var jwt=localStorage.getItem('jwt');var project=localStorage.getItem('project');var arr={"func":"selversion","versel":versel,"jwt":jwt,"project":project};$.post("system/ajax.php",{data:JSON.stringify(arr)},function(msg){if(msg['error']!==undefined){alert(msg['error']);}else{WindowsReload(false);}},'json');});} try{if($('.SYS_DevicesConf').length!==0){DevicesConf=JSON.parse($('.SYS_DevicesConf').attr('json'));ConfListCreate();}}catch(err){SystemLog(err);} try{XiotServices=JSON.parse($('.SYS_xiot_services').attr('json'));XiotLogic=JSON.parse($('.SYS_xiot_logic').attr('json'));XiotCharacteristics=JSON.parse($('.SYS_homekit_characteristics').attr('json'));}catch(err){SystemLog(err);} $('.SYS_Main').find('div[type="Popup"]').each(function(){if(typeof($(this).attr('show'))!=='undefined'){if($(this).attr('show')==='1'){PopupEffect($(this),'Show');}else{$(this).attr('show','0');}}else{$(this).attr('show','0');}});try{Russound_constructor=new RussoundSetupClass();}catch(err){alert('RussoundSetupClass Ошибка - '+err);}});var PosTouch=0;var TimeTouch={};var TimeDoubleTouch={};var ButTouch=false;var tempel={};var touchXStart=0;var touchYStart=0;var allowedTime=200;var restraint=100;var threshold=50;var elapsedTime=new Date().getTime();var swipedir='none';var distX=0;var distY=0;var distXp=0;var distYp=0;var TouchBlock=false;var startTime=0;var EditorMeshSize=10;var EditorMeshSize2=1;var ElOverflowHidden={};var BodyFixedTimeout=0;var touchstart,touchend,touchmove,touchcancel;var SysTimeout=0;function TouchFunc(func,el){if($('body').attr('sys_editor')=='1'){if(el.closest('.SYS_Main').length){TouchFuncEditor(func,el);}else{TouchFuncEditor(func,el);TouchFuncUser(func,el);}}else{TouchFuncUser(func,el);}} if('ontouchstart'in document){touchstart='touchstart';touchend='touchend';touchmove='touchmove';touchcancel='touchcancel';}else{touchstart='mousedown';touchend='mouseup';touchmove='mousemove';touchcancel='mouseout';} $("a").click(function(e){if($(this).parent('div').attr('type')!=='link'||localStorage.getItem('editor')==1){e.preventDefault();SystemLog("anchor click prevented");}});function Hold(func,el){var distX=$('body').attr('touchX')-$('body').attr('touchXStart');var distY=$('body').attr('touchY')-$('body').attr('touchYStart');if(Math.abs(distX)<10&&Math.abs(distY)<10){TouchFunc(func,el);}} function Release(el,event){var ndate=new Date().getTime();var id=el.attr('id');var elclass=el.attr('class');$('body').attr('mouse','up');clearTimeout(TimeTouch[id]);var distX=parseInt($('body').attr('touchX'))-parseInt($('body').attr('touchXStart'));var distY=parseInt($('body').attr('touchY'))-parseInt($('body').attr('touchYStart'));var tfunc=el.attr('touch');switch(tfunc){case'hold':case'holdR':switch(event.which){case 1:TouchFunc('endhold',el);break;case 3:TouchFunc('endholdR',el);break;default:TouchFunc('endhold',el);} break;default:if(el.attr('touch')!=='release'&&el.attr('touch')!=='releaseR'){if(Math.abs(distX)<20&&Math.abs(distY)<20){switch(event.which){case 1:TouchFunc('click',el);if(ndate-el.attr('click-time')<300){TouchFunc('dclick',el);} el.attr('click-time',ndate);break;case 3:TouchFunc('clickR',el);break;default:TouchFunc('click',el);if(ndate-el.attr('click-time')<500){TouchFunc('dclick',el);} el.attr('click-time',ndate);}}else{var elapsedTime=ndate-el.attr('press-time');if(elapsedTime<=allowedTime){if(Math.abs(distX)>=threshold&&Math.abs(distY)<=restraint){var swipedir=(distX<0)?'swipeleft':'swiperight';SystemLog($('body').attr('touchXStart'));if(swipedir==="swiperight"&&parseInt($('body').attr('touchXStart'))<20){swipedir="swiperightedge"} if(swipedir==="swipeleft"&&((parseInt($('body').css('width'))-parseInt($('body').attr('touchXStart')))<20)){swipedir="swipeleftedge"}} else if(Math.abs(distY)>=threshold&&Math.abs(distX)<=restraint){var swipedir=(distY<0)?'swipeup':'swipedown';} TouchFunc(swipedir,el);}} switch(event.which){case 1:TouchFunc('release',el);el.attr('touch','release');break;case 3:TouchFunc('releaseR',el);el.attr('touch','releaseR');break;default:TouchFunc('release',el);el.attr('touch','release');}}}} var ResizeMediaStyle=0;function SelectMediaStyle(){var mediasel=0;if(window.matchMedia("only screen and (max-width: 600px) and (orientation: portrait)").matches){mediasel=101;} if(window.matchMedia("only screen and (max-width: 950px) and (orientation: landscape)").matches){mediasel=102;} if(window.matchMedia("only screen and (min-width: 1000px) and (orientation: landscape)").matches){mediasel=104;} if(window.matchMedia("only screen and (min-width: 760px) and (orientation: portrait)").matches){mediasel=103;} if(window.matchMedia("only screen and (min-width: 1224px)").matches){mediasel=105;} switch(mediasel){case 0:SystemLog2('НЕ ОПРЕДЕЛЕН!!!!!!!!!!!!!!!!!!!!!!') break;case 101:SystemLog2('ТЕЛЕФОН ВЕРТИКАЛЬНО!!!!!!!!!!!!!!!!!!!!!!') break;case 102:SystemLog2('ТЕЛЕФОН ГОРИЗОНТАЛЬНО!!!!!!!!!!!!!!!!!!!!!!') break;case 103:SystemLog2('ПЛАНШЕТ ВЕРТИКАЛЬНО!!!!!!!!!!!!!!!!!!!!!!') break;case 104:SystemLog2('ПЛАНШЕТ ГОРИЗОНТАЛЬНО!!!!!!!!!!!!!!!!!!!!!!') break;case 105:SystemLog2('ПК !!!!!!!!!!!!!!!!!!!!!!') break;} if(mediasel>0){$('div').each(function(){if(typeof($(this).attr('styleall'))!=="undefined"){$(this).attr('style',$(this).attr('styleall'));}});$('div[style'+mediasel+']').each(function(){StyleApply($(this),mediasel,true);});var page=$('.SYS_Main').find('div[type="Page"][select="1"]');if(page.length>0){openpage(page,'SelectMediaStyle');}}} $(document).ready(function(){setTimeout("$('.SYS_Loading').hide();",1000);$('div,select').attr('touch','release');$('div,select').attr('touch2','release');$("body").on("mouseleave","div",function(){$(this).attr('hover','0');TouchFunc('unhover',$(this));});$("body").on("mouseenter","div",function(){$(this).attr('hover','1');TouchFunc('hover',$(this));});$(".SYS_Main").on("mouseleave",function(){$(this).attr('hover','0');console.log('unhover');$(".SYS_Main").find('div').each(function(){if($(this).attr('touch')!=="release"){TouchFunc('release',$(this));$(this).attr('touch2','release');}});});$(document).on(touchstart,".SYS_alert",function(event){$(this).hide();});$(document).on(touchmove,"body",function(event){if(event.touches){var touchX=parseInt(event.touches[0].clientX);var touchY=parseInt(event.touches[0].clientY);}else{var touchX=parseInt(event.clientX);var touchY=parseInt(event.clientY);} var body=$(this);body.attr('ttop',touchY-parseInt(body.offset().top));body.attr('tleft',touchX-parseInt(body.offset().left));$('body').attr('touchX',touchX);$('body').attr('touchYP',$('body').attr('touchY'));$('body').attr('touchY',touchY);if(body.attr('sys_editor')=='1'&&body.attr('mouse')=='down'){var eldeg=$('div[sys_select="1"][touch2!="release"]');if(eldeg.length>0){if((eldeg.css('position')=='absolute'||eldeg.css('position')=='fixed')&&$('.SYS_UiFuncBlock').css('display')=='none'){var top=eldeg.attr('top');var left=eldeg.attr('left');if(top&&left){var inv=1.0/EditorMeshSize;var inv2=1.0/EditorMeshSize2;if(top.indexOf('px')!==-1){var mtop=$('body').attr('touchY')-parseInt(eldeg.attr('ttop'))-parseInt(eldeg.parent().offset().top);mtop=Math.round(mtop*inv)/inv;eldeg.css('top',mtop+'px');eldeg.attr('top',mtop+'px');} if(top.indexOf('px')!==-1){var mleft=$('body').attr('touchX')-parseInt(eldeg.attr('tleft'))-parseInt(eldeg.parent().offset().left);mleft=Math.round(mleft*inv)/inv;eldeg.css('left',mleft+'px');eldeg.attr('left',mleft+'px');} if(top.indexOf('%')!==-1){var mtop=$('body').attr('touchY')-parseInt(eldeg.attr('ttop'))-parseInt(eldeg.parent().offset().top);mtop=(mtop/parseInt(eldeg.parent().css('height')))*100;mtop=Math.round(mtop*inv2)/inv2;eldeg.css('top',mtop+'%');eldeg.attr('top',mtop+'%');} if(left.indexOf('%')!==-1){var mleft=$('body').attr('touchX')-parseInt(eldeg.attr('tleft'))-parseInt(eldeg.parent().offset().left);mleft=(mleft/parseInt(eldeg.parent().css('width')))*100;mleft=Math.round(mleft*inv2)/inv2;eldeg.css('left',mleft+'%');eldeg.attr('left',mleft+'%');}}else{eldeg.attr('top',xcss(eldeg.attr('id'),'top'));eldeg.attr('left',xcss(eldeg.attr('id'),'left'));}}} $('div[touch2="press"]').each(function(index){TouchFunc('move',$(this));});}else{$('div[touch2="press"]').each(function(index){TouchFunc('move',$(this));});}});$(document).on(touchstart,'body',function(event){var el=$(this);el.attr('press-time',new Date().getTime());if(event.touches){var touchX=parseInt(event.touches[0].clientX);var touchY=parseInt(event.touches[0].clientY);}else{var touchX=parseInt(event.clientX);var touchY=parseInt(event.clientY);} el.attr('touchX',touchX);el.attr('touchY',touchY);el.attr('touchXStart',touchX);el.attr('touchYStart',touchY);el.attr('mouse','down');});$(document).on(touchstart,'div,select',function(event){var el=$(this);var id=el.attr('id');el.attr('press-time',new Date().getTime());if(event.touches){var touchXStart=parseInt(event.touches[0].clientX);var touchYStart=parseInt(event.touches[0].clientY);}else{var touchXStart=parseInt(event.clientX);var touchYStart=parseInt(event.clientY);} el.attr('offsettop',$(this).offset().top);el.attr('offsetleft',$(this).offset().left);el.attr('touchX',touchXStart);el.attr('touchY',touchYStart);el.attr('ttop',touchYStart-parseInt(el.offset().top)-parseInt(el.css('border-top')));el.attr('tleft',touchXStart-parseInt(el.offset().left)-parseInt(el.css('border-left')));if(!el.attr('touchXEnd')){el.attr('touchXEnd',touchXStart);} if(!el.attr('touchYEnd')){el.attr('touchYEnd',touchYStart);} el.attr('touchXStart',touchXStart);el.attr('touchYStart',touchYStart);switch(event.which){case 3:TouchFunc('pressR',el);TimeTouch[id]=setTimeout(Hold,300,'holdR',el);break;default:el.attr('touch2','press');TimeTouch[id]=setTimeout(Hold,300,'hold',el);var move=el.attr('move');if(!move&&$('#'+id).attr('UiFunc')){if($('#'+id).attr('UiFunc').indexOf('fmove')!==-1){move='ok';}} setTimeout(TouchFunc,10,'press',el);} if(el.attr('type')&&el.attr('type')=='Page'){el.attr('movetop',parseInt(el.css('top')));}});$(document).on(touchend,'div,select',function(event){if($(this).css('position')=='absolute'||$(this).css('position')=='fixed'){var top=$(this).attr('top');var left=$(this).attr('left');if(top&&left){var xid=$(this).attr('id');xcss(xid,'top',top);xcss(xid,'left',left);$(this).css('top','');$(this).css('left','');ParamPrint($(this),'style');} $(this).attr('top','');$(this).attr('left','');} if(event.changedTouches){$(this).attr('touchXEnd',parseInt(event.changedTouches[0].clientX));$(this).attr('touchYEnd',parseInt(event.changedTouches[0].clientY));}else{$(this).attr('touchXEnd',parseInt(event.clientX));$(this).attr('touchYEnd',parseInt(event.clientY));} Release($(this),event);});$(document).on(touchend,'body',function(event){$('.SYS_Main').find('div').each(function(){if($(this).attr('touch')!=='release'){var xid=$(this).attr('id');setTimeout(TouchFunc,100,'release',$(this));}});$('body,div').attr('touch','release');$('body,div').attr('touch2','release');});$(document).on('change','input,select,textarea',function(event){TouchFunc('change',$(this));if($(this).parent().attr('type')==='input'){TouchFunc('change',$(this).parent());} if($(this).parent().attr('type')==='select'){TouchFunc('change',$(this).parent());}});$(document).on('keyup','input,textarea',function(event){TouchFunc('keyup',$(this));if($(this).parent().attr('type')==='input'){TouchFunc('keyup',$(this).parent());}});$(document).on('paste','input,textarea',function(event){TouchFunc('paste',$(this));if($(this).parent().attr('type')==='input'){TouchFunc('paste',$(this).parent());}});$(document).on('click','input,select,textarea',function(event){TouchFunc('click',$(this));if($(this).parent().attr('type')==='input'){TouchFunc('click',$(this).parent());}});$(document).on('dragstart','div',function(event){TouchFunc('dragstart',$(this));});$(document).on('dragenter','div',function(event){TouchFunc('dragenter',$(this));});$(document).on('dragover','div',function(event){TouchFunc('dragover',$(this));});$(document).on('dragleave','div',function(event){TouchFunc('dragleave',$(this));});$(document).on('dragend','div',function(event){TouchFunc('dragend',$(this));});$(window).bind('mousewheel DOMMouseScroll MozMousePixelScroll',function(event){if(localStorage.getItem('editor')==='1'){delta=parseInt(event.originalEvent.wheelDelta||-event.originalEvent.detail);$('div[hover="1"]').each(function(){if($(this).css('overflow-x')==='scroll'||$(this).css('overflow-x')==='auto'){var step=50;var sl=$(this).scrollLeft();var slset=sl;if(delta>=0){slset=parseInt(sl)-step;if(slset<0){slset=0;}}else{slset=parseInt(sl)+step;} if(slset===0){if(sl===slset){var Page=$(this).closest('div[type="Page"]');var pst=Page.scrollTop();if(pst>0){Page.scrollTop(pst-step);}}else{$(this).scrollLeft(slset);}}else{if(slset==$(this).attr('slset')){var Page=$(this).closest('div[type="Page"]');var pst=Page.scrollTop();Page.scrollTop(pst+step);}else{$(this).scrollLeft(slset);}} $(this).attr('slset',slset);return false;}});}});if(localStorage.getItem('DisplaySelect')!==undefined&&localStorage.getItem('DisplaySelect')!==null&&localStorage.getItem('DisplaySelect')!=='default'){var DisplaySelect=localStorage.getItem('DisplaySelect');setTimeout(DisplaySelectFunc,100,DisplaySelect);}else{setTimeout(SelectMediaStyle,500);} $(window).resize(function(){clearTimeout(ResizeMediaStyle);if(localStorage.getItem('editor')!=='1'&&(localStorage.getItem('DisplaySelect')===undefined||localStorage.getItem('DisplaySelect')===null)){ResizeMediaStyle=setTimeout(SelectMediaStyle,100);}});window.addEventListener("orientationchange",function(){SelectMediaStyle();});});document.addEventListener("deviceready",function(){DeviceReady=true;localStorage.setItem('app','1');var page=$("div[type='Page'][select='1']");var bc=page.css('background-color');$('html').css('background-color',bc);$('body').css('background-color',bc);if(typeof(page.attr('param'))!==undefined){var param=JSON.parse(page.attr('param'));switch(param['orientlock']){case'portrait':ScreenOrientation('portrait');break;case'landscape':ScreenOrientation('landscape');break;default:ScreenOrientation('all');}} window.FirebasePlugin.hasPermission(function(data){if(data.isEnabled!==true){window.FirebasePlugin.grantPermission();}});window.FirebasePlugin.onTokenRefresh(function(token){var jwt=localStorage.getItem('jwt');var project=localStorage.getItem('project');var platform=device.platform;var uuid=device.uuid;var arr={"func":"pushsavetoken","token":token,"jwt":jwt,"project":project,"platform":platform,"uuid":uuid};$.post("https://xiot.pro/system/ajax.php",{data:JSON.stringify(arr)},function(msg){SystemLog(JSON.stringify(msg));},'json');},function(error){SystemLog(error);});},false);$(document).ready(function(){$('div[type="input"]').each(function(){var type=$(this).find('input').attr('type');switch(type){case'checkbox':if($(this).find('input').is(':checked')){var val=1;}else{var val=0;} break;case'number':if($(this).find('input').val()==''){var val=0;$(this).find('input').val(val);} break;default:var val=$(this).find('input').val();} $(this).closest('div[type="input"]').attr('value',val);});$('div[type="timeinterval"]').each(function(){$(this).find('div[name="save"]').click(function(){if(localStorage.getItem('editor')!=='1'){var timeinterval=$(this).closest('div[type="timeinterval"]');var arr={};timeinterval.find('div[name="block"]').each(function(i){var num=i+1;arr[num]={};arr[num]['active']=$(this).find('div[name="active"]').attr('value');arr[num]['start_h']=$(this).find('div[name="start_h"]').attr('value');arr[num]['start_m']=$(this).find('div[name="start_m"]').attr('value');arr[num]['stop_h']=$(this).find('div[name="stop_h"]').attr('value');arr[num]['stop_m']=$(this).find('div[name="stop_m"]').attr('value');arr[num]['w1']=$(this).find('div[name="w1"]').attr('value');arr[num]['w2']=$(this).find('div[name="w2"]').attr('value');arr[num]['w3']=$(this).find('div[name="w3"]').attr('value');arr[num]['w4']=$(this).find('div[name="w4"]').attr('value');arr[num]['w5']=$(this).find('div[name="w5"]').attr('value');arr[num]['w6']=$(this).find('div[name="w6"]').attr('value');arr[num]['w7']=$(this).find('div[name="w7"]').attr('value');});var UiFuncJson=timeinterval.attr('UiFunc');if(UiFuncJson){var UiFuncArr=JSON.parse(UiFuncJson);for(var key in UiFuncArr['el']){if(UiFuncArr['el'][key]['type']=='ftimeinterval'){UiFuncLinkStart(UiFuncArr,'',timeinterval,timeinterval,key,arr,'1','timeinterval');}}}}});});if($('.SYS_LogicFuncSend').length){LogicFuncSend=JSON.parse($('.SYS_LogicFuncSend').attr('json'));SystemLog('LogicFuncSend');SystemLog(LogicFuncSend);} var lang="ru";if(localStorage.getItem('lang')){lang=localStorage.getItem('lang');} $('div').each(function(){var el=$(this);if(typeof(el.attr('styleall'))!=="undefined"){el.attr('style',el.attr('styleall'));}});$('.SYS_Main').find('div[type="Popup"]').each(function(){if($(this).attr('param')!==undefined){var param=JSON.parse($(this).attr('param'));if(param['screensaver']!==undefined){if(parseInt(param['screensaver'])>0){ScreensaverList[$(this).attr('id')]={};ScreensaverList[$(this).attr('id')]['time']=param['screensaver'];}}}});for(var id in ScreensaverList){var time=ScreensaverList[id]['time']*1000;ScreensaverList[id]['timer']=setTimeout(Start_screensaver,time,id);} SetLang(lang);var fs="14";if(localStorage.getItem('font-size')){fs=localStorage.getItem('font-size');} $('.SYS_Main').css('font-size',fs+'px');var id=decodeURI(window.location.hash).replace("#!","");if(localStorage.getItem('reloadapp')){id=localStorage.getItem('reloadapp');localStorage.removeItem('reloadapp');} if(id!==""){var page=$('div[type="Page"][id="'+id+'"]');}else{var page=$('div[type="Page"]:visible');} CurrentPage=page;PreviorPage=CurrentPage;if(page.length==0){updateURL("");}});function FxDebugColor(FxDebugKeyEl){$('.SYS_UiFuncBlockBox').find('.SYS_UiFunc[key="'+FxDebugKeyEl+'"]').find('.SYS_UiFuncDebug').css('color','black');} function SendFxLogicPart(PartN){var persent=parseInt(((parseInt(PartN))*3000/FxJsonlength)*100);$('.SYS_FxUpdateBlockSliderFon').css('width',persent+'%');$('.SYS_FxUpdateBlockSliderPersent').html('загрузка '+persent+'%');FxJsonPartSend=PartN;if(FxJsonPartSend==FxJsonlength/3000){var start=(FxJsonPartSend-1)*3000;var end=FxJsonlength;}else{var start=FxJsonPartSend*3000;var end=start+3000;} TagChange('/xsysui/fxlogic/update/json/'+FxJsonPartSend,FxJsonSend.slice(start,end));} var FuncArr='';function SendFxLogic(Json){$('.SYS_FxUpdateBlockSliderPersent').html('Начинаю обновление');FxJsonSend=Json;FxJsonlength=FxJsonSend.length;TagChange('/xsysui/fxlogic/update/jsonstart','start');} function hexToRgbA(hex){var c;if(/^#([A-Fa-f0-9]{3}){1,2}$/.test(hex)){c=hex.substring(1).split('');if(c.length==3){c=[c[0],c[0],c[1],c[1],c[2],c[2]];} c='0x'+c.join('');return'rgba('+[(c>>16)&255,(c>>8)&255,c&255].join(',')+',1)';} return'rgba(120,120,120,1)';}"use strict";var Message_constructor=false;var SYS_message_buf=new Array();var SYS_message_get_datashift=0;class MessageSetupClass{constructor(){Message_constructor=true;this.select=0;this.arr={};} SYS(setval,el){switch(setval){case'SYS_Message':var SYS_Message_Body=el.find('div[name="SYS_Message_Body"]');el.find('div[name="SYS_Message_But_Top"]').css('opacity',0);SYS_Message_Body.attr('shiftload','0');$('div[name="SYS_Message"]').find('div[name="SYS_Message_Mess"]').remove();$('div[name="SYS_Message"]').find('div[name="SYS_Message_Mess_Shiftold"]').show();SYS_Message_Body.scroll(function(){var stop=$(this).scrollTop();if(stop>100){$(this).closest('div[name="SYS_Message"]').find('div[name="SYS_Message_But_Top"]').css('opacity',1);}else{$(this).closest('div[name="SYS_Message"]').find('div[name="SYS_Message_But_Top"]').css('opacity',0);} var scrollHeight=$(this).prop('scrollHeight')-$(this).height();if(stop>scrollHeight-150){if(SYS_message_get_datashift===0){SYS_message_get_datashift=1;var lastel=$(this).find('div[name="SYS_Message_Mess"]').last();var data=lastel.attr('data');var ShiftOldLoad=el.find('div[name="SYS_Message_Mess_Shiftold"]');$(this).append(ShiftOldLoad);ShiftOldLoad.show();TagChange('/xsysui/module/message/get_bd/shiftold',data);}}});break;case'SYS_Message_But_Restart':TagChange('/xsysui/module/message/get_bd/restart','1');$('div[name="SYS_Message"]').find('div[name="SYS_Message_Mess"]').remove();$('div[name="SYS_Message"]').find('div[name="SYS_Message_Mess_Shiftold"]').show();break;case'SYS_Message_But_Top':var el=el;var SYS_Message_Body=el.closest('div[name="SYS_Message"]').find('div[name="SYS_Message_Body"]');SYS_Message_Body.animate({scrollTop:0},500);break;case'SYS_Message_Data':var data=el.attr('value');TagChange('/xsysui/module/message/get_bd/data',data+' 12:00:00.000001');$('div[name="SYS_Message"]').find('div[name="SYS_Message_Mess"]').remove();break;case'SYS_Message_Setup_Block_Select_Info':case'SYS_Message_Setup_Block_Select_Warning':case'SYS_Message_Setup_Block_Select_Alarm':case'SYS_Message_Setup_Block_Select_Debug':case'SYS_Message_Setup_Block_Select_Error':var val=el.attr('value');switch(setval){case'SYS_Message_Setup_Block_Select_Info':TagChange('/xsysui/module/message/set_type/INFO',val);break;case'SYS_Message_Setup_Block_Select_Warning':TagChange('/xsysui/module/message/set_type/WARNING',val);break;case'SYS_Message_Setup_Block_Select_Alarm':TagChange('/xsysui/module/message/set_type/ALARM',val);break;case'SYS_Message_Setup_Block_Select_Debug':TagChange('/xsysui/module/message/set_type/DEBUG',val);break;case'SYS_Message_Setup_Block_Select_Error':TagChange('/xsysui/module/message/set_type/ERROR',val);break;} break;case'Save':this.save();break;default:alert(setval+' - default');}} print(){$('.SYS_PlcModuleBlock').html('');this.SYS_Setup=$('.SYS_ElementsContainer').find('div[name="SYS_SetupMessage"]').clone();this.SYS_Setup.attr('name','SYS_SetupMessage');$('.SYS_PlcModuleBlock').append(this.SYS_Setup);this.SYS_Setup.find('div[name="раздел"]').remove();console.log('Message print');var setupjson=$('.SYS_PlcModuleSetup').attr('json');if(setupjson&&setupjson!==''){var setuparr=JSON.parse(setupjson);}else{var setuparr={};} if(typeof(setuparr['message'])!=="undefined"){if(typeof(setuparr['message']['telegram'])!=="undefined"){if(typeof(setuparr['message']['telegram']['botid'])!=="undefined"){this.SYS_Setup.find("div[name='токен бота']").find('input').val(setuparr['message']['telegram']['botid']);} if(typeof(setuparr['message']['telegram']['info'])!=="undefined"){this.SYS_Setup.find("div[name='id группы info']").find('input').val(setuparr['message']['telegram']['info']);} if(typeof(setuparr['message']['telegram']['warning'])!=="undefined"){this.SYS_Setup.find("div[name='id группы warning']").find('input').val(setuparr['message']['telegram']['warning']);} if(typeof(setuparr['message']['telegram']['alarm'])!=="undefined"){this.SYS_Setup.find("div[name='id группы alarm']").find('input').val(setuparr['message']['telegram']['alarm']);} if(typeof(setuparr['message']['telegram']['debug'])!=="undefined"){this.SYS_Setup.find("div[name='id группы debug']").find('input').val(setuparr['message']['telegram']['debug']);} if(typeof(setuparr['message']['telegram']['error'])!=="undefined"){this.SYS_Setup.find("div[name='id группы error']").find('input').val(setuparr['message']['telegram']['error']);}}}} save(){this.arr['telegram']={};this.arr['telegram']['botid']=this.SYS_Setup.find("div[name='токен бота']").find('input').val();this.arr['telegram']['info']=this.SYS_Setup.find("div[name='id группы info']").find('input').val();this.arr['telegram']['warning']=this.SYS_Setup.find("div[name='id группы warning']").find('input').val();this.arr['telegram']['alarm']=this.SYS_Setup.find("div[name='id группы alarm']").find('input').val();this.arr['telegram']['debug']=this.SYS_Setup.find("div[name='id группы debug']").find('input').val();this.arr['telegram']['error']=this.SYS_Setup.find("div[name='id группы error']").find('input').val();var setupjson=$('.SYS_PlcModuleSetup').attr('json');if(setupjson&&setupjson!==''){var setuparr=JSON.parse(setupjson);}else{var setuparr={};} if(typeof(setuparr['message'])==="undefined"){setuparr['message']={};} setuparr['message']=this.arr;setupjson=JSON.stringify(setuparr);$('.SYS_PlcModuleSetup').attr('json',setupjson);this.print();} module(func,el){switch(func){case'get_bd':$('div[name="SYS_Message"]').find('div[name="SYS_Message_Mess_Temp"]').hide();switch(el['type']){case'list':$('div[name="SYS_Message"]').find('div[name="SYS_Message_Mess"]').remove();break;case'shiftold':break;case'online':break;} if(typeof(el['set_type'])!=='undefined'){for(var t in el['set_type']){var on=false;if(el['set_type'][t]==='1'){on=true;} switch(t){case'INFO':$('div[name="SYS_Message"]').find('div[name="SYS_Message_Setup_Block_Select_Info"]').find('input').prop('checked',on);break;case'WARNING':$('div[name="SYS_Message"]').find('div[name="SYS_Message_Setup_Block_Select_Warning"]').find('input').prop('checked',on);break;case'ALARM':$('div[name="SYS_Message"]').find('div[name="SYS_Message_Setup_Block_Select_Alarm"]').find('input').prop('checked',on);break;case'DEBUG':$('div[name="SYS_Message"]').find('div[name="SYS_Message_Setup_Block_Select_Debug"]').find('input').prop('checked',on);break;case'ERROR':$('div[name="SYS_Message"]').find('div[name="SYS_Message_Setup_Block_Select_Error"]').find('input').prop('checked',on);break;}}} $('div[name="SYS_Message"]').each(function(){$(this).find('div[name="SYS_Message_Mess_Shiftold"]').hide();if(typeof(el['arr'])!=='object'){return;} if(Object.size(el['arr'])>0){SYS_message_get_datashift=0;}else{$(this).find('div[name="SYS_Message_Mess_Shiftold"]').hide();} var Data=new Date();var Day=Data.getDate();if(parseInt(Day)<10){Day='0'+Day;} var Month=Data.getMonth()+1;if(parseInt(Month)<10){Month='0'+Month;} var FullYear=Data.getFullYear();var curdata=FullYear+'-'+Month+'-'+Day;var shift=curdata;try{var shift=el['shift'].split(' ')[0];}catch(err){console.log(err);} for(var key in el['arr']){try{var data=el['arr'][key]['data'];var day=data.split(' ')[0];var time=data.split(' ')[1].split('.')[0];var dayarr=day.split('-');var dayformat=dayarr[2]+'.'+dayarr[1]+'.'+dayarr[0];}catch(err){console.log(err);} var type=el['arr'][key]['type'];var sv=el['arr'][key]['sv'];var setval=el['arr'][key]['val'];var mes=el['arr'][key]['mes'];var mess_block=$(this).find('div[name="SYS_Message_Mess_Temp"]').clone();var devtype=sv.split('/')[1];var devid=sv.split('/')[2];var name=sv;try{switch(devtype){case'xhome':var name=DevicesConf['home']['name'];break;case'xroom':var name=RoomsConfList[devid]['name'];break;case'xdev':var name=DevicesConfList[devid]['roomname']+' - '+DevicesConfList[devid]['name'];break;case'xlogic':var name=DevicesConf['logic'][devid]['Name'];break;}}catch(err){SystemLog2(err);} mess_block.attr('name','SYS_Message_Mess');mess_block.attr('data',data);mess_block.find('div[name="SYS_Message_Mess_Name"]').html(name);mess_block.find('div[name="SYS_Message_Mess_Text"]').html(mes);mess_block.find('div[name="SYS_Message_Mess_Time"]').html(time);mess_block.find('div[name="SYS_Message_Mess_Day"]').html(dayformat);switch(el['type']){case'list':$(this).find('div[name="SYS_Message_Body"]').append(mess_block);$(this).find('div[name="SYS_Message_Data"]').find('input').val(day);SYS_message_buf.length=0;break;case'online':var scroll=$(this).find('div[name="SYS_Message_Body"]').scrollTop();try{if(scroll==0){for(var i=0;iscrollHeight-100){var HistoryTable=$(this).closest('div[type="HistoryTable"]');if(HistoryTable.attr('get_datashift')==='0'){console.log('HistoryTable запрашиваю продолжение списка.');HistoryTable.attr('get_datashift','1');HistoryTable.find('div[name="Загрузка"]').show();TagChange('/xsysui/module/history/get_bd/shiftold/'+HistoryTable.attr('historycid'),HistoryTable.attr('get_olddata'));}}});}}});} restart(HistoryCid){TagChange('/xsysui/module/history/get_bd/restart/'+HistoryCid,'1');} getarr(){var setupjson=$('.SYS_PlcModuleSetup').attr('json');if(setupjson&&setupjson!==''){var setuparr=JSON.parse(setupjson);}else{var setuparr={};} if(typeof(setuparr['history'])!=="undefined"){this.arr=setuparr['history'];}} getlistcid(){var listcid={};this.getarr();if(typeof(this.arr['list'])!=="undefined"){for(var id in this.arr['list']){listcid[id]=this.arr['list'][id]['name'];}} return listcid;} getbd(el){var HistoryTable=el;var HistoryCid=HistoryTable.attr('historycid');HistoryTable.find('div[name="Загрузка"]').show();this.getarr();if(typeof(this.arr['list'])!=="undefined"){if(typeof(this.arr['list'][HistoryCid])!=="undefined"){TagChange('/xsysui/module/history/get_bd/restart/'+HistoryCid,'1');} var sel=HistoryTable.find('div[name="список сборок"]').find('select');if(typeof(sel)!=="undefined"){sel.html('');for(var id in this.arr['list']){sel.append('');} sel.val(HistoryCid);}} el.find('div[add="script"]').remove();} SYS(setval,el){switch(setval){case'Save':this.save();break;case'добавить сборку':var sborka={};sborka['name']="Новая сборка";var id=newid(5);sborka['list']={};sborka['setup']={};sborka['setup']['writetype']='typewrite1';sborka['setup']['writeinterval']='60';sborka['setup']['writemax']='10000';if(typeof(this.arr['list'])==="undefined"){this.arr['list']={};} this.arr['list'][id]=sborka;console.log(this.arr);this.printListS();break;case'удалить сборку':var result=confirm('Удалить сборку?');if(result){var id=el.parent().attr('name');delete this.arr['list'][id];this.printListS();} break;case'выбрать сборку':var id=el.parent().attr('name');this.selS=id;this.printListS();this.printS(id);break;case'список сборок':var id=el.find('select').val();var HistoryTable=el.closest('div[type="HistoryTable"]');HistoryTable.attr('historycid',id);this.getbd(HistoryTable);break;case'имя сборки':var id=this.selS;var name=el.attr('value');this.arr['list'][id]['name']=name;this.printListS();break;case'имя топика':var id=el.parent().attr('id');var name=el.find('input').val();this.arr['list'][this.selS]['list'][id]['name']=name;break;case'тип записи':var id=this.selS;var val=el.find('select').val();this.arr['list'][id]['setup']['writetype']=val;break;case'интервал записи':var id=this.selS;var val=el.find('input').val();this.arr['list'][id]['setup']['writeinterval']=val;break;case'кол-во записей':var id=this.selS;var val=el.find('select').val();this.arr['list'][id]['setup']['writemax']=val;break;case'добавить характеристику':HdevSelectClass.select(this);break;case'добавить тэг':TagSelectClass.select(this);break;case'удалить тэг':var id=el.parent().attr('id');delete this.arr['list'][this.selS]['list'][id];this.printS(this.selS);break;case'OpenPageTable':this.getbd(el);break;case'сбросить':var HistoryTable=el.closest('div[type="HistoryTable"]');var HistoryCid=HistoryTable.attr('historycid');HistoryTable.find('div[add="script"]').remove();HistoryTable.find('div[name="Загрузка"]').show();this.restart(HistoryCid);break;case'дата':var data=el.attr('value');var HistoryTable=el.closest('div[type="HistoryTable"]');var HistoryCid=HistoryTable.attr('historycid');TagChange('/xsysui/module/history/get_bd/data/'+HistoryCid,data+' 12:00:00.000001');HistoryTable.find('div[add="script"]').remove();HistoryTable.find('div[name="Загрузка"]').show();break;default:alert(setval+' - default');}} tagselect(tag,tagarr){console.log(tagarr);var name=tagarr['name'];if(typeof(this.arr['list'][this.selS]['list'])==="undefined"){this.arr['list'][this.selS]['list']={};} var id=newid(5);this.arr['list'][this.selS]['list'][id]={};this.arr['list'][this.selS]['list'][id]['tag']=tag;this.arr['list'][this.selS]['list'][id]['name']=name;this.arr['list'][this.selS]['list'][id]['master']='0';this.printS(this.selS);} hdevselect(tag,hdevsarr){var name=hdevsarr['name'];if(typeof(this.arr['list'][this.selS]['list'])==="undefined"){this.arr['list'][this.selS]['list']={};} var id=newid(5);this.arr['list'][this.selS]['list'][id]={};this.arr['list'][this.selS]['list'][id]['tag']=tag;this.arr['list'][this.selS]['list'][id]['name']=name;this.arr['list'][this.selS]['list'][id]['master']='0';this.printS(this.selS);} printS(id){this.SYS_Setup.find('div[name="правый блок заглушка"]').hide();this.SYS_Setup.find('div[name="правый блок"]').show();var name=this.arr['list'][id]['name'];this.SYS_Setup.find('div[name="правый блок"]').find('div[name="шаблон тэга"]').hide();this.SYS_Setup.find('div[name="правый блок"]').find('div[add="dinamic"]').remove();this.SYS_Setup.find('div[name="имя сборки"]').find('input').val(name);if(typeof(this.arr['list'][id]['list'])!=="undefined"){for(var tid in this.arr['list'][id]['list']){console.log(tid);var TempS=this.SYS_Setup.find('div[name="шаблон тэга"]').clone();var tag=this.arr['list'][id]['list'][tid]['tag'];TempS.attr('id',tid).attr('name',tid).attr('add','dinamic');TempS.show();TempS.find('div[name="топик"]').html(tag);TempS.find('div[name="имя топика"]').find('input').val(this.arr['list'][id]['list'][tid]['name']);this.SYS_Setup.find('div[name="список тэгов"]').append(TempS);}} var WriteType=this.arr['list'][id]['setup']['writetype'];var WriteInterval=this.arr['list'][id]['setup']['writeinterval'];var WriteMax=this.arr['list'][id]['setup']['writemax'];this.SYS_Setup.find('div[name="тип записи"]').find('select').val(WriteType);this.SYS_Setup.find('div[name="интервал записи"]').find('input').val(WriteInterval);this.SYS_Setup.find('div[name="кол-во записей"]').find('select').val(WriteMax);} printListS(){this.SYS_Setup.find('div[name="шаблон сборки"]').hide();this.SYS_Setup.find('div[add="dinamic"]').remove();if(typeof(this.arr['list'])!=="undefined"){for(var id in this.arr['list']){console.log(id);var TempS=this.SYS_Setup.find('div[name="шаблон сборки"]').clone();TempS.attr('id',id).attr('name',id).attr('add','dinamic');TempS.show();TempS.find('div[name="выбрать сборку"]').html(this.arr['list'][id]['name']);this.SYS_Setup.find('div[name="список сборок"]').append(TempS);if(this.selS===id){StyleApply(TempS,1);}}}} print(){$('.SYS_PlcModuleBlock').html('');this.SYS_Setup=$('.SYS_ElementsContainer').find('div[name="SYS_SetupHistory"]').clone();this.SYS_Setup.attr('name','SYS_SetupHistory');$('.SYS_PlcModuleBlock').append(this.SYS_Setup);console.log('history print');this.getarr();this.printListS();} save(){var setupjson=$('.SYS_PlcModuleSetup').attr('json');if(setupjson&&setupjson!==''){var setuparr=JSON.parse(setupjson);}else{var setuparr={};} if(typeof(setuparr['history'])==="undefined"){setuparr['history']={};} setuparr['history']=this.arr;setupjson=JSON.stringify(setuparr);$('.SYS_PlcModuleSetup').attr('json',setupjson);} module(func,cid,arr){switch(func){case'res':$('div[type="HistoryTable"][historycid="'+cid+'"]').each(function(){var HistoryTable=$(this);HistoryTable.find('div[name="Загрузка"]').hide();HistoryTable.attr('get_datashift','0');var fel=HistoryTable.find('div[name="SYS_HistoryTable"]');var count=5;var top=fel.find('div[name="Шапка таблицы"]');var top_el_t=fel.find('div[name="Шапка таблицы"]').find('div[name="Шаблон элемента"]');top_el_t.hide();var table=fel.find('div[name="Таблица"]');var tr_t=table.find('div[name="Шаблон колонки"]');tr_t.hide();var el_time_t=tr_t.find('div[name="шаблон время"]');var el_val_t=tr_t.find('div[name="Шаблон значение"]');switch(arr['type']){case'restart':case'data':fel.find('div[add="script"]').remove();for(var i in arr['colnames']){var colname=arr['colnames'][i];var top_el=top_el_t.clone().attr('name','элемент'+i).css('display','flex').attr('id','top_el'+i).attr('add','script');if(i>0){top_el.html(colname);} top.append(top_el);var tr=tr_t.clone().attr('name','колонка'+i).show().attr('id','tr'+i).html('').attr('add','script');table.append(tr);} break;} for(var i in arr['rows']){var sdate=arr['rows'][i][0];HistoryTable.attr('get_olddata',sdate);var day=sdate.split(' ')[0];var time=sdate.split(' ')[1].split('.')[0];var timearr=time.split(':');var time=timearr[0]+':'+timearr[1];var dayarr=day.split('-');var dayformat=dayarr[2]+'.'+dayarr[1]+'.'+dayarr[0];var el_time=el_time_t.clone().attr('name','время'+i).show().attr('id','el_time'+i).attr('add','script');el_time.find('div[name="время"]').html(time);el_time.find('div[name="дата"]').html(dayformat);table.find('div[name="data"]').append(el_time);for(var y in arr['rows'][i]){if(y==0){var el_val=el_time_t.clone().attr('name','значение'+i).show().attr('id','el_val'+i+y).attr('add','script');el_val.find('div[name="время"]').html(time);el_val.find('div[name="дата"]').html(dayformat);}else{var el_val=el_val_t.clone().attr('name','значение'+i).show().attr('id','el_val'+i+y).attr('add','script');el_val.html(arr['rows'][i][y]);} table.find('div[name="колонка'+(y)+'"]').append(el_val);} fel.find('div[name="дата"]').find('input').val(day);} if(table.height()>0){if(parseInt(table.height())===parseInt(table.prop('scrollHeight'))){HistoryTable.find('div[name="Загрузка"]').show();TagChange('/xsysui/module/history/get_bd/shiftold/'+HistoryTable.attr('historycid'),HistoryTable.attr('get_olddata'));}}});break;}}}"use strict";var TagSelectClass=false;var HdevSelectClass=false;class TagSelectFunc{constructor(){this.arr={};this.printflag=false;this.tagsarr={};} print(){this.SYS_Setup=$('');var SetupTagSelect=$('.SYS_ElementsContainer').find('div[name="SYS_SetupTagSelect"]').clone();this.SYS_Setup.append(SetupTagSelect);$('.SYS_EditorElements').prepend(this.SYS_Setup);if(typeof($('.SYS_Tags').attr('json'))!=="undefined"){this.tagsarr=JSON.parse($('.SYS_Tags').attr('json'));console.log(this.tagsarr);this.SYS_Setup.find('div[name="первый блок"]').hide();this.SYS_Setup.find('div[name="второй блок"]').hide();this.SYS_Setup.find('div[name="блок тэга"]').hide();this.SYS_Setup.show();setTimeout(this.taglistcreate,500,this.SYS_Setup,this.tagsarr);}} taglistcreate(SYS_Setup,tagsarr){console.log(tagsarr);for(var tag in tagsarr){var tagarr=tag.split('/');var tag1=tagarr[1];var tag2=tagarr[2];var tag3=tagarr[3];var name=tagsarr[tag]['name'];var rw=tagsarr[tag]['rw'];var typexiot=tagsarr[tag]['typexiot'];if(SYS_Setup.find('div[name="первый блок '+tag1+'"]').length==0){var block1=SYS_Setup.find('div[name="первый блок"]').clone();block1.show();block1.attr('id',tag1).attr('name','первый блок '+tag1);block1.find('div[name="шапка первого блока"]').find('div[name="имя"]').html(tag1);SYS_Setup.find('div[name="главный блок"]').append(block1);}else{var block1=SYS_Setup.find('div[name="первый блок '+tag1+'"]');} if(block1.find('div[name="второй блок '+tag1+tag2+'"]').length==0){var block2=block1.find('div[name="второй блок"]').clone();block2.show();block2.attr('id',tag2).attr('name','второй блок '+tag1+tag2);block2.find('div[name="шапка второго блока"]').find('div[name="имя"]').html(tag2);block1.find('div[name="контейнер вторых блоков"]').append(block2);}else{var block2=SYS_Setup.find('div[name="второй блок '+tag1+tag2+'"]');} var block3=block2.find('div[name="блок тэга"]').clone();block3.show();block3.attr('id',tag3).attr('tag',tag).attr('name','блок тэга '+tag3);block3.find('div[name="имя тэга"]').html(name);block3.find('div[name="тэг"]').html(tag);block2.find('div[name="контейнер тэгов"]').append(block3);} SYS_Setup.find('div[name="загрузка"]').hide();} select(funcres){if(this.printflag===false){this.printflag=true;this.print();} this.SYS_Setup.show();this.funcres=funcres;} SYS(setval,el){switch(setval){case'TagSelect':var tag=el.attr('tag');this.funcres.tagselect(tag,this.tagsarr[tag]);this.SYS_Setup.hide();break;case'закрыть':this.SYS_Setup.hide();break;default:alert(setval+' - default');}} gettagsarr(){return this.tagsarr;}} try{TagSelectClass=new TagSelectFunc();}catch(err){alert('Ошибка TagSelectClass - '+err);} class HdevSelectFunc{constructor(){this.arr={};this.printflag=false;this.hdevsarr={};} print(){this.SYS_Setup=$('');var SetupHdevSelect=$('.SYS_ElementsContainer').find('div[name="SYS_SetupHdevSelect"]').clone();this.SYS_Setup.append(SetupHdevSelect);$('body').prepend(this.SYS_Setup);if(typeof($('.SYS_DevicesConf').attr('json'))!=="undefined"){this.hdevconf=JSON.parse($('.SYS_DevicesConf').attr('json'));this.XiotCharacteristics=JSON.parse($('.SYS_homekit_characteristics').attr('json'));this.SYS_Setup.find('div[name="блок дома"]').hide();this.SYS_Setup.find('div[name="блок этажа"]').hide();this.SYS_Setup.find('div[name="блок комнаты"]').hide();this.SYS_Setup.find('div[name="блок устройства"]').hide();this.SYS_Setup.find('div[name="блок характеристики"]').hide();setTimeout(this.hdevlistcreate,500,this.SYS_Setup,this.hdevconf,this.XiotCharacteristics,this.hdevsarr);}} hdevlistcreate(SYS_Setup,hdevconf,XiotCharacteristics,hdevsarr){console.log(hdevconf);for(var id in hdevconf){switch(id){case'home':var homename=hdevconf['home']['name'];SYS_Setup.find('div[name="шапка блока дома"]').find('div[name="имя"]').html(homename);SYS_Setup.find('div[name="блок дома"]').show();break;case'floors':for(var fid in hdevconf['floors']){var floorname=hdevconf['floors'][fid]['name'];var floor_block=SYS_Setup.find('div[name="блок этажа"]').clone();floor_block.show();floor_block.attr('fid',fid).attr('name','блок этажа '+fid);floor_block.find('div[name="шапка блока этажа"]').find('div[name="имя"]').html(floorname);SYS_Setup.find('div[name="контейнер этажей"]').append(floor_block);for(var fkey in hdevconf['floors'][fid]){switch(fkey){case'rh':break;case'rooms':for(var rid in hdevconf['floors'][fid]['rooms']){var roomname=hdevconf['floors'][fid]['rooms'][rid]['name'];console.log(roomname);var room_block=floor_block.find('div[name="блок комнаты"]').clone();room_block.show();room_block.attr('fid',fid).attr('rid',rid).attr('name','блок комнаты '+rid);room_block.find('div[name="шапка блока комнаты"]').find('div[name="имя"]').html(roomname);floor_block.find('div[name="контейнер комнат"]').append(room_block);for(var rkey in hdevconf['floors'][fid]['rooms'][rid]){switch(rkey){case'rh':break;case'devices':for(var did in hdevconf['floors'][fid]['rooms'][rid]['devices']){var devarr=hdevconf['floors'][fid]['rooms'][rid]['devices'][did];var devname=devarr['name'];var devtype=devarr['type'];console.log(devname);var dev_block=room_block.find('div[name="блок устройства"]').clone();dev_block.show();dev_block.attr('fid',fid).attr('rid',rid).attr('did',did).attr('name','блок устройства '+did);dev_block.find('div[name="шапка блока устройства"]').find('div[name="имя"]').html(devname+' ...'+devtype+'');room_block.find('div[name="контейнер устройств"]').append(dev_block);for(var rhid in devarr['rh']){var rhname=rhid;if(typeof(XiotCharacteristics[rhid])!=="undefined"){rhname=XiotCharacteristics[rhid]['ru'];} var h_block=dev_block.find('div[name="блок характеристики"]').clone();var tag='/xdev/'+did+'/'+rhid;h_block.show();h_block.attr('tag',tag).attr('fid',fid).attr('rid',rid).attr('did',did).attr('rhid',rhid).attr('name','блок характеристики '+did+rhid);h_block.find('div[name="имя"]').html(rhname);h_block.find('div[name="тэг"]').html(tag);dev_block.find('div[name="контейнер характеристик"]').append(h_block);hdevsarr[tag]={};hdevsarr[tag]['name']=roomname+' - '+devname+' - '+rhname;} for(var rhid in devarr['oh']){var rhname=rhid;if(typeof(XiotCharacteristics[rhid])!=="undefined"){rhname=XiotCharacteristics[rhid]['ru'];} var h_block=dev_block.find('div[name="блок характеристики"]').clone();var tag='/xdev/'+did+'/'+rhid;h_block.show();h_block.attr('tag',tag).attr('fid',fid).attr('rid',rid).attr('did',did).attr('rhid',rhid).attr('name','блок характеристики '+did+rhid);h_block.find('div[name="имя"]').html(rhname);h_block.find('div[name="тэг"]').html(tag);dev_block.find('div[name="контейнер характеристик"]').append(h_block);hdevsarr[tag]={};hdevsarr[tag]['name']=roomname+' - '+devname+' - '+rhname;}} break;}}} break;}}} break;case'logic':break;}} SYS_Setup.find('div[name="загрузка"]').hide();} select(funcres){if(this.printflag===false){this.printflag=true;this.print();} this.SYS_Setup.show();this.funcres=funcres;} SYS(setval,el){switch(setval){case'HdevSelect':var tag=el.attr('tag');this.funcres.hdevselect(tag,this.hdevsarr[tag]);this.SYS_Setup.hide();break;case'закрыть':this.SYS_Setup.hide();break;default:alert(setval+' - default');}}} try{HdevSelectClass=new HdevSelectFunc();}catch(err){alert('Ошибка HdevSelectClass - '+err);}"use strict";var MqttBufL={};var FtagSubArr={};var FdevSubArr={};var MqttSubList={};var lMqttSubList={};var EthConnnect=0;var MqttConnnect=0;var LMqttConnnect=0;var PlcConnnect=0;var FxJsonSend='';var FxJsonlength=0;var FxJsonPartSend=0;var TopicBlockList={};var PlcConErrorTimeout=undefined;var PlcConErrorTimeoutFlag=0;var PlcConErrorCountMess=0;var PlcConErrorCountMessFlag=0;var Load3D=false;var MQTTADDR="";var MQTTPORT=1;var MQTTUSER='user';var MQTTPASS='pass';var MQTTSSL=true;var MQTTPIN='';var MQTTPOUT='';var Connecting=false;var AppConnectSwitch=false;var ConnectMqtt=false;var ConnectPlc=false;$(document).ready(function(){window.addEventListener('online',function(e){EthCon(1)});window.addEventListener('offline',function(e){EthCon(0)});$('div').each(function(){var el=$(this);if(typeof(el.attr('UiFunc'))!=="undefined"){FtagSub(el,'start');TouchFuncUser('start',el);}});SendMqttL(MqttBufL);var ClearBlockTopicTimer=setInterval(ClearBlockTopic,2000);var jsrun=setInterval(function(){if(navigator.onLine){SystemLog2('jsrun');EthCon(1);if(PlcConErrorTimeoutFlag===0){PlcConErrorTimeoutFlag=2;PlcConErrorTimeout=setTimeout(PlcCon,5000,0);PlcConErrorCountMessFlag=PlcConErrorCountMess;}}else{EthCon(0);}},1000);setTimeout(start_connect,1000);TagSet('/system/internet/connect',0);TagSet('/system/mqtt/localconnect',0);TagSet('/system/mqtt/cloudconnect',0);TagSet('/system/plc/connect',0);});function RestartFxUi(xid){var el=$('#'+xid);for(var topicres in UiFuncMqttConArr){for(var ikey in UiFuncMqttConArr[topicres]){if(ikey.indexOf(xid)!==-1){delete UiFuncMqttConArr[topicres][ikey];}}} funcstart('',$('#'+xid),'start','');for(var tag in FtagSubArr){for(var ikey in FtagSubArr[tag]){if(ikey.indexOf(xid)!==-1){delete FtagSubArr[tag][ikey];}}} for(var tag in FdevSubArr){for(var ikey in FdevSubArr[tag]){if(ikey.indexOf(xid)!==-1){delete FdevSubArr[tag][ikey];}}} FtagSub(el,'RestartFxUi');} function start_connect(){if(localStorage.getItem('app')){if(localStorage.getItem('app')==1){lConnect();}} Connect();} function IsJsonString(str){try{JSON.parse(str);}catch(e){return false;} return true;} function TagSet(tag,val){var tagarr=tag.split('/');TagVal[tag]=val;try{val=JSON.parse(val);}catch(e){} switch(tagarr[1]){case'xlogic':if(localStorage.getItem('editor')=='1'){var lid=tagarr[2];var func=tagarr[3];var ds=$('.SYS_DevicesSetup[did="'+lid+'"]');if(ds.length>0){var sv=ds.find('.SYS_DevicesSetupVal[func="'+func+'"]');if(sv.length>0){var type=sv.attr('type');switch(type){case'input':case'select':sv.val(val);break;default:sv.val(val);} if(typeof(DevicesConf['logic'])!=="undefined"){if(typeof(DevicesConf['logic'][lid])!=="undefined"){DevicesConf['logic'][lid][func]=val;}}}}} break;case'xdev':case'xhome':case'xfloor':case'xroom':if(localStorage.getItem('editor')=='1'){var lid=tagarr[2];var func=tagarr[3];var ds=$('.SYS_DevicesSetup[did="'+lid+'"]');if(ds.length>0){var sv=ds.find('.SYS_DevicesSetupBlock[hn="'+func+'"]').find('.SYS_DevicesSetupVal[func="value"]');if(sv.length>0){var type=sv.attr('type');switch(type){case'input':case'select':sv.val(val);break;default:sv.val(val);}}}} break;case'xsys':switch(tagarr[2]){case'plc':switch(tagarr[3]){case'update':switch(tagarr[4]){case'start':$(".SYS_PlcUpdateBlock[name='UpdatePlcStatus']").show().html('

    Начинаю обновление до версии - '+val+'

    ');break;case'mess':$(".SYS_PlcUpdateBlock[name='UpdatePlcStatus']").prepend('

    '+val+'

    ');break;case'load':if($(".SYS_PlcUpdateBlock[name='UpdatePlcStatus']").find('.SYS_PlcUpdateLoad').length==0){$(".SYS_PlcUpdateBlock[name='UpdatePlcStatus']").prepend('
    ')} $('.SYS_PlcUpdateLoadFon').css('width',val+'%');break;} break;} break;case'xlink':try{var el=$('#'+tagarr[3]);if(el.attr('uifunc')){var UiFuncArr=JSON.parse(el.attr('uifunc'));var lil=tagarr[4];var nin=tagarr[5];if(UiFuncArr['el'][lil]){var type=UiFuncArr['el'][lil]['type'];setTimeout(UiFuncLinkRun,10,UiFuncArr,type,lil,nin,'',el,el,val,'topic');}else{SystemLog('нет элемента - '+tagarr[3]+' lil - '+lil);}}}catch(err){SystemLog(err);} break;case'pong':if(val.indexOf(';')!==-1){SystemLog2(val);var mess=val.split(';');var plcver=mess[0];var plctime=mess[1];$('.SYS_PlcUpdateBlock[name="version"]').attr('ver',plcver).html('Версия контроллера - '+plcver);if(localStorage.getItem('editor')==1){var uiver=localStorage.getItem('editorver');if(uiver.split('-')[0]!==plcver){$('.SYS_PlcBlockEl[func="UpdatePlc"]').show();}else{$('.SYS_PlcBlockEl[func="UpdatePlc"]').hide();$('.SYS_PlcUpdateBlock[name="version"]').attr('ver',plcver).html('Версия контроллера - '+plcver+' , обновление не требуется.');}}} clearTimeout(PlcConErrorTimeout);PlcConErrorTimeoutFlag=0;PlcCon(1);break;case'fxlogic':if(localStorage.getItem('editor')==1){switch(tagarr[3]){case'debug':var FxDebugKey=tagarr[4];var FxDebugKeyEl=tagarr[5];var FxDebugVal=val;var SYS_UiFuncBlockBox=$('.SYS_UiFuncBlockBox');if(SYS_UiFuncBlockBox.attr('UiFuncXid')==FxDebugKey){SYS_UiFuncBlockBox.find('.SYS_UiFunc[key="'+FxDebugKeyEl+'"]').find('.SYS_UiFuncDebug').html(val).css('color','red');var t=setTimeout(FxDebugColor,500,FxDebugKeyEl);} case'update':switch(tagarr[4]){case'json':switch(tagarr[5]){case'part':if(FxJsonlength>3000*(FxJsonPartSend+1)){FxJsonPartSend=parseInt(val)+1;SendFxLogicPart(FxJsonPartSend)}else{$('.SYS_FxUpdateBlockSliderFon').css('width','100%');$('.SYS_FxUpdateBlockSliderPersent').html('завершение...');TagChange('/xsysui/fxlogic/update/jsonlength',''+FxJsonlength);} break;} break;case'jsonstartok':$('.SYS_FxUpdateBlockSliderFon').css('width','0%');SendFxLogicPart(0);break;case'ok':$('.SYS_FxUpdateBlockSliderPersent').html('Обновление завершено!');setTimeout("$('.SYS_FxUpdateBlock').hide();",1000);break;case'error':$('.SYS_FxUpdateBlockSliderPersent').html('Ошибка!');setTimeout("$('.SYS_FxUpdateBlock').hide();",5000);break;} break;}} break;case'module':switch(tagarr[3]){case'wirenboard':console.log(val);var wbnum=tagarr[4];switch(tagarr[5]){case'connect':Wb_constructor.connect(val);break;case'devices':WbDevUpdate[tagarr[6]]=val;Wb_constructor.updateprogress();break;case'updatecount':Wb_constructor.updatecount(val);WbDevUpdate={};break;case'update':Wb_constructor.update(val);break;} break;case'russound':Russound_constructor.module(tagarr,val);break;case'message':try{Message_constructor.module('get_bd',val);}catch(err){alert(err);} break;case'history':try{History_constructor.module(tagarr[4],tagarr[5],val);}catch(err){alert(err);} break;case'z2m':switch(tagarr[4]){case'device':SystemLog(val);$('.SYS_PlcModuleParamBlock[func="z2m_dev_list"]').html('');var arr=val;var xiot_types=JSON.parse($('.SYS_xiot_types').attr('json'));for(var key in arr){var id=arr[key]['ieee_address'];var model_id=arr[key]['model_id'];var devtype=arr[key]['type'];if(devtype!=='Coordinator'){var pb2=$('.SYS_PlcModule[type="zigbee2mqtt"]').find('.SYS_PlcModuleParamBlock2_Temp').clone().removeClass('SYS_PlcModuleParamBlock2_Temp').addClass('SYS_PlcModuleParamBlock2').show();switch(devtype){case'Coordinator':break;case'Router':pb2.find('.SYS_Z2MBlock').css('background-color','#88969f');break;case'EndDevice':break;} pb2.attr('arr',id);pb2.find('.SYS_PlcModuleBlock2').attr('arr',id);pb2.find('.SYS_PlcModuleBlock2').find('input[name=name]').val(model_id);pb2.find('.SYS_Z2MBlock').find('.SYS_PlcModuleBut[func="module_param_open"]').html(model_id+' - '+id);if(arr[key]['definition']!==null){for(var keyex in arr[key]['definition']['exposes']){var features=arr[key]['definition']['exposes'][keyex]['features'];if(typeof(features)!=="undefined"){var name=features[0]['property'];var typezb=features[0]['type'];var unit=features[0]['unit'];}else{var name=arr[key]['definition']['exposes'][keyex]['property'];var typezb=arr[key]['definition']['exposes'][keyex]['type'];var unit=arr[key]['definition']['exposes'][keyex]['unit'];} pb2.find('.SYS_PlcModuleBlock2').find('table').append('/z2m/'+id+'/'+name+'-');var sclone=$('.Select_xiottype').eq(0).clone();SystemLog('11111111111111111111111111111111111111111111111111111111111111111111111');SystemLog(sclone);sclone.attr('class','SYS_PlcModuleVal').attr('name','typexiot').show();switch(typezb){case'numeric':switch(unit){case'%':sclone.val('persent');break;case'°':sclone.val('temperature');break;default:sclone.val('number');} break;case'binary':sclone.val('switch');break;case'switch':sclone.val('switch');break;default:sclone.val('text');} pb2.find('.SYS_PlcModuleBlock2').find('table').find('tr[arr='+name+']').find('td[name=typexiot]').append(sclone);}} $('.SYS_PlcModuleParamBlock[func="z2m_dev_list"]').append(pb2);}} break;case'info':SystemLog(val);break;case'bridge':switch(tagarr[5]){case'networkmap':$('.SYS_Z2MMap').html(val);break;case'log':var data=tagarr[6];var arr=val;switch(arr['type']){case'pairing':switch(arr['message']){case'interview_successful':var tr=""+data+""+arr['type']+""+arr['message']+""+arr['meta']['friendly_name']+""+arr['meta']['vendor']+""+arr['meta']['description']+""+arr['meta']['supported']+"";break;default:var tr=""+data+""+arr['type']+""+arr['message']+""+arr['meta']['friendly_name']+"";} break;case'device_announced':case'device_connected':case'device_removed':var tr=""+data+""+arr['type']+""+arr['message']+""+arr['meta']['friendly_name']+"";break;default:var tr=""+data+""+val+"";} $('.SYS_PlcModuleParamBlock[func="z2m_log"]').find('table').append(tr);break;} break;} break;case'1wire':switch(tagarr[4]){case'device':$('.SYS_PlcModuleParamBlock[func="1wire_dev_list"]').html('');var devices={};if($('.SYS_PlcModuleSetup').attr('json')){var setupjson=$('.SYS_PlcModuleSetup').attr('json');var setuparr=JSON.parse(setupjson);devices=setuparr['1wire']['0']['devices'];} var arr=val;var pb2=$('
    ТэгИмяЗначение% ошибок
    ');for(var id in arr){var name='';if(typeof(devices[id])!=="undefined"){name=devices[id]['name'];} pb2.find('table').append('/1wire/'+id+'/temperature');} $('.SYS_PlcModuleParamBlock[func="1wire_dev_list"]').append(pb2);break;} break;case'acad':fjsfunc_attr1=tagarr[4];fjsfunc_attr2=val;SYS_acad();break;} break;} break;} if(FtagSubArr[tag]){for(var ikey in FtagSubArr[tag]){var UiFuncArr=FtagSubArr[tag][ikey]['UiFuncArr'];var box=FtagSubArr[tag][ikey]['box'];var el=FtagSubArr[tag][ikey]['el'];var fel=FtagSubArr[tag][ikey]['fel'];var key=FtagSubArr[tag][ikey]['key'];setTimeout(UiFuncLinkStart,10,UiFuncArr,box,el,fel,key,TagVal[tag],'1',tag);}} if(FdevSubArr[tag]){for(var ikey in FdevSubArr[tag]){var UiFuncArr=FdevSubArr[tag][ikey]['UiFuncArr'];var box=FdevSubArr[tag][ikey]['box'];var el=FdevSubArr[tag][ikey]['el'];var fel=FdevSubArr[tag][ikey]['fel'];var key=FdevSubArr[tag][ikey]['key'];setTimeout(UiFuncLinkStart,10,UiFuncArr,box,el,fel,key,TagVal[tag],'1',tag);}}} function AddTopicBlockList(topic){TopicBlockList[topic]=1;} function ClearBlockTopic(){for(var topic in TopicBlockList){SystemLog('ClearBlockTopic - '+topic);delete TopicBlockList[topic];}} function TagChange(tag,val){if(typeof(tag)!=="undefined"&&typeof(val)!=="undefined"){var tagarr=tag.split('/');var retain=false;var sendflag=false;switch(tagarr[1]){case'xsysui':var retain=false;sendflag=true;break;case'xtagr':var retain=false;sendflag=true;break;default:var tags=JSON.parse($('.SYS_Tags').attr('json'));if(tags[tag]){switch(tags[tag]['typexiot']){case'percentage':val=parseInt(val);if(val>100){val=100;} if(val<0){val=0;} val=String(val);break;}} tag='/xtagw'+tag;sendflag=true;} if(sendflag&&typeof(tag)!=="undefined"&&typeof(val)!=="undefined"){TagVal[tag]=val;if(typeof(MqttBufL[tag])!=="undefined"){MqttBufL[tag]['retain']=retain;MqttBufL[tag]['val']=val;}else{MqttBufL[tag]=[];MqttBufL[tag]['retain']=retain;MqttBufL[tag]['val']=val;} SystemLog(MqttBufL);}}} function TagSub(tag,broker='all'){if(typeof(tag)!=="undefined"){switch(broker){case'cloud':if(MqttConnnect==1){MqttSubList[tag]=0;if(MQTTPIN!==''){client.subscribe('/'+MQTTPIN+'/xtag'+tag);SystemLog2('sub = '+'/'+MQTTPIN+'/xtag'+tag);}else{client.subscribe('/xtag'+tag);SystemLog2('sub = '+'/xtag'+tag);} if(typeof(LogicFuncSend['tagsub'])!=="undefined"){if(typeof(LogicFuncSend['tagsub'][tag])==="undefined"){var tags=JSON.parse($('.SYS_Tags').attr('json'));if(tags[tag]!==undefined){var typexiot=tags[tag]['typexiot'];TagChange('/xtagr'+tag,typexiot);}}}}else{MqttSubList[tag]=0;} break;case'local':if(LMqttConnnect==1){lMqttSubList[tag]=0;lclient.subscribe('/xtag'+tag);SystemLog('LLLL sub = '+'/xtag'+tag);}else{lMqttSubList[tag]=0;} break;case'all':TagSub(tag,'local');TagSub(tag,'cloud');break;}}} function SendMqttL(buf){var len=Object.keys(buf).length;if(len>0){try{var tag=Object.keys(buf)[0];var retain=buf[tag]['retain'];var val=buf[tag]['val'];if(val.constructor===Array){val=JSON.stringify(val);} if(val.constructor===Object){val=JSON.stringify(val);} val=val+'!x!'+UiId if(LMqttConnnect==1){SystemLog2('>>>>>> local - '+tag+' - '+val);var mqtt_mes=new Paho.MQTT.Message(val);mqtt_mes.destinationName=tag;mqtt_mes.retained=retain;if(PlcConnnect==1){lclient.send(mqtt_mes);delete buf[tag];}else{if(tag.indexOf('update/json')===-1){delete buf[tag];}}}else if(MqttConnnect==1){var tagc=tag;if(MQTTPOUT!==''){tagc='/'+MQTTPOUT+tag;} SystemLog2('>>>>>> cloud - '+tagc+' - '+val);var mqtt_mes=new Paho.MQTT.Message(val);mqtt_mes.destinationName=tagc;mqtt_mes.retained=retain;if(PlcConnnect==1){client.send(mqtt_mes);delete buf[tag];}else{if(tag.indexOf('update/json')===-1){delete buf[tag];}}}}catch(err){SystemLog2('mqtt send '+tag+' - '+val+'ERROR - '+err);SystemLog2(val);delete buf[tag];} setTimeout(SendMqttL,100,buf);}else{setTimeout(SendMqttL,30,buf);}} function FtagSub(el,func){var id=el.attr('id');var UiFuncJson=el.attr('UiFunc');if(UiFuncJson){var UiFuncArr=JSON.parse(UiFuncJson);ElTagsArr[id]={};for(var key in UiFuncArr['el']){var type=UiFuncArr['el'][key]['type'];switch(type){case'ftagsub':var tag=UiFuncArr['el'][key]['val'];if(tag!==undefined){if(tag.indexOf('ta:')!==-1){if(el.attr('tags')){var TagsArr=JSON.parse(el.attr('tags'));var val=tag.replace('ta:','');tag=false;if(TagsArr['tags'][val]!==undefined){tag=TagsArr['tags'][val];}}} if(tag){var tags=[];if(tag.indexOf(';')!==-1){tags=tag.split(';');}else{tags.push(tag);} for(var tagkey in tags){var tag=tags[tagkey];if(typeof(FtagSubArr[tag])==="undefined"){FtagSubArr[tag]=[];} FtagSubArr[tag][id]=[];FtagSubArr[tag][id]['UiFuncArr']=UiFuncArr;FtagSubArr[tag][id]['key']=key;FtagSubArr[tag][id]['el']=el;FtagSubArr[tag][id]['fel']=el;ElTagsArr[id][tag]='';}}} break;case'fdevsub':var LinkDevJson=el.attr('linkdev');var linkname=UiFuncArr['el'][key]['val'];if(linkname.indexOf('da:')!==-1){linkname=linkname.replace('da:','');} if(LinkDevJson){var ArrLinkDev=JSON.parse(LinkDevJson);if(typeof(ArrLinkDev[linkname])!=="undefined"){var tag='/x'+ArrLinkDev[linkname];if(typeof(FdevSubArr[tag])==="undefined"){FdevSubArr[tag]=[];} FdevSubArr[tag][id]=[];FdevSubArr[tag][id]['UiFuncArr']=UiFuncArr;FdevSubArr[tag][id]['key']=key;FdevSubArr[tag][id]['el']=el;FdevSubArr[tag][id]['fel']=el;ElTagsArr[id][tag]='';}} break;}}}} var NoMqttConnectCloudCount=0;function EthCon(val){if(EthConnnect!==val){TagSet('/system/internet/connect',val);} EthConnnect=val;} function MqttCon(type,val){switch(type){case'local':TagSet('/system/mqtt/localconnect',val);break;case'cloud':TagSet('/system/mqtt/cloudconnect',val);if(val==1){$('.SYS_MqttConStatus').css('color','green').html('Подключен');}else{$('.SYS_MqttConStatus').css('color','orange').html('Не подключен');} break;} var curconn=1;if(MqttConnnect==LMqttConnnect){curconn=MqttConnnect;}} function PlcCon(val){if(val==1){if(PlcConnnect!==val){$('.SYS_PlcUpdateBlock[name="connect"]').css('color','green').html('Подключен');$('div[func="sendconfigplc"]').css('fill','green');var page=$('.SYS_Main').find('div[type="Page"][select="1"]');if(page.length>0){setTimeout(openpage,100,page,'PlcCon');}}}else{PlcConErrorTimeoutFlag=0;if(PlcConErrorCountMessFlag===PlcConErrorCountMess){PlcConErrorTimeoutFlag=1;$('.SYS_PlcUpdateBlock[name="connect"]').css('color','orange').html('Не подключен');$('div[func="sendconfigplc"]').css('fill','red');}} TagSet('/system/plc/connect',val);PlcConnnect=val;} function onMessageArrivedAll(message,broker){PlcConErrorCountMess++;SystemLog2('<<<<<< '+broker+' '+message.destinationName+" : "+message.payloadString);var tag=message.destinationName;var val=message.payloadString;if(val==''){return;} var UiIdRes='xxx';if(val.indexOf('!x!')!==-1){UiIdRes=val.split('!x!')[1];val=val.split('!x!')[0];if(UiId!==UiIdRes){return;}} if(broker=='cloud'){if(MQTTPIN!==''){tag=tag.replace('/'+MQTTPIN,'');}} tag=tag.replace('/xtag/','/');TagSet(tag,val);} function onMessageArrived(message){onMessageArrivedAll(message,'cloud');} function lonMessageArrived(message){onMessageArrivedAll(message,'local');} var mqttclientid="c_"+newid(10);function Connect(){MQTTADDR="xiot.pro";MQTTPORT=1;MQTTUSER='user';MQTTPASS='pass';MQTTSSL=true;MQTTPIN='';MQTTPOUT='';if(localStorage.getItem('MQTTADDR')){MQTTADDR=localStorage.getItem('MQTTADDR');MQTTPORT=localStorage.getItem('MQTTPORT');MQTTUSER=localStorage.getItem('MQTTUSER');MQTTPASS=localStorage.getItem('MQTTPASS');MQTTSSL=false;if(localStorage.getItem('MQTTSSL')=='true'){MQTTSSL=true;} MQTTPIN=localStorage.getItem('MQTTPIN');MQTTPOUT=localStorage.getItem('MQTTPOUT');} if(localStorage.getItem('project')){var project=localStorage.getItem('project');if(localStorage.getItem(project+'mqtt')){try{var mqttarr=JSON.parse(localStorage.getItem(project+'mqtt'));MQTTADDR=mqttarr['addr'];MQTTPORT=mqttarr['port'];MQTTUSER=mqttarr['user'];MQTTPASS=mqttarr['pass'];MQTTSSL=false;if(mqttarr['ssl']=='true'){MQTTSSL=true;} MQTTPIN=mqttarr['pin'];MQTTPOUT=mqttarr['pout'];}catch(err){alert(err);}}} optionsCLOUD={cleanSession:false,useSSL:MQTTSSL,userName:MQTTUSER,password:MQTTPASS,onSuccess:onConnectSuccess,onFailure:onFailedConnect,reconnect:true,mqttVersion:3,timeout:6,keepAliveInterval:6} if(MQTTPORT!==1){client=new Paho.MQTT.Client(MQTTADDR,Number(MQTTPORT),mqttclientid);client.onConnectionLost=onConnectionLost;client.onMessageArrived=onMessageArrived;client.connect(optionsCLOUD);SystemLog2('CONNECT TO '+MQTTADDR);}} var mqttclientidLLL="l_"+newid(10);function lConnect(){var L_Location=window.location.host;var L_MQTTADDR=L_Location;var L_MQTTPORT=18887;var L_MQTTUSER='';var L_MQTTPASS='';var L_MQTTSSL=false;var L_MQTTPIN='';lMqttSubList=JSON.parse(JSON.stringify(MqttSubList)) if(L_Location=="localhost"){if(typeof($('.SYS_MQTT').attr('localip'))!=='undefined'){L_MQTTADDR=$('.SYS_MQTT').attr('localip');L_MQTTPORT=18887;AppConnectSwitch=true;L_MQTTSSL=false;L_MQTTUSER="";L_MQTTPASS="";}} if(L_MQTTADDR.indexOf(':')!==-1){var arr=L_MQTTADDR.split(':');L_MQTTADDR=arr[0];} l_options={cleanSession:false,useSSL:L_MQTTSSL,userName:L_MQTTUSER,password:L_MQTTPASS,onSuccess:lonConnectSuccess,onFailure:lonFailedConnect,reconnect:true,mqttVersion:3,timeout:2,keepAliveInterval:2} if(L_MQTTADDR!==""){lclient=new Paho.MQTT.Client(L_MQTTADDR,Number(L_MQTTPORT),mqttclientidLLL);lclient.onConnectionLost=lonConnectionLost;lclient.onMessageArrived=lonMessageArrived;lclient.disconnectedPublishing=false;lclient.connect(l_options);}} function onConnectSuccess(){SystemLog2("onConnectSuccess Cloud");MqttConnnect=1;MqttCon('cloud',1);client.subscribe("/#");} function lonConnectSuccess(){LMqttConnnect=1;MqttCon('local',1);SystemLog2("LLLLLLLLLLLLLLLLLLLLLLLLLLLL onConnect");lclient.subscribe("/#");TagSub("/xsys/pong",'local');} function onFailedConnect(e){SystemLog2('error cloud connect '+e) MqttConnnect=0;MqttCon('cloud',0);setTimeout(client.connect,3000,optionsCLOUD);} function lonFailedConnect(e){LMqttConnnect=0;try{LMqttConnnect=0;MqttCon('local',0);SystemLog2("lonFailedConnect");setTimeout(lclient.connect,3000,l_options);}catch(err){alert('err '+err);}} function onConnectionLost(responseObject){SystemLog2("onConnectionLost:"+responseObject.errorMessage);MqttConnnect=0;MqttCon('cloud',0);} function lonConnectionLost(responseObject){LMqttConnnect=0;try{MqttCon('local',0);}catch(err){alert('lonConnectionLost err '+err);}}"use strict";class FjsEditorClass{constructor(){this.editorwindow=$('.SYS_jsEditor');if(this.editorwindow.length){this.editelem=$('.SYS_ElementsContainer').find('div[name="SYS_JsEditor"]');if(this.editelem.length){this.editorwindow.append(this.editelem);this.editblock=this.editelem.find('div[name="SYS_РедакторJS"]');} this.editor=false;if(this.editblock.length){this.editid=this.editblock.attr('id');} this.keyel=0;}} open(el){this.keyel=el.attr('key');var val='return in1;';var UiFuncJson=$('#'+UiFuncXid).attr('UiFunc');if(UiFuncJson){var UiFuncArr=JSON.parse(UiFuncJson);for(var key in UiFuncArr['el']){if(key===this.keyel){if(typeof(UiFuncArr['el'][key]['js'])!=="undefined"){val=UiFuncArr['el'][key]['js'];}}}} this.editor=ace.edit(this.editid);this.editor.setTheme("ace/theme/monokai");this.editor.session.setMode("ace/mode/javascript");if(this.editor){this.editor.setValue(val);this.editorwindow.show();}else{alert('Ошибка: редактор не загружен!');}} set(setval,el){if(this.editor){console.log(setval);switch(setval){case'SYS_jseditor_close':this.editorwindow.hide();break;case'SYS_jseditor_save':let value=this.editor.getValue();var UiFuncJson=$('#'+UiFuncXid).attr('UiFunc');if(UiFuncJson){var UiFuncArr=JSON.parse(UiFuncJson);for(var key in UiFuncArr['el']){if(key===this.keyel){UiFuncArr['el'][key]['js']=value;var ArrJson=JSON.stringify(UiFuncArr);$('#'+UiFuncXid).attr('UiFunc',ArrJson);}}} break;default:alert(setval+' - default');}}else{alert('Ошибка: редактор не загружен!');}}} var FjsEditor=new FjsEditorClass();"use strict";var camera3D,scene,raycaster,renderer,elf;var lightHelper,shadowCameraHelper;var gui;var particles=[];var Scale3Dx=[];var Scale3Dy=[];var Scale3Dz=[];var Rotation3Dx=[];var Rotation3Dy=[];var Rotation3Dz=[];var Opacity3D=[];var Opacity3DCur=[];var Scale3DxSet=[];var Scale3DxXYZ=[];var mouse3D=new THREE.Vector2(),INTERSECTED;var controls3D;var sky,sunSphere,PosCam;var RenderStart=0;var CamMove=false;var CamSetPos=new Array();var CamSavePos=new Array();var Div3D=null;var Arr3D=[];var pos=[];var spotLight;var setSizeW=0;var setSizeH=0;var Interval={};var Timeout={};var clock=new THREE.Clock();var angle=0;var angularSpeed=THREE.Math.degToRad(5);var delta=0;var radius=5;var CamPosX=0;var CamPosY=0;var CamPosZ=0;var SceneArr=new Array();function Cam3dSelect(cam){var ArrJson=$('div[type="3D"]').attr('cam3d');var ArrCam3D=JSON.parse(ArrJson);var pos=[];CamSetPos[0]=ArrCam3D['cams'][cam]['position']['CameraPosX'];CamSetPos[1]=ArrCam3D['cams'][cam]['position']['CameraPosY'];CamSetPos[2]=ArrCam3D['cams'][cam]['position']['CameraPosZ'];CamSetPos[3]=ArrCam3D['cams'][cam]['position']['ControlTargetX'];CamSetPos[4]=ArrCam3D['cams'][cam]['position']['ControlTargetY'];CamSetPos[5]=ArrCam3D['cams'][cam]['position']['ControlTargetZ'];CamMove=true;} function SetColorMesh(arr,MatNew,opacity){if(typeof(arr)=='object'){if('children'in arr){if(arr.type=='Mesh'){arr.material=MatNew;if(opacity&&opacity==0){arr.visible=false;}else{arr.visible=true;}}else{for(var i=0;i
    ');function getchild(arr,block){for(var i=0;i
    ');block.append(blocknew);Arr3D[xid]=arr.children[i];getchild(arr.children[i],blocknew);}}} getchild(dae,Block3D);var Block3DOld='';if(Div3D.find('div[type="Elem3dBlock"]').length>0){Block3DOld=Div3D.find('div[type="Elem3dBlock"]');Block3DOld.find('div').each(function(){if($(this).attr('style3D')){var xid=$(this).attr('xid');if(Arr3D[xid]){var styleArr=$(this).attr('style3D').split(';');for(var key in styleArr){var pval=styleArr[key].split(':');var param=pval[0];var val=pval[1];switch(param){case'color':if(val.indexOf('rgb')==-1){val=hexToRgbA(val);} SetColor3D(xid,val);break;case'visibility':if(val=='hidden'){Arr3D[xid].visible=false;}else{Arr3D[xid].visible=true;} break;}}}}});if(Block3DOld.length>0){Block3DOld.find('div').each(function(){var el=$(this);var id=el.attr('id');var xid=el.attr('xid');var name=el.attr('name');if(Block3D.find('div[xid="'+xid+'"]').length>0){if(el.attr('uifunc')){Block3D.find('div[xid="'+xid+'"]').attr('uifunc',el.attr('uifunc'));} if(el.attr('attr')){Block3D.find('div[xid="'+xid+'"]').attr('attr',el.attr('attr'));} if(el.attr('style3d')){Block3D.find('div[xid="'+xid+'"]').attr('style3d',el.attr('style3d'));}}});} Block3DOld.remove();Div3D.append(Block3D);}else{Div3D.append(Block3D);} controls3D.update();setSizeW=parseInt(Div3D.css('width'));setSizeH=parseInt(Div3D.css('height'));renderer.setSize(setSizeW,setSizeH);SystemLog('!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!');SystemLog(setSizeW);SystemLog(setSizeH);Load3D=true;$('.SYS_3DLoadStatus').remove();if(typeof(Div3D.attr('cam3d'))!=="undefined"){var camsjson=Div3D.attr('cam3d');var camsarr=JSON.parse(camsjson);var keys=Object.keys(camsarr['cams']);SystemLog(keys);var cam=camsarr['cams'][keys[0]]['position'];var pos=[cam['CameraPosX'],cam['CameraPosY'],cam['CameraPosZ'],cam['ControlTargetX'],cam['ControlTargetY'],cam['ControlTargetZ']];Div3DCamPosSet(pos);setInterval(renderAnimate,50);}});var onProgress=function(xhr){if(Div3D.find('.SYS_3DLoadStatus').length==0){Div3D.append("
    ");} if(xhr.lengthComputable){var percentComplete=xhr.loaded/xhr.total*100;Div3D.find('.SYS_3DLoadStatus').html('загрузка '+parseInt(percentComplete)+'%');}};var onError=function(xhr){alert('ERROR')};var loader=new THREE.ColladaLoader(loadingManager);loader.load(dae,function(collada){dae=collada.scene;},onProgress,onError);Div3D.find('.SYS_3DLoadStatus').remove();raycaster=new THREE.Raycaster();renderer=new THREE.WebGLRenderer({antialias:true});Div3D.append(renderer.domElement);var ambient=new THREE.AmbientLight(0xffffff,0.8);scene.add(ambient);setSizeW=parseInt(Div3D.css('width'));setSizeH=parseInt(Div3D.css('height'));onResize();spotLight=new THREE.SpotLight(0xffffff,0.2,30,Math.PI/1);scene.add(spotLight);controls3D=new THREE.OrbitControls(camera3D,renderer.domElement);controls3D.addEventListener('change',render);var minDistance=0.25;if(Param3D['minDistance']){minDistance=parseFloat(Param3D['minDistance'])/100;} controls3D.minDistance=minDistance;var maxDistance=100;if(Param3D['maxDistance']){maxDistance=parseFloat(Param3D['maxDistance'])/100;} controls3D.maxDistance=maxDistance;controls3D.enablePan=false;controls3D.minPolarAngle=0;controls3D.maxPolarAngle=Math.PI/2.05;controls3D.target.x=0;controls3D.target.y=0;controls3D.target.z=0;controls3D.update();Div3D.attr('controls',controls3D);Div3D.attr('renderer',renderer);Div3D.attr('scene',scene);Div3D.attr('camera3D',camera3D);window.addEventListener('resize',onResize,false);SystemLog('Div3D');SystemLog(Div3D);} function onResize(){camera3D.aspect=setSizeW/setSizeH;camera3D.updateProjectionMatrix();renderer.setSize(setSizeW,setSizeH);} function render(){spotLight.position.x=camera3D.position.x;spotLight.position.y=camera3D.position.y;spotLight.position.z=camera3D.position.z;spotLight.target.position.x=controls3D.target.x;spotLight.target.position.y=controls3D.target.y;spotLight.target.position.z=controls3D.target.z;renderer.render(scene,camera3D);} function renderAnimate(){var rend=0;if(CamMove==true){var CamMoveSet=0;for(var p=0;p<6;p++){if(CamSavePos[p]!=CamSetPos[p]){var razn=Math.abs(CamSavePos[p]-CamSetPos[p]);if(razn>0.005){razn=razn/5;if(CamSavePos[p]5){CamMove=false;rend=1;}} for(var key in Rotation3Dx){var val=Rotation3Dx[key]['val'];var step=6.3/(parseInt(Rotation3Dx[key]['transition'])*20);var valres=Arr3D[key].rotation.x;var diff=Math.abs(val-valres);if(diff>step){if(valres>val){Arr3D[key].rotation.x=Arr3D[key].rotation.x-step;}else{Arr3D[key].rotation.x=Arr3D[key].rotation.x+step;}}else{Arr3D[key].rotation.x=val;delete Rotation3Dx[key];} rend=1;} for(var key in Rotation3Dy){var val=Rotation3Dy[key]['val'];var step=6.3/(parseInt(Rotation3Dy[key]['transition'])*20);var valres=Arr3D[key].rotation.y;var diff=Math.abs(val-valres);if(diff>step){if(valres>val){Arr3D[key].rotation.y=Arr3D[key].rotation.y-step;}else{Arr3D[key].rotation.y=Arr3D[key].rotation.y+step;}}else{Arr3D[key].rotation.y=val;delete Rotation3Dy[key];} rend=1;} for(var key in Scale3Dx){var val=Scale3Dx[key]['val'];var step=1/(parseInt(Scale3Dx[key]['transition'])*20);if(step==1){Arr3D[key].scale.x=val;delete Scale3Dx[key];}else{var valres=Arr3D[key].scale.x;var diff=Math.abs(val-valres);if(diff>step){if(valres>val){Arr3D[key].scale.x=Arr3D[key].scale.x-step;}else{Arr3D[key].scale.x=Arr3D[key].scale.x+step;}}else{Arr3D[key].scale.x=val;delete Scale3Dx[key];}} rend=1;} for(var key in Scale3Dy){var val=Scale3Dy[key]['val'];var step=1/(parseInt(Scale3Dy[key]['transition'])*20);if(step==1){Arr3D[key].scale.y=val;delete Scale3Dy[key];}else{var valres=Arr3D[key].scale.y;var diff=Math.abs(val-valres);if(diff>step){if(valres>val){Arr3D[key].scale.y=Arr3D[key].scale.y-step;}else{Arr3D[key].scale.y=Arr3D[key].scale.y+step;}}else{Arr3D[key].scale.y=val;delete Scale3Dy[key];}} rend=1;} for(var key in Scale3Dz){var val=Scale3Dz[key]['val'];var step=1/(parseInt(Scale3Dz[key]['transition'])*20);if(step==1){Arr3D[key].scale.z=val;delete Scale3Dz[key];}else{var valres=Arr3D[key].scale.z;var diff=Math.abs(val-valres);if(diff>step){if(valres>val){Arr3D[key].scale.z=Arr3D[key].scale.z-step;}else{Arr3D[key].scale.z=Arr3D[key].scale.z+step;}}else{Arr3D[key].scale.z=val;delete Scale3Dz[key];}} rend=1;} for(var key in Opacity3D){var val=Opacity3D[key]['val'];var step=1/(parseInt(Opacity3D[key]['transition'])*20);if(step==1){SetOpacityMesh(Arr3D[key],val);Opacity3DCur[key]=val;delete Opacity3D[key];}else{if(Opacity3DCur[key]){valres=Opacity3DCur[key];}else{valres=0;} diff=Math.abs(val-valres);SystemLog('step='+step);SystemLog('val='+val);SystemLog('valres='+valres);SystemLog('diff='+diff);if(diff>step){if(valres>val){SetOpacityMesh(Arr3D[key],valres-step);Opacity3DCur[key]=valres-step;}else{SetOpacityMesh(Arr3D[key],valres+step);Opacity3DCur[key]=valres+step;}}else{SetOpacityMesh(Arr3D[key],val);delete Opacity3D[key];Opacity3DCur[key]=val;}} rend=1;} if(Cam3DRotation==true){controls3D.target.x=parseFloat(PosCam[3]);controls3D.target.y=parseFloat(PosCam[4]);controls3D.target.z=parseFloat(PosCam[5]);controls3D.update();delta=clock.getDelta();camera3D.position.x=CamPosX+Math.cos(angle)*radius;camera3D.position.z=CamPosZ+Math.sin(angle)*radius;angle+=angularSpeed*delta;camera3D.updateProjectionMatrix();rend=1;} if(rend==1||RenderStart<10){RenderStart++;renderer.render(scene,camera3D);}} $(document).ready(function(){if(!Detector.webgl)Detector.addGetWebGLMessage();Div3D=$('div[type="3D"]');if('ontouchstart'in document){Div3D.on("touchstart",function(event){CamMove=false;});}else{Div3D.on("mousedown",function(event){CamMove=false;});} if(Div3D.length>0&&localStorage.getItem('project')){var project=localStorage.getItem('project');Div3D.find('canvas').remove();Div3D.find('.SYS_3DLoad').remove();var DAE='';if(Div3D.attr('Prj3D')){var IdDiv3d=Div3D.attr('id');DAE='project/'+project+'/3D/'+IdDiv3d+'/'+Div3D.attr('Prj3D')+'.dae';} if(DAE){if(localStorage.getItem('editor')=='1'){Div3D.append("
    загрузить
    ");$('.SYS_3DLoad').click(function(){$(this).remove();Div3D.append("
    загрузка ...
    ");init3D(DAE,Div3D);});}else{init3D(DAE,Div3D);} $("body").keypress(function(e){if(e.which==50){controls3D.target.z=controls3D.target.z-0.02;controls3D.update();} if(e.which==56){controls3D.target.z=controls3D.target.z+0.02;controls3D.update();} if(e.which==52){controls3D.target.x=controls3D.target.x-0.02;controls3D.update();} if(e.which==54){controls3D.target.x=controls3D.target.x+0.02;controls3D.update();} if(e.which==49){controls3D.target.y=controls3D.target.y-0.02;controls3D.update();} if(e.which==51){controls3D.target.y=controls3D.target.y+0.02;controls3D.update();} if(typeof(camera3D)!=="undefined"){var CameraPosX=camera3D.position.x;var CameraPosY=camera3D.position.y;var CameraPosZ=camera3D.position.z;pos[0]=CameraPosX;pos[1]=CameraPosY;pos[2]=CameraPosZ;} if(typeof(controls3D)!=="undefined"){var ControlTargetX=controls3D.target.x;var ControlTargetY=controls3D.target.y;var ControlTargetZ=controls3D.target.z;pos[3]=ControlTargetX;pos[4]=ControlTargetY;pos[5]=ControlTargetZ;}});}}});