var mouseX = 0;
var mouseY = 0;
var relativeX = 0;
var relativeY = 0;
var sliding = false;
var stepNumber = 0;
var stepInitOffsetX = 35;
var stepLength = 29;
var maxSteps = 20;
var sliderTopMiddleOffset = 16;
var sliderLeftFirstOffset = 43;
var sliderNumberOffset = 8;
var sliderBulkOffset = 16;
var toStep = -1;
var sliderPos = null;
var sliderTop = 0;
var sliderLeft = 0;

function initSlider() {
	var hasSlider = $('#slider_form').length > 0;
	if(hasSlider) {
		$(document).mousemove(function(e) {
			mouseX = e.pageX;
			mouseY = e.pageY;
			toStep = -1;
			if(sliding) {
				xc = mouseX - relativeX;
				stepNumber = Math.round((xc - stepInitOffsetX) / stepLength);
				if(stepNumber < 0) stepNumber = 0;
				else if(stepNumber > maxSteps) stepNumber = maxSteps + 1;
				if($("#count_banners").val() != stepNumber) {
					moveSlider();
				}
			}
			else {
				initSliderPos();
				$('#slider_form').css('cursor', 'auto');
				if(mouseY < sliderTop + sliderNumberOffset && mouseY > sliderTop - sliderNumberOffset) {
					if(mouseX > sliderLeft - sliderNumberOffset && mouseX < sliderLeft + stepLength * (maxSteps + 1) + sliderBulkOffset) {
						var stepOffset = Math.round((mouseX - sliderLeft) / stepLength);
						var stepPosition = sliderLeft + stepOffset * stepLength;
						var rightOffset = stepOffset == maxSteps + 1 ? sliderBulkOffset : sliderNumberOffset;
						if(mouseX > stepPosition - sliderNumberOffset && mouseX < stepPosition + rightOffset) {
							$('#slider_form').css('cursor', 'pointer');
							toStep = stepOffset;
						}
					}
				}
			}
		});
		$(document).mouseup(function(e) {
			sliding = false;
		});
		$(document).click(function(e) {
			if(toStep > -1) {
				stepNumber = toStep;
				moveSlider();
			}
		});
		$("#slider").mousedown(function(e) {
			sliding = true;
			relativeX = e.pageX - this.offsetLeft;
			relativeY = e.pageY - this.offsetTop;
		});
	}
}

function initSliderPos() {
	sliderPos = $('#slider_form').offset();
	sliderTop = sliderPos.top + sliderTopMiddleOffset;
	sliderLeft = sliderPos.left + sliderLeftFirstOffset;
}

function moveSlider() {
	if(stepNumber > maxSteps) {
		isBulk = 1;
		if(typeof isOrder == 'undefined') $('#count_banners').hide();
		$('#count_banners').val('');
		$("#banners_text").html('Bulk Order');
		$('#slider_form').attr('action', webPath + 'bulk/');
	}
	else {
		isBulk = 0;
		if(typeof isOrder == 'undefined') $('#count_banners').show();
		$("#count_banners").val(stepNumber);
		$("#banners_text").html('banners');
		$('#slider_form').attr('action', webPath + 'order/');
	}
	if(stepNumber < 0) stepNumber = 0;
	else if(stepNumber > maxSteps) stepNumber = maxSteps + 1;
	$("#slider").css('left', stepInitOffsetX + (stepNumber * stepLength));
	if(typeof isOrder != 'undefined') calculateTotalPrice();
}

function changeCountBanners(increment) {
	if(increment) stepNumber++;
	else stepNumber--;
	if(stepNumber < 0) stepNumber = 0;
	else if(stepNumber > maxSteps) stepNumber = maxSteps + 1;
	if($("#count_banners").val() != stepNumber) {
		moveSlider();
	}
	return false;
}

function check_count_banners(field) {
	var number = $('#' + field.id);
	check_number(number, 2);
	stepNumber = number.val();
	if(stepNumber < 0) stepNumber = 0;
	else if(stepNumber > maxSteps) stepNumber = maxSteps + 1;
	moveSlider();
}
