		    var side_bar_html = "";
			var side_bar_html_cust= "";
            // arrays to hold copies of the markers and html used by the side_bar
            // because the function closure trick doesnt work there
            var gmarkers = [];
            var k = 0;
			var map;
			var g;
			
 //   var map;
    var gdir;
    var geocoder = null;
    var addressMarker;

			var control_center=0;
			////var propMark;
			//var propImg;
			//var propZip;
			//var propDesc;
			//var price;
			//var baseIcon;
			//var building_no_listings,building_yes_listings;
			//var woodbuilding_no_listings,woodbuilding_yes_listings;
			//var propertyID;
			//var propLat;
			//var propLng;
			var preadd="";
			var curradd="";
			var propListingURL,propImageURL,propLevel;
			var i;
			var r;
			var m;
			//var imgMarker1 = new Array();
 		    var geocoder = null;
			var notfound = "";
			var tempAdd = "";			
			var side_bar1_html="";			
			var gmarkersRest = [];
			var previousRest=0;
		    var j = 0;
//			var  geocoder = new GClientGeocoder();
			function load()
			{			
				//document.getElementById("map").style.display="block";
				if (GBrowserIsCompatible())
				{
					map = new GMap2(document.getElementById("map"));
					
					map.addControl(new GLargeMapControl());
					map.addControl(new GMapTypeControl());
					map.addControl(new GScaleControl()) ;
									
					// bind a search control to the map, suppress result list
                    //map.addControl(new google.maps.LocalSearch(), new GControlPosition(G_ANCHOR_BOTTOM_RIGHT, new GSize(10,20)));
                    // bind a search control to the map, suppress result list
                    map.addControl(new google.maps.LocalSearch(
                    {
                        resultList : document.getElementById("results")
                    }), 
                    new GControlPosition(G_ANCHOR_BOTTOM_LEFT, new GSize(0,-30)));
				    GSearch.setOnLoadCallback(load);
				    
				    map.setCenter(new GLatLng( 40.31400,-74.50890),13);
					geocoder = new GClientGeocoder();
                        
					showAll(true);
					//
				}
		    }
			function showAll(clear)
			{
				if(clear==true)
					map.clearOverlays();
				i=0;
				r=0;
				document.getElementById("cust").innerHTML ="Loading...";
				showAddressTimeout();
			}
			function showAddressTimeout()
			{
				//g = new GClientGeocoder();
				//alert("hello");
				//alert(i);
				showAddress(i);			
					if(i<(address.length-1))
					{     
						//alert(i);
					  
							setTimeout("showAddressTimeout()",400);
							//showAddressRestTimeout();	
							i++;
					}	
					// document.getElementById("side_bar").innerHTML =side_bar_html_cust+side_bar_html;
			}
//			function showAddressRestTimeout()
//			{

//				y = new GClientGeocoder();
//				showAddressRest(i,r);
//				if(r<((addressRest[i].length)-1))
//					{
//						r++;
//						setTimeout("showAddressRestTimeout()",4);
//						//r=0;
//					}
//			}
		function showAdd(address1,locName,varMapIcon,varMapWeb,varMapZip,varMapPhone1,varMapPhone2,varMapFax,varCityState,varMapToolTip)
		{
		var addressdisplay="";
		var tojavascript="";
		var fromjavascript="";
		       //alert(address1);
		       if (geocoder)
                {
			
                addressdisplay=address1;
                    address1=address1+" " + varCityState
						tojavascript="javascript:showDir('to','"+address1+"');";
			fromjavascript="javascript:showDir('from','"+address1+"');";
                    geocoder.getLatLng(address1,function(point)
                    {
                    //alert(point+"point");
                        if (!point)
                        {
                           // alert(address1 + " not found");
                        }
                        else
                        {
                            //alert(k +"Hello");
                            var faxRowStatus="";
                            var webRowStatus="";
                            var phoneall="";
                            //if(control_center==0){
                            map.setCenter(point,11);
                            //control_center=1;
                           // }
                            //var marker = new GMarker(point);
                            //map.addOverlay(marker);
                            if(varMapPhone1!="")
                            {
                            phoneall +='<tr><td align="left">Phone:'+varMapPhone1+'</td></tr>';
                            }
                            var strPhone2="";
                            if(varMapPhone2!="")
                            {
                            phoneall +='<tr><td align="left">Phone:'+varMapPhone1+'</td></tr>';
                                strPhone2=varMapPhone2;
                                phoneRowStatus="block";                              
                            }
                            else
                            {
                                phoneRowStatus="none";                              
                            }
                            if(varMapFax !="")
                            {
                                faxRowStatus="block";
                            }
                            else
                            {
                                faxRowStatus="none";
                            }  
                            
                            if(varMapWeb!="")
                            {
                                webRowStatus="block";
                            }
                            else
                            {
                                webRowStatus="none";
                            }                                                   
						    var marker = new GMarker(point,{ icon: getTheatreIcon(varMapIcon) });
						    
                            //marker.openInfoWindowHtml(address);
                            GEvent.addListener(marker, "click", function() {marker.openInfoWindowHtml('<table class="bluesmalltetxt"><tr><td style="font-weight:bold;" align="left">'+locName+'</td></tr><tr><td align="left">'+addressdisplay+'</td></tr><td align="left">'+varCityState+'</td></tr><tr><td align="left"></td></tr>'+phoneall+'<tr style="display:'+faxRowStatus+';"><td align="left">Fax:'+varMapFax+'</td></tr><tr style="display:'+webRowStatus+';"><td align="left"><a href="'+varMapWeb+'" target="_blank">Click Here for Website</a></td></tr><tr><td><a href="'+tojavascript+'" >To Here</a> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="'+fromjavascript+'" >From Here</a></td></tr></table>')});
                            if(linkFHName!="")
						    {				    
						        if(linkFHName==locName)
						        {
						          marker.openInfoWindowHtml(address);
						        }					        
						    }
                            map.addOverlay(marker);                           
						    gmarkers[k] = marker;
                         // add a line to the side_bar html
						 curradd=locName;
						 if(preadd!==curradd){
							 if(varMapToolTip=="")
							 {
								 varMapToolTip="Our Location";
							side_bar_html_cust +='<span class="bluesmalltetxt">'+varMapToolTip+':&nbsp;</span><a class="bluesmalltetxt" href="javascript:myclick(' + k + ')">' + locName + '</a><br>';
							 }
							 else{
                            side_bar_html +='<span class="bluesmalltetxt">'+varMapToolTip+':&nbsp;</span><a class="bluesmalltetxt" href="javascript:myclick(' + k + ')">' + locName + '</a><br>';
							 }
                            k++;
							preadd=locName;
						 }
							/// added by kailash for time delay//
                            //i++;
							/////
							  document.getElementById("cust").innerHTML = side_bar_html_cust;	
                            document.getElementById("noncust").innerHTML = side_bar_html;	
                          
                            if(mapZoomLevel!="" )
                            map.setZoom(Number(mapZoomLevel));	                         
                        }
                    }
                );
            }
				 // return true;
			}
			function showAddress(pAddress)
			{
			 //alert("Welcome");
             //alert(pAddress);
				//addCount += 1;
				var ret = address[pAddress];
				var varCityState=mapCityState[pAddress];
				
				var locName=MapName[pAddress];
				var varMapIcon=mapIcon[pAddress];
				var varMapWeb=mapWeb[pAddress];
				var varMapZip=mapZip[pAddress];
				var varMapPhone1=mapPhone1[pAddress];
				var varMapPhone2=mapPhone2[pAddress];
				var varMapFax=mapFax[pAddress];
				var varMapToolTip=mapToolTip[pAddress];
				showAdd(ret,locName,varMapIcon,varMapWeb,varMapZip,varMapPhone1,varMapPhone2,varMapFax,varCityState,varMapToolTip);
				
            }	
//		 	function showAddressRest(i,rAddress)
//			 {

//				addCount1 += 1;
//				var ret = addressRest[i][0]+", "+addressRest[i][1]+", US, "+addressRest[i][2];
//				showAddRest(ret,addressRest[i][3],i);

//            }
//			function showAddRest(address1,name,pAddress)
//			 {
//				price="";
//				price = name;

//				geocoder.getLatLng
//				  (
//				    address1,
//				    function(point)
//					{

//					  if (!point)
//					  {
//				       // alert(address1+name + " not fouhhhhhnd");
//				      } else
//					  {
//							  var marker = new GMarker(point,{ icon: getRstIcon() });
//							 GEvent.addListener(marker, "click", function() {marker.openInfoWindowHtml('<table width="350px" height="85px" border="0" cellpadding="0" cellspacing="0"><tr><td width="130" rowspan="5" align="left" valign="top"><img src="'+rest_images_path+addressRest[pAddress][5]+'" width="100" height="100"><br><div class="mainadd">Address</div><div class="address11">'+addressRest[pAddress][0]+'<br>'+addressRest[pAddress][1]+" "+addressRest[pAddress][2]+'</div></td><td width="5" rowspan="5">&nbsp;&nbsp;&nbsp;</td><td width="225" align="left" valign="top" ><div style="font-family:Arial;font-weight:bold;font-size:13px;color:#000000;text-align:middle;">'+addressRest[pAddress][3]+'</div><br><div class="restdesc">'+addressRest[pAddress][6]+'</div></td></tr><tr><td height="14" colspan="2" align="right" valign="bottom"><div align="right"></td></tr></table>');
//				             });
//				             map.addOverlay(marker);
//					   }
//				    }
//				  );

//				 // return true;
//			}
//			//GEtting Icons//
			function getTheatreIcon(mapIcon) {
                var icon = new GIcon();
                icon.image = "http://www.e-mapsmith.com/icon/"+mapIcon;
                icon.shadowSize = new GSize(22, 20);
                icon.iconAnchor = new GPoint(6, 20);
                icon.infoWindowAnchor = new GPoint(5, 1);
				return icon;
            }
//            function getRstIcon() {
//              var icon = new GIcon();
//                icon.image = theatre_images_path+"restaurant.gif";
//                icon.shadowSize = new GSize(22, 20);
//                icon.iconAnchor = new GPoint(6, 20);
//                icon.infoWindowAnchor = new GPoint(5, 1);
//				return icon;
//            }
			 function myclickNew(m)
			 {
        	    GEvent.trigger(gmarkersRest[m], "click");
          	 }
          	 
       // A function to create the marker and set up the event window
      function createMarker(point,name,html) {
        var marker = new GMarker(point);
        GEvent.addListener(marker, "click", function() {
          marker.openInfoWindowHtml(html);
        });
        // save the info we need to use later for the side_bar
        gmarkers[i] = marker;
        // add a line to the side_bar html
        side_bar_html += '<a href="javascript:myclick(' + i + ')">' + name + '</a><br>';
        i++;
        alert(side_bar_html);
        return marker;
      }
      // This function picks up the click and opens the corresponding info window
      function myclick(k) {
        GEvent.trigger(gmarkers[k], "click");
      }

	  function showDir(startpt,add){
		  var fromadd="";
		  var toadd="";
		  if(startpt=="to")toadd=add;
		  if(startpt=="from")fromadd=add;
//alert("testing"+ add);
gdir = new GDirections(map, document.getElementById("directions"));
        GEvent.addListener(gdir, "load", onGDirectionsLoad);
        GEvent.addListener(gdir, "error", handleErrors);
document.getElementById('directions_src').innerHTML='<table><tr><th align="right" class="bluesmalltetxt">From:&nbsp;</th><td><input type="text" size="25" id="fromAddress" name="from"  class="textboxlargegetdirection"   value="'+fromadd+'"/></td></tr><tr><th align="right" class="bluesmalltetxt">&nbsp;&nbsp;To:&nbsp;</th><td align="right"><input type="text" size="25" id="toAddress" name="to"   value="'+toadd+'" class="textboxlargegetdirection" /></td></tr><tr><th></th><td colspan="3"><input name="submit" type="button" value="Get Directions!" onClick="setDirections_custom();" class="bluesmalltetxt" /><input name="close" type="button" value="Close" onClick="close_custom();"  class="bluesmalltetxt"/></td></tr></table>';
        //setDirections("San Francisco", "Mountain View", "en_US");

	  }
	  function close_custom(){
document.getElementById('directions_src').innerHTML="";
document.getElementById('directions').innerHTML="";
	  }
	  function setDirections_custom(){
setDirections(document.getElementById('fromAddress').value, document.getElementById('toAddress').value, 'en_US');
	  }
	  function setDirections(fromAddress, toAddress, locale) {
      gdir.load("from: " + fromAddress + " to: " + toAddress,
                { "locale": locale });
    }
function onGDirectionsLoad(){ 
      // Use this function to access information about the latest load()
      // results.

      // e.g.
      // document.getElementById("getStatus").innerHTML = gdir.getStatus().code;
	  // and yada yada yada...
	}
    function handleErrors(){
	   if (gdir.getStatus().code == G_GEO_UNKNOWN_ADDRESS)
	     alert("No corresponding geographic location could be found for one of the specified addresses. This may be due to the fact that the address is relatively new, or it may be incorrect.\nError code: " + gdir.getStatus().code);
	   else if (gdir.getStatus().code == G_GEO_SERVER_ERROR)
	     alert("A geocoding or directions request could not be successfully processed, yet the exact reason for the failure is not known.\n Error code: " + gdir.getStatus().code);
	   
	   else if (gdir.getStatus().code == G_GEO_MISSING_QUERY)
	     alert("The HTTP q parameter was either missing or had no value. For geocoder requests, this means that an empty address was specified as input. For directions requests, this means that no query was specified in the input.\n Error code: " + gdir.getStatus().code);

	//   else if (gdir.getStatus().code == G_UNAVAILABLE_ADDRESS)  <--- Doc bug... this is either not defined, or Doc is wrong
	//     alert("The geocode for the given address or the route for the given directions query cannot be returned due to legal or contractual reasons.\n Error code: " + gdir.getStatus().code);
	     
	   else if (gdir.getStatus().code == G_GEO_BAD_KEY)
	     alert("The given key is either invalid or does not match the domain for which it was given. \n Error code: " + gdir.getStatus().code);

	   else if (gdir.getStatus().code == G_GEO_BAD_REQUEST)
	     alert("A directions request could not be successfully parsed.\n Error code: " + gdir.getStatus().code);
	    
	   else alert("An unknown error occurred.");
	   
	}