webcit_before_automake is now the trunk
[citadel.git] / webcit / tiny_mce / themes / advanced / jscripts / color_picker.js
1 function init() {\r
2         if (tinyMCE.isMSIE)\r
3                 tinyMCEPopup.resizeToInnerSize();\r
4 }\r
5 \r
6 function selectColor() {\r
7         var color = document.getElementById("selectedColorBox").value;\r
8 \r
9         tinyMCEPopup.execCommand(tinyMCE.getWindowArg('command'), false, color);\r
10         tinyMCEPopup.close();\r
11 }\r
12 \r
13 function showColor(color) {\r
14         document.getElementById("selectedColor").style.backgroundColor = color;\r
15         document.getElementById("selectedColorBox").value = color;\r
16 }\r
17 \r
18 var colors = new Array(\r
19         "#000000","#000033","#000066","#000099","#0000cc","#0000ff","#330000","#330033",\r
20         "#330066","#330099","#3300cc","#3300ff","#660000","#660033","#660066","#660099",\r
21         "#6600cc","#6600ff","#990000","#990033","#990066","#990099","#9900cc","#9900ff",\r
22         "#cc0000","#cc0033","#cc0066","#cc0099","#cc00cc","#cc00ff","#ff0000","#ff0033",\r
23         "#ff0066","#ff0099","#ff00cc","#ff00ff","#003300","#003333","#003366","#003399",\r
24         "#0033cc","#0033ff","#333300","#333333","#333366","#333399","#3333cc","#3333ff",\r
25         "#663300","#663333","#663366","#663399","#6633cc","#6633ff","#993300","#993333",\r
26         "#993366","#993399","#9933cc","#9933ff","#cc3300","#cc3333","#cc3366","#cc3399",\r
27         "#cc33cc","#cc33ff","#ff3300","#ff3333","#ff3366","#ff3399","#ff33cc","#ff33ff",\r
28         "#006600","#006633","#006666","#006699","#0066cc","#0066ff","#336600","#336633",\r
29         "#336666","#336699","#3366cc","#3366ff","#666600","#666633","#666666","#666699",\r
30         "#6666cc","#6666ff","#996600","#996633","#996666","#996699","#9966cc","#9966ff",\r
31         "#cc6600","#cc6633","#cc6666","#cc6699","#cc66cc","#cc66ff","#ff6600","#ff6633",\r
32         "#ff6666","#ff6699","#ff66cc","#ff66ff","#009900","#009933","#009966","#009999",\r
33         "#0099cc","#0099ff","#339900","#339933","#339966","#339999","#3399cc","#3399ff",\r
34         "#669900","#669933","#669966","#669999","#6699cc","#6699ff","#999900","#999933",\r
35         "#999966","#999999","#9999cc","#9999ff","#cc9900","#cc9933","#cc9966","#cc9999",\r
36         "#cc99cc","#cc99ff","#ff9900","#ff9933","#ff9966","#ff9999","#ff99cc","#ff99ff",\r
37         "#00cc00","#00cc33","#00cc66","#00cc99","#00cccc","#00ccff","#33cc00","#33cc33",\r
38         "#33cc66","#33cc99","#33cccc","#33ccff","#66cc00","#66cc33","#66cc66","#66cc99",\r
39         "#66cccc","#66ccff","#99cc00","#99cc33","#99cc66","#99cc99","#99cccc","#99ccff",\r
40         "#cccc00","#cccc33","#cccc66","#cccc99","#cccccc","#ccccff","#ffcc00","#ffcc33",\r
41         "#ffcc66","#ffcc99","#ffcccc","#ffccff","#00ff00","#00ff33","#00ff66","#00ff99",\r
42         "#00ffcc","#00ffff","#33ff00","#33ff33","#33ff66","#33ff99","#33ffcc","#33ffff",\r
43         "#66ff00","#66ff33","#66ff66","#66ff99","#66ffcc","#66ffff","#99ff00","#99ff33",\r
44         "#99ff66","#99ff99","#99ffcc","#99ffff","#ccff00","#ccff33","#ccff66","#ccff99",\r
45         "#ccffcc","#ccffff","#ffff00","#ffff33","#ffff66","#ffff99","#ffffcc","#ffffff"\r
46 );\r
47 \r
48 function convertRGBToHex(col) {\r
49         var re = new RegExp("rgb\\s*\\(\\s*([0-9]+).*,\\s*([0-9]+).*,\\s*([0-9]+).*\\)", "gi");\r
50 \r
51         var rgb = col.replace(re, "$1,$2,$3").split(',');\r
52         if (rgb.length == 3) {\r
53                 r = parseInt(rgb[0]).toString(16);\r
54                 g = parseInt(rgb[1]).toString(16);\r
55                 b = parseInt(rgb[2]).toString(16);\r
56 \r
57                 r = r.length == 1 ? '0' + r : r;\r
58                 g = g.length == 1 ? '0' + g : g;\r
59                 b = b.length == 1 ? '0' + b : b;\r
60 \r
61                 return "#" + r + g + b;\r
62         }\r
63 \r
64         return col;\r
65 }\r
66 \r
67 function convertHexToRGB(col) {\r
68         if (col.indexOf('#') != -1) {\r
69                 col = col.replace(new RegExp('[^0-9A-F]', 'gi'), '');\r
70 \r
71                 r = parseInt(col.substring(0, 2), 16);\r
72                 g = parseInt(col.substring(2, 4), 16);\r
73                 b = parseInt(col.substring(4, 6), 16);\r
74 \r
75                 return "rgb(" + r + "," + g + "," + b + ")";\r
76         }\r
77 \r
78         return col;\r
79 }\r
80 \r
81 function renderColorMap() {\r
82         var html = "";\r
83         var inputColor = convertRGBToHex(tinyMCE.getWindowArg('input_color'));\r
84 \r
85         html += '<table border="0" cellspacing="1" cellpadding="0">'\r
86                 + '<tr>';\r
87         for (var i=0; i<colors.length; i++) {\r
88                 html += '<td bgcolor="' + colors[i] + '">'\r
89                         + '<a href="javascript:selectColor();" onfocus="showColor(\'' + colors[i] +  '\');" onmouseover="showColor(\'' + colors[i] +  '\');">'\r
90                         + '<img border="0" src="images/spacer.gif" width="10" height="10" title="' + colors[i] +  '" alt="' + colors[i] +  '" /></a></td>';\r
91                 if ((i+1) % 18 == 0)\r
92                         html += '</tr><tr>';\r
93         }\r
94         html += '<tr><td colspan="18">'\r
95                 + '<table width="100%" border="0" cellspacing="0" cellpadding="0">'\r
96                 + '<tr><td>'\r
97                 + '<img id="selectedColor" style="background-color:' + tinyMCE.getWindowArg('input_color') + '" border="0" src="images/spacer.gif" width="80" height="16" />'\r
98                 + '</td><td align="right">'\r
99                 + '<input id="selectedColorBox" name="selectedColorBox" type="text" size="7" maxlength="7" style="width:65px" value="' + inputColor + '" />'\r
100                 + '</td></tr>'\r
101                 + '</table>'\r
102                 + '<input type="button" id="insert" name="insert" value="{$lang_theme_colorpicker_apply}" style="margin-top:3px" onclick="selectColor();">'\r
103                 + '</td></tr>'\r
104                 + '</table>';\r
105 \r
106         document.write(html);\r
107 }