/***********************************************
 * GXConveyor - (c) www.12leaves.com - ecommerce webdesign services
 * This notice must stay intact for legal use
 ***********************************************/
var $gcreep_defaults = {
	slides_measure: 0,
	speed: 0,
	normal_speed: -60,
	left_speed: -200,
	right_speed: 200,
	inertia: 300,
	direction: "horizontal"
};

(function($) {

function creep() {
	var time = (new Date).getTime();
	var ms = time - $gcreep_options.last_time;
	if (time - $gcreep_options.inertia_start <= $gcreep_options.inertia) {
		$gcreep_options.speed = $gcreep_options.speed_from + ($gcreep_options.speed_to - $gcreep_options.speed_from) * (time - $gcreep_options.inertia_start) / $gcreep_options.inertia;
	} else {
		$gcreep_options.speed = $gcreep_options.speed_to;
	}
	$gcreep_options.last_time = time;
	if ($gcreep_options.speed == 0) return;
	line_up(ms);
}

function line_up(ms) {
	var pos = $gcreep_options.last_pos = ($gcreep_options.last_pos + ms * $gcreep_options.speed / 1000) % $gcreep_options.slides_measure;
	$gcreep_options.slides.each(function (i, el) {
		var init_pos = parseInt($(el).attr("init_pos"));
		var pos = init_pos + $gcreep_options.last_pos;
		if (pos > $gcreep_options.measure) pos = init_pos + $gcreep_options.last_pos - $gcreep_options.slides_measure;
		if (pos + $(el).measure() < 0) pos += $gcreep_options.slides_measure;
		$(el).css($gcreep_options.direction == "vertical" ? "top" : "left", pos);
	});
}

function speed_to(speed) {
	$gcreep_options.inertia_start = (new Date).getTime();
	$gcreep_options.speed_from = $gcreep_options.speed;
	$gcreep_options.speed_to = speed;
}

jQuery.fn.extend({
  measure: function() {
    return $gcreep_options.direction == "vertical" ? this.height() : this.width();
  }
});

$(window).load(function () {
	$("#gcreep .left_handle, #gcreep .right_handle").css("z-index", 100);

	if ($("#gcreep").size == 0) return;
	if (typeof $gcreep_options == "undefined") $gcreep_options = $gcreep_defaults;
	else $gcreep_options = $.extend($gcreep_defaults, $gcreep_options);

	$("#gcreep .slides").hover(function () {
		speed_to(0);
	}, function () {
		speed_to($gcreep_options.normal_speed);
	});
	$("#gcreep .left_handle").mouseenter(function () {
		speed_to($gcreep_options.left_speed);
	});
	$("#gcreep .right_handle").mouseenter(function () {
		speed_to($gcreep_options.right_speed);
	});
	$("#gcreep .left_handle, #gcreep .right_handle").mouseleave(function () {
		speed_to($gcreep_options.normal_speed);
	});
	$gcreep_options.slides = $("#gcreep .slide");
	$gcreep_options.slides.each(function (i, el) {
		el = $(el);
		el.attr("init_pos", $gcreep_options.slides_measure);
		$gcreep_options.slides_measure += el.measure();
	});
	$gcreep_options.measure = $("#gcreep").measure();
	$gcreep_options.last_time = (new Date).getTime();
	$gcreep_options.last_pos = 0;
	line_up(0);
	setInterval(creep, 15);
	speed_to($gcreep_options.normal_speed);
});

})(jQuery);
