window.addEvent('domready', function(e) {

	var statusbar = $('statusbar');
	var listing = $('listing');
	var formUpload = $('formUpload');
	var Site = {
		start: function(){
			if ($chk(statusMessage)) Site.showStatus(statusMessage)	
			else Site.hideStatus()

			if (listing) {
				var pagebar = $('pagebar');
				var pageSummary = $('pageSummary');
				var pageSelect = $('page');
				
				var ajaxList = new Request({'url': 'ajax-listing.php', 
					onRequest: function(){
						if (!$chk(statusMessage)) Site.showStatus('Updating listing...');		// do not overwrite session status message
						pageSelect.empty();						
						pagebar.setStyle('visibility', 'hidden');
					},

					onFailure: function(){
						Site.showStatus('Updating failed!');
					},

					onSuccess: function(server){				
						response = JSON.decode(server);

						if ($chk(statusMessage)) statusMessage = null												// clear session status message
						else Site.hideStatus()

						listing.set('html', response.listing);
						$$('.fldDelete a').addEvent('click', function(e){
							if (confirm('Are you sure you want to delete this file?')) Site.showStatus('Deleting file...')
							else e.stop()
						});

						if (response.pages > 1) {
							for (i = 1; i <= response.pages; i++){
								var option = new Element('option').set({
									'value': i,
									'html': i
								});
								if (response.page == i) option.set('selected', 'selected');
								pageSelect.adopt(option);
							}
							pageSummary.set('html', 'Showing Page '+response.page+' of '+response.pages);
							pagebar.setStyle('visibility', 'visible');
						}
					}
				});
				ajaxList.post({'page': page, 'category': category});
				pageSelect.addEvent('change', function(e){ajaxList.post({'page': this.value, 'category': category});});
				$('category').addEvent('change', function(e){
					category = this.value;
					ajaxList.post({'page': 1, 'category': category});
				});
			} else if (formUpload) {
				formUpload.addEvent('submit', function(e){
					Site.showStatus('Uploading file...');
					$('upload').set('disabled', 'disabled');
				});
				$('category').addEvent('change', function(e){$('_category').set('value', this.value);});	
			}
		},
		
		showStatus: function(s){
			statusbar.set('html', s);
			statusbar.setStyle('visibility', 'visible');
		},
		
		hideStatus: function(){
			statusbar.setStyle('visibility', 'hidden');
		}
	};

	Site.start();

});