/[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

Contents of /trunk/colormatch.js

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1 - (show annotations)
Sat Oct 2 23:24:01 2004 UTC (19 years, 6 months ago) by dpavlin
File MIME type: application/javascript
File size: 5881 byte(s)
imported original ColorMatch

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