﻿/*****************************************************
 *****************************************************
 * vxUtils.js
 * 
 * Declares various utility functions used by KIT
 * VX Components.
 *****************************************************
 *****************************************************/
 
 
 
/*************************************************************
 *
 * getCookie(name:String)
 *
 * Returns a cookie value for given name.
 *
 *************************************************************/
 //Cookies set in Tribeca
//UID:String; 		A5DF7DB80BD8DA4AF8FFC9E248015E92
//username:String	jessef5
var cookieObj;
function getCookie(name)
{
	if(cookieObj == undefined)
	{
		var cookies = document.cookie;
		var aCookies = cookies.split(";");
		cookieObj = {};
		for(var i = 0; i < aCookies.length; i++)
		{
			var aCookie = aCookies[i].split("=");
			var cookieName = aCookie[0];
			var cookieValue = aCookie[1];
			if(i > 0)
			{
				cookieName = cookieName.substring(1, cookieName.length);
			}
			cookieObj[cookieName] = cookieValue;
			
		}
	}
	if(cookieObj[name])
	{
		return cookieObj[name];
	}
	else
	{
		return false;
	}
}

/*************************************************************
 *
 * getQueryStringParameter()
 *
 * Returns an object of name/value pairs of query string params
 *
 *************************************************************/
var queryStringObj; //Declared out here so it is persisted.
function getQueryStringParameters()
{
	if(queryStringObj == undefined)
	{
		var queryString = window.location.search;
		if(!queryString) return "";
		
		queryString = decodeURI(queryString);
		queryString = queryString.substring(1, queryString.length);
		
		var aPairs = queryString.split("&");
		queryStringObj = {};
		
		for(var i = 0; i < aPairs.length; i++)
		{
			var aParam = aPairs[i].split("=");
			var paramName = aParam[0];
			var paramValue = aParam[1];
			debug("getQueryStringParam: " + paramName + ": " + paramValue);
			queryStringObj[paramName] = paramValue;
		}
	}
	return queryStringObj;
}

/*************************************************************
 *
 * getQueryStringParam(name:String)
 *
 * Returns the value of query string parameter 'name'.
 *
 *************************************************************/
function getQueryStringParam(name)
{
	if(getQueryStringParameters()[name])
	{
		return getQueryStringParameters()[name];
	}
	else
	{
		return false;
	}
}

/*************************************************************
 *
 * scrollWindow(x:Number, y:Number)
 *
 * Moves the current page to the specified x,y coordinates.
 *
 *************************************************************/
function scrollWindow(x, y)
{
	window.scrollTo(x, y);
}


/*************************************************************
 *
 * debug(msg:String)
 *
 * Outputs 'msg' to console and/or the output window (if it exists).
 *
 *************************************************************/
//Requires: <textarea id="vxOutput" rows="15" cols="70"></textarea> to be defined in the page
function debug(msg)
{
	try
	{
		console.log(msg);
	}
	catch(error)
	{
		//do nothing?
	}
	var output = getObjectByName('DebugOutput');
	if (output)
	{
		output.value += "\n"+msg;
		output.scrollTop = output.scrollHeight;
	}	
}