function link(href,text) {
	var ret = document.createElement("a");
	ret.setAttribute('href',href);
	ret.appendChild(document.createTextNode(text));
	return ret;
}

var marker_functions = {};

function open_marker(marker_id) {
	var fun = marker_functions[marker_id];

	fun();
}

function add_marker_link(rowname,marker_id) {

	var table_row = document.getElementById(rowname);

	if(table_row == null) return;

	var child = null;
	var i;
	for(i=0;i<table_row.childNodes.length;i++) {
		if(table_row.childNodes[i].className == 'highlight') {
			child = table_row.childNodes[i];
			break;
		}
	}

	if(child == null) return;

	child.appendChild(link("javascript:open_marker('"+marker_id+"');",
		"Map"));
}

function create_info_closure(marker,location) {

	var rowname = "homesale_"+location.id;
	var marker_id = "marker_"+location.id;

	var fun = function() {
		var info = document.createElement("div");
		info.className = "map_info_window";
		info.appendChild(link(location.address_link,location.number + " " +
			location.streetname));
		info.appendChild(document.createElement("br"));
		info.appendChild(document.createTextNode("$"+location.price));
		info.appendChild(document.createElement("br"));
		info.appendChild(document.createTextNode(location.date));

		var ul = document.createElement("ul");
		
		var li = document.createElement("li");
		li.appendChild(link(location.street_link,"Homes sold on "+location.streetname));
		ul.appendChild(li);

		var li = document.createElement("li");
		li.appendChild(link(location.zip_link,"Homes sold in "+location.zip));
		ul.appendChild(li);

		var li = document.createElement("li");
		li.appendChild(link(location.city_link,"Homes sold in "+location.city));
		ul.appendChild(li);

		if(location.subdivision) {
			var li = document.createElement("li");
			li.appendChild(link(location.sub_link,"Homes sold in "+
				location.subdivision));
			ul.appendChild(li);
		}

		if(location.hsr_link) {
			var li = document.createElement("li");
			li.appendChild(link(location.hsr_link,"Sales Trends for "+
				location.zip));
			ul.appendChild(li);
		}

		info.appendChild(ul);
		marker.openInfoWindow(info);

		var table_row = document.getElementById(rowname);
		if(table_row == null) return;
		new Effect.Highlight(table_row,{duration:3.0});
	}

	add_marker_link(rowname,marker_id);
	marker_functions[marker_id] = fun;

	return fun;
}


function stripInput() {	
        if (document.getElementById("hv_quick_input").value == "Enter city, subdivision, ZIP code, address, or street name") {
            document.getElementById("hv_quick_input").value = "";	
        }        
}

function validateInput() {
     if (document.getElementById("hv_quick_input").value == "Enter city, subdivision, ZIP code, address, or street name" || document.getElementById("hv_quick_input").value == "") {
	     document.getElementById("hv_quick_input").value = "Atlanta, GA";	
	        }
}
// ONLOAD FUNCTIONS //

addLoadEvent(prepareValidateSubmit);
addLoadEvent(prepareInputs);
