function toHex(dec) {
        // create list of hex characters
        var hexCharacters = "0123456789ABCDEF"
        // if number is out of range return limit
        if (dec < 0)


                return "00"
        if (dec > 255)
                return "FF"
        // decimal equivalent of first hex character in converted number
        var i = Math.floor(dec / 16)





        // decimal equivalent of second hex character in converted number


        var j = dec % 16





        // return hexadecimal equivalent


        return hexCharacters.charAt(i) + hexCharacters.charAt(j)


}


// set background color to specified descriptors


function setbgColor(red, green, blue) {


         document.bgColor = "#" + toHex(red) + toHex(green) +
toHex(blue)


}


// fade from start to end descriptors (increase step to increase transition speed)


function fade(sred, sgreen, sblue, ered, egreen, eblue, step) {


        // loop to create fade effect


        for(var i = 0; i <= step; ++i) {


                // set current red descriptor


                var red = Math.floor(sred * ((step - i) / step) + ered
* (i / step))





                // set current green descriptor


                var green = Math.floor(sgreen * ((step - i) / step) +
egreen * (i / step))





                // set current green descriptor


                var blue = Math.floor(sblue * ((step - i) / step) +
eblue * (i / step))



                // set background color according to descriptors
                setbgColor(red, green, blue)
        }
}