﻿// Общие функции
$.fn.centerScreen = function() {
	var w = $(window);
	this.css("position","absolute");
	this.css("top",(Math.round(w.height()-this.height())/2.2+w.scrollTop()) + "px");
	this.css("left",(Math.round(w.width()-this.width())/2+w.scrollLeft()) + "px");
	return this;
}

$.fn.wait = function(time, type) {
	time = time || 1000;
	type = type || "fx";
	return this.queue(type, function() {
			var self = this;
			setTimeout(function() {
					$(self).dequeue();
			}, time);
	});
};

$.fn.formLbox = function(width) {  //alert($(this).html());
  width = width || 450;
  var code = "<div class='ok_div' style='width:"+width+"px'><table id='lbox_table'><tr><td class='lt'>&nbsp;</td><td class='t'>&nbsp;</td><td class='rt'>&nbsp;</td></tr><tr><td class='l'>&nbsp;</td><td class='bg lbox_content'>"+$(this).html()+"</td><td class='r'>&nbsp;</td></tr><tr><td class='lb'>&nbsp;</td><td class='b'>&nbsp;</td><td class='rb'>&nbsp;</td></tr></table><a class='ok_close hovertip' href='#'></a><div class='htip'>Закрыть этот блок</div></div>";
	return $(code);
};

$.fn.showOK = function(width) { //alert($(this).html());
	$(".ok_div").remove();
	width = width || 450;
	//var code = formLbox($(this).wrapInner("<table></table>")); //alert(code);
  return $(this).formLbox(width).appendTo("body").hide().centerScreen().show();
	//return this;
};

$.fn.toCart = function() { //alert($(this).html());
  if ($("#cartcontent").length) {
		var cartOffset = $("#cartcontent").offset(); //alert(cartOffset.top);
		var cartTop = (cartOffset.top+0)+"px"; //alert(cartTop);
		var cartLeft = (cartOffset.left+90)+"px"; //alert(cartLeft);
	}
	else {
		var cartTop = "-100px"; //alert(cartTop);
		var cartLeft = "-50px"; //alert(cartLeft);
	}
  $(this).animate({top:cartTop, left:cartLeft, width:"1px", height:"60px"},300,"",function() {
			$(".ok_div").remove();																										 
	});
	return this;
};

function preloadImages() {
	arg=preloadImages.arguments;
	upImages=new Array();
	for(var i=0;i<arg.length;i++) {
		upImages[i]=new Image(); //alert(arg[i]);
		upImages[i].src=arg[i];
	}
}

$(document).ready(function(){
													 
/*предзагрузчик картинок*/
preloadImages('/images/ui/close.gif',
							'/images/ui/c2-b.png',
							'/images/ui/c2-l.png',
							'/images/ui/c2-lb.png',
							'/images/ui/c2-lt.png',
							'/images/ui/c2-r.png',
							'/images/ui/c2-rb.png',
							'/images/ui/c2-rt.png',
							'/images/ui/ajax-loader.gif',
							'/images/ui/c2-t.png');
													 
var cartText = ($.cookie("cart") ? $.cookie("cart").replace(/\|/g,"'") : ""); //alert(cartText);
//var cartText = ($.cookie("cart") ? $.cookie("cart") : ""); alert(cartText);
eval("var cartObj = {"+cartText+"}"); //alert(cartObj[11]);

function obgString(obj) {
	var addString = "";
  for(var key in obj) {
	  addString += key+":"+obj[key]+",";
  }
	var length = addString.length; //alert(length);
	addString = addString.substring(0,length-1); 	//alert(addString);

	return addString;
};

$(".ok_close").live("click", function () { //alert($(this).parent().text());
	$(this).parent().remove();
	hideTip();
	return false;
});

function createTmpDiv() { //вспомогательная - создает скрытый контейнер
  $("<div id='tmp-div'></div>").appendTo("body").hide();
}

/*
$(".th_a").click(function () {
	$(".ok_div").remove();
	var code = "<div><div style='height:500px;'><img style='position:absolute; left:220px; top:250px;' src='/images/ui/ajax-loader.gif'></div></div>";
	$(code).showOK(750);
	//var id = $(this).attr("id").substring(8); alert(id);
	var fullLink = $(this).attr("href"); //alert(fullLink);
	if ($(this).is(".in_cart")) { //alert ("InCart!"); 
	  fullLink = fullLink+"?fromCart=1"
	}
	$(".lbox_content").load(fullLink+" #fullInfo");
	return false;
});
*/
						   
$(".add2Cart").live("click", function () {			//alert("start");	
	$(".ok_div").remove();
  var articul = $(this).attr("id").substring(3); //alert(articul);
	//var quantity = parseInt($("#quantity"+articul).attr("value")); //загрубляем
	var quantity = 1; 
	var price = Math.round(parseFloat($("#price"+articul).text())*100)/100; //alert(price);
	var addsum = price*quantity; //alert(addsum);
	var totalsumbefore = Math.round(parseFloat($(".totalsum:first").text())*100)/100; //alert(totalsumbefore);
	var totalquantitybefore = parseInt($(".totalquantity:first").text()); //alert(totalquantitybefore);
	var totalquantityafter = 0; 
	if (cartObj[articul]) { //изменяем объект
	  cartObj[articul] = cartObj[articul] + quantity; //alert(cartObj[id]);	
	}
	else { //добавляем в объект
		cartObj[articul] = quantity; //alert(cartObj[id]);
	}
	totalquantityafter = totalquantitybefore + 1;  //alert(totalquantityafter);
	//alert(totalquantityafter);
	var totalsumafter = (Math.round((totalsumbefore + addsum)*100)/100).toFixed(2);
	
	cartText = obgString(cartObj); //alert(cartText);
	//showOK("Товар добавлен в корзину.");
	//$.cookie('cart', cartText, { expires: 2, path: '/' });
	
	if (document.cookie && document.cookie != '') { //уже должны быть установлены куки!
		$.cookie('cart', cartText, { expires: 2, path: '/' }); //alert("Прием есть, обновляем.");
		$.cookie('cartsum', totalsumafter, { expires: 2, path: '/' });
		$(".totalquantity").text(totalquantityafter);
		$(".totalsum").text(totalsumafter); //alert(totalsumafter);
		var bg = $("#th_a_"+articul).find("img").attr("src"); //alert(bg);
		//var img_src = $("#th_a_"+articul).css("background-image"); //alert(img_src);
		var okText = "<table><tr><td style='width:210px;'><a style='display:block; width:200px; height:200px; background-position:center center; background-repeat:no-repeat; background-image:url("+bg+");'></a></td><td style='vertical-align:middle; font-size:13px;'>Товар добавлен в корзину!</td></tr></table>";
		//var cartOffset = $("#cartcontent").offset(); //alert(cartOffset.top);
		$(okText).wrapInner("<table></table>").showOK().wait(1500).toCart();
		$("#cartcontent").addClass("fullCart");
		$("#orderbtn").show();
	}
	else {
		alert("Для корректной работы корзины товаров вам необходимо включить прием cookie в браузере.");
	}

	return false;
});

function deleteitem (articul) {
  var price = parseFloat($("#price"+articul).text()); //alert(price);
  var quantity = parseInt($("#quantity"+articul).text()); //alert(quantity);
  var delsum = price*quantity; //alert(delsum);
  //var totalsumbefore = parseFloat($(".totalsum:first").text()); //alert(totalsumbefore);
	var totalsumbefore = Math.round(parseFloat($(".totalsum:first").text())*100)/100;
  //var totalquantitybefore = parseInt($(".totalquantity:first").text()); //alert(totalquantitybefore);
  var totalsumafter = (Math.round((totalsumbefore - delsum)*100)/100).toFixed(2);
	if (parseInt(totalsumafter)<0) totalsumafter=0; //если ошибка с десятичными..
  delete cartObj[articul];
  //totalquantityafter = totalquantitybefore - 1;  
  cartText = obgString(cartObj); //alert(cartText);
	if (document.cookie && document.cookie != '') { //уже должны быть установлены куки!
		$.cookie('cart', cartText, { expires: 2, path: '/' }); //alert("Прием есть, обновляем.");
		$.cookie('cartsum', totalsumafter, { expires: 2, path: '/' });
		//$(".totalquantity").text(totalquantityafter);
		$(".totalsum").text(totalsumafter); //alert(totalsumafter);
		$("#product"+articul).remove();
		var code = "<div><div style='padding:20px 0 20px 0; text-align:center;'>Товар удален из корзины.</div></div>";
		/*$(code).showOK().wait(1000).animate({width:"0px", height:"0px"},300,"",function() {
			$(".ok_div").remove();																										 
	  });*/
		$(code).showOK(400).wait(500).toCart();
		//$("#cartcontent").css("background-position","left -46px");
		checkCartContent (totalsumafter);
	}
	else {
		alert("Для корректной работы корзины товаров вам необходимо включить прием cookie в браузере.");
	}	
}

function changeitem (articul,quantity) {
  var price = parseFloat($("#price"+articul).text()); //alert(price);
  var addsum = price*quantity; //alert(addsum);
  var totalsumbefore = parseFloat($(".totalsum:first").text()); //alert(totalsumbefore);
  //var totalquantitybefore = parseInt($(".totalquantity:first").text()); //alert(totalquantitybefore);
	var totalsumafter = (Math.round((totalsumbefore + addsum)*100)/100).toFixed(2);
	if (parseInt(totalsumafter)<0) totalsumafter=0; //если ошибка с десятичными..
  //totalquantityafter = totalquantitybefore;  
	cartObj[articul] = cartObj[articul] + quantity;
  cartText = obgString(cartObj); //alert(cartText);
	if (document.cookie && document.cookie != '') { //уже должны быть установлены куки!
		$.cookie('cart', cartText, { expires: 2, path: '/' }); //alert("Прием есть, обновляем.");
		$.cookie('cartsum', totalsumafter, { expires: 2, path: '/' });
		//$(".totalquantity").text(totalquantityafter);
		$(".totalsum").text(totalsumafter); //alert(totalsumafter);
		$("#quantity"+articul).text(cartObj[articul]);
		$("#sum"+articul).text((cartObj[articul]*price).toFixed(2));
		checkCartContent (totalsumafter);
	}
	else {
		alert("Для корректной работы корзины товаров вам необходимо включить прием cookie в браузере.");
	}	
}

function checkCartContent (sum) {
	var sum = parseInt(sum); //alert(sum);
	var freeSum = parseInt($("#freeSum").text()); //alert(freeSum);
	var freePizza = parseInt($("#freePizza").text());
	var pizzacount = 0; 
	$(".isPizza").each(function (i) { 
		pizzacount += parseInt($(this).text());													 
  }); //alert (pizzacount);
	
	if (sum>=freeSum || pizzacount>=freePizza) {
		$("#payDelivery").hide();
		$("#freeDelivery").show();
	}
	else {
		$("#freeDelivery").hide();
		$("#payDelivery").show();		
		if (sum==0) {
			$("#cartContent").html("<br /><center><b>Корзина пуста.</b></center>");
		}
	}
}
/*
$(".deleteitem").click(function () { 
  var articul = $(this).attr("id").substring(6); //alert(articul);
	hideTip();
	if (confirm("Уверены, что хотите полностью удалить товар из корзины?")) {
		deleteitem(articul);
	}
  return false;
});

$(".plus1").click(function () { 
  var articul = $(this).attr("id").substring(4); //alert(articul);
  var quantity = 1; //alert(quantity);
  changeitem(articul,quantity);
  return false;
});


$(".minus1").click(function () { 
  var articul = $(this).attr("id").substring(5); //alert(articul);
	var beforequantity = parseInt($("#quantity"+articul).text()); //alert(beforequantity);
  var quantity = -1; 
  if (beforequantity <= 1) {
		hideTip();
		if (confirm("Уверены, что хотите полностью удалить товар из корзины?")) {
		  deleteitem(articul);
		}
	}
	else {
		changeitem(articul,quantity);
	}
  return false;
});
*/

//===== HOVERTIP
//$("*").live("click", hideTip);
if($(".hovertip").length >= 1) $('body').append('<div id="hovertip"></div>');

$(".hovertip").not(".nextdivtip").each(function() {
  var content = $(this).attr("title");
  $(this).after("<div class='htip'>"+content+"</div>").addClass("nextdivtip").removeAttr("title");
});

$(".hovertip").live("mouseover", function (e) {
	var leftDelta = 0; var topDelta = 0;
	var windowWidth = $(window).width();
	var windowHeight = $(window).height();
	var scrollTop = $(window).scrollTop(); 
	$('#hovertip').html($(this).next('.htip').html());
	if(windowWidth - e.pageX < $('#hovertip').width() * 2 + 30) leftDelta = $('#hovertip').width() + 40;
	if(((windowHeight + scrollTop) - e.pageY) < $('#hovertip').height() * 2 + 30) topDelta = $('#hovertip').height() + 40;
	$('#hovertip').css({'top': ((e.pageY+15) - topDelta)+'px', 'left': ((e.pageX+15) - leftDelta)+'px', 'z-index':100});
	$('#hovertip').show();
	$(document).mousemove(function(e){
			$('#hovertip').css({'top': ((e.pageY+15) - topDelta)+'px', 'left': ((e.pageX+15) - leftDelta)+'px'});
	});
});

$(".hovertip").live("mouseout", hideTip);
function hideTip() {
	$().unbind('mousemove');
	$("#hovertip").hide();
	leftDelta = 0; topDelta = 0;
}
//===== / HOVERTIP

// HIDE .toggle DIV 
	if($('.toggle').length && $('.selection').length) {
		if($('.selection :selected').val() == '1') $('.toggle').hide();
		else if($('.selection :selected').val() == '2') $('.toggle').show();
		$('.selection').change( function() {
			if($('.selection :selected').val() == '1') $('.toggle').hide();
			else if($('.selection :selected').val() == '2') $('.toggle').show();
		});
	}

// CHANGE BUTTON BG AT CLICKED
	if($('.btn1').length) {
		$('.btn1').mousedown(function() {$(this).addClass('clicked')})
					.mouseup(function() {$(this).removeClass('clicked')})
					.mouseout(function() {$(this).removeClass('clicked')});
	}

});




