ueditor_rails 0.0.2 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (105) hide show
  1. data/README.markdown +2 -2
  2. data/app/assets/images/ueditor_rails/dialogs/scrawl/addimg.png +0 -0
  3. data/app/assets/images/ueditor_rails/dialogs/scrawl/brush.png +0 -0
  4. data/app/assets/images/ueditor_rails/dialogs/scrawl/delimg.png +0 -0
  5. data/app/assets/images/ueditor_rails/dialogs/scrawl/delimgH.png +0 -0
  6. data/app/assets/images/ueditor_rails/dialogs/scrawl/empty.png +0 -0
  7. data/app/assets/images/ueditor_rails/dialogs/scrawl/emptyH.png +0 -0
  8. data/app/assets/images/ueditor_rails/dialogs/scrawl/eraser.png +0 -0
  9. data/app/assets/images/ueditor_rails/dialogs/scrawl/redo.png +0 -0
  10. data/app/assets/images/ueditor_rails/dialogs/scrawl/redoH.png +0 -0
  11. data/app/assets/images/ueditor_rails/dialogs/scrawl/scale.png +0 -0
  12. data/app/assets/images/ueditor_rails/dialogs/scrawl/scaleH.png +0 -0
  13. data/app/assets/images/ueditor_rails/dialogs/scrawl/size.png +0 -0
  14. data/app/assets/images/ueditor_rails/dialogs/scrawl/undo.png +0 -0
  15. data/app/assets/images/ueditor_rails/dialogs/scrawl/undoH.png +0 -0
  16. data/app/assets/javascripts/ueditor_rails/_config.js.erb +28 -24
  17. data/app/assets/javascripts/ueditor_rails/dialogs/scrawl.js +655 -0
  18. data/app/assets/javascripts/ueditor_rails/dialogs/wordimage.js +154 -0
  19. data/app/assets/stylesheets/ueditor_rails/dialogs/scrawl.css.erb +72 -0
  20. data/app/controllers/ueditor_rails/dialogs_controller.rb +8 -0
  21. data/app/controllers/ueditor_rails/libs_controller.rb +14 -1
  22. data/app/helpers/ueditor_rails/application_helper.rb +23 -0
  23. data/app/views/ueditor_rails/dialogs/attachment.html.erb +3 -3
  24. data/app/views/ueditor_rails/dialogs/image.html.erb +2 -2
  25. data/app/views/ueditor_rails/dialogs/scrawl.html.erb +96 -0
  26. data/app/views/ueditor_rails/dialogs/wordimage.html.erb +155 -0
  27. data/config/routes.rb +2 -2
  28. data/lib/generators/ueditor_rails/templates/ueditor_config.js.erb +33 -21
  29. data/lib/ueditor_rails.rb +7 -0
  30. data/lib/ueditor_rails/util.rb +1 -1
  31. data/lib/ueditor_rails/version.rb +1 -1
  32. data/test/dummy/config/application.rb +2 -0
  33. data/test/dummy/log/development.log +594 -0
  34. data/test/dummy/tmp/cache/assets/C81/610/sprockets%2F74551592340adfb31d564a6f0780986a +0 -0
  35. data/test/dummy/tmp/cache/assets/C81/680/sprockets%2F05f48503b0539542bae58cd42890287d +0 -0
  36. data/test/dummy/tmp/cache/assets/C92/A50/sprockets%2Fb8ab434fa9743f8545988223229ef813 +0 -0
  37. data/test/dummy/tmp/cache/assets/CA9/8D0/sprockets%2F430c458f24b93f37143e610b7af710d8 +0 -0
  38. data/test/dummy/tmp/cache/assets/CDD/110/sprockets%2F201786630fb75920fef0b95a7ba8e404 +0 -0
  39. data/test/dummy/tmp/cache/assets/CF8/FC0/sprockets%2Fe181c7f625e3797eaa44e044c77e9688 +0 -0
  40. data/test/dummy/tmp/cache/assets/CFC/560/sprockets%2Fbc63d027b162a565426fdbb4611619ab +0 -0
  41. data/test/dummy/tmp/cache/assets/D05/3A0/sprockets%2F8362a0d2c101ef1148d5efcb53e34893 +0 -0
  42. data/test/dummy/tmp/cache/assets/D05/570/sprockets%2Fca8368b2f01a1645dfe894d41152f2c0 +0 -0
  43. data/test/dummy/tmp/cache/assets/D16/E70/sprockets%2Ffcc7289ae3530fcff4500f35990533f4 +0 -0
  44. data/test/dummy/tmp/cache/assets/D2D/F70/sprockets%2F1db6dd5b1f0887b130386d6bc20d13e2 +0 -0
  45. data/test/dummy/tmp/cache/assets/D31/7D0/sprockets%2Fe9f71394f8e86a70e9431c3d83fb86f9 +0 -0
  46. data/test/dummy/tmp/cache/assets/D39/B00/sprockets%2F84ac6151984303fcaec0d48651b6d7ca +0 -0
  47. data/test/dummy/tmp/cache/assets/D40/280/sprockets%2Fc564b6fa3f835a246df0355a83058fcd +0 -0
  48. data/test/dummy/tmp/cache/assets/D41/C00/sprockets%2F0f88cb64779d212943bbab3f5ac483d4 +0 -0
  49. data/test/dummy/tmp/cache/assets/D4A/CF0/sprockets%2F78a5eda44e97ab212ce37b889470c4d7 +0 -0
  50. data/test/dummy/tmp/cache/assets/D4D/060/sprockets%2Fdf8071fd9e383d72ba1f17b5d5e98516 +0 -0
  51. data/test/dummy/tmp/cache/assets/D4E/1B0/sprockets%2Ff7cbd26ba1d28d48de824f0e94586655 +0 -0
  52. data/test/dummy/tmp/cache/assets/D55/1F0/sprockets%2F978d1a29569eb1c8ca9883b64ffb91b3 +0 -0
  53. data/test/dummy/tmp/cache/assets/D70/B70/sprockets%2F6ebaed371aa715b95667e416378cba4d +0 -0
  54. data/test/dummy/tmp/cache/assets/D75/2B0/sprockets%2F7a4cbc3862aa0d6f1ec9e7518fa55838 +0 -0
  55. data/test/dummy/tmp/cache/assets/DCD/870/sprockets%2Fd5daf18cb49181ab0ba896acfd8c8334 +0 -0
  56. data/test/dummy/tmp/cache/assets/DD7/600/sprockets%2F0cec2cc545e1d3bd889d195f68dea4b7 +0 -0
  57. data/test/dummy/tmp/cache/assets/DDB/C20/sprockets%2F46613f4acf7d7cc09f5190f2d8bbdf9f +0 -0
  58. data/test/dummy/tmp/cache/assets/DDC/400/sprockets%2Fcffd775d018f68ce5dba1ee0d951a994 +0 -0
  59. data/test/dummy/tmp/cache/assets/DFE/FF0/sprockets%2F9d2bcad3ae0c53ee9a4685b5aac1887f +0 -0
  60. data/test/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
  61. data/test/dummy/tmp/cache/assets/E34/9F0/sprockets%2F2dbdbaffe3f466f85cee37cee4331f34 +0 -0
  62. data/test/dummy/tmp/cache/assets/E3A/DA0/sprockets%2Ffd736ded1575dfbcf2d45ad5eb4e28d9 +0 -0
  63. data/vendor/assets/javascripts/ueditor/dialogs/anchor/anchor.html.erb +57 -0
  64. data/vendor/assets/javascripts/ueditor/dialogs/background/background.css +24 -0
  65. data/vendor/assets/javascripts/ueditor/dialogs/background/background.html.erb +55 -0
  66. data/vendor/assets/javascripts/ueditor/dialogs/background/background.js +348 -0
  67. data/vendor/assets/javascripts/ueditor/dialogs/emotion/emotion.css.erb +0 -1
  68. data/vendor/assets/javascripts/ueditor/dialogs/emotion/emotion.html.erb +41 -41
  69. data/vendor/assets/javascripts/ueditor/dialogs/gmap/gmap.html.erb +89 -0
  70. data/vendor/assets/javascripts/ueditor/dialogs/help/help.html.erb +72 -70
  71. data/vendor/assets/javascripts/ueditor/dialogs/highlightcode/highlightcode.html.erb +131 -0
  72. data/vendor/assets/javascripts/ueditor/dialogs/insertframe/insertframe.html.erb +98 -0
  73. data/vendor/assets/javascripts/ueditor/dialogs/link/link.html.erb +122 -107
  74. data/vendor/assets/javascripts/ueditor/dialogs/map/map.html.erb +105 -0
  75. data/vendor/assets/javascripts/ueditor/dialogs/music/music.css +30 -0
  76. data/vendor/assets/javascripts/ueditor/dialogs/music/music.html.erb +32 -0
  77. data/vendor/assets/javascripts/ueditor/dialogs/music/music.js +192 -0
  78. data/vendor/assets/javascripts/ueditor/dialogs/searchreplace/searchreplace.html.erb +74 -0
  79. data/vendor/assets/javascripts/ueditor/dialogs/searchreplace/searchreplace.js +160 -0
  80. data/vendor/assets/javascripts/ueditor/dialogs/snapscreen/snapscreen.html.erb +91 -0
  81. data/vendor/assets/javascripts/ueditor/dialogs/spechars/spechars.html.erb +2 -2
  82. data/vendor/assets/javascripts/ueditor/dialogs/table/edittable.html.erb +46 -45
  83. data/vendor/assets/javascripts/ueditor/dialogs/table/edittd.html.erb +40 -39
  84. data/vendor/assets/javascripts/ueditor/dialogs/table/edittip.html.erb +21 -21
  85. data/vendor/assets/javascripts/ueditor/dialogs/template/config.js +42 -0
  86. data/vendor/assets/javascripts/ueditor/dialogs/template/images/bg.gif +0 -0
  87. data/vendor/assets/javascripts/ueditor/dialogs/template/images/pre0.png +0 -0
  88. data/vendor/assets/javascripts/ueditor/dialogs/template/images/pre1.png +0 -0
  89. data/vendor/assets/javascripts/ueditor/dialogs/template/images/pre2.png +0 -0
  90. data/vendor/assets/javascripts/ueditor/dialogs/template/images/pre3.png +0 -0
  91. data/vendor/assets/javascripts/ueditor/dialogs/template/images/pre4.png +0 -0
  92. data/vendor/assets/javascripts/ueditor/dialogs/template/template.css +18 -0
  93. data/vendor/assets/javascripts/ueditor/dialogs/template/template.html.erb +26 -0
  94. data/vendor/assets/javascripts/ueditor/dialogs/template/template.js +53 -0
  95. data/vendor/assets/javascripts/ueditor/dialogs/video/video.html.erb +64 -53
  96. data/vendor/assets/javascripts/ueditor/dialogs/video/video.js.erb +409 -0
  97. data/vendor/assets/javascripts/ueditor/dialogs/webapp/webapp.html.erb +64 -0
  98. data/vendor/assets/javascripts/ueditor/editor_all.js.erb +17209 -15783
  99. data/vendor/assets/javascripts/ueditor/third-party/SyntaxHighlighter/shCore.js +3655 -0
  100. data/vendor/assets/javascripts/ueditor/third-party/SyntaxHighlighter/shCoreDefault.css +316 -0
  101. data/vendor/assets/javascripts/ueditor/third-party/fClipboard_ueditor.swf +0 -0
  102. data/vendor/assets/javascripts/ueditor/third-party/snapscreen/UEditorSnapscreen.exe +0 -0
  103. data/vendor/assets/javascripts/ueditor/uparse.js +3 -13
  104. metadata +77 -3
  105. data/vendor/assets/javascripts/ueditor/dialogs/video/video.js +0 -402
@@ -0,0 +1,57 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
2
+ "http://www.w3.org/TR/html4/loose.dtd">
3
+ <html>
4
+ <head>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
6
+ <title></title>
7
+ <style type="text/css">
8
+ * {
9
+ color: #838383;
10
+ margin: 0;
11
+ padding: 0
12
+ }
13
+
14
+ html, body {
15
+ font-size: 12px;
16
+ overflow: hidden;
17
+ }
18
+
19
+ .content {
20
+ padding: 5px 0 0 15px;
21
+ }
22
+
23
+ input {
24
+ width: 210px;
25
+ height: 21px;
26
+ line-height: 21px;
27
+ margin-left: 4px;
28
+ }
29
+ </style>
30
+ </head>
31
+ <body>
32
+ <div class="content">
33
+ <span><var id="lang_input_anchorName"></var></span><input id="anchorName" value=""/>
34
+ </div>
35
+ <%= javascript_include_tag 'ueditor/dialogs/internal.js' %>
36
+ <script type="text/javascript">
37
+ var anchorInput = $G('anchorName'),
38
+ node = editor.selection.getRange().getClosedNode();
39
+ if (node && node.tagName == 'IMG' && (node = node.getAttribute('anchorname'))) {
40
+ anchorInput.value = node;
41
+ }
42
+ anchorInput.onkeydown = function (evt) {
43
+ evt = evt || window.event;
44
+ if (evt.keyCode == 13) {
45
+ editor.execCommand('anchor', anchorInput.value);
46
+ dialog.close();
47
+ domUtils.preventDefault(evt)
48
+ }
49
+ };
50
+ dialog.onok = function () {
51
+ editor.execCommand('anchor', anchorInput.value);
52
+ dialog.close();
53
+ };
54
+ $focus(anchorInput);
55
+ </script>
56
+ </body>
57
+ </html>
@@ -0,0 +1,24 @@
1
+ .wrapper{ width: 424px;margin: 10px auto; zoom:1;position: relative}
2
+ .tabbody{height:225px;}
3
+ .panel { position: absolute;width:100%; height:100%;background: #fff;}
4
+
5
+ body{font-size: 12px;color: #888;overflow: hidden;}
6
+ input,label{vertical-align:middle}
7
+ .clear{clear: both;}
8
+ .pl{padding-left: 23px;padding-left: 28px\9;}
9
+
10
+ #imageList {width: 420px;height: 215px;margin-top: 10px;overflow: hidden;overflow-y: auto;}
11
+ #imageList div {float: left;width: 100px;height: 95px;margin: 5px 10px;}
12
+ #imageList img {cursor: pointer;border: 2px solid white;}
13
+
14
+ .bgarea{margin: 10px;padding: 5px;height: 84%;border: 1px solid #A8A297;}
15
+ .content div{margin: 10px 0 10px 5px;}
16
+ .content .iptradio{margin-right: 10px;}
17
+ .txt{width:280px;}
18
+
19
+ .wrapcolor{height: 19px;}
20
+ div.color{float: left;margin: 0;}
21
+ #colorPicker{width: 17px;height: 17px;border: 1px solid #CCC;display: inline-block;border-radius: 3px;box-shadow: 2px 2px 5px #D3D6DA;margin: 0;float: left;}
22
+ div.alignment,#custom{margin-left: 30px;margin-left: 35px\9;}
23
+ #custom input{height: 15px;min-height: 15px;width:20px;}
24
+ #repeatType{width:100px;}
@@ -0,0 +1,55 @@
1
+ <!DOCTYPE HTML>
2
+ <html>
3
+ <head>
4
+ <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
5
+ <%= stylesheet_link_tag 'ueditor/dialogs/background/background.css' %>
6
+ </head>
7
+ <body>
8
+ <div id="bg_container" class="wrapper">
9
+ <div id="tabHeads" class="tabhead">
10
+ <span class="focus" tabsrc="normal"><var id="lang_background_normal"></var></span>
11
+ <span class="" tabsrc="imgManager"><var id="lang_background_local"></var></span>
12
+ </div>
13
+ <div id="tabBodys" class="tabbody">
14
+ <div id="normal" class="panel">
15
+ <fieldset class="bgarea">
16
+ <legend><var id="lang_background_set"></var></legend>
17
+ <div class="content">
18
+ <div>
19
+ <input class="iptradio" type="radio" name="t" value="none" checked="checked" onclick="net(this)"><label><var id="lang_background_none"></var></label>
20
+ </div>
21
+ <div class="wrapcolor">
22
+ <div class="color">
23
+ <input class="iptradio" type="radio" name="t" value="color" onclick="net(this)"><label><var id="lang_background_color"></var>:</label>
24
+ </div>
25
+ <div id="colorPicker"></div>
26
+ <div class="clear"></div>
27
+ </div>
28
+ <div class="wrapcolor pl">
29
+ <label><var id="lang_background_netimg"></var>:</label><input class="txt" type="text" id="url">
30
+ </div>
31
+ <div id="alignment" class="alignment">
32
+ <var id="lang_background_align"></var>:<select id="repeatType" onchange="selectAlign(this)">
33
+ <option value="center"></option>
34
+ <option value="repeat-x"></option>
35
+ <option value="repeat-y"></option>
36
+ <option value="repeat"></option>
37
+ <option value="self"></option>
38
+ </select>
39
+ </div>
40
+ <div id="custom">
41
+ <var id="lang_background_position"></var>:x:<input type="text" size="1" id="x" maxlength="4" value="0">px&nbsp;&nbsp;y:<input type="text" size="1" id="y" maxlength="4" value="0">px
42
+ </div>
43
+ </div>
44
+ </fieldset>
45
+
46
+ </div>
47
+ <div id="imgManager" class="panel">
48
+ <div id="imageList" style=""></div>
49
+ </div>
50
+ </div>
51
+ </div>
52
+ <%= javascript_include_tag 'ueditor/dialogs/internal.js' %>
53
+ <%= javascript_include_tag 'ueditor/dialogs/background/background.js' %>
54
+ </body>
55
+ </html>
@@ -0,0 +1,348 @@
1
+ var me = editor,
2
+ doc = me.document,
3
+ bodyStyle,
4
+ cp = $G("colorPicker"),
5
+ bkbodyStyle = "",
6
+ bkcolor = "";
7
+ var popup = new UE.ui.Popup({
8
+ content:new UE.ui.ColorPicker({
9
+ noColorText:me.getLang("clearColor"),
10
+ editor:me,
11
+ onpickcolor:function (t, color) {
12
+ domUtils.setStyle(cp, "background-color", color);
13
+ bkcolor = color;
14
+ UE.ui.Popup.postHide();
15
+ },
16
+ onpicknocolor:function (t, color) {
17
+ domUtils.setStyle(cp, "background-color", "transparent");
18
+ bkcolor = "";
19
+ UE.ui.Popup.postHide();
20
+ }
21
+ }),
22
+ editor:me,
23
+ onhide:function () {
24
+ setBody();
25
+ }
26
+ });
27
+ domUtils.on(cp, "click", function () {
28
+ popup.showAnchor(this);
29
+ });
30
+ domUtils.on(document, 'mousedown', function (evt) {
31
+ var el = evt.target || evt.srcElement;
32
+ UE.ui.Popup.postHide(el);
33
+ });
34
+ domUtils.on(window, 'scroll', function () {
35
+ UE.ui.Popup.postHide();
36
+ });
37
+ //获得head
38
+ var getHead = function () {
39
+ return domUtils.getElementsByTagName($G("tabHeads"), "span");
40
+ };
41
+ //给head绑定事件
42
+ var bindClick = function () {
43
+ var heads = getHead();
44
+ for (var i = 0, head; head = heads[i++];) {
45
+ head.onclick = function () {
46
+ var bodyid = this.getAttribute("tabsrc");
47
+ toggleHead(this);
48
+ toggleBody(bodyid);
49
+ if (bodyid == "imgManager") {
50
+ ajax.request(editor.options.imageManagerUrl, {
51
+ timeout:100000,
52
+ action:"get",
53
+ onsuccess:function (xhr) {
54
+ var tmp = utils.trim(xhr.responseText),
55
+ imageUrls = !tmp ? [] : tmp.split("ue_separate_ue"),
56
+ length = imageUrls.length,
57
+ imgList = $G("imageList");
58
+ imgList.innerHTML = !length ? "&nbsp;&nbsp;" + lang.noUploadImage : "";
59
+ for (var k = 0, ci; ci = imageUrls[k++];) {
60
+ var img = document.createElement("img");
61
+ var div = document.createElement("div");
62
+ div.appendChild(img);
63
+ div.style.display = "none";
64
+ imgList.appendChild(div);
65
+ img.onclick = function () {
66
+ var nodes = imgList.childNodes;
67
+ for (var i = 0, node; node = nodes[i++];) {
68
+ node.firstChild.removeAttribute("selected");
69
+ node.firstChild.style.cssText = "filter:alpha(Opacity=100);-moz-opacity:1;opacity: 1;border: 2px solid #fff";
70
+ }
71
+ changeSelected(this);
72
+ };
73
+ img.onload = function () {
74
+ this.parentNode.style.display = "";
75
+ var w = this.width, h = this.height;
76
+ scale(this, 95, 120, 80);
77
+ this.title = lang.toggleSelect + w + "X" + h;
78
+ };
79
+ img.setAttribute(k < 35 ? "src" : "lazy_src", editor.options.imageManagerPath + ci.replace(/\s+|\s+/ig, ""));
80
+ img.setAttribute("data_ue_src", editor.options.imageManagerPath + ci.replace(/\s+|\s+/ig, ""));
81
+
82
+ }
83
+ },
84
+ onerror:function () {
85
+ $G("imageList").innerHTML = lang.imageLoadError;
86
+ }
87
+ });
88
+ } else {
89
+ var radios = document.getElementsByName("t");
90
+ for (var i = 0, r; r = radios[i++];) {
91
+ if (r.checked && r.value != "none") {
92
+ $G("repeatType").style.display = "";
93
+ net(r);
94
+ }
95
+ }
96
+ }
97
+ }
98
+ }
99
+ };
100
+ /**
101
+ * 改变o的选中状态
102
+ * @param o
103
+ */
104
+ function changeSelected(o) {
105
+ if (o.getAttribute("selected")) {
106
+ o.removeAttribute("selected");
107
+ o.style.cssText = "filter:alpha(Opacity=100);-moz-opacity:1;opacity: 1;border: 2px solid #fff";
108
+ } else {
109
+ o.setAttribute("selected", "true");
110
+ o.style.cssText = "filter:alpha(Opacity=50);-moz-opacity:0.5;opacity: 0.5;border:2px solid blue;";
111
+ }
112
+ $G("url").value = o.getAttribute("src")
113
+ }
114
+ /**
115
+ * 图片缩放
116
+ * @param img
117
+ * @param max
118
+ */
119
+ function scale(img, max, oWidth, oHeight) {
120
+ var width = 0, height = 0, percent, ow = img.width || oWidth, oh = img.height || oHeight;
121
+ if (ow > max || oh > max) {
122
+ if (ow >= oh) {
123
+ if (width = ow - max) {
124
+ percent = (width / ow).toFixed(2);
125
+ img.height = oh - oh * percent;
126
+ img.width = max;
127
+ }
128
+ } else {
129
+ if (height = oh - max) {
130
+ percent = (height / oh).toFixed(2);
131
+ img.width = ow - ow * percent;
132
+ img.height = max;
133
+ }
134
+ }
135
+ }
136
+ }
137
+ //切换body
138
+ var toggleBody = function (id) {
139
+ var bodys = ["normal", "imgManager"];
140
+ for (var i = 0, body; body = bodys[i++];) {
141
+ $G(body).style.zIndex = body == id ? 200 : 1;
142
+ }
143
+ };
144
+ //切换head
145
+ var toggleHead = function (obj) {
146
+ var heads = getHead();
147
+ for (var i = 0, head; head = heads[i++];) {
148
+ domUtils.removeClasses(head, ["focus"]);
149
+ $G("repeatType").style.display = "none";
150
+ }
151
+ domUtils.addClass(obj, "focus");
152
+ };
153
+ //获得当前选中的tab
154
+ var getCheckedTab = function () {
155
+ var heads = getHead();
156
+ for (var i = 0, head; head = heads[i++];) {
157
+ if (domUtils.hasClass(head, "focus")) {
158
+ return head;
159
+ }
160
+ }
161
+ };
162
+
163
+
164
+ var init = function () {
165
+ bindClick();
166
+ var el = getHead()[0],
167
+ bodyid = el.getAttribute("tabsrc");
168
+ toggleHead(el);
169
+ toggleBody(bodyid);
170
+ $G("alignment").style.display = "none";
171
+ $G("custom").style.display = "none";
172
+ //初始化颜色
173
+ domUtils.setStyle(cp, "background-color", domUtils.getComputedStyle(doc.body, "background-color"));
174
+ var color = domUtils.getComputedStyle(doc.body, "background-color");
175
+ if ((color && color != "#ffffff" && color != "transparent") || domUtils.getComputedStyle(doc.body, "background-image") != "none") {
176
+ setTimeout(function () {
177
+ document.getElementsByName("t")[1].click();
178
+ }, 200);
179
+ }
180
+ initImgUrl();
181
+ initSelfPos();
182
+ initAlign();
183
+ };
184
+ //初始化自定义位置
185
+ function initSelfPos() {
186
+ var x, y;
187
+ if (browser.ie) {
188
+ x = domUtils.getComputedStyle(doc.body, "background-position-x").replace(/50%|%|px|center/ig, "");
189
+ y = domUtils.getComputedStyle(doc.body, "background-position-y").replace(/50%|%|px|center/ig, "");
190
+ } else {
191
+ var arr = domUtils.getComputedStyle(doc.body, "background-position").match(/\s?(\d*)px/ig);
192
+ if (arr && arr.length) {
193
+ x = arr[0].replace("px", "");
194
+ y = arr[1].replace("px", "");
195
+ }
196
+ }
197
+ $G("x").value = x || 0;
198
+ $G("y").value = y || 0;
199
+ }
200
+ //初始化图片地址
201
+ function initImgUrl() {
202
+ var su = domUtils.getComputedStyle(doc.body, "background-image"),
203
+ url = "";
204
+ if (su.indexOf(me.options.imagePath) > 0) {
205
+ url = su.match(/url\("?(.*[^\)"])"?/i);
206
+ if (url && url.length) {
207
+ url = url[1].substring(url[1].indexOf(me.options.imagePath), url[1].length);
208
+ }
209
+ } else {
210
+ url = su != "none" ? su.replace(/url\("?|"?\)/ig, "") : "";
211
+ }
212
+ $G("url").value = url;
213
+ }
214
+ //初始化定位
215
+ function initAlign() {
216
+ var align = domUtils.getComputedStyle(doc.body, "background-repeat"),
217
+ alignType = $G("repeatType");
218
+ if (align == "no-repeat") {
219
+ var pos = domUtils.getComputedStyle(doc.body, browser.ie ? "background-position-x" : "background-position");
220
+ alignType.value = pos && pos.match(/\s?(\d*)px/ig) ? "self" : "center";
221
+ if (pos == "center") {
222
+ alignType.value = "center";
223
+ }
224
+ $G("custom").style.display = alignType.value == "self" ? "" : "none";
225
+ } else {
226
+ alignType.value = align;
227
+ }
228
+ }
229
+ init();
230
+
231
+
232
+
233
+ //获得选中的类型
234
+ function getCheckIpt() {
235
+ var ipts = document.getElementsByName("t");
236
+ for (var i = 0, ipt; ipt = ipts[i++];) {
237
+ if (ipt.checked) {
238
+ return ipt.value;
239
+ }
240
+ }
241
+ }
242
+ var net = function (obj) {
243
+ var align = $G("alignment"),
244
+ url = $G("url"),
245
+ custom = $G("custom");
246
+ if (obj.value == "none") {
247
+ align.style.display = "none";
248
+ custom.style.display = "none";
249
+ if (browser.ie) {
250
+ url.onpropertychange = null;
251
+ } else {
252
+ url.removeEventListener("input", setBody);
253
+ }
254
+ } else {
255
+ bindSelfPos();
256
+ $G("repeatType").style.display = "";
257
+ align.style.display = "";
258
+ if (browser.ie) {
259
+ url.onpropertychange = setBody;
260
+ } else {
261
+ url.addEventListener("input", setBody, false);
262
+ }
263
+ }
264
+ setBody();
265
+ };
266
+ //给自定义位置绑定事件
267
+ var bindSelfPos = function () {
268
+ var x = $G("x"),
269
+ y = $G("y");
270
+ domUtils.on(x, ["propertychange", "input", "keydown"], function (evt) {
271
+ bindkeydown(evt, this);
272
+ });
273
+ domUtils.on(y, ["propertychange", "input", "keydown"], function (evt) {
274
+ bindkeydown(evt, this);
275
+ });
276
+ function bindkeydown(evt, obj) {
277
+ evt = evt || event;
278
+ if (evt.keyCode == 38 || evt.keyCode == 40) {
279
+ obj.value = evt.keyCode == 38 ? parseInt(obj.value) + 1 : parseInt(obj.value) - 1;
280
+ if (obj.value < 0) {
281
+ obj.value = 0;
282
+ }
283
+ } else {
284
+ if (evt.keyCode < 48 && evt.keyCode > 57) {
285
+ domUtils.preventDefault(evt);
286
+ }
287
+ }
288
+ setBody();
289
+ }
290
+ };
291
+ var showAlign = function () {
292
+ $G("alignment").style.display = "";
293
+ };
294
+ var selectAlign = function (obj) {
295
+ $G("custom").style.display = obj.value == "self" ? "" : "none";
296
+ setBody();
297
+ };
298
+ //给body增加样式和背景图片
299
+ var setBody = function () {
300
+ var color = domUtils.getStyle(cp, "background-color"),
301
+ bgimg = $G("url").value,
302
+ align = $G("repeatType").value,
303
+ alignObj = {
304
+ "background-repeat":"no-repeat",
305
+ "background-position":"center center"
306
+ },
307
+ outstr = [];
308
+ if (color)
309
+ alignObj["background-color"] = color;
310
+ if (bgimg)
311
+ alignObj["background-image"] = 'url("' + bgimg + '")';
312
+ switch (align) {
313
+ case "repeat-x":
314
+ alignObj["background-repeat"] = "repeat-x;";
315
+ break;
316
+ case "repeat-y":
317
+ alignObj["background-repeat"] = "repeat-y;";
318
+ break;
319
+ case "repeat":
320
+ alignObj["background-repeat"] = "repeat;";
321
+ break;
322
+ case "self":
323
+ alignObj["background-position"] = $G("x").value + "px " + $G("y").value + "px";
324
+ break;
325
+ }
326
+ for (var name in alignObj) {
327
+ if (alignObj.hasOwnProperty(name)) {
328
+ outstr.push(name + ":" + alignObj[name]);
329
+ }
330
+ }
331
+ if (getCheckIpt() != "none") {
332
+ utils.cssRule('body','body{' + outstr.join(";") + '}',doc);
333
+
334
+ } else {
335
+
336
+ utils.cssRule('body','',doc)
337
+ }
338
+ };
339
+
340
+
341
+
342
+ dialog.onok = function () {
343
+ setBody();
344
+ };
345
+ dialog.oncancel = function () {
346
+ utils.cssRule('body',bkbodyStyle,doc)
347
+ };
348
+ bkbodyStyle = utils.cssRule('body',undefined,doc);