/*---------------------------------*/
/* DODOL - COLOR SCRIPT            */
/* (C) Iwan Rachmanto 05 Des 2008  */
/* www.free-7.net                  */
/* http://free-7.blogspot.com      */
/*---------------------------------*/

//mulai variabel

var rate = 27;  
//====================================
//var "rate" ini jika di 
//kurangi nilainya akan 
//lebih slow-lembut perubahan warnanya 
//nilai var "rate" nyaman mata 
//melihat berkisar 0 sampai 255
//====================================

if (document.getElementById)
window.onerror=new Function
("return true")

var j = 105; 
//====================================
//var j adalah utk kejenuhan
// warna,atau HUE 
//nilai var j berkisar 0 sampai 255
//makin tinggi makin kontras
//=================================

var n = 250; 
//====================================
//var n adalah utk kadar warna RGB, 
//atau merah-hijau-birunilai 
//var n berkisar 0 sampai 255
//makin tinggi makin jelas atau tajam
// jika kamu paham teknik warna maka:
// w adalah Hue
// j adalah Saturation
// n adalah Value
//===========================

var ondodol; 
var ondodol1 =0;
var w = 0; 
var awal;
var waktu; 
//akhir variabel

//============================
// memulai perintah mouse 
//pada obyek link atau teks
//===========================
if (document.all) {
document.onmouseover = dodol1;
document.onmouseout = stopdodol1;}
else if (document.getElementById) {
document.captureEvents
(Event.Mouseover|Event.Mouseout);
document.onmouseover = dodol2;
// untuk hack browser firefox
document.onmouseout = stopdodol2;}
// untuk hack browser firefox

//========================================
// memulai dodol - mengambil warna teks
//=======================================
function dodol(obj)
{
if (ondodol1 == 0) {
ondodol1 = 1;
if (obj)
ondodol = obj;
else
ondodol = event.srcElement;
awal = ondodol.style.color;
waktu = setInterval("ChangeColor()",150);}

// nilai waktu 150 adalah kecepatan
// perubahan warna, coba sendiri kurangi
// atau tambah sesuai selera kamu 
// maksimal nyaman mata = 400 - 
//jika merubah variabel "waktu" ini maka 
// variabel "waktu" yang pd fungsi yg
// lain rubahlah juga supaya sama
// ada  interval waktu yg sy beri 
//nilai 150 pada halaman ini 


}

//===================================
// stop dodol - mengambil warna teks
//===================================
function stopdodol()
{
if (ondodol1) {
ondodol.style.color = awal;
clearInterval(waktu);
ondodol1 = 0;
}}

//====================================
// memulai dodol-mengambil warna link
//====================================
function dodol1()
{if (ondodol1 == 0) {
var obj = event.srcElement;
while 
(obj.tagName != 'A' && obj.tagName !='BODY') 
{obj = obj.parentElement;
if 
(obj.tagName == 'A' || obj.tagName =='BODY')
break;
}if (obj.tagName == 'A' && obj.href != ''){
ondodol = obj;
ondodol1 = 1;
awal = ondodol.style.color;
waktu = setInterval("ChangeColor()",150);
}}}

//====================================
// stop dodol - mengambil warna link
//====================================
function stopdodol1()
{if (ondodol1) {
if (ondodol.tagName == 'A') {
ondodol.style.color = awal;
clearInterval(waktu);
ondodol1 = 0;}
}}

//=======================================
// memulai dodol - mengambil warna link
// untuk hack browser firefox-Netscape
//=======================================
function dodol2(e) 
{if (ondodol1 == 0) {
obj = e.target;
while (obj.nodeName != 
'A' && obj.nodeName != 'BODY') {
obj = obj.parentNode;
if (obj.nodeName == 
'A' || obj.nodeName == 'BODY')
break;}
if (obj.nodeName == 
'A' && obj.href != '') {
ondodol = obj;
ondodol1 = 1;
awal = obj.style.color;
waktu = setInterval
("ChangeColor()",150);}

}}

//=======================================
// stop dodol - mengambil warna link
// untuk hack browser firefox-Netscape
//=======================================
function stopdodol2(e)
{
if (ondodol1) {
if (ondodol.nodeName == 'A') {
ondodol.style.color = awal;
clearInterval(waktu);
ondodol1 = 0;}
}}

//======================================
// mulai membuat-memproduksi warna, 
//sedikit hitungan matematika
//jika kamu kurang paham java script 
// maka coba2 aja ber-eksperimen 
// paling kalo salah bs di ulang...hehe
//========================================
function ChangeColor()
{ondodol.style.color = makeColor();}
function makeColor()
{
if (j == 0) 
{merah = n; hijau = n; biru = n;}
else {
s1 = n;
s2 = (255 - j) * n / 255;
s3 = w % 60;
s3 = (s1 - s2) * s3 / 60;
if (w < 60) 
{merah = s1;  biru = s2;  hijau = s2 + s3;}
else if 
(w < 120) 
{hijau = s1;  biru = s2;  merah = s1 - s3;}
else if 
(w < 180) 
{hijau = s1;  merah = s2;  biru = s2 + s3;}
else if 
(w < 240) 
{biru = s1;  merah = s2;  hijau = s1 - s3;}
else if 
(w < 300) 
{biru = s1;  hijau = s2;  merah = s2 + s3;}
else if 
(w < 360) 
{merah = s1;  hijau = s2;  biru = s1 - s3;}
else 
{merah = 0;  hijau = 0;   biru = 0;}
}
merah = Math.floor(merah).toString(16);
hijau = Math.floor(hijau).toString(16);
biru = Math.floor(biru).toString(16);
if (merah.length == 1) merah = "0" + merah;
if (hijau.length == 1) hijau = "0" + hijau;
if (biru.length == 1)  biru = "0" + biru;
w = w + rate;
if (w >= 360)
w = 0;
return '#' + merah + hijau + biru;}

