function Shop(){

	var self = this;

	this.showArticle = function(articleNo) {
		if($('loaderHolder'))
		$('loaderHolder').innerHTML = "<div id='loading'><img src='/shop/img/loading.gif' alt='loading...'></div>";
		
		params = "?articleNo=" + articleNo;

		var options = {
			method		: 'post',
			parameters	: params,
			evalJS		: 'force',
			evalScripts : true,
			onComplete  : function(resp) {
				self.showDetails();
				imageSlider.init();
				
				if(supersleight)
				supersleight.run();
			}
		}
		new Ajax.Updater('articleDetails', 'ajaxArticleDetails.php', options);
	}
	
	this.addToCart = function(articleNo) {
		params = "?action=addArticle&articleNo=" + articleNo;
		
		var options = {
			method		: 'post',
			parameters	: params,
			evalJS		: 'force',
			evalScripts : true,
			onComplete  : function(resp) {
				//alert(resp.responseText);
				self.refreshMiniCart();
			}
		}
		
		new Ajax.Request("ajaxCartActions.php", options);
	}
	
	this.cartChangeQuantity = function(articleNo, quantity){
		
		if(quantity == "")
		quantity = 0;
		
		params = "?action=changeQuantity&articleNo=" + articleNo + "&quantity=" + quantity;
		
		var options = {
			method		: 'post',
			parameters	: params,
			evalJS		: 'force',
			evalScripts : true,
			onComplete  : function(resp) {
				//alert(resp.responseText);
				self.refreshMiniCart();
				self.refreshCart();
			}
		}
		
		new Ajax.Request("ajaxCartActions.php", options);
	}
	
	this.cartCheckZeros = function(articleNo, quantity){
		if(quantity == 0) {
			alert("Positionen mit Menge 0 werden entfernt.");
			self.removeFromCart(articleNo);
		}
	}
	
	this.removeFromCart = function(articleNo) {
		params = "?action=removeArticle&articleNo=" + articleNo;
		
		var options = {
			method		: 'post',
			parameters	: params,
			evalJS		: 'force',
			evalScripts : true,
			onComplete  : function(resp) {
				//alert(resp.responseText);
				self.refreshMiniCart();
				self.refreshCart();
			}
		}
		
		new Ajax.Request("ajaxCartActions.php", options);
	}
	
	
	this.refreshMiniCart	= function(articleNo) {
		params = "?action=refreshMiniCart"
		
		var options = {
			method		: 'post',
			parameters	: params,
			evalJS		: 'force',
			evalScripts : true,
			onComplete  : function(resp) {
				$('shopMiniCart').innerHTML = resp.responseText;
				if(supersleight)
				supersleight.run();
			}
		}
		
		new Ajax.Request("ajaxCartActions.php", options);
		
		params2 = "?action=refreshMiniCart2"
			
		var options2 = {
			method		: 'post',
			parameters	: params2,
			evalJS		: 'force',
			evalScripts : true,
			onComplete  : function(resp) {
				$('cartHolder').innerHTML = resp.responseText;
				if(supersleight)
				supersleight.run();
			}
		}
		
		new Ajax.Request("ajaxCartActions.php", options2);
		
	}
	
	this.refreshCart	= function(articleNo) {
		params = "?action=refreshCart"
		
		var options = {
			method		: 'post',
			parameters	: params,
			evalJS		: 'force',
			evalScripts : true,
			onComplete  : function(resp) {
				$('shopCheckOut').innerHTML = resp.responseText;
			}
		}
		
		new Ajax.Request("ajaxCartActions.php", options);
	}
	
	this.checkOutStep2 = function() {
		params = "?action=checkOutStep2";

		var options = {
			method		: 'post',
			parameters	: params,
			evalJS		: 'force',
			evalScripts : true,
			onComplete  : function(resp) {
				$('shopCheckOut').innerHTML = resp.responseText;
			}
		}
		
		new Ajax.Request("ajaxCartActions.php", options);
	}
	
	this.checkOutStep3 = function() {
		var params = Form.serialize("adress");
		params += "&action=checkOutStep3";

		var options = {
			method		: 'post',
			parameters	: params,
			evalJS		: 'force',
			evalScripts : true,
			onComplete  : function(resp) {
				$('shopCheckOut').innerHTML = resp.responseText;
			}
		}
		
		new Ajax.Request("ajaxCartActions.php", options);
	}
	
	this.checkOutFinal = function() {
		params = "&action=checkOutFinal";

		var options = {
			method		: 'post',
			parameters	: params,
			evalJS		: 'force',
			evalScripts : true,
			onComplete  : function(resp) {
				$('shopCheckOut').innerHTML = resp.responseText;
				self.refreshMiniCart();
			}
		}
		
		new Ajax.Request("ajaxCartActions.php", options);
	}
	
	this.setDeliveryAdress = function(deliveryFlag) {
		var params = Form.serialize("adress");
		params += "&action=setDeliveryAdress&value=" + deliveryFlag;

		var options = {
			method		: 'post',
			parameters	: params,
			evalJS		: 'force',
			evalScripts : true,
			onComplete  : function(resp) {
				//$('shopCheckOut').innerHTML = resp.responseText;
				self.checkOutStep2();
			}
		}
		
		new Ajax.Request("ajaxCartActions.php", options);
	}
	
	this.gotoArticle = function(articleNo) {
		self.showArticle(articleNo);
	}
	
	this.showDetails =  function(){
		$('shopOverlay').setStyle({
		  display: 'block'
		});
		
		$('articleDetails').setStyle({
		  display: 'block'
		});
	}
	
	this.closeDetails = function(){
		$('shopOverlay').setStyle({
		  display: 'none'
		});
		
		$('articleDetails').setStyle({
		  display: 'none'
		});
	}
	
	this.showCheckOut =  function(){
		self.refreshCart();
		
		$('shopOverlay').setStyle({
		  display: 'block'
		});
		
		$('shopCheckOut').setStyle({
		  display: 'block'
		});
		
		$('closeShopCheckOut').setStyle({
		  display: 'block'
		});
	}
	
	this.closeCheckOut = function(){
		$('shopOverlay').setStyle({
		  display: 'none'
		});
		
		$('shopCheckOut').setStyle({
		  display: 'none'
		});
		
		$('closeShopCheckOut').setStyle({
		  display: 'none'
		});
		
		$('pirateCow').setStyle({
			display: 'none'
		});
	}
	
	this.showPirateCow = function(){
		$('pirateCow').setStyle({
			display: 'block'
		});
	}
	this.hidePirateCow = function(){
		$('pirateCow').setStyle({
			display: 'none'
		});
	}
}

var shop = new Shop();


