String.prototype.startsWith = function(str) {return (this.match("^"+str)==str)};
String.prototype.contains = function(it) { return this.indexOf(it) != -1; };
Array.prototype.remove = function(from, to) {
  var rest = this.slice((to || from) + 1 || this.length);
  this.length = from < 0 ? this.length + from : from;
  return this.push.apply(this, rest);
};

function loadUHLCookies()
{
	if(typeof startVentriloUpdater == 'function')
		startVentriloUpdater();
}

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) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

function setInitialBoatList()
{
	var sel = document.getElementById("boat_list");
	setBoatList("boatlist_"+sel.options[sel.selectedIndex].value+"_"+sel.options[sel.selectedIndex].id);
}

function setBoatList(div_id)
{
	var isDefault = false;
	var elems = document.getElementsByTagName("select"); 
	for(var i=0; i < elems.length; i++)
	{
		if(elems[i].id.startsWith("boatlist"))
		{
			if((elems[i].id == div_id))
			{
				elems[i].style.display = "block";
				elems[i].disabled=false;
			}
			else
			{
				elems[i].style.display = "none";
				elems[i].disabled=true;
			}
		}
	}
}

function goUpcomingRaces()
{
	var sidebar = document.getElementById("sidebar_upcoming_races");
	sidebar.style.left="-180px";
	var req = new Ajax.Request("upcoming_race_query.php?t='+(new Date()).getTime()'",
	{
		method: 'get',
		parameters: 'request=on',
		onException: function(aRequest, ex) { alert(ex); },
		onSuccess: function(aRequest) { if (aRequest.responseText != "" ) goUpcomingRaces_Callback(aRequest.responseText);}
	});
}


function animateSidebar(responseText)
{
	var sidebar = document.getElementById("sidebar_upcoming_races");
	sidebar.innerHTML = responseText;
	sidebar.style.left="0px";
}

function goUpcomingRaces_Callback(responseText)
{
	setTimeout(function(){animateSidebar(responseText)},200);
}

function goRaceRoster(url)
{
	var sidebar = document.getElementById("sidebar_upcoming_races");
	sidebar.style.left="-180px";
	var req = new Ajax.Request(url + "&t='+(new Date()).getTime()'",
	{
		method: 'get',
		parameters: 'request=on',
		onException: function(aRequest, ex) { alert(ex); },
		onSuccess: function(aRequest) { if (aRequest.responseText != "" ) goRaceRoster_Callback(aRequest.responseText);}
	});
}

function goRaceRoster_Callback(responseText)
{
	setTimeout(function(){animateSidebar(responseText)},200);
}
