]> git.mxchange.org Git - quix0rs-gnu-social.git/blob - js/farbtastic/farbtastic.go.js
Merge branch '0.7.x' into 0.8.x
[quix0rs-gnu-social.git] / js / farbtastic / farbtastic.go.js
1 /** Init for Farbtastic library and page setup
2  *
3  * @package   Laconica
4  * @author Sarven Capadisli <csarven@controlyourself.ca>
5  * @copyright 2009 Control Yourself, Inc.
6  * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
7  * @link      http://laconi.ca/
8  */
9 $(document).ready(function() {
10     function UpdateColors(S) {
11         C = $(S).val();
12         switch (parseInt(S.id.slice(-1))) {
13             case 0: default:
14                 $('body').css({'background-color':C});
15                 break;
16             case 1:
17                 $('#content').css({'background-color':C});
18                 break;
19             case 2:
20                 $('#aside_primary').css({'background-color':C});
21                 break;
22             case 3:
23                 $('body').css({'color':C});
24                 break;
25             case 4:
26                 $('a').css({'color':C});
27                 break;
28         }
29     }
30
31     function UpdateFarbtastic(e) {
32         f.linked = e;
33         f.setColor(e.value);
34     }
35
36     function UpdateSwatch(e) {
37         $(e).css({"background-color": e.value,
38                   "color": f.hsl[2] > 0.5 ? "#000": "#fff"});
39     }
40
41     function SynchColors(e) {
42         var S = f.linked;
43         var C = f.color;
44
45         if (S && S.value && S.value != C) {
46             S.value = C;
47             UpdateSwatch(S);
48             UpdateColors(S);
49         }
50     }
51
52     function Init() {
53         $('#settings_design_color').append('<div id="color-picker"></div>');
54         $('#color-picker').hide();
55
56         f = $.farbtastic('#color-picker', SynchColors);
57         swatches = $('#settings_design_color .swatch');
58
59         swatches
60             .each(SynchColors)
61             .blur(function() {
62                 $(this).val($(this).val().toUpperCase());
63              })
64             .focus(function() {
65                 $('#color-picker').show();
66                 UpdateFarbtastic(this);
67             })
68             .change(function() {
69                 UpdateFarbtastic(this);
70                 UpdateSwatch(this);
71                 UpdateColors(this);
72             }).change();
73     }
74
75     var f, swatches;
76     Init();
77     $('#form_settings_design').bind('reset', function(){
78         setTimeout(function(){
79             swatches.each(function(){UpdateColors(this);});
80             $('#color-picker').remove();
81             swatches.unbind();
82             Init();
83         },10);
84     });
85 });