OSDN Git Service

server balloon, fix around help document, fix tail console, add quit-menu:getAsHTML
authoritozyun <itozyun@git.sourceforge.jp>
Tue, 3 Jan 2012 08:15:18 +0000 (17:15 +0900)
committeritozyun <itozyun@git.sourceforge.jp>
Tue, 3 Jan 2012 08:15:18 +0000 (17:15 +0900)
55 files changed:
0.3.0/balloon/_w0.gif [new file with mode: 0644]
0.3.0/balloon/_w0_b1.gif [new file with mode: 0644]
0.3.0/balloon/_w1.gif [new file with mode: 0644]
0.3.0/balloon/_w10.gif [new file with mode: 0644]
0.3.0/balloon/_w10_b1.gif [new file with mode: 0644]
0.3.0/balloon/_w11.gif [new file with mode: 0644]
0.3.0/balloon/_w11_b1.gif [new file with mode: 0644]
0.3.0/balloon/_w12.gif [new file with mode: 0644]
0.3.0/balloon/_w12_b1.gif [new file with mode: 0644]
0.3.0/balloon/_w13.gif [new file with mode: 0644]
0.3.0/balloon/_w13_b1.gif [new file with mode: 0644]
0.3.0/balloon/_w14.gif [new file with mode: 0644]
0.3.0/balloon/_w14_b1.gif [new file with mode: 0644]
0.3.0/balloon/_w15.gif [new file with mode: 0644]
0.3.0/balloon/_w15_b1.gif [new file with mode: 0644]
0.3.0/balloon/_w16.gif [new file with mode: 0644]
0.3.0/balloon/_w16_b1.gif [new file with mode: 0644]
0.3.0/balloon/_w17.gif [new file with mode: 0644]
0.3.0/balloon/_w17_b1.gif [new file with mode: 0644]
0.3.0/balloon/_w18.gif [new file with mode: 0644]
0.3.0/balloon/_w18_b1.gif [new file with mode: 0644]
0.3.0/balloon/_w19.gif [new file with mode: 0644]
0.3.0/balloon/_w19_b1.gif [new file with mode: 0644]
0.3.0/balloon/_w1_b1.gif [new file with mode: 0644]
0.3.0/balloon/_w2.gif [new file with mode: 0644]
0.3.0/balloon/_w20.gif [new file with mode: 0644]
0.3.0/balloon/_w20_b1.gif [new file with mode: 0644]
0.3.0/balloon/_w21.gif [new file with mode: 0644]
0.3.0/balloon/_w21_b1.gif [new file with mode: 0644]
0.3.0/balloon/_w22.gif [new file with mode: 0644]
0.3.0/balloon/_w22_b1.gif [new file with mode: 0644]
0.3.0/balloon/_w23.gif [new file with mode: 0644]
0.3.0/balloon/_w23_b1.gif [new file with mode: 0644]
0.3.0/balloon/_w2_b1.gif [new file with mode: 0644]
0.3.0/balloon/_w3.gif [new file with mode: 0644]
0.3.0/balloon/_w3_b1.gif [new file with mode: 0644]
0.3.0/balloon/_w4.gif [new file with mode: 0644]
0.3.0/balloon/_w4_b1.gif [new file with mode: 0644]
0.3.0/balloon/_w5.gif [new file with mode: 0644]
0.3.0/balloon/_w5_b1.gif [new file with mode: 0644]
0.3.0/balloon/_w6.gif [new file with mode: 0644]
0.3.0/balloon/_w6_b1.gif [new file with mode: 0644]
0.3.0/balloon/_w7.gif [new file with mode: 0644]
0.3.0/balloon/_w7_b1.gif [new file with mode: 0644]
0.3.0/balloon/_w8.gif [new file with mode: 0644]
0.3.0/balloon/_w8_b1.gif [new file with mode: 0644]
0.3.0/balloon/_w9.gif [new file with mode: 0644]
0.3.0/balloon/_w9_b1.gif [new file with mode: 0644]
0.3.0/common.css
0.3.0/common.js
0.3.0/diary/itozyun.xml
0.3.0/help/jp.xml
0.3.0/work.css
0.3.0/work.html
0.3.0/work.js

diff --git a/0.3.0/balloon/_w0.gif b/0.3.0/balloon/_w0.gif
new file mode 100644 (file)
index 0000000..bd5f864
Binary files /dev/null and b/0.3.0/balloon/_w0.gif differ
diff --git a/0.3.0/balloon/_w0_b1.gif b/0.3.0/balloon/_w0_b1.gif
new file mode 100644 (file)
index 0000000..d82b7b6
Binary files /dev/null and b/0.3.0/balloon/_w0_b1.gif differ
diff --git a/0.3.0/balloon/_w1.gif b/0.3.0/balloon/_w1.gif
new file mode 100644 (file)
index 0000000..48514a0
Binary files /dev/null and b/0.3.0/balloon/_w1.gif differ
diff --git a/0.3.0/balloon/_w10.gif b/0.3.0/balloon/_w10.gif
new file mode 100644 (file)
index 0000000..e0ab19f
Binary files /dev/null and b/0.3.0/balloon/_w10.gif differ
diff --git a/0.3.0/balloon/_w10_b1.gif b/0.3.0/balloon/_w10_b1.gif
new file mode 100644 (file)
index 0000000..de061ca
Binary files /dev/null and b/0.3.0/balloon/_w10_b1.gif differ
diff --git a/0.3.0/balloon/_w11.gif b/0.3.0/balloon/_w11.gif
new file mode 100644 (file)
index 0000000..b38de85
Binary files /dev/null and b/0.3.0/balloon/_w11.gif differ
diff --git a/0.3.0/balloon/_w11_b1.gif b/0.3.0/balloon/_w11_b1.gif
new file mode 100644 (file)
index 0000000..0f979b5
Binary files /dev/null and b/0.3.0/balloon/_w11_b1.gif differ
diff --git a/0.3.0/balloon/_w12.gif b/0.3.0/balloon/_w12.gif
new file mode 100644 (file)
index 0000000..72af3b4
Binary files /dev/null and b/0.3.0/balloon/_w12.gif differ
diff --git a/0.3.0/balloon/_w12_b1.gif b/0.3.0/balloon/_w12_b1.gif
new file mode 100644 (file)
index 0000000..e5f70c4
Binary files /dev/null and b/0.3.0/balloon/_w12_b1.gif differ
diff --git a/0.3.0/balloon/_w13.gif b/0.3.0/balloon/_w13.gif
new file mode 100644 (file)
index 0000000..34c7726
Binary files /dev/null and b/0.3.0/balloon/_w13.gif differ
diff --git a/0.3.0/balloon/_w13_b1.gif b/0.3.0/balloon/_w13_b1.gif
new file mode 100644 (file)
index 0000000..b5a5d2f
Binary files /dev/null and b/0.3.0/balloon/_w13_b1.gif differ
diff --git a/0.3.0/balloon/_w14.gif b/0.3.0/balloon/_w14.gif
new file mode 100644 (file)
index 0000000..5952918
Binary files /dev/null and b/0.3.0/balloon/_w14.gif differ
diff --git a/0.3.0/balloon/_w14_b1.gif b/0.3.0/balloon/_w14_b1.gif
new file mode 100644 (file)
index 0000000..8e94d1f
Binary files /dev/null and b/0.3.0/balloon/_w14_b1.gif differ
diff --git a/0.3.0/balloon/_w15.gif b/0.3.0/balloon/_w15.gif
new file mode 100644 (file)
index 0000000..ee2ff98
Binary files /dev/null and b/0.3.0/balloon/_w15.gif differ
diff --git a/0.3.0/balloon/_w15_b1.gif b/0.3.0/balloon/_w15_b1.gif
new file mode 100644 (file)
index 0000000..e1695ee
Binary files /dev/null and b/0.3.0/balloon/_w15_b1.gif differ
diff --git a/0.3.0/balloon/_w16.gif b/0.3.0/balloon/_w16.gif
new file mode 100644 (file)
index 0000000..78b7c7a
Binary files /dev/null and b/0.3.0/balloon/_w16.gif differ
diff --git a/0.3.0/balloon/_w16_b1.gif b/0.3.0/balloon/_w16_b1.gif
new file mode 100644 (file)
index 0000000..dbd66e4
Binary files /dev/null and b/0.3.0/balloon/_w16_b1.gif differ
diff --git a/0.3.0/balloon/_w17.gif b/0.3.0/balloon/_w17.gif
new file mode 100644 (file)
index 0000000..4977827
Binary files /dev/null and b/0.3.0/balloon/_w17.gif differ
diff --git a/0.3.0/balloon/_w17_b1.gif b/0.3.0/balloon/_w17_b1.gif
new file mode 100644 (file)
index 0000000..bf63671
Binary files /dev/null and b/0.3.0/balloon/_w17_b1.gif differ
diff --git a/0.3.0/balloon/_w18.gif b/0.3.0/balloon/_w18.gif
new file mode 100644 (file)
index 0000000..f904ec4
Binary files /dev/null and b/0.3.0/balloon/_w18.gif differ
diff --git a/0.3.0/balloon/_w18_b1.gif b/0.3.0/balloon/_w18_b1.gif
new file mode 100644 (file)
index 0000000..fe8fc88
Binary files /dev/null and b/0.3.0/balloon/_w18_b1.gif differ
diff --git a/0.3.0/balloon/_w19.gif b/0.3.0/balloon/_w19.gif
new file mode 100644 (file)
index 0000000..15c38f7
Binary files /dev/null and b/0.3.0/balloon/_w19.gif differ
diff --git a/0.3.0/balloon/_w19_b1.gif b/0.3.0/balloon/_w19_b1.gif
new file mode 100644 (file)
index 0000000..0940573
Binary files /dev/null and b/0.3.0/balloon/_w19_b1.gif differ
diff --git a/0.3.0/balloon/_w1_b1.gif b/0.3.0/balloon/_w1_b1.gif
new file mode 100644 (file)
index 0000000..fa63ab6
Binary files /dev/null and b/0.3.0/balloon/_w1_b1.gif differ
diff --git a/0.3.0/balloon/_w2.gif b/0.3.0/balloon/_w2.gif
new file mode 100644 (file)
index 0000000..fa07e5f
Binary files /dev/null and b/0.3.0/balloon/_w2.gif differ
diff --git a/0.3.0/balloon/_w20.gif b/0.3.0/balloon/_w20.gif
new file mode 100644 (file)
index 0000000..5f3b7e3
Binary files /dev/null and b/0.3.0/balloon/_w20.gif differ
diff --git a/0.3.0/balloon/_w20_b1.gif b/0.3.0/balloon/_w20_b1.gif
new file mode 100644 (file)
index 0000000..8818931
Binary files /dev/null and b/0.3.0/balloon/_w20_b1.gif differ
diff --git a/0.3.0/balloon/_w21.gif b/0.3.0/balloon/_w21.gif
new file mode 100644 (file)
index 0000000..98ddb1d
Binary files /dev/null and b/0.3.0/balloon/_w21.gif differ
diff --git a/0.3.0/balloon/_w21_b1.gif b/0.3.0/balloon/_w21_b1.gif
new file mode 100644 (file)
index 0000000..3057ccb
Binary files /dev/null and b/0.3.0/balloon/_w21_b1.gif differ
diff --git a/0.3.0/balloon/_w22.gif b/0.3.0/balloon/_w22.gif
new file mode 100644 (file)
index 0000000..0dbc5c9
Binary files /dev/null and b/0.3.0/balloon/_w22.gif differ
diff --git a/0.3.0/balloon/_w22_b1.gif b/0.3.0/balloon/_w22_b1.gif
new file mode 100644 (file)
index 0000000..e736f4c
Binary files /dev/null and b/0.3.0/balloon/_w22_b1.gif differ
diff --git a/0.3.0/balloon/_w23.gif b/0.3.0/balloon/_w23.gif
new file mode 100644 (file)
index 0000000..d74f80c
Binary files /dev/null and b/0.3.0/balloon/_w23.gif differ
diff --git a/0.3.0/balloon/_w23_b1.gif b/0.3.0/balloon/_w23_b1.gif
new file mode 100644 (file)
index 0000000..ca41564
Binary files /dev/null and b/0.3.0/balloon/_w23_b1.gif differ
diff --git a/0.3.0/balloon/_w2_b1.gif b/0.3.0/balloon/_w2_b1.gif
new file mode 100644 (file)
index 0000000..dc29c49
Binary files /dev/null and b/0.3.0/balloon/_w2_b1.gif differ
diff --git a/0.3.0/balloon/_w3.gif b/0.3.0/balloon/_w3.gif
new file mode 100644 (file)
index 0000000..b664807
Binary files /dev/null and b/0.3.0/balloon/_w3.gif differ
diff --git a/0.3.0/balloon/_w3_b1.gif b/0.3.0/balloon/_w3_b1.gif
new file mode 100644 (file)
index 0000000..c8d4af5
Binary files /dev/null and b/0.3.0/balloon/_w3_b1.gif differ
diff --git a/0.3.0/balloon/_w4.gif b/0.3.0/balloon/_w4.gif
new file mode 100644 (file)
index 0000000..f39af9b
Binary files /dev/null and b/0.3.0/balloon/_w4.gif differ
diff --git a/0.3.0/balloon/_w4_b1.gif b/0.3.0/balloon/_w4_b1.gif
new file mode 100644 (file)
index 0000000..542d5d7
Binary files /dev/null and b/0.3.0/balloon/_w4_b1.gif differ
diff --git a/0.3.0/balloon/_w5.gif b/0.3.0/balloon/_w5.gif
new file mode 100644 (file)
index 0000000..0d74823
Binary files /dev/null and b/0.3.0/balloon/_w5.gif differ
diff --git a/0.3.0/balloon/_w5_b1.gif b/0.3.0/balloon/_w5_b1.gif
new file mode 100644 (file)
index 0000000..b5fbf61
Binary files /dev/null and b/0.3.0/balloon/_w5_b1.gif differ
diff --git a/0.3.0/balloon/_w6.gif b/0.3.0/balloon/_w6.gif
new file mode 100644 (file)
index 0000000..2a97e6c
Binary files /dev/null and b/0.3.0/balloon/_w6.gif differ
diff --git a/0.3.0/balloon/_w6_b1.gif b/0.3.0/balloon/_w6_b1.gif
new file mode 100644 (file)
index 0000000..5f5552b
Binary files /dev/null and b/0.3.0/balloon/_w6_b1.gif differ
diff --git a/0.3.0/balloon/_w7.gif b/0.3.0/balloon/_w7.gif
new file mode 100644 (file)
index 0000000..197543e
Binary files /dev/null and b/0.3.0/balloon/_w7.gif differ
diff --git a/0.3.0/balloon/_w7_b1.gif b/0.3.0/balloon/_w7_b1.gif
new file mode 100644 (file)
index 0000000..64c6ca2
Binary files /dev/null and b/0.3.0/balloon/_w7_b1.gif differ
diff --git a/0.3.0/balloon/_w8.gif b/0.3.0/balloon/_w8.gif
new file mode 100644 (file)
index 0000000..057323b
Binary files /dev/null and b/0.3.0/balloon/_w8.gif differ
diff --git a/0.3.0/balloon/_w8_b1.gif b/0.3.0/balloon/_w8_b1.gif
new file mode 100644 (file)
index 0000000..7c9c2c7
Binary files /dev/null and b/0.3.0/balloon/_w8_b1.gif differ
diff --git a/0.3.0/balloon/_w9.gif b/0.3.0/balloon/_w9.gif
new file mode 100644 (file)
index 0000000..fccc259
Binary files /dev/null and b/0.3.0/balloon/_w9.gif differ
diff --git a/0.3.0/balloon/_w9_b1.gif b/0.3.0/balloon/_w9_b1.gif
new file mode 100644 (file)
index 0000000..af4e630
Binary files /dev/null and b/0.3.0/balloon/_w9_b1.gif differ
index 654ba97..c0297a9 100644 (file)
@@ -440,11 +440,12 @@ version: 2.7.0
 \r
 /*  Reversible Image with png-fix\r
 --------------------------------------------------------------------------------------*/\r
-       .img-flip-v .img-flip-with-pngfix-v,\r
-       .img-flip-vh .img-flip-with-pngfix-v {\r
+       .img-flip-v .img-flip-with-pngfix-v {\r
                filter:                                 flipv();\r
        }\r
-       .img-flip-h .img-flip-with-pngfix-h,\r
-       .img-flip-vh .img-flip-with-pngfix-h {\r
+       .img-flip-h .img-flip-with-pngfix-h {\r
                filter:                                 fliph();\r
+       }\r
+       .img-flip-vh .img-flip-with-pngfix-h {\r
+               filter:                                 flipv() fliph();\r
        }
\ No newline at end of file
index e9b4a76..6230136 100644 (file)
        }\r
        \r
        var location = document.location.pathname,\r
-               isWorkPage = location.indexOf( 'work.html') !== -1,\r
+               isWorkPage = location.indexOf( '\/work.html') !== -1,\r
                deep = location.indexOf( '\/diary\/') !== -1 || location.indexOf( '\/help\/') !== -1 || location.indexOf( '\/sitemap\/') !== -1;\r
 \r
-       var LoginUserConsole =\r
-               isWorkPage === false ?\r
+       var LoginUserConsole = isWorkPage === false ?\r
                ( function(){\r
                        var _body = document.body,\r
                                _root = document.getElementsByTagName( 'HTML')[ 0],\r
@@ -80,7 +79,7 @@
                                                }\r
                                        }\r
                                        \r
-                                       delete this.init;\r
+                                       delete LoginUserConsole.init;\r
                                },\r
                                show: function(){\r
                                        if(visible === true) return;\r
                                        \r
                                        _body.removeChild(filter);\r
                                        _body.style.overflow = '';\r
-                                       \r
+                                       if (_root) {\r
+                                               _root.style.overflow = '';\r
+                                       }\r
                                        _body.removeChild(iframe);\r
                                        \r
                                        visible = false;\r
index e3c22bc..ffe015b 100644 (file)
        </entry>\r
        <entry pubdate="12-01-01">\r
                help ドキュメントを .xml から読み込むようにする。.xml がクロールされユーザーに開かれた場合、.xsl で html 化して表示しユーザーを正しいページに誘導する.\r
+               .xml に埋め込まれた script などの対策もしておいたけど、あんなもんでいいのだろうか??\r
+       </entry>\r
+       <entry pubdate="12-01-02">\r
+               Quit > getAsHTML が少し動作, サーバ画像での吹きだし表示も動作。\r
+               90°, -90°のときに起きていたしっぽの操作ボタンのジャンプを修正。\r
        </entry>\r
 </diary>
\ No newline at end of file
index fac3956..37278d8 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" ?>\r
 <?xml-stylesheet type="text/xsl" href="help.xsl"?>\r
 \r
-<pages title="ぺったんR ヘルプドキュメント"\r
+<pages title="ã\81ºã\81£ã\81\9fã\82\93R ã\82¨ã\83\87ã\82£ã\82¿  ã\83\98ã\83«ã\83\97ã\83\89ã\82­ã\83¥ã\83¡ã\83³ã\83\88"\r
                description="この xml ドキュメントは、ぺったんR エディターのためのヘルプで、ぺったんR用エディターから読み込まれて使用されます."\r
                author="pettan復活チーム"\r
                workgroup="transration group url"               \r
index 4fd0e39..eda088d 100644 (file)
@@ -27,6 +27,7 @@
                top:                            0;\r
                width:                          100%;\r
                height:                         100%;\r
+               overflow:                       hidden;\r
        }\r
                #overlay-shadow {\r
                        background-color:       #000;\r
index 7de4459..7b51fcf 100644 (file)
                                                <a href="work.html?view=editor">Boot Editor ⇒</a>\r
                                                        \r
                                        <h3>boot editor on debug mode</h3>\r
+                                               <h4>Reversible Image Backend test</h4>\r
                                        <a href="work.html?view=editor&rimg=CSS3">Boot Editor (ReversibleImageBackend is CSS3) ⇒</a><br>\r
                                        <a href="work.html?view=editor&rimg=VML">Boot Editor (ReversibleImageBackend is VML) ⇒</a><br>\r
                                        <a href="work.html?view=editor&rimg=ActiveX">Boot Editor (ReversibleImageBackend is ActiveX) ⇒</a>\r
                                                \r
+                                               <h4>vector test</h4>\r
+                                               <a href="work.html?view=editor&vector=false">Boot Editor (Vector Disabled) ⇒</a><br>\r
+                                               \r
                                                <h2>ajax contents</h2>\r
-                                               <h3>Help documents</h3>\r
+                                               <h3>help documents</h3>\r
                                                <a href="help/jp.xml">help contents | jp.xml</a>\r
                                                        \r
-                                               <h3>help documents</h3>\r
+                                               <h3>xml seo test</h3>\r
                                                <a href="diary/itozyun.xml">itozyn's diary</a>\r
                                                \r
                                                <h2>other</h2>\r
index 03bc215..a123a5b 100644 (file)
  * \r
  */\r
 \r
+/*\r
+ *     if (!document.namespaces["v"]) { // VMLネームスペースが定義されていないなら\r
+        // ネームスペース(v) をVMLとして認識させる\r
+        document.namespaces.add("v", "urn:schemas-microsoft-com:vml", "#default#VML");\r
+    }\r
+    // スタイルシートを生成し、<v:rect> と <v:fill> をVMLとして紐付ける\r
+    document.createStyleSheet().cssText = "v\:rect,v\:fill{behavior:url(#default#VML);";\r
+\r
+ */\r
+\r
 var h2c = ( function(){\r
        var     FUNCTION_ARRAY = [],\r
                URL = document.location.href.split( '#')[ 0],\r
@@ -224,7 +234,7 @@ h2c.util = ( function(){
                        document.body.appendChild( ret);\r
                        return ret;\r
                })(),\r
-               CLEAN_TARGET_ELEMENT = 'script,style,object,applet,embed,iframe,frame'.split( ',');\r
+               CLEAN_TARGET_ELEMENT = 'script,style,object,applet,embed,iframe,frame,base,bgsound,frameset,listing'.split( ',');\r
        return {\r
                extend: function( baseInstance, extend){\r
                        for( var key in extend){\r
@@ -244,6 +254,14 @@ h2c.util = ( function(){
                                        }\r
                                }\r
                        }\r
+                       if( h2c.isIE === false) return;\r
+                       elms = document.getElementsByName( '*');\r
+                       l = elms.length;\r
+                       for(i=0; i<l; ++i){\r
+                               elm = elms[ i];\r
+                               elm.style.filter = '';\r
+                               elm.style.behavior = '';\r
+                       }\r
                },\r
                getElementSize: function( _elm){\r
                        if( !_elm){\r
@@ -800,15 +818,18 @@ h2c.key = ( function(){
                        key = e.keyCode,\r
                        overlayEnabled = h2c.overlay.visible === true,\r
                        currentViewID = overlayEnabled === true ? h2c.overlay.currentID : h2c.view.currentID;\r
-               if( callback === 'keydown' && EDITABLE_TEXT_CONTROL.keyEventRellay( e) === false){\r
-                       \r
+               if( callback === 'keyup' || EDITABLE_TEXT_CONTROL.keyEventRellay( e) === false){\r
                        var shift = e.shiftKey,\r
                                ctrl = e.ctrlKey,\r
                                l = KEYEVENT_ARRAY.length,\r
                                d;\r
                        \r
-                       shiftEnabled = e.shiftKey;\r
-                       ctrlEnabled = e.ctrlKey;                        \r
+                       shiftEnabled = callback !== 'keyup' ?\r
+                                                       e.shiftKey :\r
+                                                       key !== 16 ? shiftEnabled : false;\r
+                       ctrlEnabled = callback !== 'keyup' ?\r
+                                                       e.ctrlKey :\r
+                                                       key !== 17 ? ctrlEnabled : false;;                      \r
 \r
                        for( var i=0; i<l; i++){\r
                                d = KEYEVENT_ARRAY[ i];\r
@@ -821,8 +842,11 @@ h2c.key = ( function(){
                                        ( d.ctrl === undefined || d.ctrl === ctrl)\r
                                ){\r
                                        ( function( func, e){\r
-                                               setTimeout( function(){ func( e)}, 0);\r
-                                       })( d[callback], e)\r
+                                               func && setTimeout( function(){\r
+                                                       func( e);\r
+                                                       func = e = null;\r
+                                               }, 0);\r
+                                       })( d[callback], e);\r
                                        cancel = true;\r
                                }\r
                        }\r
@@ -954,7 +978,8 @@ h2c.balloon = ( function() {
                                return null;\r
                        }\r
                })(),\r
-               vectorEnabled = ELM_BALLOON_ORIGIN !== null;\r
+               NUM_BALLOON_IMAGE = 24,\r
+               vectorEnabled = ELM_BALLOON_ORIGIN !== null && h2c.URL_PARAMS.vector !== false;\r
 \r
        var XBROWSER_BALLOON_CLASS = function( w, h, a){\r
                var balloonElm = vectorEnabled === true ? ELM_BALLOON_ORIGIN.cloneNode( true) : document.createElement( 'IMG'), // h2c.imageに変更\r
@@ -1057,21 +1082,26 @@ h2c.balloon = ( function() {
                }\r
                \r
                function balloonUrlBuilder( _a){\r
-                       return 'url'//\r
+                       var d = 360 /NUM_BALLOON_IMAGE;\r
+                       _a += 90 +d /2;\r
+                       return [ 'balloon\/_w', _a < 360 -d /2 ? Math.floor( _a /d) : 0, '.gif'].join( '');\r
                }\r
                return {\r
                        elm: balloonElm,\r
                        resize: draw,\r
                        angle: function( _a){\r
-                               if( _a && _a !== a){\r
-                                       draw( _a);\r
-                               }\r
+                               _a !== undefined && _a !== a &&\r
+                                       vectorEnabled === false ? balloonUrlBuilder( _a) : draw( _a);\r
+                               return a;\r
                        },\r
                        type: function( _type){\r
                                //draw( _a);\r
                        },\r
+                       getURL: function(){\r
+                               return balloonUrlBuilder( a);\r
+                       },\r
                        destroy: function(){\r
-                               balloonElm.parentNode.removeChild( balloonElm);\r
+                               balloonElm.parentNode && balloonElm.parentNode.removeChild( balloonElm);\r
                                balloonElm = null;\r
                                delete this.destroy;\r
                        }\r
@@ -1080,7 +1110,7 @@ h2c.balloon = ( function() {
        \r
        vectorEnabled === true && ( function(){\r
                var detect = XBROWSER_BALLOON_CLASS.apply( {}, [ 100, 100, 0]),\r
-                       size = h2c.util.getElementSize( detect.elm);\r
+                       size = h2c.util.getElementSize( detect.elm.firstChild ? detect.elm.firstChild : detect.elm);\r
                vectorEnabled = size.width !== 0 && size.height !== 0;\r
                detect.destroy();\r
                detect = size = null;   \r
@@ -1177,9 +1207,9 @@ h2c.image = ( function(){
                        h2c.util.loadImage( url, onLoad, onError, 100, 10000);\r
                        function onLoad( _url, _actualW, _actualH){\r
                                if( elmWrap === null) return;\r
-                               elmImg = new Image;\r
-                               elmImg.src = url;\r
+                               elmImg = document.createElement( 'IMG');\r
                                elmWrap.appendChild( elmImg); // load後にimg\r
+                               elmImg.src = url;\r
                                elmWrap.className = CLASS_NAME;\r
                                onLoadCallback && onLoadCallback( _url, _actualW, _actualH);\r
                                onLoadCallback = null;\r
@@ -1343,7 +1373,6 @@ h2c.editor = ( function(){
  *        a\r
  *          span\r
  *          kbd shortcut\r
- *     li.separator\r
  */\r
        var MENU_BAR_CONTROL = ( function(){\r
                var BAR_ID = 'menu-bar',\r
@@ -1418,12 +1447,12 @@ h2c.editor = ( function(){
                        }\r
                }\r
 \r
-               var MenuBarItemClass = function( title){\r
+               var MenuBarItemClass = function( title, opt_callbackArray){\r
                        var ELM_WRAPPER = ELM_ITEM_ORIGN.cloneNode( true),\r
                                ELM_TITLE = ELM_WRAPPER.getElementsByTagName( 'DIV')[ 0],\r
                                ELM_SELECTION = ELM_WRAPPER.getElementsByTagName( 'UL')[ 0],\r
                                INDEX = ITEM_ARRAY.length,\r
-                               SELECTION_CALLBACK_ARRAY = [],\r
+                               SELECTION_CALLBACK_ARRAY = opt_callbackArray || [],\r
                                numSelection = 0,\r
                                visible = false;\r
                        ELM_TITLE.innerHTML = title;\r
@@ -1447,6 +1476,8 @@ h2c.editor = ( function(){
                                return false;                           \r
                        }\r
                        return {\r
+                               elm: ELM_WRAPPER,\r
+                               onClick: onClick,\r
                                init: function(){\r
                                        $( ELM_SELECTION).children( 'li').click( onClick);\r
                                        delete this.init;\r
@@ -1473,20 +1504,6 @@ h2c.editor = ( function(){
                                                ret.elm.style.borderTop = '1px solid #ccc';\r
                                        }\r
                                        return ret;\r
-                               },\r
-                               createAjaxSelection: function(){\r
-                                       var elmLoading = document.createElement( 'li');\r
-                                       elmLoading.className = 'loading';\r
-                                       elmLoading.style.height = '90px';\r
-                                       ELM_SELECTION.appendChild( elmLoading);\r
-                                       \r
-                                       delete this.createAjaxSelection;\r
-                                       return function(){\r
-                                               SELECTION_CALLBACK_ARRAY.shift();\r
-                                               ELM_SELECTION.removeChild( elmLoading);\r
-                                               elmLoading = null;\r
-                                               $( ELM_SELECTION).children( 'li').click( onClick);\r
-                                       }\r
                                }\r
                        }\r
                }\r
@@ -1543,9 +1560,33 @@ h2c.editor = ( function(){
                        QUIT: createMenubarItem( 'Quit'),\r
                        EDIT: createMenubarItem( 'Edit'),\r
                        WINDOW: createMenubarItem( 'Window'),\r
-                       HELP: h2c.util.extend( createMenubarItem( 'Help'), {\r
-                               \r
-                       }) // extend, onShow, ajaxselection, HELP_DOCUMENTS_CONTROL.load()\r
+                       HELP: ( function(){\r
+                                       var SELECTION_CALLBACK_ARRAY = [];\r
+                                       return h2c.util.extend( createMenubarItem( 'Help', SELECTION_CALLBACK_ARRAY), {\r
+                                               createAjaxSelection: function( callback){\r
+                                                       var elmLoading = document.createElement( 'li'),\r
+                                                               that = this,\r
+                                                               elmSelection = this.elm.getElementsByTagName( 'UL')[ 0];\r
+                                                       elmSelection.appendChild( elmLoading);\r
+                                                       elmLoading.className = 'loading';\r
+                                                       elmLoading.style.height = '90px';                                                       \r
+                                                       \r
+                                                       //SELECTION_CALLBACK_ARRAY.push( callback);\r
+                                                       this.onShow = callback;\r
+                                                       callback = null;\r
+                                                       \r
+                                                       delete this.createAjaxSelection;\r
+                                                       return function(){\r
+                                                               //SELECTION_CALLBACK_ARRAY.shift();\r
+                                                               elmSelection.removeChild( elmLoading);\r
+                                                               $( elmSelection).children( 'li').click( that.onClick);\r
+                                                               elmLoading = elmSelection = null;\r
+                                                               delete that.onShow;\r
+                                                               that = null;\r
+                                                       }\r
+                                               }\r
+                                       });\r
+                               })()\r
                }\r
        })();\r
 \r
@@ -1574,6 +1615,7 @@ h2c.editor = ( function(){
                        var state = STACK_BACK.pop();\r
                        state && state.fn( state.argBack);\r
                        MENUBAR_BACK.visible( STACK_BACK.length !== 0);\r
+                       SAVE_CONTROL.panelUpdated( STACK_BACK.length !== 0);\r
                        \r
                        STACK_FORWARD.push( state);\r
                        MENUBAR_FORWARD.visible( true);\r
@@ -1587,6 +1629,7 @@ h2c.editor = ( function(){
                        \r
                        STACK_BACK.push( state);\r
                        MENUBAR_BACK.visible( true);\r
+                       SAVE_CONTROL.panelUpdated( true);\r
                }\r
                return {\r
                        init: function(){\r
@@ -1601,6 +1644,7 @@ h2c.editor = ( function(){
                                        destroy:        _destroy\r
                        });\r
                        MENUBAR_BACK.visible( true);\r
+                               SAVE_CONTROL.panelUpdated( true);\r
 \r
                        while( STACK_FORWARD.length > 0){\r
                                        _argBack = _stack.argBack;\r
@@ -1634,10 +1678,9 @@ h2c.editor = ( function(){
  *  * help window に  help documents を挿入\r
  */\r
        var HELP_DOCUMENTS_CONTROL = ( function(){\r
-               var onLoadFunction = MENU_BAR_CONTROL.HELP.createAjaxSelection();\r
+               \r
                return {\r
-                       load: function(){\r
-                               // HELP_DOCUMENTS_WINDOW.setAjaxContent();\r
+                       load: function( titleArray){\r
                                var help = MENU_BAR_CONTROL.HELP;\r
                                //help.createSelection();\r
                                //onLoadFunction();\r
@@ -1646,6 +1689,40 @@ h2c.editor = ( function(){
        })();\r
 \r
 /* ----------------------------------------\r
+ *     Save Control\r
+ */\r
+\r
+       var SAVE_CONTROL = ( function(){\r
+               var SAVE = MENU_BAR_CONTROL.QUIT.createSelection( 'save', 'ctrl + S', quit, false),\r
+                       SAVE_AND_QUIT = MENU_BAR_CONTROL.QUIT.createSelection( 'save & quit', null, quit, false, false, true),\r
+                       SAVE_AS_HTML = MENU_BAR_CONTROL.QUIT.createSelection( 'get as html', null, outputAsHtml, true, false, true),\r
+                       QUIT = MENU_BAR_CONTROL.QUIT.createSelection( 'quit', null, quit, true, true),\r
+                       updated = false;\r
+               \r
+               function quit(){\r
+               }\r
+               \r
+               function outputAsHtml(){\r
+                       alert( CANVAS_CONTROL.getAsHTML( true, false));\r
+               }\r
+               \r
+               return {\r
+                       quit: quit,\r
+                       panelUpdated: function( _updated){\r
+                               if( _updated !== undefined && updated !== _updated){\r
+                                       SAVE.visible( !!_updated);\r
+                                       SAVE_AND_QUIT.visible( !!_updated);\r
+                                       updated = !!_updated;\r
+                               }\r
+                               return updated;\r
+                       },\r
+                       save: function(){\r
+                               \r
+                       }\r
+               }\r
+       })();\r
+\r
+/* ----------------------------------------\r
  *     Text Editor (Overlay)\r
  */\r
        \r
@@ -2159,11 +2236,9 @@ h2c.editor = ( function(){
                        }\r
                        \r
                        return {\r
-                               setInstance: function(){\r
-                                       instance = this;\r
-                                       delete this.setInstance;\r
-                               },\r
                                init: function( jqContainer){\r
+                                       instance = this;\r
+                                       \r
                                        jqWindowOrigin = jqWindowOrigin || ( function(){\r
                                                return $( $( '#windowTemplete').remove().html());\r
                                        })();\r
@@ -2171,7 +2246,6 @@ h2c.editor = ( function(){
                                                return h2c.util.getElementSize( jqWindowOrigin.clone( true).find( '.window-close-button').get( 0)).width;\r
                                        })();\r
                                        \r
-                                       \r
                                        jqStage = jqEditor;\r
                                        this.$ = jqWrapper = jqWindowOrigin.clone( true);\r
                                        jqHeader = jqWrapper.children( '.window-header').eq( 0).html( title);\r
@@ -2185,8 +2259,23 @@ h2c.editor = ( function(){
                                        }\r
                                        CLOSE_BUTTON_ENABLED !== true && jqWrapper.find( '.window-close-button').remove();\r
                                        \r
-                                       jqContainer.append( jqWrapper); // domに追加しないと、this.onInit()が正しく動かない.\r
-                                       jqWrapper.fadeIn(); // appendした後に fadeIn() しないと ie で filterが適用されない.\r
+                                       this.onInit && this.onInit();\r
+                                       delete this.init;\r
+                               },\r
+                               x: function(){ return x;},\r
+                               y: function(){ return y;},\r
+                               w: function(){ return w;},\r
+                               h: function(){ return h;},\r
+                               $: null,\r
+                               title: function( _title){\r
+                                       _title !== undefined && jqHeader.html( _title);\r
+                                       title = _title || title;\r
+                                       return title;\r
+                               },\r
+                               visible: visible,\r
+                               firstOpen: function(){\r
+                                       //jqContainer.append( jqWrapper); // domに追加しないと、this.onInit()が正しく動かない.\r
+                                       //jqWrapper.fadeIn(); // appendした後に fadeIn() しないと ie で filterが適用されない.\r
                                        if( RESIZE_BUTTON_ENABLED === true){\r
                                                jqWrapper.find( '.window-resize-button').eq( 0)\r
                                                        .mousedown( function( e){\r
@@ -2206,25 +2295,16 @@ h2c.editor = ( function(){
                                                jqWrapper.find( '.window-resize-button').remove();\r
                                        }\r
                                        update( x, y, w, h);\r
-                                       this.onInit && this.onInit();\r
-                                       delete this.init;\r
-                               },\r
-                               x: function(){ return x;},\r
-                               y: function(){ return y;},\r
-                               w: function(){ return w;},\r
-                               h: function(){ return h;},\r
-                               $: null,\r
-                               title: function( _title){\r
-                                       _title !== undefined && jqHeader.html( _title);\r
-                                       title = _title || title;\r
-                                       return title;\r
+                                       \r
+                                       this.onFirstOpen && this.onFirstOpen();\r
+                                       \r
+                                       delete this.firstOpen;\r
                                },\r
-                               visible: visible,\r
                                open: function(){\r
                                        if( visible === true) return;\r
                                        this.visible = visible = true;\r
-                                       this.onOpen && setTimeout( this.onOpen, 0);\r
                                        openWindow( this);\r
+                                       \r
                                        MENUBAR_SELWCTION.title( 'hide ' +title);\r
                                },\r
                                close: function(){\r
@@ -2296,6 +2376,7 @@ h2c.editor = ( function(){
                        currentWindowIndex = -1;\r
                        for( var i=0; i<l; i++){\r
                                _win = WINDOW_ARRAY[ i];\r
+                               if( _win.visible !== true) continue;\r
                                _x = _win.x();\r
                                _y = _win.y();\r
                                if( _x <= _mouseX && _y <= _mouseY && _x +_win.w() >= _mouseX && _y +_win.h() >= _mouseY){\r
@@ -2309,19 +2390,22 @@ h2c.editor = ( function(){
                        return currentWindowIndex;\r
                }\r
                function openWindow( _window){\r
-                       if( _window.visible !== true) return;\r
-                       WINDOW_ARRAY.unshift( _window);\r
-                       WINDOWS_CONTROL.init === undefined &&\r
-                               ( _window.init === undefined ?\r
-                                       jqContainer.append( _window.$.stop().fadeIn()) :\r
-                                       _window.init( jqContainer)\r
-                               );\r
+                       if( _window.firstOpen && h2c.isIE === true && h2c.ieVersion < 9){\r
+                               jqContainer.append( _window.$.stop());\r
+                               _window.firstOpen();\r
+                       }\r
+                       _window.visible === true && jqContainer.append( _window.$.stop().fadeIn(\r
+                               function(){\r
+                                       _window.firstOpen && _window.firstOpen();\r
+                                       _window.onOpen && setTimeout( _window.onOpen, 0);\r
+                               }\r
+                       ));\r
                }\r
                function closeWindow( _window){\r
                        var l = WINDOW_ARRAY.length;\r
                        for( var i=0; i<l; ++i){\r
                                if( WINDOW_ARRAY[ i] === _window){\r
-                                       WINDOW_ARRAY.splice( i, 1);\r
+                                       //WINDOW_ARRAY.splice( i, 1);\r
                                        _window.$.stop().fadeOut( function(){\r
                                                this.parentNode.removeChild( this);\r
                                        });\r
@@ -2338,7 +2422,8 @@ h2c.editor = ( function(){
                                        _window;\r
                                for( var i=l-1; i >= 0; --i){\r
                                        _window = WINDOW_ARRAY[ i];\r
-                                       _window.visible === true && _window.init && _window.init( jqContainer);\r
+                                       _window.init && _window.init( jqContainer);\r
+                                       _window.visible === true && openWindow( _window);\r
                                }\r
                                log = $( '#window-log');\r
                                \r
@@ -2397,8 +2482,9 @@ h2c.editor = ( function(){
                                        WindowClass.apply( scope, [ bodyTempleteID, title, x, y, w, h, opt_visible, opt_closeButtonEnabled, opt_resizeButtonEnabled, opt_minWindowW, opt_minWindowH]),\r
                                        EXTENDS\r
                                );\r
-                               _window.setInstance();\r
-                               opt_visible === true && openWindow( _window);\r
+                               WINDOW_ARRAY.unshift( _window);\r
+                               WINDOWS_CONTROL.init === undefined && _window.init( jqContainer);\r
+                               WINDOWS_CONTROL.init === undefined && openWindow( _window);\r
                                return _window;\r
                        }\r
                }\r
@@ -2420,58 +2506,46 @@ h2c.editor = ( function(){
                h2c.key.addKeyDownEvent( h2c.view.EDITOR, 71, false, true, switchGrid);\r
                MENU_BAR_CONTROL.EDIT.createSelection( 'show Grid', 'ctrl + G', switchGrid, true, true, true);\r
 \r
-               function addImage(){\r
-                       setTimeout( function(){ CANVAS_CONTROL.createImageElement();}, 0);                      \r
+               function addImage( e){\r
+                       setTimeout( CANVAS_CONTROL.createImageElement, 0);\r
+                       e && e.preventDefault();\r
+                       return false;\r
                }\r
-               function addText(){\r
-                       setTimeout( function(){ CANVAS_CONTROL.createTextElement();}, 0);                       \r
+               function addText( e){\r
+                       setTimeout( CANVAS_CONTROL.createTextElement, 0);\r
+                       e && e.preventDefault();\r
+                       return false;\r
                }\r
-               function switchGrid(){\r
+               function switchGrid( e){\r
                        setTimeout( gridSwitchFunction, 0);\r
+                       e && e.preventDefault();\r
+                       return false;\r
                }\r
-               function popupHelp(){\r
-                       setTimeout( function(){ HELP_DOCUMENTS_WINDOW.open();}, 0);     \r
+               function popupHelp( e){\r
+                       setTimeout( HELP_DOCUMENTS_WINDOW.open, 0);\r
+                       e && e.preventDefault();\r
+                       return false;\r
                }\r
                \r
                return WINDOWS_CONTROL.createWindow(\r
                        this,\r
                        {\r
-                               onInit: function(){\r
-                                       addImageButton = $( '#toolbox-add-image-button').click( function(e){\r
-                                               addImage();\r
-                                               e.preventDefault();\r
-                                               return false;\r
-                                       });\r
-\r
-                                       addTextButton = $( '#toolbox-add-text-button').click( function(e){\r
-                                               addText();\r
-                                               e.preventDefault();\r
-                                               return false;\r
-                                       });\r
+                               onFirstOpen: function(){\r
+                                       addImageButton = $( '#toolbox-add-image-button').click( addImage);\r
+                                       addTextButton = $( '#toolbox-add-text-button').click( addText);\r
                                        \r
                                        editBgButton = $( '#toolbox-edit-bg-button').click( function( e){\r
-                                               setTimeout( function(){\r
-                                                       INFOMATION_WINDOW.open();\r
-                                               }, 0);  \r
+                                               setTimeout( INFOMATION_WINDOW.open, 0); \r
                                                e.preventDefault();\r
                                                return false;\r
                                        });\r
                                        \r
-                                       switchGridButton = $( '#toolbox-switch-grid').click( function( e){\r
-                                               switchGrid();\r
-                                               e.preventDefault();\r
-                                               return false;\r
-                                       });\r
-                                       \r
-                                       popupHelpButton = $( '#toolbox-popup-help-button').click( function( e){\r
-                                               popupHelp();\r
-                                               e.preventDefault();\r
-                                               return false;\r
-                                       });\r
+                                       switchGridButton = $( '#toolbox-switch-grid').click( switchGrid);\r
+                                       popupHelpButton = $( '#toolbox-popup-help-button').click( popupHelp);\r
                                        \r
                                        publishButton = $( '#toolbox-publish-button');\r
                                        \r
-                                       delete this.onInit;\r
+                                       delete this.onFirstOpen;\r
                                },\r
                                setGridSwitchFunction: function( _gridSwitchFunction){\r
                                        gridSwitchFunction = _gridSwitchFunction || gridSwitchFunction;\r
@@ -2498,7 +2572,7 @@ h2c.editor = ( function(){
                return WINDOWS_CONTROL.createWindow(\r
                        this,\r
                        {\r
-                               onInit: function(){\r
+                               onFirstOpen: function(){\r
                                        backgroundInfomationElm = $( '#panel-background-information');\r
                                        \r
                                        jqComicElementInformation = $( '#comic-element-infomation').hide().css( {\r
@@ -2515,7 +2589,7 @@ h2c.editor = ( function(){
                                        wPercentElm = CREATER( $( '#comic-element-w-percent'), null, TAB_GROUP_ID);\r
                                        hPercentElm = CREATER( $( '#comic-element-h-percent'), null, TAB_GROUP_ID);\r
                                        aspectElm = $( '#comic-element-keep-aspect');\r
-                                       delete this.onInit;\r
+                                       delete this.onFirstOpen;\r
                                },\r
                                onResize: function( w, h){\r
                                        jqComicElementInformation && jqComicElementInformation.css( {\r
@@ -2523,6 +2597,7 @@ h2c.editor = ( function(){
                                        });\r
                                },\r
                                update: function( _currentElementType, x, y, z, a, w, h, wPercent, hPercent, keepAspect){\r
+                                       if( this.onFirstOpen) return;\r
                                        if( currentElementType !== _currentElementType){\r
                                                if( _currentElementType !== -1){\r
                                                        if( _currentElementType === 1){\r
@@ -2574,23 +2649,29 @@ h2c.editor = ( function(){
                        hasAjaxContents = false,\r
                        jqAjaxContents,\r
                        jqNaviItems,\r
-                       jqPages;\r
+                       jqPages,\r
+                       HELP = MENU_BAR_CONTROL.HELP,\r
+                       onLoadFunction = HELP.createAjaxSelection( onFirstOpen),\r
+                       instance;\r
                function jumpPage( _index){\r
                        \r
                }\r
-               function onOpen( _pageIndex){\r
+               function onFirstOpen( _pageIndex){\r
                        _pageIndex = _pageIndex || 0;\r
                        if( hasAjaxContents === false){\r
                                $.ajax({\r
                                        url:            'help/jp.xml',\r
                                        dataType:       'xml',\r
                                        success:        function( xml){\r
-                                               var elmNavi = document.createElement( 'DIV'),\r
+                                               var jqXML = $( xml),\r
+                                                       helpTitle = jqXML.find( 'pages').eq( 0).attr( 'title'),\r
+                                                       elmNavi = document.createElement( 'DIV'),\r
                                                        elmItemOrigin = document.createElement( 'A'),\r
                                                        elmPages = document.createElement( 'DIV'),\r
                                                        elmPageOrigin = document.createElement( 'DIV'),\r
                                                        elmTitleOrigin = document.createElement( 'H2'),\r
-                                                       elmPage;\r
+                                                       elmPage,\r
+                                                       numPage = 0;\r
                                                elmNavi.className = 'sidenavi';\r
                                                elmItemOrigin.className = 'sidenavi-item';\r
                                                elmItemOrigin.href = '#';\r
@@ -2598,7 +2679,9 @@ h2c.editor = ( function(){
                                                elmPageOrigin.className = 'page-content';\r
                                                elmPageOrigin.appendChild( elmTitleOrigin);\r
                                                \r
-                                               $( xml).find( 'page').each( function(){\r
+                                               // helpTitle && instance.title( helpTitle);\r
+                                               \r
+                                               jqXML.find( 'page').each( function(){\r
                                                        var xmlPage = $( this),\r
                                                                title = xmlPage.attr( 'title'),\r
                                                                content = xmlPage.text();\r
@@ -2618,11 +2701,21 @@ h2c.editor = ( function(){
                                                                elmPage.appendChild( elmTitleOrigin.cloneNode( true));\r
                                                        }\r
                                                        elmPages.appendChild( elmPage);\r
+                                                       \r
+                                                       HELP.createSelection( title, null, ( function( _pageIndex){\r
+                                                               return function(){\r
+                                                                       HELP_DOCUMENTS_WINDOW.open();\r
+                                                                       onOpen( _pageIndex);                                                                    \r
+                                                               }\r
+                                                       })( numPage), true);\r
+                                                       ++numPage;\r
                                                });\r
-                                               jqAjaxContents.append( elmNavi, elmPages);\r
+                                               onLoadFunction();\r
+                                               onLoadFunction = null;\r
+                                               \r
+                                               jqAjaxContents.removeClass( 'loading').append( elmNavi, elmPages);\r
                                                \r
-                                               jqNaviItems = jqAjaxContents.removeClass( 'loading')\r
-                                                       .find( 'a.' +elmItemOrigin.className)\r
+                                               jqNaviItems = jqAjaxContents.find( 'a.' +elmItemOrigin.className)\r
                                                        .click( function( e){\r
                                                                var that = this,\r
                                                                        parent = this.parentNode,\r
@@ -2666,7 +2759,9 @@ h2c.editor = ( function(){
                                        }\r
                                });\r
                                hasAjaxContents = true;\r
-                       } else {\r
+                       }\r
+                       function onOpen( _pageIndex){\r
+                               _pageIndex = _pageIndex || 0;\r
                                jqNaviItems.removeClass( 'current').eq( _pageIndex).addClass( 'current');\r
                                jqPages.hide().eq( _pageIndex).show();\r
                        }\r
@@ -2675,10 +2770,11 @@ h2c.editor = ( function(){
                        this,\r
                        {\r
                                onInit: function(){\r
+                                       instance = this;\r
                                        jqAjaxContents = this.$.find( '.window-body').addClass( 'loading').css( { height: this.bodyHeight()});\r
-                                       onOpen( 0);\r
                                        delete this.onInit;\r
                                },\r
+                               onFirstOpen: onFirstOpen,\r
                                onResize: function( w, h){\r
                                        jqAjaxContents && jqAjaxContents.css( { height: this.bodyHeight()});\r
                                },\r
@@ -3012,7 +3108,8 @@ h2c.editor = ( function(){
                                                        DEG_TO_RAD = Math.PI / 180,\r
                                                        RAD_TO_DEG = 1 /DEG_TO_RAD,\r
                                                        currentText = null,\r
-                                                       x, y, w, h, a, radA;\r
+                                                       x, y, w, h, a, radA,\r
+                                                       visible = false;\r
                                                \r
                                                function draw( _w, _h, _a){\r
                                                        w = _w !== undefined ? _w : w;\r
@@ -3051,7 +3148,7 @@ h2c.editor = ( function(){
                                                                draw( w, h,\r
                                                                        _mouseX !== 0 ?\r
                                                                                ATAN( _mouseY /_mouseX) *RAD_TO_DEG +( _mouseX < 0 ? 180 : 0) :\r
-                                                                               _mouseY > 0 ? 0 : 180\r
+                                                                               _mouseY > 0 ? 90 : -90\r
                                                                );\r
                                                                currentText && currentText.angle( a);\r
                                                                updateInfomation( undefined, undefined, undefined, a);\r
@@ -3233,7 +3330,6 @@ h2c.editor = ( function(){
                                                        },\r
                                                        onFinish: function(){\r
                                                                if( startA === currentElement.angle()) return;\r
-                                                               // resize( x, y, w, h, currentElement.angle());\r
                                                                saveComicElementStatus( x, y, w, h, startA);\r
                                                        },\r
                                                        onCancel: function(){\r
@@ -3242,7 +3338,7 @@ h2c.editor = ( function(){
                                                }\r
                                        })(),\r
                                        RESIZE_CONTROLER = ( function(){\r
-                                               var RESIZE_COMMAND_ARRAY = [\r
+                                               var RESIZE_WORK_ARRAY = [\r
                                                                { x:    0, w:    0, y:  1, h:   -1}, //top\r
                                                                { x:    1, w:   -1, y:  0, h:    0}, //left\r
                                                                { x:    0, w:    1, y:  0, h:    0}, //right\r
@@ -3304,7 +3400,7 @@ h2c.editor = ( function(){
                                                                return true;\r
                                                        },\r
                                                        onDrag: function( _mouseX, _mouseY){\r
-                                                               var com = RESIZE_COMMAND_ARRAY[ currentResizerIndex],\r
+                                                               var com = RESIZE_WORK_ARRAY[ currentResizerIndex],\r
                                                                        moveX = _mouseX -xOffset,\r
                                                                        moveY = _mouseY -yOffset,\r
                                                                        _x = baseX +moveX *com.x,\r
@@ -3515,7 +3611,7 @@ h2c.editor = ( function(){
                                                        [ currentElement, x, y, w, h, angle, flipV, flipH]\r
                                                );\r
                                        }\r
-                                       h2c.key.addKeyUpdateEvent( h2c.view.EDITOR, 16, true, undefined, function(){\r
+                                       h2c.key.addKeyUpdateEvent( h2c.view.EDITOR, 16, true, undefined, function( e){\r
                                                currentControler !== null && currentControler.onShiftUpdate && currentControler.onShiftUpdate();\r
                                        });\r
                                        h2c.key.addKeyUpdateEvent( h2c.view.EDITOR, 17, undefined, true, function(){\r
@@ -3593,7 +3689,7 @@ h2c.editor = ( function(){
                         *  // COMIC_ELEMENT_OPERATOR\r
                         */\r
                \r
-                       var AbstractComicElement = function( JQ_WAPPER, COMIC_ELM_TYPE, update, x, y, w, h, z, domIndex){\r
+                       var AbstractComicElement = function( JQ_WAPPER, COMIC_ELM_TYPE, update, x, y, w, h, z, timing){\r
                                var OPERATOR = COMIC_ELEMENT_OPERATOR;\r
                                return {\r
                                        $: JQ_WAPPER,\r
@@ -3603,7 +3699,7 @@ h2c.editor = ( function(){
                                        w: w,\r
                                        h: h,                                   \r
                                        z: z,\r
-                                       domIndex: domIndex,\r
+                                       timing: timing,\r
                                        hitareaX: function(){ return OPERATOR.hitareaX( this, this.x);},\r
                                        hitareaY: function(){ return OPERATOR.hitareaY( this, this.y);},\r
                                        hitareaW: function(){ return OPERATOR.hitareaW( this, this.w);},\r
@@ -3630,7 +3726,7 @@ h2c.editor = ( function(){
                 * ImageElementClass\r
                 */\r
                        var     jqImageElementOrigin;\r
-                       var ImageElementClass = function( url, IMAGE_SET_ID, x, y, z, w, h, domIndex){\r
+                       var ImageElementClass = function( url, IMAGE_SET_ID, x, y, z, w, h, timing){\r
                                jqImageElementOrigin = jqImageElementOrigin || $( $( '#imgElementTemplete').remove().html());\r
                                \r
                                var JQ_WRAPPER = jqImageElementOrigin.clone( true),\r
@@ -3675,7 +3771,7 @@ h2c.editor = ( function(){
                                        reversibleImage = _reversibleImage;\r
                                }\r
                                return h2c.util.extend(\r
-                                       AbstractComicElement.apply( this, [ JQ_WRAPPER, COMIC_ELEMENT_TYPE_IMAGE, update, x, y, w, h, z, domIndex]),\r
+                                       AbstractComicElement.apply( this, [ JQ_WRAPPER, COMIC_ELEMENT_TYPE_IMAGE, update, x, y, w, h, z, timing]),\r
                                        {\r
                                                init: function(){\r
                                                        instance = this;\r
@@ -3713,8 +3809,19 @@ h2c.editor = ( function(){
                                                        flipV = _flipV !== undefined ? _flipV : flipV;\r
                                                        update( _x, _y, _w, _h, true);\r
                                                },\r
-                                               getAsHtml: function(){\r
-                                                       \r
+                                               getAsHTML: function( isAbsoluteUrl, isXHTML){\r
+                                                       return [\r
+                                                               '<img ',\r
+                                                                       'src="', isAbsoluteUrl !== true ? url : h2c.util.getAbsolutePath( url), '" ',\r
+                                                                       'width="', w, '" ',\r
+                                                                       'height="', h, '" ',\r
+                                                                       'style="',                                                                      \r
+                                                                               'left:', x, 'px;',\r
+                                                                               'top:', y, 'px;',\r
+                                                                               'z-index:', z, ';',\r
+                                                                       '"',\r
+                                                               isXHTML !== true ? '>' : ' \/>'\r
+                                                       ].join( '');\r
                                                },\r
                                                getAsJson: function(){\r
                                                        \r
@@ -3750,7 +3857,7 @@ h2c.editor = ( function(){
                 * \r
                 */\r
                        var jqTextElementOrigin;\r
-                       var TextElementClass = function( type, a, text, x, y, z, w, h, domIndex){\r
+                       var TextElementClass = function( type, a, text, x, y, z, w, h, timing){\r
                                jqTextElementOrigin = jqTextElementOrigin || ( function(){\r
                                        var _OLD_IE = $( $( '#textElementTempleteForOldIE').remove().html()),\r
                                                _MODERN = $( $( '#textElementTemplete').remove().html());\r
@@ -3805,7 +3912,7 @@ h2c.editor = ( function(){
                                }\r
                                \r
                                return h2c.util.extend(\r
-                                       AbstractComicElement.apply( this, [ JQ_WRAPPER, COMIC_ELEMENT_TYPE_TEXT, update, x, y, w, h, z, domIndex]),\r
+                                       AbstractComicElement.apply( this, [ JQ_WRAPPER, COMIC_ELEMENT_TYPE_TEXT, update, x, y, w, h, z, timing]),\r
                                        {\r
                                                init: function(){\r
                                                        instance = this;\r
@@ -3840,7 +3947,30 @@ h2c.editor = ( function(){
                                                getAsJsonString: function(){\r
                                                        \r
                                                },\r
-                                               getAsHTML: function(){},\r
+                                               getAsHTML: function( isAbsoluteUrl, isXHTML){\r
+                                                       var url = XBROWSER_BALLOON.getURL();\r
+                                                       return [\r
+                                                               '<img ',\r
+                                                                       'src="', isAbsoluteUrl !== true ? url : h2c.util.getAbsolutePath( url), '" ',\r
+                                                                       'width="', w, '" ',\r
+                                                                       'height="', h, '" ',\r
+                                                                       'style="',                                                                      \r
+                                                                               'left:', x, 'px;',\r
+                                                                               'top:', y, 'px;',\r
+                                                                               'z-index:', z, ';',\r
+                                                                       '"',\r
+                                                               isXHTML !== true ? '>' : ' \/>',\r
+                                                               h2c.LINE_FEED_CODE_TEXTAREA,\r
+                                                               '<div class="balloon" style="',\r
+                                                                       'left:', x, 'px;',\r
+                                                                       'top:', y, 'px;',\r
+                                                                       'width:', w, 'px;',\r
+                                                                       'height:', h, 'px;',\r
+                                                                       'z-index:', z,\r
+                                                               '"><span>', text, '<\/span>', '<\/div>'\r
+                                                                       \r
+                                                       ].join( '');\r
+                                               },\r
                                                getAsXML: function(){}\r
                                                \r
                                        }\r
@@ -3987,8 +4117,8 @@ h2c.editor = ( function(){
                                 */\r
                                        comicElementContainer = $( '#comic-element-container');\r
                                        \r
-                                       appendComicElement( ImageElementClass.apply( {}, [ 'images/13.gif', 'penchan', 10, 10, 0, 100, 140]));\r
-                                       appendComicElement( TextElementClass.apply( {}, [ 0, 270, 'Hello', 50, 70, 1, 200, 160]));\r
+                                       appendComicElement( ImageElementClass.apply( {}, [ 'images/13.gif', 'penchan', 10, 10, 0, 100, 140, 0]));\r
+                                       appendComicElement( TextElementClass.apply( {}, [ 0, 270, 'Hello', 50, 70, 1, 200, 160, 1]));\r
                                        \r
                                        COMIC_ELEMENT_OPERATOR.init( updateMouseCursor);\r
                                /*\r
@@ -4070,7 +4200,7 @@ h2c.editor = ( function(){
                                        x = x || Math.floor( canvasW /2 -w /2);\r
                                        y = y || Math.floor( canvasH /2 -h /2);\r
                                        IMAGE_GROUP_EXPROLER.show( function( _url, _w, _h){\r
-                                               var _comicElement = ImageElementClass.apply( {}, [ _url, imagesetID, x, y, z || -1, w, h]);\r
+                                               var _comicElement = ImageElementClass.apply( {}, [ _url, imagesetID, x, y, z || -1, w, h, DRAGGABLE_ELEMENT_ARRAY.length -NUM_RESIZER]);\r
                                                appendComicElement( _comicElement);\r
                                                _comicElement.animate( undefined, undefined, _w, _h);\r
                                                SAVE( restoreComicElement, [ false, _comicElement], [ true, _comicElement], true);\r
@@ -4084,11 +4214,48 @@ h2c.editor = ( function(){
                                        h = h || 150;\r
                                        x = x || Math.floor( canvasW /2 -w /2 +Math.random() *10);\r
                                        y = y || Math.floor( canvasH /2 -h /2 +Math.random() *10);\r
-                                       var _comicElement = TextElementClass.apply( {}, [ type, angle, text, x, y, z || -1, w, h]);\r
+                                       var _comicElement = TextElementClass.apply( {}, [ type, angle, text, x, y, z || -1, w, h, DRAGGABLE_ELEMENT_ARRAY.length -NUM_RESIZER]);\r
                                        TEXT_EDITOR_CONTROL.show( _comicElement, function( _comicElement){\r
                                                appendComicElement( _comicElement);\r
                                                SAVE( restoreComicElement, [ false, _comicElement], [ true, _comicElement], true);\r
                                        });\r
+                               },\r
+                               getAsHTML: function( isAbsoluteUrl, isXHTML){\r
+                                       var HTML_CONTAINER = [],\r
+                                               l = DRAGGABLE_ELEMENT_ARRAY.length,\r
+                                               _timing = 0,\r
+                                               _comicElement;\r
+\r
+                                       while( HTML_CONTAINER.length < l -NUM_RESIZER){\r
+                                               _comicElement = getComicElementByTiming();\r
+                                               if( _comicElement === null) break;\r
+                                               HTML_CONTAINER.push( _comicElement.getAsHTML( isAbsoluteUrl, isXHTML));\r
+                                       }\r
+                                       function getComicElementByTiming(){\r
+                                               while( _timing < l *2){\r
+                                                       for(var i=NUM_RESIZER; i<l; ++i){\r
+                                                               if( _timing === DRAGGABLE_ELEMENT_ARRAY[ i].timing){\r
+                                                                       ++_timing;\r
+                                                                       return DRAGGABLE_ELEMENT_ARRAY[ i];\r
+                                                               }\r
+                                                       }\r
+                                                       ++_timing;\r
+                                               }\r
+                                               return null;\r
+                                       }\r
+                                       HTML_CONTAINER.unshift(\r
+                                               [\r
+                                                       '<div class="panel" ',\r
+                                                               'style="',\r
+                                                                       'height:', canvasH, 'px;',\r
+                                                                       'background-color:', ';',\r
+                                                               '"',\r
+                                                       '>'\r
+                                               ].join( '')\r
+                                       );              \r
+                                       HTML_CONTAINER.push( '</div>');\r
+                                       \r
+                                       return HTML_CONTAINER.join( h2c.LINE_FEED_CODE_TEXTAREA);\r
                                }\r
                        }\r
                })( resize);\r
@@ -4175,7 +4342,8 @@ h2c.editor = ( function(){
                        },\r
                        createTextElement: function( type, angle, text, x, y, w, h, z){\r
                                COMIC_ELEMENT_CONTROL.createTextElement( type, angle, text, x, y, w, h, z);\r
-                       }\r
+                       },\r
+                       getAsHTML: COMIC_ELEMENT_CONTROL.getAsHTML\r
                }\r
        })();\r
 \r