//	
var SHOW_DEALS_COOKIE="minmax";
var SHOW_DEALS_DELIM	= "_";
var DEAL_DIV_SUFFIX	= "_div";

//
visiblePattern = new RegExp("(^|\\s)deal_visible(\\s|$)");
hiddenPattern = new RegExp("(^|\\s)deal_hidden(\\s|$)");
dealPattern = new RegExp("deal_");

//
var g_allHiddenDeals	= null;

/////////////////////////////////
//	Generic functions
/////////////////////////////////


function arridx( arr, val, used )
{
	for (var i=0; i<arr.length; i++)
	{
		if (arr[i] == val)
		{
			if ((used == null) || (!isin(used, i)))
				return i;
		}
	}
	return -1;
}

/*
function createCookieString() {
	var strCookie	= "";
	
	for(var i=0;i<allHiddenDeals.length;i++)
		strCookie	+= hideDealString(allHiddenDeals[i]);

	return strCookie;
}

function parseCookieString() {
	var cookie	= getCookie(SHOW_DEALS_COOKIE);
	if (!cookie)
		allHiddenDeals	= new Array();
	else
	{
		allHiddenDeals	= cookie.split(SHOW_DEALS_DELIM);
		if (allHiddenDeals.length > 1)
			allHiddenDeals	= allHiddenDeals.splice(1,allHiddenDeals.length-1);
	}
	return allHiddenDeals;
}

function setDealsCookie()
{
	var expr	= new Date();
	expr.setFullYear( expr.getFullYear() + 1 );

	setCookie(SHOW_DEALS_COOKIE, createCookieString(), expr);
	return false;
}
*/

function getAllHiddenDeals()
{
	if (!g_allHiddenDeals)
	{
		g_allHiddenDeals	= new Array();
		
		var allDivs = document.getElementsByTagName('div');
	
		//	Find all hidden deals.
		for (var i=0; i < allDivs.length; i++)
		{
			//	div that don't have an ID or class, or that don't have the "hidden" class, need not apply
			if (!allDivs[i].id || !allDivs[i].className 
				|| !allDivs[i].className.match(hiddenPattern) )
				continue;

			//	divs with unrecognized IDs-- no good.
			if (allDivs[i].id.substr(allDivs[i].id.length-DEAL_DIV_SUFFIX.length)!=DEAL_DIV_SUFFIX)
				continue;
			
			var dealKey	= allDivs[i].id.substring(0,allDivs[i].id.length-DEAL_DIV_SUFFIX.length);
			g_allHiddenDeals.push(dealKey);
		}
	}

	return g_allHiddenDeals;
}

/////////////////////////////////
//	UI functions
/////////////////////////////////

//	"Hidden" and "Expanded" deal information exists
//	in the page; just choose which div to show.
//


function expandDeal(dealKey) 
{
	var dealDiv			= document.getElementById(dealKey+'_div');
	var changeElement	= document.getElementById(dealKey+'_row2');
	var changePrice 	= document.getElementById(dealKey+'_min_price');
	var changeImage 	= document.getElementById(dealKey+'_collapseImage');
	
	if (dealDiv)		dealDiv.className = dealDiv.className.replace(visiblePattern, '$1deal_visible$2');
	if (changeElement)	changeElement.style.display= '';
	if (changePrice)	changePrice.style.display = 'none';
	if (changeImage)	changeImage.src = changeImage.src = document.getElementById('minus_img').src;
}

//	Collapsing a deal can always be done purely in DHTML
function collapseDeal(dealKey) 
{
	var dealDiv			= document.getElementById(dealKey+'_div');
	var changeElement	= document.getElementById(dealKey+'_row2');
	var changePrice 	= document.getElementById(dealKey+'_min_price');
	var changeImage 	= document.getElementById(dealKey+'_collapseImage');
	
	if (dealDiv)		dealDiv.className = dealDiv.className.replace(visiblePattern, '$1deal_hidden$2');
	if (changeElement)	changeElement.style.display= 'none';
	if (changePrice)	changePrice.style.display = '';
	if (changeImage)	changeImage.src = changeImage.src = document.getElementById('plus_img').src;
}


/////////////////////////////////
//	
/////////////////////////////////

function toggleDeal(dealKey) 
{
	var	hiddenDeals	= getAllHiddenDeals();
	
	//	Currently visible
	var i = arridx(hiddenDeals,dealKey);
	if (i == -1)
	{
		hiddenDeals.push(dealKey);
		collapseDeal(dealKey);
		setPreference('hidden', 'add', dealKey);
	} 
	else 
	{
		hiddenDeals.splice(i,1);
		expandDeal(dealKey);
		setPreference('hidden', 'remove', dealKey);
	}
	
}


/////////////////////////////////////////
//	Multiple
/////////////////////////////////////////

function collapseAllDeals() {
	var allHiddenDeals	= getAllHiddenDeals();
	var allDivs = document.getElementsByTagName('div');
	
	for (var i=0; i < allDivs.length; i++)
	{
		//	div that don't have an ID or class, or that don't have the "visible" class, need not apply
		if (!allDivs[i].id || !allDivs[i].className 
		    || !allDivs[i].className.match(visiblePattern) )
			continue;

		//	divs with unrecognized IDs-- no good.
		if (allDivs[i].id.substr(allDivs[i].id.length-DEAL_DIV_SUFFIX.length)!=DEAL_DIV_SUFFIX)
			continue;
			
		var dealKey	= allDivs[i].id.substring(0,allDivs[i].id.length-DEAL_DIV_SUFFIX.length);
		
		g_allHiddenDeals.push(dealKey);
		collapseDeal(dealKey);
	}
	
	setPreference('hidden', 'set', g_allHiddenDeals);
}

//
function expandAllDeals()
{
	var	hiddenDeals	= getAllHiddenDeals();

	for (var i=0; i <hiddenDeals.length; i++)
	{
		var dealKey	= hiddenDeals[i];
		expandDeal(dealKey);
	}

	//	Blank out the array of deals.
	g_allHiddenDeals	= new Array();
	
	setPreference('hidden', 'set', null);
	return false;
}

