var languagelijst = 'nl=Nederlands|en=Engels';
//var languagelijst = 'nl=Nederlands|en=Engels|de=Duits|fr=Frans|es=Spaans|it=Italiaans|sl=Sloveens';

var defaultlanguage = 'en';
var language = defaultlanguage;

var rssDefaultLanguage_L = 'nl=standaard taal|en=default language';

//default-waardes voor LanguageAppearance
var default_language_border                = 0; //0=geen border; 1=met border
var default_language_backgroundcolor       = '#ffffff';
var default_language_color                 = '#000000';
var default_language_title_bold            = 1; //0=niet vet; 1=vet
var default_language_title_backgroundcolor = '#ffff00';
var default_language_title_color           = '#000000';
var default_language_tablewidth            = '100%';
var default_language_columnwidth_name      = '80';
var default_language_columnwidth_value     = ''; //=no set width
var default_language_textinput_valuetoo    = 0; //0=value as value; 1=value in readonly input
var default_language_textinput_size        = 20;
var default_language_textarea_cols         = 40;
var default_language_textarea_rows         = 3;

function rss(veldlijst,par1,par2,par3,par4,par5,par6,par7,par8,par9) {
  if (par1==null) par1='';
  if (par2==null) par2='';
  if (par3==null) par3='';
  if (par4==null) par4='';
  if (par5==null) par5='';
  if (par6==null) par6='';
  if (par7==null) par7='';
  if (par8==null) par8='';
  if (par9==null) par9='';
  var s=assignValue(veldlijst,language);
  if (s=='') {
    s=assignValue(veldlijst,defaultlanguage);
    if (s==defaultlanguage) s=veldlijst;
  }
  s=decode_special(s);
  s=s.replace(/%%1/g,par1);
  s=s.replace(/%%2/g,par2);
  s=s.replace(/%%3/g,par3);
  s=s.replace(/%%4/g,par4);
  s=s.replace(/%%5/g,par5);
  s=s.replace(/%%6/g,par6);
  s=s.replace(/%%7/g,par7);
  s=s.replace(/%%8/g,par8);
  s=s.replace(/%%9/g,par9);
  return s;
}

function rsslist(veldlijst,par1,par2,par3,par4,par5,par6,par7,par8,par9) {
  if (par1==null) par1='';
  if (par2==null) par2='';
  if (par3==null) par3='';
  if (par4==null) par4='';
  if (par5==null) par5='';
  if (par6==null) par6='';
  if (par7==null) par7='';
  if (par8==null) par8='';
  if (par9==null) par9='';
  var ar=veldlijst.split('|');
  var ss=s='';
  var ii=0;
  for (var i=0; i<ar.length; i++) {
    s=ar[i];
    ii=s.indexOf('=');
    if (i>0) ss+='|';
    ss+=s.substring(0,ii)+'='+rss(decode_special(s.substring(ii+1)),par1,par2,par3,par4,par5,par6,par7,par8,par9);
  }
  return ss;
}

///////////////////////////////////////////////////////////////// LanguageString

function LanguageString(text //veldlijst met de teksten
                       ,name //(veldlijst met de) naam
                       ,idname) { //id-naam
  if (name==null) name='';
  if (idname==null) idname='';
  this.idname=idname;
  this.name=name;
  this.text=text;
  this.appearance=new LanguageAppearance();
  
  this.readonly=false;
}
var language_id_textinput = '_textinput_';
LanguageString.prototype.textinput_make=function(readonly,fill) {
  if (readonly==null) readonly=false; //false=editable; true=readonly
  if (fill==null) fill=true; //false=no value fill; true=fill value
  this.readonly=readonly;
  var lg=t=tx='';
  if (this.appearance.border==1) t+='<table cellspacing="0" cellpadding="0" border="0"><tr><td style="border:1px solid #000000;">';
  t+='<table cellspacing="0" cellpadding="0" border="0"';
  if (this.appearance.tablewidth=='') t+='>';
                                 else t+=' width="'+this.appearance.tablewidth+'">';
  if (this.appearance.columnwidth_name=='') t+='<col>';
                                       else t+='<col width="'+this.appearance.columnwidth_name+'">';
  t+='<col width="8">';
  if (this.appearance.columnwidth_value=='') t+='<col>';
                                        else t+='<col width="'+this.appearance.columnwidth_value+'">';
  t+='<tr><td colspan="3" style="padding-left:4px; padding-right:4px; background-color:'+this.appearance.title_backgroundcolor+'; color:'+this.appearance.title_color+';">'+ifstring(this.appearance.title_bold==1,'<b>','')+rss(this.name)+ifstring(this.appearance.title_bold==1,'</b>','')+'&nbsp;<span style="font-size:smaller;">(<b>*</b>='+rss(rssDefaultLanguage_L)+')</span></td></tr>';
  for (var i=0; i<veldlijst_Count(languagelijst); i++) {
    lg=veldlijst_IndexName(languagelijst,i);
    t+='<tr style="background-color:'+this.appearance.backgroundcolor+'; color:'+this.appearance.color+';">';
      t+='<td style="padding-left:4px; padding-right:4px; text-align:right; vertical-align:top;">'+veldlijstWaarde(languagelijst,lg)+'</td>';
      if (lg==defaultlanguage) t+='<td style="vertical-align:top;"><b>*</b></td>'; else t+='<td>&nbsp;</td>';
      t+='<td style="padding-right:4px;">';
      if ((this.readonly)&&(this.appearance.textinput_valuetoo==0)) {
        t+='<span id="'+this.idname+language_id_textinput+lg+'">';
        if (fill) {
          tx=decode_special(veldlijstWaarde(this.text,lg)); if (tx==lg) tx='';
          t+=tx;
        }
        t+='</span>';
      } else {
        t+='<input type="text" id="'+this.idname+language_id_textinput+lg+'" size="'+this.appearance.textinput_size+'"'+ifstring(readonly,' readonly','');
        if (fill) {
          tx=decode_special(veldlijstWaarde(this.text,lg)); if (tx==lg) tx='';
          t+=' value="'+tx+'"';
        }
        t+='>';
      }
      t+='</td>';
    t+='</tr>';
  }
  t+='</table>';
  if (this.appearance.border==1) t+='</td></tr></table>';
  return t;
}
LanguageString.prototype.textinput_fill=function() {
  var lg=tx='';
  for (var i=0; i<veldlijst_Count(languagelijst); i++) {
    lg=veldlijst_IndexName(languagelijst,i);
    tx=decode_special(veldlijstWaarde(this.text,lg)); if (tx==lg) tx='';

    if (getid(this.idname+language_id_textinput+lg))
    if ((this.readonly)&&(this.appearance.textinput_valuetoo==0))
      getid(this.idname+language_id_textinput+lg).innerHTML=tx;
    else
      getid(this.idname+language_id_textinput+lg).value=tx;
  }
}
LanguageString.prototype.textinput_interpret=function() {
  var lg=t=tx='';
  if (!this.readonly) {
    for (var i=0; i<veldlijst_Count(languagelijst); i++) {
      lg=veldlijst_IndexName(languagelijst,i);
      tx=veldlijstWaarde(this.text,lg); if (tx==lg) tx='';
      if (getid(this.idname+language_id_textinput+lg)) {
        tx=encode_special(getid(this.idname+language_id_textinput+lg).value);
        if (tx!='') { if (t!='') t+='|'; t+=lg+'='+tx; }
      }
    }
    this.text=t;
  }
  return this.text;
}
var language_id_textarea = '_textarea_';
LanguageString.prototype.textarea_make=function(readonly,fill) {
  if (readonly==null) readonly=false; //false=editable; true=readonly
  if (fill==null) fill=true; //false=no value fill; true=fill value
  this.readonly=readonly;
  var lg=t=tx='';
  if (this.appearance.border==1) t+='<table cellspacing="0" cellpadding="0" border="0"><tr><td style="border:1px solid #000000;">';
  t+='<table cellspacing="0" cellpadding="0" border="0"';
  if (this.appearance.tablewidth=='') t+='>';
                                 else t+=' width="'+this.appearance.tablewidth+'">';
  if (this.appearance.columnwidth_name=='') t+='<col>';
                                       else t+='<col width="'+this.appearance.columnwidth_name+'">';
  t+='<col width="8">';
  if (this.appearance.columnwidth_value=='') t+='<col>';
                                        else t+='<col width="'+this.appearance.columnwidth_value+'">';
  t+='<tr><td colspan="3" style="padding-left:4px; padding-right:4px; background-color:'+this.appearance.title_backgroundcolor+'; color:'+this.appearance.title_color+';">'+ifstring(this.appearance.title_bold==1,'<b>','')+rss(this.name)+ifstring(this.appearance.title_bold==1,'</b>','')+'&nbsp;<span style="font-size:smaller;">(<b>*</b>='+rss(rssDefaultLanguage_L)+')</span></td></tr>';
  for (var i=0; i<veldlijst_Count(languagelijst); i++) {
    lg=veldlijst_IndexName(languagelijst,i);
    t+='<tr style="background-color:'+this.appearance.backgroundcolor+'; color:'+this.appearance.color+';">';
      t+='<td style="padding-left:4px; padding-right:4px; text-align:right; vertical-align:top;">'+veldlijstWaarde(languagelijst,lg)+'</td>';
      if (lg==defaultlanguage) t+='<td style="vertical-align:top;"><b>*</b></td>'; else t+='<td>&nbsp;</td>';
      t+='<td style="padding-right:4px;"><textarea id="'+this.idname+language_id_textarea+lg+'" cols="'+this.appearance.textarea_cols+'" rows="'+this.appearance.textarea_rows+'" wrap="off"'+ifstring(readonly,' readonly','')+'>';
      if (fill) {
        tx=decode_special(veldlijstWaarde(this.text,lg)); if (tx==lg) tx='';
        t+=tx;
      }
      t+='</textarea></td>';
    t+='</tr>';
  }
  t+='</table>';
  if (this.appearance.border==1) t+='</td></tr></table>';
  return t;
}
LanguageString.prototype.textarea_fill=function() {
  var lg=tx='';
  for (var i=0; i<veldlijst_Count(languagelijst); i++) {
    lg=veldlijst_IndexName(languagelijst,i);
    tx=decode_special(veldlijstWaarde(this.text,lg)); if (tx==lg) tx='';
    if (getid(this.idname+language_id_textarea+lg)) getid(this.idname+language_id_textarea+lg).value=tx;
  }
}
LanguageString.prototype.textarea_interpret=function() {
  var lg=t=tx='';
  if (!this.readonly) {
    for (var i=0; i<veldlijst_Count(languagelijst); i++) {
      lg=veldlijst_IndexName(languagelijst,i);
      tx=veldlijstWaarde(this.text,lg); if (tx==lg) tx='';
      if (getid(this.idname+language_id_textarea+lg)) {
        tx=encode_special(getid(this.idname+language_id_textarea+lg).value);
        if (tx!='') { if (t!='') t+='|'; t+=lg+'='+tx; }
      }
    }
    this.text=t;
  }
  return this.text;
}

///////////////////////////////////////////////////////////// LanguageAppearance

function LanguageAppearance() {
  this.border=default_language_border;
  this.backgroundcolor=default_language_backgroundcolor;
  this.color=default_language_color;
  this.title_bold=default_language_title_bold;
  this.title_backgroundcolor=default_language_title_backgroundcolor;
  this.title_color=default_language_title_color;
  this.tablewidth=default_language_tablewidth;
  this.columnwidth_name=default_language_columnwidth_name;
  this.columnwidth_value=default_language_columnwidth_value;
  this.textinput_valuetoo=default_language_textinput_valuetoo;
  this.textinput_size=default_language_textinput_size;
  this.textarea_cols=default_language_textarea_cols;
  this.textarea_rows=default_language_textarea_rows;
}


