var minSumma = 500;
var totalSumma = 0;

var cookieName = "AWS";
var goodsSeparator = "/";
var valuesSeparator = ";";


function getFormatedStr(value,diver) {
	/*
	var formatedValue = "";
	if (!diver) diver = ".";
	
	var realHeel = new String(  Math.ceil((value - parseInt(value))*100)  ).substr(0,2);
	
	if (value > 999) {
		var thousand = parseInt(value / 1000);
		var heels = "";
		
		var subHeels = (value - thousand*1000);
		var _ceil = parseInt(subHeels); // Целая часть
			
		if (_ceil < 10) {
			heels = "00"+_ceil;
		} else if (_ceil < 100) {
			heels = "0"+_ceil;
		} else {
			heels = _ceil;
		}	
		
		if (realHeel > 0) heels = heels + diver + realHeel;
				
		if (thousand > 999) {
			thousand = getFormatedStr(thousand," ");			
		}
		
		formatedValue = "" + thousand + "&nbsp;" + heels;
		
	} else {
		if (value != 0) {
			var NewValue = new String(parseInt(value));
			if (realHeel > 0) NewValue += diver + realHeel;
			
			formatedValue = NewValue;
		} else {
			formatedValue = "";
		}	
	}	
	//return formatedValue;
	*/	
	return value.toFixed(2);
}

function getMathValue(inValue, defaultValue) {
	var value = parseFloat(inValue);
	if (value==undefined||value===0||isNaN(value)) value = defaultValue;
	
	value = Math.max(value,0);
	
	if (value == 0) value = defaultValue;

	return value;
}

function updateCookie(ID, inCount, inPrice) {
	var value = "";
	var goodsCount = 0;
	var goodsSumma = 0;
	var inBasket = false;	
	
	// Открываю куку и обновляю её согласно новым ТМЦ
	cookieVal = GetCookie(cookieName);
	if (cookieVal) {
		// массив товаров
		n = 0;
		var goods = cookieVal.split(goodsSeparator);
		while(n != goods.length) {
			// товар с параметрами
			var good = goods[n].split(valuesSeparator);
			
			_goodCode	= good[0]; 	
			_count		= getMathValue(good[1], 0);
			_price 		= getMathValue(good[2], 0);
			
			if (_goodCode) {
				if (_goodCode == ID) {
					if (inCount != 0) {
						_count += inCount;
					} else {
						_count = 0;
					}	
					inBasket = true;				
				}
				if (_count >= 0) {
					value += _goodCode + valuesSeparator + _count + valuesSeparator + _price + goodsSeparator;				
					goodsCount ++;
					goodsSumma += _count*_price;
				}	
			}
			
			n++;	
		}
		
	}
	
	if ((inBasket == false)&&(inCount > 0)) {	
		value += ID + valuesSeparator + inCount + valuesSeparator + inPrice + goodsSeparator;
		goodsCount++;
		goodsSumma += inCount*inPrice;
	}	
	
	if (goodsSumma > 0) {
		SetCookie( cookieName, value );
	} else {
		SetCookie( cookieName, " " );
		DeleteCookie( cookieName );
	}	
	
	totalSumma = goodsSumma;
	
	return true;
}

function showCart() {
	if (totalSumma) {
		$("#cartGoods").html('<span clas="title">Сумма:</span> <nobr><b>'+getFormatedStr(totalSumma)+"</b>&nbsp;грн.</nobr>");
	} else {
		$("#cartGoods").html('');
	}		
}

function showCartItems() {
	$("#cartItems").html("<img src='/i/loading.gif'> Идёт загрузка данных ...");
	$.post(
	  '/inc/store.cart.php',
	  {
	    loo: "1"	    
	  },
	  onAjaxSuccess
	);
}

function updateTotal() {
	totalSumma = 0;	
	$("#stTable :hidden").each(function(i){
	    var price = getMathValue($(this).val(), 0);
		var count = getMathValue($(this).next().val(), 0);
		totalSumma = totalSumma + price * count;
	});

	showCart();
	if (totalSumma) {
		$("#total").html('<b>'+getFormatedStr(totalSumma)+'</b>  грн.');
	} else {
		$("#total").html(' ');
	}	
}
function onAjaxSuccess(data) {
	// Здесь мы получаем данные, отправленные сервером
	$("#cartItems").html(data);		
	$("#stTable input").each(numberize2);
	
	updateTotal();
	
	if (totalSumma < minSumma) {
		$("#normal").hide();
		$("#small").show();			
	} else {
		$("#small").hide();			
		$("#normal").show();
	}		
}

function initializeShop() {
	//  Формат cookie
	// 00489;12;12.56/..../03245;1;4/
	// <код ТМЦ> ; <количество> ; <цена> /
	
	cookieVal = GetCookie(cookieName);
	
	if (cookieVal) {
		// массив товаров
		var goods = cookieVal.split(goodsSeparator);
		n = 0;
		totalSumma = 0;
		while(n != goods.length) {
			// товар с параметрами
			var good = goods[n].split(valuesSeparator);
			
			_goodCode = good[0];
			if (_goodCode) {
				_count	= getMathValue(good[1], 0);
				_price 	= getMathValue(good[2], 0);
				
				totalSumma += _price * _count;				
			}	
			
			n++;
		}		
	}
	
	$("#cartGoods").hide();
	showCart();
	$("#cartGoods").fadeIn("slow");	
}

function colorize(index){
  if (index > 2) if(index % 2 == 1) $(this).addClass("odd");
  
  $("td:last").addClass("lCol");
  
} 

function linkize(index){
	$(this).bind("click", function(){
			var inp = $(this).prev();				
			var ID = inp.attr('id');
			var price = getMathValue(inp.prev().attr('value'),0);
			var count = getMathValue(inp.attr('value'),0);
			var fly = $(this).clone(true).insertAfter(this);			
			var offset = fly.offset();
			
			if (count) {
				$("#cartGoods").hide();
				
				updateCookie(ID, count, price);	
				
				fly.css("position","absolute");
				fly.animate({"top": "-="+(offset.top-70)+"px", "opacity": "toggle"}, "slow");			
							
				showCart();
				
				$("#cartGoods").fadeIn("slow");
			}	
		}	
	);	
}

function linkize2(index){
	$(this).bind("click", function(){
			if (confirm('Вы действительно желаете удалить позицию из заказа? \nПри этом вся информация по ней будет потеряна.')) {
				var inp = $(this).prev();				
				var ID = inp.attr('id');
				var price = getMathValue(inp.prev().attr('value'),0);
				var count = getMathValue(inp.attr('value'),0);
				var fly = $(this).clone(true).insertAfter(this);			
				var offset = fly.offset();
				
				if (count) {
					$("#cartGoods").hide();
					
					updateCookie(ID, -count, price);	
					
					fly.css("position","absolute");
					fly.animate({"top": "-="+(offset.top-70)+"px", "opacity": "toggle"}, "slow");			

					showCartItems();
				}	
			}	
		}	
	);	
}
 
function numberize(index){
	$(this).keyup(function (e) {
		if (e.keyCode > 47 && e.keyCode < 58 || e.keyCode == 8) {			
			//...
		} else {	
			$(this).val(getMathValue($(this).val(),1));			
			return false;
		}	
    });
} 

function numberize2(index){
	$(this).keyup(function (e) {
		var inp = $(this);
		var ID = inp.attr('id');
		var price = getMathValue(inp.prev().attr('value'),0);
		var curVal = getMathValue($(this).val(),0);
		
		updateCookie(ID, -curVal, price);
		
		if (e.keyCode == 38) {
			curVal = curVal + 1;
			$(this).val(curVal);
		} else if (e.keyCode == 40) {			
			if (curVal > 0) {
				curVal = curVal - 1;
				$(this).val(curVal);
			}	
		} else if (e.keyCode > 47 && e.keyCode < 58 || e.keyCode == 8) {
		
		} else {	
			$(this).val(curVal);
		}
		
		updateCookie(ID, curVal, price);
		
		updateTotal();
		
		if (totalSumma < minSumma) {
			$("#normal").hide();
			$("#small").show();			
		} else {
			$("#small").hide();			
			$("#normal").show();
		}	
    });
} 
 
$(document).ready(function(){
	$("#stTable tr").each(colorize);
	$("#stTable input").each(numberize);
	$("#stTable .addToCart").each(linkize);
	
	//$("#stTable tr:last").addClass("lRow");	
	initializeShop();	
})
