/[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 2 - (show annotations)
Sat Oct 2 23:25:50 2004 UTC (19 years, 6 months ago) by dpavlin
File MIME type: application/javascript
File size: 6090 byte(s)
ported to PostgreSQL (but it still doesn't work for me), added light and
dark options, hide site news.

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 document.getElementById("light").style.backgroundColor="rgb("+inc(c.r)+","+inc(c.g)+","+inc(c.b)+")";
60 document.getElementById("dark").style.backgroundColor="rgb("+dec(c.r)+","+dec(c.g)+","+dec(c.b)+")";
61 }
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