function elselect(el,elclass){
if(elclass && el.parent().attr('type') == 'Page'){
if(ButCtrl){
if(el.attr('sys_select') == '1'){
el.attr('sys_select','0');
}else{
el.attr('sys_select','1');
el.find('div').attr('sys_select','0');
}
}else{
attr = el.attr('sys_select');
$('div').attr('sys_select','0');
if(attr == '1'){
el.attr('sys_select','0');
$('.SYS_EditorBlockParam').css({
"display": "none"
});
$('body').append($('.SYS_EditorBlockParam'));
}else{
el.attr('sys_select','1');
el.append($('.SYS_EditorBlockParam'));
$('.SYS_EditorBlockParam').css({
"display": "block",
"width": el.css('width'),
"height": el.css('height'),
"padding": el.css('padding'),
"margin": el.css('margin'),
"border-radius": el.css('border-radius')
});
$('.SYS_EditorBlockParamWidth').html(el.css('width'));
$('.SYS_EditorBlockParamHeight').html(el.css('height'));
}
}
}
}
function TouchFuncEditor(func,el){
if(!el.attr('class')){
el.attr('class','no');
}
elclass = el.attr('class');
ButTouch = true;
if(elclass == "undefined" || elclass == "" || elclass == NaN){
return;
}
elclass = elclass.split(' ');
elclass = elclass[0];
switch (func){
case "press":
el.attr('data-w',el.css('width'));
el.attr('data-h',el.css('height'));
el.attr('data-t',el.css('top'));
el.attr('data-l',el.css('left'));
el.parent().attr('data-click','none').attr('data-selected','0');
el.parent().parent().attr('data-click','none').attr('data-selected','0');
el.parent().parent().parent().attr('data-click','none').attr('data-selected','0');
$('.SYS_StructureElBlock').hide();
break;
case "click":
elselect(el,elclass); // Выбираем элемент
//$('.SYS_ListElBlock').css('display','none');
break;
case "MoveXY":
if(!ButCtrl && $('body').attr('mouse') == 'down'){
el.parent().find('div[data-selected="1"]').each(function( index ) {
el = $( this );
if(el.css('position') == 'absolute'){
t= parseInt(el.attr('data-t')) + parseInt(PosTouchY);
l = parseInt(el.attr('data-l')) + parseInt(PosTouchX);
t = Math.floor(t/10)*10;
l = Math.floor(l/10)*10;
el.css('top',t);
el.css('left',l);
}
});
}
break;
case "holdR":
if(el.attr('holdr') != 'none' && elclass.indexOf('SYS_') == -1){
el.parent().attr('holdr','none');
el.parent().parent().attr('holdr','none');
el.parent().parent().parent().attr('holdr','none');
el.parent().parent().parent().parent().attr('holdr','none');
$('.SYS_ListElBlock').hide();
$('.SYS_ListElBlock3D').hide();
$('.SYS_StructureElBlock').html('').show();
$('.SYS_StructureElBlock').css('left',el.attr('data-touchX')+'px');
topS = $("html").scrollTop()+300;
$('.SYS_StructureElBlock').css('top',topS);
while(el.attr('class')!='SYS_Main' && el.attr('class')){
console.log(el.attr('class'));
id = Math.random();
el.attr('data-id',id);
$('.SYS_StructureElBlock').append('
'+el.attr('class')+'
');
if(el.attr("data-type")=="3D"){
PosTouchX = el.attr('touchX')-parseInt($('.SYS_Main').css('margin-left'));
PosTouchY = el.attr('touchY');
console.log('touchX - '+PosTouchX);
console.log('touchY - '+PosTouchY);
mouse3D.x = ( PosTouchX / parseInt(el.css('width')) ) * 2 - 1;
mouse3D.y = (- ( PosTouchY / parseInt(el.css('height')) ) * 2 + 1);
console.log('mouse3D.x - '+mouse3D.x);
console.log('mouse3D.y - '+mouse3D.y);
raycaster.setFromCamera( mouse3D, camera3D );
var intersects = raycaster.intersectObjects( scene.children, true );
if(intersects[0]){
//console.log(intersects[0].object);
var But = [];
for(var z=0; z<1; z++){
obj = intersects[z].object;
for(var i=0; i<10; i++){
if(obj.name){
console.log(obj.name);
$('.SYS_StructureElBlock').append(''+obj.name+'
');
}
if(obj.parent){
obj = obj.parent;
}
}
}
}
}
el = el.parent();
}
}else{
el.removeAttr('holdr');
}
break;
case "clickR":
if(el.attr('clickr') != 'none' && elclass.indexOf('SYS_') == -1){
console.log('clickR - '+el.attr('class'));
el.parent().attr('clickr','none');
el.parent().parent().attr('clickr','none');
el.parent().parent().parent().attr('clickr','none');
el.parent().parent().parent().parent().attr('clickr','none');
$('.SYS_ListElBlock').css('display','none');
if(el.attr("data-type")=="3D"){
console.log('data-type - 3D');
PosTouchX = el.attr('touchX')-parseInt($('.SYS_Main').css('margin-left'));
PosTouchY = el.attr('touchY');
console.log('touchX - '+PosTouchX);
console.log('touchY - '+PosTouchY);
mouse3D.x = ( PosTouchX / parseInt(el.css('width')) ) * 2 - 1;
mouse3D.y = (- ( PosTouchY / parseInt(el.css('height')) ) * 2 + 1);
console.log('mouse3D.x - '+mouse3D.x);
console.log('mouse3D.y - '+mouse3D.y);
raycaster.setFromCamera( mouse3D, camera3D );
var intersects = raycaster.intersectObjects( scene.children, true );
if(intersects[0]){
obj = intersects[0].object;
for(var i=0; i<10; i++){
if(obj.name){
console.log('NAME - '+obj.name);
$('.SYS_ListElBlock').css('display','none');
$('.SYS_ListElBlock[type="3D"]').css('display','block');
$('.SYS_ListElName').html(obj.name);
$('.SYS_ListElBlock').attr('data-el',obj.name);
return;
}
if(obj.parent){
obj = obj.parent;
}
}
}
}else{
//$('.SYS_StructureElBlock').hide();
id = Math.random();
el.attr('data-id',id);
$('.SYS_ListElBlock').css('display','block');
$('.SYS_ListElBlock[type="3D"]').css('display','none');
$('.SYS_ListElBlock').attr('data-el',id);
$('.SYS_ListElName').html(el.attr('class'));
topS = $("html").scrollTop()+300;
$('.SYS_ListElBlock').css('top',topS);
width = $('.SYS_ListElBlock').css('width');
left = parseInt(width)/2;
$('.SYS_ListElBlock').css('left','calc(50% - '+left+')');
console.log(left);
}
}else{
el.removeAttr('clickr');
}
break;
}
switch (elclass){
case "SYS_StructureEl":
switch (func){
case "click":
$('.SYS_StructureElBlock').hide();
id = el.attr('data-el');
$('.SYS_ListElBlock').css('display','none');
if(el.attr('type') == '3D'){
SYS_ListElBlock = $('.SYS_ListElBlock[type="3D"]');
$('.SYS_ListElBlock[type="3D"]').css('display','block');
}else{
SYS_ListElBlock = $('.SYS_ListElBlock');
$('.SYS_ListElBlock').css('display','block');
$('.SYS_ListElBlock[type="3D"]').css('display','none');
}
SYS_ListElBlock.attr('data-el',id);
width = SYS_ListElBlock.css('width');
left = parseInt(width)/2;
SYS_ListElBlock.css('left','calc(50% - '+left+'px)');
$('.SYS_ListElName').html(el.html());
ButTouch = false;
break;
}
break;
case "SYS_ListEl":
switch (func){
case "click":
id = el.closest('.SYS_ListElBlock').attr('data-el');
$('.SYS_ListElBlock').css('display','none');
$('.SYS_ElEditor').html('').append($(' сохранить
закрыть
'));
$('div').removeAttr('data-selected');
console.log(id);
if(el.closest('.SYS_ListElBlock').attr("type") == "3D"){
ele = $('div[data-type="3D"]');
$('.SYS_ElEditor').attr("type","3D");
DDD = '3D';
}else{
ele = $('div[data-id="'+id+'"]');
$('.SYS_ElEditor').attr("type","normal");
DDD = 'normal';
}
funcel = el.attr('data-func');
$('.SYS_ElEditor').attr('el-funcel',funcel);
switch (funcel){
case "name":
$('.SYS_ElEditor').css('display','block').attr('data-el',id).attr('data-func','name');
$('.SYS_ElEditor').find('textarea').val(ele.attr('data-name')).select();
break;
case "Prj3D":
$('.SYS_ElEditor').css('display','block').attr('data-el',id).attr('data-func','Prj3D');
$('.SYS_ElEditor').find('textarea').val(ele.attr('Prj3D')).select();
break;
case "class":
$('.SYS_ElEditor').css('display','block').attr('data-el',id).attr('data-func','class');
$('.SYS_ElEditor').find('textarea').val(ele.attr('class')).select();
break;
case "ck":
$('.SYS_ElEditorCK').css('display','block').attr('data-el',id).attr('data-func','ck');
$('textarea.editor').val(ele.html());
break;
case "html":
$('.SYS_ElEditor').css('display','block').attr('data-el',id).attr('data-func','html');
$('.SYS_ElEditor').find('textarea').val(ele.html());
break;
case "style": case "press": case "hold": case "release": case "click": case "move": case "infunc": case 'show': case 'hide': case 'func3D': case 'Cam3D':
ElEditorStart(id,ele,funcel,DDD);
break;
case "in":
$('.SYS_ElEditor').css('display','block').attr('data-el',id).attr('data-func','in');
if(el.closest('.SYS_ListElBlock').attr("type") == "3D"){
ele = $('div[data-type="3D"]');
mqtt3D = ele.attr('mqtt3D');
mqtt3Darr = JSON.parse(mqtt3D);
$('.SYS_ElEditor').find('textarea').val(mqtt3Darr[id]).select();
}else{
$('.SYS_ElEditor').find('textarea').val(ele.attr('data-in')).select();
}
break;
case "in2":
$('.SYS_ElEditor').css('display','block').attr('data-el',id).attr('data-func','in2');
$('.SYS_ElEditor').find('textarea').val(ele.attr('data-in2')).select();
break;
case "in3":
$('.SYS_ElEditor').css('display','block').attr('data-el',id).attr('data-func','in3');
$('.SYS_ElEditor').find('textarea').val(ele.attr('data-in3')).select();
break;
case "del":
switch (ele.attr('class')){
case 'Popup':
StructurePopupView();
ele.remove();
break;
case 'Page':
StructurePageView();
$('.SYS_Main').append($('.Popup'));
ele.remove();
break;
default :
ele.remove();
}
break;
case "clon":
ele.clone().appendTo(ele.parent());
break;
case "ccss":
$('.SYS_BufferCss').html(ele.attr('style'));
break;
case "pcss":
ele.attr('style',$('.SYS_BufferCss').html());
break;
case "chtml":
$('.SYS_BufferHtml').html(ele.html());
break;
case "phtml":
ele.html($('.SYS_BufferHtml').html());
break;
}
break;
}
break;
case "SYS_ElEditorSave":
switch (func){
case "click":
$('.SYS_ElEditor').css('display','none');
$('.SYS_ElEditorCK').css('display','none');
id = el.parent().attr('data-el');
elEditor = el.closest('.SYS_ElEditor');
if(elEditor.attr("type") == "3D"){
ele = $('div[data-type="3D"]');
DDD = '3D';
}else{
ele = $('div[data-id="'+id+'"]');
DDD = 'normal';
}
val = el.parent().find('textarea').val();
func2 = el.parent().attr('data-func');
switch (func2){
case 'press': case 'hold': case 'release': case 'click': case 'move': case 'style': case 'infunc': case 'visible': case 'show': case 'hide': case 'func3D': case 'Cam3D':
elEditorSave(id,ele,func2,DDD);
break;
case 'class':
ele.attr('class',val);
break;
case 'name':
ele.attr('data-'+func2,val);
if(ele.hasClass("Page")){
StructurePageView();
}
if(ele.hasClass("Popup")){
StructurePopupView();
}
break;
case 'Prj3D':
ele.attr('Prj3D',val);
break;
case 'in':
if(ele.attr("data-type") == "3D"){
mqtt3D = ele.attr('mqtt3D');
mqtt3Darr = { }; // Объявил объект
if(mqtt3D){
mqtt3Darr = JSON.parse(mqtt3D);
}
mqtt3Darr[id] = val;
mqtt3Darrkey = { }; // Объявил объект
for (key in mqtt3Darr) {
mqtt3Darrkey[mqtt3Darr[key]] = key;
}
var mqtt3Djson = JSON.stringify(mqtt3Darr);
var mqtt3Djsonkey = JSON.stringify(mqtt3Darrkey);
console.log(mqtt3Djsonkey);
ele.attr("mqtt3D",mqtt3Djson);
ele.attr("mqtt3Dkey",mqtt3Djsonkey);
}else{
ele.attr('data-'+func2,val.replace(/!\n/g, '!'));
}
break;
case 'in2': case 'in3':
ele.attr('data-'+func2,val.replace(/!\n/g, '!'));
break;
case 'ck':
ele.html(val);
break;
case 'html':
ele.html(val);
break;
}
break;
}
break;
case "SYS_SelValImage":
switch (func){
case "click":
$('.SYS_CssImageSelectBlock').css('display','block');
topS = $("html").scrollTop()+100;
$('.SYS_CssImageSelectBlock').css('top',topS);
img = el.find('.SYS_Select').val();
img = img.replace(/"/g, '');
$('.SYS_CssImageSelectBlock').attr('data-image',img);
$('.SYS_CssImageSelectBlockImage').css('background-image',img);
break;
}
break;
case "SYS_CssImageSelectBlockListGet":
switch (func){
case "click":
$('.SYS_CssImageSelectBlockList').html('');
var hname = el.html();
$.post("GetImages.php", {LOGIN: Login, HNAME: hname}, function(data) {
for(var i=0; i< data.length; i++){
imgel = $('
');
$('.SYS_CssImageSelectBlockList').append(imgel);
}
},"json");
break;
}
break;
case "SYS_CssImageSelectBlockListEl":
switch (func){
case "click":
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 "click":
el.parent().css('display','none');
break;
}
break;
case "SYS_CssImageSelectBlockSave":
switch (func){
case "click":
img = $('.SYS_CssImageSelectBlock').attr('data-image');
img = img.replace(/"/g, '')
console.log(img);
if(img.indexOf("url(") == -1){
img = 'url('+img+')';
}
$('.SYS_SelValImage').find('.SYS_Select').val(img);
$('.SYS_SelValImage').css('background-image',img);
el.parent().css('display','none');
break;
}
break;
case "SYS_EditorAdd":
switch (func){
case "click":
SElECT = el.attr('data-SElECT');
sel = $('.Select_'+SElECT).clone().removeClass('Select_'+SElECT).addClass('SYS_Select').show();
sel.val('');
SYS_SelBlock = $('.SelBlock').clone().removeClass('SelBlock').addClass('SYS_SelBlock');
SYS_SelBlock.append(sel);
SYS_SelBlock.append($(''));
SYS_SelBlock.append($('-
'));
$('.SYS_EditorBlock').append(SYS_SelBlock);
break;
}
break;
case "SYS_SelBlockDel":
switch (func){
case "click":
el.parent().remove();
break;
}
break;
case "SYS_SelectCSS":
switch (func){
case "change":
ival = el.parent().find('.SYS_SelVal');
ival.attr('data-val',el.val());
console.log(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_ElEditorClose":
switch (func){
case "click":
el.parent().hide();
break;
}
break;
case "SYS_CssEditorSave":
switch (func){
case "click":
$('.SYS_CssEditor').css('display','none');
id = el.parent().attr('data-el');
ele = $('div[data-id="'+id+'"]');
css = el.parent().find('textarea').val();
ele.attr('style',css);
break;
}
break;
case "SYS_StyleEditorSave":
switch (func){
case "click":
$('.SYS_StyleEditor').css('display','none');
style = el.parent().find('textarea').val();
$('.SYS_Main').find('style#CSS').html(style);
break;
}
break;
case "SYS_FuncEditorSave":
switch (func){
case "click":
$('.SYS_FuncEditor').css('display','none');
func = el.parent().find('textarea').val();
$('.SYS_FuncSave').attr('data-func',func.replace(/!\n/g, '!'));
break;
}
break;
case "SYS_PSBBut":
switch (func){
case "click":
PSBButFunc = el.attr('data-func');
switch (PSBButFunc){
case "SYS_PageDel":
$('.Page[data-select="1"]').remove();
$('.Page:eq(0)').attr('data-select','1');
$('.SYS_PageSettingBlock').css('display','none');
StructurePageView();
break;
case "Ok":
PageName = $('input[data-func="PageName"').val();
$('.Page[data-select="1"]').attr('data-name',PageName);
$('.SYS_PageSettingBlock').css('display','none');
StructurePopupView();
break;
}
break;
}
ButTouch = false;
break;
case "SYS_StructurePage":
Index = $('.SYS_StructurePage').index(el);
Page = $('.Page:eq('+Index+')');
switch (func){
case "click":
$('.Page').css('display','none').attr('data-select','0');
$('.SYS_StructurePage').attr('data-select','0');
el.attr('data-select','1');
Page.css('display','block').attr('data-select','1');
Page.append($('.Popup'));
break;
}
ButTouch = false;
break;
case "SYS_StructurePopup":
Index = $('.SYS_StructurePopup').index(el);
Popup = $('.Popup:eq('+Index+')');
switch (func){
case "click":
if(Popup.css('display') == 'none'){
el.attr('data-select','1');
Popup.css('display','block');
}else{
el.attr('data-select','0');
Popup.css('display','none');
}
Pw = $('.Page[data-select="1"').css('width');
if(parseInt(Popup.css('left'))> parseInt(Pw)){
Popup.css('left',(Pw-100)+'px');
}
break;
}
ButTouch = false;
break;
case "SYS_PSBIBImage":
switch (func){
case "click":
$('.SYS_PageSettingBlock').css('display','none');
$('.Page[data-select="1"]').css("background-image",el.css("background-image"));
break;
}
break;
case "SYS_MainMenuAddEl":
switch (func){
case "click":
PageFunc = el.attr('data-func');
switch (PageFunc){
case "PageAdd":
$('.Page').css('display','none').attr('data-select','0');
$('.SYS_Main').append('
');
StructurePageView();
break;
case "BlockAdd":
$('.Page[data-select="1"]').append('
');
break;
case "PopupAdd":
$('.SYS_Main').append('');
StructurePopupView();
break;
case "Func":
$('.SYS_FuncEditor').css('display','block');
if($('.SYS_FuncSave').length == 0){
$('.SYS_Main').append('
');
}
$('.SYS_FuncEditor').find('textarea').val($('.SYS_FuncSave').attr('data-func'));
break;
case "Style":
$('.SYS_StyleEditor').css('display','block');
ele = $('.SYS_Main').find('style#CSS');
if(ele.length == 0){
$('.SYS_Main').append('');
}
ele = $('.SYS_Main').find('style#CSS');
$('.SYS_StyleEditor').find('textarea').val(ele.html());
break;
case "Save":
$('.SYS_Block').removeAttr('data-selected');
$('.Popup').removeAttr('data-selected');
$('div').removeAttr('opacity');
$('div').removeAttr('data-rotate360');
$('div').removeAttr('touch');
$('div').removeAttr('touch2');
$('div').removeAttr('data-touchxend');
$('div').removeAttr('data-touchyend');
$('div').removeAttr('data-touchxstart');
$('div').removeAttr('data-touchystart');
$('div').removeAttr('touchx');
$('div').removeAttr('touchy');
$('div').removeAttr('ttop');
$('div').removeAttr('data-w');
$('div').removeAttr('data-h');
$('div').removeAttr('data-t');
$('div').removeAttr('data-l');
$('div').removeAttr('data-selected');
$('div').removeAttr('data-release'); // устаревший вариант
$('div').removeAttr('sys_select');
$('.Page').attr('type','Page');
$('.SYS_EditorBlockParam').hide();
$('body').append($('.SYS_EditorBlockParam'));
//$('.Popup').css('display','none');
$('.SYS_BlockSetting').remove();
$('div[data-type="3D"]').html('');
$('div').removeAttr('data-left');
save = $('.SYS_Main').html();
SaveJson = JSON.stringify(save);
project = $('body').attr('project');
$.post("SaveStructure.php", {JSON: SaveJson, LOGIN: Login, FILE: project}, function(mess) {
alert(mess);
},"json");
break;
}
break;
}
ButTouch = false;
break;
default:
ButTouch = false;
}
console.log('TOUCH - '+el.attr('class')+' FUNC - '+func);
el.attr('touch',func);
}