
function generateGMAP(mylat,mylon,international,radius,dealers,divTarget) {
	if (dealers.length<1) {
		$(divTarget).setStyle("background: none");
		var nodealers=noDealersMessage();
		$(divTarget).update(nodealers);
		return;
	}


	var mkrptr=0;
	var gmarkers = [];
	var bounds = new GLatLngBounds();

	map = new GMap2(document.getElementById(divTarget));
	map.addControl(new GLargeMapControl());
	map.addControl(new GMapTypeControl());

	for (p=dealers.length-1;p>=0;p--) {
		var dlat=dealers[p].latitude_coord;
		if (dlat<0 || dlat>0) {
		var point = new GLatLng(dlat,dealers[p].longitude_coord);
		var info=makeGoogleBalloon(dealers[p],international);
		var marker = createMarker(point,info);
		gmarkers[mkrptr++]=marker;
		bounds.extend(point);
		}
	}
	if (international>0) {
		var zoom=2;
		var center=new GLatLng(45,0);
	} else {
		var zoom=map.getBoundsZoomLevel(bounds);
		var center=bounds.getCenter();
	}
	if (international<1)
		map.setCenter(center, zoom);
	else
		map.setCenter(new GLatLng(90,-180), 0); 
	for (var i = 0; i < gmarkers.length; i++) {
            map.addOverlay(gmarkers[i]);
        }
}

function createMarker(point,html) {
	var marker = new GMarker(point);
	GEvent.addListener(marker, "click", function() {
		marker.openInfoWindowHtml('<div class="google_balloon">'+
			html+'</div>');
	});

	GEvent.addListener(marker,"mouseover", function() {
		marker.openInfoWindowHtml('<div class="google_balloon">'+
			html+'</div>');
	});        
	
	return marker;
}

function generateDealerList(mylat,mylon,international,dealers,divTarget) {
	var dlist="<table cellpadding='5' width='100%' id='dealerlist'><tr>";
	if (international<1)
		dlist+="<td class='headline'>Miles</td>";
	else
		dlist+="<td class='headline'>Country</td>";
	dlist+="<td class='headline'>Name</td><td class='headline'>City</td>"+
		"<td class='headline'>State</td><td class='headline'>Address</td><td class='headline'>Phone</td></tr>";

	for (p=0;p<dealers.length;p++) {
		dlist += "<tr><td align='center'>";
		   if (international<1)
			dlist+=parseInt(dealers[p].distance);
		   else
			dlist+=dealers[p].country_code;

		   dlist+="</td><td>";
			   if (dealers[p].website_url.length>0)
				   dlist+="<a target='_new' href='"+dealers[p].website_url+"'>"+dealers[p].dealer_name+"</a>";
			   else
				   dlist+=dealers[p].dealer_name;
		   dlist+="</td><td>"+
			   dealers[p].city_name+"</td><td>";
		   if (international>0&&dealers[p].country_code!="CA") {
			   if (null!=dealers[p].state_name)
			   dlist+=dealers[p].state_name;
		   } else
			   dlist+=dealers[p].state_code;

		   dlist+=" </td><td>"+
			   dealers[p].address_line1+" "+
				   dealers[p].address_line2+"</td><td>"+
			   dealers[p].phone_num+"</td></tr>";
	}
	if (dealers.length<1) {
		var nodealers=noDealersMessage();
		$(divTarget).update(nodealers);
	} else
		$(divTarget).update(dlist);
}

function noDealersMessage() {
	var nomsg="<table cellpadding='5' width='100%' id='dealerlist'>"+
		"<tr><td align='center' class='headline'>"+
		"No Dealers in this area. "+
		"Please try a nearby zipcode or a larger radius."+
		"</td></tr>";
	nomsg+="</table>";
	return nomsg;
}

function makeGoogleBalloon(dealer,international) {
	var info = "<div class='google_balloon'>"+
	   dealer.dealer_name;
	   if (international<1)
		   info+=" ("+parseInt(dealer.distance)+" miles)";
	   info+="<br /> "+
	   dealer.address_line1+" "+
	   dealer.address_line2+" "+
	   dealer.city_name+", "+
	   dealer.state_code+"<br />"+
	   dealer.phone_num+"<br /> "+
	   "<a href='"+dealer.website_url+"'>"+
	   dealer.website_url+"</a>";
	info+="</div>";
	return info;
}

function international_list() {
	swapPanels('gmappanel','dealer_list',396);
	document.dlocform.international.value=1;
	locateDealers(document.dlocform.zipcode.value,document.dlocform.radius.value,1,'gmappanel','dealer_list');
	return false;
}

function locator_check_enter(event) {
	if (isEnter(event)) {
		swapPanels('dealer_list','gmappanel',396);
		document.dlocform.international.value=0;
		locateDealers(document.dlocform.zipcode.value,document.dlocform.radius.value,0,'gmappanel','dealer_list');
	}
	return false;
}
function locator_listview() {
	swapPanels('gmappanel','dealer_list',396);
	document.dlocform.international.value=0;
	locateDealers(document.dlocform.zipcode.value,document.dlocform.radius.value,0,'gmappanel','dealer_list');
	return false;
}

function locator_mapview() {
	swapPanels('dealer_list','gmappanel',396);
	document.dlocform.international.value=0;
	locateDealers(document.dlocform.zipcode.value,document.dlocform.radius.value,0,'gmappanel','dealer_list');
	return false;
}

