var _baseUri='';
if(typeof baseUri!='undefined'){
	_baseUri=baseUri;
	jSesIndex=_baseUri.indexOf(';jsession');
	if(jSesIndex>=0){
		_baseUri=_baseUri.substring(0,jSesIndex);
	}
}

var cuisine_id = new Array();
var maprest_id="0";


var map=null;
var mappoints;
var mapcontents;
var maprestaurants;
var maprestaurantids;
var mappointcount;
var startpoint=1;
var overrideStart='false';
var baseIcon;
var googleMapImageIcons;
var mapSurroundingMarkers


function setGPointArraySize(count) {
	if (count==0) return;
	mappoints='';
	mappoints= new Array(count);
	mapcontents = '';
	mapcontents = new Array(count);
	maprestaurants = '';
	maprestaurants = new Array(count);
	maprestaurantids = new Array(count);
}

function addGPoint(count,lat,lng,restaurant,content,restid) {
	//alert('addGPoint ' );
	mappoints[count]=new GLatLng(lat, lng);
	mapcontents[count] = content;
	maprestaurants[count] = restaurant;
	mappointcount = count+1;
	maprestaurantids[count]=restid;
}


function cleanSurroundingMarkers() {
	if (mapSurroundingMarkers !='' && mapSurroundingMarkers !=null) {
		for (var i = 0; i < mapSurroundingMarkers.length; i++){
			if (typeof mapSurroundingMarkers[i] != 'undefined') {
				var marker = map.getMarkerById(mapSurroundingMarkers[i]);
				if (marker !=null)	marker.remove();
			}
		}
	}
}


function displaySurroundingMarkers(coordstext) {
	var ncoord;
	var npoint;
	var coordcsv = coordstext.split("SPLITTAG");
	mapSurroundingMarkers = new Array(coordcsv.length);
	
			var 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);
	
	
	for (var y=0;y<coordcsv.length-1;y++) {
		ncoord = coordcsv[y].split(",,");
		//alert('ncoord='+ncoord);
		npoint = new GLatLng(ncoord[1],ncoord[2]);

		var icon=new GIcon(baseIcon);
		icon.image=googleMapImageIcons[y];
		
		var pdmarker = new PdMarker(npoint,icon);
		var rand = 	Math.floor((2+Math.random())*100);
		pdmarker.setId(rand);
		pdmarker.setTooltip(ncoord[3]);
		var pdhtml ="<img src=\"http://business.intuit.com/boorah/s/images/orange-tr.png\" width=120 height=3><br>" +ncoord[4];
		pdmarker.setDetailWinHTML(pdhtml);
		//pdmarker.setHoverImage("http://business.intuit.com/boorah/s/images/dd-start.png");
		GEvent.addListener(pdmarker, "mouseover", function() {
		}); 
		GEvent.addListener(pdmarker, "mouseout", function() {
		});
		map.addOverlay(pdmarker);
		//pdmarker.setImageEnabled(true);
		//pdmarker.setImage("images/mm_20_red.png");
		//pdmarker.setImage(googleMapImageIcons[y]);
		//pdmarker.setImageEnabled(false);
		mapSurroundingMarkers[y]=rand;
	}
}
function refreshMapCoordinates(coordstext) {
	var coordcsv = coordstext.split("SPLITTAG");
	setGPointArraySize(coordcsv.length-1);
	for (var y=0;y<coordcsv.length-1;y++) {
		coords = coordcsv[y].split(",,");
		addGPoint(y,coords[1],coords[2],coords[3],coords[4],coords[5]);
	}
	renderMapCoordinates('','');
}
function cleanMapMarkers() {
	//alert('cleanMapMarkers');
	if (map !=null && typeof map != 'undefined') {
		//GEvent.clearListeners(map, "moveend");
		//GEvent..removeListener(moveEndHandle);
		//moveEndHandle=null;
		//cleanSurroundingMarkers();
		var count = map.getMarkerCount();
		for (var i = 0; i < count; i++){
			if (typeof map.getMarkerById(i) !='undefined') {
				var marker = map.getMarkerById(i);
				if (marker !=null)	marker.remove();
			}
		}
	}
	map=null; // needed to eliminate FF infinite loop event generation for follow-on rendering
	origCenter=null;
}

function resetMap(id) {
	maprest_id=id;
	//map='';
}
var mapShown=false;
function toggleListMapIconsVisibility(toggle){
	if (toggle=='show') {
		mapShown=true;
		if ($('letterA')!=null && typeof $('letterA')!='undefined')
			$('letterA').style.display="";
		if ($('letterB')!=null && typeof $('letterB') !='undefined')
			$('letterB').style.display="";
		if ($('letterC')!=null && typeof $('letterC') !='undefined')
			$('letterC').style.display="";
		if ($('letterD')!=null && typeof $('letterD') !='undefined')
			$('letterD').style.display="";
		if ($('letterE')!=null && typeof $('letterE') !='undefined')
			$('letterE').style.display="";
		if ($('letterF')!=null && typeof $('letterF') !='undefined')
			$('letterF').style.display="";
		if ($('letterG')!=null && typeof $('letterG') !='undefined')
			$('letterG').style.display="";
		if ($('letterH')!=null && typeof $('letterH') !='undefined')
			$('letterH').style.display="";
		if ($('letterI')!=null && typeof $('letterI') !='undefined')
			$('letterI').style.display="";
		if ($('letterJ')!=null && typeof $('letterJ') !='undefined')
			$('letterJ').style.display="";
		/*if ($('letter')!=null && typeof $('letterK') !='undefined')
			$('letterK').style.display="";
		if ($('letter')!=null && typeof $('letterL') !='undefined')
			$('letterL').style.display="";		*/
	}else if (toggle=='hide'){
		mapShown=false;
		if ($('letterA')!=null && typeof $('letterA') !='undefined')
			$('letterA').style.display="none";
		if ($('letterB')!=null && typeof $('letterB') !='undefined')
			$('letterB').style.display="none";
		if ($('letterC')!=null && typeof $('letterC') !='undefined')
			$('letterC').style.display="none";
		if ($('letterD')!=null && typeof $('letterD') !='undefined')
			$('letterD').style.display="none";
		if ($('letterE')!=null && typeof $('letterE') !='undefined')
			$('letterE').style.display="none";
		if ($('letterF')!=null && typeof $('letterF') !='undefined')
			$('letterF').style.display="none";
		if ($('letterG')!=null && typeof $('letterG') !='undefined')
			$('letterG').style.display="none";
		if ($('letterH')!=null && typeof $('letterH') !='undefined')
			$('letterH').style.display="none";
		if ($('letterI')!=null && typeof $('letterI') !='undefined')
			$('letterI').style.display="none";
		if ($('letterJ')!=null && typeof $('letterJ') !='undefined')
			$('letterJ').style.display="none";
		/*if ($('letter')!=null && typeof $('letterK') !='undefined')
			$('letterK').style.display="none";
		if ($('letter')!=null && typeof $('letterL') !='undefined')
			$('letterL').style.display="none";*/
	}
}
function pdMarkerLoadNewImage(marker,image) {
	marker.setImageEnabled(true);
	marker.setImage(image);
	marker.setImageEnabled(false);
}

var baseIcon;
var moveEndHandle=null;

function renderMapCoordinates(cid,aobject) {
	if(!mappointcount) return;
	var testrestid='';
	var redMarker="false";
	var imgurl="";
	var eventCount=0;
	var origCenter=null;
	var origNE;
	//alert('renderMapCoordinates');
	if (GBrowserIsCompatible()) {
		if (map==null) {
			//alert('Creating new map');
			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);
		
			map = new GMap2(document.getElementById("mapContainer"));
			map.addControl(new GSmallMapControl());
			//map.addControl(new GMapTypeControl());
			/**moveEndHandle=GEvent.addListener(map, "moveend", function() {
  				var newBounds = map.getBounds();
  				var sw = newBounds.getSouthWest();
  				var ne = newBounds.getNorthEast();  				
  				var zl = map.getBoundsZoomLevel(newBounds);  	
  				var newCenter = newBounds.getCenter();
  				if (origCenter !=null && (Math.abs(origCenter.lat()-newCenter.lat()) > .01 || Math.abs(origCenter.lng() - newCenter.lng()) > .01)){
  					renderSurroundingRestaurants(sw.lat(),sw.lng(),ne.lat(),ne.lng(),zl);
  				}
			});*/
		}
		
		map.clearOverlays();
		map.setCenter(new GLatLng(0,0),17-5);
		var bounds = new GLatLngBounds();
		//alert('Here 1.  mappointcount='+mappointcount);
		var point;
		var icon;
		var pdmarker=null,topMarker=null;
		for (var y=0;y<mappointcount;y++) {
			testrestid=''+maprestaurantids[y]+'';
			//alert('testrestid:'+testrestid);
			//Following y==0 conditino for FF fix: create blank pdmarker and remove
			point = mappoints[y];
			if(point==null)
				continue;
			bounds.extend(point);
			//alert('created point');
			//alert(point);
			icon=new GIcon(baseIcon);
			//if (maprest_id==testrestid && y >9){
				//alert('here');	
			//	icon.image=googleMapImageIcons[26];
			//}else
				icon.image=googleMapImageIcons[y];
			//alert('created icon');
			pdmarker = new PdMarker(point,icon);	
			//alert('created pdmarker');
			pdmarker.setId(maprestaurantids[y]);
			pdmarker.setTooltip(maprestaurants[y]);
			var pdhtml ='<img src="http://business.intuit.com/boorah/s/images/orange-tr.png" width=120 height=3><br>' +mapcontents[y];
			pdmarker.setDetailWinHTML(pdhtml);
			pdmarker.setHoverImage("http://business.intuit.com/boorah/s/images/dd-start.png");
			GEvent.addListener(pdmarker, "mouseover", function() {
			}); 
			GEvent.addListener(pdmarker, "mouseout", function() {
			});
			map.addOverlay(pdmarker);	
			
			if (maprest_id==testrestid) {
				topMarker=pdmarker;
				//pdmarker.topMarkerZIndex();
			}
			pdmarker=null;
		}
		if(mappointcount > 0){
			//alert('Setting Center');
			map.setZoom(map.getBoundsZoomLevel(bounds));	
			map.setCenter(bounds.getCenter());
		}
		origCenter = bounds.getCenter();
		origNE = bounds.getNorthEast();
		//setTimeout("toggleListMapIconsVisibility('show')",1);
	}
}

function highlightMapMarker(rid){
	if(!mappointcount) return;
	for (var i = 0; i < mappointcount; i++){
		var marker=map.getNthMarker(i+1);
		if(marker.getId()==rid){
			marker.setImage("http://business.intuit.com/boorah/s/images/dd-start.png"); // change graphic
			marker.topMarkerZIndex(); // bring marker to top
			break;
		}
	}
		
}

function unhighlightMapMarker(rid){
	if(!mappointcount) return;
	for (var i = 0; i < mappointcount; i++){
		var marker=map.getNthMarker(i+1);
		if(marker.getId()==rid){
			marker.restoreImage();
			marker.restoreMarkerZIndex();
			break;
		}
	}
		
}

var divdirections = document.getElementById("dcontainer");
var divURLSubmitTable = document.getElementById("urlresponsetable");
var sc20div = document.getElementById("sc20");
var addedrow=0;
var textcell;
var printtext;
var sURL = unescape(window.location.pathname);

var handleSuccess = function(o){
	if(addedrow ==0) {
		var tbl = document.getElementById("directionstable");
   		var lastRow = tbl.rows.length;
   		var row = tbl.insertRow(lastRow);
  	 	var cell = row.insertCell(0);
   		cell.colSpan=3;
   		textcell = cell;
   		addedrow=1;
   	}else {
   	}

    var link;
	if(o.responseText !== undefined){
                var text = o.responseText.replace(/MILE/g," Mile<p>");
                text = text.replace(/;/g,"--");
                var mtext = "<HR><P>";
                mtext = mtext+"<u>Driving Directions (Shortest Distance)</u><br>";
                mtext = mtext+text;
                textcell.innerHTML = mtext;
                var from = document.directionsform.fromtext.value;
                var to = document.directionsform.totext.value;
                var rid = document.directionsform.restaurant_identifier.value;
                var url = "printDetails.jsp?rid="+rid+"&dir=1&sum=1&directions=def&to="+to.replace(/ /g,"%20")+"&from="+from.replace(/ /g,"%20").replace(/&/g,"%26");
                var innerhtml ="<p><center><a href=\""+url+"\" target=\"printWindow\"><img src=\"images/printer-friendly.jpg\"><br>Printer Friendly</a></center>";
                document.getElementById("printdiv").innerHTML = innerhtml;

        }else {
                textcell.innerHTML = "AJAX error in driving directions calculation";
        }
       $('directionsmessage').innerHTML=''; 

}

var handleFailure = function(o){
//alert("failure callback here");
	if(o.responseText !== undefined){
		divdirections.innerHTML = "<li>Transaction id: " + o.tId + "</li>";
		divdirections.innerHTML += "<li>HTTP status: " + o.status + "</li>";
		divdirections.innerHTML += "<li>Status code message: " + o.statusText + "</li>";
	}
}

var callback =
{
  
  success:handleSuccess,
  failure:handleFailure,
  argument: { foo:"foo", bar:"bar" }
};

var handleURLSubmitFailure = function(o){
		document.getElementById("failureResp").style.display="";
		document.getElementById("SuccessResp").style.display="none";
		document.getElementById("inputErrorResp").style.display="none";
		document.getElementById("LoginFailureURLSubmit").style.display="none";
}
var handleURLSubmitSuccess = function(o){
	
	document.getElementById("failureResp").style.display="none";
	document.getElementById("SuccessResp").style.display="";
	document.getElementById("inputErrorResp").style.display="none";
	document.getElementById("LoginFailureURLSubmit").style.display="none";
	document.urlsubmitform.urllink.value="";
	
}
var urlSubmitcallback =
{
  
  success:handleURLSubmitSuccess,
  failure:handleURLSubmitFailure,
  argument: { foo:"foo", bar:"bar" }
};
var statusUpdateFailure = function(o){
	document.getElementById("failureStatusResp").style.display="";
	document.getElementById("SuccessStatusResp").style.display="none";
	document.getElementById("inputErrorStatusResp").style.display="none";
	document.getElementById("NotLoggedStatusResp").style.display="none";
	
}
var statusUpdateSuccess = function(o){
	document.getElementById("failureStatusResp").style.display="none";
	document.getElementById("SuccessStatusResp").style.display="";
	document.getElementById("inputErrorStatusResp").style.display="none";
	document.getElementById("NotLoggedStatusResp").style.display="none";
	setTimeout( "refreshRestaurant()", 3*1000 );
}
var closedCallback =
{
  
  success:statusUpdateSuccess,
  failure:statusUpdateFailure,
  argument: { foo:"foo", bar:"bar" }
};
var cuisineCallback =
{
  
  success:statusUpdateSuccess,
  failure:statusUpdateFailure,
  argument: { foo:"foo", bar:"bar" }
};

function refreshRestaurant() {
	//window.location.href = sURL;
	window.location.href = document.aform.refreshURL.value;
}
function showDirectionsInNewWindow(){
	var from=$('fromtext').value;	
	var to=$('totext').value;	
	if(from==''){
		alert('Please enter start address');
		$('fromtext').focus();
		return false;
	}
	if(to==''){
		alert('Please enter destination address');
		$('totext').focus();
		return false;
	}
	var url='http://maps.google.com/maps?f=d&hl=en&geocode=&saddr='+escape(from)+'&daddr='+escape(to);
	window.open(url,'_blank');
}
function showHopStopDirectionsInNewWindow(s,z){
	var url='http://www.hopstop.com/route?zip2='+z+'&address2='+escape(s);
	window.open(url,'_blank');
}
function makerRequest(){
	var from = document.directionsform.fromtext.value;
	var to = document.directionsform.totext.value;
	if (from==null || to==null || from.length < 5 || to.length < 5 ) {
		alert("Please provide valid source & destination inputs");
		return false;
	}
	$('directionsmessage').innerHTML='Calculating route.  Please wait..<br/><img src="'+_baseUri+'images/ajax-loader.gif"/>';
	var fromnosp = from.replace(/ /g,"%20");
	var tonosp = to.replace(/ /g,"%20");
	var sUrl = _baseUri+"GetDirectionsServlet?src="+fromnosp+"&dst="+tonosp;
	var myAjax = new Ajax.Request(
			sUrl, 
			{
				method: 'get', 
				onComplete: handleSuccess
			});
	 return true;
}

function updateClosed() {
	var restid = updateinformation_restaurant_id;
	var loggedin = document.globaluserform.loggedinuser.value;
	var closedval = document.updateinformationform.restaurantclosed.value;
	var closedURL = "CustomerClosedRestaurantServlet?user="+loggedin+"&rid="+restid+"&status="+closedval;
	var req1 = YAHOO.util.Connect.asyncRequest('POST', closedURL, closedCallback);
	setTimeout("YAHOO.util.Connect.abort(cObj)",10000); 
	var urlcallStatus = YAHOO.util.Connect.isCallInProgress(req1); 
	return true;
}

function updateCuisine() {
	var restid = updateinformation_restaurant_id;
	var loggedin = document.globaluserform.loggedinuser.value;
	var cuisineval = document.updateinformationform.customerupdatedcuisine.value;
	if (cuisineval==0) return false;
	var cuisineURL = "CustomerUpdatedCuisineServlet?user="+loggedin+"&rid="+restid+"&cuisine="+cuisineval;
	var req = YAHOO.util.Connect.asyncRequest('POST', cuisineURL, cuisineCallback);
	setTimeout("YAHOO.util.Connect.abort(cObj)",10000); 
	var urlcallStatus = YAHOO.util.Connect.isCallInProgress(req);  
	return true;
}
function markDelete(id) {
	if (typeof cuisine_id[id]=='undefined') {
		cuisine_id[id]=id;
	}else if (cuisine_id[id]==id) {
		cuisine_id.splice(id,1,"");
	}else if (cuisine_id[id]=="no") {
		cuisine_id[id]=id;
	}
}

function submitURL(restid,user){
	document.getElementById("failureResp").style.display="none";
	document.getElementById("SuccessResp").style.display="none";
	document.getElementById("inputErrorResp").style.display="none";
	document.getElementById("LoginFailureURLSubmit").style.display="none";
	if (user=='') {
		//document.getElementById("LoginFailureURLSubmit").style.display="";
		//return false;
		user='anonymous';
	}
	var url = document.urlsubmitform.urllink.value;
	
	if (url==null || (url.indexOf("HTTP://")<0 && url.indexOf("http://")<0) || url.length < 10 ) {
		document.getElementById("inputErrorResp").style.display="";
		return false;
	}
	var urlnosp = url.replace(/ /g,"%20").replace(/&/g,"%26");
	var loggedin = document.globaluserform.loggedinuser.value;
	var urlUrl = _baseUri+"CustomerSubmitReviewURLServlet?url="+urlnosp+"&user="+loggedin+"&rid="+restid;
	
	var myAjax = new Ajax.Request(
			urlUrl, 
			{
				method: 'get', 
				onComplete: handleURLSubmitSuccess
			});
	 return true;
}
var dummy = function(o) {
	//nothing
}
var dummyCallback =
{
  
  success:dummy,
  failure:dummy,
  argument: { foo:"foo", bar:"bar" }
};

function initiateCaching() {
	var url;
	var count_needed=12;
	//YAHOO.util.Connect.asyncRequest('GET',googleMapImageIcons[26],dummy);
	var myAjax = new Ajax.Request(
			googleMapImageIcons[26], 
			{
				method: 'get', 
				onComplete: dummy
			});
	for (var s=0;s<count_needed;s++) {
		myAjax = new Ajax.Request(
			googleMapImageIcons[s], 
			{
				method: 'get', 
				onComplete: dummy
			});
		//YAHOO.util.Connect.asyncRequest('GET',googleMapImageIcons[s],dummyCallback);
	}
	
}

var letters = new Array ('A','B','C','D','E','F','G','H','I','J');

function generateRandomImageURL() {
		googleMapImageIcons = new Array(27);
		for (var s=1; s <= 10;s++) {
			//var letter = String.fromCharCode("A".charCodeAt(0) + s);
			//imgurl = "http://business.intuit.com/boorah/static/i/gmap/iconr" + s + ".png"; - number icons
			imgurl = "http://business.intuit.com/boorah/s/images/marker" + letters[s-1] + ".png";
			googleMapImageIcons[s-1]=imgurl;
		}
		googleMapImageIcons[26]= "http://business.intuit.com/boorah/s/images/marker-red.png";
		//initiateCaching();

}
function invokeMapHelper() {
	//alert('invokeMapHelper');
	var ran_number= Math.floor(Math.random()*10000);
	var urlsr;
	generateRandomImageURL();
	if (startpoint==1 && overrideStart=='false'){
		urlsr = _baseUri+'mapHelper.jsp?rand='+ran_number; // no need to specify. it may override the session variable
	}else {
		urlsr = _baseUri+'mapHelper.jsp?start='+startpoint+'&rand='+ran_number;
	}
	/**var mapcoordreq = YAHOO.util.Connect.asyncRequest('GET', urlsr, mapHlpCallback);
	setTimeout("YAHOO.util.Connect.abort(cObj)",100000); 
	var showreviewstatus = YAHOO.util.Connect.isCallInProgress(mapcoordreq); */
	
	var myAjax = new Ajax.Request(
			urlsr, 
			{
				method: 'get', 
				onComplete: mapHelperSuccess
			});
}
function displayMapPoint(restlat, restlong, resttt, rcontent, inrestId) {
	//alert("In displayMapPoint");
	googleMapImageIcons = new Array(1);
	googleMapImageIcons[0]= "http://business.intuit.com/boorah/s/images/marker-red.png";
	setGPointArraySize(1);
	addGPoint(0,restlat,restlong,resttt,rcontent,inrestId);
	renderMapCoordinates('','');
}

var mapHelperSuccess = function(o) {
	//alert('mapHelperSuccess');
	refreshMapCoordinates(o.responseText);
}
var mapHelperFailure = function(o) {
}
var mapHlpCallback =
{  
  success:mapHelperSuccess,
  failure:mapHelperFailure,
  argument: { foo:"foo", bar:"bar" }
};
var showSurroundingListingsSuccess = function(o){
	//alert('showSurroundingListingsSuccess');
	document.getElementById("restaurantlist").innerHTML = o.responseText;
}
function showReviewsR(start) {
		var rand = Math.floor(Math.random()*78000);
		var urlsr = _baseUri+'showReviews.jsp?mode=relevance&start='+start+"&rand="+rand;
		var showreviewreq = YAHOO.util.Connect.asyncRequest('GET', urlsr, showReviewRCallback);
		setTimeout("YAHOO.util.Connect.abort(cObj)",100000); 
		var showreviewstatus = YAHOO.util.Connect.isCallInProgress(showreviewreq);  
}
function showReviewsD(start) {
		var rand = Math.floor(Math.random()*72000);
		var urlsr = _baseUri+'showReviews.jsp?mode=date&start='+start+"&rand="+rand;
		var showreviewreq = YAHOO.util.Connect.asyncRequest('GET', urlsr, showReviewDCallback);
		setTimeout("YAHOO.util.Connect.abort(cObj)",100000); 
		var showreviewstatus = YAHOO.util.Connect.isCallInProgress(showreviewreq);  
}
function showListings(start) {
		var rand = Math.floor(Math.random()*73000);
		var urlsr = _baseUri+'showListNew.jsp?start='+start+"&rand="+rand;
		updateInnerHTMLAndInitThickBox(urlsr,'restaurantlist');
		startpoint=start; 
		overrideStart='false';
		if(mapShown){
			cleanMapMarkers();
			invokeMapHelper();
		}
		return false;
}
function showSurroundingListings(start) {
		var rand = Math.floor(Math.random()*73000);
		var urlsr = _baseUri+'showListNew.jsp?start='+start+"&mapMovementListing=1&rand="+rand;
		updateInnerHTMLAndInitThickBox(urlsr,'restaurantlist');
		startpoint=start; 
		overrideStart='false';
		
}
function showListingsRate(order,sm) {
		overrideStart='true';
		startpoint=1;
		var rand = Math.floor(Math.random()*74000);
		var urlsr = _baseUri+'showListNew.jsp?start=1&usersort=rating&sortorder='+order+"&mapMovementListing="+sm+"&rand="+rand;
		updateInnerHTMLAndInitThickBox(urlsr,'restaurantlist');
		
}
function showListingsReviews(order,sm) {
		overrideStart='true';
		startpoint=1;
		var rand = Math.floor(Math.random()*75000);
		var urlsr = _baseUri+'showListNew.jsp?start=1&usersort=reviews&sortorder='+order+"&mapMovementListing="+sm+"&rand="+rand;
		updateInnerHTMLAndInitThickBox(urlsr,'restaurantlist');
		
}
function showListingsDist(order,sm) {
		overrideStart='true';
		startpoint=1;
		var rand = Math.floor(Math.random()*76000);
		var urlsr = _baseUri+'showListNew.jsp?start=1&usersort=distance&sortorder='+order+"&mapMovementListing="+sm+"&rand="+rand;
		updateInnerHTMLAndInitThickBox(urlsr,'restaurantlist');		
}
function showListingsAlpha(order,sm) {
		overrideStart='true';
		startpoint=1;
		var rand = Math.floor(Math.random()*77000);
		var urlsr = _baseUri+'showListNew.jsp?start=1&usersort=alpha&sortorder='+order+"&mapMovementListing="+sm+"&rand="+rand;
		updateInnerHTMLAndInitThickBox(urlsr,'restaurantlist');
	}
function showListingsCuisine(order,sm) {
		overrideStart='true';
		startpoint=1;
		var rand = Math.floor(Math.random()*79000);
		var urlsr = _baseUri+'showListNew.jsp?start=1&usersort=cuisine&sortorder='+order+"&mapMovementListing="+sm+"&rand="+rand;
		updateInnerHTMLAndInitThickBox(urlsr,'restaurantlist');
}

function renderSurroundingRestaurants(swlat,swlng,nelat,nelng,zl){
	//cleanSurroundingMarkers();
	//alert('renderSurroundingRestaurants');
	cleanMapMarkers();
	var rand = Math.floor(Math.random()*67000);
	var url = _baseUri+'mapHelper2.jsp?minx='+swlat+'&miny='+swlng+'&maxx='+nelat+'&maxy='+nelng+'&zl='+zl+'&rand='+rand;
	/**var mh2 = YAHOO.util.Connect.asyncRequest('GET', url, surroundingMapCallback);
	setTimeout("YAHOO.util.Connect.abort(cObj)",100000); 
	var status = YAHOO.util.Connect.isCallInProgress(mh2);*/
	var myAjax = new Ajax.Request(
			url, 
			{
				method: 'get', 
				onComplete: showSurroundingMap
			});
	
}
var showSurroundingMap = function(o) {
	generateRandomImageURL();
	showSurroundingListings(1);
	refreshMapCoordinates(o.responseText);
	//displaySurroundingMarkers(o.responseText);
}

function updateInnerHTMLAndInitThickBox(url,divtag){
var myAjax = new Ajax.Request(
			url, 
			{
				method: 'get', 
				onComplete: handleListingUpdate
			});
	 return true;
}

var handleListingUpdate = function(o){
  $('restaurantlist').innerHTML=o.responseText;
  tb_init('a.thickbox');
}
function openWindow(name,url){
window.open(url,name);
}

var originalFirstChild;
var pendingT;

function createTitle(which, string, x, y) {
	createTitleDelay(which,string,x,y,0);
}

function createTitleDelay(which, string, x, y, delay) {
  if (typeof(originalFirstChild) == 'undefined') {
    originalFirstChild = document.body.firstChild;
  }
  x = document.all ? (event.clientX + document.body.scrollLeft) : x;
  y = document.all ? (event.clientY + document.body.scrollTop) : y;
  element = document.createElement('div');
  element.style.position = 'absolute';
  element.style.zIndex = 1000;
  element.style.visibility = 'hidden';
  excessWidth = 0;
  if (document.all) {
    excessWidth = 50;
  }
  excessHeight = 20;

  element.innerHTML = '<div class="p1"><table width="300" cellspacing="0" cellpadding="0" border="0"><tr><td><table width="100%"><tr><td><span class="p2">' + unescape(string) + '</span></td></tr></table></td></tr></table></div>';

  renderedElement = document.body.insertBefore(element, document.body.firstChild);
  renderedWidth = renderedElement.offsetWidth;
  renderedHeight = renderedElement.offsetHeight;

  overFlowX = x + renderedWidth + excessWidth - document.body.offsetWidth;
  x = overFlowX > 0 ? x - overFlowX : x;

  overFlowY = y + renderedHeight + excessHeight - window.innerHeight - window.pageYOffset;
  y = overFlowY > 0 ? y - overFlowY : y;

  renderedElement.style.top = (y + 15) + 'px';
  renderedElement.style.left = (x + 15) + 'px';

  if (pendingT) {
    clearTimeout(pendingT);
  }
  pendingT=setTimeout("renderedElement.style.visibility = 'visible'", delay);
}

function destroyTitle() {
  if (document.body.firstChild != originalFirstChild) {
    document.body.removeChild(document.body.firstChild);
    if (pendingT) {
      clearTimeout(pendingT);
    }
  }
}

function displayMapPointForPic(lat, long) {
	var picMap=new GMap2(document.getElementById("mapContainerPic"));
	picMap.addControl(new GSmallMapControl());
	if (GBrowserIsCompatible()) {
		picMap.setCenter(new GLatLng(lat,long), 13);
		var icon = new GIcon(G_DEFAULT_ICON);
		icon.image='http://business.intuit.com/boorah/s/images/markers/marker.png';
		var markerOptions = { icon:icon, title:"Picture was taken here"};
		var point = new GLatLng(lat,long);
		var marker = new GMarker(point,markerOptions);
		picMap.addOverlay(marker);
	}
	
}
