function checkValCounter(val) {
	var min = 1;
	var max = 99;
	
	if (val > max) {
		return 99;
	}
	
	if (val < min) {
		return 1;
	}
	
	return 0;
}

function declension(nn, firstForm, secondForm, thirdForm) {
	var n = Math.abs(nn) % 100;
	var n1 = n % 10;

	if (n > 10 && n < 20)
		return thirdForm;

	if (n1 > 1 && n1 < 5)
		return secondForm;

	if (n1 == 1)
		return firstForm;

	return thirdForm;
}

function addToCartHandler(event) {
	event.preventDefault();
	$.post($(this).attr("href"), {async:true}, goodInCartResponse, "json");
}

function goodInCartResponse(data, status) {
	if (!standartAJAXResponseHandler(data, status)) return;
	
	if (data.msg == "ok") {
		$("#cart_count").text(data.goodsInCart + " " + declension(data.goodsInCart, "товар", "товара", "товаров"));
		
		$("#cart-button-" + data.goodID + " img").animate({ opacity:0 }, 100, "swing", function() {
			$(this).attr("src", "/f/i/btn-buy-added.png");
		});
		$("#cart-button-" + data.goodID + " img").animate({ opacity:1 }, 300, "swing" );
		setTimeout("showBuyBtn(" + data.goodID + ")", 2000);
	}
}

function showBuyBtn(id) {
	$("#cart-button-" + id + " img").animate({ opacity:0 }, 300, "swing", function() {
			$(this).attr("src", "/f/i/btn-buy.png");
	});
	$("#cart-button-" + id + " img").animate({ opacity:1 }, 300, "swing" );
}

function standartAJAXResponseHandler(data, status) {
	if (status == 'success') {
		if (data.error) {
			return false;
		}
	} else {
		return false;
	}
	
	return true;
}

function checkOrderForm(event) {	
	var error = false;
	var email = new RegExp("[0-9a-z_\.-]+@[0-9a-z_\.-]+\.[a-z]{2,4}", 'i');
	var form = document.getElementById('order');
	
	if (form.FIO.value.length < 3) {
		error = true;
		form.FIO.style.borderColor = "#ff4efe";
		form.FIO.nextSibling.style.display = "block";
	} else {
		form.FIO.style.borderColor = "#411E5E";
		form.FIO.nextSibling.style.display = "none";
	}
	
	if (form.phone.value.length < 7) {
		error = true;
		form.phone.style.borderColor = "#ff4efe";
		form.phone.nextSibling.style.display = "block";
	} else {
		form.phone.style.borderColor = "#411E5E";
		form.phone.nextSibling.style.display = "none";
	}
	
	if (form.email.value.length < 3 || !email.test(form.email.value)) {
		error = true;
		form.email.style.borderColor = "#ff4efe";
		form.email.nextSibling.style.display = "block";
	} else {
		form.email.style.borderColor = "#411E5E";
		form.email.nextSibling.style.display = "none";
	}
	
	if (typeof commentsRequired != 'undefined') {
		if (form.comment.value.length < 3) {
			error = true;
			form.comment.style.borderColor = "#ff4efe";
			form.comment.nextSibling.style.display = "block";
		} else {
			form.comment.style.borderColor = "#411E5E";
			form.comment.nextSibling.style.display = "none";
		}
	}

	if (error) event.preventDefault();
}

$(document).ready(function() {
	$(".counter-plus").click(function() {
		var value = parseInt($(this).prev("input").val()) + 1;
		
		if (checkValCounter(value) == 0) {
			$(this).prev("input").val(value);
		}
		
		return false;
	});
	$(".counter-minus").click(function() {
		var value = parseInt($(this).next("input").val()) - 1;
		
		if (checkValCounter(value) == 0) {
			$(this).next("input").val(value);
		}
		
		return false;
	});
	$(".counter").keyup(function() {
		var value = parseInt($(this).val());
		var check = checkValCounter(value);
		
		if (check != 0) {
			$(this).val(check);
		}
	});
	
	$(".addToCartButton").click(addToCartHandler);
	
	$("#order").submit(checkOrderForm);
	
	if ($.browser.msie && parseInt(jQuery.browser.version) <= 6) {
		$("#menu").children("li").hover(
			function () {
				$(this).addClass("over");
			},
			function () {
				$(this).removeClass("over");
			}
		);
	}
	
	$("#delivery_type1").change(function() {
		var delivery_type = $("#delivery_type1 option:selected").val();
		
		if (delivery_type == "moscow_obl") {
			$("#delivery_type2").fadeIn("slow");
		} else {
			$("#delivery_type2").fadeOut("fast");
		}
		
		ddelivery_type1 = delivery_type;
		
		recalcDelivery();
	});
	
	$("#delivery_type2").change(function() {
		ddelivery_type2 = $("#delivery_type2 option:selected").val();
		
		recalcDelivery();
	});
	
	$("#delivery_type3").change(function() {
		if ($(this).attr("checked")) {
			ddelivery_type3 = "spec";
		} else {
			ddelivery_type3 = "";
		}
		
		recalcDelivery();
	});
	
	if (typeof delivery_val != "undefined") {
		$("#delivery_type1").change();
		$("#delivery_type2").change();
		$("#delivery_type3").change();
	}
});
	
var ddelivery_type1 = "moscow";
var ddelivery_type2 = "15";
var ddelivery_type3 = "";

function recalcDelivery() {
	var delivery = ddelivery_type1;
	
	if (ddelivery_type1 == "moscow_obl") {
		delivery += ddelivery_type2;
	}
	
	if (ddelivery_type3 == "spec") {
		delivery += "_spec";
	} else {
		var price = parseInt($("#price_overall").text());
		
		if (price > 12000) {
			delivery += "_12000";
		} else if (price > 10000) {
			delivery += "_10000";
		} else if (price > 8000) {
			delivery += "_8000";
		} else if (price > 5000) {
			delivery += "_5000";
		} else if (price > 3000) {
			delivery += "_3000";
		} else if (price > 1200) {
			delivery += "_1200";
		} else if (price > 0) {
			delivery += "_0";
		}
	}
	
	var delivery_price = delivery_val[delivery];
	
	if (delivery_price < 0) {
		delivery_price = "<span style=\"font-size: 18px; line-height: 21px;\">по согласованию</span>";
	} else if (delivery_price == 0) {
		delivery_price = "<span style=\"font-size: 18px; line-height: 21px;\">бесплатно</span>";
	} else {
		delivery_price += "<span>руб.</span>";
	}
	
	$("#price_delivery").html(delivery_price);
	$("#delivery_type_input").val(delivery);
}
