
/*
 * mouse over menu item - change text
 */
function menu_over(txt)
{
 var obj = document.getElementById('text_menu');
 if (obj == null) return;
 obj.style.visibility = "visible";
 obj.innerHTML = txt;
}
 
/*
 * mouse out menu item
 */
function menu_out()
{
 var obj = document.getElementById('text_menu');
 if (obj == null) return;
 obj.style.visibility = "hidden";
}

var textArray = ['Industry Leading Performance', 'X-propagation features', 'Large Capacity', 'Unmatched Price/Performace', 'More Cycles Per $', 'More SystemVerilog Coming Soon', 'PLI/DPI Support', 'Apple OS X Support'];
var timeDelay = 1000.0;  //delay of fade
var timeForBox = 5000.0; //delay between text boxes
var timeForNextBox = 1000.0; //delay for next box
var currentIndex = -1;    //current text index
var numberScrolls = 0;    //number of times scrolled
var maxScrolls = 5;       //maximum scrolls before it stops

/*
 * fade in an element
 */
function fade(eid)
{
 var element = document.getElementById(eid);

 if (element == null) return;
  
 if (element.FadeState == null)
  {
   if (element.style.opacity == null || element.style.opacity == '' || element.style.opacity == '1')
    {
     element.FadeState = 2;
    }
   else
    {
     element.FadeState = -2;
    }
  }
  
 if (element.FadeState == 1 || element.FadeState == -1)
  {
   element.FadeState = element.FadeState == 1 ? -1 : 1;
   element.FadeTimeLeft = timeDelay - element.FadeTimeLeft;
  }
 else
  {
   element.FadeState = element.FadeState == 2 ? -1 : 1;
   element.FadeTimeLeft = timeDelay;
   setTimeout("doFade(" + new Date().getTime() + ",'" + eid + "')", 33);
  }  
}

/*
 * do the fading
 */
function doFade(lastTick, eid)
{  
 var curTick = new Date().getTime();
 var elapsedTicks = curTick - lastTick;
 
 var element = document.getElementById(eid);
 
 if (element.FadeTimeLeft <= elapsedTicks)
  {
   element.style.opacity = element.FadeState == 1 ? '1' : '0';
   element.style.filter = 'alpha(opacity = ' + (element.FadeState == 1 ? '100' : '0') + ')';
   element.FadeState = element.FadeState == 1 ? 2 : -2;
   if (element.FadeState == 2)
    {
     //if max number of scrolls turn on the box and stop
     if (numberScrolls  == maxScrolls)
      {
       element.style.filter = 'alpha(opacity = 100)';
       return;
      }
      //fade out the text box
     setTimeout("fade('" + eid + "')", timeForBox);
    }
   else if (element.FadeState == -2) 
    {
     //set time and fade in the new text box
     setTimeout("change_text_and_inc('" + eid + "')", timeForNextBox);
    }
   return;
  }

 element.FadeTimeLeft -= elapsedTicks;
 var newOpVal = element.FadeTimeLeft/timeDelay;
 if (element.FadeState == 1)
   newOpVal = 1 - newOpVal;

 element.style.opacity = newOpVal;
 element.style.filter = 'alpha(opacity = ' + (newOpVal*100) + ')';
 setTimeout("doFade(" + curTick + ",'" + eid + "')", 33);
}

/*
 * increment the text and 
 */
function change_text_and_inc(eid)
{
 //wrapped the number of text
 if (currentIndex == textArray.length-1)
  {
   currentIndex = 0;
   numberScrolls++;
  }
 else currentIndex++;

 var txt = textArray[currentIndex];
 var obj = document.getElementById(eid);
 if (obj == null) return;
 //set the new text and fade in
 txt = '&nbsp;<br><font class="image_box_text">' + txt + '</font>';
 obj.innerHTML = txt;
 fade(eid);
}

/*
 * redirect from current page to new
 */
function doRedirect(page)
{
 window.location.href = page;
}

