
function load() {
var locationSelect;
var address;
var subcatid;
var subcatname;
var geocoder;
var radius;
locationSelect = document.getElementById("locationSelect");
locationSelect.innerHTML = "";
}

function clearLocations() {
  locationSelect = document.getElementById("locationSelect");
  locationSelect.innerHTML = "";
  var option = document.createElement("option");
  option.value = "none";
  option.innerHTML = "Open Results: " +subcatname;
  locationSelect.appendChild(option);  
}

function listSearch(action) {
  load();
  var address = document.getElementById("addressInput").value;
    if (! address) {
    alert('Please Enter City or ZipCode');
    exit;
  }
  document.cookie = "searching=" + address;
  var subcatid = document.getElementById('subcatid').value;
  if (subcatid == '12') {
    subcatname='Adult Video Arcades';
  } else if (subcatid =='13') {
    subcatname='Adult Porno Theaters';
  } else if (subcatid =='16') {
    subcatname='Cruising Hot Spots';    
  } else if (subcatid =='17') {
    subcatname='Gay Bars & Clubs';
  } else if (subcatid =='18') { 
    subcatname='Topless Clubs';
  } else if (subcatid =='19') {
    subcatname='Sex Clubs & Bath Houses';
  } else if (subcatid =='20') {
    subcatname='Adult Resorts &amp; Hotels';    
  } else if (subcatid =='69') {
    subcatname='Glory Holes';
  } else if (subcatid =='9') {
    subcatname='Men Looking For Sex';  
  } else if (subcatid =='10') {
    subcatname='Women Looking For Sex';    
  } else if (subcatid =='11') {
    subcatname='Couple Looking For Sex';    
  } else if (subcatid =='70') {
    subcatname='Cocksuckers Wanted';
  } else if (subcatid =='71') {
    subcatname='Cocksuckers Available';       
  } else {
    subcatname='Category Undefined';
  } 
  var geocoder = new google.maps.Geocoder();
  geocoder.geocode({address: address}, function(results, status) {
    if (status == google.maps.GeocoderStatus.OK) {     
      getLocationsList(results[0].geometry.location, subcatid, address, subcatname,action);
    } else {
      alert(address + ' not found');
      $('#locationSelect').hide();
      load();
    }
  });
}
 
function getLocationsList(center, subcatid, address, subcatname, action) {
  clearLocations(); 
  var radius = document.getElementById('radiusSelect').value; 
  var searchUrl = 'phpsql_genxml.php?lat=' + center.lat() + '&lng=' + center.lng() + '&radius=' + radius +'&subcatid='+subcatid;
  downloadUrl(searchUrl, function(data) {
  var xml = parseXml(data);
  var markerNodes = xml.documentElement.getElementsByTagName("marker");
  var bounds = new google.maps.LatLngBounds();
  if (markerNodes.length > 0 ) {
    for (var i = 0; i < markerNodes.length; i++) {
      var adtitle = markerNodes[i].getAttribute("adtitle");
      var address1 = markerNodes[i].getAttribute("address1");
      var city = markerNodes[i].getAttribute("city");
      var fullstate = markerNodes[i].getAttribute("fullstate");
      var url = markerNodes[i].getAttribute("url");
      var id = markerNodes[i].getAttribute("id");
      var cityid = markerNodes[i].getAttribute("cityid");
      var subcatid = markerNodes[i].getAttribute("subcatid");
      var lat = markerNodes[i].getAttribute("lat");  
      var lng = markerNodes[i].getAttribute("lng");      
      var distance = parseFloat(markerNodes[i].getAttribute("distance"));
      var latlng = new google.maps.LatLng(
        parseFloat(markerNodes[i].getAttribute("lat")),
        parseFloat(markerNodes[i].getAttribute("lng")));
	createOptionOne(adtitle, address1,city, fullstate,distance, i,id);
      bounds.extend(latlng);
    }
    $('#locationSelect').show();
    locationSelect.style.visibility = "visible";
    locationSelect.onchange = function() {
      var loc_id = locationSelect.options[locationSelect.selectedIndex].value;
      //alert('loc_id: '+ loc_id + ' cityid: ' +cityid);
      location.href ='/?view=showad&id='+this.value+'&cityid='+cityid;
    };     
       
  } else {  
    alert('We are unable to locate any ' + subcatname +' within the ' + radius +' mile radius of ' + address);
    $('#locationSelect').hide();
    load();
  }      
  }) ;
}

function createOptionOne(adtitle, address1, city, fullstate, url, num, id) {
  var option = document.createElement("option");
  option.value = id;
  option.innerHTML = city +  " - " + adtitle  ;
  locationSelect.appendChild(option);
}

function downloadUrl(url, callback) {
  var request = window.ActiveXObject ?
  new ActiveXObject('Microsoft.XMLHTTP') :
  new XMLHttpRequest;

  request.onreadystatechange = function() {
    if (request.readyState == 4) {
      request.onreadystatechange = doNothing;
      callback(request.responseText, request.status);
    }
  };
  request.open('GET', url, true);
  request.send(null);
}

function parseXml(str) {
  if (window.ActiveXObject) {
    var doc = new ActiveXObject('Microsoft.XMLDOM');
    doc.loadXML(str);
    return doc;
  } else if (window.DOMParser) {
    return (new DOMParser).parseFromString(str, 'text/xml');
  }
}
function doNothing() {};
 
function getXMLHTTP() { //fuction to return the xml http object
    var xmlhttp=false;	
    try{
      xmlhttp=new XMLHttpRequest();
    }
    catch(e) {		
      try{			
        xmlhttp= new ActiveXObject("Microsoft.XMLHTTP");
      }
    catch(e){
      try{
        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
      }
    catch(e1){
        xmlhttp=false;
    }}}
    return xmlhttp;
}
	
