// Convert decimal number into fractional
//
function js_ToFraction (dblVal)
{
  var intM, intN, intN2, intD;
  var MAX_D = 256;
  var bNegative;
  var i;
  var intMaxC;
  var sVal;
  
  if (dblVal < 0)
    bNegative = true;
  else
    bNegative = false;
    
  intM = Math.round(Math.abs(dblVal)-0.5);
  intN = (Math.abs(dblVal) - intM) * MAX_D;
  intN2 = Math.round(intN);  
        
  if (intN == 0 || intN != intN2)
  {
    sVal = dblVal;
    return sVal;
  }
  
  intMaxC = 1;
  for (i = intN; i > 1; i--)
  {
    if (intN % i == 0)
    {
      if (MAX_D % i == 0)
      {
        intMaxC = i;
        break;
      }
    }
  }
  
  intN = intN / intMaxC;
  intD = MAX_D / intMaxC;
  
  if (intM == 0)
  {
    sVal = intN + "/" + intD;    
  }
  else
  {
    sVal = intM + " " + intN + "/" + intD;
  }
  
  if (bNegative)
    sVal = "-" + sVal;
  
  return sVal;
}
// Convert into comma separated long
//
function js_ToReadableLng(lngVal)
{
  var intLen, sTemp;  
  var bNegative;
  var i, j;
  var sVal;
  
  if (lngVal < 0)  
    bNegative = true;    
  else    
    bNegative = false;  
  
  sTemp = Math.abs(lngVal).toString();
  intLen = sTemp.length;
  
  if (intLen <= 3)
    return lngVal;
    
  sVal = "";    
  j = 0;
  for (i=intLen-1; i >=0; i--)
  {
      sVal = sTemp.charAt(i) + sVal;
      j++;
      if (j % 3 == 0)
        sVal = "," + sVal;        
  }    
  
  if (bNegative)
    sVal = "-" + sVal;

  return sVal;  
}
// Convert from fractional to decimal
//
function js_ToDecimal(strVal)
{
  var dblVal, absVal;
  var vals, fVal;
  var intM;
  var bNegative;
   
  if (strVal.indexOf("/") < 0)
    return strVal;
    
  if (strVal < 0)
    bNegative = true;
  else
    bNegative = false;
      
  dblVal = strVal.split(" ");
  
  if (dblVal.length == 1)
  {
    intM = "";
    fVal = dblVal[0]
  }
  else if (dblVal.length == 2)
  {
    intM = dblVal[0];
    fVal = dblVal[1];
  }
  else
    return dblVal[0];
  
  vals = fVal.split("/");      
  
  if (vals[1] == 0)
    return intM;
  else  
    return (new Number(intM) + new Number(vals[0]/vals[1]));
}