// verify to see if we have defined the global namespace.
if (typeof TM === 'undefined') {
  TM = {};
}

TM.Sso = function(){
	var ssoData;
	return {
	
		/**reads sso data from cookie*/
		parseSsoData : function(){
			ssoData = new Array();
			var tmssoCookie = getCookie("tmsso");
			if (tmssoCookie){
				var lines = tmssoCookie.split(":");
				for (var i = 0; i < lines.length; i++){
					var parts = lines[i].split("=");
					if (parts.length == 2 ){
						ssoData[parts[0]] = parts[1];				
					}
				}
			}
		},
		
		getParameter : function(){
			var key = arguments[0];
			var param = null;
			if (!ssoData){
				this.parseSsoData();
			}
			if (ssoData){
				param = ssoData[key];
			}
			return param;
		},
			
		isLoggedIn : function(){
			var userId = this.getParameter("userId");
			//var expiration = this.getParameter(""); currently has no ticket expiration value in the cookie, should be added to improve login validation.
			return (userId !== undefined);
		}
		
	};//return
}();


function getCookie(){
	var cookieName = arguments[0];
	var cookieValue = null;
	if (document.cookie && document.cookie != '') {
		var cookies = document.cookie.split(';');
		for (var i = 0; i < cookies.length; i++) {
			var cookie = jQuery.trim(cookies[i]);			
			// Does this cookie string begin with the name we want?
			if (cookie.substring(0, cookieName.length + 1) == (cookieName + '=')) {
				cookieValue = unescape(cookie.substring(cookieName.length + 1));
				break;
			}
		}
	}
	return cookieValue;
}