
/*
Function: textList
    Produce a text list of (String) objects. Objects are separated using ', '
    expect for the lost ones wich are separated using 'and'.

Example:
    >textList(['cat', 'dog', 'duck']) //returns 'cat, dog and duck'
    
Arguments:
    array - The array containing the (String) objects to list as text.
*/
function textList(array)
{
  if($type(array) != 'array')
    return array;
  if(array.length == 1)
    return array[0];

  var count = array.length - 1;
  var last = array[count];
  array.remove(last);
  var str = array.join(', ');
  /*PHP generated JavaScript for i18n, ugly but working*/
  str += ' and ' + last;
  return str;
}

/*
Function: mapLocale
    Returns the language name corresponding to a locale.
    
Example:
    >mapLocale(fr_BE.utf8) //returns 'French'
    
Arguments:
    locale - The locale to map to a language name.
    
External:
  LOCALE_MAP - An object used as associative array between locale and
  language names.
*/
function mapLocale(locale)
{
  if($defined(LOCALE_MAP))
  {
    for (var key in LOCALE_MAP)
    {
      if(key.match('^'+locale)==locale)
      return LOCALE_MAP[key];
    }
  }
  return locale;
}

var LOCALE_MAP = {
"fr_BE.utf8": "French",
"nl_BE.utf8": "Dutch",
"en_IN.utf8": "English"}

function mapLevel(level)
{
  switch(level)
  {
    case "expert": return "expert user";
    case "intermediate": return "intermediate user";
    case "beginner": return "beginner user";
    default: return level;
  }
}

