var list = {
	parameters: location.href.toQueryParams(),
	element: null,
	img_path: '',
	sortimg_normal: null,
	sortimg_asc: null,
	sortimg_desc: null,
	initialise: function( element ){
		this.element = $(element);
		if( !this.parameters.method.startsWith('AJAX') )
			this.parameters.method = 'AJAX'+this.parameters.method;
		if( arguments[1] !== undefined )
			Object.extend(this , arguments[1]);
	},
	
	search: function( input ){
		if(this.parameters['search_'+input.name] != input.value ){
			this.parameters['search_'+input.name] = input.value;
			this.update();
		}
		
	},
	update: function(){
		new Ajax.Updater(list.element, 'index.php', {
			method: 'get',
			parameters: list.parameters
		});
		
		new Ajax.Updater(list.element.id+'_browsebar', 'index.php', {
			method: 'get',
			parameters: Object.extend({browsebar:'true'} ,list.parameters )
		});
	},
	
	sort: function( img , type){

		if( this.parameters.order != undefined){
			if( this.parameters.order == type) {
				this.parameters.order = type+' DESC';
				img.src = this.img_path+this.sortimg_desc;
			} else if(  this.parameters.order == type+' DESC' ) {
				this.parameters.order = type;
				img.src = this.img_path+this.sortimg_asc;
			} else {
				this.parameters.order = type;
				
				$A(document.getElementsByName('sortlist')).each( function( element ){
					element.src = list.img_path+''+list.sortimg_normal;
				});
				img.src = this.img_path+this.sortimg_asc;
			}
		} else {
			this.parameters.order = type;
			$A(document.getElementsByName('sort_list')).each( function( element ){
				element.src = this.img_path+this.sortimg_normal;
			});
			img.src = this.img_path+this.sortimg_asc;
		}
		this.update();
	},
	
	browse: function ( page ) {
		this.parameters.page = page;
		this.update();
	},
	
	searchsubmit: function( eevent ){
		
		var eevent = window.event ? window.event : eevent;
		if( eevent.keyCode == Event.KEY_RETURN){
			list.search((eevent.target ? eevent.target : eevent.srcElement));
		}
	},
	
	fileExport: function ( file ){
		//alert($H(this.parameters).toQueryString());
		location.href = file+'?'+$H(this.parameters).toQueryString();
	}
}