var gLocalSearch;
var gMap;
var gSelectedResults = [];
var gCurrentResults = [];
var gSearchForm;
var gSmallIcon;
var center_location;
var baseIcon;
var md;

/*var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
try {
        var pageTracker = _gat._getTracker("UA-6648750-10");
        pageTracker._trackPageview();
}
catch(err) {
}*/


function bookmark(url,title){
  if ((navigator.appName == "Microsoft Internet Explorer") && (parseInt(navigator.appVersion) >= 4)) {
  	window.external.AddFavorite(url,title);
    alert("Thank you for bookmarking our website.\nPlease also consider joining our maillist.");
  } else if (navigator.appName == "Netscape") {
    window.sidebar.addPanel(title,url,"");
    alert("Thank you for bookmarking our website.\nPlease also consider joining our maillist.");
  } else {
    alert("Press CTRL-D (Netscape) or CTRL-T (Opera) to bookmark");
  }
}

function on_pizza_load() 
{
	var ff = document.getElementById("focus_first");
	//if( ff != null ) {
	//	ff.focus();
	//}
	var gb = document.getElementById("google_branding"); // display google branding when necessary
	if( gb != null ) {
		//var searchControl = new GSearchControl();
		GSearch.getBranding(gb);
	}
	md = document.getElementById("map");
	if( md != null ) { // means this is a page with google maps
		if( GBrowserIsCompatible() ) {

			baseIcon = new GIcon();
			baseIcon.shadow = "http://www.google.com/mapfiles/shadow50.png";
			baseIcon.iconSize = new GSize(20, 34);
			baseIcon.shadowSize = new GSize(37, 34);
			baseIcon.iconAnchor = new GPoint(9, 34);
			baseIcon.infoWindowAnchor = new GPoint(9, 2);
			baseIcon.infoShadowAnchor = new GPoint(18, 25);
			
			if(typeof( center_location )=="undefined") {
				createGMap();
				gMap.setCenter(new GLatLng(0, 0), 1);
			}
			
			gLocalSearch = new GlocalSearch();
			//gLocalSearch.setOnKeepCallback( this, onReview, "Review" );
			gLocalSearch.setResultSetSize( GSearch.LARGE_RESULTSET );
			//gLocalSearch.setCenterPoint(gMap);
			//alert(center_location);
			gLocalSearch.setCenterPoint(center_location);
			gLocalSearch.setSearchCompleteCallback(null, OnLocalSearch);
			gLocalSearch.execute("pizza");
			if (window.attachEvent) {
					window.attachEvent("onresize", function() {this.map.onResize()} );
			} else {
					window.addEventListener("resize", function() {this.map.onResize()}, false);
			} 
			//this.map.onResize();
} else {
			alert( "Unfortunately your browser doesn't support google maps, so we can't accomplish the search. Please upgrade." );
		}
	}
}

function onReview() {
}

function createGMap() {
		gMap = new GMap2(md);
		gMap.addControl(new GMapTypeControl());
		gMap.addControl(new GSmallMapControl());
		gMap.enableDoubleClickZoom();
		gMap.enableContinuousZoom();
		//gMap.enableScrollWheelZoom();
}

function OnLocalSearch() {
	if (!gLocalSearch.results.length) {
		var notfound=document.createElement('p');
		var status=document.getElementById("search_status");
		status.innerHTML = "<p>The address was not found.<br>Please try different address.<br>Please note that search doesn't work for some countries.</p>";
		//notfound.innerHTML = "The address was not found.";
		//document.getElementById("searchwell").appendChild( notfound );
		return;
	}
	
	var first = gLocalSearch.results[0];
	if( gMap == null ) {
		createGMap();
	} else {
		for (var i = 0; i < gCurrentResults.length; i++) {
			gMap.removeOverlay(gCurrentResults[i].marker());
		}
	}
	gMap.setCenter(new GLatLng(parseFloat(first.lat), parseFloat(first.lng)), 13);
	
	var searchWell = document.getElementById("searchwell");
	searchWell.innerHTML = "";
	gCurrentResults = [];
	for (var i = 0; i < gLocalSearch.results.length; i++) {
		gCurrentResults.push(new LocalResult(gLocalSearch.results[i],i));
	}
	var attribution = gLocalSearch.getAttribution();
	if (attribution) {
		document.getElementById("searchwell").appendChild(attribution);
	}

}

// Create a lettered icon for this point using our icon class
function createMarker(point, index) {
  var letter = String.fromCharCode("A".charCodeAt(0) + index);
  var letteredIcon = new GIcon(baseIcon);
  letteredIcon.image = "/img/markers/marker" + letter + ".png";
  markerOptions = { icon:letteredIcon };
  var marker = new GMarker(point, markerOptions);
  GEvent.addListener(marker, "click", function() {
    marker.openInfoWindowHtml("Marker <b>" + letter + "</b>");
  });
  return marker;
}

// A class representing a single Local Search result returned by the
// Google AJAX Search API.
function LocalResult(result,idx) {
	this.result_ = result;
	this.index_ = idx;
	this.resultNode_ = this.unselectedHtml();
  var letter = String.fromCharCode("A".charCodeAt(0) + this.index_);
	var result = document.getElementById("searchwell");
	var newimg=document.createElement('img');
	newimg.src="/img/markers/icon" + letter + ".png";
	newimg.alt=letter;
	newimg.align='left';
	newimg.hspace=5;	
	result.appendChild(newimg);
	result.appendChild(this.resultNode_);
	gMap.addOverlay(this.marker());
}

LocalResult.prototype.marker = function(opt_icon) {
	if (this.marker_) return this.marker_;
	var point = new GLatLng(parseFloat(this.result_.lat), parseFloat(this.result_.lng));
	var marker = createMarker(point, this.index_);
	GEvent.bind(marker, "click", this, function() {
		marker.openInfoWindow(this.unselectedHtml());
	});
	this.marker_ = marker;
	return marker;
}

LocalResult.prototype.unselectedHtml = function() {
	var container = document.createElement("div");
	container.className = "unselected";
	container.appendChild(this.result_.html.cloneNode(true));
	return container;
}

