/**
 * org.bearcatmusic -- namespace
 **/
var org; 
if (!org) org = {}; else if (typeof org != "object") throw new Error("org already exists and is not an object");
if (!org.bearcatmusic) org.bearcatmusic = {}; else if (typeof org.bearcatmusic != "object") throw new Error("org.bearcatmusic already exists and is not an object");
if (!org.bearcatmusic.utilities) org.bearcatmusic.utilities = {}; else if (typeof org.bearcatmusic.utilities != "object") throw new Error("org.bearcatmusic.utilities already exists and is not an object");
 
/**
 * Utility functions
 **/

org.bearcatmusic.utilities.addOnLoadCallback = function (callback)
{
	if (callback)
	{
		if (!org.bearcatmusic.utilities.googleOnLoadCallbacks)
		{
			org.bearcatmusic.utilities.googleOnLoadCallbacks = new Array();
			google.setOnLoadCallback(
				function()
				{
					for (var ndx = 0; ndx < org.bearcatmusic.utilities.googleOnLoadCallbacks.length; ++ndx)
						org.bearcatmusic.utilities.googleOnLoadCallbacks[ndx]();
				}
			);
		}
		
		org.bearcatmusic.utilities.googleOnLoadCallbacks.push(callback);
	}
}

org.bearcatmusic.utilities.createDelegate = function(instance, method)
{
	return function() { method.apply(instance, arguments); };
}

org.bearcatmusic.utilities.previousSiblingWithWrap = function(element)
{
	return element != null ? (element.previousSibling != null ? element.previousSibling : (element.parentNode != null ? element.parentNode.lastChild : null)) : null;
}

org.bearcatmusic.utilities.nextSiblingWithWrap = function(element)
{
	return element != null ? (element.nextSibling != null ? element.nextSibling : (element.parentNode != null ? element.parentNode.firstChild : null)) : null;
}

