/[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 1 - (hide annotations)
Sat Oct 2 23:24:01 2004 UTC (19 years, 7 months ago) by dpavlin
File MIME type: application/javascript
File size: 5881 byte(s)
imported original ColorMatch

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

  ViewVC Help
Powered by ViewVC 1.1.26