function newAjax() {
  var ajax;
  try {			// W3C-Standard
   ajax = new XMLHttpRequest();
  } catch(w3c) {
   try {			// Internet Explorer
    ajax = new ActiveXObject("Msxml2.XMLHTTP");
   } catch(msie) {
    try {		// Internet Explorer alt
     ajax = new ActiveXObject("Microsoft.XMLHTTP");
    } catch(msie_alt) {
     //alert("Ihr Browser kann keine Records anzeigen.");
     ajax=false;	// !!! Link auf XML-Dokument
    }
   }
  }
  return ajax;
}

/*********************************************************************************/
/*** Obfuscated data ***/
function getData(script, table, field, key, event) {
  var target=event.target?event.target:event.srcElement;  // IE kennt target nicht :-(
  while (!target.getAttribute('href') || target.getAttribute('src'))  // IE liefert bei href auch src von z.B. <img>
    target=target.parentNode;

  var ajax=newAjax();

  // Datei anfordern (synchron)
  ajax.open('GET', script+'?show=obfuscate&field='+field+'&key='+key, false);  //synchron!
  ajax.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

  // umgeht Internet Explorers Caching von GET-Anfragen
  ajax.setRequestHeader('If-Modified-Since', 'Sat, 1 Jan 2000 00:00:00 GMT');
  ajax.send('');

  var data=ajax.responseText;
//if (!data) data='Non';
  var p=target.parentNode;
  p.removeChild(target);
  while (p.lastChild) p.removeChild(p.lastChild);
  var node=document.createElement('span');
  node.setAttribute('class','unobfuscated');
  node.innerHTML=data;
  p.appendChild(node);
  return false;
}

/*********************************************************************************/
/*** enable probably hidden input fields ***/
/* (hidden, if 'mod'&4) */
function showeditfields(event) {
  var target=event.target?event.target:event.srcElement;  // IE kennt target nicht :-(
  target.style.display='none';
  while (target=target.nextSibling) target.style.display='';
}

/*********************************************************************************/
/*** Check password _before_ opening edit or delete window ***/
function checkPWD(script, key, goto, table) {
  //Sind wird schon autorisiert für diesen key?
  var ajax=newAjax();
  ajax.open('GET', script+'?show=checkpwd&key='+key, false);  //synchron!
  ajax.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  ajax.setRequestHeader('If-Modified-Since', 'Sat, 1 Jan 2000 00:00:00 GMT');
  ajax.send('');
  var data=ajax.responseText;
  if (data=='OK') {
    //ja:   direkt zum gewünschten window
    window.location='?show='+goto+'&key='+key+(table?'&table='+table:'');
  } else {
    //nein: Passwort eingabefenster zeigen
//TODO: Eigenes Fenster mit Möglichkeit für vergessenes Passwort
    var pwd = prompt("Bitte das Kennwort eingeben:");
    if (pwd==null || pwd=='') { //abbruch bzw. keine Eingabe
      return;
    } else {  //check
//TODO: verschlüsseln!
      ajax.open('GET', script+'?show=checkpwd&key='+key+'&pwd='+pwd, false);  //synchron!
      ajax.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
      ajax.setRequestHeader('If-Modified-Since', 'Sat, 1 Jan 2000 00:00:00 GMT');
      ajax.send('');
      var data=ajax.responseText;
      if (data=='OK')
        window.location='?show='+goto+'&key='+key+(table?'&table='+table:'');
      else {
        alert('Anmeldung fehlgeschlagen');
        return;
      }
    }
  }
}

