function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function sr_toggle_collapse(objid)
{
	img = sr_fetch_object( "collapseimg_" + objid );
	obj = sr_fetch_object( "collapseobj_" + objid );
	obj_more = sr_fetch_object( "collapseobj_" + objid + "_more" );
	
	if( !obj )
	{
		// Det finns inget objekt!
		if( img )
		{
			// Göm bilden för minimering / maximering
			img.style.display = 'none';
		}
		return false;
	}

	if( obj.style.display == 'none' )
	{
		if( img )
		{
			// Skapa en ny img src. Man letar upp '_collapsed.gif' och ersätter det med enbart '.gif' för att få rätt namn på bilden.
			img_re = new RegExp( "_collapsed\\.gif$" );
			img.src = img.src.replace( img_re, '.gif' );
		}

		obj.style.display = '';
		obj_more.style.display = '';

		sr_save_collapsed(objid, false);
	}
	else
	{
		if( img )
		{
			// Skapa en ny img src. Man letat upp '.gif' och ersätter det med enbart '_collapsed.gif' för att få rätt namn på bilden.
			img_re = new RegExp( "\\.gif$" );
			img.src = img.src.replace( img_re, '_collapsed.gif' );
		}
		
		obj.style.display = 'none';
		obj_more.style.display = 'none';
		
		sr_save_collapsed(objid, true);
	}
}


/**
* Updates vbulletin_collapse cookie with collapse preferences
*
* @param	string	Unique ID for the collapse group
* @param	boolean	Add a cookie
*/
function sr_save_collapsed(objid, addcollapsed)
{
	var collapsed = sr_fetch_cookie('shadowrace_collapse');
	var tmp = new Array();

	if( collapsed != null )
	{
		collapsed = collapsed.split('\n');

		for( var i in collapsed )
		{
			if( collapsed[i] != objid && collapsed[i] != '' )
			{
				tmp[tmp.length] = collapsed[i];
			}
		}
	}

	if( addcollapsed )
	{
		tmp[tmp.length] = objid;
	}

	expires = new Date();
	expires.setTime(expires.getTime() + (1000 * 86400 * 365));
	sr_set_cookie( 'shadowrace_collapse', tmp.join('\n'), expires );
}

// #############################################################################
// Cookie handlers

/**
* Sets a cookie
*
* @param	string	Cookie name
* @param	string	Cookie value
* @param	date	Cookie expiry date
*/
function sr_set_cookie(name, value, expires)
{
	document.cookie = name + '=' + escape(value) + '; path=/' + (typeof expires != 'undefined' ? '; expires=' + expires.toGMTString() : '');
}

/**
* Deletes a cookie
*
* @param	string	Cookie name
*/
//function delete_cookie(name)
//{
//	document.cookie = name + '=' + '; expires=Thu, 01-Jan-70 00:00:01 GMT' +  '; path=/';
//}

/**
* Fetches the value of a cookie
*
* @param	string	Cookie name
*
* @return	string
*/
function sr_fetch_cookie(name)
{
	cookie_name = name + '=';
	cookie_length = document.cookie.length;
	cookie_begin = 0;
	while( cookie_begin < cookie_length )
	{
		value_begin = cookie_begin + cookie_name.length;
		if( document.cookie.substring(cookie_begin, value_begin) == cookie_name )
		{
			var value_end = document.cookie.indexOf ( ';', value_begin );
			if( value_end == -1 )
			{
				value_end = cookie_length;
			}
			return unescape(document.cookie.substring(value_begin, value_end));
		}
		cookie_begin = document.cookie.indexOf(' ', cookie_begin) + 1;
		if (cookie_begin == 0)
		{
			break;
		}
	}
	return null;
}

/**
* Function to emulate document.getElementById
*
* @param	string	Object ID
*
* @return	mixed	null if not found, object if found
*/
function sr_fetch_object(idname)
{
	if( document.getElementById )
	{
		return document.getElementById( idname );
	}
	else if( document.all )
	{
		return document.all[ idname ];
	}
	else if( document.layers )
	{
		return document.layers[ idname ];
	}
	else
	{
		return null;
	}
}



