Stories = {
	filters: {},
	interfaces: {},
	lastPost: false,

	checkAndHideFilterHeaders: function() {
		// hide and show the filter lists after closing this overlay.
		$('#searchFiltersActiveList > li').each(function(index) {
			if($(this).find('li.enabled').length > 0) {
				$(this).fadeIn('fast');
			} else {
				$(this).fadeOut('fast');
			}
		})
	},
	
	getPostFilterHash: function() {
		filterValues = {};
		$.each(this.filters, function(index) {
			filterKey = 'tx_tidesstories_pi1[' + this.queryKey + ']';
			filterValue = this.get();
			filterValues[filterKey] = filterValue;
		});
		if(!filterValues.resultsPerPage) filterValues.resultsPerPage = 10;
		return filterValues;
	},
	
	setLastPost: function(postString) {
		this.lastPost = postString;
	},
	
	getLastPost: function() {
		return this.lastPost;
	},
	
	updateList: function(postFilterHash) {
		var url = '/?type=1715&id=104';
		// do submit here
		$.ajax({
			url: url,
			dataType: 'html',
			data: postFilterHash,
			beforeSend: function(XMLHttpRequest) {
				$('body').addClass('overlay-loading');
				$('#overlay-bg').height($('body').height());
			},
			success: function(data) {
				$('#resultsContainer').replaceWith(data);
				Stories.reInit();
				$('body').removeClass('overlay-loading');
			},
			error: function(data) {}
		});
	},

	updateResults: function() {
		postFilterHash = this.getPostFilterHash();
		thisPostString = $.param(postFilterHash);
		if(thisPostString != this.getLastPost()) {
			this.updateList(postFilterHash);
		}
		// set the last post for future comparison
		this.setLastPost(thisPostString);
		return false;
	},
	reInit: function() {
		this.filters.results = new filterList.ResultsPerPageFilter($('.filter-resultsPerPage'),'resultsPerPage');
		this.filters.pages = new filterList.PagesFilter($('.filter-page'),'page');
		this.interfaces.listInterface = new filterList.ListInterface();
	},

	init: function() {
		filterList.child = this;

		this.filterForm = new filterList.FilterForm($('#filterForm'));
		this.filters.keyword = new filterList.TextFilter($('#filter-keyword'),'keyword');
		this.filters.geoScope = new filterList.SelectFilter($('#filter-geoScope'),'geoScope');
		this.filters.results = new filterList.ResultsPerPageFilter($('.filter-resultsPerPage'),'resultsPerPage');
		this.filters.pages = new filterList.PagesFilter($('.filter-page'),'page');
		this.filters.issues = new filterList.CheckboxesFilter($('.filter-issues'),'issues',false,true);
		this.filters.services = new filterList.CheckboxesFilter($('.filter-services'),'services',false,true);
		this.interfaces.refineSearch = new filterList.RefineSearchInterface();
		this.interfaces.listInterface = new filterList.ListInterface();
		
		// set initial filter values
		this.setLastPost($.param(this.getPostFilterHash()));
		
		// set any initial filters
		this.interfaces.refineSearch.updateActiveFilters();
	}
}


jQuery(document).ready(function() {	
	Stories.init();
});

