+ $('input').map ->\r
+ if $(@).attr('element_type') and $(@).attr('element_type') == 'speech_balloon'\r
+ $(@).focusout ->\r
+ switch $(@).attr('column')\r
+ when 'x'\r
+ trace = element_tag_id($(@))\r
+ v = parseInt($(@).val()).toString() + 'px'\r
+ $(trace).css('left', v)\r
+ when 'y'\r
+ trace = element_tag_id($(@))\r
+ v = parseInt($(@).val()).toString() + 'px'\r
+ $(trace).css('top', v)\r
+ when 'width'\r
+ trace = element_tag_id($(@))\r
+ v = parseInt($(@).val())\r
+ $(trace).width(Math.abs(v))\r
+ trace = '#panel' + $(trace).attr('panel_id') + 'speech_balloon' + $(trace).attr('element_id') + 'balloon' + $(trace).attr('balloon_id')\r
+ $(trace).parent().width(v)\r
+ $(trace).width(v)\r
+ when 'height'\r
+ trace = element_tag_id($(@))\r
+ v = parseInt($(@).val())\r
+ $(trace).height(Math.abs(v))\r
+ trace = '#panel' + $(trace).attr('panel_id') + 'speech_balloon' + $(trace).attr('element_id') + 'balloon' + $(trace).attr('balloon_id')\r
+ $(trace).parent().height(v)\r
+ $(trace).height(v)\r
+ else\r
+ else\r
+ $('textarea').map ->\r
+ if $(@).attr('element_type') and $(@).attr('element_type') == 'speech_balloon'\r
+ $(@).focusout ->\r
+ switch $(@).attr('column')\r
+ when 'content'\r
+ trace = element_tag_id($(@))\r
+ speech_trace = '#panel' + $(@).attr('panel_id') + 'speech_balloon' + $(@).attr('element_id') + 'speech' + $(@).attr('element_part_id')\r
+ v = $(@).val()\r
+ $(speech_trace).html(v)\r
+ \r
+ # ground-picture\r
+ # sync view \r
+ $('input').map ->\r
+ if $(@).attr('element_type') and $(@).attr('element_type') == 'ground_picture'\r
+ $(@).focusout ->\r
+ switch $(@).attr('column')\r
+ when 'x', 'y'\r
+ trace = element_tag_id($(@))\r
+ x = parseInt($(@).val()).toString() + 'px'\r
+ ytrace = '#panel' + $(@).attr('panel_id') + 'ground_picture' + $(@).attr('element_id') + 'y'\r
+ y = parseInt($(ytrace).val()).toString() + 'px'\r
+ $(trace).css('background-position', y + ' ' + x)\r
+ $('select').map ->\r
+ if $(@).attr('element_type') and $(@).attr('element_type') == 'ground_picture'\r
+ $(@).change ->\r
+ switch $(@).attr('column')\r
+ when 'repeat'\r
+ trace = element_tag_id($(@))\r
+ v = parseInt($(@).val())\r
+ $(trace).css('background-repeat', repeat_texts[v])\r
+ else\r
+ \r
+ \r
+ # ground_color\r
+ # sync view \r
+ $('input').map ->\r
+ if $(@).attr('element_type') and $(@).attr('element_type') == 'ground_color' and $(@).attr('column') == 'code'\r
+ $(@).hide()\r
+\r
+ $('#colorpicker-red, #colorpicker-green, #colorpicker-blue').map -> \r
+ trace = element_tag_id($(@).parent())\r
+ $(@).slider {\r
+ orientation: 'horizontal',\r
+ range: 'min',\r
+ max: 255,\r
+ value: 127,\r
+ change: ( event, ui ) ->\r
+ red = $('#colorpicker-red').slider('value')\r
+ green = $('#colorpicker-green').slider('value')\r
+ blue = $('#colorpicker-blue').slider('value')\r
+ code = (red << 16) + (green << 8) + (blue)\r
+ phex = "000000" + code.toString(16)\r
+ hex = code.toString(16)\r
+ h = phex.substring(phex.length - 6)\r
+ $('#colorpicker-swatch').css('background-color', '#' + h)\r
+ $('#colorpicker-hex').html('HEX: #' + h)\r
+ $('#colorpicker-rgb').html('RGB: (' + red + ',' + green + ',' +blue + ')')\r
+ $(trace + 'code').val(code)\r
+ v = '#' + h\r
+ $(trace).css('background-color', v)\r
+ }\r
+\r
+ $('.colorpicker').map -> \r
+ trace = element_tag_id($(@))\r
+ code = parseInt($(trace + 'code').val())\r
+ $('.colorpicker-red').map -> \r
+ v = (code >> 16) & 0xFF\r
+ $(@).slider('value', v)\r
+ $('.colorpicker-green').map -> \r
+ v = (code >> 8) & 0xFF\r
+ $(@).slider('value', v)\r
+ $('.colorpicker-blue').map -> \r
+ v = code & 0xFF\r
+ $(@).slider('value', v)\r
+ \r
+ $('.tsort').map -> \r
+ $(@).sortable {\r