var inputField;
var hiddenInputField;
var completeDiv;
var nameTable;
var nameTableBody;

var KEY_UP = 38;
var KEY_DOWN = 40;
var KEY_ENTER = 13;

var intCellNr;

var arrEvenementCodes = new Array(0);


function enterNameOnSubmit()
{
	checkFormReturn = true;
	
	var strFormIdName01 = "ajaxform01";
	var strForm01 = document.getElementById(strFormIdName01);
	
	var strFormIdName02 = "ajaxform02";
	var strForm02 = document.getElementById(strFormIdName02);
	strForm02.submit.disabled = true;
	
	if (checkFormReturn && (strForm01.lijst01.value == "" && strForm01.lijst02.value == "" && strForm01.lijst03.value == ""))
	{
		window.alert("Geef tenminste 1 voorstelling op.");
		strForm02.submit.disabled = false;
		strForm01.lijst01.focus();
		
		checkFormReturn = false;
	}

	return checkFormReturn;

	return false;
}


function callBack(event, strAchterVoegsel)
{
	var key = event.keyCode;
	if (key == KEY_ENTER)
	{ 
		var strCellNameBefore;
	    var strCurrentCell;
	    	
	    strCellNameBefore = "cell" + intCellNr;
	    strCurrentCell = document.getElementById(strCellNameBefore);
	    populateName(strCurrentCell, intCellNr);
		return false;
	}
	else if ((key == KEY_DOWN || key == KEY_UP) )
    {
    	var strCellNameBefore;
    	var strCellNameAfter;
    	var strCurrentCell;
    	var strNextCell;
    	
    	strCellNameBefore = "cell" + intCellNr;
    	strCurrentCell = document.getElementById(strCellNameBefore);
    	if (key == KEY_UP)
    	{
    		if (intCellNr > 0)
    		{
    			intCellNr--;
    		}
    	}
    	else
    	{
    		intCellNr++;	
    	}
    	strCellNameAfter = "cell" + intCellNr;
    	strNextCell = document.getElementById(strCellNameAfter);
    	if (strNextCell != undefined)
    	{
    	    if (strCurrentCell != undefined)
	    	{
	    		strCurrentCell.className = "cell";
	    	}
    		strNextCell.className = "selectedItem";
    	}
    	else
    	{
    		intCellNr--;
    	}
    }
    else
    {
		completeDiv = document.getElementById("popup" + strAchterVoegsel);
		inputField = document.getElementById("lijst" + strAchterVoegsel);
		hiddenInputField = document.getElementById("hiddenLijst" + strAchterVoegsel);
		nameTable = document.getElementById("name_table" + strAchterVoegsel);
		nameTableBody = document.getElementById("name_table_body" + strAchterVoegsel);
		
		intCellNr = -1;
		
		if (inputField.value.length > 0)
		{
			if(strAchterVoegsel.indexOf("Artiest")>-1){
				xajax_findNames(inputField.value,"artiest");
			}
			else if(strAchterVoegsel.indexOf("Cabaretier")>-1){	
				xajax_findNames(inputField.value,"cabaretier");
			}else{
				xajax_findNames(inputField.value);
			}
			
		}
		else
		{
			clearNames();
		}
	}
	return true;
}


if (document.layers) window.captureEvents(Event.CLICK);
document.onclick = FocusOut;


function FocusOut(e)
{
	if (completeDiv == undefined) return; 
	
	var target;
	if (!e)
	{
		var e = window.event;
	}
	
	if (e.target)
	{
		target = e.target;
	}
	else if (e.srcElement)
	{
		target = e.srcElement;
	}
	
	if (target.nodeType == 3) // defeat Safari bug
	{
		target = target.parentNode;
	}
	
	if (target != completeDiv && target != inputField)
	{
		clearNames();
	}
}


function setNames(the_string_names)
{
	clearNames();
	if (the_string_names.length == 0)
	{
		return;
	}
	
	var the_names = the_string_names.split("|");
	
	var size = the_names.length;
	setOffsets();
	var row, cell, txtNode;
	
	for (var i = 0; i < size; i++)
	{
		var arrMatches = the_names[i].split(/}/);
		arrEvenementCodes[i] = arrMatches[0].substring(1);
		var nextNode = arrMatches[1];

		row = document.createElement("tr");
		cell = document.createElement("td");
		cell.onmouseout = function()
		{
			this.className='mouseOut';
		}
		cell.onmouseover = function()
		{
			this.className='mouseOver';
		}
		cell.className = "cell";
		cell.id = "cell" + i;
		cell.nr = i;

		cell.onclick = function()
		{
			populateName(this, this.nr);
		}
		txtNode = document.createTextNode(nextNode);
		cell.appendChild(txtNode);
		row.appendChild(cell);
		nameTableBody.appendChild(row);
	}
}


function setOffsets()
{
	var end = inputField.offsetWidth - 2;
	var left = calculateOffsetLeft(inputField);
	var top = calculateOffsetTop(inputField) + inputField.offsetHeight;
	completeDiv.style.border = "black 1px solid";
	//completeDiv.style.left = left + "px";
	//completeDiv.style.top = top + "px";
	nameTable.style.width = end + "px";
}


function calculateOffsetLeft(field)
{
	return calculateOffset(field, "offsetLeft");
}


function calculateOffsetTop(field)
{
	return calculateOffset(field, "offsetTop");
}


function calculateOffset(field, attr)
{
	var offset = 0;
	while(field)
	{
		offset += field[attr];
		field = field.offsetParent;
	}
	return offset;
}


function populateName(cell, i)
{
	inputField.value = cell.firstChild.nodeValue;
	hiddenInputField.value = arrEvenementCodes[i];
	clearNames();
}


function clearNames()
{
	var ind = nameTableBody.childNodes.length;
	for (var i = ind - 1; i >= 0 ; i--) 
	{
		nameTableBody.removeChild(nameTableBody.childNodes[i]);
	}
	completeDiv.style.border = "none";
	
	// arr leeg maken.
	arrEvenementCodes = new Array(0);
}