var http_request = false;
var origSize = getOrigSize();
var scrollbar;

function macheRequest(url) {
   http_request = false;
   
   if (window.XMLHttpRequest) { // Mozilla, Safari,...
       http_request = new XMLHttpRequest();
       if (http_request.overrideMimeType) {
           http_request.overrideMimeType('text/xml');
           // zu dieser Zeile siehe weiter unten
       }
   } else if (window.ActiveXObject) { // IE
       try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
       } catch (e) {
            try {
                 http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
       }
   }

   if (!http_request) {
       alert('Ende :( Kann keine XMLHTTP-Instanz erzeugen');
       return false;
   }

   http_request.onreadystatechange = alertInhalt;
   http_request.open('GET', url, true);
   http_request.send(null);
}

function alertInhalt() {
   type = http_request.responseText.substr(0, 3); 
   responseText = http_request.responseText.substr(3);

   if (http_request.readyState == 4) {
       if (http_request.status == 200) {
           if (type == "foo") {
               i = 0; number = "";

               while((responseText.charAt(i).indexOf(' ') == -1) && (i < responseText.length)) {
                 number = number + responseText.charAt(i++);
               }       

               responseText = '[<A HREF="'+window.location.href+'#ursprung'+number+'" NAME="notiz'+number+'">'+number+'</A>] '+responseText.substr(i);
               document.getElementById("mod_footnotes_inner").innerHTML=responseText;  

               scrollbar = new Control.ScrollBar('mod_footnotes_inner','scrollbar_track');
               scrollbar = new Control.ScrollBar('mod_footnotes_inner','scrollbar_track');
           } else if (type == "mca") {
               document.getElementById("gigcal_minical_module").innerHTML=responseText;
           }
       } else {
           alert('Bei dem Request ist ein Problem aufgetreten.');
       }
   }
}

function doMouseOver(hidden) {
  alert(hidden);
  val = document.getElementById("mouseover"+hidden).value;
  alert(val);
  document.getElementById("hidden"+hidden).innerHTML= val;
}
function doMouseOut(hidden) {
  document.getElementById("hidden"+hidden).innerHTML= document.getElementById("mouseout"+hidden).value;
}

function getElementsByClass(searchClass,node,tag) {

        var classElements = new Array();
        if (node == null)
                node = document;
        if (tag == null)
                tag = '*';
        var els = node.getElementsByTagName(tag);
        var elsLen = els.length;
        var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
        var j = 0;
        for (i = 0; i < elsLen; i++) {
                if (pattern.test(els[i].className) ) {
                        classElements[j] = els[i];
                        j++;
                }
        }
        return classElements;
}

function getElementsByAttribute(attr,val,container) {
  container = container || document;
  var all = container.all || container.getElementsByTagName('*');
  var arr = [];
  for(var k=0;k<all.length;k++)
      if(all[k].getAttribute(attr) == val)
         arr[arr.length] = all[k];
  return arr
}

function getElementsByCondition(condition,container) {
  container = container || document;
  var all = container.all || container.getElementsByTagName('*');
  var arr = [];
  for(var k=0;k<all.length;k++) {
      var elm = all[k];
      if(condition(elm,k))
         arr[arr.length] = elm;
  }
  return arr;
} 

function getOrigSize() {
  var p = document.getElementsByTagName('td');
  var o = new Array();

  for(n=0; n<p.length; n++) {
    if(p[n].style.fontSize) {
      o[n] = parseInt(p[n].style.fontSize.replace("px", ""));
    } else if (window.getComputedStyle) {
      o[n] = parseInt(window.getComputedStyle(p[n], "").getPropertyValue("font-size").replace("px", ""));
    } else {
      o[n] = 10;
    }

    return o;
  }
}

function changeFontSize(inc) {
  var elem = new Array(); elem[0]='td'; elem[1]='div'; elem[2]='span'; elem[3]='th'; elem[4]='caption'; elem[5]='li';
  for(e=0; e<elem.length; e++) {
    var p = document.getElementsByTagName(elem[e]);

    if (inc == 0) {
      for(n=0; n<p.length; n++) {
        p[n].style.fontSize = origSize[n] + 'px';
      }
    } else {
      for(n=0; n<p.length; n++) {
        if(p[n].style.fontSize) {
          var size = parseInt(p[n].style.fontSize.replace("px", ""));  
          p[n].style.fontSize = size+inc + 'px';
        } else if (window.getComputedStyle) {
          var size = parseInt(window.getComputedStyle(p[n], "").getPropertyValue("font-size").replace("px", ""));
          p[n].style.fontSize = size+inc + 'px';
        } else if (p[n].currentStyle) {
          var fs = p[n].currentStyle.fontSize;
          if (fs.indexOf("pt" != -1)) {
            var size = parseFloat(fs.replace("pt", ""));
            p[n].style.fontSize = size + inc + 'pt';
          } else if (fs.indexOf("em" != -1)) {
            var size = parseFloat(fs.replace("em", ""));
            inc = 0.1*inc;
            p[n].style.fontSize = size + inc + 'em';
          } else if (fs.indexOf("px" != -1)) {
            var size = parseInt(fs.replace("px", ""));
            p[n].style.fontSize = size+inc + 'px';
          }
        } else {
          var size = 10;
          p[n].style.fontSize = size+inc + 'px';
        }
      }
    }
  }

  scrollbar.recalculateLayout();
  scrollbar.recalculateLayout();
}