if (GBrowserIsCompatible()) {
		var map1;
		var mgr1;
}

function ADDYSUpdatePulldowns (clicked_field, form_name) {
	var category_selected = $F('category');
	var agency_selected = $F('agency');
	var category_options;
	var agency_options;

	var pars = $(form_name).serialize();
	pars += '&clicked_field=' + clicked_field;
	var url = '/get_data.php';

	var myAjax = new Ajax.Request(
	url,
	{
		method: 'get',
		parameters: pars,
		onSuccess: AJAXUpdateSelect,
		onException: onExceptionRequest,
		onLoading: onLoadingRequest,
		onCreate: onLoadingRequest,
		onComplete: onCompleteRequest,
		onFailure: function(){ alert('Something went wrong...') }
	});

	return false;

}

function ADDYSGetAwards (agency, state) {
	/*
	var formFields = $('addys').getElements();
	var elementFields = [];
	formFields.each(function(field) {
		elementFields.push(field.name);
	});
	elementFields = elementFields.without('agency');
	var pars = $('addys').serializeElements(elementFields);
	*/
	//alert(agency);
	$('awards_container').hide();
	//Effect.Fade('awards_container');
	var pars2 = $('addys').serialize(true);
	pars2['agency1'] = agency;
	pars2['state1'] = state;
	var url2 = '/get_awards.php';

	var myAjax2 = new Ajax.Updater(
		'awards',
		url2,
		{
			method: 'get',
			parameters: pars2,
			onComplete: AwardsDisplay,
			onException: onExceptionRequest,
			onFailure: onFailureRequest
		}
	);
}

function AwardsDisplay (xhr) {
	//$('awards').value() = xhr.responseText;
	Effect.Appear('awards_container', {duration: .5});
	//alert(xhr.responseText);
	//alert('test');
	//var json2 = xhr.responseText.evalJSON();
	//awards_json = json2.awards;
	//alert(awards_json.inspect());

}

function AJAXUpdateSelect(xhr) {
	json = xhr.responseText.evalJSON();
	var selected = "";
	var zoom_level = 6;
	agency_json = json.agency;
	category_json = json.category;
	selected_category = json.selected.category;
	selected_agency = json.selected.agency;
	states_json = json.states;

	rebuildSelect('agency', selected_agency, agency_json);
	rebuildSelect('category', selected_category, category_json);
	if (selected_agency == 'Show all agencies') {
		selected_agency = '';
	}

	if ( ($('intro').visible()) || (!mapDisplayed) ) {
		ADDYSUpdateMap();
		/*
		if ( (selected_agency != '') || (json.count.agency <= 101) ) {
			addGMPoints(3, '', 1);
		} else {
			addGMPointsStates(states_json, 1);
		}
		*/
	} else {

	}
	/*

	*/
	return (true);
}

function ADDYSUpdateMap () {
	isLoading();
	if ( (selected_agency != '') || (json.count.agency <= 101) ) {
		setTimeout("addGMPoints(3, '', 1)", 2000);
	} else {
		setTimeout("addGMPointsStates(states_json, 1)", 2000);
	}
	setTimeout('doneLoading()', 3000);
	mapDisplayed = true;
	return false;
}

function onExceptionRequest (xhr) {
	alert('Exception');
}

function onFailureRequest (xhr) {
	alert('Failure');
}

function onLoadingRequest (xhr) {
	//isLoading();
	if (!mapDisplayed && (!$('intro').visible()) ) {
		$('loading').show();
	}
	if ($('tray').visible()) {
		$('filter_go').hide();
	}
}

function onCompleteRequest (xhr) {
	if ($('tray').visible()) {
		Effect.Appear('filter_go');
	}
}

function isLoading () {
	if ($('intro').visible()) {
		$('loading').hide();
	} else {
		$('awards_container').hide();
		if (trayVisible) {
			$('tray_container').hide();
			//Effect.Fade('tray_container');
		}
		Effect.Fade('map_container', {duration: .5});
		//$('map_container').hide();
		//$('loading').show();
		Effect.Appear('loading', {duration: .5});
	}
}

function doneLoading () {
	if ($('intro').visible()) {

	} else {
		//$('loading').hide();
		Effect.Fade('loading');
		Effect.Appear('map_container', {delay: 1.1, duration: .5});
		//$('map_container').show();
		if (trayVisible) {
			//$('tray_container').show();
			Effect.Appear('tray_container', {delay: 2.2, duration: .5});
		}
	}

}

function rebuildSelect(selectElementId, selectedId, optionsArray) {
	var selectElement = document.getElementById(selectElementId);
	while(selectElement.hasChildNodes() == true) {
		selectElement.removeChild(selectElement.childNodes[0]);
	}

	if (optionsArray.length > 0) {
		for (var h=0; h < optionsArray.length; h++) {
			newOption = document.createElement("option");
			newOption.value = optionsArray[h][0];
			if (optionsArray[h][0] == selectedId) { newOption.selected = true; }
			if (selectElementId == 'category') {
				newOption.appendChild(document.createTextNode(optionsArray[h][0].capitalize()));
			} else {
				newOption.appendChild(document.createTextNode(optionsArray[h][0]));
			}
			selectElement.appendChild(newOption);
		}
	}

}

function addGMPoints (zoom_level, show_state, reset_map) {
	var agencyArray = agency_json;
	if (GBrowserIsCompatible()) {
		if ( (!map1) || (reset_map == 1) ) {
			map1 = new GMap2(document.getElementById("map"), {size:new GSize(899,605)});
			map1.addControl(new GSmallMapControl());
			map1.setCenter(new GLatLng(44.9833333, -103.6333333), zoom_level);
		} else {
			//map1.clearOverlays();
		}

		mgr1 = new GMarkerManager(map1);

		var icon1 = new GIcon();

		var points = [];
		icon1.image = "/graphics/icons/iconz.png";
		//icon1.shadow = "/graphics/helmet-shadow.png";
		icon1.iconSize = new GSize(35, 35);
		//icon1.shadowSize = new GSize(34, 20);
		icon1.iconAnchor = new GPoint(6, 20);
		icon1.infoWindowAnchor = new GPoint(5, 1);
		if (agencyArray.length > 1) {
			for (var i = 1; i < agencyArray.length; i++) {
				var agency = agencyArray[i][0];
				var gm_lat = agencyArray[i][1];
				var gm_long = agencyArray[i][2];
				var address = agencyArray[i][3];
				var city = agencyArray[i][4];
				var state = agencyArray[i][5];
				if ( (show_state == '') || ((show_state != '') && (show_state == state)) ) {
					if ( (selected_agency == '') || ( (selected_agency != '') && (selected_agency == agency) ) ) {
						var address_array = [];
						address_array.push(agency, address, city, state);
						var address_join = address_array.join("|");
						var point = new GLatLng(gm_lat, gm_long);
						var marker = new GMarker(point, icon1);
						points.push(createMarker(point, address_join, icon1));
					}
				}
			}
		}
		if (points.length > 0) {
			mgr1.addMarkers(points, zoom_level);
			mgr1.refresh();
		}
	}
}

function getGroupValue (form, name, type) {
	var typeValue = Form.getInputs(form, type, name).find(function(radio) { return radio.checked; }).value;
	return typeValue;
}

function addGMPointsStates (agencyArray, zoom_level) {
	if (GBrowserIsCompatible()) {
		map1 = new GMap2(document.getElementById("map"), {size:new GSize(899,605)});
		map1.addControl(new GSmallMapControl());
		map1.setCenter(new GLatLng(44.9833333, -103.6333333), 3);

		mgr = new GMarkerManager(map1);

		var points = [];

		if (agencyArray.length > 0) {
			for (var i = 0; i < agencyArray.length; i++) {
				var state = agencyArray[i][0];
				var count = agencyArray[i][1];
				var address_array = [];
				address_array.push(state, count);
				var address_join = address_array.join("|");
				var state_data = getStateCoords(state);
				var point = new GLatLng(state_data[0], state_data[1]);
				icon1 = getStatesIcon(count);
				points.push(createMarkerState(point, address_join, icon1, state_data[0], state_data[1]));
			}
		}
		mgr.addMarkers(points, zoom_level, 5);
		mgr.refresh();
	}
}

function getStatesIcon (count) {
	var id = '';
	var icon1 = new GIcon();
	if (count >= 100) {
		id = '100';
	} else if (count >= 50) {
		id = '50';
	} else if (count >= 20) {
		id = '20';
	} else if (count > 10) {
		id = 'x';
	} else {
		id = count;
	}
	icon1.image = "/graphics/icons/iconz" + id + ".png";
	//icon1.shadow = "/graphics/helmet-shadow.png";
	icon1.iconSize = new GSize(35, 35);
	//icon1.shadowSize = new GSize(34, 20);
	icon1.iconAnchor = new GPoint(6, 20);
	icon1.infoWindowAnchor = new GPoint(14, 1);
	return(icon1);
}

function ADDYSZoomToLocation () {
	var gm_lat1;
	var gm_long1;
	var loc_address;
	var zl;
	var loc_state = $F('state');
	var loc_city = $F('city');
	if (loc_state == '') {
		alert("You must select a state: " + loc_state);
		return false;
	}
	var loc_state_val = getOptionText('state', loc_state);
	if (loc_city != '') {
		loc_address = loc_city + ', ' + loc_state_val;
		zl = 11;
		if (loc_address != '') {
			var geocoder = new GClientGeocoder();
			geocoder.getLatLng(
			loc_address,
			function(point) {
				if (!point) {
					alert(loc_address + " not found");
				} else {
					gm_lat1 = point.lat();
					gm_long1 = point.lng();
					zoomToPoint(gm_lat1, gm_long1, loc_state, zl);
				}
			}
			);
		} else {
			alert("You must select a state " + loc_state);
			return false;
		}
	} else {
		loc_address = loc_state_val;
		zl = 6;
		var state_coords = getStateCoords(loc_state);
		gm_lat1 = state_coords[0];
		gm_long1 = state_coords[1];
		if ( (gm_lat1 != 0)  && (gm_long1 != 0) ) {
			zoomToPoint(gm_lat1, gm_long1, loc_state, zl);
		} else {
			if (loc_address != '') {
				var geocoder = new GClientGeocoder();
				geocoder.getLatLng(
				loc_address,
				function(point) {
					if (!point) {
						alert(loc_address + " not found");
					} else {
						gm_lat1 = point.lat();
						gm_long1 = point.lng();
						zoomToPoint(gm_lat1, gm_long1, loc_state, zl);
					}
				}
				);
			} else {
				alert("You must select a state " + loc_state);
				return false;
			}
		}
	}
	return false;
}

function getOptionText (selectField, selected) {
	astateval = '';
	astate = selected;
	var nodeList = $(selectField).getElementsByTagName('option');
	var nodes = $A(nodeList);
	nodes.each(function(node){
		if (node.value == selected) {
			astateval = node.innerHTML;
			return;
		}
	});
	return(astateval);
}
