/* NewsUpdateWindow */

// This is the where the news is stored. Set the link and the text. Use a # as the link if you don't want to have a link
nNews = new Array();

nWorks = 0;             //  0 = Fade in / Fade Out, 1 = Slide in / Fade out , 2 = Random

// Slide mode uses these variables:
nSlidespeed = 5;       //in px
nNewsheight = 24;      //This is how long down it should start the slide.

nBetweendelay = 4000;       //The delay before fading out.
FontFamily = 'Arial, Helvetica, Geneva, Swiss, SunSans-Regular';  //The font for the news.
FontSize = 11;             //Font size in pixel.
FontWeight = 'bold';
nFadespeed = 100;           //The speed to fade in, in milliseconds.
myTarget = '_self';

//Set the colors, first color is same as background, last color is the color it stops at:
nColor = new Array('#333333','#666666','#999999','#CCCCCC', '#EEEEEE','#FFFFFF');
/********************************************************************************
Object code...Object constructors and functions...
********************************************************************************/
function makeNewsObj(obj, nest, font, size, weight, color, news, fadespeed, betweendelay, slidespeed, works, newsheight)
{
  nest= (!nest) ? "" : 'document.' + nest + '.';
  this.css = bw.dom ? document.getElementById(obj).style : bw.ie4 ? document.all[obj].style : bw.ns4 ? eval(nest + "document.layers." + obj) : 0;
  this.writeref = bw.dom ? document.getElementById(obj) : bw.ie4 ? document.all[obj] : bw.ns4 ? eval(nest + "document.layers." + obj + ".document") : 0;
  if(font)
  {
    this.color = new Array();
    this.color = eval(color);
    this.news = new Array();
    this.news = eval(news);
    this.font = font;
    this.size = size;
    this.weight = weight;
    this.speed = fadespeed;
    this.delay = betweendelay;
    this.newsheight = newsheight;
    this.fadeIn = n_fadeIn;
    this.fadeOut = n_fadeOut;
    this.newsWrite = n_newsWrite;
    this.y = 1;
    this.slideIn = n_slideIn;
    this.moveIt = n_moveIt;
    this.slideSpeed = slidespeed;
    this.works = works;
    if(bw.dom || bw.ie4)
    {
      this.css.fontFamily = this.font;
      this.css.fontSize = this.size;
      this.css.color = this.color[0];
    }
  }
  this.obj = obj + "Object";
  eval(this.obj + "=this");
  return this;
}

function n_moveIt(x, y)
{
  if(x != null)
  {
    this.x = x;
    this.css.left = this.x + px;
  }
  if(y != null)
  {
    this.y = y;
    this.css.top = this.y + px;
  }
}

function n_newsWrite(num, i)
{
  if(bw.ns4)
  {
    this.writeref.write("<a href=\"" + this.news[num]['link'] + "\" target=\"" + myTarget + "\" style=\"text-decoration:none; font-size:" + this.size + "px\">" + "<font face=\"" + this.font + "\" weight=\"" + this.weight + "\" color=\"" + this.color[i] + "\">" + this.news[num]['text'] + "</font></a>");
    this.writeref.close();
  }
  else
  {
    this.writeref.innerHTML = '<a id="' + this.obj + 'link' + '" target="' + myTarget + '" style="text-decoration:none; font-weight:' + this.weight + '; font-size:' + this.size + 'px; color:' + this.color[i] + '" href="' + this.news[num]['link'] + '">' + this.news[num]['text'] + '</a>';
  }
}
//Slide in
function n_slideIn(num, i)
{
  if(this.y > 0)
  {
    if(i == 0)
    {
      this.moveIt(0, this.newsheight);
      this.newsWrite(num, this.color.length-1);
      this.css.visibility = "visible";
    }
    this.moveIt(this.x, this.y-this.slideSpeed);
    i++;
    setTimeout(this.obj + ".slideIn(" + num + "," + i + ");", 50);
  }
  else
    setTimeout(this.obj + ".fadeOut(" + num + "," + (this.color.length-1) + ")", this.delay);
}

//The fade functions
function n_fadeIn(num, i)
{
  if(i < this.color.length)
  {
    if(i == 0 || bw.ns4)
    {
      this.newsWrite(num, i);
      this.css.visibility = "visible";
    }
    else
    {
      obj = bw.ie4 ? eval(this.obj + "link") : document.getElementById(this.obj + "link");
      obj.style.color = this.color[i];
    }
    i++;
    setTimeout(this.obj + ".fadeIn(" + num + "," + i + ")", this.speed);
  }
  else
    setTimeout(this.obj + ".fadeOut(" + num + "," + (this.color.length-1) + ")", this.delay);
}

function n_fadeOut(num, i)
{
  if(i >= 0)
  {
    if(i == 0 || bw.ns4)
    {
      this.newsWrite(num, i);
      this.css.visibility = "hidden";
      // Make invisible
    }
    else
    {
      obj = bw.ie4 ? eval(this.obj + "link") : document.getElementById(this.obj + "link");
      obj.style.color = this.color[i];
    }
    i--;
    setTimeout(this.obj + ".fadeOut(" + num + "," + i + ")", this.speed);
  }
  else
  {
    num++;
    if(num == this.news.length)
      num=0;
    works = !this.works ? 0 : this.works == 1 ? 1 : Math.round(Math.random());
    if(works == 0)
      setTimeout(this.obj + ".fadeIn(" + num + ",0)", 500);
    else if(works == 1)
    {
      this.y = 1;
      setTimeout(this.obj + ".slideIn(" + num + ",0)", 500);
    }
  }
}

/********************************************************************************************
The init function. Calls the object constructor and set some properties and starts the fade
*********************************************************************************************/
function NewsUpdateInit()
{
  if(nNews.length > 0)
  {
    oNewsDiv = new makeNewsObj('divNews', 'divNewsText', FontFamily, FontSize, FontWeight, "nColor", "nNews", nFadespeed, nBetweendelay, nSlidespeed, nWorks, nNewsheight);
    oNewsText = new makeNewsObj('divNewsText');
    works = !oNewsDiv.works ? 0 : oNewsDiv.works == 1 ? 1 : Math.round(Math.random());
    if(works == 0)
      oNewsDiv.fadeIn(0, 0);
    else if(works == 1)
      oNewsDiv.slideIn(0, 0);
    oNewsDiv.css.visibility = "visible";
    oNewsText.css.visibility = "visible";
    oNewsLeftBorder = new makeScrollToolObj('divNewsLeftBorder');
    oNewsLeftBorder.css.visibility = "visible";
    oNewsRightBorder = new makeScrollToolObj('divNewsRightBorder');
    oNewsRightBorder.css.visibility = "visible";
  }
}
