/* do not change */

function init_post_request() {

  this.fn_request = false;

  if (window.XMLHttpRequest) { // Mozilla, Safari,...
    this.fn_request = new XMLHttpRequest();
    if (this.fn_request.overrideMimeType) {
      this.fn_request.overrideMimeType('text/html');
    }
  } else if (window.ActiveXObject) { // IE
    try {
      this.fn_request = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try {
        this.fn_request = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (e) {
      }
    }
  }
  if (!this.fn_request) {
    alert('Cannot create XMLHTTP instance');
    return false;
  }

}

function post_request(obj, url, parameters) {

  obj.open('POST', url, true);
  obj.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  obj.setRequestHeader("Content-length", parameters.length);
  obj.setRequestHeader("Connection", "close");
  obj.send(parameters);

}

function build_query(frm) {
  var str = "";
  var element, i = 0;
  while ((element = document.getElementById(frm).elements[i++]) != null) {
    var qc = toQueryComponent(element);
    if (qc != "")
      str += "&" + qc;
  }
  return str.substring(1);
}

function toQueryComponent(input) {
  if (!input.name || input.disabled)
    return "";

  var n = urlencode(input.name);

  switch (input.type) {
  case "text":
  case "password":
  case "submit":
  case "hidden":
    return n + "=" + urlencode(input.value);
  case "textarea":
    // normalize line breaks as CR LF pairs as per RFC 1866
    var v = input.value.split(/\r\n|\r|\n/).join("\r\n");
    return n + "=" + urlencode(v);
  case "checkbox":
  case "radio":
    if (!input.checked)
      return "";
    // var v = getRealValue(input);
    var v = input.value;
    if (v === null)
      v = "on";
    return n + "=" + urlencode(v);
  case "select-one":
  case "select-multiple":
    var nvp = [];
    var opt, i = 0;
    while ((opt = input.options[i++]) != null) {
      if (opt.selected) {
        var v = getRealValue(opt);
        if (v === null)
          v = opt.text;
        // older versions of IE do not support Array.push
        nvp[nvp.length] = n + "=" + urlencode(v);
      }
    }
    return nvp.join("&");
  default:
    // input types reset, button, image, and file not implemented
    return "";
  }
}

function urlencode(str) {
  var v;
  try {
    v = encodeURIComponent(str);
  } catch (e) {
    v = escape(str);
  }
  return v.replace(/%20/g, "+");
}

function getRealValue(input) {
  var attr = input.getAttributeNode("value");
  return (attr && attr.specified) ? input.getAttribute("value") : null;
}

function launch_js(data) {
  // RegExp from prototype.sonio.net

  data = data.replace("<!--", "");
  data = data.replace("-->", "");

  var ScriptFragment = '(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)';

  var match = new RegExp(ScriptFragment, 'img');
  var scripts = data.match(match);

  if (scripts) {
    var js = '';
    for ( var s = 0; s < scripts.length; s++) {
      var match = new RegExp(ScriptFragment, 'im');
      js += scripts[s].match(match)[1];
    }
    eval(js);
  }
}

/* end of do not change */

var state_request;
var suburb_request;
var map_request;

function showState(state) {


  var url = "getstate.php";
  var query = "cmd=show_states&state=" + state;
  
  tmp_http_req = new init_post_request();
  state_request = tmp_http_req.fn_request;
  
  state_request.onreadystatechange = function () {

		if (state_request.readyState == 4 || state_request.readyState == "complete") {
			if (state == '') {
				document.getElementById("txtHint").innerHTML = "";
				document.getElementById("txtHint2").innerHTML = "";
			} else {
				data = state_request.responseText;
				document.getElementById("txtHint").innerHTML = data;
			}
		}else {
			if (state == '') {
				document.getElementById("txtHint").innerHTML = "";
				document.getElementById("txtHint2").innerHTML = "";
			} else {
				document.getElementById("txtHint").innerHTML = "Loading...";
			}
		}

	};
  
  post_request(state_request, url, query);

  return (false);
	
}




function showDetails(suburb) {
	
  var url = "getstate.php";
  var query = "cmd=show_details&suburb1=" + suburb;

  tmp_http_req = new init_post_request();
  suburb_request = tmp_http_req.fn_request;

  suburb_request.onreadystatechange = function () {

	if (suburb_request.readyState == 4 || suburb_request.readyState == "complete") {
		if(suburb == '') {
			document.getElementById("txtHint2").innerHTML = "";
		} else{
			data2 = suburb_request.responseText;
			document.getElementById("txtHint2").innerHTML = data2;
		}
	} else{
		if(suburb == '') {
			document.getElementById("txtHint2").innerHTML = "";
		} else{
			document.getElementById("txtHint2").innerHTML = "Loading...";
		}
	}

  };

  post_request(suburb_request, url, query);

  return (false);
	
}


function suburbChanged() {

  if (suburb_request.readyState == 4 || suburb_request.readyState == "complete") {
    data2 = suburb_request.responseText;
    document.getElementById("txtHint2").innerHTML = data2;
   } else{
	document.getElementById("txtHint2").innerHTML = "Loading...";
  }

}






