var cart = {
	className : 'cart',
	author : 'ToshaUst',
	animSpeed : 500,
	url : 'index.php',
	jqPopup : null,
	jqPreloader : null,
	debug : true,
	
	initObject : function()
	{
		this.jqPopup = $('#cart');
		this.jqPreloader = $('#cart_preloader');
		$('input.zakaz').click(cart.addToCart);
	},
	
	showPopUp : function()
	{
		this.jqPopup.fadeIn(this.animSpeed);
	},
	
	setPopUpPosition : function(x,y)
	{
		this.jqPopup.css({ 
			display : 'block',
			visibility : 'hidden'
		});
		
		var h = this.jqPopup.height();
		var w = this.jqPopup.width();
		
		x = Math.ceil(parseInt(x) - w/2) + 'px';
	    y = Math.ceil(parseInt(y) - h/2) + 'px';

		this.jqPopup.css({ 
			top : y,
			left : x,
			display : 'none',
			visibility : 'visible'
		});
	},
	
	hidePopUp : function()
	{
		this.jqPopup.hide();
	},
	
	addToCart : function (event)
	{
		var form,eCount,data,gid,count;

		cart.showPreloader(event.pageX,event.pageY);
		
		form = $(this)[0].form;
		gid = form.elements.namedItem('gid').value;
		
		
		count = form.elements.namedItem('count').value;
		if(isNaN(count) || count <= 0)
		{
			alert('Введите числовое значение количества товара');
			cart.hidePreloader();
		}
		else
		{
			cart.setPopUpPosition(event.pageX,event.pageY);
			data='gid='+gid+'&count='+count+'&cart_send_type=ajax';
			$.ajax({
				url : cart.url,
				data : data,
				success : cart.showOk,
				error : cart.ajaxError
			});
		}
		
		return false;
	},
	
	showOk : function(xml)
	{
		var errorcode = jQuery('errorcode',xml).text();
		if(errorcode == '0')
		{
			var count = jQuery('count',xml).text();
			var sum = jQuery('sum',xml).text();
			$('#cart_count').html(count);
			$('#cart_sum').html(sum);
			cart.hidePreloader();
			cart.showPopUp();
		} 
		else if(cart.debug)
		{
			var errormessage = jQuery('errormessage',xml).text();
			alert(errormessage);
			cart.hidePreloader();
		}
	},

	ajaxError : function(xml,text,oError)
	{
		if(oError)
		{
			var str = oError.name + ':' + oError.message + ' in file:' + oError.fileName + ' in line:'+oError.lineNumber;
			alert(str);
		}
		else alert(text);
	},
	
	showPreloader : function(x,y)
	{
		this.jqPreloader.css({ 
			display : 'block',
			visibility : 'hidden'
		});
		
		x = Math.ceil(parseInt(x) - this.jqPreloader.height()/2) + 'px';
		y = Math.ceil(parseInt(y) - this.jqPreloader.width()/2) + 'px';
		
		this.jqPreloader.css({ 
			top : y,
			left : x,
			display : 'block',
			visibility : 'visible'
		});
	},
	
	hidePreloader : function()
	{
		this.jqPreloader.hide();
	}

	
}

