if( typeof(_adlt) == "undefined")
	var _adlt = {};

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

window.onerror = function(_message, _url, _line) {
	var Val = "";
	Val += "&Msg="		+ escape(_message);
	Val += "&Line="		+ _line;
	Val += "&URL="		+ escape(_url);
	Val += "&QS="		+ escape(location.search);
	Val += "&Location="	+ escape(location.pathname);
	Val += "&Referer="	+ escape(document.location.href);
	Val += "&HTTPRef="	+ escape(document.referrer);
	Val += "&Browser="	+ escape(navigator.userAgent + ' : ' + navigator.appName + ' : ' + navigator.appVersion);

	if (window.XMLHttpRequest)		this.req = new XMLHttpRequest();
	else if (window.ActiveXObject)	this.req = new ActiveXObject("Microsoft.XMLHTTP");
	else							return;

	this.req.open("GET", "/proc/?IDX=JSErrorLog" + Val);
	this.req.setRequestHeader('content-type', 'text/plain');
	this.req.send("");
};

_adlt.AddEvent = function(obj, evType, fn){ 
	if( obj.addEventListener) {
		obj.addEventListener(evType, fn, false);
		return true;
	} else if( obj.attachEvent) {
		return obj.attachEvent("on"+evType, fn);
	} else {
		return false;
	}
}

_adlt.SetCookie = function( cookieName, cookieValue, nDays ) {
	var	today	= new Date();
	var	expire	= new Date();
	var diedate	= '';
//	if( nDays == null || nDays == 0)
	if( nDays > 0) {
		expire.setTime( today.getTime() + (3600000 * 24 * nDays) );
		diedate = ";expires=" + expire.toGMTString()
	}
	document.cookie = cookieName + "=" + escape(cookieValue) + diedate;
}

_adlt.GetCookie = function( c_name) {
	if( document.cookie.length > 0) {
		var c_start = document.cookie.indexOf(c_name + "=");
		var c_end	= 0;
		if( c_start != -1) {
			c_start	= c_start + c_name.length + 1;
			c_end	= document.cookie.indexOf(";", c_start);
			if( c_end == -1)
				c_end = document.cookie.length;
			return unescape( document.cookie.substring( c_start, c_end ) );
		}
	}
	return ""
}

_adlt.ToggleAttribute = function( obj, DoEnable, TagName, Replacement) {
	if( DoEnable) {
		var TagValue = obj.getAttribute("back_" + TagName);
		if( TagValue != null ) {
			obj.setAttribute( TagName, TagValue);
			obj.removeAttribute("back_" + TagName);
		}
	} else {
		var Backup = obj.getAttribute( "back_" + TagName );
		if( Backup) {
//			alert( Backup);
			return;
		}
		var TagValue = obj.getAttribute( TagName );
		if( TagValue != null ) {
			obj.setAttribute("back_" + TagName, TagValue);
		}
		obj.setAttribute(TagName, '');
		obj.removeAttribute( TagName );
		if( Replacement != null) {
			obj.setAttribute( TagName, Replacement );
		}
	}
}

_adlt.AddElement = function( ElemRelative, InsertMethod, ElemType, Attribs, Styles ) {
	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, null );	break;
		case "appendChild":	ElemRelative.appendChild( NewElem );		break;
	}
	return NewElem;
}

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

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

	var Prev	= false;
	var First	= false;
	var Next	= 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);
	var Last	= Count - 1;

	if( Last < 0)		Last = 0;
	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;

	return {
		"pages"		: Pages,
		"count"		: Count,
		"prev"		: Prev,
		"next"		: Next,
		"cur"		: Cur,
		"first"		: First,
		"last"		: Last,
		"firstShow"	: firstShow,
		"lastShow"	: lastShow
	};
}

_adlt.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;
}

_adlt.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");
	}
}

_adlt.NumberPath = function() {
	var Depth = arguments[0];
	var IDNum = new String( arguments[1] );
	if( IDNum.length < Depth) {
		var pad = "";
		for( var n = IDNum.length; n < Depth; n++)
			pad = pad + "0";
		var NumberDir = new String( pad + IDNum);
	} else {
		var 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;
}

_adlt.PicDirIDPath	= function( IDNum) { return _adlt.NumberPath(6, IDNum); }
_adlt.MovieIDPath	= function( IDNum) { return _adlt.NumberPath(6, IDNum); }
_adlt.TalentIDPath	= function( IDNum) { return _adlt.NumberPath(6, IDNum); }

_adlt.WindowSize = function() {
	var W = 0, H = 0;
	if( typeof( window.innerWidth ) == 'number' ) {
		//Non-IE
		W	= window.innerWidth;
		H	= window.innerHeight;
	} else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
		//IE 6+ in 'standards compliant mode'
		W	= document.documentElement.clientWidth;
		H	= document.documentElement.clientHeight;
	} else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
		//IE 4 compatible
		W	= document.body.clientWidth;
		H	= document.body.clientHeight;
	}
	return {
		Width	: W,
		Height	: H
	};
}

_adlt.WindowScroll = function() {
	var X = 0, Y = 0;
	if( typeof( window.pageYOffset ) == 'number' ) {
		//Netscape compliant
		Y = window.pageYOffset;
		X = window.pageXOffset;
	} else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
		//DOM compliant
		Y = document.body.scrollTop;
		X = document.body.scrollLeft;
	} else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
		//IE6 standards compliant mode
		Y = document.documentElement.scrollTop;
		X = document.documentElement.scrollLeft;
	}
	return {
		X:X,
		Y:Y
	};
}

/* start floating code */

_adlt.ShowFloat = function( event, FloatObj, BlurbContent) {
	if( BlurbContent)
		FloatObj.innerHTML = BlurbContent;
	if( event)
		this.MoveFloat(event, FloatObj);
	FloatObj.style.visibility = 'visible';
}

_adlt.HideFloat = function( FloatObj) {
	FloatObj.style.visibility = 'hidden';
}

_adlt.FindObjPosX = function(obj) {
	var curleft = 0;
	if(obj.offsetParent)
		while(1) {
			curleft += obj.offsetLeft;
			if(!obj.offsetParent)
				break;
			obj = obj.offsetParent;
		} else if(obj.x)
			curleft += obj.x;
	return curleft;
}

_adlt.FindObjPosY = function(obj) {
	var curtop = 0;
	if(obj.offsetParent)
		while(1) {
			curtop += obj.offsetTop;
			if(!obj.offsetParent)
				break;
			obj = obj.offsetParent;
		} else if(obj.y)
			curtop += obj.y;
	return curtop;
}

function getMouseXY(e) {
	if (IE) { // grab the x-y pos.s if browser is IE
		var X = event.clientX + document.body.scrollLeft;
		var Y = event.clientY + document.body.scrollTop;
	} else {  // grab the x-y pos.s if browser is NS
		var X = e.pageX;
		var Y = e.pageY;
	}
	// catch possible negative values in NS4
	if (X < 0) var X = 0;
	if (Y < 0) var Y = 0;
	// show the position values in the form named Show
	// in the text fields named MouseX and MouseY
	document.Show.MouseX.value = X;
	document.Show.MouseY.value = Y;
	return true;
}

_adlt.MoveFloat = function(event, FloatObj, XOffset, YOffset) {
	var TMP = _adlt.WindowSize();
	var DocHeight	= parseInt( TMP['Height'] ) - 20;
	var DocWidth	= parseInt( TMP['Width'] ) - 20;

	var TMP = _adlt.WindowScroll();
	var ScrollX	= parseInt( TMP['X'] );
	var ScrollY	= parseInt( TMP['Y'] );

	if( window.event && window.event.clientX) {
		var MouseX	= parseInt(window.event.clientX);
		var MouseY	= parseInt(window.event.clientY);
	} else {
		var MouseX	= parseInt(event.clientX);
		var MouseY	= parseInt(event.clientY);
	}

	if( XOffset != undefined) MouseX += XOffset;
	if( YOffset != undefined) MouseY += YOffset;

	var LeftGoal = MouseX + ScrollX + 5;
	if( (LeftGoal + FloatObj.offsetWidth) > DocWidth )
		LeftGoal = DocWidth - parseInt( FloatObj.offsetWidth );

	var TopGoal = MouseY + ScrollY + 5;

	FloatObj.style.top	= TopGoal + 'px';
	FloatObj.style.left	= LeftGoal + 'px';
}

_adlt.PopulateSelect = function( SelectObj, PopulateArray ) {
	SelectObj.length = 0;
	for( var i = 0; i < PopulateArray.length; i++ ) {
		var CurVal = PopulateArray[ i ];
		var tmp = document.createElement('option');
		tmp.text	= CurVal['text'];
		tmp.value	= CurVal['value'];
		try		{ SelectObj.add(tmp, null);	}	// standards compliant; doesn't work in IE
		catch(E){ SelectObj.add(tmp);		}	// IE only
	}
}

/* end floating code */

_adlt.Searching = {}
_adlt.Searching.PopulateSelect = function( SearchVal, SelectObj, SearchArray, SearchMinimum ) {
	if( SearchMinimum == null) {
		SearchMinimum = 3;
	}
	if( SearchVal.length < SearchMinimum) {
		var tmp = '^' + SearchVal.toLowerCase() + '';
		var SearchRegex = RegExp( tmp );
	} else {
		var SearchRegex = RegExp( SearchVal.toLowerCase() );
	}
	var SelectList = new Array();
	for( var i in SearchArray) {
		var CurTal = new String( SearchArray[ i ] );
		if( CurTal.toLowerCase().search( SearchRegex) != -1 ) {
			SelectList.push({
				text	: CurTal,
				value	: i
			});
		}
	}
	_adlt.PopulateSelect( SelectObj, SelectList );
}


_adlt.RemoteSelectOption = function( radioObj, RemoveValue) {
	for( var i = radioObj.options.length - 1; i >= 0; i--) {
		if( radioObj.options[i].value == RemoveValue)
			radioObj.remove(i);
	}
}


_adlt.SetSelectValue = function( SelectObj, NewValue) {
	for( var i=0; i < SelectObj.length; i++) {
		if( SelectObj[i].value == NewValue) {
			SelectObj[i].selected = true;
			break;
		}
	}
}

_adlt.GetSelectValue = function( SelectObj) {
	if( !SelectObj)
		return '';
	var SelectLength = SelectObj.length;
	if( SelectLength == undefined)
		return SelectObj.checked ? SelectObj.value : '';
	for( var i = 0; i < SelectLength; i++)
		if( SelectObj[i].selected)
			return SelectObj[i].value;
	return '';
}

_adlt.GetSelectText = function( SelectObj) {
	if( !SelectObj)
		return '';
	var SelectLength = SelectObj.length;
	if( SelectLength == undefined)
		return SelectObj.checked ? SelectObj.innerHTML : '';
	for( var i = 0; i < SelectLength; i++)
		if( SelectObj[i].selected)
			return SelectObj[i].innerHTML;
	return '';
}

_adlt.GetRadioValue = function( radioObj) {
	if( !radioObj)
		return '';
	var radioLength = radioObj.length;
	if( radioLength == undefined)
		if( radioObj.checked)
			return radioObj.value;
		else
			return '';
	for( var i = 0; i < radioLength; i++)
		if( radioObj[i].checked)
			return radioObj[i].value;
	return '';
}

_adlt.SetRadioValue = function( radioObj, newValue) {
	if( !radioObj)
		return;
	var radioLength = radioObj.length;
	if( radioLength == undefined) {
		radioObj.checked = (radioObj.value == newValue.toString());
		return;
	}
	for( var i = 0; i < radioLength; i++) {
		radioObj[i].checked = false;
		if( radioObj[i].value == newValue.toString())
			radioObj[i].checked = true;
	}
}

_adlt.Table = {};
_adlt.Table.Row = {};

_adlt.Table.Row.Add = function( TableID, Cells, RowNum, RowAttribs ) {
	var tbl = document.getElementById( TableID );
//	var tbl = tbl.getElementsByTagName("TBODY");
	if( RowNum == null )
		RowNum = tbl.getElementsByTagName("TR").length;
	var newRow = tbl.insertRow( RowNum );
	newRow.className = (RowNum % 2) ? 'Od' : 'Ev';
	if( RowAttribs )
		for( var i in RowAttribs )
			newRow.setAttribute( i, RowAttribs[ i ] );
	for( var i in Cells ) {
		var newCell = newRow.insertCell( i );
		newCell.innerHTML = Cells[ i ];
	}
}

_adlt.Querystring = function(qs) {
	this.params = new Object();
	this.get = function(key, default_) {
		if( default_ == null)
			default_ = null;
		var value = this.params[key];
		if (value == null)
			value = default_;
		return value;
	};

	if( qs == null)
		qs = location.search.substring(1,location.search.length);

	if( qs.length == 0)
		return;

	qs = qs.replace(/\+/g, ' ');
	var args = qs.split('&');

	for (var i=0; i < args.length; i++) {
		var value;
		var pair = args[i].split('=');
		var name = unescape( pair[0] );

		if (pair.length == 2)
			value = unescape( pair[1] );
		else
			value = name;

		this.params[name] = value;
	}
}