/* -----------------------------------------------------------------------------------------------------
   NewsSlideFade
   Copyright (C) 2001 Thomas Brattli

   Script date: 09/04/2001 (keep this date to check versions)
   ----------------------------------------------------------------------------------------------------- */

// --- How do you want the script to work?
//     0 = Fade in  - Fade out
//     1 = Slide in - Fade out
//     2 = Random
nWorks = 1

// --- If you use the slide set these variables:
nSlideSpeed   = 3    // in px
nNewsHeight   = 119  // This is how long down it should start the slide.

nBetweenDelay = 4000 // The delay before fading out.
nFadeSpeed    = 250  // The speed to fade in, in milliseconds.

// --- Set the colors, first color is same as background, last color is the
//     color it stops at. You can have as many colors you want.
nColor = new Array('#6AA65B', '#aaa', '#bbb', '#ccc', '#ddd', '#eee')

/* -----------------------------------------------------------------------------------------------------
   The init function. Calls the object constructor and set some properties and starts the fade
   ----------------------------------------------------------------------------------------------------- */
function newsinit() {
 if (document.getElementById('divNews') && contaNotizie > 0) {
  oNews = new makeNewsObj('divNews', 'divNewsCont', "nColor", "nNews", nFadeSpeed, nBetweenDelay, nSlideSpeed, nWorks, nNewsHeight);
  works = !oNews.works ? 0 : oNews.works==1 ? 1 : Math.round(Math.random());
  if (works == 0) {
   oNews.fadeIn(0, 0);
  } else if (works == 1) {
   oNews.slideIn(0, 0);
  }
 }
}

/* -----------------------------------------------------------------------------------------------------
 Object code...Object constructors and functions...
   ----------------------------------------------------------------------------------------------------- */
function makeNewsObj(obj, nest, color, news, fadeSpeed, betweenDelay, slideSpeed, works, newsHeight) {
 this.writeref   = document.getElementById(obj);
 this.css        = this.writeref.style;
 this.color      = new Array();
 this.color      = eval(color);
 this.news       = new Array();
 this.news       = eval(news);
 this.speed      = fadeSpeed;
 this.delay      = betweenDelay;
 this.newsHeight = newsHeight;
 this.fadeIn     = b_fadeIn;
 this.fadeOut    = b_fadeOut;
 this.newsWrite  = b_newsWrite;
 this.y          = 1;
 this.slideIn    = b_slideIn;
 this.moveIt     = b_moveIt;
 this.slideSpeed = slideSpeed;
 this.works      = works;
 this.obj        = obj + "Object"; eval(this.obj + "=this"); return this;
}

// --- A unit of measure that will be added when setting the position of a layer.
var px = "px";

function b_moveIt(x, y) {
 this.x        = x;
 this.y        = y;
 this.css.left = this.x + px;
 this.css.top  = this.y + px;
}

function b_newsWrite(num, i) {
 if (this.news[num]['link']) { 
  if (this.news[num]['doc'] != '') {
   this.writeref.innerHTML = this.news[num]['img'] + "&nbsp;<a id=\"" + this.obj + "link" + "\" style=\"color:" + this.color[i] + "\" href=\"#\" onclick=\"javascript:openDirectDocument('" + this.news[num]['doc'] + "')\">" + this.news[num]['text'] + "</a>";
  } else {
   this.writeref.innerHTML = '<a id="' + this.obj + 'link' + '" style="color:' + this.color[i] + '" href="' + this.news[num]['link'] + '">' + this.news[num]['text'] + '</a>';
  }
 } else {
  this.writeref.innerHTML = '&nbsp;<div id="' + this.obj + 'link' + '" style="color:' + this.color[i] + '">' + this.news[num]['text'] + '</div>';
 }
}

// --- Slide in
function b_slideIn(num, i) {
 if (this.y > 0) {
  if (i == 0) {
   this.moveIt(0 ,this.newsHeight); 
   this.newsWrite(num, this.color.length - 1)}
   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 b_fadeIn(num, i) {
 if (i < this.color.length) {
  if (i == 0) {
   this.newsWrite(num, i)
  } else {
   obj = 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 b_fadeOut(num, i) {
 if (i >= 0) {
  if (i == 0) {
   this.newsWrite(num, i)
  } else {
   obj = 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)
  }
 }
}