/*
 * Prompt the user to supply transportation information for pieces he's won.
 *
 * Inputs:
 *
 *	postSaleURL = crumbified URL of post-sale info JSP (sans equip ID)
 */

function getCookie(name) {
	var dc = document.cookie;
	var prefix = name + "=";
	var begin = dc.indexOf("; " + prefix);
	if (begin == -1) {
		begin = dc.indexOf(prefix);
		if (begin != 0) return null;
	} else
		begin += 2;
	var end = document.cookie.indexOf(";", begin);
	if (end == -1)
		end = dc.length;
	return unescape(dc.substring(begin + prefix.length, end));
}


// Array of equip IDs the user has chosen to suppress.
var hiddenTransportIds;
var hiddenTransportCookie = getCookie("hideTransport");
if (hiddenTransportCookie == null)
	hiddenTransportIds = new Array();
else
	hiddenTransportIds = hiddenTransportCookie.split(",");


// Output the prompt for a single piece.
function promptForEquip(equipId, count)
{
	var enterLaterFunc;
	var out;

	if (count == 1)
		enterLaterFunc = "enterLater(";
	else
		enterLaterFunc = "enterLaterPrompt(";

	out = '<div class="transportPrompt"><img src="/images/notice.gif"> ';
	eval(JSe_checkout_p_Congrat_8721);
	out += JS_checkout_p_Congrat_8721;
	out += '<input type="button" onClick="enterNow(' +
		equipId + ')" value="' + JS_checkout_p_NOW_8719 +'">&nbsp;&nbsp;&nbsp;';
	out += '<input type="button" onClick="' + enterLaterFunc +
		equipId + ')" value="' + JS_checkout_p_LATER_8720 +'">';
	out += "</div>";

	return out;
}

// Returns true if a piece is on the user's hidden list
function equipIsHidden(equipId)
{
	var i;

	if (hiddenTransportIds != null)
	{
		if (hiddenTransportIds[0] == '*')
			return true;
		for (i = 0; i < hiddenTransportIds.length; i++)
			if (equipId == hiddenTransportIds[i])
				return true;
	}

	return false;
}

// Add a piece of equipment to the list of hidden equipment.  If equipId is
// "*", hide all the equipment.
function hideEquip(equipId)
{
	var tomorrow = new Date();
	var twtime = tomorrow.getTime() + 72000000; // 20 hours in milliseconds = 20*3600*1000
	tomorrow.setTime(twtime);
	var tomorrowStr = tomorrow.toGMTString();

	if (hiddenTransportIds.length == 1 && hiddenTransportIds[0] == '*')
		return;

	if (equipId == '*')
	{
		hiddenTransportCookie = equipId;
		hiddenTransportIds = new Array();
		hiddenTransportIds[0] = equipId;
	}
	else
	{
		if (hiddenTransportCookie != null && hiddenTransportCookie != "")
			hiddenTransportCookie += "," + equipId;
		else
			hiddenTransportCookie = equipId;
		hiddenTransportIds[hiddenTransportIds.length] = equipId;
	}

	var cookieStr = "hideTransport=" + hiddenTransportCookie +
			"; expires=" + tomorrowStr;
	document.cookie = cookieStr;
}


// Handle the user asking to enter information for a piece of equipment later.
function enterLaterPrompt(equipId)
{
	enterLater(equipId);
}


// The user asked to defer entering delivery info on a piece.  Save the
// preference and reload the page to get rid of the prompt.  This is called
// by a button on a popup window.
function enterLater(equipId)
{
	hideEquip(equipId);
	if (opener)
		opener.setTimeout("location.reload(true)", 1);
	else
		setTimeout("location.reload(true)", 1);
}


// The user asked to enter deliver info on a piece right now.  Take him to
// the post-sale info page.
function enterNow(equipId)
{
	location.href = postSaleURL + "&equipId=" + equipId;
}


// Outputs the prompts for equipment the logged-in user is winning.
function transportationPrompts(equipList, uidList)
{
	var i;
	var count = 0;
	var out = "";

	for (i = 0; i < equipList.length; i++)
		if (uidList[i] == loggedIn && ! equipIsHidden(equipList[i]))
			count++;

	for (i = 0; i < equipList.length; i++)
	{
		if (uidList[i] == loggedIn && ! equipIsHidden(equipList[i]))
			out += promptForEquip(equipList[i], count);
	}

	document.write(out);
}


// Outputs the prompts for equipment the logged-in user is winning.  Takes
// a list of AuctionData objects.
function getCheckoutPrompts(ads)
{
	var i;
	var count = 0;
	var out = "";

	if (! loggedIn)
		return out;

	for (i in ads)
		if (ads[i].needsTransport &&
		    ads[i].highBidder == loggedIn &&
		    ! equipIsHidden(ads[i].equipId))
		{
			count++;
		}

	for (i in ads)
		if (ads[i].needsTransport &&
		    ads[i].highBidder == loggedIn &&
		    ! equipIsHidden(ads[i].equipId))
		{
			out += promptForEquip(ads[i].equipId, count);
		}

	return out;
}

