function adminB(switch_) {
	var admin = document.images["admin"];
	var start = document.images["start"];		
	if ( switch_ == 1 ) {
		start.src = "images/start_admin_selected_left.png";
		admin.src = "images/start_admin_selected_right.png";
	}
	else { 
		start.src = "images/start_admin_left.png";
		admin.src = "images/start_admin_right.png";
	}
}

function startB(switch_) {
	var admin = document.images["admin"];
	var start = document.images["start"];		
	if ( switch_ == 1 ) {
		if (admin) {
			start.src = "images/start_selected_admin_left.png";
			admin.src = "images/start_admin_right.png";
		}
		else
			start.src = "images/start_selected.png";
	}
	else { 
		if (admin) {
			start.src = "images/start_admin_left.png";
			admin.src = "images/start_admin_right.png";
		}
		else
			start.src = "images/start.png";
	}
}

function RadioButton(n, nImages, newImageSrc, restoreSrc, kaartSrc) {
	var buttons = nImages;
	var i = 1;
		while (i <= buttons) {
			var name = document.images["button" +i];
			name.src = restoreSrc;
			i++;
		}
	n.src = newImageSrc;
	
	var kaart = document.images["kaart"];
	kaart.src = kaartSrc;
}

function swapCellColour(id, nColour, oColour) {
	var t_rows = document.getElementById('foo').rows;
	var n = "0";
	var t_row_nr = t_rows.length;
	while (n < t_row_nr) {
		var t_cells = t_rows[n].cells; 
		var t_cell_nr = t_cells.length;
		var i = "0";
			while (i < t_cell_nr) {
				t_cells[i].bgColor = oColour;
				i++;
			}
	n++;
	}
	document.getElementById(id).bgColor = nColour;
}

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_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_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 onStart()
{
	var form = document.forms["login"];
	form.elements["action"].value = "start";
	form.submit();
	return false;
}

function onAdmin()
{
	var form = document.forms["login"];
	form.elements["action"].value = "admin";
	form.submit();
	return false;
}

function onSelectAvatar(name)
{
	var form = document.forms["login"];
	form.elements["avatar"].value = name;
	
	return false;
}

function onSelectLocation(location)
{
	var form = document.forms["login"];
	form.elements["location"].value = location;
	
	return false;
}

function onRegistered(enable)
{
	var form = document.forms["login"];
	form.elements["action"].value = "setreg";
	form.elements["reglogin"].value = enable;
	form.submit();
	return false;
}

/****************************************************
 * Here the javascript functions added for the new
 * avatars start.
 ***************************************************/

/*  changes bg color, avatar element in login form and
	shows the avatar preview when an avatar is clicked */
function onSelectNewAvatar(cellIdx)
{
	var form = document.forms["login"];

	if (avatarsCurrentIndex + cellIdx >= avatarSet.IDs.length)
		return false;

	swapCellColour2(selectedAvatarIndex - avatarsCurrentIndex, cellIdx);
	selectedAvatarIndex = avatarsCurrentIndex + cellIdx;
	form.elements["avatar"].value = avatarSet.IDs[selectedAvatarIndex];

	showPreview(selectedAvatarIndex);

	return false;
}

/*  Shows the avatar preview image (when the user clicks on a thumb) */
function showPreview(avatarIdx) {
	document["avatar_preview"].src = avatarSet.previewDir + avatarSet.IDs[avatarIdx] + '.png';
}

/*  Puts cell color in yellow when the user clicks on its thumb.
	Puts the previously selected cell in white if it is being shown. */
function swapCellColour2(oldCellIdx, newCellIdx) {
	if (oldCellIdx >= 0 && oldCellIdx < 6) {
		CSSClass.remove("avatar_cell" + oldCellIdx, "avatar_selected");
		CSSClass.add("avatar_cell" + oldCellIdx, "avatar_not_selected");
	}

	if (newCellIdx >= 0 && newCellIdx < 6) {
		CSSClass.remove("avatar_cell" + newCellIdx, "avatar_not_selected");
		CSSClass.add("avatar_cell" + newCellIdx, "avatar_selected");
	}
}

/*  Scrolls the thumbs to the right when the user press the left arrow. */
function scrollAvatarsLeft() {
	if (avatarsCurrentIndex == 0)
		return;

	if ((avatarsCurrentIndex + 6) > avatarSet.IDs.length) {
		document.getElementById("avatar_cell5").style.visibility = "visible";
	}

	var oldCellIdx = selectedAvatarIndex - avatarsCurrentIndex;
	avatarsCurrentIndex -= 2;
	var newCellIdx = selectedAvatarIndex - avatarsCurrentIndex;

	displayAvatarThumbs();
	swapCellColour2(oldCellIdx, newCellIdx);

	document.getElementById("right_btn_img").style.visibility = "visible";

	hideLeftArrowIfNeeded();
}

/*  Scrolls the thumbs to the left when the user press the right arrow. */
function scrollAvatarsRight() {
	if ( (avatarsCurrentIndex + 6) >= avatarSet.IDs.length )
		return;

	var oldCellIdx = selectedAvatarIndex - avatarsCurrentIndex;
	avatarsCurrentIndex += 2;
	var newCellIdx = selectedAvatarIndex - avatarsCurrentIndex;

	var i = displayAvatarThumbs();
	swapCellColour2(oldCellIdx, newCellIdx);

	document.getElementById("left_btn_img").style.visibility = "visible";

	hideRightArrowIfNeeded();

	hideCells(i);
}

/*  Display the avatars in the respective cells and
	returns the number of displayed avatars (6 or 5) */
function displayAvatarThumbs() {
	for (var i = 0; i < 6 && (avatarsCurrentIndex + i) < avatarSet.IDs.length; i++) {
		var e = document.getElementById("avatar_img" + i);
		e.src = avatarSet.thumbDir + avatarSet.IDs[avatarsCurrentIndex + i] + ".png";
	}
	return i;
}

function doKey(event) {
	var code = event.charCode || event.keyCode;
	if (code == 13) {
		// Enter key
		return onStart();
	}
	return true;
}

function selectAvatar() {
	var cellIdx = selectedAvatarIndex - avatarsCurrentIndex;
	cell = document.getElementById('avatar_cell' + cellIdx);
	if (cell) {
		CSSClass.remove(cell, "avatar_not_selected");
		CSSClass.add(cell, "avatar_selected");
	}
}

function hideCells(from) {
	for (var i = from; i < 6; ++i)
	{
		cell = document.getElementById("avatar_cell" + i);
		if (cell)
			cell.style.visibility = "hidden";
	}
}

function hideEmptyCells() {
	hideCells(avatarSet.IDs.length - avatarsCurrentIndex);
}

function hideLeftArrowIfNeeded() {
	arrow = document.getElementById("left_btn_img");
	if (avatarsCurrentIndex == 0 && arrow)
		arrow.style.visibility = "hidden";
}

function hideRightArrowIfNeeded() {
	arrow = document.getElementById("right_btn_img");
	if ((avatarsCurrentIndex + 6) >= avatarSet.IDs.length && arrow)
		arrow.style.visibility = "hidden";
}

function showArrows() {
	hideLeftArrowIfNeeded();
	hideRightArrowIfNeeded();
}

/****************************************************
 * Here the javascript functions added for the new
 * avatars end.
 ***************************************************/

dojo.addOnLoad(function() {
	dojo.require("dijit.dijit"); // optimize: load dijit layer
	dojo.require("dijit.Dialog");
	dojo.require("dojo.parser");	// scan page for widgets and instantiate them
});

dojo.addOnLoad(selectAvatar);
dojo.addOnLoad(hideEmptyCells);
dojo.addOnLoad(showArrows);

