// JavaScript Document
var xmlhttp = false;

try
{
	xmlhttp = new ActiveXOblect("Msxml2.XMLHTTP");
} 
catch (e)
{
	try
	{
		xmlhttp = new ActiveXOblect("Microsoft.XMLHTTP");
	}
	catch (e)
	{
		xmlhttp = false;
	}
}

if (!xmlhttp && typeof XMLHttpRequest != 'undefined')
{
	xmlhttp = new XMLHttpRequest();
}

function makerequest( serverPage, objID )
{
	var obj = document.getElementById(objID);
	xmlhttp.open("GET", serverPage);
	xmlhttp.onreadystatechange = function()
	{
		if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
		{
			obj.innerHTML = xmlhttp.responseText;
		}
	}
	xmlhttp.send(null);
}

function autocomplete(value, e)
{
	theObj = document.getElementById("autocompletediv");
	
	theObj.style.visibility = "visible";
	theObj.style.width = "500px";
	
	var posx = 0;
	var posy = 0;
	
	posx = (findPosX (document.getElementById("rec[scaname]")) + 1);
	posy = (findPosY (document.getElementById("rec[scaname]")) + 18);
	
	theObj.style.left = posx + "px";
	theObj.style.top = posy + "px";
	
	var theextrachar = e.which;
	
	if(theextrachar == undefined)
	{
		theextrachar = e.keyCode;
	}
	
	var objID = "autocompletediv";
	
//	alert(theextrachar);
	
	if( theextrachar == 0 )
	{
		acObj = document.getElementById(objID);
		acObj.style.visibility = "hidden";
		acObj.style.hight = "0px";
		acObj.style.width = "0px";
		return;
	}
	else if( theextrachar == 8)
	{
		if( value.length == 1)
		{
			var serverPage = "autocomp.php";
		}
		else
		{
			var serverPage = "autocomp.php" + "?sstring=" + value.substr(0, (value.length -1));
		}
	}
	else
	{
		var serverPage = "autocomp.php" + "?sstring=" + value + String.fromCharCode (theextrachar);
	}
	
	var obj = document.getElementById(objID);
	xmlhttp.open("GET", serverPage);
	xmlhttp.onreadystatechange = function()
	{
		if( xmlhttp.readyState == 4 && xmlhttp.status == 200 )
		{
			obj.innerHTML = xmlhttp.responseText;
		}
	}
	xmlhttp.send(null);
}

function setvalue( value )
{
	acObj = document.getElementById("autocompletediv");
	acObj.style.visibility = "hidden";
	acObj.style.hight = "0px";
	acObj.style.width = "0px";

	document.getElementById("rec[scaname]").value = value;
}

function autocompout()
{
	acObj = document.getElementById("autocompletediv");
	acObj.style.visibility = "hidden";
	acObj.style.hight = "0px";
	acObj.style.width = "0px";
}

function validate( obj )
{
	var classes = obj.className.split(" ");
	if( classes.inArray( 'unique' ) )
	{
		chkUniqueName( obj, 'userid' );
	}
}

Array.prototype.inArray = function ( value )
{
	for ( var i=0; i<this.length; i++)
	{
		if( this[i] === value )
		{
			return true;
		}
	}
	return false;
}

function cancelRec()
{
	window.location = "index.php";
}

function chkUniqueName( obj, field )
{
	var errfield = 'err' + obj.id.substring( 3, obj.id.length );
	var input = obj.value;
	var serverPage = 'chkimg.php?i=' + input + '&f=' + field;
	makerequest( serverPage, errfield );
}

function getRecList( obj, field )
{
	var eventID = obj.options[obj.selectedIndex].value;
	var serverpage = 'reclist.php?selEvent='+eventID;
	makerequest( serverpage, field );
}

function checkRows( textArea )
{
	while( textArea.rows > 3 && textArea.scrollHeight < textArea.offsetHeight )
	{
		textArea.rows--;
	}

	while( textArea.scrollHeight > textArea.offsetHeight )
	{
		textArea.rows++;
	}
	return;
}

function showError( objID, errmsg )
{
	var obj = document.getElementById(objID);
	if( errmsg.length > 0 )
	{
		obj.style.display = "block";
		obj.innerHTML = "Error! " + getError( errmsg );
	}
	else
	{
		obj.style.display = "none";
		obj.innerHTML = "";
	}
}

function getError( errorCode )
{
	switch ( Number( errorCode ) )
	{
		case 401:
			errorText = "No match for user ID or email";
			break;
		default:
			errorText = "undefined.";
	}
	return errorText;
}

function addEventToList( srcObjID, targetID )
{
	var sobj = document.getElementById(srcObjID);
	var newID = sobj.options[sobj.selectedIndex].value;
	if( newID == 0 ) return false;
	
	var tbl = document.getElementById(targetID);
	var tbody = tbl.tBodies[tbl.tBodies.length -1];
	var lastRow = tbody.rows.length;
	var iteration = lastRow + 1;
	var row = tbody.insertRow(lastRow);
	row.onmouseover = function(){toggleClass( row );return false;}

	var newEvent = sobj.options[sobj.selectedIndex].text;
	var neDate = newEvent.split(" | ");
	var startChr = neDate[1].search(", {");
	var endChr = neDate[1].search("}");
	var neName = neDate[1].substring(0,startChr);
	var neBranch = neDate[1].substring(startChr + 3,endChr);
	sobj.remove(sobj.selectedIndex);

	var cellZero = row.insertCell(0);
	cellZero.style.textAlign = 'center';
	var delButton = document.createElement('span');
	delButton.title = "Delete this row";
	delButton.className = "delbtn";
	delButton.onclick = function(){deleteRow(this);return false;}
	delButton.innerHTML = "X";
	cellZero.appendChild(delButton);

	var eventID = document.createElement('input');
	eventID.className = 'hide';
	eventID.setAttribute('type', 'hidden');
	eventID.setAttribute('name', 'arrEvents[' + lastRow + ']' );
	eventID.setAttribute('value', newID);
	cellZero.appendChild(eventID);

	var cellOne = row.insertCell(1);
	cellOne.style.textAlign = 'center';
	var eventDate = document.createTextNode(neDate[0]);
	cellOne.appendChild(eventDate);

	var cellTwo = row.insertCell(2);
	var eventName = document.createTextNode(neName);
	cellTwo.appendChild(eventName);

	var cellThree = row.insertCell(3);
	var eventBranch = document.createTextNode(neBranch);
	cellThree.appendChild(eventBranch);

	altRowClasses( tbl, "row" );
	sobj.selectedIndex = 0;
}

function addToSelect( objId, txtOption, valOption  )
{
	var obj = document.getElementById( objId );
	var idx = obj.length;
	for( var i=1; i<idx; i++ )
	{
		var selDate = obj.options[i].text.split(" | ")[0];
		if( selDate >= txtOption.split(" | ")[0] )
		{
			idx = obj.options[i].index;
		}
	}
	try
	{
		obj.add(new Option(txtOption, valOption), obj.options[idx]);
		return true;
	}
	catch(e)
	{
		obj.add(new Option(txtOption, valOption), idx);
		return true;
	}
}

function deleteRow( r )
{
	var tbl = parentByTag( r, 'table' );
	var i = parentByTag( r, 'tr' ).rowIndex;
	var row = tbl.rows[i];
	var txtOption = row.cells[1].innerHTML + " | " + row.cells[2].innerHTML + ", {" + row.cells[3].innerHTML + "}";
	var contents = row.cells[0].getElementsByTagName( 'input' );
	var txtValue = contents[0].value;
	tbl.deleteRow(i);
	altRowClasses( tbl, "row" );
	addToSelect( 'selEvent', txtOption, txtValue );
}

function parentByTag( node, tag )
{
    while( node != null )
    {
        if( node.tagName == tag.toUpperCase() ) return node;
        node = node.parentNode;
    }
    return null; // or -1 or ???
}

function toggleClass( obj, repl )
{
	var oldClass = obj.className;
	obj.className = repl;
	obj.onmouseout = function(){toggleClass(obj,oldClass);return false;} /* obj.className=oldClass;return false;} */
}

function toggleExpand( objID )
{
	var obj = document.getElementById( objID );
	var oldClass = obj.className;
	obj.className = (oldClass == "hide") ? "show" : "hide" ;
}

function findPosX(obj)
{
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft;
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
	{
		curleft += obj.x;
	}
	return curleft;
}

function findPosY(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop;
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
	{
		curtop += obj.y;
	}
	return curtop;
}

function awardList(obj, cat)
{
	if(obj.checked == 0)
	{
//		serverPage = "awardSelect.php";
	}
	else
	{
		if( cat == "group" )
		{
			document.getElementById('rec[minor]').checked = false;
//			serverPage = "awardSelect.php?cat=group";
		}
		if( cat == "minor" )
		{
			document.getElementById('rec[group]').checked = false;
//			serverPage = "awardSelect.php?cat=minor";
		}
	}
//	makerequest( serverPage, 'rec[honorkey]' );
}
