/[colormatch]/trunk/colormatch.js
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Annotation of /trunk/colormatch.js

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3 - (hide annotations)
Sat Oct 2 23:39:42 2004 UTC (19 years, 7 months ago) by dpavlin
File MIME type: application/javascript
File size: 5817 byte(s)
document.getElementById cache, show/hide news which are moved to bottom

1 dpavlin 1 var hs=new Object();
2     var rg=new Object();
3    
4     function sample_go()
5     {
6 dpavlin 3 element_id('sample').style.backgroundColor = document.getElementById('col7').value;
7     element_id('sampleh1').style.backgroundColor = document.getElementById('col0').value;
8     element_id('sampleh1').style.color = document.getElementById('col2').value;
9     element_id('sampleh1').style.borderColor = document.getElementById('col6').value;
10     element_id('sampleh2').style.backgroundColor = document.getElementById('col3').value;
11     element_id('sampleh2').style.color = document.getElementById('col5').value;
12     element_id('sampleh2').style.borderColor = document.getElementById('col6').value;
13     element_id('samplep').style.backgroundColor = document.getElementById('col7').value;
14     element_id('samplep').style.color = document.getElementById('col8').value;
15     element_id('samplep').style.borderColor = document.getElementById('col6').value;
16     element_id('samplelink').style.color = document.getElementById('col1').value;
17     element_id('samplehover').style.color = document.getElementById('col4').value;
18 dpavlin 1
19     }
20     function htmlgo()
21     {
22 dpavlin 3 k=element_id('html').value;
23 dpavlin 1 j = k.replace('#','');
24     red = j.substr(0,2);
25     gre = j.substr(2,2);
26     blu = j.substr(4,2);
27     r.setValue(parseInt(red,16));
28     g.setValue(parseInt(gre,16));
29     b.setValue(parseInt(blu,16));
30    
31     }
32    
33     function c2r(d)
34     {
35 dpavlin 3 k=element_id(d).style.backgroundColor;
36 dpavlin 1 j=(k.substr(4,k.indexOf(")")-4)).split(",");
37     r.setValue(j[0]);
38     g.setValue(j[1]);
39     b.setValue(j[2]);
40     }
41     function load_theme()
42     {
43 dpavlin 3 sel = element_id("coltheme");
44 dpavlin 1 var d = sel.options[sel.selectedIndex].value;
45     j=d.split(",");
46     r.setValue(j[0]);
47     g.setValue(j[1]);
48     b.setValue(j[2]);
49     }
50    
51     function ud(x,c)
52     {
53 dpavlin 3 element_id("sw"+x).style.backgroundColor="rgb("+c.r+","+c.g+","+c.b+")";
54     element_id("hc"+x).innerHTML="#"+rg2html(c) + "<br />R: "+c.r+"<br />G: "+c.g+"<br />B: "+c.b;
55     element_id("col"+x).value="#"+rg2html(c)
56 dpavlin 1 if(x == 0)
57     {
58 dpavlin 3 element_id("bookmark").value="http://color.twysted.net/?color="+rg2html(c);
59     element_id("light").style.backgroundColor="rgb("+inc(c.r)+","+inc(c.g)+","+inc(c.b)+")";
60     element_id("dark").style.backgroundColor="rgb("+dec(c.r)+","+dec(c.g)+","+dec(c.b)+")";
61 dpavlin 1 }
62     }
63     function rg2html(z)
64     {
65     return d2h(z.r)+d2h(z.g)+d2h(z.b);
66     }
67     function d2h(d)
68     {
69     hch="0123456789ABCDEF";
70     a=d%16;
71     q=(d-a)/16;
72     return hch.charAt(q)+hch.charAt(a);
73     }
74     function h2r(hs)
75     {
76     var rg=new Object();
77     if(hs.s==0)
78     {
79     rg.r=rg.g=rg.b=Math.round(hs.v*2.55);
80     return rg;
81     }
82     hs.s=hs.s/100;
83     hs.v=hs.v/100;
84     hs.h/=60;
85     i=Math.floor(hs.h);
86     f=hs.h-i;
87     p=hs.v*(1-hs.s);
88     q=hs.v*(1-hs.s*f);
89     t=hs.v*(1-hs.s*(1-f));
90     switch(i)
91     {
92     case 0:rg.r=hs.v;
93     rg.g=t;
94     rg.b=p;
95     break;
96     case 1:rg.r=q;
97     rg.g=hs.v;
98     rg.b=p;
99     break;
100     case 2:rg.r=p;
101     rg.g=hs.v;
102     rg.b=t;
103     break;
104     case 3:rg.r=p;
105     rg.g=q;
106     rg.b=hs.v;
107     break;
108     case 4:rg.r=t;
109     rg.g=p;
110     rg.b=hs.v;
111     break;
112     default:rg.r=hs.v;
113     rg.g=p;
114     rg.b=q;
115     }
116     rg.r=Math.round(rg.r*255);
117     rg.g=Math.round(rg.g*255);
118     rg.b=Math.round(rg.b*255);
119     return rg;
120     }
121     function rc(x,m)
122     {
123     if(x>m)
124     {
125     return m
126     }
127     if(x<0)
128     {
129     return 0
130     }
131     else
132     {
133     return x
134     }
135     }
136     function rg2hs(rg)
137     {
138     m=rg.r;
139     if(rg.g<m)
140     {
141     m=rg.g
142     };
143     if(rg.b<m)
144     {
145     m=rg.b
146     };
147     v=rg.r;
148     if(rg.g>v)
149     {
150     v=rg.g
151     };
152     if(rg.b>v)
153     {
154     v=rg.b
155     };
156     value=100*v/255;
157     delta=v-m;
158     if(v==0.0)
159     {
160     hs.s=0
161     }
162     else
163     {
164     hs.s=100*delta/v
165     };
166     if(hs.s==0)
167     {
168     hs.h=0
169     }
170     else
171     {
172     if(rg.r==v)
173     {
174     hs.h=60.0*(rg.g-rg.b)/delta
175     }
176     else if(rg.g==v)
177     {
178     hs.h=120.0+60.0*(rg.b-rg.r)/delta
179     }
180     else if(rg.b=v)
181     {
182     hs.h=240.0+60.0*(rg.r-rg.g)/delta
183     }
184     if(hs.h<0.0)
185     {
186     hs.h=hs.h+360.0
187     }
188     }
189     hs.v=Math.round(value);
190     hs.h=Math.round(hs.h);
191     hs.s=Math.round(hs.s);
192     return(true);
193     }
194     function dom()
195     {
196     z=new Object();
197     y=new Object();
198     yx=new Object();
199     p=new Object();
200     pr=new Object();
201     p.s=y.s=hs.s;
202     p.h=y.h=hs.h;
203     if(hs.v>70)
204     {
205     y.v=hs.v-30
206     p.v=y.v +15
207     z=h2r(p);
208     ud("1",z);
209    
210    
211     }
212     else
213     {
214     y.v=hs.v+30
215     p.v=y.v-15
216     z=h2r(p);
217     ud("1",z);
218    
219     };
220     z=h2r(y);
221     ud("2",z);
222     if((hs.h>=0)&&(hs.h<30))
223     {
224     pr.h=yx.h=y.h=hs.h+20;
225     pr.s=yx.s=y.s=hs.s;
226     y.v=hs.v;
227     if(hs.v>70)
228     {
229     yx.v=hs.v-30
230     pr.v = yx.v +15
231     }
232     else
233     {
234     yx.v=hs.v+30
235     pr.v = yx.v -15
236     }
237     }
238     if((hs.h>=30)&&(hs.h<60))
239     {
240     pr.h=yx.h=y.h=hs.h+150;
241     y.s=rc(hs.s-30,100);
242     y.v=rc(hs.v-20,100);
243     pr.s=yx.s=rc(hs.s-70,100);
244     yx.v=rc(hs.v+20,100);
245     pr.v=hs.v
246     }
247     if((hs.h>=60)&&(hs.h<180))
248     {
249     pr.h=yx.h=y.h=hs.h-40;
250     pr.s=y.s=yx.s=hs.s;
251     y.v=hs.v;
252     if(hs.v>70)
253     {
254     yx.v=hs.v-30
255     pr.v = yx.v +15
256     }
257     else
258     {
259     yx.v=hs.v+30
260     pr.v = yx.v -15
261     }
262     }
263     if((hs.h>=180)&&(hs.h<220))
264     {
265     pr.h=yx.h=hs.h-170;
266     y.h=hs.h-160;
267     pr.s=yx.s=y.s=hs.s;
268     y.v=hs.v;
269     if(hs.v>70)
270     {
271     yx.v=hs.v-30
272     pr.v = yx.v +15
273     }
274     else
275     {
276     yx.v=hs.v+30
277     pr.v = yx.v -15
278     }
279     }
280     if((hs.h>=220)&&(hs.h<300))
281     {
282     pr.h=yx.h=y.h=hs.h;
283     pr.s=yx.s=y.s=rc(hs.s-60,100);
284     y.v=hs.v;
285     if(hs.v>70)
286     {
287     yx.v=hs.v-30
288     pr.v = yx.v +15
289     }
290     else
291     {
292     yx.v=hs.v+30
293     pr.v = yx.v -15
294     }
295     }
296     if(hs.h>=300)
297     {
298     if(hs.s>50)
299     {
300     pr.s=y.s=yx.s=hs.s-40
301     }
302     else
303     {
304     pr.s=y.s=yx.s=hs.s+40
305     }
306     pr.h=yx.h=y.h=(hs.h+20)%360;
307     y.v=hs.v;
308     if(hs.v>70)
309     {
310     yx.v=hs.v-30
311     pr.v = yx.v +15
312     }
313     else
314     {
315     yx.v=hs.v+30
316     pr.v = yx.v -15
317     }
318     }
319     z=h2r(y);
320     ud("3",z);
321     z=h2r(yx);
322     ud("5",z);
323     y.h=0;
324     y.s=0;
325     y.v=100-hs.v;
326     z=h2r(y);
327     ud("6",z);
328     y.h=0;
329     y.s=0;
330     y.v=hs.v;
331     z=h2r(y);
332     ud("7",z);
333     z=h2r(pr);
334     ud("4",z);
335     if(hs.v >= 50) { pr.v = 0 } else { pr.v = 100 }
336     pr.h=pr.s=0;
337     z=h2r(pr);
338     ud("8",z);
339     sample_go();
340     }

  ViewVC Help
Powered by ViewVC 1.1.26