<!--
//<![CDATA[	
	var catids = "";
	var accuracyToZoomLevel = [
		1,  // 0 - Unknown location
		5,  // 1 - Country
		6,  // 2 - Region (state, province, prefecture, etc.)
		8,  // 3 - Sub-region (county, municipality, etc.)
		11, // 4 - Town (city, village)
		13, // 5 - Post code (zip code)
		15, // 6 - Street
		16, // 7 - Intersection
		17 // 8 - Address
	];
	var map;
	var geocoder = null;
	var container = null;
	
	var tooltip;
	var clusterer;
	var currentzoom;
	var currlat;
	var currlng;
	var currentcenter;
	var dbClickFlag = false;
	var catFlag = false;
	var searchonmap = false;
	var showFlag = 'no';
	var result
	var dbPoint;
	var hMarker;
	var lastmarker;
	var sel_marker;
	var center_marker = null;
	var totalobjectJS = 0;
	var SET_FLAGE = 'N';
	var knownPoint = "";
		
	var locator = {
		vars:{
			gmarkers: [],
			mType : 0,
			centerPoint : false,
			minZoomLevel: 1,
			maxZoomLevel: 17
		},
		pars: {
			address: false,
			operation:'radiusSearch',
			lat:false,
			lon:false,
			radius:false
		},
		cords:{
			x:[],
			y:[]
		}	
	}

	var baseIcon;
	var newIcon;
	
	// Initialisation function
    function load() 
	{
		if (GBrowserIsCompatible()) 
		{
			container = $("map");

			//Default center point
			//locator.vars.centerPoint = new GLatLng(43.834526782236814, -37.265625);
			locator.vars.centerPoint = new GLatLng(20,1);
			baseIcon = null;
			baseIcon = new GIcon();
			baseIcon.iconSize = new GSize(16,31);
			baseIcon.shadowSize = new GSize(49.0, 32.0);
			baseIcon.iconAnchor = new GPoint(0, 29);
			baseIcon.infoWindowAnchor = new GPoint(5.0, 5.0);
			
			newIcon = null;
			newIcon = new GIcon();
			newIcon.iconSize = new GSize(28,61);
			newIcon.iconAnchor = new GPoint(0.0, 59.0);
			newIcon.infoWindowAnchor = new GPoint(16.0, 16.0);

			dbPoint = new GLatLng();

			map = new GMap2(container);
					
			currentzoom = Get_Cookie("mapzoom");
			currlat = Get_Cookie("mapcenterlat");
			currlng = Get_Cookie("mapcenterlng");
			
			
			var zoom;
			var center;
			zoom = locator.vars.minZoomLevel;
			center = locator.vars.centerPoint;

			map.setCenter(center, parseInt(zoom));
			geocoder = new GClientGeocoder();
			map.setMapType(map.getMapTypes()[locator.vars.mType]);
			map.addControl(new GLargeMapControl());
			map.addControl(new GScaleControl());
			map.addControl(new GOverviewMapControl());
			map.enableScrollWheelZoom();
							
			GEvent.addListener(map , "move", function() {
				setMapCookie();
			});

		GEvent.addListener(map, "zoomend", function(oldZoom, newZoom) {
				setMapCookie();
				if (center_marker != null)
				{
					var mapzoom = map.getZoom();
					map.setCenter(center_marker.getLatLng(),mapzoom);
				}
			});

			/*GEvent.addListener(map, "zoomend", function(oldZoom, newZoom) {
				setMapCookie();
				center_marker = null;
				searchonmap = true;
				catFlag = true;
				showFlag = 'no';
			
			if ($('countryid').selectedIndex != 0 )
			{
					var country = ($('countryid').value != "" ? $('countryid').options[$('countryid').selectedIndex].text: "");
					var city = ($('cityid').value != "" ? $('cityid').options[$('cityid').selectedIndex].text : "");
		
					var address = trim(country+ " " + city) ;
					//alert(address+'===rajesh');
					if (address != "")
					{
						var geocoder = new GClientGeocoder();
						if (geocoder) 
						{
							geocoder.getLatLng(address,
							  function(point) {
								if (!point) {
								  alert(ERR_WRONG_ADDRESS);
								  return false;
								} 
								else 
								{ 
									locator.pars.lat = point.lat();
									locator.pars.lon = point.lng();
									searchLocationsNear(point);
								}
						  }
						);
					  }
					}
					}else{
						searchLocationsNear("");
					}
				
				
				//resetSearchMenu();
				if (center_marker != null)
				{
					var mapzoom = map.getZoom();
					map.setCenter(center_marker.getLatLng(),mapzoom);
				}
			});*/


			GEvent.addListener(map, "dragend", function() {
			
				// Reset the Country-City listboxes
				SET_FLAGE='N';
				center_marker = null;
				resetSearchMenu();
				searchonmap = true;
				catFlag = true;
				showFlag = 'no';
				searchLocationsNear("");

			});

			GEvent.addListener(map, "dblclick", function(overlay, latlng) {
				dbClickFlag = true;
				dbPoint = latlng;
			});

			if ($('hidSearchMenuSubmit').value == 'Y')// If the index page is rendered via other pages using show button
			{
				showFlag = 'yes';
				searchLocations();
			}
			else if(DEFAULT_SEARCH == 1) // default search i.e. display random results for 1st time when GMap Loads
			{
				//defaultSearch();
			}
			else if (SEARCH_SESSION)
			{
			}
		}
		
		$('hidcountryname').value = "";
		$('hidcityname').value = "";
		
		resizePage();
	}
	// Function to set GMap type
	function mapType(map,i)
	{
		map.setMapType(G_DEFAULT_MAP_TYPES[i]);
		adjustMapButtons(map);
	}
	// Function to change Map button CSS
	function adjustMapButtons( map )
	{
		Element.removeClassName('cmap','text_orange');
		Element.removeClassName('csat','text_orange');
		Element.removeClassName('chybrid','text_orange');
		
		var type = map.getCurrentMapType().getName();
		if(type == 'Map')
		{
			Element.addClassName('cmap','text_orange');
		}
		else if(type == 'Satellite')
		{
			Element.addClassName('csat','text_orange');
		}
		else if(type == 'Hybrid')
		{
			Element.addClassName('chybrid','text_orange')
		}
	}

	// function to resize the map on window resize
	function resizePage() 
	{
		var oTable = $("outerTable");
		var veHeight = 100;
		var clHeight = oTable.clientHeight;
		
		if (clHeight < 500)
		{
			clHeight = 500;
		}
		$("map").style.height = clHeight - veHeight  + 'px';
		
		if (map) 
		{
			var center = map.getCenter();
			var zoom = map.getZoom();
			map.checkResize();
			map.setCenter(center,zoom);
		}
	}
	// Function to unload GMap
	function unload() 
	{	
		map = null;
		container = null;
		GUnload();
	}
	//Function to get active cities of the country onchange of the country select
	function searchCountryCity( objSelect)
	{
		var radius = ($('delieveryradius').selectedIndex != 0 ? $('delieveryradius').value : "");

		//Reset the search by map flag to false
		searchonmap = false;
		DEFAULT_SEARCH = 0;
		showFlag = 'no';
		SET_FLAGE = 'Y';
		//Reset the city list box
		$('cityid').selectedIndex = 0;
		if ($('hidcountryname'))
		{
			$('hidcountryname').value = "";
			$('hidcityname').value = "";
		}

		if (objSelect.selectedIndex != 0) 
		{
			
			var contryResult = objSelect.value.split("~");    
			var countryid = contryResult[0];
			var countrycode = contryResult[1]; 
			var countrycont = contryResult[2]; 
			var params = 'search=getAciveObjCityList&countryid='+ countryid;
			
			// If the current page is index page
			if ($('hidcountryid') && (typeof map != 'undefined'))
			{
				zoomtoCountryCity();
				clearMarkers();
				catFlag = true;
				searchLocations();
				
			}
			else
			{
				//If search is fired from other pages then simply update the result since Gmap is not available
				catFlag = true;
				searchUrl = '&searchtype=bymenusearch'+'&radius='+radius + '&search=address'+'&countryid='+countryid +'&show='+showFlag;
				locatorService( 'areasearch.php',searchUrl,showList);
			}
			
			getActiveCity(params);
		}
	}

	// Function to zoom the GMap
	function zoomtoCountryCity()
	{
		var address = "";
		var country = "";
		var city = "";
		var zoom = 3;
		var countryid = "";
		var cityid = "";
		var radius = ($('delieveryradius').selectedIndex != 0 ? $('delieveryradius').value : "");

		//Reset the search by map flag to false
		searchonmap = false;
		showFlag = 'no';
		DEFAULT_SEARCH = 0;
		clearMarkers();

		if ($('countryid').selectedIndex != 0) 
		{
			var contryResult = $('countryid').value.split("~");    
			countryid = contryResult[0]; 
			country = ($('countryid').value != "" ? $('countryid').options[$('countryid').selectedIndex].text: "");
			
			if ($('hidcountryname'))
			{
				$('hidcountryname').value = country;
			}
			zoom = 1;
		}
		if ( $('cityid').selectedIndex != 0 )
		{
			city = ($('cityid').value != "" ? $('cityid').options[$('cityid').selectedIndex].text: "");	
			cityid = $('cityid').value;
			zoom = 3;
			
			if (typeof map != 'undefined')
			{
				catFlag = true;
				searchLocations();
			}
			else
			{
				//If search is fired from other pages then simply update the result since Gmap is not available
				catFlag = true;
				searchUrl = '&searchtype=bymenusearch'+'&radius='+radius + '&search=address'+'&countryid='+countryid +'&cityid='+cityid +'&show='+showFlag;
				locatorService( 'areasearch.php',searchUrl,showList);
			}
			
			if ($('hidcountryname'))
			{
				$('hidcityname').value = city;
			}
		}
		
		// If the current page is index page
		if ($('hidcountryid') && (typeof map != 'undefined'))
		{		
			// Assign country & city values
			$('hidcountryid').value = countryid;
			$('hidcityid').value = cityid;

			address = trim(country +" "+ city);
			zoomTo(map,address,zoom);

		}
		else if ($('hidSearchMenuSubmit'))
		{
			// Assign search menu submit flag to y
			$('hidSearchMenuSubmit').value = 'Y';
		}
		dbClickFlag = false;
	}
	// Function to get active city list on selection of country
	function getActiveCity( params)
	{		
		var rand   = Math.random(9999);
		var url    = HOST+'/areasearch.php?ms='+rand ;
		var pars   = params;
		var userAjax = new Ajax.Request( url, {
				method: 'post', 
				parameters: pars, 
				onComplete: function( originalRequest )
				{	
					var response = originalRequest.responseXML;
					var doc = response.documentElement;
					var city = doc.getElementsByTagName('city');
					
					// Clear the city select 
					clearSelection ( $('cityid') );

					$('cityid').options[0] = new Option(LBL_SELECT_CITY+"...","");
						
					for (var i=0; i< city.length; i++)
					{
						var cityid = city[i].getElementsByTagName("cityid").item(0).firstChild.nodeValue;
						var languageid = city[i].getElementsByTagName("languageid").item(0).firstChild.nodeValue;
						var cityname = city[i].getElementsByTagName("name").item(0).firstChild.nodeValue;
						$('cityid').options[i+1] = new Option(cityname,cityid);
					}
				}
		} );
	}

	// Function to get active city list on selection of country
	function getActiveCountry( params)
	{		
		var rand   = Math.random(9999);
		var url    = HOST+'/areasearch.php?ms='+rand ;
		var pars   = params;
		var userAjax = new Ajax.Request( url, {
				method: 'post', 
				parameters: pars, 
				onComplete: function( originalRequest )
				{	
					var response = originalRequest.responseXML;
					var doc = response.documentElement;
					var country = doc.getElementsByTagName('country');
					
					// Clear the city select 
					clearSelection ( $('countryid') );
					clearSelection ( $('cityid') );
					$('delieveryradius').selectedIndex = 0;

					$('cityid').options[0] = new Option(LBL_SELECT_CITY+"...","");
					$('countryid').options[0] = new Option(LBL_SELECT_COUNTRY+"...","");
					
					for (var i=0; i< country.length; i++)
					{
						var countryid = country[i].getElementsByTagName("countryid").item(0).firstChild.nodeValue;
						var languageid = country[i].getElementsByTagName("languageid").item(0).firstChild.nodeValue;
						var countryname = country[i].getElementsByTagName("name").item(0).firstChild.nodeValue;
						$('countryid').options[i+1] = new Option(countryname,countryid);
					}
				}
		} );
	}

	//function to search locations on basis of delivery radius
	function searchInRadius()
	{
		//Reset the search by map flag to false
		searchonmap = false;
		DEFAULT_SEARCH = 0;
		showFlag = 'no';

		if ((($('countryid').selectedIndex != 0) || ($('cityid').selectedIndex != 0)) && (typeof map != 'undefined'))
		{
				clearMarkers();
				catFlag = true;
				searchLocations();
		}
		/*else
		{
			//If search is fired from other pages then simply update the result since Gmap is not available
			var radius = ($('delieveryradius').selectedIndex != 0 ? $('delieveryradius').value : "");
			var countryid = ($('countryid').selectedIndex != 0 ? $('countryid').value : "");
			var cityid = ($('cityid').selectedIndex != 0 ? $('cityid').value : "");

			catFlag = true;
			searchUrl = '&searchtype=bymenusearch'+'&radius='+radius + '&search=address'+'&countryid='+countryid +'&cityid='+cityid +'&show='+showFlag;
			locatorService( 'areasearch.php',searchUrl,showList);
		}*/
	}

	// Function to find locations
	function searchLocations() 
	{
		if ( $('hidclientobjectid') )
		{
			$('hidclientobjectid').value = "";
		}

		$('searchcount').update('0');
		var pars = "";
		
		if ($('frmSearch'))
		{			
			var arrChk = $('frmSearch').getInputs('checkbox', 'catobject[]');
			if (arrChk.length != 0)
			{
				arrChk.each(function(item,index){
				if(item.checked){
					pars = pars+ '~' + item.value;							
				}
				});
				pars = substr(pars,1,pars.length);
			}
		}

		var addpars = getAddFields();

		if( ($('countryid').selectedIndex == 0) && (pars == "" && addpars == "")  && !searchonmap && !catFlag && (DEFAULT_SEARCH != 1))
		{
			alert(ERR_SEL_COUNTRY_CAT);
			return;
		}
		if ($('countryid').selectedIndex != 0 )
		{
			var contryResult = $('countryid').value.split("~");    
			var countryid = contryResult[0]; 

			var countrycode = contryResult[1]; 
			var countrycont = contryResult[2]; 

			var country = ($('countryid').value != "" ? $('countryid').options[$('countryid').selectedIndex].text: "");
			var city = ($('cityid').value != "" ? $('cityid').options[$('cityid').selectedIndex].text : "");

			var address = trim(country+ " " + city) ;
			
			if (address == "")
			{
				return;
			}
			var geocoder = new GClientGeocoder();
			if (geocoder) 
			{
				geocoder.getLatLng(address,
				  function(point) {
					if (!point) {
					  alert(ERR_WRONG_ADDRESS);
					  return false;
					} 
					else 
					{ 
						locator.pars.lat = point.lat();
						locator.pars.lon = point.lng();
						
						searchLocationsNear(point);
					}
			  }
			);
		  }
		}
		else if ( $('countryid').selectedIndex == 0 && ( pars != "" || addpars != "" ))
		{
			searchLocationsNear('');
		}
		else if (searchonmap)
		{
			searchLocationsNear('');
		}
		else if (DEFAULT_SEARCH == 1)
		{
			
			searchLocationsNear('');
		}

		//}
	}

	function searchLocationsNear(point) 
	{
		var radius = ($('delieveryradius').selectedIndex != 0 ? $('delieveryradius').value : "");
		var contryResult = $('countryid').value.split("~");    
		var countryid = contryResult[0]; 
		var cityid = $('cityid').value;
		//var knownPoint = "";
		var pars = "";
		var searchUrl = "";
		var page = "";

		if ($("hidMapPage"))
		{
			page = $("hidMapPage").value;
		}	

		
		if (point != "")
		{
			map.panTo(point);
			knownPoint = '&known=' + point.toUrlValue();
		}
		else if ( dbClickFlag == true) // if double clicked
		{
			knownPoint = '&known=' + dbPoint.toUrlValue();
			radius = DEF_RADIUS;
		}
		
		if($('frmSearch'))
		{
			var arrChk = $('frmSearch').getInputs('checkbox', 'catobject[]');
			if (arrChk.length != 0)
			{
				arrChk.each(function(item,index){
				if(item.checked){
					pars = pars+ '~' + item.value;							
				}
				});
				pars = substr(pars,1,pars.length);
			}
		}			
		var addpars = getAddFields();

		/* Get additional fld ids*/
		if (addpars != "")
		{
			var arraddpars = addpars.split("#@#");
			var addparsids = arraddpars[0];
			pars = pars + "~" + addparsids;
			addpars = arraddpars[1];
		}


		var bounds = map.getBounds();
		var southWest = bounds.getSouthWest();
		var northEast = bounds.getNorthEast();
		var getVars = 'ne='+ northEast.toUrlValue() + '&sw=' + southWest.toUrlValue()+ knownPoint;
		//alert("1>>"+'ne='+ northEast.toUrlValue() + '&sw=' + southWest.toUrlValue());
		//alert("2>>"+'ne='+map.getLatLngBounds().getNorthEast()+ '&sw=' + map.getLatLngBounds().getSouthWest() );
		if (searchonmap){
			
			if(SET_FLAGE=='Y'){
				var getVars = 'ne=&sw='+ knownPoint;
			searchUrl = getVars +'&searchtype=bymenusearch'+'&radius='+radius + '&search=address'+'&countryid='+countryid +'&cityid='+cityid +'&pars='+pars+'&addpars='+encodeURIComponent(addpars)+'&show='+showFlag+'&page='+page;
			//alert(searchUrl);
			}else{
				//searchUrl = getVars + '&searchtype=bymapsearch' + '&search=address'+'&pars='+pars+'&addpars='+encodeURIComponent(addpars)+'&show='+showFlag+'&page='+page;
				searchUrl = getVars + '&searchtype=bymapsearch' + '&search=address'+'&pars='+pars+'&addpars='+encodeURIComponent(addpars)+'&show='+showFlag+'&page='+page;
			}
		}
		else if (dbClickFlag)
		{
			//searchUrl = getVars + '&searchtype=bymapsearch' + '&search=address'+'&pars='+pars+'&addpars='+encodeURIComponent(addpars)+'&show='+showFlag+'&page='+page;
			searchUrl = getVars + '&searchtype=bymapsearch' + '&search=address'+'&pars='+pars+'&addpars='+encodeURIComponent(addpars)+'&show='+showFlag+'&page='+page+'&countryid='+countryid;
		}
		else if (DEFAULT_SEARCH == 1)
		{
			var point = locator.vars.centerPoint;
			getVars = 'ne='+ northEast.toUrlValue() + '&sw=' + southWest.toUrlValue()+ '&known=' + point.toUrlValue();
			var searchUrl = getVars + '&search=defaultsearch'+'&show=yes'+'&page='+page;
		}
		else{
			var getVars = 'ne=&sw='+ knownPoint;
			
			searchUrl = getVars + '&searchtype=bymenusearch'+'&radius='+radius + '&search=address'+'&countryid='+countryid +'&cityid='+cityid +'&pars='+pars+'&addpars='+encodeURIComponent(addpars)+'&show='+showFlag+'&page='+page;
			//alert(searchUrl);
		}
		locatorService( 'areasearch.php',searchUrl,showList);
	}
	
	function locatorService( url,pars,callBack ) 
	{		
			/*if ($("loading"))
			{
				$("loading").show();
			}*/

			var ajax = new Ajax.Request(HOST+'/'+url, { 
				method: 'post', 
				parameters: encodeURI(pars), 
				onCreate: function(){
					t= setTimeout(function(){ 
					document.getElementById("loading_message").style.display = "block"; }, 2000 ); },
				onComplete: callBack
			});
	}
	// Default search diepslay 20 results when page first loads
	function defaultSearch()
	{
		var point = locator.vars.centerPoint;
		var bounds = map.getBounds();
		var southWest = bounds.getSouthWest();
		var northEast = bounds.getNorthEast();
		
		var getVars = 'ne='+ northEast.toUrlValue() + '&sw=' + southWest.toUrlValue()+ '&known=' + point.toUrlValue();
		
		var searchUrl = getVars + '&search=defaultsearch';

		locatorService( 'areasearch.php',searchUrl,showList);
	}
	// Show the results obtained on the map	
	function showList( originalRequest ) 
	{
		clearTimeout(t);
		document.getElementById("loading_message").style.display = "none";
		/*if ($("loading"))
		{
			$("loading").hide();
		}*/
		var cobjid = "";
		var totalobjects = 0;
		//set cords arrays
		var cords = {y:[],x:[]};
		var xml = originalRequest.responseXML;

		var markers = xml.documentElement.getElementsByTagName('marker');
		
		/*30/04/09-02:40:51 PM Asif */
		//var clientobject_ids = xml.documentElement.getElementsByTagName('clientobjectids');
		//cobjid = clientobject_ids.item(0).firstChild.nodeValue;
		// For a initial search display total count of objects next to Show button
		if (xml.documentElement.getElementsByTagName('totalmarkers').length > 0 )
		{
			totalmarkers = xml.documentElement.getElementsByTagName('totalmarkers');
			totalobjects = totalmarkers.item(0).firstChild.nodeValue;
			$('searchcount').update(totalobjects);
			totalobjectJS = totalobjects;
			//alert(totalobjects+"totalobjects")
//$('totalcount').update(totalobjects);
			showtotalcount(totalobjects)
		}
		else
		{
			$('searchcount').update(markers.length);
		}

		//alert(markers.length);

		//Update the search result counter
		//$('searchcount').update(markers.length);
		//alert("markers.length>> "+markers.length + "-- totalmarkers" +totalobjects)

		if (showFlag == 'no' && totalobjects == 0)
		{
			if (dbClickFlag != true && SEARCH_SESSION != true && searchonmap != true)// on double click on map don't display error msg if 0 result found
			{
				
				alert(ERR_NO_SEARCH_RESULT);
				uncheckbox();
			}else{
				
				alert(ERR_NO_SEARCH_RESULT);
				uncheckbox();
			}
			return;
		}
		else if(showFlag == 'yes' && markers.length == 0) 
		{
			if (dbClickFlag != true && SEARCH_SESSION != true && searchonmap != true)// on double click on map don't display error msg if 0 result found
			{
				alert(ERR_NO_SEARCH_RESULT);
				uncheckbox();
			}else{
				alert(ERR_NO_SEARCH_RESULT);
				uncheckbox();
			}
			return;
		}
		
		//when draging the map now the pins should stay visible
		if (searchonmap != true  && (typeof map != 'undefined'))
		{			
			clearMarkers();
		}		
		
		if (catFlag)//When selecting categories dont perform map action till pressed at show button
		{
			return;
		}		
		// 
		
		var bounds = new GLatLngBounds();
		
		for(var lcnt = 0;lcnt < markers.length; lcnt++) 
		{
			
			var objectname = markers[lcnt].getAttribute('name');
			var address = markers[lcnt].getAttribute('address');
			var city = markers[lcnt].getAttribute('city');
			var country = markers[lcnt].getAttribute('country');
			var clientobjectid = markers[lcnt].getAttribute('clientobjectid');
			
			var mainimage = (markers[lcnt].getAttribute('mainimage')== "" ?'picture_coming_soon.jpg':clientobjectid+"/"+clientobjectid+"_"+markers[lcnt].getAttribute('mainimage'));
			var categoryid = markers[lcnt].getAttribute('categoryid');
			var addfldnamevalues = markers[lcnt].getAttribute('addfldnamevalues');
			
			/* Code spec to find out stars*/
			var starCount = 0;
			if (addfldnamevalues != "")
			{		
				var starPos = false;
				/*if (strripos(addfldnamevalues, 'star') != false)
				{
					starPos = strripos(addfldnamevalues, 'star#') - 1;
				}
				else if (strripos(addfldnamevalues, 'stars#') != false)
				{
					starPos = strripos(addfldnamevalues, 'stars#') - 1;
				}
				var length = starPos - strripos(addfldnamevalues, '#classification');

				var str = substr( addfldnamevalues, strripos(addfldnamevalues, 'classification'), length);
				
				if (str != "")
				{
					var arrClassification = str.split("=");
					starCount = arrClassification[1];
				}*/
				
				if (strripos(addfldnamevalues, 'classification') != false)
				{
					var arrClassification = addfldnamevalues.split("=");
					starCount = arrClassification[1].match(/[\d\.]+/g);
				}
			}
			// Remove leading and trailing ~ symbol
			categoryid = substr(categoryid,1,categoryid.length);
			categoryid = substr(categoryid,0,-1);		
					
			//he GMap does not show more than one node that has the same lat/long information. In this case, it only shows the first volunteer opportunity listed
			//The GMap does not show more than one node that has the same zipcode
			//var lat = parseFloat(markers[lcnt].getAttribute("lat")); 
			//var lng = parseFloat(markers[lcnt].getAttribute("lng"));

			//scan cordinates for duplicate one
			/*cords.x.each(function(item,index)
			{	//alert(lat +"=="+ item +"&&"+ lng +"=="+ cords.y[index])
				if (lat == item && lng == cords.y[index])
				{
					//alert("match found"+objectname)
					//Just randomize the decimal portion of the coordinate.This would randomize 1/100th of a degree. Should be enough to keep your 
					//markers from being on top of each other, depending on the zoom level 
					lat = lat + (Math.random() -.5) / 10 ; 
					lng = lng + (Math.random() -.5) / 10 ;
					return;
				}
			});*/
			
			//var point = new GLatLng(lat,lng); 
			
			var point = new GLatLng(parseFloat(markers[lcnt].getAttribute('lat')),parseFloat(markers[lcnt].getAttribute('lng')));
			bounds.extend(point);
			cords.y.push(point.lng())
			cords.x.push(point.lat())
						
			var marker = createMarker(point, html_entity_decode(objectname,'ENT_QUOTES'), address, categoryid, mainimage,starCount,clientobjectid,city,country);
			map.addOverlay(marker);

			// Append the clientobjectid
			//cobjid = cobjid + "~" + clientobjectid;
		}
		
		//$('hidclientobjectid').value = substr(cobjid,1,cobjid.length);
		$('hidclientobjectid').value = "SHOW_DATA";
		
		adjustToMarkers(map,cords);
		
	}

	// Create markers on the map:popup
	function createMarker(point, name, address, categoryid ,mainimage, starCount,clientobjectid,city,country) 
	{
		var marker = "";
		var pinimage = "";	
		var catIcon = "";
		var categoryidarr = "";
		var countrycitydetails = "";
		
		categoryidarr = categoryid.split('~');
		// Get the GMap pin image
		pinimage = 'catgm_'+categoryidarr[0]+'.gif';
		catIcon = (new GIcon(baseIcon,"images/"+pinimage,null,null));
		marker = new GMarker(point,{icon:catIcon,title:name,zIndexProcess:importanceOrder});
		marker.importance = 1;
		countrycitydetails = "";

		if (city != "" && country != "")
		{
			countrycitydetails = city +","+ country;
		}
		else if (city != "" && country == "")
		{
			countrycitydetails = city;
		}
		else if (city == "" && country != "")
		{
			countrycitydetails = country;
		}
		
		if(mainimage =='picture_coming_soon.jpg')
		{
			 var imagepic =	'<img src="/images/'+ mainimage +'" width="138" height="90" />';
		}
		else
		{
			var imagepic =	'<img src="/images/'+ mainimage +'" />';
		}
		
		var catimage = "";
		var starimage = "";
		var html = '<table width="194" border="0" align="center" cellpadding="0" cellspacing="0" style="cursor:hand;cursor:pointer;" onclick="javascript:showDetails('+clientobjectid+');closePopup();">'+
					'<tr>' +
					'<td bgcolor="#FFFFFF"><table width="180" border="0" align="center" cellpadding="0" cellspacing="0">' +
					 '<tr>' +
						'<td height="7"></td>' +
					  '</tr>' +
					  '<tr>' +
						'<td bgcolor="#EE7B18"><table width="160" border="0" align="center" cellpadding="0" cellspacing="0">' +
						  '<tr>' +
							'<td height="11" colspan="2"></td>' +
							'</tr>' +
						  '<tr>' +
							'<td width="138" align ="center" bgcolor="#000000">'+imagepic+'</td>' +
							'<td width="22" valign="top" align="right">';

							for(i=0;i<categoryidarr.length;i++)
							{	
								catimage += '<div style="height:20px"><img src="/images/catsm_'+ categoryidarr[i] +'.gif" width="15" height="15" /></div>'
							}
					html += catimage +
							'</td>' +
						  '</tr>' +
						  '<tr>' +
							'<td height="10" colspan="2"></td>' +
						  '</tr>' +
						  '<tr>' +
							'<td colspan="2"><div align="left">';
								if (starCount != 0)
								{
									for(i=0;i<starCount;i++)
									{
										starimage += '<img src="images/star_trans_img.gif" width="15" height="13" />&nbsp;';
									}

								}
					html += starimage +	
							'</div></td>' +
							'</tr>' +
						  '<tr>' +
							'<td height="5" colspan="2"></td>' +
						  '</tr>' +
						  '<tr>' +
							'<td class="text_white_popup_bold" colspan="2">'+ name +'</td>' +
							'</tr>' +
						  '<tr>' +
							'<td height="5" colspan="2"></td>' +
						  '</tr>' +
						  '<tr>' +
							'<td class="text_white_popup_normal" colspan="2">'+ countrycitydetails +' </td>' +
							'</tr>' +
						  '<tr>' +
						'<tr>' +
							'<td colspan="2" height="8px"></td>' +
							'</tr>' +
						'</table></td>' +
					  '</tr>' +
					  '<tr>' +
						'<td height="7"></td>' +
					  '</tr>' +
					'</table></td>' +
				  '</tr>' +
				'</table>';

		GEvent.addListener(marker, 'click', function(){ 
			marker.openExtInfoWindow(
			  map,
			  "event_window",
			  html,
			  {beakOffset: 3}
			);
			sel_marker = marker;
			center_marker = marker;
			$('hidselclientobjectid').value = clientobjectid;
		  });
  
		locator.vars.gmarkers.push(marker);

		return marker;
    }
	
	//Clear all existing markers from the map
	function clearMarkers()
	{
		if ( typeof map != 'undefined')
		{
			try { map.removeOverlay(hMarker); } catch (e) {}
			if(locator.vars.gmarkers.length>0)
			{
				while(locator.vars.gmarkers.length>0)
				{
					var marker = locator.vars.gmarkers.shift();
					GEvent.clearListeners( marker, "click" ); 
					marker = null; 
				}
				 map.clearOverlays(); 
			}
			locator.vars.gmarkers = [];
			center_marker = null;
		}
	}

	// Adjust the zoom level of map according to results obtained
	function adjustToMarkers(map,cords) 
	{
		var maxZoomLevel = locator.vars.maxZoomLevel;
		var minZoomLevel = locator.vars.minZoomLevel;
		var n = cords.x.max() + .01;
		var e = cords.y.max() + .01;
		var s = cords.x.min() - .01;
		var w = cords.y.min() - .01;
		var sw = new GLatLng(s,w);
		var ne = new GLatLng(n,e);
		
		var bounds = new GLatLngBounds(sw,ne);
		var propZoom = map.getBoundsZoomLevel(bounds);
		if(propZoom>maxZoomLevel){
			map.setZoom(maxZoomLevel)
		}
		else if(propZoom<minZoomLevel){
			map.setZoom(minZoomLevel)
		}
		else{
		map.setZoom(propZoom)
		}
		map.panTo(bounds.getCenter());

		setMapCookie();
	}
	// Function to zoom to country or city whichever selected from search menu
	function zoomTo(map,address,locationtype)
	{
		var accuracy = locationtype;
		var zoomLevel = accuracyToZoomLevel[accuracy] || 1;

		var geocoder = new GClientGeocoder();
		if (geocoder) 
		{
			geocoder.getLatLng(address,
			  function(point) {
				if (!point) {
					  return false;
					} 
					else 
					{ 
						var maxZoomLevel = locator.vars.maxZoomLevel;
						var minZoomLevel = locator.vars.minZoomLevel;

						var bounds = new GLatLngBounds();
						bounds.extend(point);
						map.setZoom(zoomLevel);
						map.panTo(bounds.getCenter());
					}
			});
		}
		

	}
	
	// Save the GMap current status
	function setMapCookie()
	{
		currentzoom = map.getZoom();
		Set_Cookie( "mapzoom", currentzoom, '', '', '', '');
		currentcenter = map.getCenter();
		currlat = currentcenter.lat();
		currlng = currentcenter.lng();
		Set_Cookie( "mapcenterlat", currlat, '', '', '', '');
		Set_Cookie( "mapcenterlng", currlng, '', '', '', '');
	}
	// Function to get GPS of the locations on selecting any of the category
	function searchLocationsCat()
	{
		//$('displayGlowImage').style.display = "none";
		//$('displaySimpleImage').style.display = "block";
		totalobjectJS = 0;
		var count = 0;
		catFlag  = true;
		SEARCH_SESSION = false;
		DEFAULT_SEARCH = 0;
		showFlag = 'no';
		
		var arrChk = $('frmSearch').getInputs('checkbox', 'catobject[]');
		if (arrChk.length != 0)
		{
			arrChk.each(function(item,index){
			if(item.checked){
				count++;							
			}
			});
		}

		var addpars = getAddFields();
		//Even though checkboxes are not selected, search locations if add fields details are there
		if (addpars != "" )
		{
			count = 1;
		}
		searchLocations();
		clearMarkers();
	}
	// Function to get GPS of the locations on db click on GMap
	function searchLocationsDbClick(point)
	{
		SEARCH_SESSION = false;
		center_marker = null;
		DEFAULT_SEARCH = 0;

		var bounds = map.getBounds();
		var southWest = bounds.getSouthWest();
		var northEast = bounds.getNorthEast();
		var getVars = 'ne='+ northEast.toUrlValue() + '&sw=' + southWest.toUrlValue()+ '&known=' + point.toUrlValue();
		var searchUrl = getVars + '&radius=' + DEF_RADIUS +'&search=address';
		locatorService( 'areasearch.php',searchUrl,showList);
		var params = 'search=getAciveObjCountryList';
		getActiveCountry(params);
	}

	// Function to get locations on click of Show button
	function showLocations()
	{
		if(typeof map == 'undefined')
		{
			gotoIndex();
		}
		catFlag  = false;
		SEARCH_SESSION = false;
		showFlag = 'yes';
		clearMarkers();
		searchLocations();
	}

	// Function to get additional fields string
	function getAddFields()
	{
		var addpars = "";
		var addstrpars_ids = "";	
		var addpars_ids = new Array();
		var arruniquepars_ids = new Array();

		if($('frmSearch'))
		{
			var arrAddfileds = $('frmSearch').getElements();
			if (arrAddfileds.length != 0)
			{
				arrAddfileds.each(function(item,index){
					if (item.id.match('^add_field'))
					{
						// Form add field string only if value is present of that element
						if ((item.type == "text" && item.value != "") || (item.type == "select-one" && item.selectedIndex != 0))
						{
							addpars += item.name+"@"+item.value + "~~";
							var arritem_value = item.name.split("#~#");
							var pars_id = arritem_value[1];
							addpars_ids.push(pars_id);
						}
					}
				});
				
				addpars = substr(addpars,0,addpars.length-2);
				arruniquepars_ids = array_unique(addpars_ids);
				addstrpars_ids = implode("~",arruniquepars_ids);
				if(addstrpars_ids== ""&& addpars == "")
				{
					addpars = "";
				}
				else
				{
					addpars = addstrpars_ids + "#@#" + addpars;
				}
			}
		}
		return addpars;
	}
	//Function to search the locations using session
	function searchFromSession()
	{
		var countryid = SEARCH_COUNTRYID;
		var cityid = SEARCH_CITYID;
		var radius = SEARCH_RADIUS;
		var pars = SEARCH_CATPARS;
		var addpars = SEARCH_ADDPARS;
		var knownPoint = '&known=' + SEARCH_KNOWNPT;
		var bounds = map.getBounds();
		var southWest = bounds.getSouthWest();
		var northEast = bounds.getNorthEast();
		var getVars = 'ne='+ northEast.toUrlValue() + '&sw=' + southWest.toUrlValue()+ knownPoint;
		var searchUrl = getVars + '&radius='+radius + '&search=address'+'&countryid='+countryid +'&cityid='+cityid +'&pars='+pars+'&addpars='+encodeURIComponent(addpars);
		locatorService( 'areasearch.php',searchUrl,showList);
	}
	
	function listview()
	{
		var categories = getSelectedIds();
		$('hidselectedcat').value = substr(categories,1,categories.length);
		
	if(totalobjectJS == 0 ||totalobjectJS =='NO_DATA')
		{
		}
	else
		{
			if ($('hidclientobjectid').value != "")
			{
				document.frmSearch.submit();
			}
		// go to preview page directly even if show button is not clicked
			else
			{
				document.frmSearch.submit();
			}
		}

	}
	
	function getSelectedIds()
	{
		var resultArray = array();
		var current = "";
		var grp = "";
		// Process add fileds to get cataegory ids
		var addpars = "";
		var arrAddfileds = $('frmSearch').getElements();
		if (arrAddfileds.length != 0)
		{
			arrAddfileds.each(function(item,index){
				if (item.id.match('^add_field'))
				{
					var arrAddFld = item.id.split("#~#");
					var addFldCatID = arrAddFld[2];

					var arrCatids = addFldCatID.split("__");
					if (current != arrCatids[0])
						current = arrCatids[0];

					// Form add field string only if value is present of that element
					if ((item.type == "text" && item.value != "") || (item.type == "select-one" && item.selectedIndex != 0))
					{
						grp = arrCatids[0];
						resultArray = addids( arrCatids[0] );
					}
					else
					{
						if (grp != current)
							resultArray = deleteids( arrCatids[0] );
					}
					catids = implode( "~" , resultArray);
				}
			});
		}

		// Process check boxes to get cataegory ids
		var form = $('frmSearch');
		var arrChk = form.getInputs("checkbox","catobject[]");
		arrChk.each(function(item,index){

			var objid = item.value;
			var arrCatids = objid.split("__");
			if (current != arrCatids[0])
				current = arrCatids[0];
			if (item.checked == true)
			{
				grp = arrCatids[0];
				resultArray = addids( arrCatids[0] );
			}
			else
			{
				if (grp != current)
					resultArray = deleteids( arrCatids[0] );
			}
			catids = implode( "~" , resultArray);
		});
		return catids;
	}

	function addids( id )
	{
		var arrIds = catids.split("~");
		arrIds.push(id);
		return arrIds.uniq();
	}

	function deleteids( id )
	{
		var arrIds = catids.split("~");
		return arrIds.without(id);
	}

	function resetSearchMenu()
	{
		$('countryid').selectedIndex = 0;
		$('hidcountryid').value = "";
		$('hidcityid').value = "";
		$('hidcountryname').value = "";
		clearSelection ( $('cityid') );
		$('cityid').options[0] = new Option(LBL_SELECT_CITY+"...","");
		$('delieveryradius').selectedIndex = 0;
	}
	function closePopup()
	{
		//center_marker = null;
		map.closeExtInfoWindow();
		
		try { map.removeOverlay(hMarker); } catch (e) {}
		try { if(lastmarker)lastmarker.show();}catch (e){}
		var curricon = sel_marker.getIcon();
		var currimage = curricon.image;
		var currimgarr = currimage.split(".gif");
		var index = currimgarr[0].match(/[\d\.]+/g);
		var nIcon = (new GIcon(newIcon,"/images/catbgm_"+index+".gif",null,null));
		hMarker = new GMarker(sel_marker.getPoint(),{icon:nIcon,title:sel_marker.getTitle(),zIndexProcess:importanceOrder});
		hMarker.importance = 2;
		map.addOverlay(hMarker);

		GEvent.addListener(hMarker, 'click', function(){
			sel_marker.show();
			hMarker.hide();
		});		
		lastmarker = sel_marker;
		sel_marker.hide();
	}
	
	function importanceOrder (marker,b) 
	{
        return GOverlay.getZIndex(marker.getPoint().lat()) + marker.importance*1000000;
    }

	function uncheckbox()
	{
		var arrChk = $('frmSearch').getInputs('checkbox', 'catobject[]');
		if (arrChk.length != 0)
			{	
				arrChk.each(function(item,index){
					var intFieldIndex = item.value.match(/[\d\.]+/g);
					var chkImgObj = $('checkImage'+intFieldIndex[1]);
										
					//var chkImgObj = $('checkImage'+valueindex);
					
					if (chkImgObj)
					{	
						item.checked =false;
						chkImgObj.src= 'images/false.png';
					}
				//	$(item.value).src ='images/false.png';
					
				});
				
			}
	}
	
function showtotalcount(total)
	{	
		if($('displaySimpleImage') != null && $('displayGlowImage') != null )
		{
		//	alert("aaa")
			
			if(total >= 100 )
				{
					$('displaySimpleImage').style.display = "none";
					$('displayGlowImage').style.display = "block";
					
				}
				else
				{
					$('displayGlowImage').style.display = "none";
					$('displaySimpleImage').style.display = "block";
				}
		}
		else
		{
		}
	}

//]]>
//-->