/*
init script - evaluates params from the param string and includes feed js and ticker
*/
/*get ticker parameters*/
var pageScripts = document.getElementsByTagName('script');
var paramString = '';
var queryParams;
var parentNode;
var path;
for (var i=0; i<pageScripts.length; i++)
{
	if (pageScripts[i].src && (queryParams = pageScripts[i].src.match(/tickerinit\.js(\?.*)$/)))
	{
		paramString = queryParams[1];
		path = pageScripts[i].src.replace(/tickerinit\.js(\?.*)?$/,'');
		parentNode = pageScripts[i].parentNode;
		break;
	}
}

var showNewsTitle 	= 	getQueryParam(paramString, 'showNewsTitle', true);
var showSourceName 	= 	getQueryParam(paramString, 'showSourceName', true);
var showNewsDate 	=	getQueryParam(paramString, 'showNewsDate', true);
// Size and position of the news ticker
var tickerWidth 	=	getQueryParam(paramString, 'tickerWidth', 300, 'int');
var tickerHeight 	=	getQueryParam(paramString, 'tickerHeight', 300, 'int');
//var tickerHeight 	=	300;

var tickerLeft 		= 	getQueryParam(paramString, 'tickerLeft', 20, 'int');
var tickerTop 		= 	getQueryParam(paramString, 'tickerTop', 20, 'int');

var borderColor		=   getQueryParam(paramString, 'borderColor', '636363');
var vertPadding		= 	getQueryParam(paramString, 'vertPadding', 0, 'int');
var horizPadding	= 	getQueryParam(paramString, 'horizPadding', 0, 'int');

var titleSize		=	getQueryParam(paramString, 'titleSize', 13, 'int');
var dateSize		=	getQueryParam(paramString, 'dateSize', 11, 'int');
var sourceSize		=	getQueryParam(paramString, 'sourceSize', 11, 'int');

var titleColor		=	getQueryParam(paramString, 'titleColor', '448E21');
var dateColor		=	getQueryParam(paramString, 'dateColor', '636363');
var sourceColor		=	getQueryParam(paramString, 'sourceColor', '448E21');

// Speed of the ticker
var pauseLength 	= 	getQueryParam(paramString, 'pauseLength', 5000, 'int');// Milliseconds
var tickerStepSize 	= 	getQueryParam(paramString, 'tickerStepSize', 2, 'int');// Number of pixels
var stepTimeOut 	= 	getQueryParam(paramString, 'stepTimeOut', 20, 'int');// - per milliseconds
// Number of items displayed at once
var visibleItems 	= 	getQueryParam(paramString, 'visibleItems', 3, 'int');
// Other settings
var backGroundColor = 	getQueryParam(paramString, 'backGroundColor', 'E9E9E9');// Background color of the ticker
var showURL 		= 	getQueryParam(paramString, 'showURL', true);// Show URLs of links in status bar

var exportFile		=	getQueryParam(paramString, 'exportFile');// export file name
var stopMouse		=	getQueryParam(paramString, 'stopMouse', false);
var staticBox		=	getQueryParam(paramString, 'staticBox', false);
var showBorder		=	getQueryParam(paramString, 'showBorder', false);


/*include feed data*/
if (exportFile.length>2 && exportFile.substr(exportFile.length-3, 3)!='.js')
{
	exportFile +='.js';
}
document.write('<script type="text/javascript" src="http://www.newsknowledge.com/export/'+exportFile+'"></script>');

/*include ticker script*/
document.write('<script type="text/javascript" src="'+path+'tickerscript.js"></script>');

/*helper functions*/


/*parse URL routine*/
function queryString(q)
{
	if(q.length > 1)	
	{
		if (q.substr(0, 1)=='?')
		{
			this.q = q.substring(1, q.length);
		}
		else
		{
			this.q = q;
		}
	}
	else
	{
		this.q = null;
	}
	this.keyValuePairs = new Array();
	if(q)
	{
		for(var i=0; i < this.q.split("&").length; i++)
		{
			this.keyValuePairs[i] = this.q.split("&")[i];
		}
	}
	
	this.getKeyValuePairs = function() 
	{
		return this.keyValuePairs;
	}
	
	this.getValue = function(s, def)
	{
		if (def == undefined) def = false;		
		for(var j=0; j < this.keyValuePairs.length; j++)
		{
			if(decodeURIComponent(this.keyValuePairs[j].split("=")[0]) == s)
			{				 
				var res = decodeURIComponent(this.keyValuePairs[j].split("=")[1]);
				if (res == 'false') res = false;
				if (res == 'true') res = true;
				return res;
			}
		}
		return def;
	}
	
	this.getParameters = function()
	{
		var a = new Array(this.getLength());
		for(var j=0; j < this.keyValuePairs.length; j++)
		{
			a[j] = this.keyValuePairs[j].split("=")[0];
		}
		return a;
	}
	
	this.getLength = function() 
	{
		return this.keyValuePairs.length;
	}
}

/*
gets query in a form like ?key1=val1&key2=val2.. with or without leading '?' 
key is a key which value we want to retrieve and 
def is the default value to be returned in a case key not found in query string
*/
function getQueryParam(query, key, def, type)
{
	var page = new queryString(query);
	var res = page.getValue(key, def);
	if (type=='int') res = parseInt(res);	 
	return res;
}
