5$(document).ready(
function (){
16 var
id = nodeIdProvider();
18 var className =
"node";
20 var jsonData = jsDataTab[id];
27 var nodeinviewport =
false;
31 if(useJsonDataLocation==
false) {
34 else if (useJsonDataLocation==
true) {
35 var idLocation = parseInt(jsonData.IdLocation);
44 var mlocation = mesh.me.mlocationProvider(idLocation);
45 var location = mesh.me.locationProvider(idLocation);
47 var nodeHeight=mesh.me.getSpread().Y;
48 var nodeWidth=mesh.me.getSpread().X;
64 var nodeOpacity = configBehaviour.opacity;
69 var htmlNode = (
function(){
70 htmlPrimaryParent.append(
'<div id='+
id+
' class='+className+
'></div>');
71 $(
'#'+
id).css({height : nodeHeight, width : nodeWidth, display:
"block", margin:
"auto" , backgroundColor :
"none"});
72 $(
'#'+
id).append(
'<div id=onoff'+
id+
' class=onoff>'+
id +
'</div>');
73 $(
'#onoff'+
id).hide();
74 $(
'#'+
id).append(
'<div id=hitbox'+
id+
' class=hitbox></div>');
75 $(
'#hitbox'+
id).hide();
77 var infoToDisplay =
"";
80 $(
'#'+
id).append(
'<div id=handle'+
id+
' class=handle></div>');
81 $(
'#handle'+
id).addClass(
"drag-handle-on");
83 if (configJsonData.useTitle && jsonData.title !=
"") {
84 infoToDisplay = jsonData.title.replace(
".png",
"");
88 $(
'#'+
id).append(
'<div id=info'+
id+
' class=info>' + infoToDisplay +
'</div>');
89 $(
'#'+
id).append(
'<div id=rotate'+
id+
' class=rotate></div>');
90 $(
"#rotate"+
id).hide();
94 this.sub=
function(elt) {
98 this.init_htmlNode=
function() {
99 $(
'#hitbox'+
id).css(
'background-color', colorHBdefault);
100 $(
'#hitbox'+
id).show();
101 $(
'#info'+
id).css(
"font-family", configBehaviour.infoFonts[Math.min(configBehaviour.defaultFontIndex, configBehaviour.infoFonts.length)]);
102 $(
'#info'+
id).css(
"color", configBehaviour.infoTextColor);
103 $(
'#info'+
id).css(
"font-size", configBehaviour.defautInfoFontSize);
106 $(
"#rotate"+
id).css({
107 left : (parseInt($(
'#'+
id).css(
"width"))/2-70)+
'px',
108 top : (parseInt($(
'#'+id).css(
"height"))-15)+
'px',
109 '-webkit-transform':
"scale(0.5)",
110 '-moz-transform':
"scale(0.5)",
111 '-transform':
"scale(0.5)",
117 var jsNode = document.getElementById(
id);
121 var nodeTagList = [];
122 var floatingTag = {};
124 this.initTag =
function(thisjson) {
125 if (typeof thisjson.tags !=
'undefined') {
126 var nodeTagListTmp = [];
127 var floatingTagTmp = {};
128 if (typeof thisjson.tags ==
"object") {
129 nodeTagListTmp = thisjson.tags;
131 else if (typeof thisjson.tags ==
"string" && thisjson.tags !=
"") {
132 nodeTagListTmp = thisjson.tags.split(
",");
136 for (var item=0;item<nodeTagListTmp.length;item++) {
137 if ( nodeTagListTmp[item].search(
'{')==0 ) {
138 if ( nodeTagListTmp[item].search(
'{"') == -1 ) {
139 nodeTagListTmp[item]=nodeTagListTmp[item].replace(/{([^,]*),([^,]*),([^,]*),([^,]*)}/,
140 '{"name":"$1","m":$2,"val":$3,"M":$4}')
142 nodeTagListTmp[item]=JSON.parse(nodeTagListTmp[item]);
143 name=newTag_conformance(nodeTagListTmp[item].name);
144 floatingTagTmp[name]={
"id": item,
"m":nodeTagListTmp[item].m,
"val":nodeTagListTmp[item].val,
"M":nodeTagListTmp[item].M};
145 nodeTagListTmp[item]=name
147 nodeTagListTmp[item] = newTag_conformance(nodeTagListTmp[item]);
150 nodeTagList = nodeTagListTmp;
151 floatingTag = floatingTagTmp;
153 if (! nodeTagList.some(
function(e) {return e==
'Off'}) )
154 nodeTagList.push(
"Off");
157 if ( nodeTagList.some(
function(e) {return e==
'On'}) )
158 nodeTagList.splice(nodeTagList.findIndex(
function(e) {return e==
'On'}),1);
159 nodeTagList.push(
"On");
161 this.initTag(jsonData);
167 var initialNote =
"";
168 if(typeof jsonData.usersNotes !=
'undefined') {
169 initialNote = jsonData.usersNotes;
172 initialNote = jsonData.comment;
178 content : initialNote,
180 position :
'absolute',
181 width : mesh.me.getSpread().X,
182 height : mesh.me.getSpread().Y,
183 posX : location.getX(),
184 posY : location.getY() + mesh.me.getSpread().Y ,
188 backgroundcolor :
"grey",
191 fontfamily :
'verdana',
196 onDblClick:
function (id) {
return undefined; }
200 $(
'#postit'+
id).css({display :
"none"});
239 var menuTitleTab =
new Array();
240 var menuEventTab =
new Array();
246 var menuIconClassAttributesTab =
new Array();
252 var MenuShareEvent =
new Array();
255 menuTitleTab.push(
"Transparent mode to overlay")
256 menuEventTab.push(
function(v, nodeId, optionNumber){
258 if (configBehaviour.onlyOneTransparentTile && me.getTransparent()!=-1) {
259 $(
'#menu'+me.getTransparent()+
'>#option'+optionNumber).click();
261 me.setTransparent(nodeId,
true);
262 nodeRef.setOpacityLocation();
264 $(
"#menu"+nodeId+
">#option"+optionNumber).addClass(
"closeTransparentButtonIcon").removeClass(
"transparentButtonIcon");
266 me.setTransparent(nodeId,
false);
267 $(
"#menu"+nodeId+
">#option"+optionNumber).addClass(
"transparentButtonIcon").removeClass(
"closeTransparentButtonIcon");
272 menuIconClassAttributesTab.push(
"transparentButtonIcon");
273 MenuShareEvent.push(
true);
276 menuTitleTab.push(
"Display tile's postIt")
277 menuEventTab.push(
function(v,nodeId,optionNumber){
281 nodeRef.updatePostItPositionandSize();
285 var hidePostIt =
function(event){
287 event.stopPropagation();
288 $(
"#menu"+nodeId+
">#option"+optionNumber).click();
290 $( window ).off(
"resize",hidePostIt);
295 $( window ).resize(hidePostIt) ;
299 $(
"#menu"+nodeId+
">#option"+optionNumber).addClass(
"closeWriteButtonIcon").removeClass(
"writeButtonIcon");
301 $( window ).off(
"resize",hidePostIt);
302 $.PostItAll.hide(
'postit'+nodeId);
305 $(
"#menu"+nodeId+
">#option"+optionNumber).addClass(
"writeButtonIcon").removeClass(
"closeWriteButtonIcon");
309 menuIconClassAttributesTab.push(
"writeButtonIcon");
310 MenuShareEvent.push(
true);
318 var zoomAndDrawOnNodes = (
function() {
319 var initialSpread = me.getSpread();
321 return function (nodeId){
325 var ratio = me.getSpread().Y/me.getSpread().X;
327 var nodeTab =
new Array();
328 nodeTab.push(me.getNode(nodeId));
331 $(
'body').append(
'<div id=buttonUnzoom class=unzoomButtonIcon></div>');
335 me.magnifyingGlass(nodeTab,ratio,initialSpread,
false, 0.5);
338 var height = $(
'#zoomSupport > #Zoomed0').css(
'height');
339 var width = $(
'#zoomSupport > #Zoomed0').css(
'width');
340 var supportTop = parseInt($(
'#zoomSupport').css(
'top').replace(
'px',
''));
341 var supportLeft = parseInt($(
'#zoomSupport').css(
'left').replace(
'px',
''));
349 menuDraw.css(
"visibility",
"visible");
350 menuDraw.css(
"top", TagHeight+
"px");
356 var supp = document.getElementById(
"drawCanvas"+nodeId);
358 $(
'#zoomSupport').append(
'<canvas id="drawCanvas'+nodeId+
'" class=drawing height='+height+
' width='+width+
'></canvas>');
360 $(
"#drawCanvas"+nodeId).css({
361 position :
"absolute",
364 width : $(
'#zoomSupport > #Zoomed0').css(
'width'),
365 height : $(
'#zoomSupport > #Zoomed0').css(
'height'),
369 $(
'#drawCanvas'+nodeId).show();
375 var clickX =
new Array();
376 var clickY =
new Array();
377 var clickDrag =
new Array();
381 var context = document.getElementById(
"drawCanvas"+nodeId).getContext(
"2d");
382 function addClick(x, y, dragging) {
385 clickDrag.push(dragging);
389 var mousedownDraw =
function(e){
391 context.strokeStyle = drawingColor;
394 drawingColor = configBehaviour.draw.defaultColor;
395 context.strokeStyle = drawingColor;
397 context.lineJoin = configBehaviour.draw.style;
398 context.lineWidth = configBehaviour.draw.width;
401 var mouseX = e.pageX - supportLeft;
402 var mouseY = e.pageY - supportTop;
405 addClick(mouseX , mouseY);
409 var mousemoveDraw =
function(e){
412 var mouseX = e.pageX - supportLeft;
413 var mouseY = e.pageY - supportTop;
415 addClick(mouseX , mouseY,
true);
420 var mouseupDraw =
function(e){
425 $(
'#drawCanvas'+nodeId).on({
426 mousedown : mousedownDraw,
427 mousemove : mousemoveDraw,
428 mouseup : mouseupDraw,
434 for(var i=p; i < clickX.length; i++) {
439 if(clickDrag[i] && i) {
440 context.moveTo(clickX[i-1], clickY[i-1]);
442 context.moveTo(clickX[i]-1 , clickY[i]);
445 context.lineTo(clickX[i], clickY[i]);
451 var drawing =
new Map();
454 context = document.getElementById(
"drawCanvas"+nodeId).getContext(
"2d");
456 var touchstartDraw =
function (ev) {
457 var hastouched=
false;
459 context.strokeStyle = drawingColor;
462 drawingColor = configBehaviour.draw.defaultColor;
463 context.strokeStyle = drawingColor;
465 context.lineJoin = configBehaviour.draw.style;
466 context.lineWidth = configBehaviour.draw.width;
468 for (var i = 0; i < ev.changedTouches.length; i++) {
469 var touch = ev.changedTouches[i];
470 var targetid=touch.target.id;
471 console.log(
"touchstartDraw targetid "+targetid+
" point "+touch.pageX +
" "+touch.pageY );
472 var mouseX = touch.pageX - supportLeft;
473 var mouseY = touch.pageY - supportTop;
475 drawing.set(touch.identifier, {
476 target: touch.target,
490 var touchmoveDraw =
function (ev) {
491 var hastouched=
false;
492 for (var i = 0; i < ev.changedTouches.length; i++) {
493 var touch = ev.changedTouches[i];
494 var targetid=touch.target.id;
495 console.log(
"touchmoveDraw targetid "+targetid+
" rect "+touch.pageX +
" "+touch.pageY );
496 var mouseX = touch.pageX - supportLeft;
497 var mouseY = touch.pageY - supportTop;
499 var drawstate = drawing.get(touch.identifier);
503 context.moveTo(drawstate.mouseX, drawstate.mouseY);
505 context.lineTo(mouseX, mouseY);
510 drawstate.mouseX = mouseX;
511 drawstate.mouseY = mouseY;
523 var touchendDraw =
function (ev) {
524 var hastouched=
false;
525 for (var i = 0; i < ev.changedTouches.length; i++) {
526 var touch = ev.changedTouches[i];
527 var targetid=touch.target.id;
528 console.log(
"touchendDraw targetid "+targetid+
" rect "+touch.pageX +
" "+touch.pageY );
529 drawing.delete(touch.identifier);
540 $(
'#drawCanvas'+nodeId).on({
541 touchstart: touchstartDraw,
542 touchmove: touchmoveDraw,
543 touchend: touchendDraw
550 menuTitleTab.push(
"Draw on tile")
551 menuEventTab.push(
function(v,nodeId,optionNumber){
555 me.disableOtherZoom(
"draw")
558 zoomAndDrawOnNodes(nodeId);
560 $(
'#buttonUnzoom').on({
564 menuDraw.css(
"visibility",
"hidden");
566 me.enableOtherZoom(
"draw")
569 $(
'#drawCanvas'+nodeId).hide();
572 $(
"#button").remove();
574 me.meshEventReStart();
580 menuDraw.css(
"visibility",
"hidden");
583 $(
'#buttonUnzoom').on({
590 menuDraw.css(
"visibility",
"hidden");
592 me.enableOtherZoom(
"draw")
595 $(
'#drawCanvas'+nodeId).hide();
596 me.meshEventReStart();
605 menuIconClassAttributesTab.push(
"drawButtonIcon");
606 MenuShareEvent.push(
false);
609 menuTitleTab.push(
"To switch columns")
610 menuEventTab.push(
function(v,nodeId,optionNumber){
614 if(mesh.me.getcolumnSelected() == -1 ) {
616 mesh.me.setcolumnSelected(mesh.me.mlocationProvider( mesh.me.getNode(nodeId).getIdLocation()).getnX());
619 var allnodes=mesh.me.getNodes();
621 if(mesh.me.getcolumnSelected() == mesh.me.mlocationProvider( allnodes[O].getIdLocation()).getnX() )
622 allnodes[O].getHtmlNode().css(
'boxShadow', configCSS.columnSwapBoxShadow);
626 else if(mesh.me.getcolumnSelected() != -1) {
627 var secondColumnSelected = mesh.me.mlocationProvider( mesh.me.getNode(nodeId).getIdLocation()).getnX();
634 var allnodes=mesh.me.getNodes();
637 if(mesh.me.getcolumnSelected() == mesh.me.mlocationProvider( allnodes[O].getIdLocation()).getnX() ) {
638 column1Tab.push( allnodes[O]);
639 allnodes[O].getHtmlNode().css({
643 if(secondColumnSelected == mesh.me.mlocationProvider( allnodes[O].getIdLocation()).getnX() ) {
644 column2Tab.push( allnodes[O]);
650 for(i=0;i<column1Tab.length;i++) {
651 var tmpBoolBlockMove = i == 0 ? false :
true;
652 if(typeof column1Tab[i]!=
"undefined" && typeof column2Tab[i]!=
"undefined" ) {
653 mesh.me.switchLocation(column1Tab[i],column2Tab[i],configBehaviour.showAnimationsLineColSwap,
true, tmpBoolBlockMove);
656 mesh.me.setcolumnSelected(-1);
664 $(
"#menu"+nodeId+
">#option"+optionNumber).click();
674 menuIconClassAttributesTab.push(
"columnButtonIcon");
675 MenuShareEvent.push(
true);
678 menuTitleTab.push(
"To switch lines")
679 menuEventTab.push(
function(v,nodeId,optionNumber){
683 if(mesh.me.getlineSelected() == -1 ) {
685 mesh.me.setlineSelected(mesh.me.mlocationProvider( mesh.me.getNode(nodeId).getIdLocation()).getnY());
688 var allnodes=mesh.me.getNodes();
690 if(mesh.me.getlineSelected() == mesh.me.mlocationProvider( allnodes[O].getIdLocation()).getnY() )
691 allnodes[O].getHtmlNode().css(
'boxShadow', configCSS.lineSwapBoxShadow);
694 else if(mesh.me.getlineSelected() != -1) {
695 var secondLineSelected = mesh.me.mlocationProvider( mesh.me.getNode(nodeId).getIdLocation()).getnY();
702 var allnodes=mesh.me.getNodes();
705 if(mesh.me.getlineSelected() == mesh.me.mlocationProvider( allnodes[O].getIdLocation()).getnY() ) {
706 line1Tab.push( allnodes[O]);
707 allnodes[O].getHtmlNode().css({boxShadow:
"none"});
710 if(secondLineSelected == mesh.me.mlocationProvider( allnodes[O].getIdLocation()).getnY() ) {
711 line2Tab.push( allnodes[O]);
717 for(i=0;i<line1Tab.length;i++) {
718 var tmpBoolBlockMove = i == 0 ? false :
true;
719 if(typeof line1Tab[i]!=
"undefined" && typeof line2Tab[i]!=
"undefined" ) {
720 mesh.me.switchLocation(line1Tab[i],line2Tab[i],configBehaviour.showAnimationsLineColSwap,
true, tmpBoolBlockMove);
723 mesh.me.setlineSelected(-1);
731 $(
"#menu"+nodeId+
">#option"+optionNumber).click();
741 menuIconClassAttributesTab.push(
"lineButtonIcon");
742 MenuShareEvent.push(
true);
745 this.setOpacityLocation =
function () {};
747 this.buildmenu=
function() {
750 if ((init_tile && ! this.isInViewport()) || nodeMenu) {
756 nodeMenu =
new Menu(
id,htmlNode,menuTitleTab,menuEventTab,menuIconClassAttributesTab,MenuShareEvent,{
759 position :
"absolute",
779 var mymenu=$(
'#menu'+
id);
780 $(OpacityZone).append(
"<div id=tile-opacity-"+
id+
" class=tile-opacity-menu-zone></div>");
782 var tile_opacity = $(
'#tile-opacity-'+
id);
783 var buttonOpacity=
"";
784 var hbuttonOpacity=
"";
785 var tileOpacityLeft=
"";
786 var hmymenu=parseInt(mymenu.css(
"height"));
787 var wtile=parseInt($(
'#'+
id).css(
"width"));
790 function delayedOpacity() {
791 setTimeout(
function() {
792 if (mymenu[0].childNodes.length < 1)
795 buttonOpacity=$(mymenu[0].childNodes[1]);
796 hbuttonOpacity=buttonOpacity[0];
797 tileOpacityLeft=parseInt(buttonOpacity.css(
"left"))+20;
798 locationTop=parseInt(buttonOpacity.css(
"top"));
799 locationLeft=tileOpacityLeft;
804 this.setOpacityLocation =
function () {
805 if (tile_opacity.css(
"visibility")==
"visible") {
806 var rect = hbuttonOpacity.getBoundingClientRect();
807 var realposTop=rect.top;
808 var realposLeft=rect.left+20;
809 var absTop=realposTop+locationTop;
810 var absLeft=realposLeft+locationLeft;
812 position :
"absolute",
816 width : wtile - tileOpacityLeft,
822 tile_opacity.css(
"visibility",
"hidden")
825 if ( this.isInViewport()) {
826 if (configBehaviour.alwaysShowInfo) {
827 $(
'#info'+
id).show();
835 var stickers =
new Stickers(
id,htmlNode);
837 this.tileUpdateStickers =
function () {
839 for(var k=0;k < nodeTagList.length;k++) {
840 var name=nodeTagList[k];
841 if ($.inArray(name, globalTagsList) == -1) {
843 globalTagsList.push(name);
844 var l=globalTagsList.length-1;
845 if (name in floatingTag) {
846 globalFloatingTags[name]={
"l":l,
"m":floatingTag[name][
"m"],
"M":floatingTag[name][
"M"]}
847 var outColors=ColorSticker(l,floatingTag[name]);
848 globalFloatingTags[name][
"cm"]=outColors[
"cm"];
849 globalFloatingTags[name][
"cM"]=outColors[
"cM"];
850 globalFloatingTags[name][
"symb"]=outColors[
"symb"];
851 attributedTagsColorsArray[name] = globalFloatingTags[name][
"cm"];
853 globalTagsColors[name]={
"l":l};
854 attributedTagsColorsArray[name] = ColorSticker(l);
857 if (configTagsBehaviour.showAll) {
858 if (name in floatingTag) {
859 var outColors=ColorSticker(globalFloatingTags[name][
"l"],floatingTag[name]);
860 stickers.addSticker(name,attributedTagsColorsArray[name],
false,outColors,floatingTag[name][
"val"]);
862 stickers.addSticker(name,attributedTagsColorsArray[name],
false);
866 globalTagsList.sort();
870 var newTags=this.tileUpdateStickers();
873 stickers.removeSticker(
'On',
true);
879 this.init_zoomnode=
function() {
880 thezoomnode =
new zoomNodes(
id);
893 this.getLoadedStatus =
function() {
897 this.setLoadedStatus =
function (bool) {
900 if ( nodeTagList.some(
function(e) {return e==
'Off'}) ) {
901 nodeTagList[nodeTagList.findIndex(
function(e) {
return e==
'Off'})] =
"On";
902 stickers.removeSticker(
'Off',
false);
903 stickers.addSticker(
"On",attributedTagsColorsArray[
"On"],
true);
904 this.setQRcodeStatus()
905 this.setOnOffStatus(true)
908 if ( nodeTagList.some(
function(e) {return e==
'On'}) ) {
909 nodeTagList[nodeTagList.findIndex(function(e) {return e==
'On'})] =
"Off";
910 stickers.removeSticker(
'On',
false);
911 stickers.addSticker(
"Off",attributedTagsColorsArray[
"Off"],
true);
912 this.setOnOffStatus(
false)
921 this.getOnOffStatus =
function() {
925 this.setOnOffStatus =
function (bool) {
928 if (this.getNodeInViewportStatus()) {
929 var iframe = $(
'#iframe'+
id);
930 iframe.css(
"display",
"inline")
938 this.getNodeInViewportStatus =
function() {
939 return nodeinviewport;
942 this.setNodeInViewportStatus =
function () {
947 this.getQRcodeStatus =
function() {
951 this.setQRcodeStatus =
function() {
953 theqrcode =
new QRcodes(
id,jsonData);
959 this.getId =
function(){
964 this.getIdLocation =
function(){
969 this.setIdLocation =
function(idloc){
976 this.getNodeMenu =
function(){
984 this.getJsonData =
function(){
989 this.setJsonDataUrl =
function(newurl){
995 this.getComment =
function() {
996 return $(
'#postit'+
id).text().replace(/[0-9][0-9]\/[0-9][0-9]\/[0-9][0-9][0-9][0-9] \([0-9][0-9]:[0-9][0-9]:[0-9][0-9]\)Note config.*/,
"")
1002 this.getNodeOpacity =
function(){
1008 this.setNodeOpacity =
function(newOpacValue){
1009 nodeOpacity = newOpacValue;
1016 this.getNodeAngle =
function(){
1022 this.setNodeAngle =
function(newAngleValue){
1023 nodeAngle = newAngleValue;
1029 this.getNodeTagList =
function(){
1033 this.addElementToNodeTagList =
function(text_){
1034 if (nodeTagList.indexOf(text_)==-1) {
1035 nodeTagList.push(text_);
1042 this.removeElementFromNodeTagList =
function(text_){
1043 for(var i=0;i<nodeTagList.length;i++) {
1044 if (nodeTagList[i]==text_) {
1045 nodeTagList.splice(i,1);
1050 stickers.removeSticker(text_,
true);
1057 this.getFloatingTag =
function(){
1062 this.setFloatingTag =
function(floatingT){
1063 floatingTag=floatingT;
1069 this.getStickers =
function(){
1076 this.getQRcode =
function(){
1084 this.getIsMoving =
function(){
1089 this.setIsMoving =
function(boolmoving){
1091 isMoving=boolmoving;
1100 this.getHtmlNode =
function(){
1120 this.isInViewport =
function() {
1121 var hnode=this.getHtmlNode();
1122 var pnode=hnode.position();
1123 var maxLeft=relativeLeft+pnode.left+parseInt(hnode.css(
"width"));
1124 var minRight=relativeLeft+pnode.left;
1125 var maxTop=pnode.top+parseInt(hnode.css(
"height"));
1126 var minDown=pnode.top;
1127 var window_test=my_window[
"left"] < maxLeft &&
1128 my_window[
"right"] > minRight &&
1129 my_window[
"top"] < maxTop &&
1130 my_window[
"down"] > minDown
1132 nodeinviewport = window_test
1136 this.updateUrl =
function() {
1137 var
id=this.getId();
1138 var iframe = $(
'#iframe'+
id);
1139 if(this.getJsonData().url!=
'undefined' && this.getOnOffStatus()) {
1140 ifrdisp=iframe.css(
"display")
1141 if (ifrdisp !=
"inline" && ifrdisp !=
"block") {
1144 if (iframe.attr(
"src") ==
"") {
1145 iframe.attr(
"src",this.getJsonData().url);
1146 this.setLoadedStatus(
true);
1150 if ( this.isInViewport() ) {
1151 if (iframe.attr(
"src") ==
"") {
1152 iframe.attr(
"src",this.getJsonData().url);
1153 this.setLoadedStatus(
true);
1154 var ONst=iframe.css(
"display");
1156 iframe.css(
"display",
"inline")
1159 iframe.attr(
"src",
"");
1161 iframe.css(
"display",
"none");
1162 this.setLoadedStatus(
false);
1172 this.updateHtmlNodeFromLoc =
function(loc){
1174 position.left=loc.getX();
1175 position.top=loc.getY();
1177 htmlNode.offset(position);
1184 location.setX(position.left);
1185 location.setY(position.top);
1188 this.updateHtmlNodeFromHW =
function(newHeight,newWidth){
1189 htmlNode.css({height : newHeight , width : newWidth});
1192 this.updateLocFromHtmlNode =
function(booleanAnimation){
1193 location.setX(jsNode.offsetLeft);
1194 location.setY(jsNode.offsetTop);
1197 this.updatedata =
function(tile2) {
1200 if (
"usersNotes" in tile2) {
1201 NewNote = tile2.usersNotes;
1202 }
else if (
"comment" in tile2) {
1203 NewNote = tile2.comment;
1205 $(
'#postit'+
id).text(NewNote);
1207 var infoToDisplay =
"";
1208 if (configJsonData.useTitle && tile2.title !=
"") {
1209 infoToDisplay = tile2.title.replace(
".png",
"");
1213 $(
'#info'+
id).html(infoToDisplay)
1215 var oldNodeTagList=nodeTagList;
1216 var oldFloatingTag=floatingTag;
1217 stickers.resetStickerTab();
1218 this.initTag(tile2);
1221 var newTags=this.tileUpdateStickers();
1223 if (this.getOnOffStatus())
1224 stickers.removeSticker(
'Off');
1226 stickers.removeSticker(
'On');
1240 this.updateHtmlNodeState =
function(newState){
1245 this.getState =
function(){
1256 this.updateSelectedStatus =
function(newStatus){
1258 isSelected=newStatus;
1260 if(isSelected==
true) {
1261 mesh.addSelectedNode(
this);
1263 var HB=$(
'#hitbox'+
id);
1264 HB.css(
'background-color', colorHBselected);
1266 mesh.removeSelectedNode(
this);
1267 var HB=$(
'#hitbox'+
id);
1268 HB.css(
'background-color', colorHBdefault);
1273 this.getSelectedStatus =
function(){
1281 this.updateHW=
function (newHeight,newWidth){
1283 if(typeof newHeight ==
'number' && newHeight > configBehaviour.minHeight) {
1286 height=configBehaviour.minHeight;
1289 if(typeof newWidth ==
'number' && newWidth > configBehaviour.minWidth) {
1292 width=configBehaviour.minWidth;
1295 this.updateHtmlNodeFromHW(height, width);
1304 this.getLocation =
function (){
1310 this.getmLocation =
function (){
1317 this.setLocation =
function(loc, boolAnimation, speed_){
1319 if(boolAnimation==
true && this.getIsMoving()==
false ) {
1321 this.setIsMoving(
true);
1324 var currentLoc = this.getLocation();
1325 loc.setX(loc.getX());
1326 loc.setY(loc.getY());
1327 var sx=loc.getX()-currentLoc.getX();
1328 var sy=loc.getY()-currentLoc.getY();
1329 var distInit = Math.sqrt(sx*sx+sy*sy);
1331 if(typeof speed_ ==
'number' && speed_ > 0 ) {
1332 var speed = parseInt(speed_);
1334 var speed=parseInt(configBehaviour.animationSpeed);
1340 var realmove =
function() {
1341 hnode.updateLocFromHtmlNode();
1342 currentLoc = hnode.getLocation();
1345 var slocx=loc.getX()-currentLoc.getX();
1346 var slocy=loc.getY()-currentLoc.getY();
1347 var distLoc=Math.sqrt(slocx*slocx+slocy*slocy);
1348 if(distLoc>speed+1 && u<50) {
1351 hnode.setOpacityLocation();
1353 hnode.setLocation(me.locationProvider(hnode.getIdLocation()) );
1357 var move =
function(){
1358 $(
'#'+hnode.getId()).animate({
"left" :
"+="+speed*sx/distInit,
"top" :
"+="+speed*sy/distInit}, 10,
"linear",realmove)
1366 this.updateHtmlNodeFromLoc(location, boolAnimation);
1368 this.setIsMoving(
false);
1369 this.setOpacityLocation();
1371 if (!init_tile && !nodeMenu)
1373 if ( this.getNodeInViewportStatus() ) {
1374 if (configBehaviour.alwaysShowInfo) {
1375 $(
'#info'+
id).show();
1386 this.updatePostItPositionandSize =
function(){
1396 var options = {id :
"postit"+id,posX : this.getLocation().getX() , posY : this.getLocation().getY() + mesh.me.getSpread().Y };
1398 $(
'#postit'+
id).postitall(
'options', options);
1412 nodeRef.setLocation(location,
false);