// ------------------------------------------------------------------
// Written by Andrei Bazhgin (aka aftermath) - after@nan2D.com - 2003
// ------------------------------------------------------------------

function MM_goToURL() { //v3.0
	var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
	for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}

var bFirstTime = true;
function toggleSearchText()
{
	if(bFirstTime){
		bFirstTime = false;
		document.sortform.searchtext.value = '';
	}
	document.sortform.searchtext.disabled = !document.sortform.searchtext.disabled;
	document.sortform.searchandor.disabled = !document.sortform.searchandor.disabled;
}
function DisableSelf(self)
{
	self.disabled = true;
}

function sprintf()
{
if (!arguments || arguments.length < 1 || !RegExp)
{
return;
}
var str = arguments[0];
var re = /([^%]*)%('.|0|\x20)?(-)?(\d+)?(\.\d+)?(%|b|c|d|u|f|o|s|x|X)(.*)/;
var a = b = [], numSubstitutions = 0, numMatches = 0;
while (a = re.exec(str))
{
var leftpart = a[1], pPad = a[2], pJustify = a[3], pMinLength = a[4];
var pPrecision = a[5], pType = a[6], rightPart = a[7];

numMatches++;
if (pType == '%')
{
subst = '%';
}
else
{
numSubstitutions++;
if (numSubstitutions >= arguments.length)
{
alert('Error! Not enough function arguments (' + (arguments.length - 1)
+ ', excluding the string)\n'
+ 'for the number of substitution parameters in string ('
+ numSubstitutions + ' so far).');
}
var param = arguments[numSubstitutions];
var pad = '';
if (pPad && pPad.substr(0,1) == "'") pad = leftpart.substr(1,1);
else if (pPad) pad = pPad;
var justifyRight = true;
if (pJustify && pJustify === "-") justifyRight = false;
var minLength = -1;
if (pMinLength) minLength = parseInt(pMinLength);
var precision = -1;
if (pPrecision && pType == 'f')
precision = parseInt(pPrecision.substring(1));
var subst = param;
switch (pType)
{
case 'b':
subst = parseInt(param).toString(2);
break;
case 'c':
subst = String.fromCharCode(parseInt(param));
break;
case 'd':
subst = parseInt(param) ? parseInt(param) : 0;
break;
case 'u':
subst = Math.abs(param);
break;
case 'f':
subst = (precision > -1)
? Math.round(parseFloat(param) * Math.pow(10, precision))
/ Math.pow(10, precision)
: parseFloat(param);
break;
case 'o':
subst = parseInt(param).toString(8);
break;
case 's':
subst = param;
break;
case 'x':
subst = ('' + parseInt(param).toString(16)).toLowerCase();
break;
case 'X':
subst = ('' + parseInt(param).toString(16)).toUpperCase();
break;
}
var padLeft = minLength - subst.toString().length;
if (padLeft > 0)
{
var arrTmp = new Array(padLeft+1);
var padding = arrTmp.join(pad?pad:" ");
}
else
{
var padding = "";
}
}
str = leftpart + padding + subst + rightPart;
}
return str;
}

function DrawPageLink(ItemsPerPage,TotalItems,ThisPage)
{
	var NumberOfPages = Math.ceil(TotalItems/ItemsPerPage);

	for(var CurrentPage = 1; CurrentPage < NumberOfPages + 1; CurrentPage++){
		var From = ItemsPerPage * (CurrentPage-1) + 1;
	        var To = From + ItemsPerPage - 1;
	        var strExtra = '';
	        var strUrl = '';

	        if(To > TotalItems) {To = TotalItems};

	        FromDone = sprintf("%02d",From);
	        ToDone = sprintf("%02d",To);

		if(From != To)
		{
			if (CurrentPage == ThisPage)
	        	{
				strExtra += '';
				strUrl = FromDone + '-' + ToDone;
			}else{
				strExtra += '';
				strUrl = '<a ' + strExtra + 'href="index.php?page=' + CurrentPage + '">' + FromDone + '-' + ToDone + '</a>';
			}

			document.write('&nbsp;&nbsp;'+strUrl);
			if (CurrentPage != NumberOfPages)
			{
				document.write('&nbsp;&nbsp;|');
			}
		}else{ // 25-25 will become just 25. this is in the case of one project in a page
			if (CurrentPage == ThisPage)
	        	{
				strExtra += '';
				strUrl = ToDone;
			}else{
				strExtra += '';
				strUrl = '<a ' + strExtra + 'href="index.php?page=' + CurrentPage + '">' + ToDone + '</a>';
			}

			document.write('&nbsp;&nbsp;'+strUrl);
			if (CurrentPage != NumberOfPages)
			{
				document.write('&nbsp;&nbsp;|');
			}
		}
	}
}

function DrawMenuHeader()
{
}

function DrawMenuFooter()
{
document.write('<hr><p><span class="MenuFoot">'+
'<a href="http://www.sourceforge.net/projects/gamedevprj" target="_blank"><img src="http://sourceforge.net/sflogo.php?group_id=70424&amp;type=1" alt="This project is hosted by SourceForge.NET" width="88" height="31" border="0"></a>' +
'<br><a href="http://validator.w3.org/check/referer" target="_blank"><img src="Images/html.gif" alt="Valid HTML 4.01" name="FootXhtml" id="FootXhtml" /></a>'+
'<br><a href="http://jigsaw.w3.org/css-validator/check/referer" target="_blank"><img src="Images/css.gif" alt="Valid CSS" name="FootCss" id="FootCss" /></a>'+
'</span></p>');
var ref = document.referrer;
if ((ref == undefined) || (ref == ""))
   ref = "none";
//document.write('<img src="http://gamedev.sf.net/ref.php?t_sub=Projs&ref_sub=' + ref + '" />');
}

var MenuIndented = false;
var ParCount = 0;

function MenuLink(Title,TheUrl)
{

	if (MenuIndented) {
		Style = 'IndentedMenuLink';
		document.write('<br/>&nbsp;&nbsp;&nbsp;<span class="IndentedMenu">');
	}else{
		Style = 'MenuLink';
		if (ParCount > 0)
		{
			document.write("</p>");
			ParCount--;
		}
		document.write('<p>');
		ParCount++;
	}
	document.write('<a href="' + TheUrl + '" class="' + Style +'" title="Go to ' + TheUrl + '">' + Title + '</a>');
	if (MenuIndented) document.write('</span>');
}

function MenuIndent()
{
	MenuIndented = true;
}

function MenuUnindent()
{
	MenuIndented = false;
}

function DrawMenu()
{
DrawMenuHeader();

MenuLink('Home','http://gamedev.sf.net');
MenuLink('GameDev&nbsp;Documentation','http://gamedev.sf.net/DocLink.html');
MenuIndent();
MenuLink('Included Docs', 'http://gamedev.sf.net/Help/Intro.htm');
MenuLink('FAQ/Tutorials', 'http://sourceforge.net/docman/index.php?group_id=9970');
MenuUnindent();
MenuLink('Downloads','http://gamedev.sf.net/download.shtml');
MenuLink('Projects','index.php');
MenuLink('Forums','http://gamedev.sf.net/Discuss.html');

MenuIndent();
MenuLink('Comdel (main)','http://gamedev.comdel.net');
MenuLink('EZBoard (old)','http://p199.ezboard.com/bgamedev43958');
MenuLink('SourceForge (old)','http://sourceforge.net/forum/forum.php?forum_id=31071');
MenuUnindent();

MenuLink('Project Summary','http://www.sourceforge.net/projects/gamedev/');

MenuIndent();
MenuLink('GameDev','http://www.sourceforge.net/projects/gamedev/');
MenuLink('GameDev Games','http://www.sourceforge.net/projects/gamedevprj/');
MenuUnindent();

MenuLink('Screenshots','http://gamedev.sf.net/Screens.shtml');
MenuLink('Links','http://gamedev.sf.net/links.shtml');
MenuLink('About the Author','http://gamedev.sf.net/About.shtml');
if (ParCount > 0) document.write("</p>");
}
