//http://www.switchonthecode.com/tutorials/javascript-tutorial-simple-fade-animation
var current_banner = 1;
var total_banners = 0;
var wait = 0;
var bannertime = 0;
var transition = 'switch';
var TimeToFade = 1000.0;
var bannerName = 'contact_banners';


function banner_init(time,trans,fadeTime,random_s)
{
    bannertime=time;
	TimeToFade = fadeTime;
	
	elements = document.getElementById(bannerName).getElementsByTagName('div');
	total_banners = elements.length;
	
    if(trans == 0){
        transition = 'switch';
    }
    else if(trans == 1){
        transition = 'fade';
    }
    else{
        transition = 'switch';
    }
	
	if(random_s>0)
	{
		//1 = random starting point; 0= start at the beginning every time
		current_banner=randomToN(total_banners);
		if(current_banner<1){current_banner=1;}
		//document.write(current_banner);
	}
	
	//stop banner change if mouse over one banner
	
	for (var i = 0; i < total_banners; i++)
	{
		elements[i].onmouseover = function ()
		{
			clearTimeout(wait);
		}
 		elements[i].onmouseout = function ()
		{
			clearTimeout(wait);
			wait = setTimeout('nextBanner()',bannertime);
		}
	}

    for (var i = 0; i < total_banners; i++)
	{
		if (current_banner == (i + 1))
		{
			//show selected banner
			//elements[i].style.display = "block";
			elements[i].style.opacity = '1';
			elements[i].style.filter = 'alpha(opacity=100)';
			//elements[i].style.visibility = "visible";
			
		} else
		{	//hide everything else
			//elements[i].style.display = "none";
			elements[i].style.opacity = '0';
			elements[i].style.filter = 'alpha(opacity=0)';
			//elements[i].style.visibility = "hidden";
			
		}
		
		 if(elements[i].FadeState == null)
  		{
    		if(elements[i].style.opacity == null || elements[i].style.opacity == '' || elements[i].style.opacity == '1')
    		{
     			elements[i].FadeState = 2;
    		}
    		else
    		{
      			elements[i].FadeState = -2;
    		}
  		}
	}
	puhaSetDivSize(elements);//IE 7- fix
	placeDivs(elements);
	wait = setTimeout('nextBanner()',bannertime);
}


function banner(nr)
{
	clearTimeout(wait);
	elements = document.getElementById(bannerName).getElementsByTagName('div');
    //hide all divs

    for (var i = 0; i < elements.length; i++)
	{
		if (nr == (i + 1))
		{
			//show selected banner
			//elements[i].style.display = "block";
			elements[i].style.opacity = '1';
			elements[i].style.filter = 'alpha(opacity=100)';
			//elements[i].style.visibility = "visible";
			
		} else
		{	//hide everything else
			//elements[i].style.display = "none";
			elements[i].style.opacity = '0';
			elements[i].style.filter = 'alpha(opacity=0)';
			//elements[i].style.visibility = "hidden";
		}
	}

	//fade("banner"+nr);
	wait = setTimeout('nextBanner()',bannertime);
}

function nextBanner()
{
    if(transition == 'fade'){
        if(current_banner == total_banners){
            //Blend('banner'+current_banner,'banner'+1,bannertime);
			fade('banner'+current_banner,'banner'+1);
        }
        else{
           //Blend('banner'+current_banner,'banner'+(current_banner+1),bannertime);
			fade('banner'+current_banner,'banner'+(current_banner+1));
        }
    }
    //Change to the next banner
    if(current_banner < total_banners)
	{
		current_banner ++;
	}
	else
	{	current_banner = 1;
	}

    if(transition == 'switch'){
        banner(current_banner);
    }
}


function fade(eid1,eid2)
{
  var element1 = document.getElementById(eid1);
  var element2 = document.getElementById(eid2);
  
  if(element1 == null||element2==null)
    return;
   
   //fade state element1
   /*
  if(element1.FadeState == null)
  {
    if(element1.style.opacity == null || element1.style.opacity == '' || element1.style.opacity == '1')
    {
      element1.FadeState = 2;
    }
    else
    {
      element1.FadeState = -2;
    }
  }
  //fade state element2
    if(element2.FadeState == null)
  {
    if(element2.style.opacity == null || element2.style.opacity == '' || element2.style.opacity == '1')
    {
      element2.FadeState = 2;
    }
    else
    {
      element2.FadeState = -2;
    }
  }
   */
   
  if(element1.FadeState == 1 || element1.FadeState == -1)
  {
    element1.FadeState = element1.FadeState == 1 ? -1 : 1;
    element1.FadeTimeLeft = TimeToFade - element1.FadeTimeLeft;

  }
  else
  {
    element1.FadeState = element1.FadeState == 2 ? -1 : 1;
    element1.FadeTimeLeft = TimeToFade;
	//element1.style.display = element1.FadeState == 2 ? 'none' : 'block';
	//element1.style.visibility = element.FadeState == 2 ? 'hidden' : 'visible'; // Switch visibility style rather than Dislay
    setTimeout("animateFade(" + new Date().getTime() + ",'" + eid1 + "')", 33);
  } 
  
  
if(element2.FadeState == 1 || element2.FadeState == -1)
  {
    element2.FadeState = element2.FadeState == 1 ? -1 : 1;
    element2.FadeTimeLeft = TimeToFade - element2.FadeTimeLeft;

  }
  else
  {
    element2.FadeState = element2.FadeState == 2 ? -1 : 1;
    element2.FadeTimeLeft = TimeToFade;
	//element2.style.display = element2.FadeState == 2 ? 'none' : 'block';
	//element2.style.visibility = element.FadeState == 2 ? 'hidden' : 'visible'; // Switch visibility style rather than Dislay
    setTimeout("animateFade(" + new Date().getTime() + ",'" + eid2 + "')", 33);
  } 

wait = setTimeout('nextBanner()',bannertime);
}

function animateFade(lastTick, eid)
{  
  var curTick = new Date().getTime();
  var elapsedTicks = curTick - lastTick;
 
  var element = document.getElementById(eid);
 
  if(element.FadeTimeLeft <= elapsedTicks)
  {
	//element.style.display = element.FadeState == 1 ? 'block' : 'none';
	//element.style.visibility = element.FadeState == 1 ? 'visible' : 'hidden'; // Switch visibility style rather than Dislay
    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;
    return;
  }
 
  element.FadeTimeLeft -= elapsedTicks;
  var newOpVal = element.FadeTimeLeft/TimeToFade;
  if(element.FadeState == 1)
    newOpVal = 1 - newOpVal;

  element.style.opacity = newOpVal;
  element.style.filter = 'alpha(opacity = ' + (newOpVal*100) + ')';
 
  setTimeout("animateFade(" + curTick + ",'" + eid + "')", 33);
}

function placeDivs(elements)
{
	var height_max=0;
	var height=0;
	var top;
	var left;
	container = document.getElementById(bannerName);
	
	//set the size of the outer div
	for (var i = 0; i < elements.length; i++)
	{
		if(elements[i].offsetHeight>height_max)
		{
			height_max = elements[i].offsetHeight;
		}
	}
	
	container.style.height = height_max + 'px';

	//place the inner divs on top of each other
	for (var i = 0; i < elements.length-1; i++)
	{
		//width = elements[i].offsetWidth
		height += elements[i].offsetHeight
		//left = elements[i].offsetLeft;
		//top = elements[i].offsetTop;
		//elements[i+1].style.position = 'relative';
		//elements[i+1].style.top = -height;
		
		elements[i+1].style.top = (-1*height)+'px';

	}
}

//function to get random number from 1 to n
function randomToN(maxVal,floatVal)
{
   var randVal = Math.random()*maxVal;
   return typeof floatVal=='undefined'?Math.round(randVal):randVal.toFixed(floatVal);
}


function puhaSetDivSize(elements)
{
	//elements = document.getElementById(bannerName).getElementsByTagName('div');
	for (var i = 0; i < elements.length; i++)
	{
		elements[i].style.height = elements[i].offsetHeight + 'px';
		elements[i].style.width = elements[i].offsetWidth + 'px';
	}
}

