﻿var numSteps = 0;
var startingRed = 0;
var startingGreen = 0;
var startingBlue = 0;
var endingRed = 0;
var endingGreen = 0;
var endingBlue = 0;
var deltaRed = 0;
var deltaGreen = 0;
var deltaBlue = 0;
var currentRed = 0;
var currentGreen = 0;
var currentBlue = 0;
var currentStep = 0;
var timerID = 0;
var backgroundColorSet = false;

var url = window.location.href

	setTimeout(setBackgroundColor, 50);

function setBackgroundColor() {
	if (backgroundColorSet != true) {

		if (url.indexOf("ft=000000") > -1) {
			document.bgColor = "#000000";
			backgroundColorSet = true;
		}
		else if (url.indexOf("ft=ffffff") > -1) {
			document.bgColor = "#ffffff";
			backgroundColorSet = true;
		}
		else if (url.indexOf("ft=c7c2bc") > -1) {
			document.bgColor = "#c7c2bc";
			backgroundColorSet = true;
		}
		else if (url.indexOf("ft=646464") > -1) {
			document.bgColor = "#646464";
			backgroundColorSet = true;
		}
		else if (url.indexOf("?sparam") > -1) {
			document.bgColor = "#646464";
			backgroundColorSet = true;
		}
		else {
			document.bgColor = "#000000";
			backgroundColorSet = true;
		}

	}
}

function startFadeDec(startR, startG, startB,
   endR, endG, endB, nSteps) {
	backgroundColorSet = true;
    currentRed = startingRed = parseInt(startR, 10);
    currentGreen = startingGreen = parseInt(startG, 10);
    currentBlue = startingBlue = parseInt(startB, 10);
    endingRed = parseInt(endR, 10);
    endingGreen = parseInt(endG, 10);
    endingBlue = parseInt(endB, 10);
    numSteps = parseInt(nSteps, 10);
    deltaRed = (endingRed - startingRed) / numSteps;
    deltaGreen = (endingGreen - startingGreen) / numSteps;
    deltaBlue = (endingBlue - startingBlue) / numSteps;
    currentStep = 0;

    fade();
    
}

function fade() {

    if (currentStep <= numSteps) {

        var hexRed = decToHex(currentRed);
        var hexGreen = decToHex(currentGreen);
        var hexBlue = decToHex(currentBlue);

        var color = "#" + hexRed + "" + hexGreen + "" + hexBlue + "";

        document.bgColor = color;

        currentRed += deltaRed;
        currentGreen += deltaGreen;
        currentBlue += deltaBlue;

        timerID = setTimeout("fade()", 10);

    }

    currentStep++;

}

function decToHex(decNum) {

    decNum = Math.floor(decNum);
    var decString = "" + decNum;

    for (var i = 0; i < decString.length; i++) {

        if (decString.charAt(i) >= '0' && decString.charAt(i) <= '9') {
        }
        else {
            alert(decString + " is not a valid decimal number because it contains " + decString.charAt(i));
            return decNum;
        }
    }
    var result = decNum;
    var remainder = "";

    var hexNum = "";

    var hexAlphabet = new Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F");

    while (result > 0) {
        result = Math.floor(decNum / 16);
        remainder = decNum % 16;
        decNum = result;

        hexNum = "" + hexAlphabet[remainder] + "" + hexNum;
    };

    if (hexNum.length == 1)
        hexNum = "0" + hexNum;
    else if (hexNum.length == 0)
        hexNum = "00";
    return hexNum;
}

function fadeRandom() {
    startFadeDec(sR, sG, sB, eR, eG, eB, 50);
}