function Request(url,param,func,sync) {
        var async = true;
        if( sync == true ) async = false;
        var req = newXMLHttpRequest();
        if(async && func) {
          var handlerFunc = getReadyStateHandler(req,func);
          req.onreadystatechange = handlerFunc;
        }
        req.open('GET', url+'?'+param, async);
        req.send(null);
        if(!async && func) func(req);
}

function newXMLHttpRequest() {
  var 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;
  }
  
  return http_request;
}

function getReadyStateHandler(req, responseXmlHandler) {
    // Return an anonymous function that listens to the
    // XMLHttpRequest instance
    return function () {
    // If the request's status is "complete"
        if (req.readyState == 4) {
            // Check that a successful server response was received

            if (req.status == 200) {                  //todo: catch 404 error.
                // Pass the XML payload of the response to the
                // handler function
                responseXmlHandler(req);
            }else{
                // An HTTP problem has occurred
                alert("Couldn't process data.\nError code: "+req.status+"\nMessage: "+req.responseText);
            }
        }
    }
}


var so;

function openVideo(name) {
    var container = document.createElement("div");
    container.id= "video_anchor";
    document.body.appendChild(container);
    Request("video.tmpl","",function(req) { showVideo(req,name); });
}

function showVideo(req,name) {
    document.getElementById("video_anchor").innerHTML = req.responseText;
    so = new SWFObject("http://www.baltictv.de/filearchive/"+name, "film", "720", "328", "8", "#FFFFFF");
    so.addParam("wmode", "transparent");  		  
    so.write("film");
}

function closeVideo() {
        document.body.removeChild(document.getElementById("video_anchor"));
}
