/**
 * Vertical Slider object
 */
var vSlide = $.klass({

	initialize: function(element, options)
    {
		this.options = $.extend({
		  marker_holder: '.box-holder',
		  marker_scroll: '.box-holder-element',
		  marker_holder_height: '59px',
		  status:  0,
		  step: 0,
		  max: 0,
		  timer_repeat: 5000
	      }, options);
		
		var obj = this;
		
		// get element
		$_holder = $(this.options.marker_holder).has(this.options.marker_scroll);
		// for chrome :(
		$_holder.css("height", this.options.marker_holder_height);
		$_child = $(this.options.marker_scroll);
		// css
		var holder_height = $_holder.css("height");
		$_holder.css("overflow", "hidden");
		$_holder.css("min-height", holder_height);
		$_child.css("height", holder_height);
		// vars
		var scroll_offset = $_child.css("paddingTop");
		this.options.step = parseInt(holder_height.substring(0, holder_height.indexOf("p"))) + parseInt(scroll_offset.substring(0, scroll_offset.indexOf("p")));
		this.options.max = (parseInt($_child.length) - 1) * this.options.step;
		// set timer
		this.timer = setInterval(function(){ obj.animate(obj); }, this.options.timer_repeat);
	},
	// animation
	animate: function(obj) {
		
		if((parseInt(this.options.status) + parseInt(this.options.max)) <= 0) offset = -this.options.max - this.options.step;  
		else offset = 0;

		$(this.options.marker_scroll +":first").animate({
			marginTop: "-="+  (parseInt(offset) + parseInt(obj.options.step)) +"px"
		}, { 
//					queue: false,
			duration: 500,
			complete: function() {
				var status = $(this).css("marginTop");
				obj.options.status = status.substring(0, status.indexOf("p"));
		  }
		});
	}
});
