function checkForm(){ 

	if(!checkRequired(document.forms['frmCheckMe'])) { 
		if(document.all) { 
			document.all.spanError.innerText = 'Please fill in all required fields.'; 
		} else { 
			document.getElementById('spanError').innerHTML = 'Please fill in all required fields.'; 
		}//End IF
	} else { 
		document.forms['frmCheckMe'].submit();   
	}//End IF
}//checkForm


function checkRequired(frmData) 
{ 
	var bFailed; 
	bFailed = false;	// Default to pass 

	//Iterate over form elements
	for(iElement = 0; iElement < frmData.elements.length; iElement++) 
	{ 
		//alert ("ELEMENT NAME: " + frmData.elements[iElement].name + " // FAILED YET: " + bFailed);
		
		//This textbox is required
		var className = frmData.elements[iElement].className;
		
		if (className == 'RequiredTextBox' || className == 'FailedTextBox')
		{
			//Textbox is empty
			if(frmData.elements[iElement].value == '') 
			{ 
				bFailed = true; 
				frmData.elements[iElement].className = 'FailedTextBox'; 
			}
			else
			{ 
				frmData.elements[iElement].className = 'RequiredTextBox'; 
			}//End IF
		}
		else if (className == 'RequiredCurrencyTextBox' || className == 'FailedCurrencyTextBox')
		{
			//Currency Textbox is empty
			if(frmData.elements[iElement].value == '' || isNaN(Number(frmData.elements[iElement].value)))
			{ 
				bFailed = true; 
				frmData.elements[iElement].className = 'FailedCurrencyTextBox'; 
			}
			else
			{ 
				frmData.elements[iElement].className = 'RequiredCurrencyTextBox'; 
			}//End IF
		}//End IF
		else if (className == 'RequiredEmailTextBox' || className == 'FailedEmailTextBox')
		{
			var regex = new RegExp("^[\\w-_\.]*[\\w-_\.]\@[\\w]\.+[\\w]+");
			
			var valid = regex.test(frmData.elements[iElement].value);
			
			if (valid) { frmData.elements[iElement].className = "RequiredEmailTextBox"; }
			else { frmData.elements[iElement].className = "FailedEmailTextBox"; bFailed = true; }
		}//End IF

		//Is any textbox
		if(frmData.elements[iElement].type =='text')
		{
			filterValue(frmData.elements[iElement]);
		}//End IF

		//If is a radio button
		if(frmData.elements[iElement].type == 'radio')
		{
			var sName		= frmData.elements[iElement].name;
			var	bChecked	= false;
			for(radCount = 0; radCount<frmData.elements[sName].length; radCount++)
			{
				bChecked = frmData.elements[sName][radCount].checked;

				if(bChecked)
				{
					break;
				}//End IF
			}//End FOR

			if (bChecked)
			{
				window.document.getElementById(sName + "Span").className = "validRadioText";
			}
			else
			{
				window.document.getElementById(sName + "Span").className = "invalidRadioText";
				bFailed = false;
			}
		}//End IF
	}//End FOR

	//Something failed
	if(bFailed)
	{
		alert("Please fill in all of the fields, Thank you");
	}
	else
	{
		//Iterate over form elements
		for(iElement = 0; iElement < frmData.elements.length; iElement++)
		{ 
			//Element is a button
			if(frmData.elements[iElement].type == 'button' || frmData.elements[iElement].type == 'submit')
			{ 
				frmData.elements[iElement].disabled = true; 
			}//End IF
		}//End FOR
	}//End IF

	return !bFailed;
}//End checkRequired


var		sLastValue	= "";
function filterValue(oInput)
{
	sValue			= oInput.value;

	//Only filter string if it's changed, stops infinite loop
	if(sValue != sLastValue){
		sFilteredValues	= '"';     // Characters stripped out

		var i;
		var sNewValue = "";

		for(i = 0; i < sValue.length; i++) {  // Search through string and append to unfiltered values to returnString.
			var c = sValue.charAt(i);
			if (sFilteredValues.indexOf(c) == -1){
				sNewValue += c;
			}//End IF
		}//End FOR

		//Alert if chars were removed
		if(sValue != sNewValue){
			//alert("This property does not accept the following characters: \n"+sFilteredValues);
		}//End IF

		sLastValue	= sNewValue;
		oInput.value = sNewValue;
	}//End IF
}//End filterValue

//Disable button if confirmation is gained
function confirmDisable(sPrompt, oButton)
{
	var bConfirmed		= confirm(sPrompt);
	oButton.disabled	= bConfirmed;
	return bConfirmed;
}//End confirmDisable


function confirmDelete(oButton){
	return confirmDisable("Are you sure you want to delete this item?", oButton);
}//End confirmDelete


function confirmRetract(oButton){
	return confirmDisable("Are you sure you wish to retract this submission?", oButton);
}//End confirmRetract


function confirmDeletionRequest(oButton){
	return confirmDisable("Are you sure you wish to request that this node be deleted?\n\nIt will not be deleted straight away - this action needs to be approved.", oButton);
}//End confirmDeletionRequest


function confirmSerialization(oButton){
	return confirmDisable("Are you sure you wish to serialize the site?\n\nAll approved changes will be made live immediately.", oButton);
}//End confirmSerialization
