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

var defaultlanguage = 'nl';
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_width       = '100%';
var default_language_textarea_fontfamily   = '';
var default_language_textarea_fontsize     = '';
var default_language_textarea_width        = '100%';
var default_language_textarea_height       = '80px';

//default-waardes voor LanguageListAppearance
var default_languagelist_border         = 0; //0=geen border; 1=met border
var default_languagelist_keywidth       = '40';
var default_languagelist_intervalheight = '4px';

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 s1=s2=ss=s='';
  var ii=iii=0;
  for (var i=0; i<ar.length; i++) {
    s=ar[i];
    ii=s.indexOf('=');
    if (i>0) ss+='|';
    s1=s.substring(ii+1);
    if (s1!='')
    if (s1.indexOf('[')!=0)
      s1=rss(decode_special(s1),par1,par2,par3,par4,par5,par6,par7,par8,par9);
    else {
      s2=s1.substring(1);
      iii=s2.indexOf(']'); s1=s2.substring(iii+1); s2=s2.substring(0,iii);
      s1=rss(decode_special(s1),par1,par2,par3,par4,par5,par6,par7,par8,par9);
      s2=rss(decode_special(s2),par1,par2,par3,par4,par5,par6,par7,par8,par9);
      s1='['+s2+']'+s1;
    }
    ss+=s.substring(0,ii)+'='+s1;
  }
  return ss;
}

///////////////////////////////////////////////////////////////////////// cookie

function getlanguagecookie() {
  var s=language;
  var c = new String(getrealcookie(cookienaam+'_language'));
  if (c!="null") {
    var a = new Array();
    a=c.split("@");
    s=a[0];
  }
  return s;
}

function setlanguagecookie() {
  var xmlHttp_languagecookie=GetXmlHttpObject();
  if (xmlHttp_languagecookie==null) {
    alert ("Browser does not support HTTP Request");
    return;
  }
  var url="/common/common_devicecookie.php";
  url+="?cn="+cookienaam+'_language';
  url+="&cd="+language;
  url+="&dy="+1; //1 dag
  url+="&sid="+Math.random();
//getid("txt").innerHTML+="<br>device{"+url+"}";
  xmlHttp_languagecookie.open("GET",url,false);
  xmlHttp_languagecookie.send(null);
  if (xmlHttp_languagecookie.status==200) {
    var r = xmlHttp_languagecookie.responseText;
//getid("txt").innerHTML+="<br>language-response{"+r+"}";
  }
}
/*
var xmlHttp_languagecookie;

function setlanguagecookie() {
  xmlHttp_languagecookie=GetXmlHttpObject();
  if (xmlHttp_languagecookie==null) {
    alert ("Browser does not support HTTP Request");
    return;
  }
  var url="/common/common_devicecookie.php";
  url+="?cn="+cookienaam+'_language';
  url+="&cd="+language;
  url+="&dy="+366;
  url+="&sid="+Math.random();
//getid("txt").innerHTML+="<br>device{"+url+"}";
  xmlHttp_languagecookie.onreadystatechange=stateChanged_languagecookie;
  xmlHttp_languagecookie.open("GET",url,true);
  xmlHttp_languagecookie.send(null);
}

function stateChanged_languagecookie() {
  if (xmlHttp_languagecookie.readyState==4 || xmlHttp_languagecookie.readyState=="complete") {
    var r = xmlHttp_languagecookie.responseText;
//getid("txt").innerHTML+="<br>language-response{"+r+"}";
  }
}
*/
///////////////////////////////////////////////////////////////// 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+'">';
  if (this.name!='')
  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;" title="'+rss(rssDefaultLanguage_L)+'"><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+'" style="width:'+this.appearance.textinput_width+';"'+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=ff=fs='';
  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+'">';
  if (this.name!='')
  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;" title="'+rss(rssDefaultLanguage_L)+'"><b>*</b></td>'; else t+='<td>&nbsp;</td>';
      ff=this.appearance.textarea_fontfamily; if (ff!='') ff='font-family:'+ff+';';
      fs=this.appearance.textarea_fontsize; if (fs!='') fs='font-size:'+fs+';';
      if (ff=='') ff=fs; else if (fs!='') ff=ff+' '+fs;
      if (ff!='') ff=' style="'+singlequote(ff)+'"';
      t+='<td style="padding-right:4px;"><textarea id="'+this.idname+language_id_textarea+lg+'" style="width:'+this.appearance.textarea_width+'; height:'+this.appearance.textarea_height+';" wrap="off"'+ifstring(readonly,' readonly','')+ff+'>';
      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_width=default_language_textinput_width;
  this.textarea_fontfamily=default_language_textarea_fontfamily;
  this.textarea_fontsize=default_language_textarea_fontsize;
  this.textarea_width=default_language_textarea_width;
  this.textarea_height=default_language_textarea_height;
}

///////////////////////////////////////////////////////// LanguageStringListItem

function LanguageStringListItem(text,name,idname) {
  if (text==null) text='';
  var ii=text.indexOf('=');
  if (ii==-1) {
    this.key='';
    this.languagestring=new LanguageString('',name,idname);
  } else {
    this.key=text.substring(0,ii);
    this.languagestring=new LanguageString(decode_special(text.substring(ii+1)),name,idname);
  }
}
LanguageStringListItem.prototype.interpret=function() {
  if ((this.key=='')&&(this.languagestring.text=='')) this.text=''; else
  this.text=this.key+'='+encode_special(this.languagestring.text);
  return this.text;
}

///////////////////////////////////////////////////////////// LanguageStringList

function LanguageStringList(text //veldlijst met de teksten
                           ,name //(veldlijst met de) naam
                           ,idname) { //id-naam
  if (text==null) text='';
  if (name==null) name='';
  if (idname==null) idname='';
  this.idname=idname;
  this.name=name;
  this.text=text;
  this.appearance=new LanguageAppearance();
  this.listappearance=new LanguageListAppearance();

  this.item=new Array();
  var ar=text.split('|');
  for (var i=0; i<ar.length; i++)
  this.item[i]=new LanguageStringListItem(ar[i]);

  this.readonly=false;
}
var language_id_key = '_key';
LanguageStringList.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 ls=t=tx='';
  if (this.listappearance.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.listappearance.keywidth=='') t+='<col>';
                                   else t+='<col width="'+this.listappearance.keywidth+'">';
  if (this.appearance.tablewidth=='') t+='<col>';
                                 else t+='<col width="'+this.appearance.tablewidth+'">';
  if (this.name!='')
  t+='<tr><td colspan="2" 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>','')+'</td></tr>';
  for (var i=0; i<this.item.length; i++) {
    if ((i>0)&&(this.listappearance.intervalheight!=''))
    t+='<tr><td colspan="2" style="height:'+this.listappearance.intervalheight+';"></td></tr>';
    ls=this.item[i];
//    t+='<tr style="background-color:'+this.appearance.backgroundcolor+'; color:'+this.appearance.color+';">';
    t+='<tr>';
      t+='<td style="padding-left:4px; padding-right:4px; vertical-align:top;">';
      if ((this.readonly)&&(this.appearance.textinput_valuetoo==0)) {
        t+='<span id="'+this.idname+'_'+i+language_id_key+'">';
        if (fill) {
          t+=ls.key;
        }
        t+='</span>';
      } else {
        t+='<input type="text" id="'+this.idname+'_'+i+language_id_key+'" style="width:'+this.listappearance.keywidth+';"'+ifstring(readonly,' readonly','');
        if (fill) {
          t+=' value="'+ls.key+'"';
        }
        t+='>';
      }
      t+='</td>';
      t+='<td>';
      ls.languagestring.idname=this.idname+'_'+i;
      t+=ls.languagestring.textinput_make(readonly,fill);
      t+='</td>';
    t+='</tr>';
  }
  t+='</table>';
  if (this.listappearance.border==1) t+='</td></tr></table>';
  return t;
}
LanguageStringList.prototype.textinput_fill=function() {
  var ls='';
  for (var i=0; i<this.item.length; i++) {
    ls=this.item[i];
    if (getid(this.idname+'_'+i+language_id_key))
    if ((this.readonly)&&(this.appearance.textinput_valuetoo==0))
      getid(this.idname+'_'+i+language_id_key).innerHTML=this.key;
    else
      getid(this.idname+'_'+i+language_id_key).value=this.key;

    ls.languagestring.textinput_fill();
  }
}
LanguageStringList.prototype.textinput_interpret=function() {
  var lls = lt = ltx = '';
  if (!this.readonly) {
    for (var i=0; i<this.item.length; i++) {
      lls=this.item[i];
      if (getid(this.idname+'_'+i+language_id_key))
      lls.key=getid(this.idname+'_'+i+language_id_key).value;
      lls.languagestring.textinput_interpret();
      ltx=lls.interpret();
      if (ltx!='') { if (lt!='') lt+='|'; lt+=ltx; }
    }
    this.text=lt;
  }
  return this.text;
}

///////////////////////////////////////////////////////// LanguageListAppearance

function LanguageListAppearance() {
  this.border=default_languagelist_border;
  this.keywidth=default_languagelist_keywidth;
  this.intervalheight=default_languagelist_intervalheight;
}


