function amsNews () {

	this.newsParams = 0;
	this.newsLimitStart = 0;
	this.newsLimitCount = 10;
	this.newsStartDate;
	this.newsEndDate;
	this.newsDaysOld;
	this.newsObject = "newsData";
	this.newsID = 0;
	this.newsClassID = 0;
	this.newsHideSearch = 0;
	this.newsHideData = 0;
	this.newsExpand = 0;
	this.newsType = '';	
	this.newsDateSort = 0; // START_DESC (default), START_ASC, END_DESC, END_ASC, UPDATED_DESC, UPDATED_ASC

	// PUBLIC Functions

	this.newsLoad = function () {
		newsGetParams(this);
		if (! this.newsHideSearch) newsGetMenu(this);
		if (this.newsHideData == 0 || this.newsParams == 1) newsGetData(this);
		if (! this.newsHideSearch) {
			// Show full search menu
			this.newsAdvanced();
			// Show the clear category link
			if (this.newsClassID) document.getElementById('newsClearSearch').style.display = "block";
		}

		if (! this.newsHideSearch && this.newsType) {
			document.getElementById('newsType_'+this.newsType).selected=true;
		}
	}

	this.newsItemClick = function (newsID) {
		var item = document.getElementById('newsItem'+newsID);
		if (item) {
		    item.style.display=(item.style.display == 'none') ? 'block' : 'none';
		}
	}

	this.newsExpandCollapse = function () {

		var display = 'block';
		var expand = document.getElementById(this.newsObject+'-newsExpand');
		var collapse = document.getElementById(this.newsObject+'-newsCollapse');

		if (expand.style.display == 'none') {
			expand.style.display = 'block';
			collapse.style.display = 'none';
			display = 'none';
		}
		else {
			expand.style.display = 'none';
			collapse.style.display = 'block';
		}

		var divs = document.getElementsByTagName('div');
		for (var i=0; i<divs.length; i++) {
		    if (divs.item(i).getAttribute('name') == this.newsObject+'-newsItem') {
		        divs.item(i).style.display = display;
		    }
		}
	}

	this.newsBreak = function (newsID) {
		var newsEl = document.getElementById('newsBreakSplit'+newsID);
		replaceElement('newsBreak'+newsID, newsEl.innerHTML);
	}

	this.newsMenu = function (newsSelect) {
		this.newsClassID = newsSelect.value;
		if (newsSelect.value > 0)
			document.getElementById('newsClearSearch').style.display = "block";
	}

	this.newsSearch = function () {
		this.newsLimitStart = 0;
		this.newsLimitCount = 20;
		this.newsID = 0;
		newsGetData(this);
	}

	this.newsGetNext = function () {
		this.newsLimitStart += this.newsLimitCount;
		newsGetData(this);
	}

	this.newsGetPrevious = function () {
		this.newsLimitStart -= this.newsLimitCount;
		if (this.newsLimitStart < 0) this.newsLimitStart = 0;
		newsGetData(this);
	}

	this.newsMenuReset = function () {
		this.newsClassID = 0;
		document.getElementById('newsSelect').options[0].selected = "true";
		document.getElementById('newsClearSearch').style.display = "none";	
		replaceElement(this.newsObject, "");
	}

	this.newsAdvanced = function () {
		document.getElementById('newsAdvancedLink').style.display="none";
		document.getElementById('newsTypeTR').style.display="table-row";
		document.getElementById('newsCategoryTR').style.display="table-row";
		document.getElementById('newsDateTR').style.display="table-row";
		document.getElementById('newsSortTR').style.display="table-row";
	}

	this.newsTypeChange = function () {
		var type = document.getElementById('newsType');
		if (type) { 
			this.newsType = type.value;
			newsGetMenu(this);
		}
	}

	// PRIVATE FUNCTIONS

	function newsGetData (obj) {
		var searchDataEl = document.getElementById('newsSearchBox');
		var daysOldEl = document.getElementById('newsDaysOld');
		var sortEl = document.getElementById('newsDateSort');

		var params = "news_object="+obj.newsObject;
		if (obj.newsID > 0) params += '&news_id='+obj.newsID;
		if (obj.newsClassID > 0) params += '&class_id='+obj.newsClassID;
		if (searchDataEl) params += '&search='+searchDataEl.value;
		if (daysOldEl) params += '&days_old='+daysOldEl.value;
		if (sortEl && sortEl.checked) params += '&date_sort=START_DESC';
		if (obj.newsHideSearch) params += '&hide_search='+obj.newsHideSearch;
		if (obj.newsHideData) params += '&hide_data='+obj.newsHideData;
		if (obj.newsLimitStart) params += '&limit_start='+obj.newsLimitStart;
		if (obj.newsLimitCount) params += '&limit_count='+obj.newsLimitCount;
		if (obj.newsStartDate) params += '&start_date='+obj.newsStartDate;
		if (obj.newsEndDate) params += '&end_date='+obj.newsEndDate;
		if (obj.newsDaysOld) params += '&days_old='+obj.newsDaysOld;
		if (obj.newsDateSort) params += '&date_sort='+obj.newsDateSort;
		if (obj.newsExpand) params += '&expand='+obj.newsExpand;
		if (obj.newsType) params += '&type='+obj.newsType;
		if (obj.newsSmall) params += '&small=1';		

		replaceElement(obj.newsObject, "...loading...");
		makeRequest('/cgi-bin/content/news_items.cgi?'+params, obj.newsObject);
	}

	function newsGetMenu (obj) {
		var type = '';
		if (obj.newsType) {
			type = '&type='+obj.newsType;
		}

		makeRequest('/cgi-bin/content/news_items.cgi?get_menu=1&news_object='+obj.newsObject+'&class_id='+obj.newsClassID+type, obj.newsObject+'-Menu');
	}

	function newsGetParams (obj) {
		var query = window.location.search.substring(1);
		var params = query.split('&');
		var myKey = "";
		var myValue = "";

		for (var i = 0; i < params.length; i++) {
			var pos = params[i].indexOf('=');
			if (pos > 0) {
				myKey = params[i].substring(0, pos);
				myValue = params[i].substring(pos+1);
				if (myKey == "news_id" || myKey == "id") {
					obj.newsID = myValue;
					obj.newsParams = 1;
				}
				else if (myKey == "class_id" || myKey == "class") {
					obj.newsClassID = myValue;
					obj.newsParams = 1;
				}
				else if (myKey == "search")  {
					obj.newsSearch = myValue;
					document.getElementById('newsSearchBox').value = myValue;
					obj.newsParams = 1;
				}
				else if (myKey == "start_date") {
					obj.newsStartDate = myValue;
					obj.newsParams = 1;
				}
				else if (myKey == "end_date") {
					obj.newsEndDate = myValue;
					obj.newsParams = 1;
				}
				else if (myKey == "expand") {
					obj.newsExpand = myValue;
					obj.newsParams = 1;
				}
				else if (myKey == "type") {
					obj.newsType = myValue;
					obj.newsParams = 1;
				}
			}
		}
	}
}

