		var request;	// the response from an XMLHttpRequest


    function createRequestObject() {
    
        var req;
    
        if(window.XMLHttpRequest){
            // Firefox, Safari, Opera...
            req = new XMLHttpRequest();
        } else if(window.ActiveXObject) {
            // Internet Explorer 5+
            req = new ActiveXObject("Microsoft.XMLHTTP");
        } else {
            // There is an error creating the object,
            // just as an old browser is being used.
            alert('There was a problem creating the XMLHttpRequest object');
        }
    
        return req;
    
    }
    
	function sendRequest( reqDoc ) 
	{
	  try
	  {
		 hideddrivetip(); 
		}catch(e)
		{
		  // do nothing
		}
	  var htmlDoc= reqDoc;
	  // Check if requestobject is initialized, if not do so...
	  if( !request)
	  {
		  request = createRequestObject();
		}
    // Open PHP script for requests
		request.open("GET", htmlDoc,true);
    request.onreadystatechange = handleResponse;
    request.send(null);
    
    }     
    
	function postRequest( reqDoc, strSubmit, formDoc ) 
	{
	  var htmlDoc= reqDoc;
	  // Check if requestobject is initialized, if not do so...
	  if( !request)
	  {
		  request = createRequestObject();
		}
    // Open PHP script for requests
		request.open("POST", htmlDoc,true);
		
		try
		{
 
		 if( formDoc.encoding == "multipart/form-data") 
		 {
		   request.setRequestHeader('Content-Type', 'multipart/form-data');
			}else request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		} catch(e)
		{
		  // do nothing
		}
    request.onreadystatechange = handleResponse;
    request.send(strSubmit);
    
  } 
	    
 
   
	function handleResponse() 
	{
    if(request.readyState == 4 && request.status == 200)
		{
		  docType= request.getResponseHeader("Content-Type");
		  
		  switch (docType)
			{ 
				case "text/xml":
				  showMap();

					var xmlDoc =request.responseXML;
					var logos = xmlDoc.documentElement.getElementsByTagName("marker");
					if( logos.length>0)
					{
					  lmap.clearOverlays();
					}
					for (var i = 0; i < logos.length; i++) 
					{
						var point = new GLatLng(parseFloat(logos[i].getAttribute("lat")),parseFloat(logos[i].getAttribute("lng")));
						var img = "image.php?box="+logos[i].firstChild.nodeValue+"&active=yes&w=48";			
						var url = logos[i].getAttribute("url");
						var alt= logos[i].getAttribute("alt");
						addLogo( img,parseFloat(logos[i].getAttribute("lat")),parseFloat(logos[i].getAttribute("lng")),url, alt);
						
					}	
			    break;
				default:
					var htmlDoc =request.responseText;
					document.getElementById("contentFrame").innerHTML = htmlDoc;
					if( document.getElementById("map"))
					{
					  // call php file to generate xml file with logodata 
					  sendRequest("maplogo.php");
					}		
			}
    }
  }

     
function postForm( docForm,htmlDoc)
{
  var validInput = false;
  if( docForm.name=="userInfo")
  {
    var checksum = 2047;
    var msg = "U heeft de volgende informatie niet opgegeven:\n";
	  if( docForm.login.value == "")
		{
		  msg += "U heeft geen loginnaam opgegeven.\n";
		} else checksum>>>=1;
	  if( docForm.password.value == "" && docForm.what.value=="new" )
		{
		  msg += "U heeft geen wachtwoord opgegeven\n";
		} else checksum>>>=1;
	  if( docForm.confirm.value == "" && docForm.what.value=="new")
		{
		  msg += "U heeft geen bevestigingswachtwoord opgegeven.\n";
		} else checksum>>>=1;
	  if( docForm.first_name.value == "")
		{
		  msg += "U heeft geen voornaam opgegeven\n";
		} else checksum>>>=1;
	  if( docForm.last_name.value == "")
		{
		  msg += "U heeft geen achternaam opgegeven\n";
		} else checksum>>>=1;
	  if( docForm.company.value == "")
		{
		  msg += "U heeft geen bedrijfsnaam opgegeven\n";
		} else checksum>>>=1;
	  if( docForm.address.value == "")
		{
		  msg += "U heeft geen adres opgegeven\n";
		} else checksum>>>=1;
	  if( docForm.zip.value == "")
		{
		  msg += "U heeft geen postcode opgegeven\n";
		} else checksum>>>=1;
	  if( docForm.city.value == "")
		{
		  msg += "U heeft geen plaats opgegeven\n";
		} else checksum>>>=1;
	  if( docForm.phone.value == "")
		{
		  msg += "U heeft geen telefoonnummer opgegeven\n";
		} else 
		{
		  if( docForm.phone.value.indexOf(" ")>=0 || docForm.phone.value.indexOf("-")>4 || docForm.phone.value.length<10 || docForm.phone.value.length>11 || docForm.phone.value.indexOf("0")!=0)
		  {
			  msg += "Het telefoonnummer is niet in het formaat \n0123456789, 06-12345678, 012-3456789 of 0123-456789!\n";
			} else checksum>>>=1;		  
		}
	  if( docForm.email.value == "")
		{
		  msg += "U heeft geen e-mail adres opgegeven\n";
		} else 
		{ 
		  if( docForm.email.value.lastIndexOf(".")>docForm.email.value.indexOf("@") && docForm.email.value.lastIndexOf(".")!=docForm.email.value.indexOf("@") && docForm.email.value.indexOf("@")>=0)
		  { 
				checksum>>>=1; 	  
			} else 
			{
			 msg += "U heeft een ongeldig e-mail adres opgegeven!\n";
			}
		 
		}
		
		// check if all fields have valid input
		if( checksum==0)
		{
		  validInput=true;
		} else alert( msg );
	} else if(docForm.name=="prolongForm")
	{
		if( !document.prolongForm.terms.checked )
			{
			  alert( "Om uw gegevens te kunnen versturen\ndient u akkoord te gaan met de Algemene Voorwaarden!");
			}	else validInput=true;	
	} else validInput=true;
	if( validInput)
	{
	  var formData =formData2QueryString(docForm);
	  
	  postRequest( htmlDoc, formData, docForm );
	  
	}
  
  // prevent form from submitting form.
  return false;
}

	
function onLoad( url ) 
{
	  
			
			request = createRequestObject();
			
			sendRequest(url);
}

/*
 * Copyright 2005 Matthew Eernisse (mde@fleegix.org)
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 * Original code by Matthew Eernisse (mde@fleegix.org)
 * Additional bugfixes by Mark Pruett (mark.pruett@comcast.net)
 *
*/

// The var docForm should be a reference to a <form>

function formData2QueryString(docForm) {

  var submitContent = '';
  var formElem;
  var lastElemName = '';
  
  for (i = 0; i < docForm.elements.length; i++) {
    
    formElem = docForm.elements[i];
    switch (formElem.type) {
      // Text fields, hidden form elements
      case 'text':
      case 'hidden':
      case 'password':
      case 'textarea':
      case 'select-one':
      case 'submit':
        submitContent += formElem.name + '=' + escape(formElem.value) + '&'
        break;
        
      // Radio buttons
      case 'radio':
        if (formElem.checked) {
          submitContent += formElem.name + '=' + escape(formElem.value) + '&'
        }
        break;
        
      // Checkboxes
      case 'checkbox':
        if (formElem.checked) {
          // Continuing multiple, same-name checkboxes
          if (formElem.name == lastElemName) {
            // Strip of end ampersand if there is one
            if (submitContent.lastIndexOf('&') == submitContent.length-1) {
              submitContent = submitContent.substr(0, submitContent.length - 1);
            }
            // Append value as comma-delimited string
            submitContent += ',' + escape(formElem.value);
          }
          else {
            submitContent += formElem.name + '=' + escape(formElem.value);
          }
          submitContent += '&';
          lastElemName = formElem.name;
        }
        break;
        
    }
  }
  // Remove trailing separator
  submitContent = submitContent.substr(0, submitContent.length - 1);
  return submitContent;
}

