/**
 * Handler for basket (Scenario 1)
 */
function Basket (rte)
{
	var	self	= this;
	self.rte	= rte;
	rgSku		= /\(([a-zA-Z0-9]+)\)/;
	
	self.getEvSkus	= function (add)
	{
		var thisGoal, thisSku;
		var ret		= [];
		var event	= add? 'Add to Basket': 'Remove From Basket';
		for (goal in rte.goals)
		{
			thisGoal	= rte.goals [goal];
			if (thisGoal.goal.indexOf (event) > -1)
			{
				thisSku	= thisGoal.goal.match (rgSku)[1];
				ret.push (thisSku);
			}
		}
		return (ret);
	};
	self.getSkus	= function ()
	{
		// Scan goals for add basket events
		var addList	= (self.getEvSkus (true));
		// Scan goals for remove basket events
		var delList	= (self.getEvSkus (false));
		// Subtract 'remove' events from 'add' events to get basket contents
		var ret	= addList.filter (function (item)
		{
			return ((delList.indexOf (item)) == -1);
		});
		return (ret);
	};
}

function handleRTEResponse (rte)
{
	var uvtRegEx		= new RegExp("uvt=(\\d+)_(\\d+)_(\\d+)_(\\d+)_(\\d+)"),
		uvtAvailable	= uvtRegEx.exec(document.cookie),
		myBasket		= null, 
		skus			= null;
		
	//console.log (rte);
	
	if ((uvtAvailable)
	&& (uvtAvailable[1])
	&& ((uvtAvailable[1] % 10) < 9))
	{
		myBasket	= new Basket (rte);
		skus		= myBasket.getSkus ();
		// AJAX product search goes here
		//alert (rte.abi.profile.genericParameter2);
		if ((rte) 
		&& (rte.abi)
		&& (rte.abi.profile)
		&& (rte.abi.profile.genericParameter2 == "Y"))
		{
			//console.log ('Display credit limit for this user');
		}
		else
		{
			//console.log ('Do not display credit limit for this user');
			$("#avail-credit").hide ();
		}
	}
	else
	{
		//console.log ('This account excluded from test');
		$("#avail-credit").hide ();
	}
}
