function Billboard()
{
	var thisBillboard = this;
	
	this.items = document.getElementById('Billboard').getElementsByTagName('li');
	
	this.switchTime = 5000;
	
	this.visibleItem = 0;
	
	this.playing = true;
	
	this.switchItems = function()
	{
		if(thisBillboard.visibleItem < thisBillboard.items.length - 1)
		{
			thisBillboard.visibleItem ++;
			thisBillboard.fadeIn(thisBillboard.visibleItem);
		}
		else
		{
			for(var i = 1; i < thisBillboard.items.length - 1; i++)
			{
				thisBillboard.items[i].style.display = 'none';
				thisBillboard.setOpacity(thisBillboard.items[i], 0);
			}
			thisBillboard.fadeOut(thisBillboard.visibleItem);
			thisBillboard.visibleItem = 0;
		}
	};
	
	this.next = function()
	{
		if(thisBillboard.visibleItem < thisBillboard.items.length - 1)
		{
			thisBillboard.visibleItem ++;
			thisBillboard.setOpacity(thisBillboard.items[thisBillboard.visibleItem], '100');
			thisBillboard.items[thisBillboard.visibleItem].style.display = 'block';
		}
		else
		{
			for(var i = 1; i < thisBillboard.items.length - 1; i++)
			{
				thisBillboard.items[i].style.display = 'none';
				thisBillboard.setOpacity(thisBillboard.items[i], 0);
			}
			thisBillboard.setOpacity(thisBillboard.items[thisBillboard.visibleItem], 0);
			thisBillboard.items[thisBillboard.visibleItem].style.display = 'none';
			thisBillboard.visibleItem = 0;
		}
		if(thisBillboard.playing == true)
		{
			clearInterval(thisBillboard.switchInterval);
			thisBillboard.switchInterval = setInterval(thisBillboard.switchItems, thisBillboard.switchTime);
		}
	};
	
	this.prev = function()
	{
		clearInterval(thisBillboard.switchInterval);
		if(thisBillboard.visibleItem > 0)
		{
			thisBillboard.setOpacity(thisBillboard.items[thisBillboard.visibleItem], 0);
			thisBillboard.items[thisBillboard.visibleItem].style.display = 'none';
			thisBillboard.visibleItem --;
			thisBillboard.setOpacity(thisBillboard.items[thisBillboard.visibleItem], 100);
			thisBillboard.items[thisBillboard.visibleItem].style.display = 'block';
		}
		else
		{
			for(var i = 1; i < thisBillboard.items.length; i++)
			{
				thisBillboard.items[i].style.display = 'block';
				thisBillboard.setOpacity(thisBillboard.items[i], 100);
			}
			thisBillboard.visibleItem = thisBillboard.items.length - 1;
		}
		if(thisBillboard.playing == true)
		{
			clearInterval(thisBillboard.switchInterval);
			thisBillboard.switchInterval = setInterval(thisBillboard.switchItems, thisBillboard.switchTime);
		}
	};
	
	this.pause = function()
	{
		clearInterval(thisBillboard.switchInterval);
		document.getElementById('play-pause').getElementsByTagName('img')[0].src = document.getElementById('play-pause').getElementsByTagName('img')[0].src.replace(/pause/, 'play');
	}
	
	this.play = function()
	{
		thisBillboard.switchInterval = setInterval(thisBillboard.switchItems, thisBillboard.switchTime);
		document.getElementById('play-pause').getElementsByTagName('img')[0].src = document.getElementById('play-pause').getElementsByTagName('img')[0].src.replace(/play/, 'pause');
	}
	
	this.increaseOpacity = function(element)
	{
		if(thisBillboard.getOpacity(element) == '0')
		{
			element.style.display = 'block';
		}
		thisBillboard.setOpacity(element, thisBillboard.getOpacity(element) + 10);
	};
	
	this.decreaseOpacity = function(element)
	{
		thisBillboard.setOpacity(element, thisBillboard.getOpacity(element) - 10);
		if(thisBillboard.getOpacity(element) == '0')
		{
			element.style.display = 'none';
		}
	};
	
	if(document.body.style.opacity == undefined)
	{
		this.setOpacity = function(element, value)
		{
			element.style.filter = 'alpha(opacity=' + value + ')';
		};
		
		this.getOpacity = function(element)
		{
			return parseFloat(element.style.filter.replace(/alpha\(opacity=/, '').replace(/\)/, ''));
		};	
	}
	else
	{
		this.setOpacity = function(element, value)
		{
			element.style.opacity = value / 100;
		};
		
		this.getOpacity = function(element)
		{
			return parseFloat(element.style.opacity) * 100;
		};	
	}
	
	this.fadeIn = function(element_order)
	{
		if(thisBillboard.items[element_order].style.opacity == '0' || thisBillboard.items[element_order].style.filter == 'alpha(opacity=0)')
		{
			function increaseOpacity()
			{
				thisBillboard.increaseOpacity(thisBillboard.items[element_order]);
			}
			for(var i = 0; i < 10; i++)
			{
				setTimeout(increaseOpacity, 50 * i);
			}
		}
	};
	
	this.fadeOut = function(element_order)
	{
		if(thisBillboard.items[element_order].style.opacity == '1' || thisBillboard.items[element_order].style.filter == 'alpha(opacity=100)')
		{
			function decreaseOpacity()
			{
				thisBillboard.decreaseOpacity(thisBillboard.items[element_order]);
			}
			for(var  i = 0; i < 10; i++)
			{
				setTimeout(decreaseOpacity, 50 * i);	
			}
		}
	}
	
	for(var i = 0; i < this.items.length; i++)
	{
		if(i == 0)
		{
			thisBillboard.setOpacity(this.items[i], 100);
		}
		else
		{
			thisBillboard.setOpacity(this.items[i], 0);
		}
	}
	
	document.getElementById('prev').onclick = function()
	{
		thisBillboard.prev();
		return false;
	}
	
	document.getElementById('next').onclick = function()
	{
		thisBillboard.next();
		return false;
	}
	
	document.getElementById('play-pause').onclick = function()
	{
		if(thisBillboard.playing == true)
		{
			thisBillboard.playing = false;
			thisBillboard.pause();
		}
		else
		{
			thisBillboard.playing = true;
			thisBillboard.play();
		}
		return false;
	}
	
	if(this.items.length > 1)
	{
		document.getElementById('bb-controls').style.display = 'block';
		this.switchInterval = setInterval(this.switchItems, this.switchTime);
	}
}