/*
   Scrolling Text Ticker
   Version:      0.9
   Date:         05/15/2002
   Author:       Jan Krogmann (jan@soin.de)
   Dependencies: ticker_text.js
                 config.js (diferent versions)
                 style.css (diferent versions)

   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 2 of the License, or
   (at your option) any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You may gain a copy of the GNU General Public License at 
     Free Software Foundation           Voice:  +1-617-542-5942
     59 Temple Place - Suite 330        Fax:    +1-617-542-2652
     Boston, MA  02111-1307,  USA       E-Mail: gnu@gnu.org
*/

/* DHTML Library
   the original DHTML Library can be found at:
   http://www.netzwelt.com/selfhtml/dhtml/beispiele/dhtml_bibliothek.htm
*/
var DHTML = 0, DHTML_DOM = 0, DHTML_MS = 0, DHTML_NS = 0, DHTML_OP = 0;

function DHTML_init() {
	if (window.opera) { DHTML_OP = 1; }
	if(document.getElementById) { DHTML = 1; DHTML_DOM = 1; }
	if(document.all && !DHTML_OP) { DHTML = 1; DHTML_MS = 1; }
	if (window.netscape && window.screen && !DHTML_DOM && !DHTML_OP){ DHTML = 1; DHTML_NS = 1; }
}

function DHTML_getElem(p1,p2,p3) {
	var Elem;
	if(DHTML_DOM) {
		if(p1.toLowerCase()=="id") { if (typeof document.getElementById(p2) == "object") Elem = document.getElementById(p2); else Elem = void(0); return(Elem); }
		else if(p1.toLowerCase()=="name") { if (typeof document.getElementsByName(p2) == "object") Elem = document.getElementsByName(p2)[p3]; else Elem = void(0); return(Elem); }
		else if(p1.toLowerCase()=="tagname") { if (typeof document.getElementsByTagName(p2) == "object" || (DHTML_OP && typeof document.getElementsByTagName(p2) == "function")) Elem = document.getElementsByTagName(p2)[p3]; else Elem = void(0); return(Elem); }
		else return void(0);
	} else if(DHTML_MS) {
		if(p1.toLowerCase()=="id") { if (typeof document.all[p2] == "object") Elem = document.all[p2]; else Elem = void(0); return(Elem); }
		else if(p1.toLowerCase()=="tagname") { if (typeof document.all.tags(p2) == "object") Elem = document.all.tags(p2)[p3]; else Elem = void(0); return(Elem); }
		else if(p1.toLowerCase()=="name") { if (typeof document[p2] == "object") Elem = document[p2]; else Elem = void(0); return(Elem); }
		else return void(0);
	} else if(DHTML_NS) {
		if(p1.toLowerCase()=="id" || p1.toLowerCase()=="name") { if (typeof document[p2] == "object") Elem = document[p2]; else Elem = void(0); return(Elem); }
		else if(p1.toLowerCase()=="index") { if (typeof document.layers[p2] == "object") Elem = document.layers[p2]; else Elem = void(0); return(Elem); }
		else return void(0);
	}
}

DHTML_init();
/* END - DHTML Library */

function SCT_makeWindow(URL, width, height) {    
	window.open(URL, "SCT_POPUP", "height=" + height + ",width=" + width + ",left=10,top=100,scrollbars=1,resizable=0");
}    

/* Ticker methods */
// Initialize ticker
function SCT_tickerInit() {
	// retrieve the TickerObject
	if(!(SCT_TICKER_OBJECT = DHTML_getElem("id","SCT_OBJ_TICKER_TEXT",null)))
		if(!(SCT_TICKER_OBJECT = DHTML_getElem("name","SCT_OBJ_TICKER_TEXT",null)))
			return;

	if (DHTML_DOM) {
		// set content of the ticker
		SCT_TICKER_OBJECT.innerHTML = SCT_TICKER_TEXT;
	} else {
		// set content of the ticker
		SCT_TICKER_OBJECT.document.open();
		SCT_TICKER_OBJECT.document.write(SCT_TICKER_TEXT);
		SCT_TICKER_OBJECT.document.close();
		// retrieve the anchor object to calculat the coordinates of the ticker
		var POSITION = document.anchors['SCT_TICKER_PARENT'];
		// if vertical relative positioning
		if(SCT_TOP == 0)
			SCT_TOP		= POSITION.y;	// set ticker y-coordinate to anchor y coordinate
		// if horizontal relative positioning
		if(SCT_LEFT == 0)
			SCT_LEFT	= POSITION.x;	// set ticker x-coordinate to anchor x coordinate
		// if ticker shal be relatively centered
		if(SCT_CENTERED)
			SCT_LEFT 	= SCT_LEFT - (SCT_WIDTH/2); // calculate ticker x-coordinate from anchor x-coordinate
	}
	// compute right border of ticker
	SCT_RIGHT = SCT_WIDTH + SCT_LEFT;
	// set starting point of scrolling text
	SCT_POSITION = SCT_RIGHT;

	// mark first run of the ticker
	SCT_FIRST = true;
	// start ticker
	SCT_startTicker();
}

// start ticker
function SCT_startTicker() {
	// if ticker has not been started before OR
	// if mouse effect is enabled
	if(!parseInt(SCT_TICKER_INTERVAL) || SCT_MOUSE_EFFECT)
		SCT_TICKER_INTERVAL = setInterval('SCT_tickerTick()', 10);
}

// stop ticker
function SCT_stopTicker() {
	// if ticker has been started before AND
	// if mouse effect is enabled
	if(parseInt(SCT_TICKER_INTERVAL) && SCT_MOUSE_EFFECT) {
		clearInterval(SCT_TICKER_INTERVAL);
		SCT_TICKER_INTERVAL = 0;
	}
}

// main ticker function which implements the movement
// of the scrolling text
function SCT_tickerTick() {
	// calculate the decrease of horizontal position of scrolling text
	// weighted with customizable ticker speed (SCT_SPEED)
	SCT_POSITION = SCT_POSITION - 0.1 * SCT_SPEED;

	// if scrolling text has been completely scrolled
	if (SCT_POSITION < -SCT_HIDDEN_WIDTH) {
		// reset horizontal position of scrolling text to starting point
		SCT_POSITION = SCT_RIGHT;
	}

	if (DHTML_DOM) {
		// set horizontal position of scrolling text
		SCT_TICKER_OBJECT.style.left = SCT_POSITION;
		// if first ticker tick
		if (SCT_FIRST) {
			// unmark first tick
			SCT_FIRST = false;
			// show ticker
			SCT_TICKER_OBJECT.style.visibility = "visible";
			// calculate width of complete ticker text
			SCT_HIDDEN_WIDTH = SCT_TICKER_OBJECT.offsetWidth;
		}
	} else {
		// if first ticker tick
		if (SCT_FIRST) {
			// unmark first tick
			SCT_FIRST = false;
			// show ticker
			SCT_TICKER_OBJECT.visibility = "visible";
			// calculate height of ticker
			SCT_HEIGHT = parseInt(SCT_TICKER_OBJECT.clip.bottom) - parseInt(SCT_TICKER_OBJECT.clip.top);
			// calculate the width of complete ticker text
			// this workaround is using the length of the text weighted with
			// customizable scaling factor (SCT_SCALE_FACTOR).
			// the factor depends on the font size and shall be adapted accordingly for
			// every customer
			SCT_HIDDEN_WIDTH = parseInt(SCT_TICKER_TEXT.length * SCT_SCALE_FACTOR);
			// resize (unvisible part of) ticker to make the hole text visible.
			// otherwise only a part of the ticker text will be visible
			SCT_TICKER_OBJECT.resizeTo(SCT_HEIGHT, SCT_HIDDEN_WIDTH);
			// set y-coordinate of ticker
			SCT_TICKER_OBJECT.pageY = SCT_TOP;
		}
		// set horizontal position of scrolling text
		SCT_TICKER_OBJECT.left = SCT_POSITION;
		// reset clipping region of ticker
		SCT_TICKER_OBJECT.clip.right = SCT_RIGHT - SCT_POSITION;
		SCT_TICKER_OBJECT.clip.left = SCT_LEFT - SCT_POSITION;
	}
}
/* END - Ticker methods */

/* Ticker variable declaration */
/* customizable variables */
var SCT_SCALE_FACTOR;				// Scale factor for Netscape workaround
var SCT_LEFT			= 1040;		// left coordinate of ticker
var SCT_TOP			= 20;		// left coordinate of ticker
var SCT_WIDTH			= 0;		// width of ticker
var SCT_HEIGHT			= 0;		// height of ticker;
var SCT_SPEED			= 10;		// ticker speed factor
var SCT_CENTERED		= false;	// centered ticker ?
var SCT_MOUSE_EFFECT	= false;	// stop ticker on mouse over link ?
var SCT_CONTENT_DIR		= '';		// directory with files containing the headlines
var SCT_LINK_SUFFIX		= '" target="_blank';		// default suffix for links ?

/* buffer variables */
var SCT_TICKER_TEXT		= '';			// ticker text
var SCT_POSITION		= 0;			// position counter of ticker text
var SCT_TICKER_OBJECT	= null;			// ticker reference
var SCT_TICKER_INTERVAL	= null;			// interval handle for stopping ticker
var SCT_HIDDEN_WIDTH	= 0;			// complete width of ticker depending on text length
var SCT_BROWSER_POS		= 'relative';	// style positioning string for layer workaround

/* END - Ticker variable declaration */

/* Ticker main program */
if (typeof SCT_CUSTOMER == "undefined") {
	// define default scale factor
	var SCT_CUSTOMER = 'default';
}
if (typeof SCT_SCALE_FACTOR == "undefined") {
	// define default scale factor
	var SCT_SCALE_FACTOR = 1.3;
}
if (typeof SCT_AREAS == "undefined") {
	// define default scale factor
	var SCT_AREAS = new Array();
}

document.writeln('<link rel="stylesheet" type="text/css" href="style_sports.css">');

document.writeln('<SCRIPT SRC="config_sports.js" type="text/javascript"></SCRIPT>');

document.writeln('<SCRIPT SRC="ticker_text.js" type="text/javascript"></SCRIPT>');

// if Netscape Browser
if (DHTML_NS) {
	// Netscape layer workaround. Positioning has to be 'absolute'!
	// Otherwise it will not work properly.
	SCT_BROWSER_POS = 'absolute';
}

var SCT_TICKER_OBJECT_STRING	 = '';	// string which will be included for displaying the ticker
// if this browser supports DOM object model
if (DHTML_DOM) {
	// include an surrounding div
	SCT_TICKER_OBJECT_STRING	+= '<DIV ID="SCT_TICKER_PARENT" CLASS="SCT_TICKER_PARENT">';
} else {
	// include an anchor.
	// The ticker will be positioned using the coordinates of this anchor.
	SCT_TICKER_OBJECT_STRING	+= '<A NAME="SCT_TICKER_PARENT">&nbsp;</A>';
}
// Ticker Object: initially hidden DIV with no content so far
// Content will be added in function SCT_tickerInit().
SCT_TICKER_OBJECT_STRING	+= '<DIV ID="SCT_OBJ_TICKER_TEXT" ';
SCT_TICKER_OBJECT_STRING	+= 'STYLE="position:' + SCT_BROWSER_POS + ';overflow:hidden;visibility:hidden;"';
SCT_TICKER_OBJECT_STRING	+= '"></DIV>';

// if this browser supports DOM object model
if (DHTML_DOM) {
	// close the surrounding div
	SCT_TICKER_OBJECT_STRING	+= '</DIV>';
}

// include div which will contain the ticker
document.write(SCT_TICKER_OBJECT_STRING);

window.onload = SCT_tickerInit;
/* END - Ticker main program */

