function fadeObject(id, c1, c2, s1, s2) {
  var self = this;
  this.id      = id;
  this.elem    = false;
  this.colour  = {
    stt: [parseInt(c1.substr(0, 2), 16), parseInt(c1.substr(2, 2), 16), parseInt(c1.substr(4, 2), 16)],
    end: [parseInt(c2.substr(0, 2), 16), parseInt(c2.substr(2, 2), 16), parseInt(c2.substr(4, 2), 16)],
    now: [parseInt(c1.substr(0, 2), 16), parseInt(c1.substr(2, 2), 16), parseInt(c1.substr(4, 2), 16)]
  };
  this.steps   = [s1, s2];
  this.dir     = false;
  this.active  = false;
  this.queue   = [];
  this.msg     = [];
  this.message = 0;
  function d2h(num) {
    num = Math.round(num);
    return ((num < 16) ? "0" : "") + num.toString(16);
  }
  this.fade = function(message, direction) {
    this.elem = this.elem || document.getElementById(this.id);
    this.queue.push([message, direction]);
    for (var x = 0; x < this.queue.length; x++) {
      for (var y = x + 1; y < this.queue.length; y++) {
        if (this.queue[x][0] == this.queue[y][0] && this.queue[x][1] != this.queue[y][1]) {
          this.queue.splice(x, 1);
          this.queue.splice(y - 1, 1);
        }
      }
    }
    if (!this.active) setTimeout(function() { self.fadeLoop(); }, 10);
  };
  this.fadeLoop = function() {
    if (!this.active && this.queue.length) {
      if (this.dir && this.message != this.queue[0][0]) this.queue.unshift([this.message, false]);
      var msg = this.queue.shift();
      if (this.msg[msg[0]]) {
        this.active = true;
        this.elem.innerHTML = this.msg[this.message = msg[0]];
        this.dir = msg[1];
      }
    }
    if (this.dir) {
      var c1 = this.colour.stt, c2 = this.colour.end, s = this.steps[0];
    } else var c1 = this.colour.end, c2 = this.colour.stt, s = this.steps[1];
    for (var x = 0, cnow = "", inc = 0; x < 3; x++) {
      this.colour.now[x] += inc = (c2[x] - c1[x]) / s;
      cnow += this.colour.now[x] = (inc < 0) ? Math.max(this.colour.now[x], c2[x]) : Math.min(this.colour.now[x], c2[x]);
    } this.elem.style.color = "#" + d2h(this.colour.now[0]) + d2h(this.colour.now[1]) + d2h(this.colour.now[2]);
    if (cnow == c2.join("")) {
      this.active = false;
      if (!this.queue.length) {
        if (!this.dir) {
          if (this.msg[0]) {
            this.queue.push([0, true]);
            setTimeout(function() { self.fadeLoop(); }, 10);
          } else this.elem.innerHTML = "&nbsp;";
        }
      } else setTimeout(function() { self.fadeLoop(); }, 10);
    } else setTimeout(function() { self.fadeLoop(); }, 10);
  };
  if (window.addEventListener) {
    window.addEventListener('load', function() { self.fade(0, true); }, false); 
  } else if (window.attachEvent)
    window.attachEvent('onload', function() { self.fade(0, true); });
}
/* ***** End ********************************/




var fader = new fadeObject('rotateMsgBox', 'ffffff', '000000', 100, 100);
fader.msg[0] = ""; // LEAVE THIS BLANK!
fader.msg[1] = "<div><p><em>&quot;Squaretree IT Projects has provided Capital Region Financial Group, LLC with outstanding IT solutions for over 10 years. They consistently monitor, service and evaluate our equipment and servicing needs on a smooth and ongoing basis. Compliments to Squaretree on providing us, and our community, quality IT service solutions for businesses in the Sacramento area.&quot;</em></p></div><br/><div style='color: #4E8D32;'><p>Caryn B. Jones, <br /> Co-owner: Capital Region Financial Group LLC</p></div>";
fader.msg[2] = "<div><p><em>&quot;Squaretree has given me peace of mind. Now I'm confident that when I come into work in the morning, our network will be working properly.&quot; </em></p></div><br/><div style='color: #4E8D32;'><p>Emily Duenas, <br />Future Funding</p></div>";
fader.msg[3] = "<div><p><em>&quot;As a loyal Squaretree customer who started smaller, our needs have continually been met by Squaretree's cost-effective solution.&quot;</em></p></div><br/><div style='color: #4E8D32;'><p>Jim Green, <br />Northern California Cardiology Associates</p></div>";
fader.msg[4] = "<div><p><em>&quot;Because we rely so heavily on electronic medical records, the peace of mind that Proactive IT has provided, by preventing downtime, is invaluable.&quot;</em></p></div><br/><div style='color: #4E8D32;'><p>Jim Green, NCCA</p></div>";
fader.msg[5] = "<div><p><em>&quot;Your phone support staff are great, the telephone assistance is so polite and courteous that it almost makes you forget you have a computer problem!&quot;</em></p></div><br/><div style='color: #4E8D32;'><p>Linda Calkins, <br />Northern California Cardiology Associates</p></div>";
fader.msg[6] = "<div><p><em>&quot;Thank you for the great service today. I can't think of the last time a potential 'serious problem' was handled so quickly, graciously and thoroughly.&quot;</em></p></div><br/><div style='color: #4E8D32;'><p>Digistream</p></div>";
fader.msg[7] = "<div><p><em>&quot;I would definitely recommend Squaretree. They are always on time and complete things very quickly. Squaretree let us know from the beginning 'Tell us what you need and we’ll get it done.' They have absolutely stayed true to their word and exceeded our expectations.&quot;</em></p></div><br/><div style='color: #4E8D32;'><p>Michele Sweet, WGBCO</p></div>";

var fadePosition = Math.floor(Math.random() * fader.msg.length)+1;
var fadeTimeinSeconds = 10;
var firstFade = true;

function nextFade()
{
	if (firstFade)
	{
		firstFade = false;
		fader.fade(0, false);
	}
	if (fadePosition >= fader.msg.length)
		fadePosition = 1;
	fader.fade(fadePosition, true);
	fadePosition++;
	setTimeout("nextFade();", fadeTimeinSeconds * 1000);
}

