﻿var superDestaque = undefined

var SuperDestaque = function ()
{
	var nums = new Array()
	var divs = new Array()
	var atual = 1
	var anterior = 1
	
	var delayNot = 10000
	var delayAnim = 300
	
	var timerNot = null
	var timerAnim = null
	
	var alphaRatio = 20
	var alphaAtual = 0
	var alphaAnterior = 0
	
	this.SetAlpha = function(Elem, Alpha)
	{
		Elem.style.opacity = Alpha / 100
		Elem.style.filter = 'alpha(opacity=' + Alpha + ')'
	}
	
	this.GetAlpha = function(Elem)
	{
		return Elem.style.opacity * 100
	}
	
	this.Select = function()
	{
		var Elem = nums[atual - 1]
		Elem.className = 'DestaqueSelected'
		Elem.onmouseover = ''
		Elem.onmouseout = ''
		Elem.onclick = ''
		Elem.style.cursor = 'default'
	}
	
	this.Deselect = function(i)
	{
		var Elem = nums[anterior - 1]
		Elem.className = 'Destaque'
		Elem.onmouseover = function() { this.className = "DestaqueHover" }
		Elem.onmouseout = function() { this.className = "Destaque" }
		eval('Elem.onclick = function() { superDestaque.Change(' + anterior + ') }')
		Elem.style.cursor = 'pointer'
	}
	
	this.Anim = function()
	{
		var divAtual = divs[atual - 1]
		var divAnterior = divs[anterior - 1]
		
		alphaAnterior -= alphaRatio
		alphaAtual += alphaRatio
		
		this.SetAlpha(divAnterior, alphaAnterior)
		this.SetAlpha(divAtual, alphaAtual)
		
		if(this.GetAlpha(divAtual) >= 100)
		{
		    divAtual.style.filter = ''
			divs[anterior - 1].style.display = 'none'
			clearInterval(timerAnim)
			timerNot = setTimeout('superDestaque.Next()', delayNot)
		}
	}
	
	this.Change = function(prox)
	{
		clearTimeout(timerNot)
		clearInterval(timerAnim)
	
		if(prox > divs.length)
			prox = 1
		
		if(atual != anterior)
			this.SetAlpha(divs[anterior - 1], 0)
		
		anterior = atual
		atual = prox
		
		this.Deselect()
		this.Select()
		
		divs[atual - 1].style.display = ''
		
		alphaAnterior = this.GetAlpha(divs[anterior - 1])
		alphaAtual = 100 - alphaAnterior
		
		timerAnim = setInterval('superDestaque.Anim()', delayAnim / (100 / alphaRatio))
	}
	
	this.Next = function()
	{
		this.Change(atual + 1)
	}
	
	this.Initialise = function()
	{
		superDestaque = this
		
		var i = 1
		var div = undefined
		var num = undefined
		
		num = document.getElementById('SuperDestaqueNumero_' + i);
		div = document.getElementById('SuperDestaque_' + i);
		this.SetAlpha(div, 100)
		
		while(div != undefined)
		{
			if(divs.length > 0)
			{
				this.SetAlpha(div, 0)
			}
			
			nums.push(num)
			divs.push(div)
			i++			
			div = document.getElementById('SuperDestaque_' + i);
			num = document.getElementById('SuperDestaqueNumero_' + i);			
		}
		
		timerNot = setTimeout('superDestaque.Next()', delayNot)
	}
	
	this.Initialise()
}
