function check_cookie(cookie)
{
	var regex = /^(l|p)\|[1-9][0-9]{0,2}\|[1-9][0-9]{0,3}(&(l|p)\|[1-9][0-9]{0,2}\|[1-9][0-9]{0,3})*$/;
	if (regex.test(cookie))
	{
		return true;
	}
	return false;
}

function clear_cookie()
{
	var date = new Date();
	var cookie = 'commandddabx=; expires=';
	date.setTime(date.getTime()-3600);
	cookie += date.toGMTString() + '; path=/';
	document.cookie = cookie;
}

function show_articles(cookie)
{
	var nb_articles = count_articles(cookie);	
	var articles_box = document.getElementById('nb_articles');
	var text = nb_articles + " article";
	if (nb_articles > 1)
	{
		text += "s";
	}
	articles_box.innerHTML = text;
}

function count_articles(cookie)
{
	var occur = cookie.split('&');
	var articles = 0;
	var i = 0;
	while (i < occur.length)
	{
		var ref = occur[i].split('|');
		articles += eval(ref[1]);
		i++;
	}
	return articles;
}

function refDefined(cookie, type, ref, nb)
{
	var articles = cookie.split('&');
	var i = 0;
	while (i < articles.length)
	{
		var single = articles[i].split('|');
		if (single[0] == type && single[2] == ref && eval(single[1]) + nb < 1000)
		{
			return true;
		}
		i++;
	}
	return false;
}

function createModifiedCookie(cookie, type, ref, nb)
{
	var newcookie =  'commandddabx=';
	var articles = cookie.split('&');
	var i = 0;
	while (i < articles.length)
	{
		single = articles[i].split('|');
		if (single[0] == type && single[2] == ref)
		{
			if (eval(single[1]) + nb != 0)
			{
				newcookie += type + '|' + (eval(single[1]) + nb) + '|' + ref;
				newcookie += '&';
			}
		}
		else
		{
			newcookie += articles[i];
			newcookie += '&';
		}
		i++;
	}
	while (newcookie[newcookie.length - 1] == '&')
	{
		newcookie = newcookie.substring(0, newcookie.length - 1);
	}
	return newcookie;
}

function add_article(type, nb, ref, aff)
{
	var cookie = get_cookie();
	if (cookie == null || check_cookie(cookie) == false)
	{
		clear_cookie();
		cookie = "";
	}
	var date = new Date;
	date.setTime(date.getTime()+3600*1000);
	if (refDefined(cookie, type, ref, nb))
	{
		newcookie = createModifiedCookie(cookie, type, ref, nb);
	}
	else
	{
		var newcookie = 'commandddabx=' + cookie;
		if (cookie.length != 0)
		{
			newcookie += '&';
		}
		newcookie += type + '|' + nb + '|' + ref;
	}
	newcookie += '; expires=' + date.toGMTString() + '; path=/';
	document.cookie = newcookie;
	cookie = get_cookie();
	if (aff)
	{
		show_articles(cookie);
		$.prompt('Votre article a bien été ajouté ŕ votre panier');
	}
}

function get_cookie()
{
	var name = 'commandddabx=';
	var cookies = document.cookie.split(';');
	var i = 0;
	while (i < cookies.length)
	{
		var cookie = cookies[i];
		while (cookie.charAt(0) == ' ')
		{
			cookie = cookie.substring(1, cookie.length);
		}
		if (cookie.indexOf(name) == 0)
		{
			return cookie.substring(name.length, cookie.length);
		}
		i++;
	}
	return null;
}
