//------------------------------------------------------------------------------
// review_site_button
//------------------------------------------------------------------------------
var review_request = null;

function review_site_button()
{
   if ( review_request == null )
   {
      review_request = create_request();
   }

   if ( review_request != null )
   {
      var parameters = ""; 
      
      // Get the selected site id.
      var site_id_selected_item = document.getElementById('site_name').selectedIndex;
      var site_id_item = document.getElementById('site_name')[site_id_selected_item].value;
      
      parameters += "streetAddress=" + encodeURI( document.getElementById("streetAddress").value );
      parameters += "&siteid=" + encodeURI( site_id_item );
      parameters += "&cleanliness=" + encodeURI( document.getElementById("cleanliness").value );
      parameters += "&intimacy=" + encodeURI( document.getElementById("intimacy").value );
      parameters += "&experience=" + encodeURI( document.getElementById("experience").value );
      parameters += "&comments=" + encodeURI( document.getElementById("comments").value );

      review_request.open('POST', 'addReview.php', true);              
      review_request.onreadystatechange = review_site_callback;
      review_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
      review_request.setRequestHeader("Content-length", parameters.length);
      review_request.setRequestHeader("Connection", "close");
      review_request.send(parameters);
   }
   else
   {
      alert("Cannot create parameters list.");
   }
}

//------------------------------------------------------------------------------
// review_site_callback
//------------------------------------------------------------------------------
function review_site_callback()
{
   if (review_request.readyState == 4) 
   {
      if (review_request.status == 200)
      {
         //alert("We review a site. " + review_request.statusText);
         // Load the browse page. Call mog specific script and tell it that
		   // we just add a new site.
		   var newurl = "sitebrowse.html?"
		   newurl += "address=" + encodeURI(document.getElementById("streetAddress").value);
		   document.location = newurl;
      }
      else 
      {
         alert("There was a problem retrieving the XML data:\n" + review_request.statusText);
      }
   } 
}

function reviewLocationFound_CB(response)
{
   // Clear all overlays on the map.
   map.clearOverlays();

   // Check returned response.
   if (!response || response.Status.code != 200)
   {
      // The address is not found, alert the user.
      alert("Address not found, please try a new one or correct this one. " + response.Status.code);
   }
   else
   {    
       // Address is found in the database, place a marker and get all site 
       // associate with this address.
       place = response.Placemark[0];
       point = new GLatLng(place.Point.coordinates[1],
                           place.Point.coordinates[0]);

       confirmmarker = new GMarker(point);
       
       map.addOverlay(confirmmarker);
       map.setCenter(point, 13);
       
       confirmmarker.openInfoWindowHtml(place.address + '<br>' + 
       '<b>Country code:</b> ' + place.AddressDetails.Country.CountryNameCode);

       // Fill form information.
       document.getElementById("streetAddress").value = place.address;
       
       // Query the database and get all site at this address.
      if ( get_site_request == null )
      {
        get_site_request = create_request();
      }
   
	   if ( get_site_request != null )
	   {
	      var parameters = "";
	      
	      // Do form validation.
	      if ( document.getElementById("streetAddress").value == "" )
	      {
	         alert("Address or Site Name is empty.");
	      }
	      else
	      {  
	         // Create the query.
	         parameters += "command=" + encodeURI( "streetAddress" );
	         parameters += "&streetAddress=" + encodeURI( document.getElementById("streetAddress").value );
	      
	         //alert(parameters);
            get_site_request.open('POST', 'getsite.php', true);
	         get_site_request.onreadystatechange = get_site_at_address_callback;
	         //get_site_request.overrideMimeType("text/XML");
	         get_site_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	         get_site_request.setRequestHeader("Content-length", parameters.length);
	         get_site_request.setRequestHeader("Connection", "close");
	         get_site_request.send(parameters); 
	      }
	   }
	   else
	   {
	      alert("Cannot create parameters list.");
	   }          
                
       // Fill the sitename combo box. 

   }
}

//------------------------------------------------------------------------------
// confirmReviewAddress
//------------------------------------------------------------------------------
function confirmReviewAddress()
{
   validateAddress(document.getElementById("requestedAddress").value, reviewLocationFound_CB);
}
 
//------------------------------------------------------------------------------
// clearReviewAddress
//------------------------------------------------------------------------------  
function clearReviewAddress()
{
   clearAddress();
}

//------------------------------------------------------------------------------
// review_after_add
//------------------------------------------------------------------------------  
var review_after_add_request  = null;

function review_after_add( site )
{
	if ( review_after_add_request == null )
	{
		review_after_add_request = create_request();
	}

	get_html_request(review_after_add_request,"reviewsitediv.html",review_after_add_CB);
}

//------------------------------------------------------------------------------
// review_after_add_CB
//------------------------------------------------------------------------------  
function review_after_add_CB()
{
   if (review_after_add_request.readyState == 4) 
   {
      if (review_after_add_request.status == 200)
      {
         //alert(req.responseText);
         var content_div = document.getElementById("content");

         if ( content_div != null )
         {
            content_div.innerHTML = review_after_add_request.responseText;
            
            // Let's populate the control.
            document.getElementById("requestedAddress").value = site_get_address(added_site);
            document.getElementById("address").value = site_get_address(added_site);
            document.getElementById("sitename").options[0] = new Option(site_get_name(added_site),site_get_id(added_site));
            
            load();           
         }      
      }
      else 
      {
         alert("There was a problem retrieving the XML data:\n" + review_after_add_request.statusText);
      }
   }	
   
   gsite = null;
}

//------------------------------------------------------------------------------
// review_after_add
//------------------------------------------------------------------------------  
var review_from_browse_request  = null;

var review_from_browse_site_address = "";
var review_from_browse_site_name = "";
var review_from_browse_site_id = "";

function review_from_browse( site_id, site_address, site_name )
{
	document.location = "reviews.html";
	
	
   /*if ( review_from_browse_request == null )
   {
      review_from_browse_request = create_request();
   }

   review_from_browse_site_address = site_address;
   review_from_browse_site_name = site_name;
   review_from_browse_site_id = site_id;
   
   get_html_request(review_from_browse_request,"reviewsitediv.html",review_from_browse_CB);
   */
}

//------------------------------------------------------------------------------
// review_after_add_CB
//------------------------------------------------------------------------------  
function review_from_browse_CB()
{
   if (review_from_browse_request.readyState == 4) 
   {
      if (review_from_browse_request.status == 200)
      {
                  
         //alert(req.responseText);
         var content_div = document.getElementById("content");

         if ( content_div != null )
         {
            content_div.innerHTML = review_from_browse_request.responseText;
            
            // Let's populate the control.
            document.getElementById("requestedAddress").value = review_from_browse_site_address;//site_get_address(added_site);
            document.getElementById("address").value = review_from_browse_site_address;//site_get_address(added_site);
            document.getElementById("sitename").options[0] = new Option(review_from_browse_site_name,review_from_browse_site_id);//site_get_name(added_site),site_get_id(added_site));

            review_from_browse_site_address = "";
            review_from_browse_site_name = "";
            review_from_browse_site_id = "";
                 
            load();           
         }      
      }
      else 
      {
         alert("There was a problem retrieving the XML data:\n" + review_from_browse_request.statusText);
      }
   }  
}
