var cart = {
	className : 'cart',
	author : 'ToshaUst',
	animSpeed : 500,
	url : 'ajax/cart.php',
	jqPopup : null,
	jqPreloader : null,
	debug : true,
	
	initObject : function()
	{
		this.jqPopup = $('#popup');
		this.jqPreloader = $('#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,e;

		cart.showPreloader(event.pageX,event.pageY);
		
		form = $(this)[0].form;
		//gid = form.elements.namedItem('good[id]').value;
		
		count = form.elements.namedItem('good[count]').value;
		if(isNaN(count) || count <= 0)
		{
			alert('Введите числовое значение количества товара');
			cart.hidePreloader();
		}
		else
		{
			data = $(form).serialize();//'good[id]='+gid+'&good[count]='+count;
			
			/*e = form.elements.namedItem('good[metall]');
			if(e && typeof(e.value) != 'undefined') data += '&good[metall]='+e.value;
			
			e = form.elements.namedItem('good[gem]');
			if(e && typeof(e.value) != 'undefined') data += '&good[gem]='+e.value;
			
			e = form.elements.namedItem('good[size]');
			if(e && typeof(e.value) != 'undefined') data += '&good[size]='+e.value;*/
			
			cart.setPopUpPosition(event.pageX,event.pageY);
			//data='gid='+gid+'&count='+count;
			$.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();
	}
}

