var req = false;
function callAJAX(url, pageElement, callMessage, errorMessage) { 
  document.getElementById(pageElement).innerHTML = callMessage; 
  try { 
    req = new XMLHttpRequest(); 
  } catch(e) { 
    try { 
	req = new ActiveXObject("Msxml2.XMLHTTP");
    } 
    catch (e) { 
	try { 
	  req = new ActiveXObject("Microsoft.XMLHTTP");
	} 
        catch (E) { req = false; } 
    } 
  } 
  req.onreadystatechange = function() {responseAJAX(pageElement, errorMessage);}; 
  req.open("GET",url,true); 
  req.send(null); 
} 

function responseAJAX(pageElement, errorMessage) { 
  if(req.readyState == 4) { 
    if(req.status == 200) { 
	output = req.responseText; 
	document.getElementById(pageElement).innerHTML = output; 
    } else { 
	document.getElementById(pageElement).innerHTML = errorMessage+"\n"+responseText; 
    } 
  }
} 

function makePOSTRequest(url, parameters, pageElement) {
   req = false;
   if (window.XMLHttpRequest) { // Mozilla, Safari,...
      req = new XMLHttpRequest();
      if (req.overrideMimeType) {
      	// set type accordingly to anticipated content type
         //req.overrideMimeType('text/xml');
         req.overrideMimeType('text/html');
      }
   } else if (window.ActiveXObject) { // IE
      try {
         req = new ActiveXObject("Msxml2.XMLHTTP");
      } catch (e) {
         try {
            req = new ActiveXObject("Microsoft.XMLHTTP");
         } catch (e) {}
      }
   }
   if (!req) {
      alert('Cannot create XMLHTTP instance');
      return false;
   }
   req.onreadystatechange = function() {responseAJAX(pageElement, 'Error');}; 
   req.open('POST', url, true);
   req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
   req.setRequestHeader("Content-length", parameters.length);
   req.setRequestHeader("Pragma", "no-cache");
   req.setRequestHeader("Cache-Control", "must-revalidate");
   req.setRequestHeader("If-Modified-Since", document.lastModified);
   req.setRequestHeader("Connection", "close");
   req.send(parameters);
}

function get(url, obj, pageElement) {
    var getstr = "?";
    for (i=0; i<obj.childNodes.length; i++) {
         if (obj.childNodes[i].tagName == "INPUT") {
            if (obj.childNodes[i].type == "text") {
               getstr += obj.childNodes[i].name + "=" + obj.childNodes[i].value + "&";
            }
            if (obj.childNodes[i].type == "checkbox") {
               if (obj.childNodes[i].checked) {
                  getstr += obj.childNodes[i].name + "=" + obj.childNodes[i].value + "&";
               } else {
                  getstr += obj.childNodes[i].name + "=&";
               }
            }
            if (obj.childNodes[i].type == "radio") {
               if (obj.childNodes[i].checked) {
                  getstr += obj.childNodes[i].name + "=" + obj.childNodes[i].value + "&";
               }
            }
         }
         if (obj.childNodes[i].tagName == "TEXTAREA") {
               getstr += obj.childNodes[i].name + "=" + encodeURI(obj.childNodes[i].value) + "&";
	 }
         if (obj.childNodes[i].tagName == "SELECT") {
            var sel = obj.childNodes[i];
            getstr += sel.name + "=" + sel.options[sel.selectedIndex].value + "&";
         }
    }
    makePOSTRequest(url, getstr, pageElement);
}

function getBox(url, select, pageElement) {
	var wert = select.value;
	callAJAX(url+'?s='+wert, pageElement, 'loading...', 'Error'); 
}

function check(ele) {
  if (document.getElementById(ele))
    if (document.getElementById(ele).style.display == "none") {document.getElementById(ele).style.display = "block";}
	else {document.getElementById(ele).style.display = "none";}
}

function showBlock(ele) {
  if (document.getElementById(ele)) document.getElementById(ele).style.display = "block";
}
function hideBlock(ele) {
  if (document.getElementById(ele)) document.getElementById(ele).style.display = "none";
}

function add(ele, wert) {
  if (wert == 1) document.getElementById(ele).value += 1;
    else if (wert == 0 && document.getElementById(ele).value > 0) document.getElementById(ele).value -= 1;
}

function closeviews(c) {
  for (i=0; i<c; i++) if (document.getElementById('more1_'+i)) document.getElementById('more1_'+i).style.display = "none";
}
function openviews(c) {
  for (i=0; i<c; i++) if (document.getElementById('more1_'+i)) document.getElementById('more1_'+i).style.display = "block";
}

function openview(ele) {
    if (document.getElementById('more1_'+ele).style.display == "none") {
      document.getElementById('more1_'+ele).style.display = "block";
      if (document.getElementById('more2_'+ele)) document.getElementById('more2_'+ele).style.display = "block";
      if (document.getElementById('more3_'+ele)) document.getElementById('more3_'+ele).style.display = "block";
      document.getElementById('img_'+ele).src = './img/admin_open.gif';
    } else {
      document.getElementById('more1_'+ele).style.display = "none";
      if (document.getElementById('more2_'+ele)) document.getElementById('more2_'+ele).style.display = "none";
      if (document.getElementById('more3_'+ele)) document.getElementById('more3_'+ele).style.display = "none";
      document.getElementById('img_'+ele).src = './img/admin_closed.gif';
    }
}

function openresp(ele) {
    if (document.getElementById('resp1_'+ele).style.display == "none") {
      document.getElementById('resp1_'+ele).style.display = "block";
      document.getElementById('resp2_'+ele).style.display = "block";
      document.getElementById('img_'+ele).src = './img/admin_open.gif';
    } else {
      document.getElementById('resp1_'+ele).style.display = "none";
      document.getElementById('resp2_'+ele).style.display = "none";
      document.getElementById('img_'+ele).src = './img/admin_closed.gif';
    }
}
function getPageCoords (elementId) {
     var element;
     if (document.all)
       element = document.all[elementId];
     else if (document.getElementById)
       element = document.getElementById(elementId);
     if (element) {
       var coords = {x: 0, y: 0};
       do {
         coords.x += element.offsetLeft;
         coords.y += element.offsetTop;
         element = element.offsetParent;
       }
       while (element)
       return coords;
     }
     else
       return null;
}

function Live_Search(url, box, ele, ele2)
{
  var IE = navigator.userAgent.indexOf("MSIE") >= 0;
  if (document.getElementById(box)) document.getElementById(box).style.display = "block";
  var coords = getPageCoords(ele);
  document.getElementById(box).style.left = coords.x;
  if (IE) document.getElementById(box).style.top = coords.y-20;
	else document.getElementById(box).style.top = coords.y+20;
  var wert = document.getElementById(ele).value;
  callAJAX(url+'?id='+wert+'&e1='+ele+'&e2='+ele2, box, '', '');
}

function AddEntry(sel, ele1, ele2)
{
 var select = document.getElementById(sel);
 var wert = select.options[select.options.selectedIndex].value;
 document.getElementById(ele1).value = wert.substr(0,5);
 document.getElementById(ele2).value = wert.substr(5);
}

function pausecomp(millis)
{
  var date = new Date();
  var curDate = null;

  do { curDate = new Date(); }
  while(curDate-date < millis);
} 

function help(s) {
  window.open(s+'.html');
}

function limitLength(ele, maxlen) {
 contentLen = document.getElementById(ele).value.length;
 s = "s_" + ele;
 noch = maxlen - contentLen;
 document.getElementById(s).innerHTML = "noch " + noch + " Zeichen übrig";
 if( contentLen >= maxlen ) {
  alert("Die maximale \nAnzahl an Zeichen (" + maxlen + ") ist überschritten!");
  document.getElementById(ele)[0].value = document.getElementById(ele)[0].value.substr(0,maxlen-1);
 }
}

function notizform(datum) {
  var ele = document.getElementById('n' + datum).value;
  callAJAX('notiz.php?dat='+datum+'&n='+ele, 'box', '', '');
  tooltip.style.visibility = "hidden";
}
