/*
 * Functions which work with "Google Map"
 */
var MAP_ID = "map";
var map;
var markers = [];

/*
 * Create and returns RMarker for Gmap
 */
function getMarker(point, tooltipContent, r_link) {
  var r_marker = new RMarker(point, true, tooltipContent, r_link);
  return r_marker;
}

/*
 * Returns map bounds
 */
function getMapBounds(map) {
	var bounds = map.getBounds();
	return {
		max_lng : bounds.getNorthEast().lng(),
		max_lat : bounds.getNorthEast().lat(),
		min_lng : bounds.getSouthWest().lng(),
		min_lat : bounds.getSouthWest().lat()
	}
}

/*
 * Performs AJAX request
 */
function AJAXrequest(url, on_ok, on_error) {
	var options = {
		method: "get",			 
		onSuccess: on_ok,
		on404: function(){},
		onFailure: on_error
	};
	return (new Ajax.Request(url, options));	
}

/*
 * shows restaurant on the map
 */
function mapRestaraunts(res) {
	markers = [];
	for (var i = 0; i < res.length; i++) {
		var r = res[i];
		var r_link = r.searchUrl;
		markers.push(getMarker(new GLatLng(r.lat, r.lng), restaurantHtml(r), r_link ));
	}

	map.clearOverlays();

	for (var i = 0; i < markers.length; i++) {
		map.addOverlay( markers[i] );
	}
}

/*
 * draws restaurants list
 */
function listRestaraunts(res) {
	var list = "";
	
	if ( res.length == 0) {
		list = "No restaurants found. Zoom out map or choose other criteria.";
	} else {
		var r = null;
		for (var i = 0; i < res.length; i++) {
			r = res[i];
			list += "<a class=\"black\" href=\"" + r.searchUrl + "\" title=\"" + r.name + ", " + r.city + "\" onmouseover=\"markers[" + i + "].onMouseOver();\" onmouseout=\"markers[" + i + "].onMouseOut();\">" + r.name + "</a><br><img src=\"/images/dot_line.gif\" width=\"199\" height=\"2\" vspace=\"5\"><br>";
		}
	}
	document.getElementById('res_list').innerHTML = list;
}

/*
 * creates restaurant description
 */
function restaurantHtml(r) {
	var html = "";
	html += "<b>" + r.name + "</b>";
	html += "<div style='margin:0px; padding:0px; margin-bottom:5px;'>";
	if (r.address != "") {
		html += r.address;
	}
	if ((r.postcode != "") && (r.city != "")) {
		html += "<br>" + r.postcode + ", " + r.city  + "<br>";
	} else if ( r.postcode != "") {
		html += "<br>" + r.postcode  + "<br>";
	} else {
		html += "<br>" + r.city + "<br>";
	}
	html += "</div>";
	if (r.tel != "") {
		html += "<b>Tel.:</b> " + r.tel;
	}
	if (r.fax != "") {
		html += "<br><b>Fax.:</b> " + r.fax;
	}
	if (r.web_address != "") {
		if ( r.web_address.indexOf('http://') == -1 ) {
			r.web_address = 'http://' + r.web_address;
		}
		html += "<br><b>Web:</b> <a href='" + r.web_address + "' target='_blank'>" + r.web_address + "</a>";
	}
	return html;
}