//
//  lang.js
//
//  javascript to handle multiple languages
//
// copyright(c) 2006, Paonan Hsieh, PH Engineering, All rights reserved
//


function lang( name, nick, suffix, charset, style )
{
  this.name    = name;
  this.nick    = nick;
  this.suffix  = suffix;
  this.charset = charset ? charset : "UTF-8";
  this.style   = style;
  this.idx     = -1;
}

function langList()
{
  this.handle  = Global.register( this );
  this.lang    = new Array();
  this.nLang   = 0;
  this.curLang = null;
}
langList.prototype.init = function()
{
  if ( this.curLang == null)
    this.curLang = this.lang[0];
}
langList.prototype.addLang = function( name, nick, suffix, charset, style )
{
  var tmp      = new lang( name, nick, suffix, charset, style );
  var i        = this.lang.length;
  tmp.idx      = i;
  this.lang[i] = tmp;
  this.nLang   = this.lang.length;
//alert( i +'; ' + name + '; ' + suffix );
}
langList.prototype.selectLangByIdx = function( idx )
{
  this.curLang = this.lang[idx];
//l_debugMsg( "selectLangByIdx", this.curLang );
}
langList.prototype.selectLangByName = function( name )
{
  var iSelect = 0;  // default to 1st one, in case search fails

  for ( var i=0; i<this.nLang; i++ )
    {
    if ( this.lang[i].name == name )
      {
      iSelect = i;
      break;
      }
    }

  this.selectLangByIdx(iSelect);
}
langList.prototype.selectLangByNick = function( nick )
{
  var iSelect = 0;  // default to 1st one, in case search fails

  for ( var i=0; i<this.nLang; i++ )
    {
    if ( this.lang[i].nick == nick )
      {
      iSelect = i;
      break;
      }
    }
  this.selectLangByIdx(iSelect);
}

function l_debugMsg( msg, l )
{
  var s;

  if ( l != null )
    s = 'idx='+l.idx+'\n' +'name='+l.name+'\n' +'suffix='+l.suffix+'\n' +'charset='+l.charset;
  else
    s = 'null';

  alert( msg+'\n' + s );
}
