﻿// $Id: //depot/EveryScape/Stable/services/web/EveryScapePortal_Jalapeno/js/EveryScape/Utils.js#4 $
function EXISTS(v)
{
	return ((undefined !== v) && (null != v));
};

if (undefined === window.EveryScapePortal)
{
	EveryScapePortal = {};
}

EveryScapePortal.Utility = {

	/**
	 * Adds extra function to the chain of callbacks for onload event
	 */
	addLoadEvent: function(func) 
	{
		var oldonload = window.onload;
		if (typeof window.onload != 'function') {
			 window.onload = func;
		} else {
			window.onload = function() {
				if (oldonload) {
					oldonload();
				}
				func();
			}
		}
	}
};

/**/

﻿// $Id: //depot/EveryScape/Stable/services/web/EveryScapePortal_Jalapeno/js/EveryScape/Encoding.js#4 $
if (undefined === window.EveryScapePortal)
{
	EveryScapePortal = {};
}

EveryScapePortal.Encoding = (function()
{
	var _internal = function()
	{
	};

	var _htmlTranslation1 = new Array();
	_htmlTranslation1['&'] = "&amp;";
	_htmlTranslation1['<'] = "&lt;";
	_htmlTranslation1['>'] = "&gt;";
	_htmlTranslation1['\"'] = "&quot;";
	_htmlTranslation1['\''] = "&apos;";

	// Encode text so that it can be displayed in HTML (and is not
	// interpreted as HTML content).
	_internal.prototype.HtmlEncode = function(/*string*/text)
	{
		return _encode(text, _htmlTranslation1);
	}

	var _htmlTranslation2 = new Array();
	_htmlTranslation2['&'] = "&amp;";
	_htmlTranslation2['<'] = "&lt;";
	_htmlTranslation2['>'] = "&gt;";
	_htmlTranslation2['\"'] = "&quot;";
	_htmlTranslation2['\''] = "&apos;";
	_htmlTranslation2['\n'] = "<br/>";
	_htmlTranslation2['\r'] = "<br/>";

	_internal.prototype.HtmlEncodeWithNewlines = function(/*string*/text)
	{
		if ((undefined === text) || (null == text))
		{
			return "";
		}
		text = text.replace(/\r\n/g, "\n");
		return _encode(text, _htmlTranslation2);
	};

	var _htmlTranslation3 = new Array();
	_htmlTranslation3['&'] = "&amp;";
	_htmlTranslation3['<'] = "&lt;";
	_htmlTranslation3['>'] = "&gt;";
	_htmlTranslation3['\"'] = "&quot;";
	_htmlTranslation3['\''] = "&apos;";
	_htmlTranslation3['\n'] = "<br/>";
	_htmlTranslation3['\r'] = "<br/>";
	_htmlTranslation3[' '] = "&nbsp;";
	_htmlTranslation3['\t'] = "&nbsp;&nbsp;&nbsp;&nbsp;";

	_internal.prototype.HtmlEncodeWithNewlinesPreserveSpace = function(/*string*/text)
	{
		if ((undefined === text) || (null == text))
		{
			return "";
		}
		text = text.replace(/\r\n/g, "\n");
		return _encode(text, _htmlTranslation3);
	};

	var _encode = function(/*string*/text, /*array(char)=>string*/translation)
	{
		if ((undefined === text) || (null == text))
		{
			return "";
		}
		else
		{
			text = String(text);
		}
		var encodedText = "";
		var c;
		var t;
		for (i = 0; i < text.length; ++i)
		{
			c = text.charAt(i);
			t = translation[c];
			if (t !== undefined)
			{
				encodedText += t;
			}
			else
			{
				encodedText += c;
			}
		}
		return encodedText;
	};

	return new _internal();
})();


/**/

﻿// $Id: //depot/EveryScape/Stable/services/web/EveryScapePortal_Jalapeno/js/EveryScape/Text.js#2 $
if (undefined === window.EveryScapePortal)
{
	EveryScapePortal = {};
}

EveryScapePortal.Text = (function()
{
	var _internal = function()
	{
	};

	// Returns true/false based on whether 'c' is a single whitespace character.
	_internal.prototype.IsWhitespace = function(/*char*/c)
	{
		if ((undefined === c) || (null == c))
		{
			return false;
		}

		if (c < '\u00ff')
		{
			return (((c >= '\u0009') && (c <= '\u000D')) ||
				('\u0020' == c) || ('\u0085' == c) ||
				('\u00A0' == c));
		}
		else if (c < '\u2029')
		{
			return (('\u1680' == c) || ('\u180e' == c) ||
				((c >= '\u2000') && (c <= '\u200a')) ||
				('\u2028' == c));
		}
		else
		{
			return (('\u2029' == c) || ('\u202f' == c) || ('\u205f' == c) || ('\u3000' == c));
		}
	};

	// Returns 'text' with whitespace trimmed from the beginning of the string.
	_internal.prototype.TrimLeft = function(/*string*/text)
	{
		if ((undefined === text) || (null == text))
		{
			return "";
		}
		else
		{
			text = String(text);
		}
		while (text.length > 0)
		{
			var c = text.charAt(0);
			if (_internal.prototype.IsWhitespace(c))
			{
				text = text.substr(1);
			}
			else
			{
				return text;
			}
		}
		return text;
	};

	_internal.prototype.Stringify = function(/*any*/o)
	{
		if ((undefined === o) || (null == o))
		{
			return "";
		}
		else
		{
			return String(o);
		}
	};

  _internal.prototype.Shorten = function(text, limit)
  {
    if (text.length > limit)
    {
      text = text.substring(0,text.indexOf(' ', limit)) + " ... ";
      if (text.lastIndexOf("<a") > text.lastIndexOf("</a>"))
        text = text.substring(0,text.lastIndexOf("<a")) + " ... ";
    }
    return text;
  };  

	return new _internal();
})();


/**/

﻿// $Id: //depot/EveryScape/Stable/depot/Dev/Common/JavaScript/EveryScape/Analytics.js#1 $
// include EveryScape/EventLog.js
if (undefined === window.EveryScapePortal)
{
	EveryScapePortal = {};
}

EveryScapePortal.Analytics = (function()
{
	var _eventsTracked = new Array();
	var _isRecording = false;
	var _thirdPartyEventId = null;
	var _pageTracker = null;

	var HandleGAException = function(/*exception*/ex)
	{
		try
		{
			EveryScapePortal.EventLog.WriteEvent(EveryScapePortal.EventLog.Error, "Google tracking failed: " + ex);
		}
		catch (ex)
		{
		}
	};

	// Keep track of the events reported.
	// Returns the number of times this event has been reported on this page.
	var IncrementEventCount = function(/*string*/e)
	{
		if (undefined === _eventsTracked[e])
		{
			_eventsTracked[e] = 1;
		}
		else
		{
			_eventsTracked[e]++;
		}

		return _eventsTracked[e];
	};

	var _internal = function()
	{
	};

	// Track an event such as panning, clicking, etc, but only the first
	// time that event occurs on a page.
	// [e] - The name of the event.
	_internal.prototype.TrackEventFirstTimePerPage = function(/*string*/e)
	{
		if (1 == IncrementEventCount(e))
		{
			this.TrackEvent(e);
		}
	};

	// Track an event such as panning, clicking, etc.
	// [e] - The name of the event.
	_internal.prototype.TrackEvent = function(/*string*/e)
	{
		try
		{
			if (_isRecording)
			{
				_pageTracker._trackPageview(e);
			}
		}
		catch (ex)
		{
			HandleGAException(ex);
		}
	};

	// Track a pageview from the page itself.
	// [page] - The URL of the page being viewed or undefined for the current
	//          page.
	_internal.prototype.TrackPage = function(/*string*/page)
	{
		this.TrackEvent(page);
	};

	// Set the user/account ID used by third party analytics engines.
	_internal.prototype.SetAnalyticsId = function(/*string*/id, /*string*/domain)
	{
		if ((null == id) || (undefined === id))
		{
			throw "EveryScapePortal.Analytics.SetAnalyticsId() - Invalid analytics ID.";
		}
		
		// Can I get rid of this?
		_thirdPartyEventId = String(id);
		
		_pageTracker = _gat._getTracker(id);

		if ((null != domain) || (undefined !== domain))
		{
			_pageTracker._setDomainName(domain);
		}
	};

	_internal.prototype.ToggleOnOff = function(/*boolean*/isRecording)
	{
		if (isRecording)
		{
			_isRecording = true;
		}
		else
		{
			_isRecording = false;
		}
	};

	return new _internal();
})();

/**/


