var liste={};var tagte;var sbt;var sbtco;var tagco=new Array();

function enable_save(){
   if(sbt){
      sbt.disabled=false;
      sbt.value='uložit změny';
      sbtco.className='redbo';
   }
   return false;
}

function init_tags(tagtxt){
   var taglistcont=document.getElementById('tagset');
   var atg=taglistcont.getElementsByTagName('a');
   tagte=document.getElementById('tags');
   for (var i=0;i<atg.length;i++){
      atg[i].id='t'+i;atg[i].onclick=atg[i].onkeyup=function(){return clickit(this.id);};
      liste['t'+i]={'s':0,'t':atg[i].innerHTML=prepare(unesc(atg[i].innerHTML)),'e':atg[i]}
   }
   if(tagte){
      tagte.onkeyup=tagte.onchange=function(){reload();};tagte.value=tagtxt;
      tagco=tagte.value.replace(/^\s*|\s*$/g,'').split(/\s+/);
      reload();
   }
   sbt=document.getElementById('savebtn');
   sbtco=document.getElementById('btbo');
}

function wd_add(wd){
	wd=prepare(wd);var exists=0;
	for (var i=0;i<tagco.length;i++){if(tagco[i].toLowerCase()==wd.toLowerCase()){exists=1;}}
	if(!exists){tagco.push(wd);tagte.value=tagco.join(' ').replace(/^\s*|\s*$/g,'').replace(/\s\s+/g,' ');}
}

function wd_del(wd){
	wd=prepare(wd);var wdx=new Array();
	for (var i=0;i<tagco.length;i++){if(tagco[i].toLowerCase()!=wd.toLowerCase()){wdx.push(tagco[i]);}}
	tagco=wdx;tagte.value=wdx.join(' ').replace(/^\s*|\s*$/g,'').replace(/\s\s+/g,' ');
}

function reload(){
   if(tagte){
      tagco=tagte.value.replace(/^\s*|\s*$/g,'').split(/\s+/);
      var wh={};
      for (var i=0;i<tagco.length;i++){wh[tagco[i].toLowerCase()]=1;}
      for (var id in liste){
	     if(!liste[id]['s'] && wh[liste[id]['t'].toLowerCase()]){marktag(id);}
         if(liste[id]['s'] && !wh[liste[id]['t'].toLowerCase()]){demarktag(id);}
      }
   }else{return false;} 
}

function clickit(id){
   if(liste[id]){
      liste[id]['s']=1-liste[id]['s'];
      if(liste[id]['s']==1){marktag(id);wd_add(liste[id]['t']);}else{demarktag(id);wd_del(liste[id]['t']);}
      enable_save();return false;
   }else{return false;}
}

function marktag(id){if(liste[id]){liste[id]['s']=1;liste[id]['e'].className='tagused';}else{return false;}}
function demarktag(id){if(liste[id]){liste[id]['s']=0;liste[id]['e'].className='';}else{return false;}}
function prepare(s){return String(s).replace(/^\s*|\s*$/g,'');}
function unesc(txt){rt={'&lt;':'<','&gt;':'>','&amp;':'&','&quot;':'"'};for(cs in rt) txt=txt.replace(new RegExp(cs,'g'),rt[cs]);return txt;}


