/**
 * Creates a HttpXmlRequest object.
 * @return xmlhttprequest object or false if not supported.
 */
function getXMLHttpRequest() {
   var xmlHttp = false;

   try {
      // ie since 5
      if( window.ActiveXObject ) {
         for( var i = 5; i; i-- ) {
            try {
               if( i == 2 ) {
                  xmlHttp = new ActiveXObject( "Microsoft.XMLHTTP" );    
               }
               else {
                  // try to get the latest ms object
                  xmlHttp = new ActiveXObject( "Msxml2.XMLHTTP." + i + ".0" );
               }
               break;
            }
            catch( excNotLoadable ) {                        
               xmlHttp = false;
            }
         }
      }
      // other browsers like firefox, opera, safari, mozilla
      else if( window.XMLHttpRequest ) {
         xmlHttp = new XMLHttpRequest();
      }
   }
   catch( excNotLoadable ) {
      xmlHttp = false;
   }
   return xmlHttp ;
} // -- getXMLHttpRequest


/**
 * builds the request parameter xml structure
 * @param params an array containing all parameters.
 * @return xml that interprets all parameters as xml
 */
function getXmlRequest(params) {
   var xmlRequest = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>";
   xmlRequest += "<request>"
   if (params) {
      for (var i=0; i < params.length; i++) {
         xmlRequest += "<parameter><key><![CDATA["+params[i][0]+"]]></key><value><![CDATA["+params[i][1]+"]]></value></parameter>"
      }
   }
   xmlRequest += "</request>"
   return xmlRequest;
} // -- getXmlRequest


/**
 * sends the request synchron.
 * @param params an array containing all parameters.
 * @param ajaxRequestServlet the request url that can handle the request data.
 * @return request.responseXml as a valid result.
 */
function sendSynchronRequest(params, ajaxRequestServlet) {
   var xmlRequestData = getXmlRequest(params);
   var request = getXMLHttpRequest();
   
   if (request) {
      // send the request.
      request.open("POST", ajaxRequestServlet, false);
      request.setRequestHeader("Content-Type", "text/xml");
      request.send(xmlRequestData);
      
      // read the valid result.
      if (request.readyState == 4) {
        if (request.status == 200) {
           return new Array(request.responseXML,request.responseText);
        }
      }
      alert("Unexpected error (readystate="+request.readyState+", status="+request.status+")! ")
      return false;
   }
} // -- sendSynchronRequest

function getTopUser() {
	var response = sendSynchronRequest(new Array(), "ajax/topusercontent.xml");
	handleResponse(response[0]);
}


function handleResponse(xmlDocument) {
   if (xmlDocument.getElementsByTagName("result") && xmlDocument.getElementsByTagName("result")[0]) {
      var content = xmlDocument.getElementsByTagName("result")[0].firstChild.nodeValue;
   	  document.getElementById("top_users").innerHTML = content;
   }
}


function getSearchContent() {
	var response = sendSynchronRequest(new Array(), "ajax/TopUserContent.php?action=get_search_content");
	handleSearchContentResponse(response[0]);
}


function handleSearchContentResponse(xmlDocument) {
   if (xmlDocument.getElementsByTagName("result") && xmlDocument.getElementsByTagName("result")[0]) {
      var content = xmlDocument.getElementsByTagName("result")[0].firstChild.nodeValue;
   	  document.getElementById("search_content").innerHTML = content;
   }
}

function getMovies() {
    var url = 'http://www.yourprops.com/ajax/AjaxXml.php';
//    if (window.XMLHttpRequest) {
//        req = new XMLHttpRequest();
//    } else if (window.ActiveXObject) {
//        req = new ActiveXObject("Microsoft.XMLHTTP");
//    }
    req = getXMLHttpRequest();
    
    req.onreadystatechange = processRequest;
    req.open("GET", url, true);
    req.send(null);
}

function processRequest() {
    if (req.readyState == 4) {
        if (req.status == 200) {
          parseMessages();
        } else {
          alert ( "Not able to retrieve description" );
				}
    }
}

function parseMessages() {
  var xmldoc = req.responseXML;
  var myElements = xmldoc.getElementsByTagName('value');
  for (var i = 0; i < myElements.length; i++){
    var o = new Option(myElements[i].firstChild.data);
    o.value = myElements[i].firstChild.data;
    document.invis.movie_c.options[i+1] = o
  }
}
  
  function toggleEbene(div)
  {
     if (document.getElementById(div).style.display == "none") {
       getMovies();
       document.getElementById(div).style.display = "block";
     } else {
       document.getElementById(div).style.display = "none";
     }
  }

  function takeMovie() {
    document.forms.search.movie.value = document.forms.invis.movie_c.options[document.forms.invis.movie_c.selectedIndex].text;
    toggleEbene('select_movie_layer');
  }

  function takeAll() {
    document.forms.search.movie.value = "All"
  }



// -- file
