/**
 *	Default javascript document for BS Shop
 *	
 *	@author Direct-effect <info@direct-effect.nl>
 *	@version 1.0
 *	@package backsite_shop
 */	
 var $cartdetail_container = "#cart_details";
 var $cart_container = "#cart_info";
 
$(function(){
	initShop();			
});

/**
 *	Inititaliseer de shop, voeg funcitonaliteit toe aan de knoppen	
 *	@void
 */
function initShop(){
	$(".add-to-cart").click(function(){
		// voeg standaard 1 artikel toe aan het mandje
		addToCart($(this).attr("rel"), 1);								 
	});
	
	initCartDetail();
}

/**
 *	Winkelwagen initialiseren
 *	@param String $
 *	@void
 *	@return
 */
function initCartDetail(){
//	uiButton(".quick-clear-cart");
	$(".quick-clear-cart").click(function(){
		clearCart(false);
	});
	
	$(".checkout-cart").click(function(){
		alert("Uitchecken");
	});
	
	$(".update-item.disabled .ui-icon").addClass("ui-state-disabled");
	
	// handlers toeveogen aan de knopjes in het winkelmandje
	$(".update-item").click(function(){
		var $item = $(this).attr("rel");
		
		if($(this).hasClass("plus")){			
			updateItem($item, $(this).attr("aantal"));			
		}else if($(this).hasClass("min") && !$(this).hasClass("disabled")){
			updateItem($item, $(this).attr("aantal"));
		}else if($(this).hasClass("delete")){
			removeItem($item);	
		}
	});
}



/**
 *	Voeg het artikel toe aan het winkelmandje
 *	@param String artikel
 *	@param int aantal
 *	@void
 *	@return
 */
function addToCart(artikel, aantal){
	$url = "shop/handleactions.php?action=add&ajax=1&artikel="+artikel+"&aantal="+aantal;
	
	$.get($url, function($data){
		if($data == "OK"){
			// cart details bijwerken
			updateCartInfo();
			showMessage("Het artikel is aan uw mandje toegevoegd", "info");	
		}else{
			showMessage($data, "error");	
		}
	});
}

/**
 *	Wijzig het aantal van het artikel
 *	@param String $artikel
 *	@param int $aantal
 *	@void
 */
function updateItem(artikel, aantal){
	$url = "shop/handleactions.php?action=update&ajax=1&artikel="+artikel+"&aantal="+aantal;
	
	$.get($url, function($data){
		if($data == "OK"){
			// cart details bijwerken
			updateCartInfo();
		}else{
			showMessage($data, "error");	
		}
	});	
}

/**
 *	Verwijder het artikel uit het mandje
 *	@param String $artikel
 *	@param int $aantal
 *	@void
 */
function removeItem(artikel){
	$url = "shop/handleactions.php?action=delete&ajax=1&artikel="+artikel;
	icon = "ui-icon-info";
	main_class = "info";
	$("body").append('<div class="message ui-state-highlight " id="display_message"><span class="ui-icon ui-icon-info"></span> Weet u zeker dat u dit artikel wilt verwijderen?</div>');

	$("#display_message").dialog({ dialogClass: main_class,  
								   buttons: { "Annuleren": function() { $(this).dialog("close"); $("#display_message").remove();},
								   "OK, verwijderen": function(){
									   	$("#display_message").dialog("close");
										$("#display_message").remove();
									  	// Wanneer het verwijderen bevestigd is, dan het artikel verwijderen										
										$.get($url, function($data){
											if($data == "OK"){
												// cart details bijwerken
												updateCartInfo();												
											}else{
												showMessage($data, "error");	
											}
										});	
									   } }, close: function(event, ui){
		// verwijder de boodschap na sluiten, zodat geen conflict kan optreden met een volgende boodschap
		$("#display_message").remove();							  
	}});	
}

/**
 *	Laad de inhoud van het winkelmandje opnieuw
 *	@void
 */
function updateCartInfo(){
	// lader tonen in de cart container
	showSpinner($($cart_container));
	showSpinner($($cartdetail_container));
	$($cart_container).load("shop/shop.cartinfo.php?show=info", function(){
		initCartDetail();	// functies aan de cart detail items vernieuwen																	 
		uiButton(".bs-ui-button");
	});	
	
	$($cartdetail_container).load("shop/shop.cartdetails.php", function(){
		initCartDetail();	// functies aan de cart detail items vernieuwen	
		uiButton(".bs-ui-button");
	});	
	
}

/**
 *	Maak het mandje leeg: verwijder alle gekoppelde items
 *	@param String $
 *	@void
 *	@return
 */
function clearCart(full){
	showSpinner($($cart_container));
	
	$url = "shop/handleactions.php?action=clear&ajax=1";
	var full = full;
	$.get($url, function($data){
		if($data == "OK"){
			if(full){
				// doorsturen naar de shop openingspagina??
			}else{
				// cart details bijwerken
				updateCartInfo();
			}
		}else{
			showMessage($data, "error");	
		} 
	});
}

function showSpinner($container){
	$container.html('<div class="loader"><img src="shop/images/loader.gif" /> loading... </div>');
}

/**
 *	Maak een message aan en toon deze	
 *	@param String message  	De te tonen (html)inhoud van de message
 *	@param String type  	Het type van de message, info of error
 */
function showMessage(message, type){
	
	if(type == "error"){
		state = "ui-state-error";
		icon = "ui-icon-alert";
		main_class = "alert";
	}else{
		state = "";//ui-state-default"
		icon = "ui-icon-info";
		main_class = "info";
	}
	
	$("body").append('<div class="message '+state+'" id="display_message"><span class="ui-icon '+icon+'"></span> '+message+'</div>');
	$("#display_message").dialog({ dialogClass: main_class,  buttons: { "Sluiten": function() { $(this).dialog("close"); } }, close: function(event, ui){
		// verwijder de boodschap na sluiten, zodat geen conflict kan optreden met een volgende boodschap
		$("#display_message").remove();							  
	}});
}

function showAjaxMessage(message_code, type){
		
}

function addIcon($container, $icon_type){
	$contianer.prepend('<span class="ui-icon ui-icon'+$icon_type+' "></span>' );
}
