var checked = false;

/* ------------------------------------------- */
/* ----------------- GENERAL ----------------- */
/* ------------------------------------------- */

//Loopt door alle input elementen heen en als deze van het type
//checkbox is, vinkt ze allemaal aan of allemaal uit.
function checkAll(name)
{
	var inputs = document.getElementsByTagName('input');
	for(i=0; i<inputs.length; i++)
	{
		if(inputs[i].type == 'checkbox')
		{
			if(inputs[i].name.substring(0, name.length) == name)
			{
				if(checked == false)
				{
					inputs[i].checked = true;
				}
				else
				{
					inputs[i].checked = false;
				}
			}
		}
	}
	
	if(checked == true)
	{
		checked = false;
	}
	else
	{
		checked = true;
	}
}

function toggleVisibility(id)
{
	if(document.getElementById(id).style.display == 'block')
	{
		document.getElementById(id).style.display = 'none';
		return 0;
	}
	else
	{
		document.getElementById(id).style.display = 'block';
		return 1;
	}
}

function redirect(url)
{
	window.location=url;
}

function adddash(title)
{
	var position = window.location.href.search('#');
	if(position == -1)
	{
		window.location.href = window.location.href + '#' + title;
	}
	else
	{
		window.location.href = window.location.href.substring(0, position) + '#' + title;
	}
}

function checkdash(userid)
{
	var position = window.location.href.search('#');
	var dashvalue = '';
	if(position != -1)
	{
		dashvalue = window.location.href.substring(position+1);
	}
	
	switch(dashvalue)
	{
		case 'inbox':
			window.location = '/messages/inbox/' + userid;
			break;
		case 'outbox':
			window.location = '/messages/outbox/' + userid;
			break;
		case 'newmessages':
			window.location = '/messages/newmessages/' + userid;
			break;
	}
}

/* ------------------------------------------- */
/* ----------------- PLAYGAME ---------------- */
/* ------------------------------------------- */

//Kan tijdens het stemmen in de playgame view iets doen.
function loading()
{
}

//Haalt na het stemmen in de playgame view de stemknoppen weg
//Zet er een klein tekstje voor in de plaats.
function loaded()
{
	var Node = document.getElementById('scorebuttons');
	Node.parentNode.removeChild(Node);		
	
	Node = document.getElementById('scoretext');
	/*Node.parentNode.removeChild(Node);*/
	Node.innerHTML = "Stem verwerkt -->";
}

//Het laten oplichten van de sterren in de playgame view.
function updatestars(number)
{
	for(i=1; i<=number; i++)
	{
		document.getElementById('star'+i).src = "/img/star.gif";
	}
}

//Het dimmen van alle sterrenin de playgame view.
function clearstars(number)
{
	for(i=1; i<=number; i++)
	{
		document.getElementById('star'+i).src = "/img/star2.gif";
	}
}

//Haalt de knop waarmee je een spel kan toevoegen aan je favorieten weg in de playgame view.
function removefavo()
{
	var Node = document.getElementById('favorite');
	/*Node.parentNode.removeChild(Node);*/
	Node.innerHTML = "&nbsp;Toegevoegd aan persoonlijke pagina";
}

/* ------------------------------------------- */
/* ----------------- PERSONAL ---------------- */
/* ------------------------------------------- */

//Laat in de personal page view de editbox zien of verbergt deze weer.
//Stelt ook wat dingen in op hun standaard waarden als je sluit ipv opslaat.
function toggleEditor(id, save)
{
	var returnvalue = toggleVisibility(id+'_ajaxeditor');
	
	if(returnvalue == 0)
	{
		if(save == 'false')
		{
			/* Stel titel in balkje op standaard in */
			updatetitle(id, document.getElementById(id + '_defaulttitle').value);
			/* Stel titel in hidden field op standaard in */
			document.getElementById(id + '_ajaxeditortitle').value = document.getElementById(id + '_defaulttitle').value;
			/* Stel kleur in hidden field en in balke op standaard in */
			updatecolor(id, document.getElementById(id + '_defaultcolor').value);
		}
		else
		{
			document.getElementById(id + '_defaulttitle').value = document.getElementById(id + '_ajaxeditortitle').value;
			document.getElementById(id + '_defaultcolor').value = document.getElementById(id + '_ajaxeditorcolor').value;
		}
	}
}

//Update de titel van een gamebox in de persoonlijke pagina realtime als je deze wijzigt.
function updatetitle(id, text)
{
	if(text == id)
	{
		document.getElementById(id + '_ajaxtitle').innerHTML = '<strong>' + document.getElementById(id + '_ajaxeditortitle').value + '</strong>';
	}
	else
	{
		document.getElementById(id + '_ajaxtitle').innerHTML = '<strong>' + document.getElementById(id + '_defaulttitle').value + '</strong>';	
	}
}

//Update de kleur van een gamebox in de persoonlijke pagina realtime als je deze wijzigt.
function updatecolor(id, color)
{
	document.getElementById(id + '_ajaxbox').className = color;
	document.getElementById(id + '_ajaxeditorcolor').value = color;
}

//Voegt/verwijdert na het verslepen van een complete groep op de persoonlijke pagina
//een lege LI toe zodat het verslepen via AJAX goed blijft gaan.
function loadingSortBox(id)
{
	var ul = document.getElementById(id);
	for(i=0;i<ul.childNodes.length;i++)
	{
		if(ul.childNodes[i].className == 'fillli')
		{
			ul.removeChild(ul.childNodes[i]);
		}
	}

	if(ul.childNodes.length == 0)
	{
		var nogame = document.createElement('LI');
		nogame.className = 'fillli';
		ul.appendChild(nogame);
	}
}

//Verwijdert een complete groep van de persoonlijke pagina en voegt indien
//nodig een lege LI toe zodat het verslepen via AJAX goed blijft gaan.
function delgroupcomplete(column, row)
{
	var ul = document.getElementById('column'+column);
	for(i=0;i<ul.childNodes.length;i++)
	{
		if(ul.childNodes[i].id == 'column'+column+'_'+row)
		{
			ul.removeChild(ul.childNodes[i]);
		}
	}
	if(ul.childNodes.length == 0)
	{
		var nogame = document.createElement('LI');
		nogame.className = 'fillli';
		ul.appendChild(nogame);
	}	
}

//Verwijdert een favoriet uit een lijst op de persoonlijke pagina en roept
//hierna sortgamecomplete aan om alle kleuren ed weer goed te zetten.
function delfavocomplete(id, usergameid)
{
	var ul = document.getElementById(id + '_gamelist');
	for(i=0;i<ul.childNodes.length;i++)
	{
		if(ul.childNodes[i].id == id + '_gamelist_' + usergameid)
		{
			ul.removeChild(ul.childNodes[i]);
		}
	}	
	sortgamecomplete(id);
}

//Stelt de achtergrondkleuren van de LI's op de persoonlijke pagina goed in na het
//verslepen van een spel. Zorgt er ook via reguliere expressies voor dat de juiste
//box geupdate wordt en verwijdert/voegt de LI met 'Geen spellen' zodat het verslepen
//via AJAX goed blijft gaan.
function sortgamecomplete(id)
{
	var ul = document.getElementById(id + '_gamelist');
	var newnumber = '';
	if (ul.childNodes.length == 0)
	{
		var nogame = document.createElement('LI');
		nogame.className = 'nogame';
		nogame.innerHTML = 'Geen spellen';
		ul.appendChild(nogame);
		updatedivpers('', id, '', '', '');
	}
	else
	{
		for(i=0;i<ul.childNodes.length;i++)
		{
			if(ul.childNodes[i].className == 'nogame')
			{
				ul.removeChild(ul.childNodes[i]);
			}
		}
		
		for(i=0;i<ul.childNodes.length;i++)
		{
			if(i%2==0)
			{
				ul.childNodes[i].className = 'game';
			}
			else
			{
				ul.childNodes[i].className = 'colored game';
			}
			
			newnumber = i+1;
			newnumber = newnumber.toString();
			if(newnumber.length == 1)
			{
				newnumber = '0' + newnumber + '.';
			}
			var objRegExp = /\d\d\./;
			ul.childNodes[i].innerHTML = ul.childNodes[i].innerHTML.replace(objRegExp, newnumber);

			var objRegExp = /gamebox\d/g;
			ul.childNodes[i].innerHTML = ul.childNodes[i].innerHTML.replace(objRegExp, id);
		}
	}
}

//Update de naam, het plaatje, het aantal keer gespeeld en het cijfer
//van een spel op de persoonlijke pagina als je over de titel beweegt met de muis.
function updatedivpers(gameid, field, titel, playedtotal, grade) 
{
	document.getElementById(field+"_image").style.backgroundImage = "url("+IMAGE_URL+"/gamepics_small/"+gameid+".jpg)";
	titelnew = titel.substr(0, 15);
	if(titelnew != titel)
	{
		titelnew = titelnew + "..";	
	}
	document.getElementById(field+"_title").innerHTML = '<strong>'+titelnew+'</strong>';
	document.getElementById(field+"_played").innerHTML = playedtotal;
	document.getElementById(field+"_vote").innerHTML = grade;
}

/* ------------------------------------------- */
/* ------------------ INDEX ------------------ */
/* ------------------------------------------- */

//Update de naam, het plaatje, het aantal keer gespeeld en het cijfer
//van een spel op de indexpagina als je over de titel beweegt met de muis.
function updatediv(gameid,categoryid,titel, playedtotal, grade, playedyesterday) 
{
	document.getElementById('imageholder'+categoryid).style.backgroundImage = "url("+IMAGE_URL+"/gamepics_small/"+gameid+".jpg)";
	titelnew = titel.substr(0, 14);
	if(titelnew != titel)
	{
		titelnew = titelnew + "..";	
	}
	document.getElementById('titleholder'+categoryid).innerHTML = '<strong>'+titelnew+'</strong>';
	document.getElementById('playedholder'+categoryid).innerHTML = playedtotal;
	document.getElementById('played2holder'+categoryid).innerHTML = playedyesterday;
	document.getElementById('gradeholder'+categoryid).innerHTML = grade;
}

function showMenuExtras()
{
	var menuitem;
	menuitem = document.getElementById('extra_menu_1')
	menuitem.className = 'extra_menu_content';
	menuitem.innerHTML = document.getElementById('extra_menu_hidden_1').innerHTML;

	menuitem = document.getElementById('extra_menu_2')
	menuitem.className = 'extra_menu_content';
	menuitem.innerHTML = document.getElementById('extra_menu_hidden_2').innerHTML;

	menuitem = document.getElementById('extra_menu_3')
	menuitem.className = 'extra_menu_content';
	menuitem.innerHTML = document.getElementById('extra_menu_hidden_3').innerHTML;

	menuitem = document.getElementById('extra_menu_7')
	menuitem.className = 'extra_menu_content';
	menuitem.innerHTML = document.getElementById('extra_menu_hidden_7').innerHTML;	

	menuitem = document.getElementById('extra_menu_4')
	menuitem.className = 'extra_menu_content';
	menuitem.innerHTML = document.getElementById('extra_menu_hidden_4').innerHTML;
	
	menuitem = document.getElementById('extra_menu_5')
	menuitem.className = 'extra_menu_content';
	menuitem.innerHTML = document.getElementById('extra_menu_hidden_5').innerHTML;
	
	menuitem = document.getElementById('extra_menu_6')
	menuitem.className = 'extra_menu_content';
	menuitem.innerHTML = document.getElementById('extra_menu_hidden_6').innerHTML;
}
