﻿var marqueedataElements = new Array();
var pauseOnMouseover = true;

//Variables for horizontal ticker
var marqueespeed=1; 
var copyspeed=0;
var pausespeed=0;
var actualwidth=0;
var timerId;

var _tickerid;
var _tickerDataId;

//Variables for the vertical ticker
var pauseOnMouseover1 = true;
var marqueespeed1=0;
var copyspeed1=0;
var pausespeed1=0;
var actualheight=0;
var timerId1;

var oNote;

//Determine width of rendered tickerData
function GetContentWidth(oContent)
{
	var actualWidth = 0;
	
	var oTemp = document.body.appendChild(oContent);
	
	actualWidth = Sys.UI.DomElement.getBounds(oTemp).width;	
	document.body.removeChild(oTemp);
	
	return actualWidth;	
}

function GetContentHeight(oContent)
{
	var actualHeight = 0;
	
	var oTemp = document.body.appendChild(oContent);
	
	actualHeight = Sys.UI.DomElement.getBounds(oTemp).height;	
	document.body.removeChild(oTemp);
	
	return actualHeight;	
}

//Duplicate data for seamless scrolling
function MakeSeamlessData(oContent)
{
	var screenWidth = window.screen.width;
	var multiplier = 1;
	if(actualwidth != 0)
		multiplier = Math.ceil(screenWidth / actualwidth);
	
	var content = oContent.innerHTML;
		
	for(i = 1; i <= multiplier; i++)
	{
		oContent.innerHTML += content;
	}
}

function StartScrolling(instance, tickerId)
{
	$get(tickerId).appendChild(marqueedataElements[instance]);
	
	if(timerId)
		window.clearInterval(timerId);
		
	timerId = setInterval("ScrollMarquee(" + instance+ ")",18);	
}

//The actual method to animate the ticker
function ScrollMarquee(instance)
{    
	var left = parseInt(marqueedataElements[instance].style.left);
	
	if (left>(actualwidth*-1)-3)
		marqueedataElements[instance].style.left = left-copyspeed+"px";
	else
		marqueedataElements[instance].style.left="0px"; 
}

function InitialiseTicker(tickerId, tickerDataId, speed, aPauseOnMouseover)
{	
	if(typeof(Break) == "function")
		Break();
		
	//Pause marquee onMousever?
	pauseOnMouseover=aPauseOnMouseover
	marqueespeed=speed;
	copyspeed=marqueespeed;
	pausespeed=(pauseOnMouseover)? 0 : copyspeed;

	var oTickerContainer = $get(tickerId);
	var oTickerData = oTickerContainer.childNodes[0];
	
	while(oTickerData != null && oTickerData.nodeType != 1 && oTickerData.nextSibling != null)
		oTickerData = oTickerData.nextSibling;
	
	actualwidth = GetContentWidth(oTickerData);
	MakeSeamlessData(oTickerData);
	
	marqueedataElements.push(oTickerData);
	var instance = marqueedataElements.length -1; 

	StartScrolling(instance, tickerId)
}

function ScrollUp(instance)
{
	var top = parseInt(marqueedataElements[instance].style.top);
	
	if (top>= -(actualheight+277))
	{		
		marqueedataElements[instance].style.top = top-copyspeed1+"px";
	}
	else
	{
	    var total = top + actualheight + 277 + 130;
		marqueedataElements[instance].style.top= total + "px"; 
	}
}

function InitialiseVerticalTicker(tickerId, tickerDataId, speed, aPauseOnMouseover)
{
    if(typeof(Break) == "function")
		Break();
    //Pause marquee onMousever?
	pauseOnMouseover1=aPauseOnMouseover
	marqueespeed1=speed;
	copyspeed1=marqueespeed;
	pausespeed1=(pauseOnMouseover1)? 0 : copyspeed1;

	var oTickerContainer = $get(tickerId);
	var oTickerData = oTickerContainer.childNodes[0];
	
	while(oTickerData != null && oTickerData.nodeType != 1 && oTickerData.nextSibling != null)
		oTickerData = oTickerData.nextSibling;
		
    actualheight = GetContentHeight(oTickerData);
	MakeSeamlessData(oTickerData);
	
	marqueedataElements.push(oTickerData);
	var instance = marqueedataElements.length -1; 
	
	$get(tickerId).appendChild(marqueedataElements[instance]);
	
	if(timerId1)
		window.clearInterval(timerId1);
		
    timerId1 = setInterval("ScrollUp(" + instance+ ")",18);	
}
