//-----------------------------
function stopEnterKey(evt) {
  var evt = (evt) ? evt : ((event) ? event : null);
  var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
  if ((evt.keyCode == 13) && (node.type=="text"))  {return false;}
}
document.onkeypress = stopEnterKey;
//-----------------------------
function rnd(){
	return String((new Date()).getTime()).replace(/\D/gi,'')
}
//-----------------------------
function showDiv(boxid){
	if(!document.getElementById(boxid)) return;
	document.getElementById(boxid).style.visibility="visible";
	document.getElementById(boxid).style.display="block";
}
//-----------------------------
function hideDiv(boxid){
	if(!document.getElementById(boxid)) return;
	document.getElementById(boxid).style.visibility="hidden";
	document.getElementById(boxid).style.display="none";
}
//-----------------------------
function toggleHideDiv(boxid){
	// if clicked, show if hidden, hide if visible
	if(!document.getElementById(boxid)) return;
	var boxStyle = document.getElementById(boxid).style; 
	if(boxStyle.visibility == "hidden" || boxStyle.display == "none"){
		boxStyle.visibility ="visible";
		boxStyle.display = "block";
	}
	else{
		boxStyle.visibility ="hidden";
		boxStyle.display = "none";
	}
}
//-----------------------------
function removeElement(divNum,toThisParent) {
	if(toThisParent == null){
		toThisParent = 'blankDivParent';
	}
	var parentObject = document.getElementById(toThisParent);
	var oldDiv = document.getElementById(divNum);
	parentObject.removeChild(oldDiv);
}
//-----------------------------
function addSequentialElement(toThisParent) {
	if(toThisParent == null){
		toThisParent = 'blankDivParent';
	}
	var ni = document.getElementById(toThisParent);
	var numi = document.getElementById('blankDivIdValue');
	var num = (document.getElementById('blankDivIdValue').value -1)+ 2;
	numi.value = num;
	var newdiv = document.createElement('div');
	var divIdName = 'new'+num+'Div';
	newdiv.setAttribute('id',divIdName);
	ni.appendChild(newdiv);
	return (divIdName);
}
//-----------------------------
function checkDropDown(selectBoxToWorkWith){
	thisDropDown = document.getElementById(selectBoxToWorkWith);
	selectedValue = thisDropDown.value;
	if(selectedValue == -1){
		// "add new item" was chosen
		changeSelectToInput(selectBoxToWorkWith);
	}
	selectBoxToWorkWithNoNumbers = selectBoxToWorkWith.replace(/[^\d]/g, "");
	if(selectBoxToWorkWith.indexOf('elementTypes')>-1){
		if(selectedValue == 2 || selectedValue == 29){
			// 2 is Hymn chosen, 29 is Chorus chosen, show right list:
			status("Getting songs: " + selectBoxToWorkWith);
			getResponse("application.php?doAction=showElements&elementType=" + selectedValue + "&sequentialJavascriptId=" + selectBoxToWorkWithNoNumbers,"newElement"+selectBoxToWorkWithNoNumbers);
		}
	}
	else if(selectBoxToWorkWith.indexOf('role')>-1){
		// Role drop down selected, change the person drop down to only those in this role
		if(thisDropDown.value > 0){
			// Sometimes this gives a javascript error, I think because it cannot find the div to insert the response into. 
			// I know this happens on the Schedule page. It might happen elsewhere.
			getResponse("application.php?doAction=showRolesPeople&roleType=" + thisDropDown.value + "&sequentialJavascriptId=" + selectBoxToWorkWithNoNumbers,"newElement"+selectBoxToWorkWithNoNumbers);
		}
	}
}
//-----------------------------
function changeSpanToInput(spanToChange){
	spanObject = document.getElementById(spanToChange);
	newInputBox = document.createElement('input');
	newInputBox.setAttribute('name',spanToChange);
	newInputBox.setAttribute('id',spanToChange + 'Input');
	var inputValue = spanObject.innerHTML.replace('&nbsp;','');
	newInputBox.setAttribute('value',inputValue);
	newInputBox.setAttribute('onblur',"submitQueryToServer('" + spanToChange + "Form','application.php?doAction=updateMiscField&field=" + spanToChange + "', '" + spanToChange + "');document.getElementById('" + spanToChange + "').style.display='inline';document.getElementById('" + spanToChange + "' + 'Input').parentNode.removeChild(document.getElementById('" + spanToChange + "' + 'Input'));");
	spanObject.parentNode.insertBefore(newInputBox,spanObject);
	spanObject.style.display = "none";
	newInputBox.focus();
}
//-----------------------------
function changeSelectToInput(selectToChange){
	selectObject = document.getElementById(selectToChange);
	newInput=document.createElement('input');
	newInput.type='text';
	newInput.setAttribute('name',selectObject.name);
	newInput.setAttribute('id',selectObject.id);
	newInput.setAttribute('onblur','addItemToDropDown(\''+ selectToChange + '\')');
	selectObject.parentNode.insertBefore(newInput,selectObject);
	selectObject.parentNode.removeChild(selectObject);
	newInput.focus();
}
//-----------------------------
function addItemToDropDown(fieldName){
	var tableToSave = fieldName.replace(/[\d]+/,"");
	var fieldNum = fieldName.replace(/[a-z]+/i,"");
	var newValue = document.getElementById(fieldName).value;
	getResponse("application.php?doAction=addToDropdown&table="+tableToSave+"&value="+newValue+"&sequentialJavascriptId=" + fieldNum,fieldName+'Wrapper');
}
//-----------------------------
function editServicesRow(serviceId,rowId){
	var rowIdNumber = rowId.replace(/[^\d]/g, "");
	var newWrapperDiv=document.createElement('div');
	var currentRow = document.getElementById(rowId);
	currentRow.parentNode.insertBefore(newWrapperDiv,currentRow);
	newWrapperDiv.setAttribute('id','parent'+rowIdNumber);
	newWrapperDiv.setAttribute('class','inlineDiv');
	newWrapperDiv.style.position='absolute';
	currentRow.style.visibility = "hidden";
	getResponse("application.php?doAction=editServiceRow&order_id="+rowIdNumber+"&service_id="+serviceId,'parent'+rowIdNumber);
}
//-----------------------------
function status(content){
	var feedBack = document.getElementById('feedBack');
	feedBack.innerHTML = content;
	showDiv('feedBack');
	setTimeout("hideDiv('feedBack')", 3000);
}
//-----------------------------
function clientSideInclude(id, url) {
	var req = false;
	if (window.XMLHttpRequest) {
		try {
			req = new XMLHttpRequest();
		}
		catch (e) {
			req = false;
		}
	}
	else if (window.ActiveXObject) {
		try {
			req = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e) {
			try {
				req = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e) {
				req = false;
			}
		}
	}
	var element = document.getElementById(id);
	if (!element) {
		alert("Bad id " + id + "passed to clientSideInclude." +	"You need a div or span element " + "with this id in your page.");
		return;
	}
	if (req) {
		req.open('GET', url, false);
		req.send(null);
		element.innerHTML = req.responseText;
	}
	else {
		element.innerHTML =
			"Sorry, your browser does not support XMLHTTPRequest objects. This page requires " +
			"Internet Explorer 5 or better for Windows, or Firefox for any system, or Safari. Other " +
			"compatible browsers may also exist.";
	}
}
//-----------------------------
function zebraStripe(id) {
		var even = false; //flag
	  	// arguments can be used, otherwise defaults are:
		var evenColor = arguments[1] ? arguments[1] : "#fff";
		var oddColor = arguments[2] ? arguments[2] : "#eee";
		var table = document.getElementById(id); // reference to desired table
		if (! table) { return; } // abort?
		var tbodies = table.getElementsByTagName("tbody");
		for (var h = 0; h < tbodies.length; h++) { 	// and iterate through tbodies
			// find all the <tr> elements... 
			var trs = tbodies[h].getElementsByTagName("tr");
			for (var i = 0; i < trs.length; i++) { // iterate
				// avoid rows that have a class attribute
				// or backgroundColor style
				if (!trs[i].style.backgroundColor) {
					// get all the cells in this row...
					var tds = trs[i].getElementsByTagName("td");
					// and iterate through them...
					for (var j = 0; j < tds.length; j++) {
						var mytd = tds[j];
						// avoid cells that have a class attribute
						// or backgroundColor style
						if (!hasClass(mytd) && !mytd.style.backgroundColor) {
							mytd.style.backgroundColor = even ? evenColor : oddColor;
						}
					}
				}
				even =  ! even; // flip from odd to even, or vice-versa
			}
		}
	}
	function hasClass(obj) { // part of zebraStripe
		var result = false;
		if (obj.getAttributeNode("class") != null) {
			result = obj.getAttributeNode("class").value;
		}
	return result;
}   
//-----------------------------
function filterList(textEntryBox,tableId){
	textQuery = textEntryBox.value.toLowerCase();
	var table = document.getElementById(tableId);
	for(var countRow=0; countRow < table.rows.length; countRow++){
		var row = table.rows[countRow];
		var cell = row.cells[0];
		content = cell.innerHTML;
		content = content.replace(/<[^<>]*>/g, "");
		content = content.toLowerCase();
		if(content.indexOf(textQuery) == -1){
			row.style.display = "none";
		}
		else{
			row.style.display = "block";
		}
	}
}
//-----------------------------
function areNewElementFieldsFilledIn(){
	// check radio
	var radios = document.getElementsByTagName('input');
	var elementValue;
	for (var i = 0; i < radios.length; i++) {
		if (radios[i].type === 'radio' && radios[i].checked) {
			// get value, set checked flag or do whatever you need to
			elementValue = radios[i].value;     
		}
	}
	// check name and author
	if(document.getElementById('name').value.length < 1){
		alert('Please enter a name for this element.');
		return false;
	}
	if(document.getElementById('author').value.length < 1){
		alert('Please enter an author for this element.');
		return false;
	}
	if(!elementValue){
		alert('Please choose an element type.');
		return false;
	}
	else{
		return true;
	}
}
//-----------------------------
function toggleButtonValue(objectId,offValue,onValue){
	theButton = document.getElementById(objectId);
	if(theButton.value == offValue){
		theButton.value = onValue;
	}
	else{
		theButton.value = offValue;
	}
}
//-----------------------------
function screenResolution(){
	var width = document.documentElement.clientWidth;
	if (width < 920){
		alert('Your screen is set to ' + width + ' pixels wide. This site is best viewed with a wider screen resolution. You should try to adjust your resolution using display settings in your control panel, or if possible maximize your window.');
	}
}


