function cart_add(id){
  var am = $("#amount-"+id).val();

	$.ajax({
		url: "cart/cart.php?a=1&assortment="+id+"&amount="+am,
		success: function(data){

            $("#cart-left-div").fadeOut(500, function(){$("#cart-left-div").html(data);});
            $("#cart-left-div").fadeIn(1000);
            cart_to_fly(id);
        }
	});

}
function cart_to_fly(id) {
		
    var helper = $("#helper-"+id);
    var leftcart = $("#cart-left-div");
		
    var flyto = getCenterPos(helper, leftcart);

    helper.animate({top: flyto.y, left: flyto.x}, 700).fadeOut(600, function(){helper.remove();});
}
function cart_add_form(id, obj) {
	var forma, pos, offsets;

	forma = "<div id='helper-"+id+"' class='cart_amounter'><a class='close_btn' href='javascript:void(0);' onclick='cart_close_helper(this);'>[x]</a><label>Количество:<br /><a href='javascript:void(0);' onclick='cart_amount_val(\""+id+"\", 0);'><img src='../../cart/images/minus.png' border='0' /></a> <input type='text' value='1' name='amount-"+id+"' id='amount-"+id+"' size='2' /> <a href='javascript:void(0);' onclick='cart_amount_val(\""+id+"\", 1);'><img src='../../cart/images/plus.png' border='0' /></a></label> <input type='button' value='OK' onclick='cart_add(\""+id+"\");' /></div>";
	
    $('#helper-'+id).remove();
	$('body').append(forma);

	var caf = $('#helper-'+id);
    var newp;
	newp = getCenterPos(caf, obj);
	caf.css({'top':newp.y+'px','left':newp.x+'px'}).fadeIn(1000);
}

function cart_close_helper(obj) {    $(obj).parent().fadeOut(1000);  }

function cart_amount_val(id,pm){

    var pre = $("#amount-"+id).val();
    var val = (pm == 1) ? pre-(-1) : (pre > 0) ? pre-1 : pre;
    $("#amount-"+id).val(val);

}

function cart_flush(){

	$.ajax({
		url: "cart/cart.php?a=3",
		success: function(data){ $("#cart-left-div").fadeOut(1000, function(){$("#cart-left-div").html(data)});$("#cart-left-div").fadeIn(1000);}
	});

}

function prod_del(pid){
	$.ajax({
		url: "cart/cart.php?a=2&assortment="+pid,
		success: function(data){
            $("#cart-left-div #cart-li-"+pid).fadeOut(800, function(){$("#cart-left-div").html(data);});
            $("#cart-left-div").fadeIn(800);
        }
	});
}



// вспомогательные функции
function getPosition(elem){
  var el = $(elem).get(0);
	
	var p = {x: el.offsetLeft, y: el.offsetTop};
	while (el.offsetParent){
		el = el.offsetParent;
		p.x += el.offsetLeft;
		p.y += el.offsetTop;
		if (el != document.body && el != document.documentElement){
			p.x -= el.scrollLeft;
			p.y -= el.scrollTop;
		}
	}
	return p;
}

function getCenterPos(elA,elB){
  posB = new Object();
  cntPos = new Object();
  posB = getPosition(elB);
  var correct;
  cntPos.y = Math.round(($(elB).outerHeight()-$(elA).outerHeight())/2)+posB.y;
  cntPos.x = Math.round(($(elB).outerWidth()-$(elA).outerWidth())/2)+posB.x;
  if(cntPos.x+$(elA).outerWidth()>$(window).width()){
    cntPos.x = Math.round($(window).width()-$(elA).outerWidth())-2;
  }
  if(cntPos.x<0){
    cntPos.x = 2;
  }
  return cntPos;
}

function getOffset(elem) {
    if (elem.getBoundingClientRect) {
        // "правильный" вариант
        return getOffsetRect(elem);
    } else {
        // пусть работает хоть как-то
        return getOffsetSum(elem);
    }
}

function getOffsetSum(elem) {
    var top=0, left=0;
    while(elem) {
        top = top + parseInt(elem.offsetTop);
        left = left + parseInt(elem.offsetLeft);
        elem = elem.offsetParent;
    }

    return {top: top, left: left}
}

function getOffsetRect(elem) {
    // (1)
    var box = elem.getBoundingClientRect();

    // (2)
    var body = document.body;
    var docElem = document.documentElement;

    // (3)
    var scrollTop = window.pageYOffset || docElem.scrollTop || body.scrollTop;
    var scrollLeft = window.pageXOffset || docElem.scrollLeft || body.scrollLeft;

    // (4) 
    var clientTop = docElem.clientTop || body.clientTop || 0;
    var clientLeft = docElem.clientLeft || body.clientLeft || 0;

    // (5)
    var top  = box.top +  scrollTop - clientTop;
    var left = box.left + scrollLeft - clientLeft;

    return { top: Math.round(top), left: Math.round(left) }
}
