function toggle (page, button)
{
	if (page.className.indexOf ('sidebar_left') != -1)
	{
		page.className	= page.className.replace (/sidebar_left/, 'sidebar_right')
		set_cookie ('sidebar', 'right', 7); button.innerHTML = 'Switch sidebar left';
	}
	else
	{
		page.className	= page.className.replace (/sidebar_right/, 'sidebar_left');
		set_cookie ('sidebar', 'left', 7); button.innerHTML = 'Switch sidebar right';
	}
}


function function_exists (function_name)
{
    // http://kevin.vanzonneveld.net
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Steve Clay
    // +   improved by: Legaev Andrey
    // *     example 1: function_exists('isFinite');
    // *     returns 1: true
 
	if (typeof function_name == 'string')
	{ return (typeof window[function_name] == 'function'); }
	else
	{ return (function_name instanceof Function); }
}


function replace_all (str, from, to)
{
	var idx = str.indexOf (from);

	while (idx > -1 )
	{
		str = str.replace (from, to);
		idx = str.indexOf (from);
	}
	return (str);
}


function get_cookie (name)
{
	with (document.cookie)
	{
		var reg	= new RegExp ('(^|;\\s+)' + name + '=(.*?)(;|$)');
		var hit	= reg.exec (document.cookie);

		if (hit && hit.length > 2)
		{
			return unescape (replace_all (hit[2], '+', '%20') );
		}
		else { return (''); }
	}
}


function set_cookie (name, value, days)
{
	if (days)
	{
		var date	= new Date ();
		date.setTime (date.getTime () + (days * 24 * 60 * 60 * 1000) );
		var expires	= '; expires=' + date.toGMTString ();
	}
	else { expires	= ''; }

	document.cookie	= name + '=' + value + expires + '; path=/';
}


function set_stylesheet (styletitle)
{
	set_cookie ('site_style', styletitle, 365);

	var links	= document.getElementsByTagName ('link');
	var found	= false;

	for (var i = 0; i < links.length; i ++)
	{
		var rel	= links[i].getAttribute ('rel');
		var ttl	= links[i].getAttribute ('title');

		if (rel.indexOf ('style') != -1 && ttl)
		{
			links[i].disabled	= true; // IE needs this to work. IE needs to die.

			if (styletitle == ttl)
			{
				links[i].disabled	= false;
				found	= true;
			}
		}
	}

	if (!found) { set_preferred_stylesheet (); }
}


function set_preferred_stylesheet ()
{
	var links	= document.getElementsByTagName ('link');

	for (var i = 0; i < links.length; i ++)
	{
		var rel	= links[i].getAttribute ('rel');
		var ttl	= links[i].getAttribute ('title');

		if (rel.indexOf ('style') != -1 && ttl)
		{
			links[i].disabled	= (rel.indexOf ('alt') != -1);
		}
	}
}


function get_active_stylesheet ()
{
	var links	= document.getElementsByTagName ('link');

	for (var i = 0; i < links.length; i ++)
	{
		var rel	= links[i].getAttribute ('rel');
		var ttl	= links[i].getAttribute ('title');

		if (rel.indexOf ('style') != -1 && ttl && !links[i].disabled)
		{ return (ttl); }
	}

	return (null);
}


function get_preferred_stylesheet ()
{
	var links	= document.getElementsByTagName ('link');

	for (var i = 0; i < links.length; i ++)
	{
		var rel	= links[i].getAttribute ('rel');
		var ttl	= links[i].getAttribute ('title');

		if (rel.indexOf ('style') != -1 && rel.indexOf ('alt') == -1 && ttl)
		{ return (ttl); }
	}

	return (null);
}


window.onload	= function ()
{
	var page	= document.getElementById ('container_page');
	var button	= document.getElementById ('switch');

	button.onclick	= function () { toggle (page, button); };
}
