var geo_wait = null;
var wait_map = null;
var big_map = null;

var poly_db = {};

poly_db['test'] = [{lat:36.644043852953054,lng:-93.21847915649414},{lat:36.644319320532425,lng:-93.23478698730469},{lat:36.64004946234571,lng:-93.23993682861328},{lat:36.64018720340086,lng:-93.2461166381836},{lat:36.64363064973685,lng:-93.25263977050781},{lat:36.640875904982344,lng:-93.25881958007812},{lat:36.641289122975834,lng:-93.26465606689453},{lat:36.63798331696492,lng:-93.27272415161133}];

poly_db['red'] = [{lat:36.657282399236124,lng:-93.22199821472168},{lat:36.65789348653113,lng:-93.22274923324585},{lat:36.65857342303147,lng:-93.22361826896667},{lat:36.65928778022733,lng:-93.22436928749084},{lat:36.65989024499879,lng:-93.22477698326111},{lat:36.660518524666664,lng:-93.22505593299866},{lat:36.661250076722524,lng:-93.22523832321167},{lat:36.66193858995367,lng:-93.2253885269165},{lat:36.66255824659624,lng:-93.22578549385071},{lat:36.66286807304689,lng:-93.22626829147339},{lat:36.663040198313915,lng:-93.22686910629272},{lat:36.66304880456716,lng:-93.22739481925964},{lat:36.66289389186147,lng:-93.22800636291504},{lat:36.662420545551214,lng:-93.22888612747192},{lat:36.662317269605786,lng:-93.2294762134552},{lat:36.662317269605786,lng:-93.23000192642212},{lat:36.6628852855909,lng:-93.23169708251953},{lat:36.66310904831294,lng:-93.23280215263367},{lat:36.66328977926744,lng:-93.23463678359985},{lat:36.66353075321326,lng:-93.23706150054932},{lat:36.663780332576145,lng:-93.23946475982666},{lat:36.66413318477726,lng:-93.24319839477539},{lat:36.6645376718959,lng:-93.24710369110107},{lat:36.664589308396316,lng:-93.24886322021484},{lat:36.66452906580911,lng:-93.25034379959106},{lat:36.6657597264477,lng:-93.25053691864014},{lat:36.66779930948836,lng:-93.2507836818695},{lat:36.66826401705066,lng:-93.25085878372192},{lat:36.668238200037486,lng:-93.25268268585205},{lat:36.66826401705066,lng:-93.25589060783386},{lat:36.668238200037486,lng:-93.25937747955322},{lat:36.668229594364504,lng:-93.26185584068298},{lat:36.66815214326435,lng:-93.26242446899414},{lat:36.66796281802471,lng:-93.26297163963318},{lat:36.66759277189327,lng:-93.26348662376404},{lat:36.66709363708344,lng:-93.26387286186218},{lat:36.66663752830588,lng:-93.26403379440308},{lat:36.666241658119084,lng:-93.2640552520752},{lat:36.66433973165662,lng:-93.26402306556702},{lat:36.662317269605786,lng:-93.26403379440308},{lat:36.66179228140736,lng:-93.26406598091125},{lat:36.66114679920669,lng:-93.2644522190094},{lat:36.660630409549064,lng:-93.26480627059937},{lat:36.65989024499879,lng:-93.26503157615662},{lat:36.65913285995256,lng:-93.26494574546814},{lat:36.65849596221426,lng:-93.26454877853394},{lat:36.6574115025899,lng:-93.26373338699341},{lat:36.6567401627861,lng:-93.2632827758789},{lat:36.656068817128244,lng:-93.26316475868225},{lat:36.65498432331478,lng:-93.26315402984619},{lat:36.65386538511545,lng:-93.2632827758789},{lat:36.65307351133322,lng:-93.26358318328857},{lat:36.652522637812005,lng:-93.26404452323914},{lat:36.65185125537956,lng:-93.26487064361572},{lat:36.65147252424549,lng:-93.2654070854187},{lat:36.65130898067993,lng:-93.2659113407135},{lat:36.651283157979925,lng:-93.26654434204102},{lat:36.65136923361292,lng:-93.26760649681091},{lat:36.651506954425564,lng:-93.26890468597412},{lat:36.65185125537956,lng:-93.27021360397339},{lat:36.65235909647673,lng:-93.27179074287415},{lat:36.65254846009635,lng:-93.27269196510315},{lat:36.65257428237204,lng:-93.27364683151245},{lat:36.652531245241086,lng:-93.2750952243805},{lat:36.65263453431496,lng:-93.27716588973999},{lat:36.65274643065533,lng:-93.27929019927979},{lat:36.65278946766598,lng:-93.2809317111969},{lat:36.65279807506524,lng:-93.28329205513},{lat:36.65272921584431,lng:-93.28604936599731},{lat:36.65268617879994,lng:-93.28774452209473},{lat:36.65256567494777,lng:-93.28893542289734},{lat:36.65239352626038,lng:-93.29010486602783},{lat:36.65191150788823,lng:-93.29082369804382},{lat:36.651455309149675,lng:-93.29132795333862},{lat:36.651360626053936,lng:-93.29178929328918},{lat:36.65165328251911,lng:-93.29299092292786},{lat:36.65170492766221,lng:-93.29372048377991},{lat:36.65131758824466,lng:-93.29511523246765},{lat:36.65114543676703,lng:-93.29596281051636},{lat:36.65117986709334,lng:-93.29691767692566},{lat:36.65133480337126,lng:-93.29773306846619},{lat:36.65179100282374,lng:-93.29919219017029},{lat:36.652427956028646,lng:-93.30086588859558},{lat:36.652522637812005,lng:-93.30152034759521},{lat:36.65249681551901,lng:-93.30206751823425},{lat:36.65233327412888,lng:-93.30261468887329},{lat:36.65203201276415,lng:-93.3030652999878},{lat:36.651403663839176,lng:-93.30347299575806},{lat:36.65065480294431,lng:-93.30368757247925},{lat:36.65003505048954,lng:-93.30366611480713},{lat:36.649286176285386,lng:-93.30339789390564},{lat:36.64864919709296,lng:-93.3033013343811},{lat:36.64816715528304,lng:-93.30338716506958},{lat:36.64706533410191,lng:-93.30393433570862},{lat:36.64598932164133,lng:-93.30456733703613},{lat:36.64478416983859,lng:-93.30520033836365},{lat:36.642855887732,lng:-93.30623030662537},{lat:36.642330766831236,lng:-93.3065414428711},{lat:36.64145268781925,lng:-93.3074426651001},{lat:36.64065207764372,lng:-93.30840826034546},{lat:36.639894503364275,lng:-93.30933094024658},{lat:36.63917996625091,lng:-93.31016778945923}]
poly_db['blue'] = [{lat:36.64441401228527,lng:-93.23510885238647},{lat:36.64554169603016,lng:-93.23503375053406},{lat:36.64629921477126,lng:-93.23503375053406},{lat:36.6468759569989,lng:-93.23510885238647},{lat:36.64725471073923,lng:-93.23530197143555},{lat:36.64762485464039,lng:-93.23559165000916},{lat:36.64799499676257,lng:-93.23616027832031},{lat:36.64816715528304,lng:-93.23655724525452},{lat:36.648279058114966,lng:-93.23713660240173},{lat:36.64832209762241,lng:-93.23780179023743},{lat:36.64833070552102,lng:-93.23871374130249},{lat:36.64832209762241,lng:-93.2395613193512},{lat:36.648253234398965,lng:-93.24053764343262},{lat:36.64820158694096,lng:-93.24138522148132},{lat:36.64819297902792,lng:-93.24203968048096},{lat:36.648253234398965,lng:-93.24256539344788},{lat:36.64838235289244,lng:-93.24328422546387},{lat:36.648571726291294,lng:-93.24413180351257},{lat:36.64880413846251,lng:-93.24532270431519},{lat:36.64893325603235,lng:-93.24591279029846},{lat:36.64901933429197,lng:-93.24667453765869},{lat:36.649070981201575,lng:-93.2475221157074},{lat:36.64911402026644,lng:-93.24840188026428},{lat:36.649122628076526,lng:-93.24921727180481},{lat:36.64904515775111,lng:-93.25008630752563},{lat:36.648898824701575,lng:-93.2509446144104},{lat:36.64874388352249,lng:-93.25176000595093},{lat:36.6484340002292,lng:-93.25299382209778},{lat:36.64808968399646,lng:-93.25438857078552},{lat:36.64774536622431,lng:-93.2558262348175},{lat:36.647340790875,lng:-93.25743556022644},{lat:36.6469103892341,lng:-93.25920581817627},{lat:36.64673822790426,lng:-93.2600212097168},{lat:36.64666936326455,lng:-93.26069712638855},{lat:36.64666936326455,lng:-93.26120138168335},{lat:36.6467812682728,lng:-93.26179146766663},{lat:36.6469103892341,lng:-93.26216697692871},{lat:36.64724610272037,lng:-93.26267123222351},{lat:36.64743547891321,lng:-93.26295018196106},{lat:36.647599030705,lng:-93.26341152191162},{lat:36.64785726966911,lng:-93.26361536979675},{lat:36.648279058114966,lng:-93.26390504837036},{lat:36.64877831492256,lng:-93.26423764228821},{lat:36.64831348972286,lng:-93.26519250869751},{lat:36.64781422990188,lng:-93.26622247695923},{lat:36.647469910898245,lng:-93.2667589187622},{lat:36.646936213400366,lng:-93.26734900474548},{lat:36.646600498563295,lng:-93.26790690422058},{lat:36.64635947162396,lng:-93.269602060318},{lat:36.64621313347136,lng:-93.27076077461243},{lat:36.6460323624284,lng:-93.27130794525146},{lat:36.64586019913585,lng:-93.27169418334961},{lat:36.64578272552867,lng:-93.2724666595459},{lat:36.64567942726455,lng:-93.27306747436523},{lat:36.64521458336143,lng:-93.27364683151245},{lat:36.64495633553637,lng:-93.27407598495483},{lat:36.644878861020004,lng:-93.27480554580688},{lat:36.64478416983859,lng:-93.2754385471344},{lat:36.644482878941524,lng:-93.27574968338013},{lat:36.644181586865905,lng:-93.27584624290466},{lat:36.64376838438856,lng:-93.27584624290466},{lat:36.6434756979593,lng:-93.27600717544556},{lat:36.6432863120301,lng:-93.27622175216675},{lat:36.64316579346909,lng:-93.27659726142883},{lat:36.64315718499322,lng:-93.27763795852661},{lat:36.64299362376907,lng:-93.27885031700134},{lat:36.64305388320784,lng:-93.27927947044373},{lat:36.64330352895201,lng:-93.28000903129578},{lat:36.64330352895201,lng:-93.28167200088501},{lat:36.64322605277316,lng:-93.28212261199951},{lat:36.64295918978289,lng:-93.28253030776978},{lat:36.6425201551098,lng:-93.28279852867126},{lat:36.64185729409762,lng:-93.28280925750732},{lat:36.64115138389095,lng:-93.28275561332703},{lat:36.64068651266122,lng:-93.2824981212616},{lat:36.639808414906575,lng:-93.28230500221252},{lat:36.63963623770257,lng:-93.28201532363892},{lat:36.639515713430804,lng:-93.28150033950806},{lat:36.639059441265324,lng:-93.28108191490173},{lat:36.63861177538227,lng:-93.28083515167236},{lat:36.6378800082413,lng:-93.28089952468872}]
poly_db['yellow'] = [{lat:36.64043685843558,lng:-93.24570894241333},{lat:36.64033355300208,lng:-93.24585914611816},{lat:36.64032494420971,lng:-93.2463526725769},{lat:36.64031633541637,lng:-93.24702858924866},{lat:36.64025607383607,lng:-93.24742555618286},{lat:36.64012694171952,lng:-93.2478654384613},{lat:36.64001502704343,lng:-93.24814438819885},{lat:36.63970510863036,lng:-93.24849843978882},{lat:36.63916274840737,lng:-93.24901342391968},{lat:36.63861177538227,lng:-93.24944257736206},{lat:36.638172715931745,lng:-93.24962496757507},{lat:36.637415117270685,lng:-93.24976444244385},{lat:36.636829695020985,lng:-93.24985027313232},{lat:36.63643367156499,lng:-93.25006484985352},{lat:36.63619261281252,lng:-93.250333070755},{lat:36.63595155330586,lng:-93.25073003768921},{lat:36.63544360401927,lng:-93.25167417526245},{lat:36.63515088596034,lng:-93.25209259986877},{lat:36.63491843259192,lng:-93.2522964477539},{lat:36.63419523984986,lng:-93.25272560119629},{lat:36.63387668851245,lng:-93.25289726257324},{lat:36.63325680105408,lng:-93.25322985649109},{lat:36.632714395437226,lng:-93.25353026390076},{lat:36.632163376297974,lng:-93.25387358665466},{lat:36.63184481656067,lng:-93.25415253639221},{lat:36.63117325388118,lng:-93.25496792793274},{lat:36.630734152041796,lng:-93.25540781021118},{lat:36.63026921795535,lng:-93.25562238693237},{lat:36.629494321577916,lng:-93.25581550598145},{lat:36.629184360845265,lng:-93.25600862503052},{lat:36.62919297088246,lng:-93.25682401657104},{lat:36.62923602105394,lng:-93.25776815414429},{lat:36.629382391457135,lng:-93.2582938671112},{lat:36.629623471515245,lng:-93.25866937637329},{lat:36.630045359802196,lng:-93.25909852981567},{lat:36.63045002598896,lng:-93.2595705986023},{lat:36.63070832244393,lng:-93.25998902320862},{lat:36.63094078851318,lng:-93.26050400733948},{lat:36.63126796179303,lng:-93.26129794120789},{lat:36.63162096298446,lng:-93.26222062110901},{lat:36.631913694453296,lng:-93.26269268989563},{lat:36.63223225390585,lng:-93.26303601264954},{lat:36.63255081204148,lng:-93.2632827758789},{lat:36.63447935209375,lng:-93.26418399810791},{lat:36.63488399499621,lng:-93.2643985748291},{lat:36.63511644846853,lng:-93.2646131515503},{lat:36.6364422807922,lng:-93.26604008674622},{lat:36.6360634738849,lng:-93.26658725738525},{lat:36.63508201096131,lng:-93.26796054840088},{lat:36.63433299137166,lng:-93.26902270317078},{lat:36.633928345575555,lng:-93.2695484161377},{lat:36.633609793134774,lng:-93.26980590820312},{lat:36.63306739000267,lng:-93.27006340026855},{lat:36.63249915405489,lng:-93.27042818069458},{lat:36.632094498628504,lng:-93.27092170715332},{lat:36.63188786525076,lng:-93.271404504776},{lat:36.63180176784652,lng:-93.27188730239868},{lat:36.63180176784652,lng:-93.2723593711853},{lat:36.63181898733506,lng:-93.27433347702026},{lat:36.63187925551468,lng:-93.27517032623291},{lat:36.63196535283236,lng:-93.27636122703552},{lat:36.63190508472009,lng:-93.27742338180542},{lat:36.63188786525076,lng:-93.27817440032959},{lat:36.63199118200889,lng:-93.27849626541138},{lat:36.63220642481011,lng:-93.27881813049316},{lat:36.63244749603368,lng:-93.27919363975525},{lat:36.63253359271647,lng:-93.27959060668945},{lat:36.63252498305253,lng:-93.28022360801697},{lat:36.63253359271647,lng:-93.2814359664917},{lat:36.63253359271647,lng:-93.28273415565491},{lat:36.63255081204148,lng:-93.28436493873596},{lat:36.632568031362645,lng:-93.2853627204895},{lat:36.632714395437226,lng:-93.28596353530884},{lat:36.6330071227523,lng:-93.28648924827576},{lat:36.633463430760955,lng:-93.28695058822632},{lat:36.63406609757449,lng:-93.2872724533081},{lat:36.63479790093962,lng:-93.28734755516052},{lat:36.636984660167045,lng:-93.28749775886536},{lat:36.638103843634056,lng:-93.28747630119324},{lat:36.639257446499215,lng:-93.2872724533081},{lat:36.64023885623304,lng:-93.28728318214417},{lat:36.642149986676415,lng:-93.28733682632446},{lat:36.64344126418863,lng:-93.2873797416687},{lat:36.643854468420805,lng:-93.28752994537354},{lat:36.64413854504459,lng:-93.28781962394714},{lat:36.64468947854081,lng:-93.28863501548767},{lat:36.64505102650609,lng:-93.28912854194641},{lat:36.64512850084928,lng:-93.28947186470032},{lat:36.64516293386568,lng:-93.29053401947021},{lat:36.64612705207524,lng:-93.29055547714233},{lat:36.64663493092162,lng:-93.29071640968323},{lat:36.64761624666288,lng:-93.29113483428955},{lat:36.64851147116943,lng:-93.29154253005981},{lat:36.64881274630725,lng:-93.29183220863342},{lat:36.64926896070081,lng:-93.29256176948547},{lat:36.64978542656398,lng:-93.29306602478027},{lat:36.65015555830193,lng:-93.29325914382935},{lat:36.65081834789924,lng:-93.29322695732117},{lat:36.65130898067993,lng:-93.29306602478027},{lat:36.651636067463706,lng:-93.29300165176392}]

var poly_colors = {};

poly_colors['red'] = '#FF0000';
poly_colors['blue'] = '#1500FF';
poly_colors['yellow'] = '#B5B504';

var poly_map = {};

var poly_handles = {};

var current_poly = [];

var current_poly_overlay = null;

var map_search = null;
var search_form = null;

var marker_db = [];
var marker_info_db = [];

var result_db = {};

var results_count = 0;

var map_center_point = null;

var first_search = null;
var exact_search = false;

var search_value = '';

var branson_matches = 0;

function bw_search(search_for){
	if(exact_search){
		executeGSearch(search_for);
		return(true);
	}
	search_value = search_for;
	track_url('search_branson_world.html');
	httpRequest('maps','/api/search.php?q=' + search_for,bw_search_back);
	branson_matches = 0;
	document.getElementById('map_text').innerHTML = '';

	return false;
}

function bw_search_back(http_object){
	if(httpStatus('maps') == '4'){
		document.getElementById('div_buffer').innerHTML = getReqData('maps');
		
		var result_node = getChildByID(document.getElementById('div_buffer'),'result','div');
		
		var search_count = result_node.getAttribute('count');
		
		branson_matches = search_count;
		
		if(search_count > 0){
			var map_bounds = new GLatLngBounds();
		
			var list_html = '<div class="small_text">BransonWorld results</div><ul style="padding-left:0px;margin-left:8px;">';
		
			document.getElementById('div_buffer').removeChild(result_node);
			var wNodes = document.getElementById('div_buffer').childNodes;
			var matches = 0;
			for(var this_item=0;this_item<wNodes.length;this_item++){
				var this_node = wNodes[this_item];
				var geo = this_node.getAttribute('geo');
				
				var title = this_node.getAttribute('title');

				var parts = geo.split(', ');
				var the_point = new GLatLng(parts[0],parts[1])
				
				var the_marker = createInfoMarker(the_point,marker_db.length,this_node.innerHTML,'rd_' + this_item);
				map_bounds.extend(the_marker.getPoint());
				marker_db[marker_db.length] = the_marker;
				list_html += '<li><a href="javascript:void show_marker(' + (marker_db.length - 1)+ ');">' +title + '</a></li>' ;
				big_map.addOverlay(the_marker);	
				
				matches++;
				
				if(matches > 8){
					break;
				}
			}
			
			list_html += '</ul>';
			
			document.getElementById('map_text').innerHTML = list_html;
			
			var center_lat = (map_bounds.getNorthEast().lat() + map_bounds.getSouthWest().lat()) /2;
			var center_lng = (map_bounds.getNorthEast().lng() + map_bounds.getSouthWest().lng()) /2;
			big_map.setZoom(big_map.getBoundsZoomLevel(map_bounds));
			big_map.setCenter(map_bounds.getCenter());
			executeGSearch(search_value);
		} else {
			executeGSearch(search_value);
		}
	}
}

function getChildByID(parent_node,target_id,node_type){
	if(node_type != null){
		var myCol = parent_node.getElementsByTagName(node_type);
	} else {
		var myCol = parent_node.getElementsByTagName('*');
	}
	var theCount = myCol.length;
	for(var this_item=0;this_item<theCount;this_item++){
		if(myCol[this_item]['id'] == target_id){
			return(myCol[this_item]);
		}
	}
	return(null);
}


function track_url(the_url){
	//urchinTracker(the_url);
}

function executeSearch(search_for){
	//clearSearchResults();
	//var search_for = document.getElementById('search_form_div').value;
	if(search_for != ''){
		bw_search(search_for);
	}
}


function executeGSearch(search_for){
	//clearSearchResults();
	//var search_for = document.getElementById('search_form_div').value;
	if(search_for != ''){
		map_search.execute(search_for);
	}
}

function reset_marker_db(){
	big_map.getInfoWindow().hide();
	if(marker_db.length > 0){
		for(var this_item = 0;this_item < marker_db.length;this_item++){
			big_map.removeOverlay(marker_db[this_item]);
			marker_db[this_item] = null;
			marker_info_db[this_item] = '';
		}
	}
	marker_db = [];
	marker_info_db = [];
}

function init_map_search(){
	map_search = new GlocalSearch();
	map_search.setSearchCompleteCallback(document, gotGoogMapSearchResults)
	map_search.setResultSetSize(GSearch.LARGE_RESULTSET);
}

function gotGoogMapSearchResults(){
	drawGoogleResults(map_search.results);
}

function drawGoogleResults(result_array){
	//var search_results_div = document.getElementById('search_results_div');
	//alert('Got ' + result_array.length);
	var map_bounds = new GLatLngBounds();
	
	var results_count = 0;
	
	var list_html = '<br /><br /><div class="small_text">Google results</div><ul style="padding-left:0px;margin-left:6px;">';
	if(result_array.length){
		for(var this_item=0;this_item<result_array.length;this_item++){
			var node = result_array[this_item].html.cloneNode(true);
			result_title = result_array[this_item]['titleNoFormatting'];
			result_url = result_array[this_item]['url'];
			result_content = result_array[this_item]['content'];
			result_lat = result_array[this_item]['lat'];
			result_lng = result_array[this_item]['lng'];
			result_phone = result_array[this_item]['phoneNumbers']; //is array
			result_street = result_array[this_item]['streetAddress'];
			result_city = result_array[this_item]['city'];
			result_region = result_array[this_item]['region'];
			
			
			var the_point = new GLatLng(result_lat,result_lng);
			
			//in meters
			var the_distance = the_point.distanceFrom(map_center_point);
			the_distance = parseInt(the_distance / 1609.344)
			
			if(the_distance < 8){
			
				var the_marker = createInfoMarker(the_point,marker_db.length,result_array[this_item].html.innerHTML,'rd_' + results_count);
				map_bounds.extend(the_marker.getPoint());
				marker_db[marker_db.length] = the_marker;
				list_html += '<li><a href="javascript:void show_marker(' + (marker_db.length - 1)+ ');">' +result_title + '</a></li>' ;
				big_map.addOverlay(the_marker);	
				
				result_db['rd_' + results_count] = result_array[this_item];
				results_count++;
			}
			//result_content = stripBreaks(result_content);
		}
		if(results_count > 0 ){
			if(branson_matches == 0){
				var center_lat = (map_bounds.getNorthEast().lat() + map_bounds.getSouthWest().lat()) /2;
				var center_lng = (map_bounds.getNorthEast().lng() + map_bounds.getSouthWest().lng()) /2;
				big_map.setZoom(big_map.getBoundsZoomLevel(map_bounds));
				big_map.setCenter(map_bounds.getCenter());
			}
			list_html += '</ul>';
		} else {
			list_html = 'No matches within 8 miles';
		}
		
	} else {
		list_html = 'No matches within 8 miles';
	}	
	document.getElementById('map_text').innerHTML = document.getElementById('map_text').innerHTML + list_html;
	if(exact_search && results_count > 0 ){
		show_marker(0);
	}
	exact_search=false;
}

function addLocation(location_id){
	alert(result_db[location_id]['titleNoFormatting'] + '   =   ' + result_db[location_id]['lat'] + '   ' + result_db[location_id]['lng']);
}

function show_marker(db_offset){
	marker_db[db_offset].openInfoWindow(marker_info_db[db_offset]);
}

function createInfoMarker(point, db_offset,the_html,click_id) {
	var the_marker = new GMarker(point);
	
	//the_html = the_html + '<br /><br /><a href="javascript:void addLocation(\'' + click_id + '\');">Add<a>';
	marker_info_db[db_offset] = the_html;
	GEvent.addListener(the_marker, "click", function() {the_marker.openInfoWindowHtml(the_html);});
	return the_marker;
}

function init_search_form(){
	search_form = new GSearchForm(true,document.getElementById('search_form_div'));
	search_form.setOnSubmitCallback(document, doGoogSearch);
	search_form.setOnClearCallback(document, doGoogClear);
	search_form.input.id = 'gsearch';
	//search_form.input.value = gbal['last_selection'];

}

function doGoogSearch(the_form){
	reset_marker_db();
	map_search.setCenterPoint(map_center_point)

	if(the_form.input.value != ''){
		executeSearch(the_form.input.value)
	}
	return(false);
}


function doMapSearch(the_q,do_exact_address_search){
	first_search = the_q;
	if(do_exact_address_search){
		exact_search = true;
	}
}

function doGoogClear(the_form){
	//clearSearchResults();
	return(false);
}


function report(the_marker){
	var debug_map = document.getElementById('debug_map');
	debug_map.innerHTML = ('lat=' + the_marker.getPoint().lat() + '<br />lon=' + the_marker.getPoint().lng());
	add_point_to_poly(the_marker.getPoint().lat(),the_marker.getPoint().lng());
}

function add_point_to_poly(the_lat,the_lng){
	current_poly[current_poly.length] = new GLatLng(the_lat,the_lng);
	if(current_poly_overlay != null){
		big_map.removeOverlay(current_poly_overlay);
	}
	current_poly_overlay =  new GPolyline(current_poly,"#ff0000",10);
	big_map.addOverlay(current_poly_overlay);
	
	output_map();
}

function draw_poly_array(the_title){
	if(poly_handles[the_title] != null){
		big_map.removeOverlay(poly_handles[the_title]);
	}
	if(poly_map[the_title] == null){
		poly_map[the_title] = [];
		for(var this_item=0;this_item < poly_db[the_title].length;this_item++){
			poly_map[the_title][this_item] = new GLatLng(poly_db[the_title][this_item]['lat'],poly_db[the_title][this_item]['lng']);
		}
	}
	var the_poly =  new GPolyline(poly_map[the_title],poly_colors[the_title],10,.7);
	poly_handles[the_title] = the_poly;
	big_map.addOverlay(the_poly);	

}

function output_map(){
	var map_output = document.getElementById('map_output');
	//draw the array
	var theHTML = '[';
	for(var the_item = 0; the_item < current_poly.length - 1;the_item++){
		theHTML += '{lat:' + current_poly[the_item].lat() + ',lng:' + current_poly[the_item].lng() + '},';
		
	}
	theHTML += '{lat:' + current_poly[the_item].lat() + ',lng:' + current_poly[the_item].lng() + '}';
	theHTML += ']';
	
	map_output.value = theHTML;
}

function view_delay_map(uid){
	setTimeout('view_map(\'' + uid + '\');',1000);
}

function view_map(uid){
	var mapD = document.getElementById(uid + '_map');
	mapD.style.display = 'block';
	mapD.style.padding = '8px';
	//var map = new YMap(mapD); 
	
	var the_geo = document.getElementById(uid + '_map_geo')

	var mapData = document.getElementById(uid + '_map_data');
	if(mapData != null && mapData.innerHTML != 'big' && mapData.innerHTML != 'active'){
		mapD.style.height = '192px';
		wait_map = new GMap2(mapD);
		wait_map.addControl(new GSmallMapControl());
		wait_map.addControl(new GMapTypeControl());
	
		geo_wait = uid;
		
		if(the_geo != null && the_geo.innerHTML != ''){
			var geo = the_geo.innerHTML;
			var parts = geo.split(', ');
			var the_point = new GLatLng(parts[0],parts[1]);
			draw_map(the_point);
		} else {
			var geocoder = new GClientGeocoder();	
			geocoder.getLatLng(mapData.innerHTML,draw_map);
		}

// 		var marker = new YMarker(mapData.innerHTML);
// 		marker.addLabel('x');
// 		var mapDesc = document.getElementById(uid + '_map_desc');
// 		
// 		marker.addAutoExpand(mapDesc.innerHTML);
// 		map.addOverlay(marker);
// 		map.addPanControl();
// 		map.addZoomLong();
// 		map.drawZoomAndCenter(, 3);
	} else if(mapData != null && mapData.innerHTML == 'big'){
		init_map_search();
		init_search_form();
		mapD.style.height = '580px';

		big_map = new GMap2(mapD);
		
		big_map.addControl(new GLargeMapControl());
		big_map.addControl(new GMapTypeControl());
		big_map.addControl(new GOverviewMapControl());
		
		var theGPoint = new GLatLng(36.64693613400366,-93.26190948486328);
		
		draw_big_map(theGPoint);
		//var geocoder = new GClientGeocoder();	
		//geocoder.getLatLng('Branson Missouri United States',draw_big_map);
	} else if(mapData != null && mapData.innerHTML == 'active'){
		//mapD.style.height = '580px';
		big_map = new GMap2(mapD);
		big_map.addControl(new GLargeMapControl());
		big_map.addControl(new GMapTypeControl());
		big_map.addControl(new GOverviewMapControl());
		
		var theGPoint = new GLatLng(36.64693613400366,-93.26190948486328);
		
		draw_big_map(theGPoint);
		//var geocoder = new GClientGeocoder();	
		//geocoder.getLatLng('Branson Missouri United States',draw_big_map);
	} else {
		mapD.style.display = 'none';
	}
	
}

function draw_big_map(the_point){
	big_map.setCenter(the_point, 12);
	//var the_marker = new GMarker(the_point,{draggable: true});
	//GEvent.addListener(the_marker, "dragend", function() {report(the_marker);});

	//big_map.addOverlay(the_marker);	
	
	map_center_point = the_point;
	
	map_search.setCenterPoint(the_point);
	if(first_search != null){
		search_form.input.value = first_search;
		doGoogSearch(search_form);
	}
	setTimeout(draw_time_savers,1000);
}

function draw_time_savers(){
	draw_poly_array('red');
	draw_poly_array('blue');
	draw_poly_array('yellow');
}

function draw_map(the_point){
	wait_map.setCenter(the_point, 13);
	var the_marker = new GMarker(the_point);
	//GEvent.addListener(the_marker, "dragend", function() {report(the_marker);});

	wait_map.addOverlay(the_marker);
}