﻿// Province_OnChange
function populateAreas() {
  // Clear all existing values  
  var selectedProvinceIndex = document.getElementById('ddlProvince').selectedIndex;
  var selectedProvinceValue = document.getElementById('ddlProvince').options[selectedProvinceIndex].value;   
  var AgencyID = document.getElementById("hfAgencyID").value;
  var AgencyMasterID = document.getElementById("hfAgencyMasterID").value;
  document.getElementById('ddlArea').options.length=0;
  
  if(selectedProvinceIndex <= 0) return; // do nothing
  
  // create the recordset object
  var objAreas = eval(rsAreas_json);
  if (objAreas) { // has a non-null value
    var previousAreaID = 0;
    var previousAreaName = "";  
    
    $("#ddlArea").append("<option value=\"0\" selected>Any</option>");    
    for ( var recno = 0 ; recno < objAreas.RecordCount ; recno++ ) {  
      var curAreaID = objAreas.Records[recno].PKAreaID;
      var curAreaName = objAreas.Records[recno].AreaName;
      var curProvinceID = objAreas.Records[recno].PKProvinceID;
      if(previousAreaID != curAreaID && previousAreaName != curAreaName && curProvinceID ==selectedProvinceValue){
        $("#ddlArea").append("<option value='"+curAreaID+"'>"+curAreaName+"</option>");
      }
      
      previousAreaID = curAreaID;
      previousAreaName = curAreaName;
    }
  }  
}		

// Province_OnChange
function gmapZoomToProvince() {
  // Clear all existing values  
  var selectedProvinceIndex = document.getElementById('ddlProvince').selectedIndex;
  var selectedProvinceValue = document.getElementById('ddlProvince').options[selectedProvinceIndex].value;   
  var AgencyID = document.getElementById("hfAgencyID").value;
  var AgencyMasterID = document.getElementById("hfAgencyMasterID").value;  
  
  if(selectedProvinceIndex <= 0) return; // do nothing
  
  var queryString = "";
  if(strCategory="rental"){
    queryString = "../includes/loadSearchControls_sql.asp";    
  }else {
    queryString = "includes/loadSearchControls_sql.asp";      
  }
  queryString += "?Action=ddlProvince_OnChange&ProvinceID=" + selectedProvinceValue;
  queryString += "&Category=" + strCategory + "&AgencyID=" + AgencyID + "&AgencyMasterID=" + AgencyMasterID
  
  xmlHttp = getXMLHttp(function(){
    if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete")// 
    {
      var returnedMessage = xmlHttp.responseText; 
      var coordinatesString = returnedMessage.substring(1, returnedMessage.length-1);
      var coordinates = coordinatesString.split(",");
      if(coordinates[0].length>0){
        var bounds = new GLatLngBounds;
        bounds.extend(new GLatLng(parseFloat(coordinates[0]), parseFloat(coordinates[1])));
        bounds.extend(new GLatLng(parseFloat(coordinates[2]), parseFloat(coordinates[3])));
        map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds)); 
      }
    }
  });
  xmlHttp.open("GET", queryString , true);
  xmlHttp.send(null);
}	

// Area_OnChange
function gmapZoomToArea() {  
  var selectedAreaIndex = document.getElementById('ddlArea').selectedIndex;
  var selectedAreaValue = document.getElementById('ddlArea').options[selectedAreaIndex].value;  
  var AgencyID = document.getElementById("hfAgencyID").value;
  var AgencyMasterID = document.getElementById("hfAgencyMasterID").value;
  
  if(selectedAreaIndex <= 0) return; // do nothing
  
  var queryString = "";
  if(strCategory="rental"){
    queryString = "../includes/loadSearchControls_sql.asp";    
  }else {
    queryString = "includes/loadSearchControls_sql.asp";      
  }
  queryString += "?Action=ddlArea_OnChange&AreaID=" + selectedAreaValue;
  queryString += "&Category=" + strCategory + "&AgencyID=" + AgencyID + "&AgencyMasterID=" + AgencyMasterID
  
  xmlHttp = getXMLHttp(function(){
    if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete")// 
    {
      var returnedMessage = xmlHttp.responseText;   
      var coordinatesString = returnedMessage.substring(1,returnedMessage.length-1);      
  
      var coordinates = coordinatesString.split(",");
      if(coordinates[0].length>0){
        var bounds = new GLatLngBounds;
        bounds.extend(new GLatLng(parseFloat(coordinates[0]), parseFloat(coordinates[1])));
        bounds.extend(new GLatLng(parseFloat(coordinates[2]), parseFloat(coordinates[3])));
        map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds)); 
        
        PopulateMapWithListings();
      }
    }
  });
  xmlHttp.open("GET", queryString , true);
  xmlHttp.send(null);
  
}

function populateTypes(){
  var selectedCategory;
  if(document.getElementById('rdoSale').checked){
    selectedCategory = "sale";
  }
  else if(document.getElementById('rdoRental').checked){
    selectedCategory = "rental";
  }
  else if(document.getElementById('rdoCommercial').checked){
    selectedCategory = "commercial";
  }
  else if(document.getElementById('rdoFarm').checked){
    selectedCategory = "farm";
  }
   
  var AgencyID = document.getElementById("hfAgencyID").value;
  var AgencyMasterID = document.getElementById("hfAgencyMasterID").value;
  
  var queryString = "";
  if(strCategory="rental"){
    queryString = "../includes/loadSearchControls_sql.asp";    
  }else {
    queryString = "includes/loadSearchControls_sql.asp";      
  }
  queryString += "?Action=rdoCategory_OnChange";
  queryString += "&Category=" + selectedCategory + "&AgencyID=" + AgencyID + "&AgencyMasterID=" + AgencyMasterID
  document.getElementById('ddlTypes').options.length=0;
  
  xmlHttp = getXMLHttp(function(){
    if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete")
    {
      var returnedMessage = xmlHttp.responseText;  
      $("#ddlTypes").append(returnedMessage);
  
      strCategory = selectedCategory;
      var selectedAreaIndex = document.getElementById('ddlArea').selectedIndex;  
      if(selectedAreaIndex > 0)
        PopulateMapWithListings();
    }
  });
  xmlHttp.open("GET", queryString , true);
  xmlHttp.send(null);
}	

function PopulateMapWithListings() {
  map.clearOverlays();  
  var selectedAreaIndex = document.getElementById('ddlArea').selectedIndex;
  var selectedAreaValue = document.getElementById('ddlArea').options[selectedAreaIndex].value; 
  var selectedProvinceIndex = document.getElementById('ddlProvince').selectedIndex;
  var selectedProvinceIValue = document.getElementById('ddlProvince').options[selectedProvinceIndex].value; 
  var selectedTypeIndex = document.getElementById('ddlTypes').selectedIndex;
  var selectedTypeValue = document.getElementById('ddlTypes').options[selectedTypeIndex].value; 
  var selectedMinPriceIndex = document.getElementById('ddlPrice_from').selectedIndex;
  var selectedMinPriceValue = document.getElementById('ddlPrice_from').options[selectedMinPriceIndex].value; 
  var selectedMaxPriceIndex = document.getElementById('ddlPrice_to').selectedIndex;
  var selectedMaxPriceValue = document.getElementById('ddlPrice_to').options[selectedMaxPriceIndex].value;  
  var AgencyID = document.getElementById("hfAgencyID").value;
  var AgencyMasterID = document.getElementById("hfAgencyMasterID").value;
  
  var category = getCategory();
  var queryString = "";
  if(category="rental"){
    queryString = "../includes/loadSearchControls_sql.asp";    
  }else {
    queryString = "includes/loadSearchControls_sql.asp";      
  }
  queryString += "?Action=ddlArea_OnChange_SelectListing&AreaID=" + selectedAreaValue;
  queryString += "&ProvinceID=" + selectedProvinceIValue + "&CountryID=1";
  queryString += "&Type=" + selectedTypeValue + "&MinPrice=" + selectedMinPriceValue + "&MaxPrice=" + selectedMaxPriceValue;
  queryString += "&Category="+category+"&AgencyID=" + AgencyID + "&AgencyMasterID=" + AgencyMasterID
      
  xmlHttp = getXMLHttp(function(){
    if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete")// 
    {
      var returnedMessage = xmlHttp.responseText;  
      var splitString = returnedMessage.split("]|["); 
      for(var index=0; index<splitString.length && splitString[0]!= "[]"; index++){        
        if(splitString[index]=="]") continue;
        var markerString = splitString[index].substring(1,splitString[0].length-1);    
        var markerStringValues = markerString.split("|;|");
        var html_info = "<div align=\"center\">";
        html_info = html_info + "<p class=\"SubnavSitesection\" style=\"margin-top: 4px; line-height: 95%; ";
        html_info = html_info + "width: 300px;float: left;\">";
        html_info = html_info + markerStringValues[0] + "<br/>"+ "<br/>";
        html_info = html_info + "<a href=\""+markerStringValues[1]+"\" class=\"maintabs\" style=\"padding-left: 0px;\" target=\"_blank\">Click here for more information</a>" + "<br/>";
        html_info = html_info + "</p></div>";
			  var point = new GLatLng(parseFloat(markerStringValues[2]), parseFloat(markerStringValues[3]));
			  var marker = createMarker(point, html_info);
			  map.addOverlay(marker);        
      }
    }
  });
  xmlHttp.open("GET", queryString , true);
  xmlHttp.send(null);
}
			
function createMarker(point, html) {
	// Create a base icon for all of our markers that specifies the
	// shadow, icon dimensions, etc.
	var baseIcon = new GIcon(G_DEFAULT_ICON);
	baseIcon.iconSize = new GSize(17, 22);
	
	baseIcon.shadow = "";
	baseIcon.iconAnchor = new GPoint(8, 15);
	baseIcon.infoWindowAnchor = new GPoint(8, 15);
	var customIcon = new GIcon(baseIcon);
	if(strCategory=="rental"){
	  customIcon.image = "http://propertymap.co.za/images/markers/sarp.png";
	}
	else if(strCategory=="commercial"){
	  customIcon.image = "http://propertymap.co.za/images/markers/sact.png";
	}
	else if(strCategory=="farm"){
	  customIcon.image = "http://propertymap.co.za/images/markers/saft.png";
	}
	else {
	  customIcon.image = "http://propertymap.co.za/images/markers/saht.png";
	}
		
	// Set up our GMarkerOptions object
	var markerOptions = { icon:customIcon };
	var marker = new GMarker(point, markerOptions);
	
	GEvent.addListener(marker, 'click', function() { 
		var markerHTML = html; 
		    marker.openInfoWindowHtml(markerHTML); 
	}); 
	return marker; 
}

function getCategory(){
  var strCategory;  
  if(document.getElementById('rdoSale').checked){
    strCategory = "sale";
	  document.getElementById('hfCategory').value = "sale";
  }
  else if(document.getElementById('rdoRental').checked){
    strCategory = "rental";
	  document.getElementById('hfCategory').value = "rental";
  }
  else if(document.getElementById('rdoCommercial').checked){
    strCategory = "commercial";
	  document.getElementById('hfCategory').value = "commercial";
  }
  else if(document.getElementById('rdoFarm').checked){
    strCategory = "farm";
	  document.getElementById('hfCategory').value = "farm";
  }
  return strCategory;
}