// Returns parent form of a given element
this.getParentForm = function(element)
{
	for(var i=0;i < document.forms.length; i++)
	{
		if(document.forms[i][element.id] == element)
			return document.forms[i];
	}
	//_Engine.writeError("jax Error : Your elements are not embedded inside a form");
	return null;
}




// Returns the submit button for a given form
this.getSubmitElement = function(currentForm)
{
	for(i=0;i<currentForm.length;i++)
	{
		var currentElement = currentForm.elements[i];
		var tmpString = currentElement.type;
		if(tmpString.toString().toLowerCase() == "submit")
			return currentElement;
	}
}



function getTest(obj)
{
	var getstr = "?";

	for (i=0; i<obj.childNodes.length; i++)
		getstr += obj.childNodes[i].tagName+', ';

	return getstr;
}



function get(obj)
{
	var getstr = '';  //"?";

	var inputObjects  	= obj.getElementsByTagName('input');
	var selectObjects 	= obj.getElementsByTagName('select');
	var textareaObjects = obj.getElementsByTagName('textarea');

	obj = inputObjects;
	for (i=0; i<obj.length; i++)
	{
		if (obj[i].type == "text")
		{
			getstr += obj[i].name + "=" + obj[i].value + "&";
		}
		if (obj[i].type == "hidden")
		{
			getstr += obj[i].name + "=" + obj[i].value + "&";
		}
		if (obj[i].type == "checkbox")
		{
			if (obj[i].checked)
			{
				//if(obj[i].value == 'on')
				//	getstr += obj[i].name + "=" + obj[i].nextSibling.nodeValue + "&";  //WHY DOESN'T firstChild.nodeValue WORK?
				//else						//ANSWER:  Because, nodes between input tags exist AFTER the in the DOM, not in
					getstr += obj[i].name + "=" + obj[i].value + "&";
			}
/*			else
			{
				getstr += obj[i].name + "=&";
			}
*/
		}
		if (obj[i].type == "radio")
		{
			if (obj[i].checked)
			{
				getstr += obj[i].name + "=" + obj[i].value + "&";
			}
		}
	}

	obj = selectObjects;
	var sel = null;
	var options = null;
	for (i=0; i<obj.length; i++)
	{
		sel = obj[i];
		if(sel.getAttribute('multiple') =='')
		{
			//document.write('<BR><BR>'+sel.selectedIndex);
			options = sel.getElementsByTagName('option');
			for(j=0;  j<options.length;  j++)
			{
				if(options[j].selected)
					getstr += sel.name + "=" + options[j].value + "&";
				/*
				else
				{
					getstr += sel.name + "=&";
				}
				*/
			}
		}
		else
		{
			if(sel.selectedIndex >= 0)
				getstr += sel.name + "=" + sel.options[sel.selectedIndex].value + "&";
		}
	}



	obj = textareaObjects;
	for (i=0; i<obj.length; i++)
	{
		getstr += obj[i].name + "=" + obj[i].value + "&";
	}


	return getstr;
}




function getNoHigherarchy(obj)
{
	var getstr = "?";
	for (i=0; i<obj.childNodes.length; i++) {
		if (obj.childNodes[i].tagName == "INPUT")
		{
			if (obj.childNodes[i].type == "text")
			{
				getstr += obj.childNodes[i].name + "=" + obj.childNodes[i].value + "&";
			}
			if (obj.childNodes[i].type == "checkbox")
			{
				if (obj.childNodes[i].checked)
				{
					getstr += obj.childNodes[i].name + "=" + obj.childNodes[i].value + "&";
				}
				else
				{
					getstr += obj.childNodes[i].name + "=&";
				}
			}
			if (obj.childNodes[i].type == "radio")
			{
				if (obj.childNodes[i].checked)
				{
					getstr += obj.childNodes[i].name + "=" + obj.childNodes[i].value + "&";
				}
			}
		}
		if (obj.childNodes[i].tagName == "SELECT")
		{
			var sel = obj.childNodes[i];
			getstr += sel.name + "=" + sel.options[sel.selectedIndex].value + "&";
		}

	}
	//makeRequest('get.php', getstr);
	return getstr;
}



function getPullDowns()
{
	var pullDowns = getElementsByClassName('pullDowns');
	document.write(pullDowns.length);


}





function setMultiValuesRequest(domElementID, tableName, column, primaryKey )
{

			new Ajax.Updater(domElementID,
				'/jobs/nursingceportal.com/getSelectItems-request.php',
				{
					method: 'get',
					parameters: { 	table: tableName,
									column: column,
									pk: primaryKey
								}
				}
			);
}




//=================================================================
function checkForUpdateMode(scriptName, formToUpdate, updateKey, updateVal)
{
	//document.write('scriptName: '+scriptName);
//	formToUpdate.disabled  = 'true';
/*  //URL Defined update/id - can be hacked by observing and altering URL - should use cookie
	var update = gup('update');		//document.write('['+update+']');
	if(update != '')
	{
 		var id = gup(update);
		if(id != '')
		{			//document.write('['+id+']');
			var str = 'update='+update+'&'+update+'='+id+'&formName=users';
			//document.write(str);
			makeHttpRequest(scriptName, 'GET', str, 'populateUpdateInfo', true);
		}
	}
*/

	//Use update/ID passed to function in parameters - latter should be retrieved from cookie.
	var getstr = 'update='+updateKey+'&'+updateKey+'='+updateVal+'&formName='+formToUpdate.name;

	makeHttpRequest(scriptName, 'POST', getstr, 'populateUpdateInfo', true);
}


function populateUpdateInfo(xmlData)
{
	var nodesRoot = xmlData.lastChild;
	var nodes  = nodesRoot.childNodes;
	var message = null;
//test(''+	xmlData.lastChild.innerHTML);
//test('&lt;' + nodes[0].tagName	+'>: '+	nodes[0].firstChild.nodeValue);
//testElement(nodes[0]);

	var formElems = [];
	if(nodes[0].nodeName == 'row')
	{
		var row = nodes[0];
//		document.write(row.firstChild.nodeValue + ', ');
		var rowNodes = nodes[0].childNodes;
//		document.write(rowNodes.length + ', ');
		for(var i=0; i<rowNodes.length;  i++)
		{
			formElems[i] = rowNodes[i].nodeName;
//			document.write(rowNodes[i].nodeName+', ');
		}

		var evalStr1 = 'var formToUpdate = document.' + row.getAttribute('formName');
//		document.write(evalStr1 + ', ');
		eval(evalStr1);
	}

	if(nodes[0].tagName == 'row')
	{
		var evalStr = null;

		for(i=0;  i<formElems.length;  i++)
		{
			//var evalStr2 = 'formToUpdate.'+formElems[i]+'.value = rowNodes[i].firstChild.nodeValue';
			var evalStr2 = 'if(formToUpdate.'+formElems[i]+') { formToUpdate.'+formElems[i]+'.value = rowNodes[i].firstChild.nodeValue; }';

			//document.write(evalStr2);
			if(rowNodes[i].childNodes.length > 0)
				eval(evalStr2);
		}
		//formToUpdate.style.display = null;  //POTENTIALLY USE block FOR IE?
//		formToUpdate.disabled  = 'false';
	}

}
//=================================================================


function responseMessage(xmlData, messageFieldArr, threeMessagesArr, colorForSuccessFailureElseArr)
{
	var nodesRoot = xmlData.lastChild;
	var nodes  = nodesRoot.childNodes;

	var message = null;
	var color = null;

	if(nodes[0].tagName == 'success')
	{
		color = colorForSuccessFailureElseArr[0];
		if(threeMessagesArr== null | threeMessagesArr[0] == null)
			message = nodes[0].firstChild.nodeValue;
		else
			message = threeMessagesArr[0];
	}
	else if(nodes[0].tagName == 'failure')
	{
		color = colorForSuccessFailureElseArr[1];
		if(threeMessagesArr== null | threeMessagesArr[1] == null)
			message = nodes[0].firstChild.nodeValue;
		else
			message = threeMessagesArr[1];

	}
	else
	{
		color = colorForSuccessFailureElseArr[2];
		if(threeMessagesArr== null | threeMessagesArr[2] == null)
			message = xmlData;
		else
			message = threeMessagesArr[2];
	}




	for(var i=0;  i<messageFieldArr.length;  i++)
	{
		document.getElementById(messageFieldArr[i]).style.display = 'block';
		document.getElementById(messageFieldArr[i]).style.backgroundColor = color;
		document.getElementById(messageFieldArr[i]).innerHTML = message;
	}

	return nodes[0].tagName;

}
