   

function ajUpdateDiv(id, url, params, waitMode)
{
   //ldng= $('<span class=\"loading\" align=\"center\"><img src=\"css/loading.gif\" /></span>');
   //ldng.hide();
   elem = $(id);
   if (waitMode == 1)
   {
		var w = elem.width();
		elem.html('<div class=\"actloading\" style=\"width:'+w+'px\"></div>');
	 }
	 else if (waitMode == 3)
	 	elem.append('<div class="loading" align="center"><img src="css/loading.gif" /></div>');
   else
		elem.prepend('<div class="loading" align="center"><img src="css/loading.gif" /></div>');
 
   $.post(url, params, 
		function(data, status)
		{
			if (status == 'success')
			{
				elem.hide().html(data).fadeIn('fast');
			}
			else
			{
				elem.html("<div class=\"warning\">An error occured! Please try again</a>");
			}
		}
	);
	
 }

 
 
function ajReplaceDiv(id, url, params)
{
   elem = $(id);
   
   elem.html('<div class="loading" align="center"><img src="css/loading.gif" /></div>');
   $.post(url, params, 
		function(data, status)
		{
			if (status == 'success')
			{
				elem.replaceWith(data);
			}
			else
			{
				elem.html("<div class=\"warning\">An error occured! Please try again</a>");
			}
		}
	);
	
 }

 

function  setuplinks()
{
		/*
		$('.calbookmark').click(
				function(event) 
				{
					var calid = ($(event.target).attr('calid'));
					ajUpdateDiv(this, '?mode=bookmark&calid='+calid, {}, 1);
				}
			);
			
			
			$('.calrecommend').click(
				function(event) 
				{
					var calid = ($(event.target).attr('calid'));
					ajUpdateDiv(this, '?mode=recommend&calid='+calid, {}, 1);
				}
			);
			*/
		
		$("div.cal-item").hover( 
			function() 	{$(this).find("div.opers").css('visibility', 'visible'); } 
			, function() {$(this).find("div.opers").css('visibility', 'hidden'); } 
			); 
		
}


function upd_bookmark(w,calid)
{
	ajUpdateDiv($(w).parent(), '?mode=bookmark&calid='+calid, {}, 1);
}



function upd_recommend(w,calid)
{
	el =$('#recbox_'+calid);
	ajReplaceDiv(el, '?mode=recommend&post_id='+calid, {}, 1);
}




 
var map;
var container;
var opacity = 0.4;
var circle;
var circleUnits;
var circleRadius;
var geocoder=null;
var zoom = 13;
var _infoWindowEl = null; 
var getGAddress = false;

	function createPin()
	{
		url = '?mode=pin&lat='+centerPoint.x+'&lng='+centerPoint.y;
		$('#dlgcontent').load(url);
		$('#dlgcontent').dialog('open');
	}

function askaddress()
{
	res = prompt('Enter an address:');
	if (res && res.length)
	{
		geocoder.getLocations(res, function(response) { 
				if (response && response.Status.code == 200)
				{
					var place = response.Placemark[0];
					if (place != null)
					{
						var point = new GLatLng(place.Point.coordinates[1], place.Point.coordinates[0]);
						map.setCenter(point);
						if (centerPoint!=null)
						{
							centerPoint = (point);
							setPosition(centerPoint, true);

						}
					}
				}
				else
					alert('Address not found!');
			});
	}
}


 
function doLoadMap() 
{
	if (GBrowserIsCompatible()) {
		
		centerPoint = new GLatLng(51,0.1);		
		
		var mold = $.cookie("lastp")

		if (presetPoint)
		{
			centerPoint = presetPoint;
		}
		else if (mold)
		{
			var tf = mold.split(':');
			if (tf.length) centerPoint = new GLatLng( tf[0], tf[1]);
		}
		
			
		

		container = document.getElementById("mapDiv");
		map = new google.maps.Map2(container, {draggableCursor:"arrow"});
		
		var customUI = map.getDefaultUI();
		customUI.controls.maptypecontrol = false;
		customUI.controls.menumaptypecontrol = true;
		customUI.controls.scalecontrol = false;
		map.setUI(customUI)
		//map.setUIToDefault();	
		map.setCenter(centerPoint, zoom);
 		
		map.disableDoubleClickZoom();		
 
		
 
		//var pos = new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(0, 620)); 
	 	
	 	GEvent.addListener(map, "click", function(ev, pn) {
				
			});

	 	
	 	GEvent.addListener(map, "dblclick", function(ev, pn) {
				if (centerPoint!=null)
				{
					centerPoint=(pn);
					setPosition(centerPoint, 1);
				}
				//lookAround('list');
			});
		centerMarker = new GMarker(centerPoint, {draggable:true, 'title':'Drag the marker to a location, or double click on the map to go there'});
		GEvent.addListener(centerMarker, 'dragend', function() { centerPoint = centerMarker.getLatLng(); setPosition(centerPoint, 1); } );
		
		map.addOverlay(centerMarker);

		geocoder = new GClientGeocoder();
		
		//setPosition(centerPoint);
	}
	
}
 
function getGAddress(latlng)
{
    if (latlng != null) 
	{
       address = latlng;
       geocoder.getLocations(latlng, showAddress);
    }
}



function doSearch()
{
	lookAround('list', $('#search_str').val());
}


function checkform(form)
{
	if (!centerPoint)
	{
		alert("Please double click on your location!");
		return false;
	}
	var glng = (centerPoint);
	form.lat.value = glng.lat();
	form.lng.value = glng.lng();
	form.zoom.value = map.getZoom();

	if (form.question.value.length < 9) 
	{
		alert("Please enter a question");
		form.question.focus();
		return false;
	}
	
	$('#qres').prepend('<div class="loading"><img src="<?=$request->webroot?>/css/loading.gif" /></div>');
	
	
	var bounds = map.getBounds();
  var SW = bounds.getSouthWest();
  var NE = bounds.getNorthEast();
	
	var cnt = (centerPoint);
	stopDemo = true;
	$(".option").removeClass('active');
	$('#link-list').addClass('active');
	form.lat1.value = NE.lat()
	form.lat2.value = SW.lat()
	form.lng1.value = NE.lng()
	form.lng2.value = SW.lng()
	
	jQuery.post('?is_ajax=1&', $(form).serialize(), function(data) {
		$('#qres').hide();
		$('#qres').html(data).fadeIn();
	});
	$('#q_area').val('');
	return true;
}



function showAddress(response) {
	
    if (!response || response.Status.code != 200)
    {
    	
    } 
    else 
    {
      place = response.Placemark[0];
    	$('#addressres').html("near " + place.address);
    	document.getElementById('address_str').textContent= place.address;
			//document.getElementById('address_code').value = place.AddressDetails.Country.CountryNameCode;
    }
}




function  getMyLocation()
{	
	  var suc = function(p)
	  {	
		lat=p.coords.latitude;
		lon=p.coords.longitude;
		centerPoint = (new GLatLng(lat, lon));
		map.setCenter(centerPoint);
		setPosition(centerPoint);
	  };

	  var fail = function(){
		setPosition(centerPoint);
	  };
	  
	  if (navigator.geolocation)     
	  	navigator.geolocation.getCurrentPosition(suc,fail);
	  else if ( window.google && google.gears) {
				try { 
						geolocation = google.gears.factory.create('beta.geolocation');
					  geolocation.getCurrentPosition(suc);
				} 
				catch (e) 
				{  }
		}
		else if (google.loader.ClientLocation)
		{
			lat = google.loader.ClientLocation.latitude;
			lon = google.loader.ClientLocation.longitude;
			p = { coords: { latitude: lat, longitude: lon} };
			suc(p);			
		}
		else
		{
			alert("Your web browser does not support this function");
		}
		
}

var postPositionCallback = null;

function setPosition(centerPoint)
{

	$.cookie("lastp", centerPoint.y+":"+centerPoint.x, { expires: 700 });	
	centerMarker.setLatLng(centerPoint);
	map.setCenter(centerPoint);

	
	var latA = Math.abs(Math.round(centerPoint.y * 1000000.));
	var lonA = Math.abs(Math.round(centerPoint.x * 1000000.));
	var lgl=''
		var lal=''
	if(centerPoint.y < 0)
	{
		var ls = '' + Math.floor((latA / 1000000));
		lal='S';
	}
	else
	{
		var ls = Math.floor((latA / 1000000));
		lal='N'; 
	}
	var lm = Math.floor(((latA/1000000) - Math.floor(latA/1000000)) * 60);
	var ld = ( Math.floor(((((latA/1000000) - Math.floor(latA/1000000)) * 60) - Math.floor(((latA/1000000) - Math.floor(latA/1000000)) * 60)) * 100000) *60/100000 );

	
	if(centerPoint.x < 0)
	{
		var lgs = '' + Math.floor((lonA / 1000000));
		lgl='W';
	}
	else
	{
		var lgs = Math.floor((lonA / 1000000));
		lgl ='E';
	}

	var lgm = Math.floor(((lonA/1000000) - Math.floor(lonA/1000000)) * 60);
	var lgd = ( Math.floor(((((lonA/1000000) - Math.floor(lonA/1000000)) * 60) - Math.floor(((lonA/1000000) - Math.floor(lonA/1000000)) * 60)) * 100000) *60/100000 );

	var strLat = (ls + '&deg;'+lm+'\'' + ld + '"' + lal);
	var strLng = (lgs + '&deg;'+lgm+'\'' + lgd + '"' + lgl);
	
	//$('#strLat').html(strLat);
	//$('#strLng').html(strLng);
	document.getElementById('strgps').innerHTML= (strLat + ' ' + strLng);
	if (typeof postPositionCallback == 'function')
		postPositionCallback(centerPoint);
}





