function Set_Cookie( name, value, expires, path, domain, secure ) 
{
	// set time, it's in milliseconds
	var expires_date, today = new Date();
	today.setTime( today.getTime() );
	if ( expires )
		expires = expires * 1000 * 60 * 60 * 24;
	expires_date = new Date( today.getTime() + (expires) );
	
	document.cookie = name + "=" +escape( value ) +
		( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) + 
		( ( path ) ? ";path=" + path : "" ) + 
		( ( domain ) ? ";domain=" + domain : "" ) +
		( ( secure ) ? ";secure" : "" );
}
function Get_Cookie( check_name ) 
{
	var a_all_cookies = document.cookie.split( ';' );
	var a_temp_cookie = '';
	var cookie_name = '';
	var cookie_value = '';
	var b_cookie_found = false;
	
	for ( i = 0; i < a_all_cookies.length; i++ )
	{
		a_temp_cookie = a_all_cookies[i].split( '=' );
		cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, '');
		if ( cookie_name == check_name )
		{
			b_cookie_found = true;
			if ( a_temp_cookie.length > 1 )
				cookie_value = unescape( a_temp_cookie[1].replace(/^\s+|\s+$/g, '') );
			return cookie_value;
			break;
		}
		a_temp_cookie = null;
		cookie_name = '';
	}
	if ( !b_cookie_found )
		return null;
}	
function Delete_Cookie( name, path, domain ) 
{
	if ( Get_Cookie( name ) ) 
		document.cookie = name + "=" +
			( ( path ) ? ";path=" + path : "") +
			( ( domain ) ? ";domain=" + domain : "" ) +
			";expires=Thu, 01-Jan-1970 00:00:01 GMT";
}
		
function add(itemNumber,title,price,gratuity)
{
	var numItems = parseInt(Get_Cookie("basketItemCount_" + itemNumber));
	if (numItems)
		numItems += 1;
	else
	{
		numItems = 1;
		Set_Cookie("basketItemTitle_" + itemNumber,title);
		Set_Cookie("basketItemPrice_" + itemNumber,price);
	}
	Set_Cookie("basketItemGratuity_" + itemNumber,gratuity * price);
	Set_Cookie("basketItemCount_" + itemNumber,numItems);
	showCart();
}
function setManualAmount()
{
	if (!manualAmount_radio || !manualAmount_input)
	{
		if (!manualAmount_radio_ID || !manualAmount_input_ID)
			return;
		else
		{
			manualAmount_radio = document.getElementById(manualAmount_radio_ID);
			manualAmount_input = document.getElementById(manualAmount_input_ID);
		}
	}
	if (!totalPriceTag && totalPriceTagID)
		totalPriceTag = document.getElementById(totalPriceTagID);
	var i, ptr=manualAmount_radio, a_all_cookies = document.cookie.split( ';' );
	var gratuityRate = Get_Cookie("basket_gratuity");
	gratuityRate = parseFloat(gratuityRate ? gratuityRate : 0.00);
	basket_total = null;
	for (i = 0 ; i < ptr.length ; i++)
		if (ptr[i].checked)
		{
			basket_total = parseFloat(ptr[i].value);
			i=ptr.length;
		}
	basket_total = (basket_total > 0) ? basket_total : manualAmount_input.value;
	for ( i = 0; i < a_all_cookies.length; i++ )
	{
		cookie_name = a_all_cookies[i].split( '=' )[0].replace(/^\s+|\s+$/g, '');
		if (cookie_name.substr(0,10) == "basketItem")
			Delete_Cookie(cookie_name);
	}
	add(0,"Manually Entered Certificate Amount",basket_total,1);
	if (totalPriceTag)
		totalPriceTag.innerHTML = Math.ceil(parseInt(basket_total * (1+parseFloat(gratuityRate)))) + ".00";
}

var 
	totalPriceTag				= null,
	cartTemplateRow				= null,
	manualAmount_radio			= null,
	manualAmount_input			= null,
	cartTemplateRow_count		= null,
	cartTemplateRow_title		= null,
	cartTemplateRow_parent		= null,
	cartTemplateRow_remove		= null,
	cartTemplateRow_netPrice	= null,
	cartTemplateRow_totalPrice	= null,
	totalPriceTagID			= "",
	cartTemplateRowName		= "",
	manualAmount_radio_ID	= "",
	manualAmount_input_ID	= "",
	basket_total			= 0.00;

function showCart()
{
	if (!cartTemplateRowName)
		return;
	if (!cartTemplateRow)
	{
		cartTemplateRow = document.getElementById(cartTemplateRowName);
		cartTemplateRow_title = document.getElementById(cartTemplateRowName + "_title");
		cartTemplateRow_count = document.getElementById(cartTemplateRowName + "_count");
		cartTemplateRow_remove = document.getElementById(cartTemplateRowName + "_remove");
		cartTemplateRow_netPrice = document.getElementById(cartTemplateRowName + "_netPrice");
		cartTemplateRow_totalPrice = document.getElementById(cartTemplateRowName + "_totalPrice");
		
		cartTemplateRow_parent = cartTemplateRow.parentNode;
		cartTemplateRow_parent.removeChild(cartTemplateRow);
		cartTemplateRow.style.visibility = "visible";
		cartTemplateRow.style.height = "";
	}
	var DBID, title, price, count, ptr, totalPrice = 0, gratuity=0, gratuityRate = 0, a_all_cookies = document.cookie.split( ';' );
	for (i = cartTemplateRow_parent.childNodes.length-1 ; i >= 0  ; i--)
		cartTemplateRow_parent.removeChild(cartTemplateRow_parent.childNodes[i]);
	gratuityRate = Get_Cookie("basket_gratuity");
	gratuityRate = gratuityRate ? gratuityRate : 0.00;
	for ( i = 0; i < a_all_cookies.length; i++ )
	{
		a_temp_cookie = a_all_cookies[i].split( '=' );
		cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, '');
		if (cookie_name.substr(0,16) == "basketItemTitle_")
		{
			
			DBID = cookie_name.substr(16,20);
			title = unescape( a_temp_cookie[1].replace(/^\s+|\s+$/g, '') );
			count = Get_Cookie("basketItemCount_" + DBID);
			price = Get_Cookie("basketItemPrice_" + DBID);
			gratuity += parseFloat(Get_Cookie("basketItemGratuity_" + DBID)) * parseFloat(count);
			cartTemplateRow_title.innerHTML = title.replace(/</g,"&lt;").replace(/>/g,"&gt;");
			cartTemplateRow_count.innerHTML = count;
			totalPrice += parseFloat(count) * parseFloat(price);
			cartTemplateRow_remove.href = "javascript: remove(" + DBID + ");";
			ptr = cartTemplateRow.cloneNode(true);
			cartTemplateRow_parent.appendChild(ptr);
		}
	}
	gratuity *= gratuityRate;
	
	cartTemplateRow_netPrice.innerHTML = getDollarString(totalPrice);
	cartTemplateRow_totalPrice.innerHTML = getDollarString(totalPrice+gratuity);
}
function getDollarString(price)
{
	var frac,whole="" + price;
	var pos=whole.indexOf(".");
	if (pos==-1)
		frac=".00";
	else
	{
		frac=whole.substring(pos,whole.length);
		whole=whole.substring(0,pos);
		if (frac.length==2)
			frac += "0";
	}
	return whole + frac;
}
function setGratuity(gratuity)
{
	if (gratuity == null || gratuity < 0.00)
		return;
	Set_Cookie("basket_gratuity",gratuity);
	showCart();
	if (!totalPriceTag && totalPriceTagID)
		totalPriceTag = document.getElementById(totalPriceTagID);
	if (totalPriceTag)
		totalPriceTag.innerHTML = parseInt(Math.ceil(basket_total * (1+parseFloat(gratuity)))) + ".00";
}
function getGratuity(name)
{
	if (!name)
		return;
	var gratuity = Get_Cookie("basket_gratuity"), ptr = document.forms[0][name];
	if (!gratuity)
	{
		setGratuity(0.18);
		gratuity = 0.18;
	}
	for (i = 0 ; i < ptr.length ; i++)
	{
		if (parseFloat(ptr[i].value) == parseFloat(gratuity))
		{
			ptr[i].checked = true;
			return;
		}
	}
}
function remove(DBID)
{
	Delete_Cookie("basketItemTitle_" + DBID);
	Delete_Cookie("basketItemCount_" + DBID);
	Delete_Cookie("basketItemPrice_" + DBID);
	Delete_Cookie("basketItemGratuity_" + DBID);
	showCart();
}
