


function NewsFeed()
{
  
  /*** PRIVATE VARS ***/

  // Controls fade in and fade out
  var fadeTimer = null;
  
  // Controls switching between news
  var newsTimer = null;
  
  // Urls that will be displayed (animated)
  var newsIds = new Array();
  var newsSrcs = new Array();
  var prevNewsId = "";
  var currentNewsIndex = 0;
  
  var backFrameId = "";
  var frontFrameId = "";
  var frameCounter = 1;
  
  var frontFrameOpacity = 100;
  
  
  /*** PRIVATE UTILITY ***/
  
  // Fade in
  function fIn()
  { 
    var object = document.getElementById(frontFrameId).style;
    
    if(frontFrameOpacity >= 100)
    {
      frontFrameOpacity = 100;
      object.opacity = frontFrameOpacity/100; 
      object.MozOpacity = frontFrameOpacity/100; 
      object.KhtmlOpacity = frontFrameOpacity/100; 
      object.filter = "alpha(opacity=" + frontFrameOpacity + ")";
      
      
      clearInterval(fadeTimer);
    }
    else
    {
      object.visibility="visible";
      
      frontFrameOpacity += 5;
      object.opacity = frontFrameOpacity/100; 
      object.MozOpacity = frontFrameOpacity/100; 
      object.KhtmlOpacity = frontFrameOpacity/100; 
      object.filter = "alpha(opacity=" + frontFrameOpacity + ")";
    }
  }
  
  // Fade out
  function fOut() 
  { 
    var object = document.getElementById(frontFrameId).style;
    
    if(frontFrameOpacity <= 0)
    {
      frontFrameOpacity = 0;
      object.opacity = frontFrameOpacity/100; 
      object.MozOpacity = frontFrameOpacity/100; 
      object.KhtmlOpacity = frontFrameOpacity/100; 
      object.filter = "alpha(opacity=" + frontFrameOpacity + ")";
      
      object.visibility="hidden";      
      
      clearInterval(fadeTimer);
      
     
    }
    else
    {
      frontFrameOpacity -= 5;
      object.opacity = frontFrameOpacity/100; 
      object.MozOpacity = frontFrameOpacity/100; 
      object.KhtmlOpacity = frontFrameOpacity/100; 
      object.filter = "alpha(opacity=" + frontFrameOpacity + ")";
    }
  }
  
  // Show link (open link and fade in/out)
  function showLink(src)
  {
    
    if(fadeTimer != null)
    {
      clearInterval(fadeTimer);
      fadeTimer = null;
    }
    
    // Select frame either front or back
    if((frameCounter % 2) == 0)
    {
      // If back is visible open src in front and fade in
      document.getElementById(frontFrameId).src = src;
      var fi = fIn;
      fadeTimer = setInterval(fi, 50);
      
    }
    else
    {
      // If front is visible open src in back and fade out
      document.getElementById(backFrameId).src = src;
      var fo = fOut;
      fadeTimer = setInterval(fo, 50);
      
    }
    
    frameCounter++;
  }
  
  /*** PUBLIC ***/
  
  this.addFrontFrameId = function(frameId)
  {
    frontFrameId = frameId;
  }
  
  this.addBackFrameId = function(frameId)
  {
    backFrameId = frameId;
  }
  
  /*** PRELOAD IMAGES ***/
  this.preLoadImages = function()
  {   
    //  PROJECTS
    image1 = new Image();
    image1.src = "newweb/projects/images/bg_ipint.jpg";
    
    image2 = new Image();
    image2.src = "newweb/projects/images/bg_labyrinth.jpg";
    
    image3 = new Image();
    image3.src = "newweb/projects/images/bg_labyrinth2.jpg";
    
    image4 = new Image();
    image4.src = "newweb/projects/images/bg_labyrinth2hd.jpg";
    
    image5 = new Image();
    image5.src = "newweb/projects/images/bg_sway.jpg";
    
    image6 = new Image();
    image6.src = "newweb/projects/images/bg_touchgrind.jpg";
    
    image7 = new Image();
    image7.src = "newweb/projects/images/bg_touchgrindhd.jpg";
    
    image12 = new Image();
    image12.src = "newweb/projects/images/bg_foosball.jpg";
    
    //  NAVBAR
    image8 = new Image();
    image8.src = "newweb/images/bg_company.jpg";
    
    image9 = new Image();
    image9.src = "newweb/images/bg_jobs.jpg";
    
    image10 = new Image();
    image10.src = "newweb/images/bg_press.jpg";
    
    image11 = new Image();
    image11.src = "newweb/images/bg_team.jpg";
  }
  
  
  /*** NAV BAR ***/
  
  // Make nav bar item selected
  // Remove selection from prev
  var prevNav = null;
  this.selectNavBarItem = function(name)
  {
    var hyperref = document.getElementsByName(name)[0];
  
    if(prevNav != null)
    {
      prevNav.style.backgroundColor = "";
      prevNav.style.color = "";
    }
  
    hyperref.style.backgroundColor = "#85A91F";
  
    prevNav = hyperref;
  }
  
  
  // Show a nav bar item
  this.showNavbarItem = function(name, src)
  {
    stopNewsFeed();
    showLink(src);
    
    // Reset prev selection if any
    if(prevNewsId != "")
    {
      var prevRef = document.getElementById(prevNewsId);
      prevRef.style.backgroundImage = "none";
      prevNewsId = "";
    }
    
    
    this.selectNavBarItem(name);
  }
  
  
  /*** NEWS ***/
  this.showNews = function(id, src)
  { 
    stopNewsFeed();
    
    showLink(src);
    
    // Reset prev selection if any
    if(prevNewsId != "")
    {
      var prevRef = document.getElementById(prevNewsId);
      prevRef.style.backgroundImage = "none";
    }
    
    var ref = document.getElementById(id);
    ref.style.background = "url(newweb/images/appicon_selected_green.png) no-repeat 0px 0px";
    
    
    prevNewsId = id;
  }
  
  /*** NEWS FEED ***/
  this.addNewsItem = function(id, src)
  {
    newsIds.push(id);
    newsSrcs.push(src);
  }
  
  function stopNewsFeed()
  {
    if(newsTimer != null)
    {
      clearInterval(newsTimer);
      newsTimer = null;
      
      // Reset prev selection if any
      if(prevNewsId != "")
      {
        var prevRef = document.getElementById(prevNewsId);
        prevRef.style.background = "none";
        prevNewsId = "";
      }
    }
  }
  
  var index = 0;
  function iterateNews()
  {
    if(index >= newsIds.length)
    {
      index = 0;
    }
    
    showLink(newsSrcs[index]);
    
    var ref = document.getElementById(newsIds[index]);
    ref.style.background = "url(newweb/images/appicon_selected_green.png) no-repeat 0px 0px";
    
    // Reset prev selection if any
    if(prevNewsId != "")
    {
      var prevRef = document.getElementById(prevNewsId);
      prevRef.style.backgroundImage = "none";
      prevNewsId = "";
    }
    
    prevNewsId = newsIds[index];
    
    index++;
    
  }
  
  // Starts jumping between current news
  this.startNewsFeed = function()
  {
    if(newsTimer == null)
    {
      index = 0;
      iterateNews();
      
      var itrn = iterateNews;
      newsTimer = setInterval(itrn, 15000);
    }
  }
}

