	/* 
	 * Global JS
	 */
	
	// Set variables
	var baseUrl = "http://www.marcschwencke.com";
	
	// Set action vars
	var ActCheckMemberExistence = "37";
	var ActGetMemberData = "38";
	var ActGetJsonCartData = 41;
	var ActAddProduct = 23
	var ActChangeProduct = 25;
	
	
	$.ajaxSetup({
		url: baseUrl,
		global: false,
		cache: false,
		type: "GET",
		dataType: "json"
	}); //close $.ajaxSetup
	
	function goTo(url) {
		window.location= url;
	}
	
	
	function loopObject(obj)
	{
		var str="";
		
		for(prop in obj)
		{
			str+=prop + " value :"+ obj[prop]+"\n";
		}
		
		alert(str); //Show all properties and its value
	}
	
	
	function printSystemError(method)
	{
		jAlert('Er is een ernstige fout opgetreden in '+ method +'.', 'Waarschuwing');
	}
	
	function changeProduct(productId, change, quantity)
	{
		quantity = 0;
		
		$.ajax({
			data: { ACT: ActChangeProduct, "dataType" : "json", "productId" : productId, "quantity" : quantity, "change" : change  },
			success: function(data){
				responseProduct(data);
				loadCart();
			},
			error: function(){
				printSystemError('deleteProduct');
			},
			beforeSend: function(){
				$('#pageLoader').dialog("open");
			},
			complete: function(){
				$('#pageLoader').dialog("close");
			}
		}); //close $.ajax 
		
	}
	
	function responseProduct(data) 
	{
		//jAlert(data.message, 'Notificatie');	
	}
	
	function addProduct(productId)
	{
		$.ajax({
			data: { ACT: ActAddProduct, "dataType" : "json", "productId" : productId },
			success: function(data){
				responseProduct(data);
				loadCart();
			},
			error: function(){
				printSystemError('addProduct');
			},
			beforeSend: function(){
				$('#pageLoader').dialog("open");
			},
			complete: function(){
				$('#pageLoader').dialog("close");
			}
	
		}); //close $.ajax 
		
	}

	function displayCart(data)
	{
	
	if (data.aCartValues.nProductCount == "0,00"){
		
		var cartData = '<p> U heeft geen artikelen in u winkelwagentje </p>';
		
	}else{
		var cartData = '<br /> <a href="' + baseUrl+'/checkout"  class="noStyle"><img src="' + baseUrl+'/bestanden/img/cart_img/order_btn.gif" /></a>';
		
		// This will loop through the JSON array 
		$.each(data.aCartItems, function(i,item){
			
			cartData +='<div class="cartText"></div><br /> <img src="'+ baseUrl +'/bestanden/img/product_img/'+ i +'.jpg" /> <br /> <div class="productDescription">' + item.title + ' </div> <table width="230"> <tr> <td width="15px">'+ item.quantity + '</td> <td width="120px"><div class="deleteBtn"><a href="javascript:changeProduct(' + i + ',\'delete\',' + item.quantity + ');" class="noStyle"><img src="'+ baseUrl +'/bestanden/img/site_img/delete_btn.png" /></a></div></td> <td width="60px"> &euro; ' + item.product_price + ' </td> </tr> </table> <br />';
			
		});
		
		cartData += '<div class="orderTotal"> <table width="220"> <tr> '+
		'<td>Totaal artikelen ('+ data.aCartValues.nProductCount +') </td> <td>&euro;  '+ data.aCartValues.nProductTotal +'</td> </tr> <tr> <td><br />Subtotaal </td> <td><br />&euro; '+ data.aCartValues.nProductTotal +'</td> </tr> <tr> <td>Verzendkosten </td> <td>&euro; '+ data.aCartValues.nShippingTotal +'</td> </tr> <tr> <td><hr><br /> Totaal</td> <td><hr><br /> &euro; '+ data.aCartValues.nOrderTotal +'</td> </tr> </table> <div class="cartText"></div> <br /> <a href="{path=checkout/}" class="noStyle" ><img src"' + baseUrl+'/bestanden/img/cart_img/order_btn.gif" /></a> </div> ';
		
		cartData += '<a href="'+ baseUrl +'/checkout" class="noStyle"><img src="' + baseUrl+'/bestanden/img/cart_img/order_btn.gif" /></a>';
	}
		$('#cart').html(cartData);
	}
	
	function disableForm(formId) 
	{
		// Submit class
		$(formId + ' .submit').attr({style: "display:none"});
		// Loader class
		$(formId + ' .loader').html("Bezig met laden");
	}
	
	function enableForm(formId)
	{
		// Submit class
		$(formId + ' .submit').attr({style: ""});
		// Loader class
		$(formId + ' .loader').html("");
	}
	
	function handleFormResponse(data, formId)
	{
		if (data.status == true)
		{
			if (data.redirect == true)
			{
				var action = $(formId).attr("action");
				
				//alert("Uw wordt doorgestuurd:\n"+ action);

				goTo(action);
			}
			
			else if (data.confirmation == true)
			{
				// We get the form-id, but we have to close the div, 
				// so we substract the Form-word from the id-name
				
				formId = formId.replace("Form","")
				
				$(formId).dialog("close");
				
				jAlert(data.message, 'Notificatie');	
			}
		}
		if (data.status == false)
		{
			$(formId + " .message").html(data.message);		
			enableForm(formId);
		}
	}
	
	function returnParams(query) 
	{
		var query = query.replace(/^[^\?]+\??/,'');
		var Params = {};
		
		if (!query) { return Params; }// return empty object
		var Pairs = query.split(/[;&]/);
		
		for (var i = 0; i < Pairs.length; i++ ) 
		{
			var KeyVal = Pairs[i].split('=');
			if ( ! KeyVal || KeyVal.length != 2 ) {continue;}
			var key = unescape( KeyVal[0] );
			var val = unescape( KeyVal[1] );
			val = val.replace(/\+/g, ' ');
			Params[key] = val;
		}
		return Params;
	}
	
	function loadCart() {
		
		$.ajax({
			data: { ACT: ActGetJsonCartData },
			success: displayCart,
			error: function(e){
				alert(e.responseText);
				printSystemError('loadCart');
			},
			beforeSend: function(){
				$('#cart .loader').html("laden");
			},
			complete: function(){
				$('#cart .loader').html("");
			}
		}); //close $.ajax 
	}
	
	$(function(){
			   
		// Page loader			
		$('#pageLoader').dialog({
			autoOpen: false,
			width: 300,
			height: 60
		}); //close $('#pageLoader')

		// Member login dialog
		$('#memberLogin').dialog({
			autoOpen: false,
			width: 400,
			bgiframe: true,
			resizable: false,
			modal: true,
			overlay: {
				backgroundColor: '#000',
				opacity: 0.4
			}

		}); //close $('#memberLogin')
		
		// Forgot password dialog
		$('#forgotPassword').dialog({
			autoOpen: false,
			width: 400,
			bgiframe: true,
			resizable: false,
			modal: true,
			overlay: {
				backgroundColor: '#000',
				opacity: 0.4
			}

		}); //close $('#memberLogin')
		
		$('.memberLogin').click(function(event){
			
			event.preventDefault();
			$('#memberLogin').dialog("open");
			
		}); //close $('.memberLogin')


		$('.forgotPassword').click(function(event){
			
			event.preventDefault();
			$('#forgotPassword').dialog("open");
			
		}); //close $('.forgotPassword')


		$('.addProduct').click(function(event){
			
			event.preventDefault();
			
			var params = returnParams(this.href);
			addProduct(params.productId);
			
		}); //close $('.addProduct')
		
		
		
		$("input").focus(function () {
			$(this).css({'background-color' : '#b7d2fa'});
		});
		$("input").blur(function () {
			$(this).css({'background-color' : 'white'});
		});


		// forgotPasswordForm
		$("#forgotPasswordForm").validate({
			
			submitHandler: function(){ 
				
				$("#forgotPasswordForm").ajaxSubmit({
					url: baseUrl,
					dataType: "json",
					beforeSubmit: function(){
						disableForm("#forgotPasswordForm");
					},
					success: function(data, status){
						handleFormResponse(data, "#forgotPasswordForm");
					},
					error: function(){
						printSystemError('forgotPasswordForm');
					}
				});
			}
		});

		// forgotPasswordForm
		$("#memberLoginForm").validate({
			
			submitHandler: function(){ 
				
				$("#memberLoginForm").ajaxSubmit({
					url: baseUrl,
					dataType: "json",
					beforeSubmit: function(){
						disableForm("#memberLoginForm");
					},
					success: function(data, status){
						handleFormResponse(data, "#memberLoginForm");
					},
					error: function(){
						printSystemError('memberLoginForm');
					}
				});
			}
		});
		
	
	}); //close $(function()
	

