var submitcount=0;
var arrayStringDelimiter = "&item;";
var arrayStringChunkDelimiter = "&chunk;";

var Dom = 
{
	get: function(el)
	{
		if (typeof el === 'string')
		{
			return document.getElementById(el);
			
		} else 
		{
			return el;
		}
	},
	
	add: function(el, dest) 
	{
		var el = this.get(el);
		var dest = this.get(dest);
		dest.appendChild(el);
	},
	
	remove: function(el) 
	{
		var el = this.get(el);
		el.parentNode.removeChild(el);
	}
};

var Event =
{
	add: function()
	{
		if (window.addEventListener)
		{
			return function(el, type, fn)
			{
				Dom.get(el).addEventListener(type, fn, false);
			};
			
		} else if (window.attachEvent)
		{
			return function(el, type, fn)
			{
				var f = function()
				{
					fn.call(Dom.get(el), window.event);
				};
				
				Dom.get(el).attachEvent('on' + type, f);
				
			};
		}
	}()
};


function setFeedbackChild(childname, feedbacktext, style)
{
	// remove old child
		
		document.getElementById(childname).removeChild(document.getElementById(childname).lastChild);
		
	// set feedback style
		
		document.getElementById(childname).setAttribute('class', style);
		
	// add new child
		
		var textNode=document.createTextNode(feedbacktext);
		
		document.getElementById(childname).appendChild(textNode);
		
		//document.getElementById(childname).appendChild(mytext)
		
		//document.getElementById(childname).replaceChild(textNode, oldElement);
		
}

function submitform(formname)
{	
	document.formname.submit();
	
}

function confirmDialog(message, url)
{
	if(confirm(message)) location.href = url;

}

function cmsTime_inputCheck(elementID, option)
{
	switch(option)
	{
		case "numbersOnlyHour":
			
			var inputString = document.getElementById(elementID).value;
			var stringLength = inputString.length;
			
			if(inputString > 12) {
				var cleanedString = inputString.substring(0, (stringLength) - 1);
				document.getElementById(elementID).value = cleanedString
				return
		   }
		   
		   var searchExp = /[0-9]/;
		   var lastChar = inputString.charAt((stringLength) - 1);
		   if(lastChar.search(searchExp) == -1) {
			   var cleanedString = inputString.substring(0, (stringLength) - 1);
			   document.getElementById(elementID).value = cleanedString
		   }
		   
		break;
		
		case "numbersOnlyMinute":
			
			var inputString = document.getElementById(elementID).value;
			var stringLength = inputString.length;
			
			if(inputString > 59) {
				var cleanedString = inputString.substring(0, (stringLength) - 1);
				document.getElementById(elementID).value = cleanedString
				return
		   }
			
			var searchExp = /[0-9]/;
			var lastChar = inputString.charAt((stringLength) - 1);
			if(lastChar.search(searchExp) == -1) {
				var cleanedString = inputString.substring(0, (stringLength) - 1);
				document.getElementById(elementID).value = cleanedString
		   }
		   
		break;
		
	}
   
}

function cmsReferenceIDArray_refresh(columnName, elementNumber, forceRefresh)
{
	// variables
		
		var selectElementsArray=document.getElementById(columnName + ":table").getElementsByTagName("select");
		var numOfSelectElements=selectElementsArray.length;
		var changedSelectVal=document.getElementById(columnName + ":" + elementNumber).value
		var refreshSelectElements=0;
		
		
	// find if an element refresh is required because of this change
		
		if(forceRefresh==0)
		{
			if(changedSelectVal==0)
			{
				refreshSelectElements = 1;
				
			}
			
			if(elementNumber==numOfSelectElements)
			{
				refreshSelectElements = 1;
				
			}
			
			if(refreshSelectElements==0)
			{
				return;
			}
		}
		
	// store all non zero select values in an array
		
		var selectedValuesArray = new Array()
		
		for (i=1;i<=numOfSelectElements;i++) 
		{
			var selectVal=document.getElementById(columnName + ":" + i).value
			if(selectVal != 0)
			{
				selectedValuesArray[selectedValuesArray.length]=selectVal
			}
		}
		
		
	// store option values and text from select in array
		
		var optionsValuesString=document.getElementById(columnName + ":valuesArray").value
		var optionsTextString=document.getElementById(columnName + ":textArray").value
		
		//var optionsValueArray=optionsValuesString.split(",");
		//var optionsTextArray=optionsTextString.split(",");
		
		var optionsValueArray=optionsValuesString.split(arrayStringDelimiter);
		var optionsTextArray=optionsTextString.split(arrayStringDelimiter);
		
	// delete all select elements
		
		var selectTable=document.getElementById(columnName + ":table");	
		while( selectTable.hasChildNodes() ) { selectTable.removeChild(  selectTable.lastChild ); }
		
	// recreate necessary select elements
		
		var numOfNewElements=selectedValuesArray.length;
		
		// make sure there is a minimum of two select elements
			
			if(numOfNewElements<1)
			{
				numOfNewElements=1;
			}
		
		for (i=1;i<=(numOfNewElements+1);i++) 
		{
			
			// create elements
				
				var theTable=document.getElementById(columnName + ":table")
				
				var rowArray=theTable.rows
				var newRowNumber=rowArray.length
				
				var newRow = theTable.insertRow(newRowNumber)
				var newCell = newRow.insertCell(0)
					
				//var trElement=document.createElement('tr');
				//var tdElement=document.createElement('td');
				var selectElement=document.createElement('select');
				
				selectElement.setAttribute('name', (columnName + ":" + i));
				selectElement.setAttribute('id', (columnName + ":" + i));
				
				eval("selectElement.onchange=function(){cmsReferenceIDArray_refresh(\'" + columnName + "\', " + i + ",0)};")
				
				
				//document.getElementById(columnName + ":table").appendChild(trElement)
				//trElement.appendChild(tdElement)
				//tdElement.appendChild(selectElement)
				newCell.appendChild(selectElement)
				
				for (j=0;j<(optionsValueArray.length);j++) 
				{
					
					var optionElement=document.createElement('option');
					optionElement.setAttribute('value', optionsValueArray[j]);
					
					selectElement.appendChild(optionElement);
					
					var optionTextNode=document.createTextNode(optionsTextArray[j]);
					optionElement.appendChild(optionTextNode)
					
					if(optionsValueArray[j] == selectedValuesArray[(i-1)])
					{
						optionElement.selected=true;
					}
					
					
				}
				
				// if reference record id doesn't exist in reference table
					
					if(selectedValuesArray.length != 0)
					{
						var found = 0;
						for (k=0;k<( optionsValueArray.length);k++) 
						{
							if(selectedValuesArray[(i-1)] ==  optionsValueArray[k])
							{
								found = 1;
								break;
							}
						}
						
						if(selectedValuesArray[(i-1)] != 0 && found == 0 && i!=(numOfNewElements+1)){
							
							var optionElement=document.createElement('option');
							optionElement.setAttribute('value', selectedValuesArray[(i-1)]);
								
							optionElement.selected=true
							
							selectElement.appendChild(optionElement);
							
							var optionTextNode=document.createTextNode("(deleted entry)");
							optionElement.appendChild(optionTextNode)
							
						}
					} 
		}   
		
	// update number of select elements
		
		document.getElementById(columnName + ":numOfSelects").value=(numOfNewElements+1);

}

function cmsReferenceID_refresh(columnName)
{
	// store selected value
		
		var selectVal=document.getElementById(columnName + "-optionSelect").value
		
	// store option values and text from select in array
		
		var optionsValuesString=document.getElementById(columnName + ":valuesArray").value
		var optionsTextString=document.getElementById(columnName + ":textArray").value
		
		// var optionsValueArray=optionsValuesString.split(",");
		// var optionsTextArray=optionsTextString.split(",");
		
		var optionsValueArray=optionsValuesString.split(arrayStringDelimiter);
		var optionsTextArray=optionsTextString.split(arrayStringDelimiter);
		
	// delete all select options
		
		var selectElement=document.getElementById(columnName + "-optionSelect");	
		while( selectElement.hasChildNodes() ) { selectElement.removeChild(  selectElement.lastChild ); }
		
	// recreate necessary select options
		
		var numOfOptions=optionsValueArray.length;
		
		for (i=0;i<(numOfOptions);i++) 
		{
			var optionElement=document.createElement('option');
			optionElement.setAttribute('value', optionsValueArray[i]);
					
			selectElement.appendChild(optionElement);
			
			var optionTextNode=document.createTextNode(optionsTextArray[i]);
			optionElement.appendChild(optionTextNode)
			
			if(optionsValueArray[i] == selectVal)
			{
				optionElement.selected=true;
			}
		}
		
	// if selected value no longer exists in options
		
		if(optionsValueArray.length != 0)
		{
			var found = 0;
			for (k=0;k<( optionsValueArray.length);k++) 
			{
				if(selectVal ==  optionsValueArray[k])
				{
					found = 1;
					break;
				}
			}
			
			if(selectVal != 0 && found == 0){
				
				var optionElement=document.createElement('option');
				optionElement.setAttribute('value', selectVal);
					
				optionElement.selected=true
				
				selectElement.appendChild(optionElement);
				
				var optionTextNode=document.createTextNode("(deleted entry)");
				optionElement.appendChild(optionTextNode)
				
			}
		} 
	
}

function cmsReferenceIDArray_ajaxRefreshOptions(columnName, tableName)
{
	//setFeedbackChild("feedback", ("* Options have been refreshed"),  "feedbackstyleBlack");
	var ajaxRequest;  // The variable that makes Ajax possible!
	
	try{
		// Opera 8.0+, Firefox, Safari
		ajaxRequest = new XMLHttpRequest();
	} catch (e){
		// Internet Explorer Browsers
		try{
			ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try{
				ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e){
				// Something went wrong
				alert("Your browser broke!");
				return false;
			}
		}
	}
	
	
	// Create a function that will receive data sent from the server
		
		ajaxRequest.onreadystatechange = function(){
			
			if(ajaxRequest.readyState == 4){
				
				//var ajaxResponseArray=ajaxRequest.responseText.split(":");
				var ajaxResponseArray=ajaxRequest.responseText.split(arrayStringChunkDelimiter);
				
				document.getElementById(columnName + ":valuesArray").value=ajaxResponseArray[0];
				document.getElementById(columnName + ":textArray").value=ajaxResponseArray[1];
				
				cmsReferenceIDArray_refresh(columnName, 1, 1);
				
				//setFeedbackChild("feedback", ("* Options have been refreshed"),  "feedbackstyleBlack");
				setFeedbackChild((columnName+"-feedback"), ("* Options have been refreshed"),  "feedbackstyleBlack");
				
			}
		}
		
	
	
	var processFunction = "cmsReferenceIDArray_ajaxRefreshOptions";
	var getString = "?processfunction=" + processFunction + "&columnname=" + columnName + "&tablename=" + tableName + "&dummy=" + new Date().getTime();
	
	ajaxRequest.open("GET", "cms/cmsAjaxProcess.php" + getString, true);
	ajaxRequest.send(null); 
}

function cmsReferenceIDArrayList_ajaxRefreshOptions(columnName, tableName)
{
	// user feedback
		
		setFeedbackChild((columnName+"-feedback"), ("* Refreshing record options.... "),  "feedbackstyleRed");
		
	// ajax object
		
		var ajaxRequest;  // The variable that makes Ajax possible!
		
		try
		{
			// Opera 8.0+, Firefox, Safari
				
				ajaxRequest = new XMLHttpRequest();
				
			
		} catch (e)
		{
			// Internet Explorer Browsers
				
				try
				{
					ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
					
				} catch (e) 
				{
					try
					{
						ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
						
					} catch (e)
					{
						// Something went wrong
						alert("Your browser broke!");
						return false;
						
					}
				}
		}
		
	// Create a function that will receive data sent from the server
		
		ajaxRequest.onreadystatechange = function()
		{
			
			if(ajaxRequest.readyState == 4)
			{
				// get filter object
					
					var filterName = columnName.replace(':', '');
					filterName = filterName + 'Filter';
					
				// clear selection list & filter
					
					eval( filterName + '.clear();');
					
					var filterInputName = columnName.replace(':', '');
					filterInputName = filterInputName + 'FilterInput';
					var filterInputEl = Dom.get(filterInputName);
					filterInputEl.value = '';
					
				// process ajax returned data
					
					var ajaxResponseArray = ajaxRequest.responseText.split(arrayStringChunkDelimiter);
					
					valueArray = ajaxResponseArray[0].split(arrayStringDelimiter);
					textArray =  ajaxResponseArray[1].split(arrayStringDelimiter);
					
				// add selection options back
					
					var selectListName = columnName.replace(':', '');
					selectListName = selectListName + 'SelectionList';
					var selectElement = Dom.get(selectListName);
					
					for (i=0;i<valueArray.length;i++) 
					{
						var optionElement=document.createElement('option');
						optionElement.setAttribute('value', valueArray[i]);
						//optionElement.selected=true
						selectElement.appendChild(optionElement);
						
						if(textArray[i] == '')
						{
							textArray[i] = '(Record ' + valueArray[i] + ')';
						}
						var optionTextNode=document.createTextNode(textArray[i]);
						optionElement.appendChild(optionTextNode)
					}
					
					//if(valueArray.length > 0)
					//{
					//	selectElement.options[0].selected = true;
					//	selectElement.options[0].selected = false;
					//}
					
				// re - init filter
					
					eval( filterName + '.init();');
					
				// get list of input elements
					
					var inputElementArrayElement = Dom.get((columnName + '-inputElementArray'));
					var inputElementArray = inputElementArrayElement.value.split(arrayStringDelimiter);
					
				// if there are any go through list and check that entries are still up-to-date 
					
					//if(inputElementArray.length != 1 && inputElementArray[0] != '')
					if(inputElementArray[0] != '')
					{
						// go through list and check that entries are still up-to-date 
							
							var exists = false;
							for (i = 0; i < inputElementArray.length; i++)
							{
								exists = false;
								
								for (j=0;j<valueArray.length;j++)
								{
									// search for value (record ids)
										
										if(valueArray[j] == Dom.get(inputElementArray[i]).value)
										{
											// record still exists, check that the text is still accurate
												
												if(Dom.get((inputElementArray[i]+'-text')).innerHTML != textArray[j])
												{
													// update text
														
														Dom.get((inputElementArray[i]+'-text')).innerHTML = textArray[j];
														
												}
												
											// set exists true and break
												
												exists = true;
												break;
										}
										
								}
								
								if(exists == false)
								{
									// update text
										
										Dom.get((inputElementArray[i]+'-text')).innerHTML = ('(Deleted Record ' + Dom.get(inputElementArray[i]).value + ')');
										
								}
							}
					}
				// feedback
					
					//setFeedbackChild((columnName+"-feedback"), ("* Record options have been refreshed." + ajaxRequest.responseText),  "feedbackstyleBlack");
					setFeedbackChild((columnName+"-feedback"), ("* Record options have been refreshed."),  "feedbackstyleBlack");
					
			}
		}
		
	
	
	var processFunction = "cmsReferenceIDArrayList_ajaxRefreshOptions";
	var getString = "?processfunction=" + processFunction + "&columnname=" + columnName + "&tablename=" + tableName + "&dummy=" + new Date().getTime();
	
	ajaxRequest.open("GET", "cms/cmsAjaxProcess.php" + getString, true);
	ajaxRequest.send(null); 
}

function cmsReferenceID_ajaxRefreshOptions(columnName, tableName)
{
	//setFeedbackChild("feedback", ("* Options have been refreshed"),  "feedbackstyleBlack");
	var ajaxRequest;  // The variable that makes Ajax possible!
	
	try{
		// Opera 8.0+, Firefox, Safari
		ajaxRequest = new XMLHttpRequest();
	} catch (e){
		// Internet Explorer Browsers
		try{
			ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try{
				ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e){
				// Something went wrong
				alert("Your browser broke!");
				return false;
			}
		}
	}
	
	
	
	// Create a function that will receive data sent from the server
		
		ajaxRequest.onreadystatechange = function(){
			
			if(ajaxRequest.readyState == 4){
				
				//var ajaxResponseArray=ajaxRequest.responseText.split(":");
				var ajaxResponseArray=ajaxRequest.responseText.split(arrayStringChunkDelimiter);
				
				document.getElementById(columnName + ":valuesArray").value=ajaxResponseArray[0];
				document.getElementById(columnName + ":textArray").value=ajaxResponseArray[1];
				
				cmsReferenceID_refresh(columnName);
				
				//setFeedbackChild("feedback", ("* Options have been refreshed"),  "feedbackstyleBlack");
				setFeedbackChild((columnName+"-feedback"), ("* Options have been refreshed"),  "feedbackstyleBlack");
				
			}
		}
		
	
	
	var processFunction = "cmsReferenceID_ajaxRefreshOptions";
	var getString = "?processfunction=" + processFunction + "&columnname=" + columnName + "&tablename=" + tableName + "&dummy=" + new Date().getTime();
	
	ajaxRequest.open("GET", "cms/cmsAjaxProcess.php" + getString, true);
	ajaxRequest.send(null); 
}

function cmsReferenceIDArrayList_toggleSelector(columnName)
{
		selectorTable = Dom.get((columnName + '-selectorTable'));
		selectorTableArrow = Dom.get((columnName + '-selectorTableArrow'));
		
		if(selectorTable.className == 'displaynone')
		{
			selectorTable.className = 'displayinline';
			selectorTableArrow.innerHTML = '&#9660;';
			
		} else
		{
			selectorTable.className = 'displaynone';
			selectorTableArrow.innerHTML = '&#9658;';
			
		}
}

function cmsReferenceIDArrayList_addRow(columnName, tableName, text, value)
{
	// find new item number
		
		lastItemNum = Dom.get((columnName + '-lastItemNum'));
		nextItemNum = parseInt(lastItemNum.value) + 1;
		
	// find NumItems number
		
		inputNumItems = Dom.get((columnName + '-inputNumItems'));
		NumItems = parseInt(inputNumItems.value);
		
	// find MaxItems number
		
		var inputMaxItems = Dom.get((columnName + '-inputMaxItems'));
		var MaxItems = parseInt(inputMaxItems.value);
		
	// remove item if necessary
		
		if(NumItems >= MaxItems && MaxItems != 0)
		{
			// find last row num
				
				inputElementArrayElementString = Dom.get((columnName + '-inputElementArray'));
				var inputElementArray = inputElementArrayElementString.value.split(arrayStringDelimiter);
				
				var lastElementInputIdString = inputElementArray[(inputElementArray.length - 1)];
				
				var lastElementNumArray = lastElementInputIdString.split("-");
				var lastRowNum = lastElementNumArray[(lastElementNumArray.length - 1)];
				
			// update inputElementArray
				
				var newInputElementString = '';
				
				for (i = 0; i < (inputElementArray.length - 1); i++)
				{
					if(newInputElementString != '')
					{
						// not first item in array
							
							newInputElementString = newInputElementString + arrayStringDelimiter + inputElementArray[i];
							
					} else
					{
						// first item in array
							
							newInputElementString = inputElementArray[i];
							
					}
					
				}
				
				inputElementArrayElement.value = newInputElementString;
				
			//	remove last row element elements
				
				var lastRowElement = Dom.get((columnName + arrayStringDelimiter + lastRowNum));
				while( lastRowElement.hasChildNodes() ) { lastRowElement.removeChild(  lastRowElement.lastChild ); }
				Dom.remove(lastRowElement);
				
				//setFeedbackChild((columnName+"-feedback"), ("* Remove lastElementInputIdString = (" + lastElementInputIdString + ") lastRowNum = " +lastRowNum),  "feedbackstyleBlack");
				
		} else
		{
			// increment NumItems number
				
				inputNumItems.value = (NumItems + 1);
				
		}
		
	// create inputID
		
		var inputID = (columnName + "-" + nextItemNum);
		
	// create newRowID
		
		var newRowID = (columnName + arrayStringDelimiter + nextItemNum);
		
	// get table
		
		//var tableEl = document.getElementById((columnName + "-selectedListTable"));
		var tableEl = Dom.get((columnName + "-selectedListTable"));
		
	// create row
			
		//var e1 = document.createElement('tr');
		var rowArray=tableEl.rows
		var newRowNumber=rowArray.length
		var e1 = tableEl.insertRow(newRowNumber)
		
		// tableEl.appendChild(e1);
		//Dom.add(e1, tableEl);
		//e1.id = newRowID;
		e1.setAttribute('id', newRowID);
		//e1.setAttribute('bgcolor', '#EAEAEA');
		
	// if called from client side javaScript, these variables come from the selection list. usually they specified server side with php
		
		if(typeof text == "undefined" && typeof value == "undefined") 
		{
			// find selector
				
				var selectListName = columnName.replace(":", "");
				selectListName = (selectListName + "SelectionList");
				selectionList = Dom.get(selectListName);
				
			// find values
				
				var selectedOptionValue = selectionList.value;
				var selectedIndex = selectionList.selectedIndex;
				var selectOptionsArray = selectionList.options;
				var selectedOptionText = selectOptionsArray[selectedIndex].text;
				
				
			// set variables
				
				text = selectedOptionText;
				value = selectedOptionValue;
				
		}
		
		if(text == '')
		{
			text = '(Record ' + value + ')';
		}
		
		
	// add cells to row
		
		var c0 = e1.insertCell(0);
		var c1 = e1.insertCell(1);
		var c2 = e1.insertCell(2);
		var c3 = e1.insertCell(3);
		var c4 = e1.insertCell(4);
		var c5 = e1.insertCell(5);
		
		c0.innerHTML = '<input type="hidden" id="' + inputID + '" name="' + inputID + '" value="' + value + '">';
		c1.innerHTML = '<div class="smallGreyText">' + value + '</div>';
		c2.innerHTML = '<table id="' + (inputID + '-listItem') + '" bgcolor="#ffffff" "border="0" align="left" cellspacing="0" cellpadding="0" width="100%" style="cursor: default;"><tr><td width="100%" id="' + (inputID + '-text') + '">' + text + '</td><td><img src="../images/spacer.gif" width="30" height="1"></td></tr></table>';
		
		//c2.innerHTML = '<img src="../images/spacer.gif" width="10" height="1">';
		//c3.innerHTML = text;
		//c3.setAttribute('id', (inputID + '-text'));
		//c3.setAttribute('width', '100%');
		c4.innerHTML = '<img src="../images/spacer.gif" width="10" height="1">';
		c5.innerHTML = '<span title="Remove ' + text + '" id="' + columnName + '-removeBut-' + nextItemNum + '" style="cursor: pointer;" class="smallGreyText"><table border="0" align="left" cellspacing="0" cellpadding="0"><tr><td class="smallGreyText">&larr;</td><td>&nbsp;</td><td>&times;</td></tr></table></span>';
		
		
		//e2.innerHTML = '<td><input type="hidden" id="' + inputID + '" name="' + inputID + '" value="' + value + '"></td><td class="smallGreyText">' + value + '</td><td><img src="../images/spacer.gif" width="10" height="1"></td><td width="100%" id="' + inputID + '-text">' + text + '</td><td><img src="../images/spacer.gif" width="40" height="1"></td><td><span title="Remove ' + text + '" id="' + columnName + '-removeBut-' + nextItemNum + '" style="cursor: pointer;" class="smallGreyText"><table border="0" align="left" cellspacing="0" cellpadding="0"><tr><td class="smallGreyText">&larr;</td><td>&nbsp;</td><td>&times;</td></tr></table></span></td>';
		
	// add select list item event
		
		//listItem = Dom.get((inputID + '-listItem'));
		//
		//Event.add(listItem, 'click', function(e) 
		//{ 
		//	// get column name & thisItemNum from RowID
		//		
		//		var selectedListItemNumberElement = Dom.get((columnName + "-selectedListItemNumber"));
		//		
		//		var selectedListItemNumber = parseInt(selectedListItemNumberElement.getAttribute('value'));
		//		listItemElement = Dom.get((inputID + '-listItem'));
		//		
		//		if(selectedListItemNumber == -1) 
		//		{
		//			// nothing selected
		//				
		//				listItemElement.setAttribute('bgcolor', "#eeeeee");
		//				selectedListItemNumberElement.setAttribute('value', nextItemNum);
		//				//selectedListItemNumberElement.value = nextItemNum;
		//				
		//		} else if (selectedListItemNumber == nextItemNum) 
		//		{
		//			// already selected
		//				
		//				listItemElement.setAttribute('bgcolor', "#ffffff");
		//				selectedListItemNumberElement.setAttribute('value', -1);
		//				//selectedListItemNumberElement.value = nextItemNum;
		//		} else
		//		{
		//			// something else was selected
		//				
		//				listItemElement.setAttribute('bgcolor', "#eeeeee");
		//				selectedListItemNumberElement.setAttribute('value', nextItemNum);
		//				
		//				
		//				oldSelectedListItemElement = Dom.get( (columnName + "-" + selectedListItemNumber + '-listItem') );
		//				oldSelectedListItemElement.setAttribute('bgcolor', "#ffffff");
		//				
		//		}
		//		
		//});
		
	// add remove button event
		
		removeBut = Dom.get((columnName + '-removeBut-' + nextItemNum));
		
		Event.add(removeBut, 'click', function(e) 
		{ 
			// define remove button event funtion
				
				// get column name & thisItemNum from RowID
					
					var rowIDArray = e1.id.split(arrayStringDelimiter);
					var thisItemNum = rowIDArray[(rowIDArray.length -1)];
					var thisColumnName = rowIDArray[0];
					
				// update inputElementArray
					
					inputElementArrayElement = Dom.get((thisColumnName + '-inputElementArray'));
					var inputElementArray = inputElementArrayElement.value.split(arrayStringDelimiter);
					var thisInputID = (thisColumnName + "-" + thisItemNum);
					var newInputElementString = '';
					
					for (i = 0; i < inputElementArray.length; i++)
					{
						// if inputElement is not this one (the one we are removing) then add to newInputElementString
							
							if(inputElementArray[i] != thisInputID)
							{
								if(newInputElementString != '')
								{
									// not first item in array
										
										newInputElementString = newInputElementString + arrayStringDelimiter + inputElementArray[i];
										
								} else
								{
									// first item in array
										
										newInputElementString = inputElementArray[i];
										
								}
							}
					}
					
					inputElementArrayElement.value = newInputElementString;
					
				// update NumItems number
					
					thisInputNumItems = Dom.get((thisColumnName + '-inputNumItems'));
					thisInputNumItems.value = (inputElementArray.length - 1);
					
				// display empty list row if the list is now empty
					
					if(inputElementArray.length == 1)
					{
						Dom.get((columnName + "-emptyList")).className = 'displayinline';
						//Dom.get((columnName + "-emptyList")).innerHTML = '-';
					}
					
				// feed back
					
					//setFeedbackChild((columnName+"-feedback"), ("* Record NumItems = (" + thisInputNumItems.value + ")"),  "feedbackstyleBlack");
					//setFeedbackChild((columnName+"-feedback"), ("* Record (" + value + ") \"" + text + "\" removed from list."),  "feedbackstyleBlack");
					
				// remove (this) row
					
					//e1.innerHTML = '';
					//while( tableEl.hasChildNodes() ) { tableEl.removeChild(  tableEl.lastChild ); }
					while( e1.hasChildNodes() ) { e1.removeChild(  e1.lastChild ); }
					Dom.remove(e1); 
					
					//tableEl.height='1';
		});
		
	// update lastItemNum
		
		lastItemNum.value = nextItemNum;
		
	// update inputElementArray
		
		inputElementArrayElement = Dom.get((columnName + '-inputElementArray'));
		var inputElementString = inputElementArrayElement.value;
		
		if(inputElementString != '')
		{
			inputElementString = inputElementString + arrayStringDelimiter + inputID;
			
		} else
		{
			// first item in array
				
				inputElementString = inputID;
		}
		
		inputElementArrayElement.value = inputElementString;
		
		
	// hide empty list row
		
		if(Dom.get((columnName + "-emptyList")).className == 'displayinline')
		{
			Dom.get((columnName + "-emptyList")).className = 'displaynone';
		}
		
		//Dom.get((columnName + "-emptyList")).innerHTML = '';
		
	// feeback
		
		//setFeedbackChild((columnName+"-feedback"), ("* Record NumItems = (" + NumItems + ")"),  "feedbackstyleBlack");
		//setFeedbackChild((columnName+"-feedback"), ("* Record (" + value + ") \"" + text + "\" added to list."),  "feedbackstyleBlack");
}

function cmsReferenceIDList_remove(rowNum, columnName, tableName)
{
	// find table
		
		var selectedListTable = document.getElementById(columnName + "-selectedListTable");
		
	// remove row
		
		var rowToDelete = document.getElementById((columnName + "-" + rowNum));
	 	//selectedListTable.removeChild( rowToDelete );
		
		 var m = rowToDelete.rowIndex; 
		document.getElementById((columnName + "-selectedListTable")).deleteRow(-1);
		
		//rowNumInt = parseInt(rowNum);
		//selectedListTable.deleteRow(rowNumInt);
		
	// find new entry number
		
		//var selectedListNumOfEntries = document.getElementById(columnName + "-selectedListNumOfEntries").value;
		
		//numEntries = parseInt(selectedListNumOfEntries);
		//numEntries = numEntries - 1;
		
	// update number of entries
		
		//document.getElementById(columnName + "-selectedListNumOfEntries").value = numEntries;
		
	// feedback
		
		//setFeedbackChild((columnName+"-feedback"), ("* Selection added " + selectedOptionValue + "! " + selectOptionsArray[selectedIndex].text),  "feedbackstyleBlack");
		//setFeedbackChild((columnName+"-feedback"), ("* Remove " + rowNum + "! entries = " + numEntries),  "feedbackstyleBlack");
		setFeedbackChild((columnName+"-feedback"), ("* Remove " + rowNum + "! "),  "feedbackstyleBlack");
}

function cmsImageFileDelete(columnName, tableName)
{
	var ImageFileName=document.getElementById(columnName+"-optionSelect").value
	var ImageFileNameText=document.getElementById(columnName+"-optionSelect").options[document.getElementById(columnName+"-optionSelect").selectedIndex].text
	
	if(ImageFileNameText.substring(0,14) == "(deleted file)")
	{
		//setFeedbackChild("feedback", ("* File doesn't exist " + ImageFileName),  "feedbackstyleBlack");
		return
	}
	if(ImageFileName == "")
	{
		//setFeedbackChild("feedback", ("* File doesn't exist " + ImageFileName),  "feedbackstyleBlack");
		return
	}
	
	if(confirm("Delete File: \"" + ImageFileName + "\" ? \nAre you sure?")) 
	{
		
		var ajaxRequest;  // The variable that makes Ajax possible!
		
		try{
			// Opera 8.0+, Firefox, Safari
			ajaxRequest = new XMLHttpRequest();
		} catch (e){
			// Internet Explorer Browsers
			try{
				ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e) {
				try{
					ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (e){
					// Something went wrong
					alert("Your browser broke!");
					return false;
				}
			}
		}
		
		// Create a function that will receive data sent from the server
			
			ajaxRequest.onreadystatechange = function(){
				
				if(ajaxRequest.readyState == 4){
					
					// clear select options
						var fileOptionSelect = document.getElementById(columnName + "-optionSelect");
						
						if ( fileOptionSelect.hasChildNodes() )
						{
							while ( fileOptionSelect.childNodes.length >= 1 )
							{
								fileOptionSelect.removeChild( fileOptionSelect.firstChild );
							} 
						}
					
					document.getElementById(columnName + "-deleteFileButton").src = "../cms/images/delete_icon16x16_grey.png";
					document.getElementById(columnName + "-deleteFileButton").style.cursor = "default";
					
					document.getElementById(columnName + "-imagePreview").src = "../cms/images/image_has_been_deleted.jpg";
					document.getElementById(columnName + "-imagePreviewLink").href = "../cms/images/image_has_been_deleted.jpg";
					
					
					setFeedbackChild((columnName + "-feedback"), ("* File deleted: \"" + ImageFileName + "\""),  "feedbackstyleBlack");
					
					// repopulate select options
					
					var numOptions=document.getElementById(columnName+"-optionSelect").options.length
					var newOption = new Option("-","");
					document.getElementById(columnName + "-optionSelect").options[numOptions]=newOption;
					document.getElementById(columnName + "-optionSelect").options[(numOptions)].text="-";
					document.getElementById(columnName + "-optionSelect").options[numOptions].selected=1;
					
					var ajaxResponseArray=ajaxRequest.responseText.split(":");
					
					for (i = 0; i < ajaxResponseArray.length; i++)
					{
						var numOptions=document.getElementById(columnName+"-optionSelect").options.length
						var newOption = new Option(ajaxResponseArray[i],ajaxResponseArray[i]);
						
						document.getElementById(columnName + "-optionSelect").options[numOptions]=newOption;
						document.getElementById(columnName + "-optionSelect").options[(numOptions)].text=ajaxResponseArray[i];
						
					}
					
				}
			}
		
		var processFunction = "cmsImageFile_deleteFile";
		var getString = "?processfunction=" + processFunction + "&columnname=" + columnName + "&tablename=" + tableName + "&imagefilename=" + ImageFileName + "&dummy=" + new Date().getTime();
		
		ajaxRequest.open("GET", "cms/cmsAjaxProcess.php" + getString, true);
		ajaxRequest.send(null); 
		
	}
}

function cmsImageFileNoSelectDelete(columnName, tableName)
{
	// get original file name
		
		var ImageFileName=document.getElementById(columnName+"-imageOriginalValue").value
		
	// user confirmation
		
		if(!confirm("Delete File: \"" + ImageFileName + "\" ? \nAre you sure?")) 
		{
			return
		}
		
	// set up ajax request
		
		var ajaxRequest;  // The variable that makes Ajax possible!
		
		try{
			// Opera 8.0+, Firefox, Safari
			ajaxRequest = new XMLHttpRequest();
		} catch (e){
			// Internet Explorer Browsers
			try{
				ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e) {
				try{
					ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (e){
					// Something went wrong
					alert("Your browser broke!");
					return false;
				}
			}
		}
		
	// ajax return function
		
		ajaxRequest.onreadystatechange = function(){
				
				if(ajaxRequest.readyState == 4){
					
					// disable delete button
						
						//document.getElementById(columnName + "-deleteFileButton").src = "../cms/images/delete_icon16x16_grey.png";
						//document.getElementById(columnName + "-deleteFileButton"). onclick = "";
						//document.getElementById(columnName + "-deleteFileButton").style.cursor = "default";
						document.getElementById((columnName + "-deleteFileButtonColumn")).removeChild(document.getElementById((columnName + "-deleteFileButtonColumn")).lastChild);
						var textNode=document.createTextNode("");
						document.getElementById((columnName + "-deleteFileButtonColumn")).appendChild(textNode);
						
					// change filename display
						
						document.getElementById((columnName + "-fileNameDisplay")).removeChild(document.getElementById((columnName + "-fileNameDisplay")).lastChild);
						var textNode=document.createTextNode("(Deleted)");
						document.getElementById((columnName + "-fileNameDisplay")).appendChild(textNode);
						
					// change filename text
						
						document.getElementById(columnName+"-imageOriginalValue").value = "(Deleted)";
						
					// change original image
						
						document.getElementById(columnName+"-imageOriginal").src = "../cms/images/image_has_been_deleted.jpg";
						
					// change preview image
						
						document.getElementById(columnName + "-imagePreview").src = "../cms/images/image_has_been_deleted.jpg";
						document.getElementById(columnName + "-imagePreviewLink").href = "../cms/images/image_has_been_deleted.jpg";
						
					// user feedback
						
						setFeedbackChild((columnName + "-feedback"), ("* File deleted: \"" + ImageFileName + "\""),  "feedbackstyleBlack");
						
				}
			}
			
	// send ajax request
		
		var processFunction = "cmsImageFileNoSelect_deleteFile";
		var getString = "?processfunction=" + processFunction + "&columnname=" + columnName + "&tablename=" + tableName + "&imagefilename=" + ImageFileName + "&dummy=" + new Date().getTime();
		
		ajaxRequest.open("GET", "cms/cmsAjaxProcess.php" + getString, true);
		ajaxRequest.send(null); 
}

function ImagefileNoSelectUploadChange(formname, idBaseName)
{
		// browser detection
			
			var d, dom, ie, ie4, ie5x, moz, mac, win, lin, old, ie5mac, ie5xwin, op, saf;
			
			d = document;
			n = navigator;
			na = n.appVersion;
			nua = n.userAgent;
			win = ( na.indexOf( 'Win' ) != -1 );
			mac = ( na.indexOf( 'Mac' ) != -1 );
			lin = ( nua.indexOf( 'Linux' ) != -1 );
			
			if ( !d.layers ){
				dom = ( d.getElementById );
				op = ( nua.indexOf( 'Opera' ) != -1 );
				konq = ( nua.indexOf( 'Konqueror' ) != -1 );
				saf = ( nua.indexOf( 'Safari' ) != -1 );
				moz = ( nua.indexOf( 'Gecko' ) != -1 && !saf && !konq);
				ie = ( d.all && !op );
				ie4 = ( ie && !dom );
				
				/*
				ie5x tests only for functionality. ( dom||ie5x ) would be default settings. 
				Opera will register true in this test if set to identify as IE 5
				*/
				
				ie5x = ( d.all && dom );
				ie5mac = ( mac && ie5x );
				ie5xwin = ( win && ie5x );
			}
			
		// if safari show the clear button
			
			if ( saf )
			{
				document.getElementById(idBaseName+"-clearUpload").className = "displayinline";
			} 
			
		// get new file upload value
			
			var ImagefileSelectText=document.getElementById(idBaseName+"-imageUpload").value
			var ImagefileOriginal=document.getElementById(idBaseName+"-imageOriginal").src
			
		// if file upload value has been cleared, select first option & remove last option if it's value = "-imageUpload"
			
			if(ImagefileSelectText=="")
			{
				// change preview image
					
					document.getElementById(idBaseName+"-imagePreview").src = ImagefileOriginal
					
				// change filename display
					
					var ImagefileNameText=document.getElementById(idBaseName+"-imageOriginalValue").value
					document.getElementById((idBaseName + "-fileNameDisplay")).removeChild(document.getElementById((idBaseName + "-fileNameDisplay")).lastChild);
					var textNode=document.createTextNode(ImagefileNameText);
					document.getElementById((idBaseName + "-fileNameDisplay")).appendChild(textNode);
					
				return;
			}
			
		// if there is text in the upload box, change the image to "image will be uploaded" image
			
			document.getElementById(idBaseName+"-imagePreview").src = "../cms/images/image_will_be_uploaded.jpg";
			document.getElementById(idBaseName+"-imagePreviewLink").href = "../cms/images/image_will_be_uploaded.jpg";
			
		// change filename display
			
			document.getElementById((idBaseName + "-fileNameDisplay")).removeChild(document.getElementById((idBaseName + "-fileNameDisplay")).lastChild);
			var textNode=document.createTextNode("(Uploaded File)");
			document.getElementById((idBaseName + "-fileNameDisplay")).appendChild(textNode);
			
			
}

function ImagefileNoSelectClearUpload(formname, idBaseName, directory)
{
	// clear file input field. (delete the input element and recreate it.... just setting value to "" doesn't work for safari and IE)
			
		document.getElementById(idBaseName+"-imageUploadColumn").removeChild(document.getElementById(idBaseName+"-imageUpload"));
		
		var fileElement = document.createElement('input');
		fileElement.setAttribute('id', (idBaseName+"-imageUpload"));
		fileElement.setAttribute('name', (idBaseName+"-imageUpload"));
		fileElement.setAttribute('type', 'file');
		fileElement.setAttribute('value', '');
		
		fileElement.onchange=function(){ImagefileNoSelectUploadChange(formname, idBaseName)};
		
		document.getElementById(idBaseName+"-imageUploadColumn").appendChild(fileElement)
		
	// change image preview back to original
		
		var ImagefileOriginal=document.getElementById(idBaseName+"-imageOriginal").src
		document.getElementById(idBaseName+"-imagePreview").src = ImagefileOriginal;
		
	// change filename back to original
		
		var ImagefileNameText=document.getElementById(idBaseName+"-imageOriginalValue").value
		document.getElementById((idBaseName + "-fileNameDisplay")).removeChild(document.getElementById((idBaseName + "-fileNameDisplay")).lastChild);
		var textNode=document.createTextNode(ImagefileNameText);
		document.getElementById((idBaseName + "-fileNameDisplay")).appendChild(textNode);
		
	// hide clear button
		
		document.getElementById(idBaseName+"-clearUpload").className = "displaynone";
		
}

function ImagefileUploadChange(formname, idBaseName, directory)
{
		// get new file upload value
			
			var ImagefileSelectText=document.getElementById(idBaseName+"-imageUpload").value
			
		// get last select option value
			
			var numOptions=document.getElementById(idBaseName+"-optionSelect").options.length
			var lastOptionValue = document.getElementById(idBaseName+"-optionSelect").options[(numOptions-1)].value
			
		// if file upload value has been cleared, select first option & remove last option if it's value = "-imageUpload"
			
			if(ImagefileSelectText=="")
			{
				document.getElementById(idBaseName+"-optionSelect").options[0].selected=1;
				document.getElementById(idBaseName+"-imagePreview").src = "../cms/images/no_image.jpg";
				
				document.getElementById(idBaseName+"-deleteFileButton").src = "../cms/images/delete_icon16x16_grey.png";
				document.getElementById(idBaseName+"-deleteFileButton").style.cursor = "default";
				
				// remove fileupload option if it exists
					if(lastOptionValue=="-imageUpload") 
					{
						document.getElementById(idBaseName+"-optionSelect").options[(numOptions-1)]=null;
					}
					
				return
			}
			
		// add value to select option field, and selected it
			
			var slashed=ImagefileSelectText.replace('\\',"/")
			
			var fileparts=slashed.split("/") 
			var filename=fileparts.pop()
			
			if(lastOptionValue=="-imageUpload") 
			{
				//setFeedbackChild("feedback", ("hi " + ImagefileSelectText),  "feedbackstyleBlack");
				
				// update last option
					
					//document.getElementById(idBaseName+"-optionSelect").options[(numOptions-1)].text="Upload - " + filename;
					document.getElementById(idBaseName+"-optionSelect").options[(numOptions-1)].text="(Uploaded File)";
					document.getElementById(idBaseName+"-optionSelect").options[(numOptions-1)].selected=1;
					
			} 
			else 
			{
				//setFeedbackChild("feedback", ("him " + ImagefileSelectText),  "feedbackstyleBlack");
				
				// add option
					
					//var newOption = new Option(ImagefileSelectText,"-imageUpload");
					var newOption = new Option("(Uploaded File)","-imageUpload");
					document.getElementById(idBaseName+"-optionSelect").options[numOptions]=newOption;
					//document.getElementById(idBaseName+"-optionSelect").options[numOptions].text=ImagefileSelectText;
					//document.getElementById(idBaseName+"-optionSelect").options[numOptions].text="Upload - " + filename;
					document.getElementById(idBaseName+"-optionSelect").options[(numOptions)].text="(Uploaded File)";
					document.getElementById(idBaseName+"-optionSelect").options[numOptions].selected=1;
					
			}
			
			document.getElementById(idBaseName+"-imagePreview").src = "../cms/images/image_will_be_uploaded.jpg";
			document.getElementById(idBaseName+"-imagePreviewLink").href = "../cms/images/image_will_be_uploaded.jpg";
			document.getElementById(idBaseName+"-deleteFileButton").src = "../cms/images/delete_icon16x16_grey.png";
			document.getElementById(idBaseName+"-deleteFileButton").style.cursor = "default";
			
			//setFeedbackChild((idBaseName + "-feedback"), (" "),  "feedbackstyleBlack");
			
}

function ImagefileSelectChange(formname, idBaseName, directory)
{
		var ImagefileSelectVal=document.getElementById(idBaseName+"-optionSelect").value
		var ImagefileSelectText=document.getElementById(idBaseName+"-optionSelect").options[document.getElementById(idBaseName+"-optionSelect").selectedIndex].text
	
		var ImagefileUploadVal=document.getElementById(idBaseName+"-imageUpload").value
		
		// switch preview image
			
			if(ImagefileSelectVal=="")
			{
				document.getElementById(idBaseName+"-imagePreview").src = "../cms/images/no_image.jpg";
				document.getElementById(idBaseName+"-imagePreviewLink").href = "../cms/images/no_image.jpg";
				//document.getElementById(idBaseName+"-imagePreviewLink").href = "\"javascript:window.open('../cms/images/no_image.jpg','name','width=640,height=480,left=0,top=0,resizable=yes,scrollbars=yes,toolbar=no,status=no')\"";
				
				document.getElementById(idBaseName+"-deleteFileButton").src = "../cms/images/delete_icon16x16_grey.png";
				document.getElementById(idBaseName+"-deleteFileButton").style.cursor = "default";
			}
			else if(ImagefileSelectText.substring(0,14) == "(deleted file)")
			{
				document.getElementById(idBaseName+"-imagePreview").src = "../cms/images/image_has_been_deleted.jpg";
				document.getElementById(idBaseName+"-imagePreviewLink").href = "../cms/images/image_has_been_deleted.jpg";
				
				document.getElementById(idBaseName+"-deleteFileButton").src = "../cms/images/delete_icon16x16_grey.png";
				document.getElementById(idBaseName+"-deleteFileButton").style.cursor = "default";
			}
			else
			{
				document.getElementById(idBaseName+"-imagePreview").src = directory+"thumbnails/"+ImagefileSelectVal;
				document.getElementById(idBaseName+"-imagePreviewLink").href =  directory+ImagefileSelectVal;
				
				document.getElementById(idBaseName+"-deleteFileButton").src = "../cms/images/delete_icon16x16.png";
				document.getElementById(idBaseName+"-deleteFileButton").style.cursor = "pointer";
				
			}
			
		// clear file input field
			
			// delete the input element and recreate it.... just setting value to "" doesn't work for safari and IE
			
			if(ImagefileUploadVal!="")
			{
				
				document.getElementById(idBaseName+"-imageUploadColumn").removeChild(document.getElementById(idBaseName+"-imageUpload"));
				
				var fileElement = document.createElement('input');
				fileElement.setAttribute('id', (idBaseName+"-imageUpload"));
				fileElement.setAttribute('name', (idBaseName+"-imageUpload"));
				fileElement.setAttribute('type', 'file');
				fileElement.setAttribute('value', '');
				
				
				fileElement.onchange=function(){ImagefileUploadChange(formname, idBaseName)};
				
				document.getElementById(idBaseName+"-imageUploadColumn").appendChild(fileElement)
			}
			
			// remove "-imageUpload" option
			
			// get last select option value
			
			var numOptions=document.getElementById(idBaseName+"-optionSelect").options.length
			var lastOptionValue = document.getElementById(idBaseName+"-optionSelect").options[(numOptions-1)].value
			
			if(lastOptionValue=="-imageUpload") 
			{
				document.getElementById(idBaseName+"-optionSelect").options[(numOptions-1)]=null;
			}
			
			//setFeedbackChild((idBaseName + "-feedback"), (" "),  "feedbackstyleBlack");

}

function getVar(name)
{
	get_string = document.location.search;
	return_value = '';
	
	 do { //This loop is made to catch all instances of any get variable.
		name_index = get_string.indexOf(name + '=');
		
		if(name_index != -1)
		  {
		  get_string = get_string.substr(name_index + name.length + 1, get_string.length - name_index);
		  
		  end_of_value = get_string.indexOf('&');
		  if(end_of_value != -1)                
			value = get_string.substr(0, end_of_value);                
		  else                
			value = get_string;                
			
		  if(return_value == '' || value == '')
			 return_value += value;
		  else
			 return_value += ', ' + value;
		  }
		} while(name_index != -1)
		
	 //Restores all the blank spaces.
		 space = return_value.indexOf('+');
		 while(space != -1)
			  { 
			  return_value = return_value.substr(0, space) + ' ' + 
			  return_value.substr(space + 1, return_value.length);
							 
			  space = return_value.indexOf('+');
			  }
		  
		 return(return_value);        
}

function handleEnter(field, event)
{
		var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
		
		if (keyCode == 13) {
				var i;
				for (i = 0; i < field.form.elements.length; i++)
					if (field == field.form.elements[i])
						break;
						i = (i + 1) % field.form.elements.length;
						field.form.elements[i].focus();
				return false;
		} 
		else
		return true;
} 

function sortModeChange(formname)
{
	// get variables
		
		var pageVal=getVar("page");
		var displayModeVal=getVar("displayMode");
		
		var orderByVal=document.getElementById("orderBySelect").value;
		var recordNumberVal=getVar("recordNumber");
		
	// construct urls
		
		link = ("../index.php?page=" + pageVal + "&displayMode=" + displayModeVal + "&orderBy=" + orderByVal + "&recordNumber=" + recordNumberVal);
		
	// set links
		
		document.location.href=link;
		
}

function formvalidation(formname, feedbackid, submitString)
{
	switch(formname)
	{
		case "registrationform":
			
			var username=eval( "document." + formname + ".username.value;" );
			var pass=eval( "document." + formname + ".pass.value;" );
			var pass2=eval( "document." + formname + ".pass2.value;" );
			
			if (username=="") 
			{
					setFeedbackChild(feedbackid, "* Please enter a username", "feedbackstyleRed") ;
					return false;
			}
			
			if (pass=="")
			{
					setFeedbackChild(feedbackid, "* Please enter a password", "feedbackstyleRed") ;
					return false;
			}
			
			if (pass2=="")
			{
					setFeedbackChild(feedbackid, "* Please confirm the password", "feedbackstyleRed") ;
					return false;
			}
			
			if (pass!=pass2)
			{
					setFeedbackChild(feedbackid, "* Your passwords did not match", "feedbackstyleRed") ;
					return false;
			}
			
			setFeedbackChild(feedbackid, submitString, "feedbackstyleBlack") ;
			
		break    
		case "loginform":
			
		 	var username=eval( "document." + formname + ".username.value;" );
			var pass=eval( "document." + formname + ".pass.value;" );
			//var pass2=eval( "document." + formname + ".pass2.value;" );
			
			if (username=="") 
			{
					setFeedbackChild(feedbackid, "* Please enter a username", "feedbackstyleRed") ;
					return false;
			}
			
			if (pass=="")
			{
					setFeedbackChild(feedbackid, "* Please enter a password", "feedbackstyleRed") ;
					return false;
			}
			
			setFeedbackChild(feedbackid, submitString, "feedbackstyleBlack") ;
			
		break
	}
	
}

// this function includes all necessary js files for the application
	
	// Any functions in the second JavaScript file will not be defined (and available) until parsing and execution of the first JavaScript file has completed.
    // The behaviour is quite different to that of the C & C++ language's "#include".
    // If you wish to make use of a function in an external JavaScript file using this technique, then you must Include the JavaScript file containing the function and then include another JavaScript file that contains the JavaScript that will make use of it.
	
function includeJavaScript(file)
{
	var script = document.createElement('script');
	script.src = file;
	script.type = 'text/javascript';
	script.defer = true;
	
	document.getElementsByTagName('head').item(0).appendChild(script);
	
}

// calender includes
	
	// main calendar program
		includeJavaScript('cms/calendar/calendar.js');
		
	// language for the calendar
		includeJavaScript('cms/calendar/lang/calendar-en.js');
		
	// the following script defines the Calendar.setup helper function, which makes adding a calendar a matter of 1 or 2 lines of code. -->
		includeJavaScript('cms/calendar/calendar-setup.js');
		
