if( typeof(_tnn) == "undefined")
	_tnn = {};

_tnn.Mozilla = false;
if( /Mozilla\/5\.0/.test(navigator.userAgent))
	_tnn.Mozilla = true;

_tnn.AddElement = function( ElemRelative, InsertMethod, ElemType, Attribs, Styles, InsertBefore ) {
	if( this.Mozilla ) {
		var NewElem = document.createElement( ElemType );
		for( var i in Attribs )	NewElem.setAttribute( i , Attribs[ i ] );
		for( var i in Styles )	NewElem.style[ i ] = Styles[ i ];
	} else {
		var ElemString	= "<" + ElemType;
		var StyleString	= "";
		for( var i in Attribs )	ElemString	= ElemString + " " + i + '="' + Attribs[ i ] + '"';
		for( var i in Styles )	StyleString	= StyleString + i + ":" + Styles[ i ] + ";";
		if( StyleString)
			ElemString = ElemString + ' style="' + StyleString + '"';
		ElemString = ElemString + ">";
		var NewElem = document.createElement( ElemString );
	}
	switch( InsertMethod ) {
		case "insertBefore":ElemRelative.insertBefore( NewElem, InsertBefore );	break;
		case "appendChild":	ElemRelative.appendChild( NewElem );				break;
	}
	return NewElem;
}

_tnn.HrefSafe = function( InString) {
	var HrefRegEx	= /[^A-Za-z_0-9]+/gi;
	var MyString = new String( InString);
	MyString = MyString.replace(" ", "_");
	return MyString.replace( HrefRegEx, "");
}

_tnn.CalculatePaging = function( Params) {
	var Vals = {
		"Limit"	:0,
		"Per"	:0,
		"ECount":0,
		"Cur"	:0
	};

	var Prev	= false;
	var First	= false;
	var Next	= false;
	var Last	= false;

	for( var v in Vals )	eval( "var " + v + "=" + parseInt(Vals[ v ]) + ";" );
	for( var v in Params )	eval( "var " + v + "=" + parseInt(Params[ v ]) + ";" );

	var Count = Math.ceil(ECount / Per);

	if( Cur >= Count)	var Cur = Count - 1;
	if( Cur < 0)		var Cur = 0;

	var Offset = Cur - Math.floor(Limit / 2);

	if( Offset < 0)		var Offset = 0;
	if( Limit > Count)	var Limit = Count;

	if( (Limit + Offset) > Count)
		var Offset = Count - Limit;

	var Pages = Array();
	for( var i = 0; i < Limit; i++)
		Pages[ i ] = i + Offset;

	var firstShow	= (Cur * Per);
	if( ECount > 0)
		firstShow++;

	if( ECount < Per) {
		var lastShow = ECount;
	} else {
		var lastShow = firstShow + Per - 1;
		if( lastShow > ECount)
			var lastShow = ECount;
	}

	if( Cur > 0) {
		var Prev = Cur - 1;
		if( Offset > 0)
			var First = 0;
	}
	if( Cur + 1 < Count ){
		var Next = Cur + 1;
		if( Limit + Offset < Count )
			var Last = Count - 1;
	}
	return {
		"pages"		: Pages,
		"count"		: Count,
		"prev"		: Prev,
		"next"		: Next,
		"cur"		: Cur,
		"first"		: First,
		"last"		: Last,
		"firstShow"	: firstShow,
		"lastShow"	: lastShow
	};
}

_tnn.DateParse = function( DateString) {
	var MyString	= new String( DateString);
	var DateSplit	= MyString.split(" ");
	var DaySplit	= DateSplit[0].split("-");
	var TimeSplit	= DateSplit[1].split(":");
	DaySplit[1]--;
	var DateObj		= new Date( DaySplit[0], DaySplit[1], DaySplit[2], TimeSplit[0], TimeSplit[1], TimeSplit[2] );
	return DateObj;
}

_tnn.DateSuffix = function( DayOfMonth) {
	switch( DayOfMonth) {
		case 1:
		case 21:
		case 31:	response.write("st");
		break;
		case 2:
		case 22:	response.write("nd");
		break;
		case 3:
		case 23:	response.write("rd");
		break;
		default:	response.write("th");
	}
}

_tnn.NumberPath = function( Depth, IDNum) {
	var IDNum = new String( IDNum);
	if( IDNum.length < Depth) {
		var pad = "";
		for( var n = IDNum.length; n < Depth; n++)
			pad = pad + "0";
		NumberDir = new String( pad + IDNum);
	} else {
		NumberDir = new String( IDNum);
	}
	var Dir = "";
	for( var n = NumberDir.length - 2; n > 0; n--) {
		var CurDir = NumberDir.substr( n - 1, 1);
		for( var i = NumberDir.length - n; i > 0; i--)
			CurDir = CurDir + "0";
		Dir = CurDir + "/" + Dir
	}
	Dir = Dir + IDNum;
	return  Dir;
}

_tnn.AccountIDPath				= function( IDNum) { return _tnn.NumberPath(6, IDNum); }
_tnn.BannerIDPath				= function( IDNum) { return _tnn.NumberPath(8, IDNum); }
_tnn.EventIDPath				= function( IDNum) { return _tnn.NumberPath(7, IDNum); }
_tnn.EventPhotoIDPath			= function( IDNum) { return _tnn.NumberPath(6, IDNum); }
_tnn.HighlightIDPath			= function( IDNum) { return _tnn.NumberPath(8, IDNum); }
_tnn.IconIDPath					= function( IDNum) { return _tnn.NumberPath(8, IDNum); }
_tnn.LinkExchangeIDPath			= function( IDNum) { return _tnn.NumberPath(5, IDNum); }
_tnn.NewsIDPath					= function( IDNum) { return _tnn.NumberPath(8, IDNum); }
_tnn.VenueIDPath				= function( IDNum) { return _tnn.NumberPath(8, IDNum); }
_tnn.WebsiteGalleryIDPath		= function( IDNum) { return _tnn.NumberPath(5, IDNum); }
_tnn.WebsiteGalleryGroupIDPath	= function( IDNum) { return _tnn.NumberPath(4, IDNum); }
