// JavaScript Document
 
var xmlHttp = createXmlHttpRequestObject();
 
var showErrors = true;
 
var cache = new Array(); // voor de cache voor de request
 
var bericht;
 
// request*****************************************************************************************************************************************************
 
 
 
function createXmlHttpRequestObject() // maak een object voor xmlhttp
{
 var xmlHttp;
 
 try
 {
  xmlHttp = new XMLHttpRequest();
 }
 catch(e)
 {
  var XmlHttpVersions = new Array ("MSXML2.XMLHTTP.6.0",
           "MSXML2.XMLHTTP.5.0",
           "MSXML2.XMLHTTP.4.0",
           "MSXML2.XMLHTTP.3.0",
           "MSXML2.XMLHTTP",
           "Microsoft.XMLHTTP");
  for (var i =0; i <XmlHttpVersions.length && !xmlHttp; i++)
  {
   try
   {
    xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
   }
   catch (e){} //ignore error
  }
 }
 if (!xmlHttp)
 {
  displayError("Error creating hte XMLHTTPRequest object.");
 }
 else
 {
  return xmlHttp;
 }
}
 
function displayError($message) //function voor het displayen van een error.
{
 if(showErrors)
 {
  showErrors = false;
  
  alert("Error encountered: \n" + $message);
 }
}
 
function handleRequestStateChangeSite() // regel de request
{
 if(xmlHttp.readyState == 4)
 {
  if (xmlHttp.status == 200)
  {
   try
   {
    readResponseSite(); // lees uit.
   }
   catch(e)
   {
    displayError(e.toSting());
   }
  }
  else
  {
   displayError(xmlHttp.statusText);
  }
 }
}

function readResponseSite() // lees response en verander dan de message.
{
 
 var xmlResponse = xmlHttp.responseXML;
 
 if(!xmlResponse || !xmlResponse.documentElement) throw displayError("invalid XML structure:\n" + xmlHttp.responseText);
 
 var rootNodeName = xmlResponse.documentElement.nodeName;
 if (rootNodeName == "parseError") throw displayError("invalid XML structure:\n" + xmlHttp.responseText);
 
 xmlRoot = xmlResponse.documentElement;
 
 if (rootNodeName!= "response" || !xmlRoot.firstChild) throw displayError("invalid XML structure:\n" + xmlHttp.responseText);
 
 responseText = xmlRoot.firstChild.data;
	 
 bericht.innerHTML = responseText;

}
 
function City_select() // view propertys van een database.
{    
 if(xmlHttp)
 {  
  
  var serverAddress = '../action.php';
  
  //var dbname  = document.getElementById("dbname").value;
  //var host  = document.getElementById("host").value;
  //var user  = document.getElementById("user").value;
  //var pass  = document.getElementById("pass").value;
  //var engine  = document.getElementById("engine").value;
  var cat = document.getElementById("category_select").value;
  //alert(location);
  var params = "cat=" + cat+"&action=cityselect";
  bericht = document.getElementById("city_selector");
    
  //message = document.getElementById("databaseMessage");
  if(cat) {  
      cache.push(params);
  }
  
  try
  {
   if((xmlHttp.readyState == 4 || xmlHttp.readyState == 0) && cache.length > 0)
   {
    var cacheEntry = cache.shift();
     
    xmlHttp.open("POST", serverAddress, true);
    xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    xmlHttp.onreadystatechange = handleRequestStateChangeSite;
    xmlHttp.send(cacheEntry);
   }
  }
  catch(e)
  {
   displayError(e.toString());
  } 
 }
}

function ViewVenue(){
    
    var vars = document.getElementById("venue_select").value;

    var splitted= vars.split(":");
    var lat = splitted[0];
    var lon = splitted[1]; 
    var id = splitted[2];
    
    $(".geo_select").replaceWith('<div class="geo_select" title="'+id+'"><abbr class="latitude" title="'+lat+'"></abbr><abbr class="longitude" title="'+lon+'"></abbr></div>');
    
    $("#map").googleMap(lat, lon, 17, {
        controls: ["GSmallMapControl", "GMapTypeControl"],
        markers: $(".geo_select")
    });
    
    
    
}

function Venue_select() // view propertys van een database.
{
 if(xmlHttp)
 {  
  
  var serverAddress = '../action.php'; 
  
  //var dbname  = document.getElementById("dbname").value;
  //var host  = document.getElementById("host").value;
  //var user  = document.getElementById("user").value;
  //var pass  = document.getElementById("pass").value;
  //var engine  = document.getElementById("engine").value;
  var vars = document.getElementById("city_select").value;
  var category = document.getElementById("category_select").value;
  var splitted= vars.split(":");
  var lat = splitted[0];
  var lon = splitted[1];
  var city = splitted[2];
  //alert(location);
  var params = "city=" + city+"&cat="+category+"&action=venueselect";
  bericht = document.getElementById("venue");
 
  //message = document.getElementById("databaseMessage");
  if(city) {
      var done = '';
      
      $("#geo_city").load('/action.php', { 'action': 'loadcat', 'cat':category, 'city': city }, function(){
            $("#map").googleMap(lat, lon, 12, {
                   controls: ["GSmallMapControl", "GMapTypeControl"],
                   markers: $(".geo_select")
             });          
      });    
      $('#venuedescr').empty().load('/action.php', {'action':'venuedescr', 'city': city});
      var done = 'true';
      if(done == 'true'){
        cache.push(params);
    }
  }
  
  try
  {
   if((xmlHttp.readyState == 4 || xmlHttp.readyState == 0) && cache.length > 0)
   {
    var cacheEntry = cache.shift();
     
    xmlHttp.open("POST", serverAddress, true);
    xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    xmlHttp.onreadystatechange = handleRequestStateChangeSite;
    xmlHttp.send(cacheEntry);    
   }
  }
  catch(e)
  {
   displayError(e.toString());
  } 
 }
}

function searchProvincie() // view propertys van een database.
{
 if(xmlHttp)
 {  
  
  var serverAddress = '../action.php';
  
  //var dbname  = document.getElementById("dbname").value;
  //var host  = document.getElementById("host").value;
  //var user  = document.getElementById("user").value;
  //var pass  = document.getElementById("pass").value;
  //var engine  = document.getElementById("engine").value;
  var land = document.getElementById("land").value;
  
  var params = "land=" + land+"&action=searchProvincie";
  bericht = document.getElementById("regio_dv");
  
  //message = document.getElementById("databaseMessage");
  cache.push(params);
  
  
  try
  {
   if((xmlHttp.readyState == 4 || xmlHttp.readyState == 0) && cache.length > 0)
   {
    var cacheEntry = cache.shift();
     
    xmlHttp.open("POST", serverAddress, true);
    xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    xmlHttp.onreadystatechange = handleRequestStateChangeSite;
    xmlHttp.send(cacheEntry);
   }
  }
  catch(e)
  {
   displayError(e.toString());
  } 
 }
}

function searchLocation() // view propertys van een database.
{
 if(xmlHttp)
 {  
  
  var serverAddress = '../action.php';
  
  //var dbname  = document.getElementById("dbname").value;
  //var host  = document.getElementById("host").value;
  //var user  = document.getElementById("user").value;
  //var pass  = document.getElementById("pass").value;
  //var engine  = document.getElementById("engine").value;
  var type = document.getElementById("type").value;
  //alert(location);
  var params = "type=" + type+"&action=searchLocation";
  bericht = document.getElementById("locatie");
  
  //message = document.getElementById("databaseMessage");
  if(type) {
	cache.push(params);
  }
  
  try
  {
   if((xmlHttp.readyState == 4 || xmlHttp.readyState == 0) && cache.length > 0)
   {
    var cacheEntry = cache.shift();
     
    xmlHttp.open("POST", serverAddress, true);
    xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    xmlHttp.onreadystatechange = handleRequestStateChangeSite;
    xmlHttp.send(cacheEntry);
   }
  }
  catch(e)
  {
   displayError(e.toString());
  } 
 }
}

function updateFriendsExtra() // view propertys van een database.
{
 if(xmlHttp)
 {  
  
  var serverAddress = '../friends.php';
  
  //var dbname  = document.getElementById("dbname").value;
  //var host  = document.getElementById("host").value;
  //var user  = document.getElementById("user").value;
  //var pass  = document.getElementById("pass").value;
  //var engine  = document.getElementById("engine").value;
  var know = document.getElementById("know").value;
  //alert(location);
  var params = "know=" + know+"&function=verify";
  //bericht = document.getElementById("locatie");
  
  //message = document.getElementById("databaseMessage");
  if(know) {
	cache.push(params);
  }
  
  try
  {
   if((xmlHttp.readyState == 4 || xmlHttp.readyState == 0) && cache.length > 0)
   {
    var cacheEntry = cache.shift();
     
    xmlHttp.open("POST", serverAddress, true);
    xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    xmlHttp.onreadystatechange = handleRequestStateChangeSite;
    xmlHttp.send(cacheEntry);
   }
  }
  catch(e)
  {
   //displayError(e.toString());
  } 
 }
}

function getRegion() // view propertys van een database.
{
 if(xmlHttp)
 {  
  
  var serverAddress = '../action.php';
  
  //var dbname  = document.getElementById("dbname").value;
  //var host  = document.getElementById("host").value;
  //var user  = document.getElementById("user").value;
  //var pass  = document.getElementById("pass").value;
  //var engine  = document.getElementById("engine").value;
  var land = document.getElementById("land").value;
  //alert(location);
  var params = "land=" + land+"&action=getRegion";
  bericht = document.getElementById("regio_dv");

  //message = document.getElementById("databaseMessage");
  if(land) {
	cache.push(params);
  }
  
  try
  {
   if((xmlHttp.readyState == 4 || xmlHttp.readyState == 0) && cache.length > 0)
   {
    var cacheEntry = cache.shift();
     
    xmlHttp.open("POST", serverAddress, true);
    xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    xmlHttp.onreadystatechange = handleRequestStateChangeSite;
    xmlHttp.send(cacheEntry);
   }
  }
  catch(e)
  {
   displayError(e.toString());
  } 
 }
}

function getCity() // view propertys van een database.
{
 if(xmlHttp)
 {  
  
  var serverAddress = '../action.php';
  
  //var dbname  = document.getElementById("dbname").value;
  //var host  = document.getElementById("host").value;
  //var user  = document.getElementById("user").value;
  //var pass  = document.getElementById("pass").value;
  //var engine  = document.getElementById("engine").value;
  var region = document.getElementById("regio").value;
  //alert(location);
  var params = "region=" + region+"&action=getCity";
  bericht = document.getElementById("plaats_dv");

  //message = document.getElementById("databaseMessage");
  if(region) {
	cache.push(params);
  }
  
  try
  {
   if((xmlHttp.readyState == 4 || xmlHttp.readyState == 0) && cache.length > 0)
   {
    var cacheEntry = cache.shift();
     
    xmlHttp.open("POST", serverAddress, true);
    xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    xmlHttp.onreadystatechange = handleRequestStateChangeSite;
    xmlHttp.send(cacheEntry);
   }
  }
  catch(e)
  {
   displayError(e.toString());
  } 
 }
}
