/**
  * Open a connection to the specified URL, which is
  * intended to respond with an XML message.
  * 
  * @param string method The connection method; either "GET" or "POST".
  * @param string url    The URL to connect to.
  * @param string toSend The data to send to the server; must be URL encoded.
  * @param function responseHandler The function handling server response.
  */
 function xmlOpen(method, url, toSend, responseHandler)
 {
     if (window.XMLHttpRequest)
     {
         // browser has native support for XMLHttpRequest object
         req = new XMLHttpRequest();
     }
     else if (window.ActiveXObject)
     {
         // try XMLHTTP ActiveX (Internet Explorer) version
         req = new ActiveXObject("Microsoft.XMLHTTP");
     }
     
     if(req)
     {	 		 	
         req.onreadystatechange = responseHandler;
         req.open(method, url, true);
         req.setRequestHeader("content-type","text/xml");
         req.send(toSend);	
		 //alert (req.responseXML);
     }
     else
     {
         alert('Your browser does not seem to support XMLHttpRequest.');
     }
 } 
 
 function FillItems()
 { 	

	var i = 0;

	// Make sure the request is loaded (readyState = 4)
     if (req.readyState == 4)
     {
         // Make sure the status is "OK"
         if (req.status == 200)
         {
		 	
             var mapitemContainer = document.getElementById('mapitemContainer');
			 
             var notes = req.responseXML.getElementsByTagName('mappoint');
             var str = '';
             for(i=0; i < notes.length; i++)			
             {				 
                 var noteNode = notes.item(i);
                 if(noteNode != null && noteNode.hasChildNodes())
                 {					 	
                    if (i % 2)
						str += '<div class="row1">';
					else
						str += '<div class="row2">';
								
					 str += '<a href="javascript:getMapItem(this,'+noteNode.firstChild.lastChild.nodeValue+');">'+noteNode.lastChild.lastChild.nodeValue+'</a></div>';
                 }
             }
             mapitemContainer.innerHTML = str;			 		 
         }
         else
         {
             alert("There was a problem retrieving the XML data:\n" +
                     req.statusText);
         }
     }
 }
 
 
 function FillMap()
 { 	

     // Make sure the request is loaded (readyState = 4)
     if (req.readyState == 4)
     {
         // Make sure the status is "OK"
         if (req.status == 200)
         {			 	 
             var infoContainer = document.getElementById('infoContainer');							 
			 
             var notes = req.responseXML.getElementsByTagName('mapitem');
             var str = '';
			 
             for(i=0; i < notes.length; i++)
             {
                 var noteNode = notes.item(i);
				 var itemTitle = "";
				 var itemText = "";
				 var itemLink = "";
				 var itemImage = "";
				 var arcads_approved = 0;
				 var arcads_adcreativeID = 0;
				 var arcads_accountID = 0;
				 var arcResID = "";
				 var arcResEnabled = 0;
				 var arcResBookingModel = "";
				 				
                 if(noteNode != null && noteNode.hasChildNodes())
                 {	
				 	
					if (noteNode.childNodes[0].childNodes[0]){
						itemText = noteNode.childNodes[0].childNodes[0].nodeValue;
					}
					
					if (noteNode.childNodes[1].childNodes[0]){
						itemTitle = noteNode.childNodes[1].childNodes[0].nodeValue;
					}
				 				 			 				
					if (itemTitle.length > 0){
						str = str + '<h1>' + itemTitle + '</h1>';
					}
					
					//str = str + itemText.replace(/\\/g,'');
																								
					htmlcode = '<div class="mapOverlay"><b>' + itemTitle + '</b><br>' + itemText.replace(/\\/g,'') + '<br><br><input type="button" value="Zoom In" onclick="ZoomIn();" class="formBtn"/>&nbsp;&nbsp;<input type="button" value="Zoom Out" onclick="ZoomOut();"  class="formBtn"/></div>';	
												
					
					map.removeOverlay(currentPoint);
					
					point = new GLatLng(noteNode.childNodes[2].childNodes[0].nodeValue,noteNode.childNodes[3].childNodes[0].nodeValue);
					marker = new GMarker(point);
					map.addOverlay(marker);
					map.panTo(point);					
					map.openInfoWindowHtml(point,htmlcode);
					
					currentPoint = marker;
                 }
             }
             
			// infoContainer.innerHTML = str;				 
         }
         else
         {
             alert("There was a problem retrieving the XML data:\n" +
                     req.statusText);
		 }
     }
 }
 
function getMapItems(oElem, mapsetID){
	
	var mapitemContainer = document.getElementById('mapitemContainer');
	mapitemContainer.innerHTML = 'Loading map places...';
	
	var strParams = '?mapsetID='+mapsetID;
	var strFullURL = 'getItems.php?mapsetID='+mapsetID;	
	xmlOpen('GET',strFullURL,'',FillItems);	
}

function getMapItem(oElem,mapitemID){	
	var mapContainer = document.getElementById('mapContainer');	
	mapContainer.style.visibility = 'hidden';

	var strFullURL = 'getItem.php?mapitemID='+mapitemID;	
	xmlOpen('GET',strFullURL,'',FillMap);
	mapContainer.style.visibility = 'visible';
}

