// JavaScript Document

/*alternate interval functions for IE*/

// This script can be reused as long as the following 
// copyright notice is not removed.  
// SetInterval and ClearInterval Compatibility Script
// Copyright 1999 InsideDHTML.com, LLC. All rights reserved
// See www.insideDHTML.com for more information.

var aTracking = new Array()

var isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;

function runInterval(sIndex) {
  if (aTracking[sIndex]) {
    var args = aTracking[sIndex].arguments
    // Call function and pass in any extra argument
    var callargs="aTracking[sIndex].code(";
   
    for( i = 0; i < args.length; ++i )
	{
		callargs=callargs+"args["+i+"]";
 		
		if( i < (args.length-1) )
		{
			callargs+=",";
		}
    }
    
	callargs=callargs+")";
	
    eval(callargs);
    // Start up timer for next iteration
    aTracking[sIndex].timerID = setTimeout("runInterval(" + sIndex + ")",aTracking[sIndex].interval)
  }
}

function newSetInterval(func,interval) {
 var fCall = func
 if (typeof func!="function") 
  var fCall= new Function(func)
 var nextIdx = aTracking.length
 aTracking[nextIdx] = new Object
 aTracking[nextIdx].interval = interval
 aTracking[nextIdx].code = fCall
 aTracking[nextIdx].arguments = new Array()
 for (var i=2;i < arguments.length;i++) 
  aTracking[nextIdx].arguments[aTracking[nextIdx].arguments.length] = arguments[i]
 aTracking[nextIdx].timerID = setTimeout("runInterval(" + nextIdx + ")",interval)
 return nextIdx
}

function newClearInterval(idx) {
 if (aTracking[idx]) {
  clearTimeout(aTracking[idx].timerID)
  aTracking[idx] = null
 }
}

if ( isIE) {
 window.setInterval = newSetInterval
 window.clearInterval = newClearInterval
}

/*Marquee class*/

function Marquee( element, axis, dir, fps, speed )
{
	this.element = element;
	this.axis = axis;
	this.dir = dir;
	this.fps = fps;
	this.speed = speed;
	this.playing = true;
	
	if( axis == 'vertical' )
	{
		this.side = 'Top';
		this.measure = 'Height';
		var padHorz = '0';
		var padVert = element['offset'+this.measure]+'px';
		
		var pad = element['offset'+this.measure]+'px';
		
		element.innerHTML = '<div style="padding:'+pad+' 0 '+pad+' 0;">'+element.innerHTML+'<div>';
	
	}
	else//horizontal scroll
	{
		this.side ='Left';
		this.measure = 'Width';
		var padHorz = element['offset'+this.measure]+'px';
		var pad = element['offset'+this.measure]+'px';
		
		element.innerHTML = '<div style="margin:0 0 0 '+pad+';"><span style="margin:0 '+pad+' 0 0;">'+element.innerHTML+'</span><div>';
		
		element.style.overflow = 'hidden';
		element.style.whiteSpace = 'nowrap';
	}
	
	this.stop = function()
	{
		this.playing = false;
	}
	
	this.start = function()
	{
		this.playing = true;
	}
	
	element['scroller'] = this;
	element.onmouseover = function(){ this['scroller'].stop() };
	element.onmouseout = function(){ this['scroller'].start() };
	
	this.update = function()
	{
		if( this.playing )
		{
			if( this.dir > 0 )
			{
				element['scroll'+this.side] += this.speed;
				
				if( element['scroll'+this.side] >= element['scroll'+this.measure] - element['offset'+this.measure] )
				{
					element['scroll'+this.side] = 0;
				}
			}
			else
			{
				element['scroll'+this.side] -= this.speed;
				
				if( element['scroll'+this.side] <= 0 )
				{
					element['scroll'+this.side] = element['offset'+this.measure]*4;
				}
			}
		}
	}
	
	setInterval( function( targ ){ targ.update(); }, ( 1000 / fps ), this );
}