var Cookie = {
  set: function(name, value, daysToExpire) {
    var expire = '';
    if (daysToExpire != undefined) {
      var d = new Date();
      d.setTime(d.getTime() + (86400000 * parseFloat(daysToExpire)));
      expire = '; expires=' + d.toGMTString();
    }
    return (document.cookie = escape(name) + '=' + escape(value || '') + expire);
  },
  get: function(name) {
    var cookie = document.cookie.match(new RegExp('(^|;)\\s*' + escape(name) + '=([^;\\s]*)'));
    return (cookie ? unescape(cookie[2]) : null);
  },
  erase: function(name) {
    var cookie = Cookie.get(name) || true;
    Cookie.set(name, '', -1);
    return cookie;
  },
  accept: function() {
    if (typeof navigator.cookieEnabled == 'boolean') {
      return navigator.cookieEnabled;
    }
    Cookie.set('_test', '1');
    return (Cookie.erase('_test') === '1');
  }
};


function addLoadEvent(func)
{
	var oldonload = window.onload;

	if ( typeof window.onload != "function" )
	{
		window.onload = func;
	}
	else
	{
		window.onload = function()
		{
			oldonload();
			func();
		}
	}
}

function chkEmail(value)
{
	var filter = /^.+@.+\..{2,3}$/;
	
	if ( !filter.test(value) )
	{
		return false;
	}
	
	return true;
}

function chkReferrerForm(theForm)
{
	var errMsg = "";

	if ( theForm.elements[0].value == "" && theForm.elements[3].value == ""  && theForm.elements[6].value == ""  && theForm.elements[9].value == "")
	{
		alert("You haven't entered any friends!");
		return false;
	}

	var mate = 0;

	for ( i=0; i<4; i++ )
	{
		if ( theForm.elements[(i*3)].value != "" )
		{
			if ( !chkEmail(theForm.elements[(i*3)+1].value) )
			{
				errMsg += "- please enter a valid email for mate " + (i+1) + "\n";
			}	
		}
		
		
	}

	if ( errMsg )
	{
		alert("The following errors have occurred:\n" + errMsg);
		return false;
	}

	return true;

}


Array.prototype.in_array = function(search_term) {
  var i = this.length;
  if (i > 0) {
	 do {
		if (this[i] === search_term) {
		   return true;
		}
	 } while (i--);
  }
  return false;
}

function loadProfileMap(lng, lat, zoom, uid) 
{
        if (GBrowserIsCompatible()) 
        {
                var center = new GLatLng(lng, lat);
                                
                var map = new GMap2(document.getElementById("map"));
                map.setCenter(center, zoom);
                map.addControl(new GSmallMapControl());
                map.addControl(new GMapTypeControl());  
                                                                
                var marker = new GMarker(center, {draggable: true});
                
                GEvent.addListener(marker, "dragstart", function() {
                  map.closeInfoWindow();
                });
                                                
                GEvent.addListener(marker, "dragend", function() 
                {
                        loc = marker.getPoint();                                
                        
                        if ( uid == -1 )
                        {
                                document.getElementById("longitude").value = loc.lng();
                                document.getElementById("latitude").value = loc.lat();
                        }
                        else
                        {
                                var drawarea ='drawarea';
                                var url = '/ajax/update_location.php';          
                                var pars = "loc=" + loc + "&id=" + uid + "&submit_action=update";
                                                
                                var myAjax = new Ajax.Updater(
                                        drawarea, 
                                        url, 
                                        {
                                                method: 'post', 
                                                parameters: pars,
        
                                                onFailure: function()
                                                {
                                                        alert("Location update error.  Please contact website administrator");
                                                }
                                        });

                        }
                });
                                        
                map.addOverlay(marker);
                                        
        }
}

function loadLocationMap(lng, lat, zoom, info_body) 
{
        if (GBrowserIsCompatible()) 
        {
                var center = new GLatLng(lng, lat);
                                
                var map = new GMap2(document.getElementById("map"));
                map.setCenter(center, zoom);
                map.addControl(new GSmallMapControl());
                map.addControl(new GMapTypeControl());  
                                                                
                var point = new GLatLng(lng,lat);
                var marker = createMarker(point,info_body);
                map.addOverlay(marker);
                                        
        }
}

// A function to create the marker and set up the event window
function createMarker(point,html) {
        var tmpIcon = new GIcon(G_DEFAULT_ICON);
        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

        
        return marker;
}



