/**
 * @author pgueller
 */

jQuery(function(){

	//slider object
	var slider = {
		$el: $('#slider'),
		$navParent: $('#cardshow'),
		pos: 0,
		q : $('#slider').children('li').length,
		qUp: 2,
		eaWidth: 435, //li width, padding, border, margin (x-values)
		rateTransition: 500,
		transition: function(direction){
			//execute any remaining animations in queue
			slider.$el.stop(false, true);
			//verify and set position to animate to
			switch (direction){
				case "prev":
					slider.pos += slider.eaWidth;
					break;
				case "next":
					slider.pos -= slider.eaWidth;
					break;
				default:
					return false;
			}
			//animate
			slider.$el.animate({
				left: slider.pos
			}, slider.rateTransition, "swing");
			//show-hide controls as needed
			if (slider.pos == 0) { //account for recent addition
				slider.$prev.hide();
			} else if (slider.pos == slider.minPos) {
				slider.$next.hide();
			} else {
				slider.$navParent.children('.control').show();
			}
		},
		init: function(){
			//find values
			slider.maxWidth = slider.q * (slider.eaWidth);
			slider.minPos = -(slider.maxWidth - (slider.eaWidth * slider.qUp));
			//assign initial styling
			slider.$el.css({
				width: slider.maxWidth + 'px',
				left: slider.pos
			});
			//add navigation elements if necessary
			if (slider.q > slider.qUp) {
				slider.$prev = $('<a class="control prev" href="#" title="Click to reverse">&lt;</a>').click(function(){
					slider.transition('prev');
					return false;
				}).hide().appendTo(slider.$navParent);
				slider.$next = $('<a class="control next" href="#" title="Click to scroll and see images of our tours">&gt;</a>').click(function(){
					slider.transition('next');
					return false;
				}).appendTo(slider.$navParent);
			}
		}
	};
	
	slider.init();

});