
	
		function get_tkr_array() {
			return tkr_array;
		}


		var gu_tkr_linked = false, gu_tkr_unlinked, gu_tkr, gu_position, tkr_buttons;
		var tkrtape = false, tkrtarget;
		var tkr_pos = 0, tkr_item = 0;
		var tkr_paused = false;
		var tkr_tid = false;
		var tkr_pausebutton;
		tkr_target_window = "_top";

		function tick() {
			if (gu_tkr_linked) { // only run if we have found the container item

				clearTkrTid();

				if (tkr_pos == 0) { // if we're starting a new news item...

					if (tkr_item == 0) { // ...and we're at the beginning, and there's a new array pending...
						var tkr = get_tkr_array();
						if (tkr) {
							tkr_array = tkr.concat();
						}
					}

					tkrtape = tkr_prefix + unescape(tkr_array[tkr_item]) + tkr_suffix;
					tkrtarget = tkr_array[tkr_item + 1];
					

					if (tkrtarget) {
						if (tkrtarget.indexOf('WebX') == -1) {
							if (tkrtarget.indexOf('?') > -1) {
								tkrtarget += '';
							} else {
								tkrtarget += '';
							}
						}
						gu_tkr_linked.href = tkrtarget;
						gu_tkr_linked.target = tkr_target_window;
						gu_tkr = gu_tkr_linked;
					} else {
						gu_tkr = gu_tkr_unlinked;
					}
					gu_tkr_unlinked.innerHTML = '';
					gu_tkr_linked.innerHTML = '';
				}
				
				// Handle HTML elements embedded in the trail text
				if (tkrtape.charAt(tkr_pos - 1) == '&') {
					while (tkr_pos <= tkrtape.length && tkrtape.charAt(tkr_pos++) != ';') { /* do nothing */ }
				}

				var overlapping = tkr_pos > 0 && (parseInt(gu_position.offsetTop) > parseInt(tkr_buttons.offsetTop) - 5 && parseInt(gu_position.offsetLeft) > parseInt(tkr_buttons.offsetLeft) - 30);
				if (overlapping) {
					gu_tkr.innerHTML = tkrtape.substring(0,tkr_pos) + '...';
				} else {
					gu_tkr.innerHTML = tkrtape.substring(0,tkr_pos);
				}
				if (tkr_pos > tkrtape.length || overlapping) {
					tkr_pos = 0;
					tkr_item = (tkr_item + 2) % tkr_array.length;
					if (!tkr_paused) tkr_tid = window.setTimeout("tick();",1000);
				} else {
					tkr_pos += 1;
					if (!tkr_paused) tkr_tid = window.setTimeout("tick();",5);
				}
			}
		}

		function clearTkrTid() {
			if (tkr_tid) window.clearTimeout(tkr_tid);
			tkr_tid = false;
		}

		function prevStory(next) {
			if (tkr_pos == 0) {
				// If tkr_pos == 0 it means we've fully displayed one link
				// and are now ready to show the next. In this case, we
				// need to go back one link, i.e. to the link currently displayed,
				// before going back again.
				tkr_item = (tkr_item == 0 ? tkr_array.length : tkr_item) - 2;
			} else {
				tkr_pos = 0;
			}
			tkr_item = (tkr_item == 0 ? tkr_array.length : tkr_item) - 2;

			if (tkr_paused) {
				pauseTicker();
			} else {
				clearTkrTid();
				tick();
			}

			return false;
		}

		function nextStory() {
			if (tkr_pos != 0) {
				tkr_pos = 0;
				tkr_item = (tkr_item + 2) % tkr_array.length;
			}

			if (tkr_paused) {
				pauseTicker();
			} else {
				clearTkrTid();
				tick();
			}

			return false;
		}

		function pauseTicker() {

			clearTkrTid();

			if (tkr_paused) {
				tkr_paused = false;
				tkr_pausebutton.className = 'tkr_button';
				nextStory();
			} else {
				tkr_paused = true;
				tkr_pausebutton.className = 'tkr_grey';
				while (tkr_pos != 0) {
					tick();
				}
			}

			return false;
		}

		function init_tape_ticker() {


			tkr_buttons = document.getElementById('gu_tkr_buttons');

			// pre-cache images
			tkr_pausebutton = document.getElementById('pausebutton');

			gu_tkr_linked = document.getElementById("gu_tkr_linked");
			gu_tkr_unlinked = document.getElementById("gu_tkr_unlinked");
			gu_position = document.getElementById("gu_tkr_positioner");

			tick();
		}
