  function textCounter(field, countfield, maxlimit) 
  {
    if (field.value.length > maxlimit) // if too long...trim it!
      field.value = field.value.substring(0, maxlimit);
      // otherwise, update 'characters left' counter
    else
      countfield.value = maxlimit - field.value.length;
  }

  var zoneHTTP;
  var regionHTTP;
  var suburbHTTP;
  var subcatHTTP;
  var listingHTTP;

  var postcodesXML;
  var surburb = '';
  var regionName = '';
  var changeRegionFunc = NullFunction;

var closeSuburbDiv = false;

  function CloseSuburbList()
  {
    closeSuburbDiv = true;

    setTimeout('DoCloseSuburb()',100);
  }

  function DoCloseSuburb()
  {
    if (closeSuburbDiv)
    {
      document.getElementById("addrDiv").style.display = 'none';
    }
    closeSuburbDiv = false;
   
  }

  function KeepSuburbFocus()
  {
    closeSuburbDiv = false;
  }

  function FindSuburb()
  {
     suburb = document.all.first_business_suburb.value;
     if (document.all.first_business_suburb.value.length > 2)
     {
          	GetSuburbHTTP();
	suburbHTTP.open("GET","getwhere.php?fieldName=locality&locString='" + document.all.first_business_suburb.value + "'", true);
	suburbHTTP.send();
     }
     else
     {
	document.getElementById("addrDiv").style.display = 'none';
     }
  }

  function GetSuburbHTTP()
  {    
    if (window.XMLHttpRequest)
    {
      // code for IE7+, Firefox, Chrome, Opera, Safari
      suburbHTTP = new XMLHttpRequest();
    }
    else
    {
      // code for IE6, IE5
      suburbHTTP = new ActiveXObject("Microsoft.XMLHTTP");
    }
    suburbHTTP.onreadystatechange=ReadySuburb;
  }

  function GetRegionHTTP()
  {    
    if (window.XMLHttpRequest)
    {
      // code for IE7+, Firefox, Chrome, Opera, Safari
      regionHTTP = new XMLHttpRequest();
    }
    else
    {
      // code for IE6, IE5
      regionHTTP = new ActiveXObject("Microsoft.XMLHTTP");
    }
    regionHTTP.onreadystatechange=ReadyRegion;
  }

  function GetZoneHTTP()
  {    
    if (window.XMLHttpRequest)
    {
      // code for IE7+, Firefox, Chrome, Opera, Safari
      zoneHTTP = new XMLHttpRequest();
    }
    else
    {
      // code for IE6, IE5
      zoneHTTP = new ActiveXObject("Microsoft.XMLHTTP");
    }
    zoneHTTP.onreadystatechange=ReadyZone;
  }

  function GetSubcatHTTP()
  {    
    if (window.XMLHttpRequest)
    {
      // code for IE7+, Firefox, Chrome, Opera, Safari
      subcatHTTP = new XMLHttpRequest();
    }
    else
    {
      // code for IE6, IE5
      subcatHTTP = new ActiveXObject("Microsoft.XMLHTTP");
    }
    subcatHTTP.onreadystatechange=ReadySubcat;
  }

  function ReadySuburb()
  {
   if (suburbHTTP.readyState == 4 && suburbHTTP.status == 200)
   {
      var postcode;
      var locality;
      var regionid;

      var temp = document.all.suburbList;  // delete all the options first
      for (var m=temp.options.length-1;m>=0;m--)
      {
         temp.options[m]=null;
      }

      postcodesXML = suburbHTTP.responseXML.getElementsByTagName("postcodes");
      var rows = postcodesXML[0].getElementsByTagName("row");
      
      for (var i = 0; i < rows.length; i++)
      {
        var localityNode = rows[i];
        var locality = localityNode.getElementsByTagName("locality")[0].childNodes[0].nodeValue;
        var postcode = localityNode.getElementsByTagName("postcode")[0].childNodes[0].nodeValue;
        var regionid = localityNode.getElementsByTagName("regionid")[0].childNodes[0].nodeValue;

        temp.options[temp.options.length] = new Option(locality + '    ' + postcode, regionid);
      }
      if (rows.length > 0)
      { 
         if (rows.length > 12)
         {
	   temp.size = 12;
         }
         else
         {
	  temp.size = rows.length;
         }
        document.getElementById("addrDiv").style.display = 'block';
      }
      else
      {
        document.getElementById("addrDiv").style.display = 'none';
      }
    }
  }

  function ReadyRegion()
  {
   if (regionHTTP.readyState == 4 && regionHTTP.status == 200)
   {
      var regionsXML = regionHTTP.responseXML.getElementsByTagName("sub_locations");
      var rows = regionsXML[0].getElementsByTagName("row");
      if (rows.length > 0)
      {
        var regionNode = rows[0];
        regionName = regionNode.getElementsByTagName("name")[0].childNodes[0].nodeValue;
        var regionState = regionNode.getElementsByTagName("state")[0].childNodes[0].nodeValue;
        var mloc_id = regionNode.getElementsByTagName("mloc_id")[0].childNodes[0].nodeValue;
        document.all.first_state.value = regionState;
        document.all.first_mloc_id.value = mloc_id;	
        GetZoneHTTP();
        zoneHTTP.open("GET","getzone.php?id=" + mloc_id, true);
        zoneHTTP.send();
      }
    }
  }

  function ReadyZone()
  {
   if (zoneHTTP.readyState == 4 && zoneHTTP.status == 200)
   {
      var zonesXML = zoneHTTP.responseXML.getElementsByTagName("main_locations");
      var rows = zonesXML[0].getElementsByTagName("row");
      
      if (rows.length > 0)
      {
        var zoneNode = rows[0];
        var zoneName = zoneNode.getElementsByTagName("name")[0].childNodes[0].nodeValue;
        document.all.region_name.value = zoneName + '-->' + regionName;
      }
    }
  }

  function ReadySubcat()
  {
   if (subcatHTTP.readyState == 4 && subcatHTTP.status == 200)
   {
      var temp = document.all.scat_id1;  // delete all the options except the first
      for (var m=temp.options.length-1;m>=1;m--)
      {
         temp.options[m]=null;
      }

      var subcatsXML = subcatHTTP.responseXML.getElementsByTagName("subcats");
      var rows = subcatsXML[0].getElementsByTagName("row");
      
      for (var i = 0; i < rows.length; i++)
      {
        var subcatNode = rows[i];
        var id = subcatNode.getElementsByTagName("id")[0].childNodes[0].nodeValue;
        var subcatName = subcatNode.getElementsByTagName("name")[0].childNodes[0].nodeValue;

        temp.options[temp.options.length] = new Option(subcatName, id);
      }
    }
  }

  function SuburbSelected()
  {
        suburb = '';
        var combo = document.all.suburbList;
        var comboText = combo.options[combo.selectedIndex].text;
        document.all.first_business_suburb.value = comboText.substring(0, comboText.length-4);
        document.all.first_pcode.value = comboText.substring(comboText.length-4, comboText.length);
        var regionId = document.all.suburbList.value;
        changeRegionFunc(document.all.first_sloc_id.value, regionId);
        document.all.first_sloc_id.value = regionId;
        document.getElementById("addrDiv").style.display = 'none';
        GetRegionHTTP();
        regionHTTP.open("GET","getregion.php?id=" + regionId, true);
        regionHTTP.send();
  }

  function MainCategorySelected()
  {
        GetSubcatHTTP();
        subcatHTTP.open("GET","getsubcats.php?cat_id=" + document.all.mcat_id1.value, true);
        subcatHTTP.send();
  }

  function NullFunction(oldRegion, newRegion)
  {
  }

  function UpgradeToPremiumListing(postString)
  {
      GetListingHTTP();
      listingHTTP.open("POST","addlisting.php", true);
      listingHTTP.setRequestHeader("Content-type", "application/x-www-form-urlencoded")
      listingHTTP.send(postString);
  }

  function GetListingHTTP()
  {    
    if (window.XMLHttpRequest)
    {
      // code for IE7+, Firefox, Chrome, Opera, Safari
      listingHTTP = new XMLHttpRequest();
    }
    else
    {
      // code for IE6, IE5
      listingHTTP = new ActiveXObject("Microsoft.XMLHTTP");
    }
    listingHTTP.onreadystatechange=ReadyListing;
  }

  function ReadyListing()
  {
	if (listingHTTP.readyState == 4 && listingHTTP.status == 200)
	{
		var postString = "";
		if (document.all.scat_id1.value != '')
		{
			postString += "mcat_id="+encodeURIComponent(document.all.mcat_id1.value)+"&";
			postString += "scat_id="+encodeURIComponent(document.all.scat_id1.value);
		}
		else
		if (document.all.mcat_id1.value != '')
		{
			postString += "mcat_id="+encodeURIComponent(document.all.mcat_id1.value);
		}
		var hrefText = listingHTTP.responseText;
		if (postString != '')
		{
			hrefText += '&';
			hrefText += postString;
		}
		window.location.href = "listing_premium.php?id=" + hrefText;
	}
  }


