// JavaScript Document

function getQueryVariable(variable) {
  var query = window.location.search.substring(1);
  var vars = query.split("&");
  for (var i=0;i<vars.length;i++) {
    var pair = vars[i].split("=");
    if (pair[0] == variable) {
      return pair[1];
    }
  } 
  return "";//alert('Query Variable ' + variable + ' not found');
}

function disable(sel) {
	document.getElementById(sel).disabled = true;
}

function enable(sel) {
	document.getElementById(sel).disabled = false;
}

function getSelectedValue(id){
	sel = document.getElementById(id);
	return sel.options[sel.selectedIndex].value;
}

function pickSelValue(id,val){
	var sel = document.getElementById(id);
	var index = getSelValIndex(id,val);
	sel.options[index].selected = "selected";
}

function getSelValIndex(id, val){
	var temp = document.getElementById(id);
	var selLength = temp.options.length;
	var i;
	for (i=0;i<=selLength-1;i++){
		if (temp.options[i].value == val){
			return i;	
		}
	}
}

function clearSelectOptions(id){
	var temp = document.getElementById(id);
	
	var i;
	for (i=temp.options.length-1;i>=0;i--){
		temp.options[i] = null;
	}
}

function writeSelect(id,opts,vals,selectedVal){
	for (var i=0;i<=opts.length-1;i++){
		addOption(id,opts[i],vals[i],selectedVal);
	}
}

function addOption(id,opt,val,selectedVal){
	var temp = document.getElementById(id);
	var selLength = temp.options.length;
	
	temp.options[selLength] = new Option(opt,val);
	
	if (val == selectedVal){
		temp.options[selLength].selected = "selected";
	}
}

function valueExists(inarray,val){
	for (var i=0;i<=inarray.length-1;i++){
		if (inarray[i]==val){
			return true;
		}
	}
	return false;
}

function getUniqueValues(inarray){
	var i;
	var temp = [];
	temp[0] = inarray[0];
	for (i=0;i<=inarray.length-1;i++){
		if (!valueExists(temp,inarray[i])){
			temp[temp.length] = inarray[i];	
		}
	}
	return temp;
}

function sortOptions(opts,vals){
	var n = opts.length;
	var swapped;
	var i;
	var temp;
	var temp2;
	do {
		swapped = false;
		n = n-1;
		for (i=0;i<=n-1;i++){
			if (opts[i] > opts[i+1]){
				//swap
				temp = vals[i];
				temp2 = opts[i]
				vals[i] = vals[i+1];
				opts[i] = opts[i+1];
				vals[i+1] = temp;
				opts[i+1] = temp2;
				swapped = true;
			}
		}
	}while(swapped);
}

function sortArray(inarray){
	var n = inarray.length;
	var swapped;
	var i;
	var temp;
	do {
		swapped = false;
		n = n-1;
		for (i=0;i<=n-1;i++){
			if (inarray[i] > inarray[i+1]){
				//swap
				temp = inarray[i];
				inarray[i] = inarray[i+1];
				inarray[i+1] = temp;
				swapped = true;
			}
		}
	}while(swapped);
}

//GLOBALS
var GEO_TYPE = "";
var GEO_VALUE = "";
var OFFICE_VALUE = "";
var OWNER_VALUE = "";
var TYPE_VALUE = "";




function getGeoType() {
	var num_radio = 4;
	var i;
	for (i = 0; i <= num_radio-1; i++) {
		if (document.myform.geo[i].checked) {
			return document.myform.geo[i].value;
		}
	}
	return "";
}

function getGeoValue() {
	var temp = getGeoType();
	var sel;
	
	if (temp == "all"){
		return temp;
	} else if (temp == "city"){
		sel = document.getElementById("cityselect");
		return sel.options[sel.selectedIndex].value;	
	} else if (temp == "county"){
		sel = document.getElementById("countyselect");
		return sel.options[sel.selectedIndex].value;	
	} else if (temp == "region"){
		sel = document.getElementById("regionselect");
		return sel.options[sel.selectedIndex].value;	
	} else {
		return "";
	}
}

function getOfficeValue() {
	var num_radio = 7;
	var i;
	for (i = 0; i <= num_radio-1; i++) {
		if (document.myform.office[i].checked) {
			return document.myform.office[i].value;
		}
	}
	return "";
}

function getOwnerValue() {
	var num_radio = 5;
	var i;
	for (i = 0; i <= num_radio-1; i++) {
		if (document.myform.owner[i].checked) {
			return document.myform.owner[i].value;
		}
	}
	return "";
}

function getTypeValue() {
	var num_radio = 3;
	var i;
	for (i = 0; i <= num_radio-1; i++) {
		if (document.myform.type[i].checked) {
			return document.myform.type[i].value;
		}
	}
	return "";
}

function setGeoFilter() {
	var temp = getGeoType();
	var sel;
	
	if (temp == "all"){
		disable("cityselect");
		disable("countyselect");
		disable("regionselect");
	} else if (temp == "city"){
		enable("cityselect");
		disable("countyselect");
		disable("regionselect");	
	} else if (temp == "county"){
		disable("cityselect");
		enable("countyselect");
		disable("regionselect");	
	} else if (temp == "region"){
		disable("cityselect");
		disable("countyselect");
		enable("regionselect");
	} else {
	}
}

function getFormValues() {
	GEO_TYPE = getGeoType();
	GEO_VALUE = getGeoValue();
	OFFICE_VALUE = getOfficeValue();
	OWNER_VALUE = getOwnerValue();
	TYPE_VALUE = getTypeValue();
	
	/*alert(getGeoType());
	alert(getGeoValue());
	alert(getOfficeValue());
	alert(getOwnerValue());
	alert(getTypeValue());
	*/
	
	
}

function submitForm(){
	getFormValues();
	initGlobals();
	
	load(GEO_TYPE,GEO_VALUE);
}

function runQuery() {
	getFormValues();
	var points = submitForm();
	writePoints();
	zoomWindow();
	listCourts();
}

function populateLists(){
	getCitiesFromXML();
	getCountiesFromXML();
	getRegionsFromXML();
}

function getInfoString(imglink,name,address,city,detaillink,barrier,civil,criminal,criminalyouth,divisional,enforcement,family,smallclaims,criminalsup,familysup) {
	//ex. imglink = "images/osgoode.jpg"
	//name = "Osgoode Hall"
	//address = "130 Queen Street West" + <br>
	//city = "Toronto ON, M5H 2N5"
	//offices[i] = "Divisional - SCJ (416) 327-5100"
	//detaillink = "osgoode.html"
	//alert(criminal);
	var htmlinfo = '<table border="0" cellspacing="0" cellpadding="0"><tr><td rowspan="4" valign="top">';
	htmlinfo += '<img src="'+imglink+'" height="100" /></td>';
	htmlinfo += '<td valign="top" class="tagtitle">&nbsp;'+name+'</td></tr>';
	htmlinfo += '<tr><td valign="top" class="tagaddress">&nbsp;'+address+'<br />&nbsp;'+city;
	if (barrier=="true"){
		htmlinfo += '<br />&nbsp;<span class="barrierfree">this location is barrier free</span><br /><br /></td></tr>';
	} else {
		htmlinfo +=	'<br /><br /></td></tr>';
	}
	htmlinfo += '';
	htmlinfo += '<tr><td valign="top">&nbsp;Offices:<br />';
	
	if (civil!=""){htmlinfo += '<span class="tagoffices">&nbsp;<b>Civil</b>&nbsp;'+civil+'</span><br>';}
	if (criminal!=""){htmlinfo += '<span class="tagoffices">&nbsp;<b>Criminal</b>&nbsp;'+criminal+'</span><br>';}
	if (criminalsup!=""){htmlinfo += '<span class="tagoffices">&nbsp;<b>Criminal</b>&nbsp;'+criminalsup+'</span><br>';}
	if (criminalyouth!=""){htmlinfo += '<span class="tagoffices">&nbsp;<b>Criminal Youth</b>&nbsp;'+criminalyouth+'</span><br>';}
	if (divisional!=""){htmlinfo += '<span class="tagoffices">&nbsp;<b>Divisional</b>&nbsp;'+divisional+'</span><br>';}
	if (enforcement!=""){htmlinfo += '<span class="tagoffices">&nbsp;<b>Enforcement</b>&nbsp;'+enforcement+'</span><br>';}
	if (family!=""){htmlinfo += '<span class="tagoffices">&nbsp;<b>Family</b>&nbsp;'+family+'</span><br>';}
	if (familysup!=""){htmlinfo += '<span class="tagoffices">&nbsp;<b>Family</b>&nbsp;'+familysup+'</span><br>';}
	if (smallclaims!=""){htmlinfo += '<span class="tagoffices">&nbsp;<b>Small Claims</b>&nbsp;'+smallclaims+'</span><br>';}
	
	htmlinfo += '</td></tr><tr><td align="right" valign="top"><br><a href="'+detaillink+'" class="taglink" target="_blank">court details</a></td></tr></table>';
	
	return htmlinfo;
}

function getCountiesForRegion(region){
	switch (region) {
	case (region = "toronto"):	return ["toronto"];
	case (region = "northwest"): return ["kenora","rainyriver","thunderbay"];
	case (region = "northeast"): return ["algoma","cochrane","manitoulin","nipissing","parrysound","sudbury","temiskaming"];
	case (region = "west"): return ["bruce","elgin","essex","grey","huron","kent","lambton","middlesex","oxford","perth","waterloo","wellington"];
	case (region = "east"): return ["frontenac","hastings","lanark","leedsgrenville","lennoxaddington","ottawacarleton","prescottrussell","princeedward","renfrew","stormontdundasglengarry"];
	case (region = "centralwest"): return ["brant","dufferin","haldimand","halton","hamiltonwentworth","niagaranorth","niagarasouth","norfolk","peel"];
	case (region = "centraleast"): return ["durham","muskoka","northumberland","peterborough","simcoe","victoriahaliburton","york"];
	case (region = "all"): return ["toronto","kenora","rainyriver","thunderbay","algoma","cochrane","manitoulin","nipissing","parrysound","sudbury","temiskaming","bruce","elgin","essex","grey","huron","kent","lambton","middlesex","oxford","perth","waterloo","wellington","frontenac","hastings","lanark","leedsgrenville","lennoxaddington","ottawacarleton","prescottrussell","princeedward","renfrew","stormontdundasglengarry","brant","dufferin","haldimand","halton","hamiltonwentworth","niagaranorth","niagarasouth","norfolk","peel","durham","muskoka","northumberland","peterborough","simcoe","victoriahaliburton","york"];
	default: return ["toronto"];
	}
}

function getCitiesForRegion(region){
	switch (region) {
	case (region = "west"): return ["walkerton","leamington","windsor","owensound","exeter","goderich","wingham","chatham","sarnia","london","woodstock","listowel","stratford","cambridge","kitchener","fergus","guelph","mountforest"];
	default: return ["toronto"];
	}
}

function getCitiesForCounties(county){
	
}
//case (region = "west"): return ["mountforest","cambridge","chatham"];