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;

}


function showMenu( targetID ) 
{
	myAccordion.showThisHideOpen(stretchers[targetID]);	
}

function rememberMenu( targetID, link )
{
	createCookie("menu", targetID, 10);
	window.location.href=link;
}

function showChildren(current)
{
	//var target = document.getElementById( current );
///	target.style.display='inline';
	
	/*
	 * get the children and show them
	 */
	
	elementsUL = document.getElementById(current);
	//alert(elementsUL.childNodes.length);	
//alert(elementsUL.getElementsByTagName("li").length);
	
	for ( var i = 0; i < elementsUL.getElementsByTagName("li").length; i++ )
	{
		element = elementsUL.getElementsByTagName("li")[i];
		element.style.display = "block";//.setAttribute("display", "inline");

		
	
		//elementsUL.childNodes[i].getAttribute("style");//style.display='block';
		//alert(elementsUL.childNodes[i].name);
		//alert(elementsUL.childNodes[i].getAttribute("style"));
	}

	 
}

function createCookie(name,value,days)
{

	if (days) 
	{
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name)
{
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');

	for(var i=0;i < ca.length;i++)
	{
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) 
		{
	//	alert(">> readcookie" +c.substring(nameEQ.length,c.length));
			return c.substring(nameEQ.length,c.length);
		}
	}
	return null;
}

function eraseCookie(name)
{
	createCookie(name,"",-1);
}

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 checkAll()
{
	checkboxElements = document.getElementsByTagName("input");

	for ( i=0; i<checkboxElements.length; i++ )
	{
		if ( "checkbox" == checkboxElements[i].getAttribute("type") )
		{
			checkboxElements[i].setAttribute("checked", "checked");
		}
	}
}

function setFormElements()
{

	var inputElms = document.getElementsByTagName("input");

	for ( j=0; j<inputElms.length; j++ )
	{

		if ( !inputElms[j].getAttribute("readonly") )
		{		
			inputElms[j].onfocus = function()
			{
				if ( this.value == "Enter Username" || this.value == "Enter Password" || this.value == "Enter Postcode" )
				{
					this.value = '';
				}
			}
		}
	}	
}

function setAdvancedDisplay()
{

	if ( document.getElementById('advanced_search') && document.getElementById('top_submit') )
	{
		if ( "1" == Cookie.get("cvd_adv_form") )
		{
			document.getElementById('advanced_search').style.display = 'block';
			document.getElementById('top_submit').style.display = 'none';			
		}
		else
		{
			document.getElementById('advanced_search').style.display = 'none';
			document.getElementById('top_submit').style.display = 'block';			
			
		}
	}

}



function change(which, store) 
{
	var elm = document.getElementById(which);
	var setNext = "";
	var setCookie = "0";

	if ( elm.style.display == "none" )
	{
		setNext = 'block';
		setCookie = "1";
	}
	else
	{
		setNext = 'none';		
	}
	
	elm.style.display = setNext;

	if ( store )
	{
		Cookie.set("cvd_adv_form", setCookie);
	}
}

function showall() 
{
//    document.getElementById('advanced_search').style.display = 'block';
}


addLoadEvent(setFormElements);
addLoadEvent(setAdvancedDisplay);




