	/*	
	 *  Can be used for horizontal browse (next/previous) in a long list
     *
	 */



function HorizontalBrowse() {
	
	this.currentItem = null;
	this.enoughItems = true;


	/*
	 * @listId the id of the container of the list (this should sit within another container with style: overflow:hidden)
	 * @itemClass the class for the contianer of each item in the list
	 * @itemWidth the width of the contianer of each item in the list
	 */

	this.init = function(listId, itemClass, itemWidth, minItems) {
		try {
			this.listId = listId;
			this.itemClass = itemClass;
			this.itemWidth = itemWidth; 
			var items = $$('.'+itemClass);
			this.numItems = items.length;
			if(!minItems || this.numItems > minItems) {
				this.currentItem = 0;

				var listHTML = $(listId).innerHTML;
				listHTML += listHTML + listHTML;
				$(listId).innerHTML = listHTML;	

				$(listId).style.width = 3 * this.numItems * this.itemWidth + 'px';
				$(listId).style.left = -this.numItems * this.itemWidth + 'px';
			} else {
				this.enoughItems = false;
			}
		} catch(err) { console.log(err); }
	};

	/*
	 * @browseNum the number of items that are visible in each row
	 */

	this.goToNext = function(browseNum) {
		try {
			if(!this.enoughItems) return;
			if(!browseNum) browseNum = 1;
			this.currentItem += browseNum;
			if(this.currentItem > this.numItems) {
				$(this.listId).style.left = ( -( this.currentItem - browseNum ) * this.itemWidth + this.numItems * this.itemWidth )+ 'px';
				this.currentItem -= this.numItems;
			}

			new Effect.Move($(this.listId), { x : -this.itemWidth * browseNum, y: 0 }); 	
		} catch(err) { console.log(err); }
	};

	/*
	 * @browseNum the number of items that are visible in each row
	 */

	this.goToPrevious = function(browseNum) {
		try { 
			if(!this.enoughItems) return;
			if(!browseNum) browseNum = 1;
			this.currentItem -= browseNum;
			if(this.currentItem < 0) {
				$(this.listId).style.left = ( -(this.currentItem + browseNum) * this.itemWidth - this.numItems * this.itemWidth )+ 'px';
				this.currentItem += this.numItems;
			}

			new Effect.Move($(this.listId), { x : this.itemWidth * browseNum, y: 0 }); 	
		} catch(err) { console.log(err); }

	};

}
