// return the rv value of a Gecko user agent
// as a string.
// returns  null for non-gecko browsers,
//
function geckoGetLiteralRv()
{
  if (navigator.product != 'Gecko')
	{
		return null;
	}
	var ua      = navigator.userAgent.toLowerCase();
	var rvStart = ua.indexOf('rv:');
	var rvEnd   = ua.indexOf(')', rvStart);
	var rv      = ua.substring(rvStart+3, rvEnd);

  return rv;
}

// return the rv value of a Gecko user agent
// as a floating point number.
// returns -1 for non-gecko browsers,
//          0 for pre Netscape 6.1/Gecko 0.9.1 browsers
//          number > 0 where each portion of
//          the rv value delimited by .
//          will be treated as value out of 100.
//          e.g. for rv: 3.12.42,
//          getGeckoRv() returns 3.1242
//
function geckoGetRv()
{
  var rvValue = 0;
  var exp     = 1;
	var rv      = geckoGetLiteralRv();
  if (rv==null)
  {
    return -1;
  }
	var rvParts = rv.split('.');

	for (var i = 0; i < rvParts.length; i++)
	{
		var val = parseInt(rvParts[i]);
		rvValue += val / exp;
		exp *= 100;
	}

	return rvValue;
}
