///////////////////////////////////////////////////////////////////
// NAME:        SaveBasket()
//
// DESCRIPTION: save or delete a mnemonic from a cookie based
//				basket ( 0 = delete, 1 = add )
//
// WRITTEN:     KDZ, 6/14/2000
///////////////////////////////////////////////////////////////////
function SaveBasket( sMnemonic, iCmd )
{
	var iReturn = 0 ; 

	if ( iCmd == 0 )
		iReturn = DeleteMnemonic( sMnemonic ) ;
	else
		iReturn = AddMnemonic( sMnemonic ) ;

	return iReturn ;
}


///////////////////////////////////////////////////////////////////
// NAME:       GetBasket()
//
// DESCRIPTION: return the series in a cookie based basket
//
// WRITTEN:     KDZ, 6/14/2000
///////////////////////////////////////////////////////////////////
function GetBasket () 
{

  var arg = "Basket=";
  var alen = arg.length;
  var clen = document.cookie.length;
  var i = 0;
  while (i < clen) {
    var j = i + alen;
    if (document.cookie.substring(i, j) == arg)
      return getCookieVal (j);
    i = document.cookie.indexOf(" ", i) + 1;
    if (i == 0) break; 
  }
  return null;
}


///////////////////////////////////////////////////////////////////
// NAME:        DeleteBasket()
//
// DESCRIPTION: delete cookie based basket
//
// WRITTEN:     KDZ, 6/14/2000
///////////////////////////////////////////////////////////////////
function DeleteBasket () 
{

  var name = "Basket" ; 

  if (GetCookie(name)) {
    document.cookie = name + "=" +
      ((path) ? "; path=" + path : "") +
      ((domain) ? "; domain=" + domain : "") +
      "; expires=Thu, 01-Jan-70 00:00:01 GMT";
	}
}

///////////////////////////////////////////////////////////////////
// NAME:        update_summary()
//
// DESCRIPTION: update the basket summary
//
// WRITTEN:     DLP, 7/06/2000
///////////////////////////////////////////////////////////////////
function Update_BasketSummary(intItems)
{
	if ( document.forms.frmBasketSummary )	{
		document.forms.frmBasketSummary.txtBasketItemCount.value = intItems;
	}
	else if ( self.opener.document.forms.frmBasketSummary )	
	{
		self.opener.document.forms.frmBasketSummary.txtBasketItemCount.value = intItems;
	}
		
	return true;
}

///////////////////////////////////////////////////////////////////
// NAME:        DeleteMnemonic()
//
// DESCRIPTION: delete series from basket
//
// WRITTEN:     KDZ, 6/14/2000
///////////////////////////////////////////////////////////////////
function DeleteMnemonic( sMnemonic )
{
	var name = "Basket" ;
	var expires = "" ;
	var path = "/" ;
	var sString ;
	var domain = "" ;
	var secure = "" ;

	var sFind = "|" + sMnemonic + "|" ;
	var sCookie = GetBasket() ;
	var iStart = sCookie.indexOf( sFind, 0 )
	var iLength = sFind.length ; 
	if ( iStart  != -1 )
	{
		if ( iStart + iLength >= sCookie.length ) 
			sNewCookie = sCookie.substring(0, iStart ) ;
		else
			sNewCookie = sCookie.substring(0, iStart ) 	+ sCookie.substring((iStart+iLength), sCookie.length) ; 

//		var oRe = "/\x7C" + sMnemonic + "\x7C/i" ;
//		var sNewCookie = sCookie.replace( oRe ,"") ;

		document.cookie = name + "=" + escape (sNewCookie) +
	    ((expires) ? "; expires=" + expires.toGMTString() : "") +
	    ((path) ? "; path=" + path : "") +
	    ((domain) ? "; domain=" + domain : "") +
	    ((secure) ? "; secure" : "") ;

//		Update_BasketSummary( CountBasket() );
	}

	return 0 ;
}

///////////////////////////////////////////////////////////////////
// NAME:        AddMnemonic()
//
// DESCRIPTION: add series from basket
//
// WRITTEN:     KDZ, 6/14/2000
///////////////////////////////////////////////////////////////////
function AddMnemonic( sMnemonic )
{
  var isNew = true;
  var name = "Basket" ;
  var expires = "" ;
  var path = "/" ;
  var domain = "" ;
  var secure = "" ;

  var sCopyMnemonic = "|" + sMnemonic + "|" ;
  var sCookie =  GetBasket() ;
  var path = "/" ;
  //var sString ;
  if (sCookie == null)
	var sNewCookie = "FL" + sCopyMnemonic ;
  else
   {
	// check cookie	
	if ( sCookie.indexOf( sCopyMnemonic ) == -1 )
	{
		var sNewCookie = sCookie + sCopyMnemonic ;
		isNew = true;
	}
	else
	{
		var sNewCookie = sCookie ;
		isNew = false;
	}
  }
	
	var intItems = CountBasket();
  if ( intItems < 25 )
  {
	document.cookie = name + "=" + adv_escape(sNewCookie) +
    ((expires) ? "; expires=" + expires.toGMTString() : "") +
    ((path) ? "; path=" + path : "") +
    ((domain) ? "; domain=" + domain : "") +
    ((secure) ? "; secure" : ""); 
/*
		if ( isNew )
			Update_BasketSummary( intItems + 1 );
*/			
	iReturn = 0 ;
  }
  else
    iReturn = 2 ; 

  return iReturn ;
}

function adv_escape( strUrl ) {
	var sRet = escape(strUrl);
	sRet = sRet.replace(/\+/g,"%2b");
	sRet = sRet.replace(/\-/g, "%2d");
	sRet = sRet.replace(/\*/g, "%2a");
	sRet = sRet.replace(/\//g, "%2f");
	return sRet;
}

function getCookieVal (offset)
{
  var endstr = document.cookie.indexOf (";", offset);
  if (endstr == -1)
    endstr = document.cookie.length;
  return unescape(document.cookie.substring(offset, endstr));
  	
}

///////////////////////////////////////////////////////////////////
// NAME:        CountBasket()
//
// DESCRIPTION: get number of series in basket
//
// WRITTEN:   NTW, 6/5/2000
// EDITED:		KDZ, 6/14/2000
///////////////////////////////////////////////////////////////////
function CountBasket()
{
  var sCookie =  GetBasket() ;
  var iStart = 0
  var iTemp = 0
  var iNum = 0

  if ( sCookie != null )
  {
    while (sCookie.indexOf( "|", iStart ) != -1)
	{
		iNum = iNum + 1 ;
		iTemp = sCookie.indexOf( "|", iStart ) ;
		iStart = iTemp + 1 ; 
	}

	iNum = iNum / 2
  }

  return iNum
}
