wordpress-starter 0.2 → 0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (133) hide show
  1. data/CHANGELOG.md +4 -1
  2. data/README.md +12 -0
  3. data/lib/wordpress-starter.rb +2 -1
  4. data/templates/bootstrap/404.php +24 -0
  5. data/templates/bootstrap/admin/README.txt +25 -0
  6. data/templates/bootstrap/admin/assets/css/admin-style.css +838 -0
  7. data/templates/bootstrap/admin/assets/css/colorpicker.css +177 -0
  8. data/templates/bootstrap/admin/assets/images/1col.png +0 -0
  9. data/templates/bootstrap/admin/assets/images/2-col-portfolio.png +0 -0
  10. data/templates/bootstrap/admin/assets/images/2cl.png +0 -0
  11. data/templates/bootstrap/admin/assets/images/2cr.png +0 -0
  12. data/templates/bootstrap/admin/assets/images/3-col-portfolio.png +0 -0
  13. data/templates/bootstrap/admin/assets/images/3cm.png +0 -0
  14. data/templates/bootstrap/admin/assets/images/3cr.png +0 -0
  15. data/templates/bootstrap/admin/assets/images/4-col-portfolio.png +0 -0
  16. data/templates/bootstrap/admin/assets/images/accept.png +0 -0
  17. data/templates/bootstrap/admin/assets/images/button_check.png +0 -0
  18. data/templates/bootstrap/admin/assets/images/colorpicker/blank.gif +0 -0
  19. data/templates/bootstrap/admin/assets/images/colorpicker/colorpicker_background.png +0 -0
  20. data/templates/bootstrap/admin/assets/images/colorpicker/colorpicker_hex.png +0 -0
  21. data/templates/bootstrap/admin/assets/images/colorpicker/colorpicker_hsb_b.png +0 -0
  22. data/templates/bootstrap/admin/assets/images/colorpicker/colorpicker_hsb_h.png +0 -0
  23. data/templates/bootstrap/admin/assets/images/colorpicker/colorpicker_hsb_s.png +0 -0
  24. data/templates/bootstrap/admin/assets/images/colorpicker/colorpicker_indic.gif +0 -0
  25. data/templates/bootstrap/admin/assets/images/colorpicker/colorpicker_overlay.png +0 -0
  26. data/templates/bootstrap/admin/assets/images/colorpicker/colorpicker_rgb_b.png +0 -0
  27. data/templates/bootstrap/admin/assets/images/colorpicker/colorpicker_rgb_g.png +0 -0
  28. data/templates/bootstrap/admin/assets/images/colorpicker/colorpicker_rgb_r.png +0 -0
  29. data/templates/bootstrap/admin/assets/images/colorpicker/colorpicker_select.gif +0 -0
  30. data/templates/bootstrap/admin/assets/images/colorpicker/colorpicker_submit.png +0 -0
  31. data/templates/bootstrap/admin/assets/images/colorpicker/select.png +0 -0
  32. data/templates/bootstrap/admin/assets/images/dropdown-arrow.png +0 -0
  33. data/templates/bootstrap/admin/assets/images/favicon.ico +0 -0
  34. data/templates/bootstrap/admin/assets/images/icon-add.png +0 -0
  35. data/templates/bootstrap/admin/assets/images/icon-backup.png +0 -0
  36. data/templates/bootstrap/admin/assets/images/icon-delete.png +0 -0
  37. data/templates/bootstrap/admin/assets/images/icon-docs.png +0 -0
  38. data/templates/bootstrap/admin/assets/images/icon-edit.png +0 -0
  39. data/templates/bootstrap/admin/assets/images/icon-home.png +0 -0
  40. data/templates/bootstrap/admin/assets/images/icon-info.png +0 -0
  41. data/templates/bootstrap/admin/assets/images/icon-notice.png +0 -0
  42. data/templates/bootstrap/admin/assets/images/icon-paint.png +0 -0
  43. data/templates/bootstrap/admin/assets/images/icon-settings.png +0 -0
  44. data/templates/bootstrap/admin/assets/images/icon-slider.png +0 -0
  45. data/templates/bootstrap/admin/assets/images/icon-warn.png +0 -0
  46. data/templates/bootstrap/admin/assets/images/icon_option.png +0 -0
  47. data/templates/bootstrap/admin/assets/images/loading-bottom.gif +0 -0
  48. data/templates/bootstrap/admin/assets/images/select.png +0 -0
  49. data/templates/bootstrap/admin/assets/images/sign_warning.png +0 -0
  50. data/templates/bootstrap/admin/assets/images/stop.png +0 -0
  51. data/templates/bootstrap/admin/assets/images/toggle_tabs.png +0 -0
  52. data/templates/bootstrap/admin/assets/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  53. data/templates/bootstrap/admin/assets/images/warning.png +0 -0
  54. data/templates/bootstrap/admin/assets/images/wrench.png +0 -0
  55. data/templates/bootstrap/admin/assets/images/wrench16.png +0 -0
  56. data/templates/bootstrap/admin/assets/js/ajaxupload.js +606 -0
  57. data/templates/bootstrap/admin/assets/js/colorpicker.js +455 -0
  58. data/templates/bootstrap/admin/assets/js/cookie.js +1 -0
  59. data/templates/bootstrap/admin/assets/js/jquery.maskedinput-1.2.2.js +252 -0
  60. data/templates/bootstrap/admin/assets/js/jquery.tipsy.js +241 -0
  61. data/templates/bootstrap/admin/assets/js/of-medialibrary-uploader.js +168 -0
  62. data/templates/bootstrap/admin/assets/js/smof.js +623 -0
  63. data/templates/bootstrap/admin/classes/class.options-machine.php +627 -0
  64. data/templates/bootstrap/admin/front-end/options.php +77 -0
  65. data/templates/bootstrap/admin/functions/functions.admin.php +76 -0
  66. data/templates/bootstrap/admin/functions/functions.interface.php +232 -0
  67. data/templates/bootstrap/admin/functions/functions.load.php +14 -0
  68. data/templates/bootstrap/admin/functions/functions.mediauploader.php +194 -0
  69. data/templates/bootstrap/admin/functions/functions.options.php +508 -0
  70. data/templates/bootstrap/admin/functions/functions.php +0 -0
  71. data/templates/bootstrap/admin/index.php +87 -0
  72. data/templates/bootstrap/admin/layouts/default.css +0 -0
  73. data/templates/bootstrap/admin/layouts/placebo.css +0 -0
  74. data/templates/bootstrap/archive.php +57 -0
  75. data/templates/bootstrap/category.php +40 -0
  76. data/templates/bootstrap/comments.php +65 -0
  77. data/templates/bootstrap/content-aside.php +26 -0
  78. data/templates/bootstrap/content-image.php +29 -0
  79. data/templates/bootstrap/content-link.php +27 -0
  80. data/templates/bootstrap/content-none.php +21 -0
  81. data/templates/bootstrap/content-page.php +24 -0
  82. data/templates/bootstrap/content-quote.php +26 -0
  83. data/templates/bootstrap/content-status.php +33 -0
  84. data/templates/bootstrap/content.php +67 -0
  85. data/templates/bootstrap/editor-style.scss +72 -0
  86. data/templates/bootstrap/footer.php +29 -0
  87. data/templates/bootstrap/functions.php +1528 -0
  88. data/templates/bootstrap/header.php +74 -0
  89. data/templates/bootstrap/ie.scss +1 -0
  90. data/templates/bootstrap/images/bg/bg0.png +0 -0
  91. data/templates/bootstrap/images/bg/bg1.png +0 -0
  92. data/templates/bootstrap/images/bg/bg10.png +0 -0
  93. data/templates/bootstrap/images/bg/bg11.png +0 -0
  94. data/templates/bootstrap/images/bg/bg2.png +0 -0
  95. data/templates/bootstrap/images/bg/bg3.png +0 -0
  96. data/templates/bootstrap/images/bg/bg4.png +0 -0
  97. data/templates/bootstrap/images/bg/bg5.png +0 -0
  98. data/templates/bootstrap/images/bg/bg6.jpg +0 -0
  99. data/templates/bootstrap/images/bg/bg7.jpg +0 -0
  100. data/templates/bootstrap/images/bg/bg8.png +0 -0
  101. data/templates/bootstrap/images/bg/bg9.png +0 -0
  102. data/templates/bootstrap/images/glyphicons-halflings-white.png +0 -0
  103. data/templates/bootstrap/images/glyphicons-halflings.png +0 -0
  104. data/templates/bootstrap/index.php +19 -0
  105. data/templates/bootstrap/javascripts/app.js +6 -0
  106. data/templates/bootstrap/javascripts/bootstrap.js +2159 -0
  107. data/templates/bootstrap/javascripts/bootstrap.min.js +6 -0
  108. data/templates/{project/javascripts/moderninzr.min.js → bootstrap/javascripts/modernizr.min.js} +0 -0
  109. data/templates/bootstrap/languages/readme.txt +6 -0
  110. data/templates/bootstrap/license.txt +281 -0
  111. data/templates/bootstrap/loop.php +30 -0
  112. data/templates/bootstrap/manifest.rb +156 -0
  113. data/templates/bootstrap/options.php +42 -0
  114. data/templates/bootstrap/page.php +29 -0
  115. data/templates/bootstrap/print.scss +104 -0
  116. data/templates/bootstrap/readme.txt +6 -0
  117. data/templates/bootstrap/sass/_app.scss +10 -0
  118. data/templates/bootstrap/sass/_settings.scss +301 -0
  119. data/templates/bootstrap/screen.scss +1 -0
  120. data/templates/bootstrap/screenshot.png +0 -0
  121. data/templates/bootstrap/search.php +31 -0
  122. data/templates/bootstrap/searchform.php +31 -0
  123. data/templates/bootstrap/sidebar.php +15 -0
  124. data/templates/bootstrap/single.php +31 -0
  125. data/templates/bootstrap/style.css +18 -0
  126. data/templates/bootstrap/tag.php +41 -0
  127. data/templates/foundation/functions.php +8 -9
  128. data/templates/foundation/sass/_app.scss +2 -0
  129. data/templates/project/functions.php +1 -1
  130. data/templates/project/javascripts/app.js +2 -5
  131. data/templates/project/javascripts/modernizr.min.js +4 -0
  132. data/templates/project/manifest.rb +1 -1
  133. metadata +141 -2
@@ -0,0 +1,455 @@
1
+ /**
2
+ *
3
+ * Color picker
4
+ * Author: Stefan Petre www.eyecon.ro
5
+ *
6
+ * Dependencies: jQuery
7
+ *
8
+ */
9
+ (function ($) {
10
+ var ColorPicker = function () {
11
+ var
12
+ ids = {},
13
+ inAction,
14
+ charMin = 65,
15
+ visible,
16
+ tpl = '<div class="colorpicker"><div class="colorpicker_color"><div><div></div></div></div><div class="colorpicker_hue"><div></div></div><div class="colorpicker_new_color"></div><div class="colorpicker_current_color"></div><div class="colorpicker_hex"><input type="text" maxlength="6" size="6" /></div><div class="colorpicker_rgb_r colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_rgb_g colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_rgb_b colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_hsb_h colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_hsb_s colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_hsb_b colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_submit"></div></div>',
17
+ defaults = {
18
+ eventName: 'click',
19
+ onShow: function () {},
20
+ onBeforeShow: function(){},
21
+ onHide: function () {},
22
+ onChange: function () {},
23
+ onSubmit: function () {},
24
+ color: 'ff0000',
25
+ livePreview: true,
26
+ flat: false
27
+ },
28
+ fillRGBFields = function (hsb, cal) {
29
+ var rgb = HSBToRGB(hsb);
30
+ $(cal).data('colorpicker').fields
31
+ .eq(1).val(rgb.r).end()
32
+ .eq(2).val(rgb.g).end()
33
+ .eq(3).val(rgb.b).end();
34
+ },
35
+ fillHSBFields = function (hsb, cal) {
36
+ $(cal).data('colorpicker').fields
37
+ .eq(4).val(hsb.h).end()
38
+ .eq(5).val(hsb.s).end()
39
+ .eq(6).val(hsb.b).end();
40
+ },
41
+ fillHexFields = function (hsb, cal) {
42
+ $(cal).data('colorpicker').fields
43
+ .eq(0).val(HSBToHex(hsb)).end();
44
+ },
45
+ setSelector = function (hsb, cal) {
46
+ $(cal).data('colorpicker').selector.css('backgroundColor', '#' + HSBToHex({h: hsb.h, s: 100, b: 100}));
47
+ $(cal).data('colorpicker').selectorIndic.css({
48
+ left: parseInt(150 * hsb.s/100, 10),
49
+ top: parseInt(150 * (100-hsb.b)/100, 10)
50
+ });
51
+ },
52
+ setHue = function (hsb, cal) {
53
+ $(cal).data('colorpicker').hue.css('top', parseInt(150 - 150 * hsb.h/360, 10));
54
+ },
55
+ setCurrentColor = function (hsb, cal) {
56
+ $(cal).data('colorpicker').currentColor.css('backgroundColor', '#' + HSBToHex(hsb));
57
+ },
58
+ setNewColor = function (hsb, cal) {
59
+ $(cal).data('colorpicker').newColor.css('backgroundColor', '#' + HSBToHex(hsb));
60
+ },
61
+ keyDown = function (ev) {
62
+ var pressedKey = ev.charCode || ev.keyCode || -1;
63
+ if ((pressedKey > charMin && pressedKey <= 90) || pressedKey == 32) {
64
+ return false;
65
+ }
66
+ var cal = $(this).parent().parent();
67
+ if (cal.data('colorpicker').livePreview === true) {
68
+ change.apply(this);
69
+ }
70
+ },
71
+ change = function (ev) {
72
+ var cal = $(this).parent().parent(), col;
73
+ if (this.parentNode.className.indexOf('_hex') > 0) {
74
+ cal.data('colorpicker').color = col = HexToHSB(fixHex(this.value));
75
+ } else if (this.parentNode.className.indexOf('_hsb') > 0) {
76
+ cal.data('colorpicker').color = col = fixHSB({
77
+ h: parseInt(cal.data('colorpicker').fields.eq(4).val(), 10),
78
+ s: parseInt(cal.data('colorpicker').fields.eq(5).val(), 10),
79
+ b: parseInt(cal.data('colorpicker').fields.eq(6).val(), 10)
80
+ });
81
+ } else {
82
+ cal.data('colorpicker').color = col = RGBToHSB(fixRGB({
83
+ r: parseInt(cal.data('colorpicker').fields.eq(1).val(), 10),
84
+ g: parseInt(cal.data('colorpicker').fields.eq(2).val(), 10),
85
+ b: parseInt(cal.data('colorpicker').fields.eq(3).val(), 10)
86
+ }));
87
+ }
88
+ if (ev) {
89
+ fillRGBFields(col, cal.get(0));
90
+ fillHexFields(col, cal.get(0));
91
+ fillHSBFields(col, cal.get(0));
92
+ }
93
+ setSelector(col, cal.get(0));
94
+ setHue(col, cal.get(0));
95
+ setNewColor(col, cal.get(0));
96
+ cal.data('colorpicker').onChange.apply(cal, [col, HSBToHex(col), HSBToRGB(col)]);
97
+ },
98
+ blur = function (ev) {
99
+ var cal = $(this).parent().parent();
100
+ cal.data('colorpicker').fields.parent().removeClass('colorpicker_focus')
101
+ },
102
+ focus = function () {
103
+ charMin = this.parentNode.className.indexOf('_hex') > 0 ? 70 : 65;
104
+ $(this).parent().parent().data('colorpicker').fields.parent().removeClass('colorpicker_focus');
105
+ $(this).parent().addClass('colorpicker_focus');
106
+ },
107
+ downIncrement = function (ev) {
108
+ var field = $(this).parent().find('input').focus();
109
+ var current = {
110
+ el: $(this).parent().addClass('colorpicker_slider'),
111
+ max: this.parentNode.className.indexOf('_hsb_h') > 0 ? 360 : (this.parentNode.className.indexOf('_hsb') > 0 ? 100 : 255),
112
+ y: ev.pageY,
113
+ field: field,
114
+ val: parseInt(field.val(), 10),
115
+ preview: $(this).parent().parent().data('colorpicker').livePreview
116
+ };
117
+ $(document).bind('mouseup', current, upIncrement);
118
+ $(document).bind('mousemove', current, moveIncrement);
119
+ },
120
+ moveIncrement = function (ev) {
121
+ ev.data.field.val(Math.max(0, Math.min(ev.data.max, parseInt(ev.data.val + ev.pageY - ev.data.y, 10))));
122
+ if (ev.data.preview) {
123
+ change.apply(ev.data.field.get(0), [true]);
124
+ }
125
+ return false;
126
+ },
127
+ upIncrement = function (ev) {
128
+ change.apply(ev.data.field.get(0), [true]);
129
+ ev.data.el.removeClass('colorpicker_slider').find('input').focus();
130
+ $(document).unbind('mouseup', upIncrement);
131
+ $(document).unbind('mousemove', moveIncrement);
132
+ return false;
133
+ },
134
+ downHue = function (ev) {
135
+ var current = {
136
+ cal: $(this).parent(),
137
+ y: $(this).offset().top
138
+ };
139
+ current.preview = current.cal.data('colorpicker').livePreview;
140
+ $(document).bind('mouseup', current, upHue);
141
+ $(document).bind('mousemove', current, moveHue);
142
+ },
143
+ moveHue = function (ev) {
144
+ change.apply(
145
+ ev.data.cal.data('colorpicker')
146
+ .fields
147
+ .eq(4)
148
+ .val(parseInt(360*(150 - Math.max(0,Math.min(150,(ev.pageY - ev.data.y))))/150, 10))
149
+ .get(0),
150
+ [ev.data.preview]
151
+ );
152
+ return false;
153
+ },
154
+ upHue = function (ev) {
155
+ fillRGBFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0));
156
+ fillHexFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0));
157
+ $(document).unbind('mouseup', upHue);
158
+ $(document).unbind('mousemove', moveHue);
159
+ return false;
160
+ },
161
+ downSelector = function (ev) {
162
+ var current = {
163
+ cal: $(this).parent(),
164
+ pos: $(this).offset()
165
+ };
166
+ current.preview = current.cal.data('colorpicker').livePreview;
167
+ $(document).bind('mouseup', current, upSelector);
168
+ $(document).bind('mousemove', current, moveSelector);
169
+ },
170
+ moveSelector = function (ev) {
171
+ change.apply(
172
+ ev.data.cal.data('colorpicker')
173
+ .fields
174
+ .eq(6)
175
+ .val(parseInt(100*(150 - Math.max(0,Math.min(150,(ev.pageY - ev.data.pos.top))))/150, 10))
176
+ .end()
177
+ .eq(5)
178
+ .val(parseInt(100*(Math.max(0,Math.min(150,(ev.pageX - ev.data.pos.left))))/150, 10))
179
+ .get(0),
180
+ [ev.data.preview]
181
+ );
182
+ return false;
183
+ },
184
+ upSelector = function (ev) {
185
+ fillRGBFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0));
186
+ fillHexFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0));
187
+ $(document).unbind('mouseup', upSelector);
188
+ $(document).unbind('mousemove', moveSelector);
189
+ return false;
190
+ },
191
+ enterSubmit = function (ev) {
192
+ $(this).addClass('colorpicker_focus');
193
+ },
194
+ leaveSubmit = function (ev) {
195
+ $(this).removeClass('colorpicker_focus');
196
+ },
197
+ clickSubmit = function (ev) {
198
+ var cal = $(this).parent();
199
+ var col = cal.data('colorpicker').color;
200
+ cal.data('colorpicker').origColor = col;
201
+ setCurrentColor(col, cal.get(0));
202
+ cal.data('colorpicker').onSubmit(col, HSBToHex(col), HSBToRGB(col));
203
+ cal.hide();
204
+ },
205
+ show = function (ev) {
206
+ var cal = $('#' + $(this).data('colorpickerId'));
207
+ cal.data('colorpicker').onBeforeShow.apply(this, [cal.get(0)]);
208
+ var pos = $(this).offset();
209
+ var viewPort = getViewport();
210
+ var top = pos.top + this.offsetHeight;
211
+ var left = pos.left;
212
+ if (top + 176 > viewPort.t + viewPort.h) {
213
+ top -= this.offsetHeight + 176;
214
+ } else {
215
+ top += 5;
216
+ }
217
+ if (left + 356 > viewPort.l + viewPort.w) {
218
+ left -= 356;
219
+ }
220
+ cal.css({left: left + 'px', top: top + 'px'});
221
+ if (cal.data('colorpicker').onShow.apply(this, [cal.get(0)]) != false) {
222
+ cal.show();
223
+ }
224
+ $(document).bind('mousedown', {cal: cal}, hide);
225
+ return false;
226
+ },
227
+ hide = function (ev) {
228
+ if (!isChildOf(ev.data.cal.get(0), ev.target, ev.data.cal.get(0))) {
229
+ if (ev.data.cal.data('colorpicker').onHide.apply(this, [ev.data.cal.get(0)]) != false) {
230
+ ev.data.cal.hide();
231
+ }
232
+ $(document).unbind('mousedown', hide);
233
+ }
234
+ },
235
+ isChildOf = function(parentEl, el, container) {
236
+ if (parentEl == el) {
237
+ return true;
238
+ }
239
+ if (parentEl.contains) {
240
+ return parentEl.contains(el);
241
+ }
242
+ if ( parentEl.compareDocumentPosition ) {
243
+ return !!(parentEl.compareDocumentPosition(el) & 16);
244
+ }
245
+ var prEl = el.parentNode;
246
+ while(prEl && prEl != container) {
247
+ if (prEl == parentEl)
248
+ return true;
249
+ prEl = prEl.parentNode;
250
+ }
251
+ return false;
252
+ },
253
+ getViewport = function () {
254
+ var m = document.compatMode == 'CSS1Compat';
255
+ return {
256
+ l : window.pageXOffset || (m ? document.documentElement.scrollLeft : document.body.scrollLeft),
257
+ t : window.pageYOffset || (m ? document.documentElement.scrollTop : document.body.scrollTop),
258
+ w : window.innerWidth || (m ? document.documentElement.clientWidth : document.body.clientWidth),
259
+ h : window.innerHeight || (m ? document.documentElement.clientHeight : document.body.clientHeight)
260
+ };
261
+ },
262
+ fixHSB = function (hsb) {
263
+ return {
264
+ h: Math.min(360, Math.max(0, hsb.h)),
265
+ s: Math.min(100, Math.max(0, hsb.s)),
266
+ b: Math.min(100, Math.max(0, hsb.b))
267
+ };
268
+ },
269
+ fixRGB = function (rgb) {
270
+ return {
271
+ r: Math.min(255, Math.max(0, rgb.r)),
272
+ g: Math.min(255, Math.max(0, rgb.g)),
273
+ b: Math.min(255, Math.max(0, rgb.b))
274
+ };
275
+ },
276
+ fixHex = function (hex) {
277
+ var len = 6 - hex.length;
278
+ if (len > 0) {
279
+ var o = [];
280
+ for (var i=0; i<len; i++) {
281
+ o.push('0');
282
+ }
283
+ o.push(hex);
284
+ hex = o.join('');
285
+ }
286
+ return hex;
287
+ },
288
+ HexToRGB = function (hex) {
289
+ var hex = parseInt(((hex.indexOf('#') > -1) ? hex.substring(1) : hex), 16);
290
+ return {r: hex >> 16, g: (hex & 0x00FF00) >> 8, b: (hex & 0x0000FF)};
291
+ },
292
+ HexToHSB = function (hex) {
293
+ return RGBToHSB(HexToRGB(hex));
294
+ },
295
+ RGBToHSB = function (rgb) {
296
+ var hsb = {};
297
+ hsb.b = Math.max(Math.max(rgb.r,rgb.g),rgb.b);
298
+ hsb.s = (hsb.b <= 0) ? 0 : Math.round(100*(hsb.b - Math.min(Math.min(rgb.r,rgb.g),rgb.b))/hsb.b);
299
+ hsb.b = Math.round((hsb.b /255)*100);
300
+ if((rgb.r==rgb.g) && (rgb.g==rgb.b)) hsb.h = 0;
301
+ else if(rgb.r>=rgb.g && rgb.g>=rgb.b) hsb.h = 60*(rgb.g-rgb.b)/(rgb.r-rgb.b);
302
+ else if(rgb.g>=rgb.r && rgb.r>=rgb.b) hsb.h = 60 + 60*(rgb.g-rgb.r)/(rgb.g-rgb.b);
303
+ else if(rgb.g>=rgb.b && rgb.b>=rgb.r) hsb.h = 120 + 60*(rgb.b-rgb.r)/(rgb.g-rgb.r);
304
+ else if(rgb.b>=rgb.g && rgb.g>=rgb.r) hsb.h = 180 + 60*(rgb.b-rgb.g)/(rgb.b-rgb.r);
305
+ else if(rgb.b>=rgb.r && rgb.r>=rgb.g) hsb.h = 240 + 60*(rgb.r-rgb.g)/(rgb.b-rgb.g);
306
+ else if(rgb.r>=rgb.b && rgb.b>=rgb.g) hsb.h = 300 + 60*(rgb.r-rgb.b)/(rgb.r-rgb.g);
307
+ else hsb.h = 0;
308
+ hsb.h = Math.round(hsb.h);
309
+ return hsb;
310
+ },
311
+ HSBToRGB = function (hsb) {
312
+ var rgb = {};
313
+ var h = Math.round(hsb.h);
314
+ var s = Math.round(hsb.s*255/100);
315
+ var v = Math.round(hsb.b*255/100);
316
+ if(s == 0) {
317
+ rgb.r = rgb.g = rgb.b = v;
318
+ } else {
319
+ var t1 = v;
320
+ var t2 = (255-s)*v/255;
321
+ var t3 = (t1-t2)*(h%60)/60;
322
+ if(h==360) h = 0;
323
+ if(h<60) {rgb.r=t1; rgb.b=t2; rgb.g=t2+t3}
324
+ else if(h<120) {rgb.g=t1; rgb.b=t2; rgb.r=t1-t3}
325
+ else if(h<180) {rgb.g=t1; rgb.r=t2; rgb.b=t2+t3}
326
+ else if(h<240) {rgb.b=t1; rgb.r=t2; rgb.g=t1-t3}
327
+ else if(h<300) {rgb.b=t1; rgb.g=t2; rgb.r=t2+t3}
328
+ else if(h<360) {rgb.r=t1; rgb.g=t2; rgb.b=t1-t3}
329
+ else {rgb.r=0; rgb.g=0; rgb.b=0}
330
+ }
331
+ return {r:Math.round(rgb.r), g:Math.round(rgb.g), b:Math.round(rgb.b)};
332
+ },
333
+ RGBToHex = function (rgb) {
334
+ var hex = [
335
+ rgb.r.toString(16),
336
+ rgb.g.toString(16),
337
+ rgb.b.toString(16)
338
+ ];
339
+ $.each(hex, function (nr, val) {
340
+ if (val.length == 1) {
341
+ hex[nr] = '0' + val;
342
+ }
343
+ });
344
+ return hex.join('');
345
+ },
346
+ HSBToHex = function (hsb) {
347
+ return RGBToHex(HSBToRGB(hsb));
348
+ };
349
+ return {
350
+ init: function (options) {
351
+ options = $.extend({}, defaults, options||{});
352
+ if (typeof options.color == 'string') {
353
+ options.color = HexToHSB(options.color);
354
+ } else if (options.color.r != undefined && options.color.g != undefined && options.color.b != undefined) {
355
+ options.color = RGBToHSB(options.color);
356
+ } else if (options.color.h != undefined && options.color.s != undefined && options.color.b != undefined) {
357
+ options.color = fixHSB(options.color);
358
+ } else {
359
+ return this;
360
+ }
361
+ options.origColor = options.color;
362
+ return this.each(function () {
363
+ if (!$(this).data('colorpickerId')) {
364
+ var id = 'collorpicker_' + parseInt(Math.random() * 1000);
365
+ $(this).data('colorpickerId', id);
366
+ var cal = $(tpl).attr('id', id);
367
+ if (options.flat) {
368
+ cal.appendTo(this).show();
369
+ } else {
370
+ cal.appendTo(document.body);
371
+ }
372
+ options.fields = cal
373
+ .find('input')
374
+ .bind('keydown', keyDown)
375
+ .bind('change', change)
376
+ .bind('blur', blur)
377
+ .bind('focus', focus);
378
+ cal.find('span').bind('mousedown', downIncrement);
379
+ options.selector = cal.find('div.colorpicker_color').bind('mousedown', downSelector);
380
+ options.selectorIndic = options.selector.find('div div');
381
+ options.hue = cal.find('div.colorpicker_hue div');
382
+ cal.find('div.colorpicker_hue').bind('mousedown', downHue);
383
+ options.newColor = cal.find('div.colorpicker_new_color');
384
+ options.currentColor = cal.find('div.colorpicker_current_color');
385
+ cal.data('colorpicker', options);
386
+ cal.find('div.colorpicker_submit')
387
+ .bind('mouseenter', enterSubmit)
388
+ .bind('mouseleave', leaveSubmit)
389
+ .bind('click', clickSubmit);
390
+ fillRGBFields(options.color, cal.get(0));
391
+ fillHSBFields(options.color, cal.get(0));
392
+ fillHexFields(options.color, cal.get(0));
393
+ setHue(options.color, cal.get(0));
394
+ setSelector(options.color, cal.get(0));
395
+ setCurrentColor(options.color, cal.get(0));
396
+ setNewColor(options.color, cal.get(0));
397
+ if (options.flat) {
398
+ cal.css({
399
+ position: 'relative',
400
+ display: 'block'
401
+ });
402
+ } else {
403
+ $(this).bind(options.eventName, show);
404
+ }
405
+ }
406
+ });
407
+ },
408
+ showPicker: function() {
409
+ return this.each( function () {
410
+ if ($(this).data('colorpickerId')) {
411
+ show.apply(this);
412
+ }
413
+ });
414
+ },
415
+ hidePicker: function() {
416
+ return this.each( function () {
417
+ if ($(this).data('colorpickerId')) {
418
+ $('#' + $(this).data('colorpickerId')).hide();
419
+ }
420
+ });
421
+ },
422
+ setColor: function(col) {
423
+ if (typeof col == 'string') {
424
+ col = HexToHSB(col);
425
+ } else if (col.r != undefined && col.g != undefined && col.b != undefined) {
426
+ col = RGBToHSB(col);
427
+ } else if (col.h != undefined && col.s != undefined && col.b != undefined) {
428
+ col = fixHSB(col);
429
+ } else {
430
+ return this;
431
+ }
432
+ return this.each(function(){
433
+ if ($(this).data('colorpickerId')) {
434
+ var cal = $('#' + $(this).data('colorpickerId'));
435
+ cal.data('colorpicker').color = col;
436
+ cal.data('colorpicker').origColor = col;
437
+ fillRGBFields(col, cal.get(0));
438
+ fillHSBFields(col, cal.get(0));
439
+ fillHexFields(col, cal.get(0));
440
+ setHue(col, cal.get(0));
441
+ setSelector(col, cal.get(0));
442
+ setCurrentColor(col, cal.get(0));
443
+ setNewColor(col, cal.get(0));
444
+ }
445
+ });
446
+ }
447
+ };
448
+ }();
449
+ $.fn.extend({
450
+ ColorPicker: ColorPicker.init,
451
+ ColorPickerHide: ColorPicker.hide,
452
+ ColorPickerShow: ColorPicker.show,
453
+ ColorPickerSetColor: ColorPicker.setColor
454
+ });
455
+ })(jQuery)