var nxgl = {

	baseURL: baseDir + 'modules/nxlgiftlist/ajax.php',

	/**
	 * Update WishList Cart by adding, deleting, updating objects
	 *
	 * @return void
	 */
	// function WishlistCart(id, action, id_product, id_product_attribute, quantity)
/*
	cart: function(id, action, id_product, id_product_attribute, quantity)
	{
		$.ajax({
			type: 'GET',
			url:	baseDir + 'modules/blockwishlist/cart.php',
			async: true,
			cache: false,
			data: 'action=' + action + '&id_product=' + id_product + '&quantity=' + quantity + '&token=' + static_token + '&id_product_attribute=' + id_product_attribute,
			success: function(data)
			{
				$('#' + id).slideUp('normal');
				document.getElementById(id).innerHTML = data;
				$('#' + id).slideDown('normal');
			}
		});	
	},
*/
	addProduct: function(id_list, id_product, id_product_attribute, quantity)
	{
		$.ajax({
			type: 'GET',
			url:	this.baseURL,
			dataType: 'json',
			async: true,
			cache: false,
			data: 'action=add&ajax=1&id_list=' + id_list +  '&id_product=' + id_product + '&quantity=' + quantity + '&token=' + static_token + '&id_product_attribute=' + id_product_attribute,
			success: function(jsonData)
			{
				var id = 'addproductok-dlg';

				if (typeof(jsonData.error) == 'undefined')
					nxgl.alert(id, nxgl_str_errgen);
				else
				{
					switch(jsonData.error)
					{
						case 0:
							
							var link = '.\n<a href="#" onclick="javascript:window.location = \'' + baseDir +
													'modules/nxlgiftlist/giftlist.php?action=manage&id_list=' + jsonData.id_list + 
													'\'; return false;">' + nxgl_str_golist + '</a>';
							nxgl.alert(id, nxgl_str_addok + link);

/*
							$('#glllink').click(function (e) {
								window.location = baseDir + 'modules/nxlgiftlist/giftlist.php?action=manage&id_list=' + jsonData.id_list;
								return false;
							});
*/
							break;
						case 4:
							nxgl.alert(id, nxgl_str_err4);
							break;
						default:
							nxgl.alert(id, nxgl_str_errgen);
							break;
					}
				}
			}
		});	
	},

	addProductSelection: function(id_list)
	{
		var products = new Array();
		$('.product_check').each(function(i) {
			if (this.checked && this.id.length > 5)
				products.push(parseInt(this.id.substr(5)));
		});
		
		if (products.length == 0)
		{
			this.alert('addproductok-dlg', nxgl_str_err5);
			return false;
		}
		
		$.ajax({
			type: 'GET',
			url:	this.baseURL,
			dataType: 'json',
			async: true,
			cache: false,
			data: 'action=addsel&ajax=1&id_list=' + id_list +  '&products=' + (products.join('_')) + '&token=' + static_token,
			success: function(jsonData)
			{
				var id = 'addproductok-dlg';
				var link = '.\n<a href="#" onclick="javascript:window.location = \'' + baseDir +
										'modules/nxlgiftlist/giftlist.php?action=manage&id_list=' + jsonData.id_list + 
										'\'; return false;">' + nxgl_str_golist + '</a>';

				if (typeof(jsonData.error) == 'undefined')
					nxgl.alert(id, nxgl_str_errgen);
				else
				{
					switch(jsonData.error)
					{
						case 0:
							//nxgl.alert(id, nxgl_str_addok);
							nxgl.alert(id, nxgl_str_addok + link);
							break;
						case 4:
							nxgl.alert(id, nxgl_str_err4);
							break;
						default:
							nxgl.alert(id, nxgl_str_errgen);
							break;
					}
				}
			}
		});	
	},

	deleteProduct: function(id_item, cb)
	{
		$.ajax({
			type: 'GET',
			dataType: 'json',
			async: true,
			url: this.baseURL,
			cache: false,
			data: 'action=delete&ajax=1&id_item=' + id_item + '&token=' + static_token,
			success: function(jsonData)
			{
				if(jsonData.error == 0)
				{
					$('#item_count' + jsonData.id_list).html(jsonData.item_count);
					nxgl.expand('block-order-detail', jsonData.id_list, cb);
				}
			}
		});
	},

	updateQuantity: function(id_item, quantity, cb)
	{
		$.ajax({
			type: 'GET',
			dataType: 'json',
			async: true,
			url: this.baseURL,
			cache: false,
			data: 'action=update&ajax=1&id_item=' + id_item + '&quantity=' + quantity + '&token=' + static_token,
			success: function(jsonData)
			{
				if(jsonData.error == 0)
				{
					$('#item_count' + jsonData.id_list).html(jsonData.item_count);
					nxgl.expand('block-order-detail', jsonData.id_list, cb);
				}
			}
		});
	},

	deleteList: function(id_list, cb)
	{
		this.ajax('dellist', 'id_list=' + id_list, function(jsonData) {
			if(jsonData.error == 0)
			{
				if (jsonData.id_list != 0)
				{
					if (typeof(cb) == 'function')
						cb();
				}
			}
		});
	},
	
	donate: function(id_item, quantity, cb)
	{
		this.ajax('donate', 'id_item=' + id_item + '&quantity=' + quantity, function(jsonData) {
			if (typeof(cb) == 'function')
			{
				if(jsonData.error == 0)
					cb(true, jsonData.id_item);
				else if(jsonData.error == 5)
					cb(false, jsonData.id_item);
				else if(jsonData.error == 6)
					cb(false);
			}
		});
	},

	order: function(id_item, quantity, cb)
	{
		this.ajax('addcart', 'id_item=' + id_item + '&quantity=' + quantity, function(jsonData) {
			if (typeof(cb) == 'function')
			{
				if(jsonData.error == 0)
					cb(true, jsonData.id_item);
				else if(jsonData.error == 5)
					cb(false, jsonData.id_item);
				else if(jsonData.error == 6)
					cb(false);
				else if(jsonData.error == 2)
					alert('Ce produit n\'est plus disponible');
					
				// alert(jsonData.error);
			}
		});
	},

	ajax: function(action, data, success_cb, error_cb, html)
	{
		if (typeof(data) != 'string')
			data = '';
		else
			data = '&' + data;
			
		$.ajax({
			type: 'GET',
			dataType: ((typeof(html) != 'undefined' && html) ? 'html' : 'json'),
			async: true,
			url: this.baseURL,
			cache: false,
			data: 'action=' + action + '&ajax=1&token=' + static_token + '&' + data,
			success: function(data) {
				if (typeof(success_cb) == 'function')
					success_cb(data);
				},
			error: function(x, s, e) {
				alert('error: ' + s);
				if (typeof(error_cb) == 'function')
					error_cb(x, s, e);
				}
		});
	},

	/**
	 * Change customer default wishlist
	 *
	 * @return void
	 */
	//function WishlistChangeDefault(id, id_wishlist)
/*
	changeDefault: function(id, id_wishlist)
	{
		$.ajax({
			type: 'GET',
			url:	baseDir + 'modules/blockwishlist/cart.php',
			async: true,
			data: 'id_wishlist=' + id_wishlist + '&token=' + static_token,
			cache: false,
			success: function(data)
			{
				$('#' + id).slideUp('normal');
				document.getElementById(id).innerHTML = data;
				$('#' + id).slideDown('normal');
			}
		});
	},
*/	
	/**
	 * Buy Product
	 *
	 * @return void
	 */
	//function WishlistBuyProduct(token, id_product, id_product_attribute, id_quantity, button, ajax)
/*
	buyProduct: function(token, id_product, id_product_attribute, id_quantity, button, ajax)
	{
		if(ajax)
			ajaxCart.add(id_product, id_product_attribute, false, button, 1, [token, id_quantity]);
		else
		{
	
			WishlistAddProductCart(token, id_product, id_product_attribute, id_quantity)
			document.forms['addtocart' + '_' + id_product  + '_' + id_product_attribute].method='POST';
			document.forms['addtocart' + '_' + id_product  + '_' + id_product_attribute].action=baseDir + 'cart.php';
			document.forms['addtocart' + '_' + id_product  + '_' + id_product_attribute].elements['token'].value = static_token;
			document.forms['addtocart' + '_' + id_product  + '_' + id_product_attribute].submit();
		}
		return (true);
	},
*/
	//function WishlistAddProductCart(token, id_product, id_product_attribute, id_quantity)
/*
	addProductCart: function(token, id_product, id_product_attribute, id_quantity)
	{
		if ($('#' + id_quantity).val() <= 0)
			return (false);
		$.ajax({
			type: 'GET',
			url: baseDir + 'modules/blockwishlist/buywishlistproduct.php',
			data: 'token=' + token + '&static_token=' + static_token + '&id_product=' + id_product  + '&id_product_attribute=' + id_product_attribute,
			async: true,
			cache: false, 
			success: function(data)
			{
				if (data)
					alert(data);
				else
				{
					$('#' + id_quantity).val($('#' + id_quantity).val() - 1);
				}
			}
		});
		return (true);
	},
*/
	/**
	 * Show wishlist managment page
	 *
	 * @return void
	 */
	//function WishlistManage(id, id_wishlist)
	expand: function(id, id_list, cb)
	{
		this.ajax('expand', 'id_list=' + id_list + '&refresh=0', function(data) {
				$('#' + id).hide();
				document.getElementById(id).innerHTML = data;
				if (typeof(cb) == 'function')
					cb(id_list);
				$('#' + id).fadeIn('slow');
			}, 
			null, true
		);
/*
		$.ajax({
			type: 'GET',
			async: true,
			url: this.baseURL,
			data: 'ajax=1&action=expand&id_list=' + id_list + '&refresh=' + false + '&token=' + static_token,
			cache: false,
			success: function(data)
			{
				$('#' + id).hide();
				document.getElementById(id).innerHTML = data;
				if (typeof(cb) == 'function')
					cb(id_list);
				$('#' + id).fadeIn('slow');
			}
		});
*/
	},

	collapse: function(id)
	{
		$('#' + id).fadeOut('slow');
		$('#' + id).html('');
	},
		
	/**
	 * Show wishlist product managment page
	 *
	 * @return void
	 */
/*
	productManage: function(id, action, id_wishlist, id_product, id_product_attribute, quantity, priority)
	{
		$.ajax({
			type: 'GET',
			async: true,
			url: baseDir + 'modules/blockwishlist/managewishlist.php',
			data: 'action=' + action + '&id_wishlist=' + id_wishlist + '&id_product=' + id_product + '&id_product_attribute=' + id_product_attribute + '&quantity=' + quantity + '&priority=' + priority + '&refresh=' + true,
			cache: false,
			success: function(data)
			{
				if (action == 'delete')
					$('#wlp_' + id_product + '_' + id_product_attribute).fadeOut('fast');
				else if (action == 'update')
				{
					$('#wlp_' + id_product + '_' + id_product_attribute).fadeOut('fast');
					$('#wlp_' + id_product + '_' + id_product_attribute).fadeIn('fast');
				}
			}
		});
	},
*/
	
	/**
	 * Hide/Show bought product
	 *
	 * @return void
	 */
/*
	visibility: function(bought_class, id_button)
	{
		if ($('#hide' + id_button).css('display') == 'none')
		{
			$('.' + bought_class).slideDown('fast');
			$('#show' + id_button).hide();
			$('#hide' + id_button).fadeIn('fast');
		}
		else
		{
			$('.' + bought_class).slideUp('fast');
			$('#hide' + id_button).hide();
			$('#show' + id_button).fadeIn('fast');
		}
	},
*/
	/**
	 * Send wishlist by email
	 *
	 * @return void
	 */
	//function WishlistSend(id, id_wishlist, id_email)
	send: function(id_list, id_email, cb)
	{
		var email = $('#' + id_email + '1').val();
		if (email == '' || ! this.checkEMail(email))
		{
			this.alert('dlgbox', nxgl_str_bad_email);
			return false;
		}

		var data = new Array(11);
		data[0] = 'id_list=' + id_list;
		for (var i = 1; i <= 10; i++)
			data[i] = 'email' + i + '=' + $('#' + id_email + i).val();

		var idbox = 'dlgbox';
		
		this.ajax('send', data.join('&'), function(jsonData) {
				if (typeof(cb) == 'function')
					cb();
				
				if (typeof(jsonData.error) != 'undefined')
				{
					if (jsonData.error == 0)
						nxgl.alert(idbox, nxgl_str_send_ok);
					else
						nxgl.alert(idbox, nxgl_str_send_err);
				}
				else
					nxgl.alert(idbox, nxgl_str_send_err);
			},
			function(x, s, e) {
				cb();
				nxgl.alert(idbox, nxgl_str_send_err);
			});
			
		return true;
	},
	
	checkEMail: function(email)
	{
		return (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(email));
	},
	
	alert: function(id, str)
	{
		$('#' + id + ' .caption').html(str);
		$('#' + id).jqmShow();
	},
	
	setupPayment: function(payment_url) {

		$(document).ready(function(){
			$('p.payment_module a').each(function(i) {
				if (this.href.search(/modules\/cheque\/payment.php/) != -1)
					this.href = payment_url + 'cheque';
				else if (this.href.search(/modules\/bankwire\/payment.php/) != -1)
					this.href = payment_url + 'bankwire';
		/*
				else if (this.href.search(/modules\/paypal\/redirect.php/) != -1)
					this.href = payment_url + 'paypal';
		*/
			});
		});
	}
}
