// Ticker

// XML resource stored in config
var tickerSourceXML = 
[ com.cisco.dms.vp.ui.videoPortalConfigurationMetadata.configuration.paths.xmlPath , com.cisco.dms.vp.ui.videoPortalConfigurationMetadata.configuration.resources.publishedUserInterfaceMetadata ].join("/");


var tickerDOM = "tickerLayer";
var tickerHeight = 16;
var speed=130;

var startPosition=0;	
var tickerMessage;



function readTickerXML(url) {

	var isNS = (navigator.appName == "Netscape")
	var isIE = (navigator.appName.indexOf("Internet Explorer")>0)

	if (isIE) {
      var xmlDocument = new ActiveXObject('Microsoft.XMLDOM');         
      xmlDocument.async = false;

      try{ 
         var loadResult = xmlDocument.load(url);
			formatXML(xmlDocument);
			
      } catch (e) {
      	tickerMessage = "";         	
      }

   } else if (isNS) {

		try{
			var myXMLHTTPRequest = new XMLHttpRequest();
			myXMLHTTPRequest.open("GET", url, false);  				
			myXMLHTTPRequest.send(null);  				
			var xmlDoc = myXMLHTTPRequest.responseXML;  				
			formatXML(xmlDoc);
			
		} catch(e) {
			tickerMessage = "";
		}
   }
}

// get ticker message from XML
function formatXML(xmlDocument) {
   var rootNode = xmlDocument.documentElement;
   var elements = xmlDocument.getElementsByTagName('Ticker');     
   tickerMessage = elements.item(0).firstChild.nodeValue;
}

// reates an HTML marquee. Height, Width, ScrollDelay and ScrollAmount are adjustable.

	   
function writeMarquee(awidth, aheight, adelay, aamount ) {	
	var s="";
	s += "<div id='" + tickerDOM +"' style='position:absolute;bottom:10px;width:720px;'>";
	s += "<marquee class='ticker' loop='infinite' id='tickerMarquee' width='" + awidth + "' height='" + aheight + "' scrolldelay='" + adelay + "' scrollamount='" + aamount + "'><span unselectable='on'>" + tickerMessage + "</span></marquee>";
	s += "</div>";
	
	document.write(s);

}

// Creates specific ticker HTML

function writeTicker() {

	readTickerXML( tickerSourceXML );
	
	//if (tickerMessage != null) {
		// changeWindowHeight();
		// ticker tag
		writeMarquee( getRegionTickerWidth(), tickerHeight, 1, 2);

			/* MOZ
			writeFieldTicker( getRegionTickerWidth(), tickerHeight);
			initTextScroller();
			updateTextScroller();
			*/

	//}
}	


function initTextScroller() {

	// clean newlines
	tickerMessage = tickerMessage.replace ( new RegExp("\\s+", "g"), " " );

	var emptyString = ""; for (i=0; i < 250; i++) { emptyString += " "; }

	tickerMessage = emptyString + tickerMessage;

	var tempLoc=( getRegionScrollableWidth() * 3 / tickerMessage.length )+1;	
	if (tempLoc<1) {tempLoc=1}

	for(var i=0;i<=tempLoc;i++)
	{
		tickerMessage += tickerMessage;		
	}

}

// width of scrollable region
function getRegionScrollableWidth() {
	return ( isIE )  ? "100%" : com.cisco.dms.vp.ui.videoPortalConfigurationMetadata.interface.dimension.template.width;
	}

function getRegionTickerWidth() {
	return ( isIE )  ? "100%" : com.cisco.dms.vp.ui.videoPortalConfigurationMetadata.interface.dimension.template.width;
	}

// Controls the scrolling action of the input textfield ver of the ticker.. Moz only

function updateTextScroller() {

	document.forms["mainForm"].mainTextScroller.value = tickerMessage.substring( startPosition, startPosition + getRegionScrollableWidth() );
	startPosition++;

	// reset
	if(startPosition > getRegionScrollableWidth() ) {
	startPosition = 0;
	}

	setTimeout("updateTextScroller()",speed );
}

// Moz ver
function writeFieldTicker(awidth, aheight){	

	var s = "";

	s += "<div id='" + tickerDOM + "'>";
	s += '<form name="mainForm">' ;
	s += '<center>';
	s += '<input class="ticker" onmousedown="return false" type="text" name="mainTextScroller" value="">';
	s += '</center>';
	s += '</form>';
	s += '</div>';

	document.write ( s);
}

function turnOnTicker(){ toggleTicker( true ); }
function turnOffTicker(){ toggleTicker( false ); }


function toggleTicker( state ) {
var v = state ? "visible" : "hidden";
var d = state ? "block" : "none";
var t;

	if (tickerMessage != "") {

		if(document.all){
			t = document.all.item( tickerDOM );
		} else{
		t = document.getElementById( tickerDOM );
		// to force refresh
		t.style.display = d;
		}


		if ( t ) {
			// force refresh
			t.style.visibility = v;
		}

	}

}
/*
function conv(utf8) {
	alert(utf8);
	var r = '';
	for (var i=0; i < utf8.length; i++) {
		if (utf8.charCodeAt(i) >160) {
			alert(utf8.charCodeAt(i));
			r += "&#"+utf8.charCodeAt(i);
			
		}
		else r += utf8.charAt(i);
		
	}
	return r;
}
*/
