/* CUSTOMIZABLE */
var bannerWidth = 796;
var departmentWidth = 270;
var imageHeight = 105 + 5;
var imagesVisible = 3;
var newProductsVisible = 4;
var imageChangingSpeed = 200;
var newProductWidth = 110 + 43;
var bannerChangingSpeed = 500;
var bannerChangeInterval = 8500;
var newProductChangingSpeed = 800;
var newProductChangeInterval = 5800;
/* END CUSTOMIZABLE */

var currentBanner = 0;
var bannerCount = 0;
var canChangeManually = true;
var currentNewProduct = 0;
var newProductCount = 0;
var canChangeNewProductManually = true;
var currentDepartment = 0;
var departmentCount = 0;
var canChangeDepartmentManually = true;
var currentImage = 0;
var imageCount = 0;
var banners = false;
var departments = false;
var direction = 0;
var departmentDirection = 0;

function imageDown()
{
	if(currentImage < imageCount - imagesVisible)
	{
		currentImage++;
	}

	animateImage();
}

function imageUp()
{
	if(currentImage > 0)
	{
		currentImage--;
	}

	animateImage();
}

function animateImage()
{
	$("#gallery .container div").stop().animate(
	{
		top: currentImage * imageHeight * -1
	}, imageChangingSpeed);
}

function nextBanner(auto)
{
	if(!canChangeManually)
	{
		return;
	}

	if(currentBanner < bannerCount - 1)
	{
		currentBanner++;
	}
	else/* if(auto)*/
	{
		currentBanner = 0;
	}

	direction = 0;
	animateBanner();
}

function nextDepartment(auto)
{
	if(!canChangeDepartmentManually)
	{
		return;
	}

	/*if(currentDepartment < departmentCount - 1)
	{
		currentDepartment++;
	}
	else/* if(auto)*
	{
		currentDepartment = 0;
	}*/

	departmentDirection = 0;
	animateDepartment();
}

function prevBanner()
{
	if(!canChangeManually)
	{
		return;
	}

	if(currentBanner > 0)
	{
		currentBanner--;
	}
	else
	{
		currentBanner = bannerCount - 1;
	}

	direction = 1;
	animateBanner();
}

function prevDepartment()
{
	if(!canChangeDepartmentManually)
	{
		return;
	}

	/*if(currentDepartment > 0)
	{
		currentDepartment--;
	}
	else
	{
		currentDepartment = departmentCount - 1;
	}*/

	departmentDirection = 1;
	animateDepartment();
}

function animateBanner()
{
	canChangeManually = false;
	/*$("#banner .container").stop().animate(
	{
		left: currentBanner * bannerWidth * -1
	}, bannerChangingSpeed, function()
	{
		canChangeManually = true;
	});*/

	if(direction == 0)
	{
		var next;

		/*if(currentBanner == bannerCount - 1)
		{
			next = 0;
		}
		else
		{
			next = currentBanner + 1;
		}*/

		next = currentBanner;

		$(banners.get(next)).css("left", bannerWidth + "px").css("zIndex", 200);

		$("#banner .container img").animate(
		{
			left: "-=" + bannerWidth
		}, bannerChangingSpeed, function()
		{
			canChangeManually = true;
			$(this).css("zIndex", 100);
		});

		/*$("#banner .container img").animate(
		{
			left: "-=" + bannerWidth
		}, bannerChangingSpeed, function()
		{
			var next;

			if(currentBanner == 0)
			{
				next = bannerCount - 1;
			}
			else
			{
				next = currentBanner - 1;
			}

			$(banners.get(next)).css("left", (3 * bannerWidth) + "px");

			canChangeManually = true;
		});*/
	}
	else
	{
		var next;

		/*if(currentBanner == 0)
		{
			next = bannerCount - 1;
		}
		else
		{
			next = currentBanner - 1;
		}*/

		next = currentBanner;

		$(banners.get(next)).css("left", (-1 * bannerWidth) + "px").css("zIndex", 200);

		$("#banner .container img").animate(
		{
			left: "+=" + bannerWidth
		}, bannerChangingSpeed, function()
		{
			canChangeManually = true;
			$(this).css("zIndex", 100);
		});
	}
}

function animateDepartment()
{
	canChangeDepartmentManually = false;

	if(departmentDirection == 0)
	{
		$("#departments .container a").animate(
		{
			left: "-=" + (departmentWidth)
		}, bannerChangingSpeed, function()
		{
			$(this).css("zIndex", 100);

			var current = departments.get(currentDepartment);
			if(this == current && !canChangeDepartmentManually)
			{
				$(current).css("left", (3 * departmentWidth) + "px").css("zIndex", 200);

				currentDepartment++;
				if(currentDepartment >= departmentCount)
				{
					currentDepartment = 0;
				}

				canChangeDepartmentManually = true;
			}
		});
	}
	else
	{
		var next = (currentDepartment + 3) % 4;
		$(departments.get(next)).css("left", (-1 * departmentWidth) + "px").css("zIndex", 200);

		$("#departments .container a").animate(
		{
			left: "+=" + (departmentWidth)
		}, bannerChangingSpeed, function()
		{
			$(this).css("zIndex", 100);

			if(!canChangeDepartmentManually)
			{
				canChangeDepartmentManually = true;
				currentDepartment--;
				if(currentDepartment < 0)
				{
					currentDepartment = departmentCount - 1;
				}
			}

			/*var current = departments.get(currentDepartment);
			if(this == current && !canChangeDepartmentManually)
			{
				$(current).css("left", (-1 * departmentWidth) + "px").css("zIndex", 200);

				currentDepartment--;
				if(currentDepartment < 0)
				{
					currentDepartment = departmentCount - 1;
				}

				canChangeDepartmentManually = true;
			}*/
		});

		/*var next = currentBanner;

		$(departments.get(next)).css("left", (-1 * departmentWidth) + "px").css("zIndex", 200);

		$("#departments .container a").animate(
		{
			left: "+=" + departmentWidth
		}, bannerChangingSpeed, function()
		{
			canChangeDepartmentManually = true;
			$(this).css("zIndex", 100);
		});*/
	}
}

function nextNewProduct(auto)
{
	if(!canChangeNewProductManually)
	{
		return;
	}

	if(currentNewProduct < newProductCount - newProductsVisible)
	{
		currentNewProduct++;
	}
	else if(auto)
	{
		currentNewProduct = 0;
	}

	animateNewProduct();
}

function prevNewProduct()
{
	if(!canChangeNewProductManually)
	{
		return;
	}

	if(currentNewProduct > 0)
	{
		currentNewProduct--;
	}

	animateNewProduct();
}

function animateNewProduct()
{
	canChangeNewProductManually = false;
	$("#new-stock .container").stop().animate(
	{
		left: currentNewProduct * newProductWidth * -1
	}, newProductChangingSpeed, function()
	{
		canChangeNewProductManually = true;
	});
}

function setupAjaxForm(id)
{
	$("#" + id).submit(function()
	{
		$(this).find(".button").attr("disabled", true);

		var textboxes = $(this).find(".text");
		var checkboxes = $(this).find("input[type=checkbox]");
		var selectboxes = $(this).find("select");
		var options = { submit: 1 };

		for(var i = 0; i < textboxes.size(); i++)
		{
			var element = textboxes.get(i);
			options[$(element).attr("name")] = $(element).val();
		}

		for(var i = 0; i < selectboxes.size(); i++)
		{
			var element = selectboxes.get(i);
			options[$(element).attr("name")] = $(element).val();
		}

		for(var i = 0; i < checkboxes.size(); i++)
		{
			var element = checkboxes.get(i);

			if(!$(element).attr("checked"))
			{
				continue;
			}

			var name = $(element).attr("name");
			var pos = name.indexOf("[");

			if(pos != -1)
			{
				name = name.substr(0, pos);

				if(options[name] == undefined)
				{
					options[name] = [ ];
				}

				options[name].push($(element).val());
			}
			else
			{
				options[name] = $(element).val();
			}


		}

		$.post($(this).attr("action"), options, function(data)
		{
			$("#" + id).fadeOut(300, function()
			{
				$("#" + id + "-success").fadeIn(300);
				$("#" + id).find(".button").attr("disabled", false);
			});
		});

		return false;
	});
}

$(document).ready(function()
{
	if($("#banner").size() > 0)
	{
		bannerCount = $("#banner .container img").size();
		if(bannerCount > 0)
		{
			$("#banner .container").css("width", (bannerCount * bannerWidth)+ "px");

			banners = $("#banner .container img");
			for(var i = 0; i < bannerCount; i++)
			{
				$(banners.get(i)).css("left", (i * bannerWidth) + "px");
			}

			$("#banner .left").click(function()
			{
				prevBanner();
				return false;
			});
			$("#banner .right").click(function()
			{
				nextBanner(false);
				return false;
			});

			setInterval("nextBanner(true)", bannerChangeInterval);
		}
	}

	if($("#departments").size() > 0)
	{
		departmentCount = $("#departments .container a").size();
		if(departmentCount > 0)
		{
			$("#departments .container").css("width", (departmentCount * departmentWidth)+ "px");

			departments = $("#departments .container a");

			$("#departments .left").click(function()
			{
				prevDepartment();
				return false;
			});
			$("#departments .right").click(function()
			{
				nextDepartment(false);
				return false;
			});

			var ie = /msie/i.test(navigator.userAgent) && !/opera/i.test(navigator.userAgent);

			$("#departments .container a").hover(function()
			{
				if(ie)
				{
					$(this).find("span").show();
				}
				else
				{
					$(this).find("span").fadeIn(200);
				}
			}, function()
			{
				if(ie)
				{
					$(this).find("span").hide();
				}
				else
				{
					$(this).find("span").fadeOut(200);
				}
			});
		}
	}

	if($("#gallery").size() > 0)
	{
		imageCount = $("#gallery .container img").size();
		if(imageCount > 0)
		{
			$("#gallery .up").click(function()
			{
				imageUp();
				return false;
			});

			$("#gallery .down").click(function()
			{
				imageDown(false);
				return false;
			});

			$("#gallery .container a").click(function()
			{
				var src1 = "pics/thumb_" + $(this).find("img").attr("class") + ".jpg";
				var src2 = "pics/" + $(this).find("img").attr("class") + ".jpg";
				var src3 = "pics/thumbb_" + $(this).find("img").attr("class") + ".jpg";
				$("#gallery img.normal").attr("src", src1);
				$("#zoomed img.large").attr("src", src2);
				$("#enlarged img.image").attr("src", src3);
				return false;
			});
		}

		//var ratio = 951 / $("#gallery img.normal").width();
		//var offsetLeft = ($(document).width() - $("#wrapper").width()) / 2 + 145;
		//var offsetTop = $("#gallery").offset().top + 0;
		var adjustmentX = $("#gallery img.cursor").width() / 2;
		var adjustmentY = $("#gallery img.cursor").height() / 2;
		var left2 = parseInt(($(window).width() - $("#enlarged").width()) / 2, 10)

		$(this).find(".cursor").css("left", 107 + "px").css("top", 70 + "px");

		$("#background").css("height", $(document).height() + "px");
		$("#enlarged").css("left", left2 + "px");

		$("#gallery .image a").mousemove(function(event)
		{
			var zoomed = $("#zoomed img");
			var normal = $("#gallery img.normal");

			var ratioX = zoomed.width() / normal.width();
			var ratioY = zoomed.height() / normal.height();
			var offset = $(this).offset();
			var position1 = normal.offset();
			var position2 = $(this).offset();
			var cursorLeft = parseInt(event.pageX - offset.left - adjustmentX, 10);
			var cursorTop = parseInt(event.pageY - offset.top - adjustmentY, 10);
			var largeLeft = parseInt((cursorLeft + (position2.left - position1.left)) * ratioX * -1, 10);
			var largeTop = parseInt((cursorTop + (position2.top - position1.top)) * ratioY * -1, 10);

			$(this).find("img.cursor").css("left", cursorLeft + "px").css("top", cursorTop + "px");
			$("#zoomed").show().find("img.large").css("left", largeLeft + "px").css("top", largeTop + "px");
		});

		$("#gallery .image a").hover(function()
		{
		}, function()
		{
			$(this).find(".cursor").css("left", 107 + "px").css("top", 70 + "px");
			$("#zoomed").hide();
		});

		$("#gallery .image a").click(function()
		{
			var height = Math.max($(document).height(), 800)
			$("#enlarged").fadeIn(250);
			$("#background").css("height", height + "px").fadeIn(250, function()
			{
				$("#background").css("height", $(document).height() + "px");
			});
			return false;
		});

		$("#enlarged").click(function()
		{
			$("#enlarged").fadeOut(250);
			$("#background").fadeOut(250);
			return false;
		});
	}

	newProductCount = $("#new-stock .container a").size();
	$("#new-stock .container").css("width", (newProductCount * newProductWidth)+ "px");

	$("#new-stock .left").click(function()
	{
		prevNewProduct();
		return false;
	});
	$("#new-stock .right").click(function()
	{
		nextNewProduct(false);
		return false;
	});

	/*$(".container a .img img").load(function()
	{
		var height = $(this).parent().height();
		var imgHeight = parseInt($(this).height(), 10);
		var top = parseInt((height - imgHeight) / 2, 10);

		$(this).parent().css("paddingTop", top + "px").css("height", (height - top) + "px");
	});*/

	$(".image a img.normal").load(function()
	{
		var height = 317; //$(this).height();
		var top = parseInt((height - $(this).height()) / 2, 10);
		$(this).css("marginTop", top + "px");
	});

	$(window).load(function()
	{
		$(".container a .img img").each(function()
		{
			var height = $(this).parent().height();
			var imgHeight = parseInt($(this).height(), 10);
			var top = parseInt((height - imgHeight) / 2, 10);

			$(this).parent().css("paddingTop", top + "px").css("height", (height - top) + "px");
		});

		$("#content.category .items a img").each(function()
		{
			var top = parseInt((156 - $(this).height()) / 2, 10);
			if(top > 0)
			{
				$(this).parent().css("minHeight", (parseInt($(this).parent().css("minHeight"), 10) - top) + "px").css("paddingTop",  (parseInt($(this).parent().css("paddingTop"), 10) + top) + "px");
			}
		});
	});

	setInterval("nextNewProduct(true)", newProductChangeInterval);
});
