var Translatables = {
 funTable: {},
 translate: function() {
  var tlat = $$('[translatable]');
  var i;
  var elem;
  var tfun;
  if ( tlat.length > 0 ) for(i=0;i<tlat.length;i++) {
   elem = tlat[i];
   tfun = elem.getAttribute('translatable');
   if ( elem.hasAttribute('translateorig') ) {
    elem.innerHTML = elem.getAttribute('translateorig');
    elem.removeAttribute('translateorig');
   }
   if ( ( Translatables.funTable[tfun] ) && ( Translatables.funTable[tfun] != null ) ) {
    elem.setAttribute('translateorig',elem.innerHTML);
    elem.innerHTML = Translatables.funTable[tfun](elem);
   }
  }
 },
 getOriginalValue: function(elem) {
  if ( elem.hasAttribute('translateorig') ) {
   return(elem.getAttribute('translateorig'));
  } else {
   return(elem.innerHTML);
  }
 },
 registerTranslatorFunction: function(refName,refFun) {
  Translatables.funTable[refName] = refFun;
 },
 unregisterTranslatorFunction: function(refName) {
  Translatables.funTable[refName] = null;
 }
}

