/************************************************************************/
/*  Author:	Oscar Emilio Antolinez Collazos								*/
/*	Date: 	Nov 1, 2007							 						*/ 
/*	Description: Layouts 												*/
/*																		*/
/************************************************************************/

jQuery.fn.shcarousel = function(obj){
	var defaults = {
		_speed: 500,
		_div: '',
		_position: 0,
		_cyclical: false,
		params: {},	
		callback: ''	
	};
	
	var _width=0;
	var _cwidth=0;
	var _childrens=0;
	
	var move = function(n){
		if(isNaN(n)==false){
			defaults._position=n-1;
		}else if(n=='first'){
			defaults._position=0;
		}else if(n=='next'){			
			if((defaults._position*-_cwidth)>(_width-(_childrens*_cwidth))){
				defaults._position++;
				
			}else{
				if(defaults._cyclical==true){
					defaults._position--;
					$(defaults._div).children().css("left", (-_cwidth*defaults._position));
					$(defaults._div).find("ul li:first").clone().appendTo($(defaults._div).find("ul"));
					$(defaults._div).find("ul li:first").remove();
					defaults._position++;
				}
			}
		}else if(n=='prev'){
			
			if(defaults._position>=1){
				defaults._position--;
				
			}else{
				if(defaults._cyclical==false){
					defaults._position=0;
				}else{
					defaults._position++;
					$(defaults._div).children().css("left", (-_cwidth*defaults._position));
					$(defaults._div).find("ul li:last").clone().prependTo($(defaults._div).find("ul"));
					$(defaults._div).find("ul li:last").remove();
					defaults._position--;
				}
			}
			
		}else if(n=='last'){
			defaults._position=_childrens-(_width/_cwidth);
		}else{
			i=0;
			$(defaults._div).children().children().each(
				function(){
					if(this.id==n)
						defaults._position=i;
					i++;
				}
			);
		}
		$(defaults._div).children().animate({left: (-_cwidth*defaults._position)}, { duration: defaults._speed });
		
		if(defaults._cyclical==false){
			if(defaults._position==0)
				$("#carouselPrev").hide();
			else
				$("#carouselPrev").show();
			
			if((defaults._position*-_cwidth)>(_width-(_childrens*_cwidth)))
				$("#carouselNext").show();
			else
				$("#carouselNext").hide();
		}
	};
	
	this.move = function(n) { move(n); };
	
	return this.each(function() {
		defaults._div=this;
		jQuery.extend(defaults, obj);
		_width=parseInt(($(defaults._div).css('width')).slice(0,-2));
		_cwidth=parseInt(($(defaults._div).children().children().css('width')).slice(0,-2));
		_childrens=$(defaults._div).children().children().length;
		
		if(defaults._cyclical==false){
			$("#carouselPrev").hide();
		}
	});
};


