 //scrolling.js
 //Used for various JavaScript scrolling on a page
 //Originally from www.ScriptAsylum.com , but modified substanitially by msaxton.

 //OLDER VERSION OF THIS STUFF THAT DID HORIZONTAL (that i dont feel like messing with) INCLUDED BELOW.
 //scrolling.js
 //Used for various JavaScript scrolling on a page
 //Originally from www.ScriptAsylum.com , but modified substanitially by Mike Saxton.  (and quite nicey I must add)

 //******** VARIABLES ********

 //GENERAL SCROLLING VARIABLES
 var usingFirefox = false;                     //if the browser is Firefox
 var newsScrolling = false;                    //if the news messages are currently scrolling

 //VERTICAL NEWS SCROLLER VARIABLES
 var newsSpeed = 20;                           //length of time between scrolling intervals (except on Firefox)
 var newsPixelStep = 1;                        //distnace each news messages is moved on each scrolling interval (except Firfox)
 var firefoxNewsSpeed = 2;                     //length of time between scrolling intervals, on Firefox
 var firefoxNewsPixelStep = 4;                 //distnace each news messages is moved on each scrolling interval, on Firefox

 //MARQUEE VARIABLES
 var totalMarqueeMessages;
var totalLength =0;
var space_split =0;

 var maxMarqueeMessages = 50;
 var messageSpacing = 12;
 var marqueeTrainEnd = messageSpacing;
 var marqueeInterval;
 var marqueeSpeed=40;                      
 var marqueePixelStep=1;

 var marqueeBoxHeight=20;                   //height of the marquee in pixels
 //var marqueeBoxWidth=492;                   //width of the marquee in pixels
 var marqueeBoxWidth=874;                   //width of the marquee in pixels
 var marqueeBoxColor="#FFFFFF";             //background color of the marquee (not used in this script)
 var marqueeRef;
 var marqueeOuter;
 var marqueeMessages = new Array();
 var marqueeMessageLength = new Array();
 var marqueeMessageName = 'marqueeMessage';
 
 // TICKER MOVEMENT
var viewMarqueeMessageLength = 200;       // length of time a marquee message is displayed
var changeMarqueeMessage;                   // timer to tell when to change marquee messages

var marqueeMessagesMultiplier = 5;   //number of time to repeat the original marquee message to be sure it wil fill screen and scroll seamlessly

var marqueePaused = 0;     
var tickerPaused = false;

 //******** FUNCTIONS ********

//GENERAL SCROLLING FUNCTIONS

 function initScrolling() {
 	//$('#marqueeParseBox p').each(function(){
	//	$('#marqueeOuter').append('<div id="marqueeMessage" style="visibility:hidden; left:2px; top:2px; height:18; cursor:default; white-space: nowrap;"  onmouseover="tickerPaused=true" onmouseout="tickerPaused=false"><p>' + $(this).html() +  +'&nbsp;&nbsp;&nbsp;|</p></div>')
	//});
	
	content = ''; 
	$('#marqueeParseBox p').each(function(){
		content = content + '<div id="marqueeMessage" style="visibility:hidden; left:2px; top:2px; height:18; cursor:default; white-space: nowrap;"  onmouseover="tickerPaused=true" onmouseout="tickerPaused=false"><p>' + $(this).html() +  '&nbsp;&nbsp;&nbsp;|</p></div>';
	});
	for( var i = 0; i < marqueeMessagesMultiplier; i++ ) {
			$('#marqueeOuter').append(content);
	}
		
	// initialize the events marquee
 	initMarquee();
	
	// start a timer to change marquee (but only if there is more than 1 message to scroll)
	if (marqueeMessages.length > 1) {
		changeMarqueeMessage = setTimeout( 'nextMarqueeMessage()', viewMarqueeMessageLength );
	}
		
	//adjust if we are using Mozilla Firefox, since when both scrollers are scrolling, it lags.
 	var agt = navigator.userAgent.toLowerCase();
 	if( agt.indexOf( "firefox" ) != -1 ) {
		//alert('Firefox detected');
 		newsSpeed = firefoxNewsSpeed;
 		newsPixelStep = firefoxNewsPixelStep;
 		usingFirefox = true;
 	}	

 window.onresize=function(){
	//alert('WINDOW was resized');
	marqueeOuter.style.left=getPageLeft(marqueeRef)+'px';
	marqueeOuter.style.top=getPageTop(marqueeRef)+'px';
};

 
 }
 

			
 function getElWidth( el ) {
	//alert( 'el.offsetWidth:' + el.offsetWidth + ', el.clientWidth:' + el.clientWidth + ', el.style.Width:' + el.style.Width );
 	return parseInt(el.offsetWidth);
 }

 function getPageLeft(el){
 	var x = 0;
 	while(el.offsetParent!=null){
 		//alert( 'getPageLeft-->el.offsetLeft:' + el.offsetLeft ); 
 		x+=el.offsetLeft;
 		el=el.offsetParent;
 	}
 	x+=el.offsetLeft;
 	//alert( 'getPageLeft-->final_X:' + x );
 	return x;
 }

 function getPageTop(el){
 	var y=0;
 	while(el.offsetParent!=null){
		//alert( 'getPageTop-->el.offsetTop:' + el.offsetTop );
 		y+=el.offsetTop;
 		el=el.offsetParent;
 	}
 	y+=el.offsetTop;
	//alert( 'getPageTop-->final_Y:' + y );
 	return y;
 }

 function renameObjects( messageName, maxMessages ) {
	// All message objects start off with the same name, so we go through and rename them incrementally, starting at 0
	var currentMessageObj;              //the current message object to be renamed
	var totalMessages = 0;              //a rolling number of messages found
	var foundAllMessages = false;       //determine when all the messages have been renamed
	var safeGaurd = 0;                  //just a safe gaurd to make sure we don't get stuck in an endless loop

	while( !foundAllMessages ) {    //loop until we've found all the messages
		//alert('Looking for ' + messageName + totalMessages );
		if( currentMessageObj = document.getElementById( messageName ) ) {
			currentMessageObj.id = messageName + totalMessages;
			//alert('Renamed: ' + currentMessageObj.id );
			totalMessages++;
		} else {
			foundAllMessages = true;
			//alert('All \'' + messageName + '\' messages are found');
		}
		safeGaurd++;
		 //don't want to get stuck in an endless loop, so if we're still finding stuff when we hit the max, somethings gone wrong-o. Bail
		if( safeGaurd > maxMessages ) foundAllMessages = true;
	}
	return totalMessages;  // return the total number of messages found
}

// MARQUEE FUNCTIONS
function initMarquee() {
	marqueeRef = document.getElementById('marqueeRef');
	marqueeOuter = document.getElementById('marqueeOuter');
	
	totalMarqueeMessages = renameObjects( marqueeMessageName, maxMarqueeMessages );
	
	for( var i = 0; i < totalMarqueeMessages; i++ ) {
		marqueeMessages[i] = document.getElementById( marqueeMessageName + i );			
		marqueeMessages[i].style.position = 'absolute';
		marqueeMessages[i].style.overflow = 'hidden';
		marqueeMessageLength[i] = getElWidth( marqueeMessages[i] );
		//set inital postions for all items
		//alert(marqueeMessageLength[i]);
		marqueeMessages[i].style.left = marqueeTrainEnd + 'px';
		marqueeTrainEnd += ( marqueeMessageLength[i] +  messageSpacing - 4 );  // minus 4 bacuse the MessageLength has 4 pixels of padding
		//marqueeTrainEnd += ( marqueeMessageLength[i] + messageSpacing - 4 );  // minus 4 bacuse the MessageLength has 4 pixels of padding
		//marqueeMessages[i].style.clip='rect(0px, '+(marqueeMessageLength[i])+'px, '+(marqueeBoxHeight-2)+'px, 0px)';
 		marqueeMessages[i].style.clip='rect(0px, '+(marqueeMessageLength[i])+'px, '+(marqueeBoxHeight-2)+'px, 0px)';
		marqueeMessages[i].style.visibility = 'visible';
		 
	}
	marqueeOuter.style.width=marqueeBoxWidth; 
	//marqueeOuter.style.width=marqueeTrainEnd;
	totalMarqueeLength = marqueeTrainEnd;
	marqueeOuter.style.left=getPageLeft(marqueeRef)+'px';
	marqueeOuter.style.top=getPageTop(marqueeRef)+'px';
	marqueeOuter.style.visibility="visible";
	marqueeInterval = setInterval('scrollMarquee()',marqueeSpeed);
}

function scrollMarquee(){
	 
	if( !newsScrolling  &&  !tickerPaused ) {
		marqueeTrainEnd -= marqueePixelStep;
		// alert(marqueeTrainEnd);
		for( var i = 0; i < totalMarqueeMessages; i++ ) {
	 		marqueeMessages[i].style.left = (parseInt(marqueeMessages[i].style.left) - marqueePixelStep)+'px';
			//alert( i+" : "+parseInt(marqueeMessages[i].style.left) );
			if( parseInt( marqueeMessages[i].style.left ) < ( 2 - marqueeMessageLength[i] ) ) {		
			
				if( marqueeTrainEnd < marqueeBoxWidth ) {
					marqueeTrainEnd = marqueeBoxWidth;
				}
				
				marqueeMessages[i].style.left =   marqueeTrainEnd  + 'px';
				marqueeTrainEnd += ( marqueeMessageLength[i]  + messageSpacing  );
				finishedScrolling = 1;
			}					
		}
		if( newsScrolling ) {
			clearInterval(  marqueeInterval );
			// reset timer to change ticker
			changeTickerMessage = setTimeout( 'nextMarqueeMessage()',  viewMarqueeMessageLength );
		}
	}
}





function pauseMarquee() {
	//clearInterval( marqueeInterval );
	marqueePaused = 1;
}

function resumeMarquee() {
	//marqueeInterval = setInterval('scrollMarquee()',marqueeSpeed);
	marqueePaused = 0;
}

// marquee MOVEMENT
function nextMarqueeMessage() {
	
	// start the Marquee interval
	marqueeInterval = setInterval( 'scrollMarquee()', marqueeSpeed );
	
}



// December/21/2009 active horizontal-scroll, code for vertical-scroll is commented for velocity trade
// scrolling.js
// Used for various JavaScript scrolling on a page
// Originally from www.ScriptAsylum.com , but modified substanitially by msaxton.

// ******** VARIABLES ********

// GENERAL SCROLLING VARIABLES
//var usingFirefox = false;                    // if the browser is Firefox
//var newsScrolling = false;                   // if the news messages are currently scrolling - NOT USED


// marquee VARIABLES
//var totalTickerMessages;
//var maxTickerMessages = 50;
//var tickerMessageSpacing = 5;
//var tickerTrainEnd = 0;

//var tickerBoxHeight = 20;                  // height of the ticker in pixels
//var tickerBoxWidth = 696;                  // width of the ticker in pixels
//var tickerBoxColor = "#eaeaea";            // background color of the ticker (not used in this script)
//var tickerRef;
//var tickerOuter;
//var tickerMessages = new Array();
//var tickerMessageLength = new Array();
//var tickerMessageName = 'marqueeMessage';


// TICKER MOVEMENT
//var viewTickerMessageLength = 2000;       // length of time a ticker message is displayed
//var changeTickerMessage;                   // timer to tell when to change ticker messages

//var tickerInterval;      // the currency ticker will step at each tickerInterval.  the ticker will step once every tickerInterval inervals (see below)
//var tickerSpeed = 80;    // lower is faster (interval length for when to do the next step, from 1-10 all seem to be the same)
//var tickerPixelStep = 1;

//var tickerPaused = 0;                     


// ******** FUNCTIONS ********

// GENERAL SCROLLING FUNCTIONS
//function initScrolling() {
	
	//2009 09 23 terrible new requirements. we have to get multiple p tags out of some temporary places and then construct the marquee message divs. because of sitepilot.
	//$('#marqueeParseBox p').each(function(){
	//	$('#marqueeOuter').append('<div id="marqueeMessage" style="visibility:hidden; left:2px; top:2px; height:18; cursor:default; white-space: nowrap;"><p>' + $(this).html() + '</p></div>')
	//});
	
	//alert('aborting the rest');
	//return null;
	
	// initialize the ticker
	//initTicker();

	// start a timer to change ticker (but only if there is more than 1 message to scroll)
	//if (tickerMessages.length > 1) {
	//	changeTickerMessage = setTimeout( 'nextTickerMessage()', viewTickerMessageLength );
	//}

//}

//window.onresize=function(){
	//alert('WINDOW was resized');
	//tickerOuter.style.left = getPageLeft( tickerRef ) + 'px';
	//tickerOuter.style.top = getPageTop( tickerRef ) + 'px';
	//newsOuter.style.left=getPageLeft(newsRef)+'px';
	//newsOuter.style.top=getPageTop(newsRef)+'px';
//}

		
//function getElWidth( el ) {
	//alert( 'el.offsetWidth:' + el.offsetWidth + ', el.clientWidth:' + el.clientWidth + ', el.style.Width:' + el.style.Width );
	//return parseInt(el.offsetWidth);
//}

//function getElHeight( el ) {
	//alert( 'el.offsetHeight:' + el.offsetHeight + ', el.clientHeight:' + el.clientHeight + ', el.style.Height:' + el.style.Height );
	//return parseInt(el.offsetHeight);
//}

//function getPageLeft(el){
//	var x = 0;
//	while(el.offsetParent!=null){
		//alert( 'getPageLeft-->el.offsetLeft:' + el.offsetLeft ); 
//		x+=el.offsetLeft;
//		el=el.offsetParent;
//	}
//	x+=el.offsetLeft;
	//alert( 'getPageLeft-->final_X:' + x );
//	return x;
//}

//function getPageTop(el){
//	var y=0;
//	while(el.offsetParent!=null){
		//alert( 'getPageTop-->el.offsetTop:' + el.offsetTop );
//		y+=el.offsetTop;
//		el=el.offsetParent;
//	}
//	y+=el.offsetTop;
	//alert( 'getPageTop-->final_Y:' + y );
//	return y;
//}

//function renameObjects( messageName, maxMessages ) {
	// All message objects start off with the same name, so we go through and rename them incrementally, starting at 0
//	var currentMessageObj;             // the current message object to be renamed
//	var totalMessages = 0;             // a rolling number of messages found
//	var foundAllMessages = false;      // determine when all the messages have been renamed
//	var safeGaurd = 0;                 // just a safe gaurd to make sure we don't get stuck in an endless loop

//	while( !foundAllMessages ) {   // loop until we've found all the messages
		//alert('Looking for ' + messageName + totalMessages );
//		if( currentMessageObj = document.getElementById( messageName ) ) {
//			currentMessageObj.id = messageName + totalMessages;
//			//alert('Renamed: ' + currentMessageObj.id );
//			totalMessages++;
//		} else {
//			foundAllMessages = true;
			//alert('All \'' + messageName + '\' messages are found');
//		}
//		safeGaurd++;
		// don't want to get stuck in an endless loop, so if we're still finding stuff when we hit the max, somethings gone wrong-o. Bail
//		if( safeGaurd > maxMessages ) foundAllMessages = true;
//	}
//	return totalMessages;  // return the total number of messages found
//}


// TICKER FUNCTIONS
//function initTicker() {
//	tickerRef = document.getElementById( 'marqueeRef' );
//	tickerOuter = document.getElementById( 'marqueeOuter' );
//	totalTickerMessages = renameObjects( tickerMessageName, maxTickerMessages );
//	for( var i = 0; i < totalTickerMessages; i++ ) {
//		tickerMessages[i] = document.getElementById( tickerMessageName + i );					
//		tickerMessages[i].style.position = 'absolute';
//		tickerMessages[i].style.overflow = 'hidden';
//		tickerMessageLength[i] = getElHeight( tickerMessages[i] );
//		//set inital postions for all items
//		tickerMessages[i].style.top = tickerTrainEnd + 'px';
//		tickerTrainEnd += ( tickerMessageLength[i] + tickerMessageSpacing );
//		tickerMessages[i].style.clip = 'rect( 0px, ' + ( tickerBoxWidth ) + 'px, ' + ( tickerBoxHeight ) + 'px, 0px )';
//		tickerMessages[i].style.visibility = 'visible';
//	}
//	tickerOuter.style.width = tickerBoxWidth;
//	tickerOuter.style.left = getPageLeft( tickerRef )+'px';
//	tickerOuter.style.top = getPageTop( tickerRef )+'px';
//	tickerOuter.style.visibility = "visible";
	
	//alert('initd');
//}

//function pauseTicker() {
//	tickerPaused = 1;
//}
//function resumeTicker() {
//	tickerPaused = 0;
//}


// TICKER MOVEMENT
//function nextTickerMessage() {
	
	// start the ticker interval
	//tickerInterval = setInterval( 'scrollTicker()', tickerSpeed );
	
//}

//function scrollTicker() {
	
//	var finishedScrolling = 0;
//	if( !tickerPaused ) {   // check if the ticker is paused  (this ticker should never be paused)
//		tickerTrainEnd -= tickerPixelStep;
//		for( var i = 0; i < totalTickerMessages; i++ ) {
//			tickerMessages[i].style.top = ( parseInt( tickerMessages[i].style.top ) - tickerPixelStep ) + 'px';
//			if( parseInt( tickerMessages[i].style.top ) <= ( 0 - (tickerMessageLength[i]+tickerMessageSpacing) ) ) {						
//				// make sure a message always starts from the edge of the scrolling area
////				alert('message ' + i + ' top is at: ' + tickerMessages[i].style.top + ' height of that message is ' + tickerMessageLength[i]);
////				if( tickerTrainEnd < tickerBoxHeight ) { 
////					alert('its a trap since ' + tickerTrainEnd + ' is less than ' + tickerBoxHeight);
////					tickerTrainEnd = tickerBoxHeight;
////					//tickerTrainEnd = tickerMessageLength[i];
////				}
//				tickerMessages[i].style.top = tickerTrainEnd + 'px';
				//alert('just set top of msg number ' + i + ' to ' + tickerTrainEnd);
//				tickerTrainEnd += ( tickerMessageLength[i] + tickerMessageSpacing );
//				finishedScrolling = 1;
//			}					
//		}
//		if( finishedScrolling ) {
//			clearInterval( tickerInterval );
			// reset timer to change ticker
//			changeTickerMessage = setTimeout( 'nextTickerMessage()', viewTickerMessageLength );
//		}
//	}

//}

